From f5245588b9cd67a33fe6735a808b5b36cc90c5ab Mon Sep 17 00:00:00 2001 From: Jamenson Ferreira Espindula de Almeida Melo Date: Wed, 6 Sep 2023 09:02:15 -0300 Subject: [PATCH] Deleted some old files --- LFS-BOOK-11.1-NOCHUNKS-pt_br.html | 56348 ----------------------- LFS-BOOK-11.1-NOCHUNKS-pt_br.txt | 24673 ---------- LFS-BOOK-11.1-pt_br.pdf | Bin 2095171 -> 0 bytes LFS-BOOK-11.1-pt_br.tar.xz | Bin 270072 -> 0 bytes LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html | 53105 --------------------- LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt | 21482 --------- LFS-SYSD-BOOK-11.1-pt_br.pdf | Bin 1974964 -> 0 bytes LFS-SYSD-BOOK-11.1-pt_br.tar.xz | Bin 247596 -> 0 bytes 8 files changed, 155608 deletions(-) delete mode 100644 LFS-BOOK-11.1-NOCHUNKS-pt_br.html delete mode 100644 LFS-BOOK-11.1-NOCHUNKS-pt_br.txt delete mode 100644 LFS-BOOK-11.1-pt_br.pdf delete mode 100644 LFS-BOOK-11.1-pt_br.tar.xz delete mode 100644 LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html delete mode 100644 LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt delete mode 100644 LFS-SYSD-BOOK-11.1-pt_br.pdf delete mode 100644 LFS-SYSD-BOOK-11.1-pt_br.tar.xz diff --git a/LFS-BOOK-11.1-NOCHUNKS-pt_br.html b/LFS-BOOK-11.1-NOCHUNKS-pt_br.html deleted file mode 100644 index 0e95745df8..0000000000 --- a/LFS-BOOK-11.1-NOCHUNKS-pt_br.html +++ /dev/null @@ -1,56348 +0,0 @@ - - - - - Linux From Scratch - - - - - -
-
-
-
-

- Linux From Scratch -

-
-
-

- Versão 11.1 -

-
-
-

- Publicado 1º de março de 2022 -

-
-
-
-
-

- Criado por Gerard - Beekmans -

-
-
-

- Editor-chefe: Bruce - Dubbs -

-
-
-
-
- -
-
-
- -

- Direitos autorais © 1999-2022, Gerard Beekmans -

-

- Todos os direitos reservados. -

-

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

-

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

-

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

-
-
-
-
-
-
-

- Índice -

- -
-
-
-
-
-

- Prefácio -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

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

-

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

-

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

-

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

-

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

-

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

-

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

-

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

-
-

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

-
-
-
-
-
-
-

- Audiência -

-
-
-
-

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

-

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

-

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

-

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

-

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

-

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

-

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

-
-
-
-
-
-

- Arquiteturas Alvo do LFS -

-
-
-
-

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

-

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

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

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

-

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

-
-
-
-
-
-

- Pré-requisitos -

-
-
-
-

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

-

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

-

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

-
-
    -
  • -

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

    -

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

    -
  • -
  • -

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

    -

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

    -
  • -
-
-
-
-
-
-
-

- LFS e Padrões -

-
-
-
-

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

-
-
    -
  • -

    - POSIX.1-2008. -

    -
  • -
  • -

    - - Filesystem Hierarchy Standard (FHS) Version 3.0 -

    -
  • -
  • -

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

    -

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

    -
    -

    - Nota -

    -

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

    -
    -
  • -
-
-

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

-
-

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

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

- LSB - Core: -

-
-

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

-
-

- LSB - Desktop: -

-
-

- Nenhum -

-
-

- LSB - Runtime Languages: -

-
-

- Perl, Python -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

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

-
-

- Nenhum -

-
-
-
-

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

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

- LSB - Core: -

-
-

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

-
-

- LSB - Desktop: -

-
-

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

-
-

- LSB - Runtime Languages: -

-
-

- Libxml2, Libxslt -

-
-

- LSB - Imaging: -

-
-

- CUPS, Cups-filters, Ghostscript, SANE -

-
-

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

-
-

- GTK+3 -

-
-
-
-

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

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

- LSB - Core: -

-
-

- Nenhum -

-
-

- LSB - Desktop: -

-
-

- Qt4 (mas Qt5 é fornecido) -

-
-

- LSB - Runtime Languages: -

-
-

- Nenhum -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

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

-
-

- Nenhum -

-
-
-
-
-
-
-
-

- Justificativa para os pacotes no Livro -

-
-
-
-

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

-
-
    -
  • -

    - Acl -

    -

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

    -
  • -
  • -

    - Attr -

    -

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

    -
  • -
  • -

    - Autoconf -

    -

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

    -
  • -
  • -

    - Automake -

    -

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

    -
  • -
  • -

    - Bash -

    -

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

    -
  • -
  • -

    - Bc -

    -

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

    -
  • -
  • -

    - Binutils -

    -

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

    -
  • -
  • -

    - Bison -

    -

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

    -
  • -
  • -

    - Bzip2 -

    -

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

    -
  • -
  • -

    - Check -

    -

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

    -
  • -
  • -

    - Coreutils -

    -

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

    -
  • -
  • -

    - DejaGNU -

    -

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

    -
  • -
  • -

    - Diffutils -

    -

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

    -
  • -
  • -

    - E2fsprogs -

    -

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

    -
  • -
  • -

    - Eudev -

    -

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

    -
  • -
  • -

    - Expat -

    -

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

    -
  • -
  • -

    - Expect -

    -

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

    -
  • -
  • -

    - File -

    -

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

    -
  • -
  • -

    - Findutils -

    -

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

    -
  • -
  • -

    - Flex -

    -

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

    -
  • -
  • -

    - Gawk -

    -

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

    -
  • -
  • -

    - GCC -

    -

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

    -
  • -
  • -

    - GDBM -

    -

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

    -
  • -
  • -

    - Gettext -

    -

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

    -
  • -
  • -

    - Glibc -

    -

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

    -
  • -
  • -

    - GMP -

    -

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

    -
  • -
  • -

    - Gperf -

    -

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

    -
  • -
  • -

    - Grep -

    -

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

    -
  • -
  • -

    - Groff -

    -

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

    -
  • -
  • -

    - GRUB -

    -

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

    -
  • -
  • -

    - Gzip -

    -

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

    -
  • -
  • -

    - Iana-etc -

    -

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

    -
  • -
  • -

    - Inetutils -

    -

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

    -
  • -
  • -

    - Intltool -

    -

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

    -
  • -
  • -

    - IProute2 -

    -

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

    -
  • -
  • -

    - Kbd -

    -

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

    -
  • -
  • -

    - Kmod -

    -

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

    -
  • -
  • -

    - Less -

    -

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

    -
  • -
  • -

    - Libcap -

    -

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

    -
  • -
  • -

    - Libelf -

    -

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

    -
  • -
  • -

    - Libffi -

    -

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

    -
  • -
  • -

    - Libpipeline -

    -

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

    -
  • -
  • -

    - Libtool -

    -

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

    -
  • -
  • -

    - Linux Kernel -

    -

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

    -
  • -
  • -

    - M4 -

    -

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

    -
  • -
  • -

    - Make -

    -

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

    -
  • -
  • -

    - Man-DB -

    -

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

    -
  • -
  • -

    - Man-pages -

    -

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

    -
  • -
  • -

    - Meson -

    -

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

    -
  • -
  • -

    - MPC -

    -

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

    -
  • -
  • -

    - MPFR -

    -

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

    -
  • -
  • -

    - Ninja -

    -

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

    -
  • -
  • -

    - Ncurses -

    -

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

    -
  • -
  • -

    - Openssl -

    -

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

    -
  • -
  • -

    - Patch -

    -

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

    -
  • -
  • -

    - Perl -

    -

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

    -
  • -
  • -

    - Pkg-config -

    -

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

    -
  • -
  • -

    - Procps-NG -

    -

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

    -
  • -
  • -

    - Psmisc -

    -

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

    -
  • -
  • -

    - Python 3 -

    -

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

    -
  • -
  • -

    - Readline -

    -

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

    -
  • -
  • -

    - Sed -

    -

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

    -
  • -
  • -

    - Shadow -

    -

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

    -
  • -
  • -

    - Sysklogd -

    -

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

    -
  • -
  • -

    - Sysvinit -

    -

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

    -
  • -
  • -

    - Tar -

    -

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

    -
  • -
  • -

    - Tcl -

    -

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

    -
  • -
  • -

    - Texinfo -

    -

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

    -
  • -
  • -

    - Util-linux -

    -

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

    -
  • -
  • -

    - Vim -

    -

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

    -
  • -
  • -

    - XML::Parser -

    -

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

    -
  • -
  • -

    - XZ Utils -

    -

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

    -
  • -
  • -

    - Zlib -

    -

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

    -
  • -
  • -

    - Zstd -

    -

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

    -
  • -
-
-
-
-
-
-
-

- Tipografia -

-
-
-
-

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

-
./configure --prefix=/usr
-

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

-

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

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

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

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

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

-

- Emphasis -

-

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

-

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

-

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

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

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

-

- <REPLACED TEXT> -

-

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

-

- [OPTIONAL TEXT] -

-

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

-

- passwd(5) -

-

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

-
-
-
-
-
-

- Estrutura -

-
-
-
-

- Este livro é dividido nas seguintes partes. -

-
-

- Parte I – Introdução -

-

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

-
-
-

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

-

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

-
-
-

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

-

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

-
-
-

- Parte IV - Construindo o Sistema LFS -

-

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

-
-
-

- Parte V - Apêndices -

-

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

-
-
-
-
-
-
-

- Errata e Avisos de Segurança -

-
-
-
-

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

-

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

-
-
-
-
-
-
-

- Parte I. Introdução -

-
-
-
-
-
-
-
-

- Capítulo 1. Introdução -

-
-
-
-
-
-
-
-

- 1.1. Como Construir um Sistema - LFS -

-
-
-
-

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

-

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

-

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

-

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

-

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

-

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

-

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

-

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

-

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

-

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

-
-
-
-
-
-

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

-
-
-
-

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

-

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

-
-

- Atualizado para: -

-
    -
  • -

    - Automake-1.16.5 -

    -
  • -
  • -

    - Bash-5.1.16 -

    -
  • -
  • -

    - Bc-5.2.2 -

    -
  • -
  • -

    - Binutils-2.38 -

    -
  • -
  • -

    - Bison-3.8.2 -

    -
  • -
  • -

    - Coreutils-9.0 -

    -
  • -
  • -

    - E2fsprogs-1.46.5 -

    -
  • -
  • -

    - Eudev-3.2.11 -

    -
  • -
  • -

    - Expat-2.4.6 -

    -
  • -
  • -

    - File-5.41 -

    -
  • -
  • -

    - Findutils-4.9.0 -

    -
  • -
  • -

    - Gawk-5.1.1 -

    -
  • -
  • -

    - GDBM-1.23 -

    -
  • -
  • -

    - Glibc-2.35 -

    -
  • -
  • -

    - Gzip-1.11 -

    -
  • -
  • -

    - IANA-Etc-20220207 -

    -
  • -
  • -

    - Inetutils-2.2 -

    -
  • -
  • -

    - IPRoute2-5.16.0 -

    -
  • -
  • -

    - Libcap-2.63 -

    -
  • -
  • -

    - Libelf-0.186 (de: elfutils) -

    -
  • -
  • -

    - Libpipeline-1.5.5 -

    -
  • -
  • -

    - Linux-5.16.9 -

    -
  • -
  • -

    - Man-DB-2.10.1 -

    -
  • -
  • -

    - Meson-0.61.1 -

    -
  • -
  • -

    - Ncurses-6.3 -

    -
  • -
  • -

    - Openssl-3.0.1 -

    -
  • -
  • -

    - Python-3.10.2 -

    -
  • -
  • -

    - Readline-8.1.2 -

    -
  • -
  • -

    - Shadow-4.11.1 -

    -
  • -
  • -

    - SysVinit-3.01 -

    -
  • -
  • -

    - Tcl-8.6.12 -

    -
  • -
  • -

    - Tzdata-2021e -

    -
  • -
  • -

    - Util-Linux-2.37.4 -

    -
  • -
  • -

    - Vim-8.2.4383 -

    -
  • -
  • -

    - Zstd-1.5.2 -

    -
  • -
-
-
-

- Adicionado: -

-
    -
  • -

    - binutils-2.38-lto_fix-1.patch -

    -
  • -
  • -

    - coreutils-9.0-chmod_fix-1.patch -

    -
  • -
  • -

    - file-5.40-upstream_fixes-1.patch -

    -
  • -
  • -

    - shadow-4.10-useradd_segfault-1.patch -

    -
  • -
  • -

    - sysvinit-3.01-consolidated-1.patch -

    -
  • -
-
-
-
-
-
-
-

- 1.3. Registro de Mudanças -

-
-
-
-

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

-

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

-
-

- Entradas de Registro de Mudanças: -

-
    -
  • -

    - 2022-03-01 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-23 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-15 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-10 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-09 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-04 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-03 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-29 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-27 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-20 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-17 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-15 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-01 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-30 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-15 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-14 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-01 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-15 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-01 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-15 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-01 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-15 -

    -
    -
      -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-08 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-06 -

    -
    -
      -
    • -

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

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-01 -

    -
    -
      -
    • -

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

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

- 1.4. Recursos -

-
-
-
-
-

- 1.4.1. Perguntas - Frequentes -

-

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

-
-
-

- 1.4.2. Listas de Correio Eletrônico -

-

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

-

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

-
-
-

- 1.4.3. IRC -

-

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

-
-
-

- 1.4.4. - Sítios Espelho -

-

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

-
-
-

- 1.4.5. Informação de Contato -

-

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

-
-
-
-
-
-
-

- 1.5. Ajuda -

-
-
-
-

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

-

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

-

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

-
-

- 1.5.1. Coisas a Mencionar -

-

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

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

    - Nota se você se desviou do livro afinal -

    -
  • -
-
-
-

- Nota -

-

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

-
-
-
-

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

-

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

-
-
-

- 1.5.3. Problemas de Compilação -

-

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

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

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

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

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

-

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

-
-
-
-
-
-
-
-
-

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

-
-
-
-
-
-
-
-

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

-
-
-
-
-
-
-
-

- 2.1. Introdução -

-
-
-
-

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

-
-
-
-
-
-

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

-
-
-
-

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

-

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

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

    - Coreutils-6.9 -

    -
  • -
  • -

    - Diffutils-2.8.1 -

    -
  • -
  • -

    - Findutils-4.2.31 -

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

    - Grep-2.5.1a -

    -
  • -
  • -

    - Gzip-1.3.12 -

    -
  • -
  • -

    - Linux - Kernel-3.2 -

    -

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

    -

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

    -
  • -
  • -

    - M4-1.4.10 -

    -
  • -
  • -

    - Make-4.0 -

    -
  • -
  • -

    - Patch-2.5.4 -

    -
  • -
  • -

    - Perl-5.8.8 -

    -
  • -
  • -

    - Python-3.4 -

    -
  • -
  • -

    - Sed-4.1.5 -

    -
  • -
  • -

    - Tar-1.22 -

    -
  • -
  • -

    - Texinfo-4.7 -

    -
  • -
  • -

    - Xz-5.0.0 -

    -
  • -
-
-
-

- Importante -

-

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

-
-

- -

-

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

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

- 2.3. Construindo LFS - em Estágios -

-
-
-
-

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

-
-

- 2.3.1. Capítulos 1–4 -

-

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

-
-
    -
  • -

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

    -
  • -
-
-
-
-

- 2.3.2. Capítulos 5–6 -

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
-
-
-
-

- 2.3.3. Capítulos 7–10 -

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
-
-
-
-
-
-
-
-

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

-
-
-
-

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

-

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

-

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

-

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

-
-

- Nota -

-

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

-
-

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

-
-

- 2.4.1. Outros Problemas de Partição -

-

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

-
-
-
-
-

- 2.4.1.1. A Partição Raiz -

-
-
-
-

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

-
-
-
-
-
-

- 2.4.1.2. A Partição Swap -

-
-
-
-

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

-

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

-

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

-
-
-
-
-
-

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

-
-
-
-

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

-
-

- Nota -

-

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

-
-
-
-
-
-
-

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

-
-
-
-

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

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
-
-

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

-
-
-
-
-
-
-
-

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

-
-
-
-

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

-
-
-
- ext2 -
-
-

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

-
-
- ext3 -
-
-

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

-
-
- ext4 -
-
-

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

-
-
-
-

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

-

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

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

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

-

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

-
mkswap /dev/<yyy>
-

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

-
-
-
-
-
-

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

-
-
-
-

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

-
export LFS=/mnt/lfs
-

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

-
-

- Cuidado -

-

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

-
echo $LFS
-

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

-
-
-

- Nota -

-

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

-

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

-
-
-
-
-
-
-

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

-
-
-
-

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

-

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

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

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

-

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

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

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

-

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

-
-

- Atenção -

-

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

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

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

-
-

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

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

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

-

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

-
-
-
-
-
-
-

- Capítulo 3. Pacotes e - Patches -

-
-
-
-
-
-
-
-

- 3.1. Introdução -

-
-
-
-

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

-

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

-

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

-

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

-

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

-
mkdir -v $LFS/sources
-

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

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

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

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
  • -
-
-

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

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

- Nota -

-

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

-
-

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

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

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

-
-
-
-
-
-

- 3.2. Todos os Pacotes -

-
-
-
-

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

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

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

-

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

-

- MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 -

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

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

-

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

-

- MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 -

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

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

-

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

-

- MD5 sum: 12cfa1687ffa2606337efe1a64416106 -

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

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

-

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

-

- MD5 sum: 4017e96f89fca45ca946f1c5db6be714 -

-

- SHA256 sum: 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d -

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

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

-

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

-

- MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e -

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

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

-

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

-

- MD5 sum: 632344cdb052af0e06087bd3b0034126 -

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

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

-

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

-

- MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 -

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

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

-

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

-

- MD5 sum: c28f119f405a2304ff0a7ccdcc629713 -

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

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

-

- MD5 sum: 67e051268d0c475ea773822f7500d0e5 -

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

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

-

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

-

- MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 -

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

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

-

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

-

- MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 -

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

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

-

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

-

- MD5 sum: 68c5208c58236eba447d7d6d1326b821 -

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

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

-

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

-

- MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc -

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

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

-

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

-

- MD5 sum: 3da91854c960ad8a819b48b2a404eb43 -

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

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

-

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

-

- MD5 sum: 2c095e31e35d6be7b3718477b6d52702 -

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

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

-

- MD5 sum: 417ba948335736d4d81874fba47a30f7 -

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

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

-

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

-

- MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 -

-
-

- Nota -

-

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

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

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

-

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

-

- MD5 sum: 00fce8de158422f5ccd2666512329bd2 -

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

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

-

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

-

- MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b -

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

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

-

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

-

- MD5 sum: 4a4a547e888a944b2f3af31d789a1137 -

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

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

-

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

-

- MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d -

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

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

-

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

-

- MD5 sum: 83650aa943ff2fd519b2abedf8506ace -

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

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

-

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

-

- MD5 sum: 31c86f2ced76acac66992eeedce2fce2 -

-

- SHA256 sum: d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b -

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

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

-

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

-

- MD5 sum: 8551961e36bf8c70b7500d255d3658ec -

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

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

-

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

-

- MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 -

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

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

-

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

-

- MD5 sum: dd571c67d85d89d7f60b854a4e207423 -

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

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

-

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

-

- MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b -

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

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

-

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

-

- MD5 sum: 9e251c0a618ad0824b51117d5d9db87e -

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

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

-

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

-

- MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf -

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

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

-

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

-

- MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f -

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

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

-

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

-

- MD5 sum: cf0fd928b1e5479c8108ee52cb114363 -

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

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

-

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

-

- MD5 sum: d1e93996dba00cab0caa7903cd01d454 -

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

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

-

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

-

- MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f -

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

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

-

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

-

- MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 -

-

- SHA256 sum: 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 -

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

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

-

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

-

- MD5 sum: 12e517cac2b57a0121cda351570f1e63 -

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

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

-

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

-

- MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb -

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

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

-

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

-

- MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 -

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

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

-

- MD5 sum: e81e63acd80697d001c8d85c1acb38a0 -

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

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

-

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

-

- MD5 sum: f029087448357812fba450091a1172ab -

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

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

-

- MD5 sum: 0f51a074cc4faaff93b3c80e9ab27b0c -

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

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

-

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

-

- MD5 sum: 18410cec436f827e698ee9ea16ada9b7 -

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

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

-

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

-

- MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 -

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

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

-

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

-

- MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 -

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

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

-

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

-

- MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 -

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

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

-

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

-

- MD5 sum: 4d6a704bf3e249ef6189b6f17457084b -

-
-

- Nota -

-

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

-

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

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

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

-

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

-

- MD5 sum: 0d90823e1426f1da2fd872df0311298d -

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

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

-

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

-

- MD5 sum: fc7a67ea86ace13195b0bce683fd4469 -

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

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

-

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

-

- MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 -

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

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

-

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

-

- MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 -

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

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

-

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

-

- MD5 sum: 8ed66d5537275df3defffb66d1fb897f -

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

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

-

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

-

- MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 -

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

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

-

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

-

- MD5 sum: bdd3d5efba9c17da8d83a35ec552baef -

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

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

-

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

-

- MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe -

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

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

-

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

-

- MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 -

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

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

-

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

-

- MD5 sum: 7d07e849d77d276891edd579a8832bb3 -

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

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

-

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

-

- MD5 sum: 78ad9937e4caadcba1526ef1853730d5 -

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

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

-

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

-

- MD5 sum: df7ecb0653440b26dc951ad9dbfab517 -

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

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

-

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

-

- MD5 sum: f6e931e319531b736fadc017f470e68a -

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

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

-

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

-

- MD5 sum: d60613e88c2f442ebd462b5a75313d56 -

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

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

-

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

-

- MD5 sum: 8114cd4489b95308efe2509c3a406bbf -

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

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

-

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

-

- MD5 sum: 14e8c22458ed7779a1957b26cde01db9 -

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

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

-

- MD5 sum: ffa52f0017baf72df9d32dec785fd6ab -

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

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

-

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

-

- MD5 sum: 12819fa739a78a6172400f399ab34f81 -

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

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

-

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

-

- MD5 sum: 6d906edfdb3202304059233f51f9a71d -

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

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

-

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

-

- MD5 sum: 5a95ec069aa91508167d02fecafaa912 -

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

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

-

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

-

- MD5 sum: c70599ab0d037fde724f7210c2c8d7f8 -

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

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

-

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

-

- MD5 sum: dc14f92af715bcfa33cc25341730452e -

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

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

-

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

-

- MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf -

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

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

-

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

-

- MD5 sum: 87ea890821d2221f2ab5157bc5eb885f -

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

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

-

- MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a -

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

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

-

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

-

- MD5 sum: a91b404e30561a5df803e6eb3a53be71 -

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

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

-

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

-

- MD5 sum: 4fdfad906ebc85fef30221c10964cce9 -

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

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

-

- MD5 sum: 27cd82f9a61422e186b9d6759ddf1634 -

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

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

-

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

-

- MD5 sum: 755919e658c349cad9e1c7c771742d48 -

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

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

-

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

-

- MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 -

-
-

- Nota -

-

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

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

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

-

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

-

- MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 -

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

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

-

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

-

- MD5 sum: aa1621ec7013a19abab52a8aff04fe5b -

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

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

-

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

-

- MD5 sum: 85adef240c5f370b308da8c938951a68 -

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

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

-

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

-

- MD5 sum: 072b10f71f5820c24761a65f31f43e73 -

-
-
-
-
-

- Tamanho total desses pacotes: cerca de 446 MB -

-
-
-
-
-
-

- 3.3. Patches Necessários -

-
-
-
-

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

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

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

-

- MD5 sum: 3df11b6123d5bbdb0fc83862a003827a -

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

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

-

- MD5 sum: 6a5ac7e89b791aae556de0f745916f7f -

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

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

-

- MD5 sum: 1eeba2736dfea013509f9975365e4e32 -

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

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

-

- MD5 sum: 4709df88e68279e6ef357aa819ba5b1a -

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

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

-

- MD5 sum: 9a5997c3452909b1769918c759eff8a2 -

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

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

-

- MD5 sum: f75cca16a38da6caa7d52151f7136895 -

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

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

-

- MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 -

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

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

-

- MD5 sum: 4900322141d493e74020c9cf437b2cdc -

-
-
-
-
-

- Tamanho total desses patches: cerca de 193.7 KB -

-

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

-
-
-
-
-
-
-

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

-
-
-
-
-
-
-
-

- 4.1. Introdução -

-
-
-
-

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

-
-
-
-
-
-

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

-
-
-
-

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

-

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

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

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

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

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

-
-
-
-

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

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

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

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

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

-
-
- -g - lfs -
-
-

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

-
-
- -m -
-
-

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

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

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

-
-
- lfs -
-
-

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

-
-
-
-

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

-
passwd lfs
-

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

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

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

-
chown -v lfs $LFS/sources
-
-

- Nota -

-

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

-
-

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

-
su - lfs
-

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

-
-
-
-
-
-

- 4.4. Configurando o - Ambiente -

-
-
-
-

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

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

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

-

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

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

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

-
-
- set - +h -
-
-

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

-
-
- umask - 022 -
-
-

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

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

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

-
-
- LC_ALL=POSIX -
-
-

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

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

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

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

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

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

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

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

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

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

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

-
-
- export - ... -
-
-

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

-
-
-
-
-

- Importante -

-

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

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

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

-

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

-
-

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

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

- 4.5. Sobre UPCs -

-
-
-
-

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

-

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

-

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

-

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

-
-

- Nota -

-

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

-
export MAKEFLAGS='-j4'
-

- ou somente construindo com: -

-
make -j4
-

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

-
-
-
-
-
-
-

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

-
-
-
-

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

-

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

-
-

- Nota -

-

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

-
-

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

-

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

-
-
-
-
-
-
-
-

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

-
-
-
-
-
-
-
-

- Material Preliminar - Importante -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

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

-
-

- Importante -

-

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

-
-

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

-
-
-
-
-
-

- Notas Técnicas do - Conjunto de Ferramentas -

-
-
-
-

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

-

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

-

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

-
-

- Acerca da - Compilação Cruzada -

-
-

- Nota -

-

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

-
-

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

-

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

-
-
-
- build -
-
-

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

-
-
- host -
-
-

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

-
-
- target -
-
-

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

-
-
-
-

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

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

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

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

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

-
-
-

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

-
-

- Nota -

-

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

-

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

-
-

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

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

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

-

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

-

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

-
-
-

- Outros - detalhes procedurais -

-

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

-

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

-

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

-

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

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

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

-

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

-

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

-

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

-

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

-

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

-

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

-
-
-
-
-
-
-

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

-
-
-
-

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

-
-
    -
  • -

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

    -
  • -
  • -

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

    -
  • -
  • -

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

    -
    echo $LFS
    -

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

    -
  • -
  • -

    - Finalmente, dois itens importantes devem ser enfatizados: -

    -
    -

    - Importante -

    -

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

    -
    -
      -
    • -

      - bash é o shell - em uso. -

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    • -

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

      -
    • -
    -
    -
    -
    -

    - Importante -

    -

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

    -
    -
      -
    1. -

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

      -
    2. -
    3. -

      - Mude para o diretório dos fontes. -

      -
    4. -
    5. -

      - Para cada pacote: -

      -
      -
        -
      1. -

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

        -

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

        -
      2. -
      3. -

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

        -
      4. -
      5. -

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

        -
      6. -
      7. -

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

        -
      8. -
      9. -

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

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

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

-
-
-
-
-
-
-
-

- 5.1. Introdução -

-
-
-
-

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

-

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

-
-
-
-
-
-

- 5.2. Binutils-2.38 - - Passagem 1 -

-
-
-
-
-

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

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

- 5.2.1. Instalação de Binutils Cruzado -

-
-

- Nota -

-

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

-
-

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

-

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

-
mkdir -v build
-cd       build
-
-

- Nota -

-

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

-
-

- Agora prepare Binutils para compilação: -

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

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

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

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

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

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

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

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

-
-
- --disable-nls -
-
-

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

-
-
- --disable-werror -
-
-

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

-
-
-
-

- Continue compilando o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

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

-
-
-
-
-
-
-

- 5.3. GCC-11.2.0 - Passagem - 1 -

-
-
-
-
-

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

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

- 5.3.1. Instalação de GCC Cruzado -

-

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

-
-

- Nota -

-

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

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

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

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

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

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure                  \
-    --target=$LFS_TGT         \
-    --prefix=$LFS/tools       \
-    --with-glibc-version=2.35 \
-    --with-sysroot=$LFS       \
-    --with-newlib             \
-    --without-headers         \
-    --enable-initfini-array   \
-    --disable-nls             \
-    --disable-shared          \
-    --disable-multilib        \
-    --disable-decimal-float   \
-    --disable-threads         \
-    --disable-libatomic       \
-    --disable-libgomp         \
-    --disable-libquadmath     \
-    --disable-libssp          \
-    --disable-libvtv          \
-    --disable-libstdcxx       \
-    --enable-languages=c,c++
-
-

- O significado das opções de configure: -

-
-
- --with-glibc-version=2.35 -
-
-

- Essa opção especifica a versão de glibc a qual será - usada no alvo. Ela não é relevante para a libc da - distro anfitriã, pois tudo compilado por gcc passagem 1 - executará no ambiente chroot, o qual é isolado de libc - da distro anfitriã. -

-
-
- --with-newlib -
-
-

- Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc - esteja definida quando da construção de libgcc. Isso - evita a compilação de qualquer código que exija suporte - de libc. -

-
-
- --without-headers -
-
-

- Quando da criação de um compilador cruzado completo, - GCC exige cabeçalhos padrão compatíveis com o sistema - alvo. Para nossos propósitos esses cabeçalhos não serão - necessários. Essa chave evita que GCC procure por eles. -

-
-
- --enable-initfini-array -
-
-

- Essa chave força o uso de algumas estruturas internas - de dados que são necessárias, porém não podem ser - detectadas quando da construção de um compilador - cruzado. -

-
-
- --disable-shared -
-
-

- Essa chave força GCC a vincular suas bibliotecas - internas estaticamente. Nós precisamos disso, pois as - bibliotecas compartilhadas exigem glibc, que ainda não - está instalado no sistema alvo. -

-
-
- --disable-multilib -
-
-

- Em x86_64, LFS não suporta uma configuração multilib. - Essa chave é inofensiva para x86. -

-
-
- --disable-decimal-float, - --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, - --disable-libssp, --disable-libvtv, - --disable-libstdcxx -
-
-

- Essas chaves desabilitam suporte para a extensão de - ponto flutuante decimal, threading, libatomic, libgomp, - libquadmath, libssp, libvtv, e a biblioteca padrão C++ - respectivamente. Essas características falharão na - compilação quando da construção de um compilador - cruzado e não são necessárias para a tarefa de compilar - cruzadamente a libc temporária. -

-
-
- --enable-languages=c,c++ -
-
-

- Essa opção garante que apenas os compiladores C e C++ - sejam construídos. Essas são as únicas linguagens - necessárias agora. -

-
-
-
-

- Compile GCC executando: -

-
make
-

- Instale o pacote: -

-
make install
-

- Essa construção de GCC instalou um par de cabeçalhos internos - de sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema - correspondente, nesse caso, $LFS/usr/include/limits.h. Entretanto, ao - tempo dessa construção de GCC, $LFS/usr/include/limits.h não existe, de - forma que o cabeçalho interno recém instalado é um arquivo - parcial, autocontido, e não inclui as características - estendidas do cabeçalho de sistema. Isso é adequado para a - construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho - interno usando um comando que é idêntico ao que o sistema de - construção de GCC faz em circunstâncias normais: -

-
cd ..
-cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
-  `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 5.4. Cabeçalhos da API - do Linux-5.16.9 -

-
-
-
-
-

- Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem - a API do kernel para uso por Glibc. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 1,2 GB -
-
-
-
-
-

- 5.4.1. Instalação dos Cabeçalhos da API do Linux -

-

- O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em - LFS) usar. Isso é feito por meio de sanitizar vários arquivos - de cabeçalho C que são incluídos no tarball de fonte de - kernel Linux. -

-

- Certifique-se de que não existem arquivos obsoletos embutidos - no pacote: -

-
make mrproper
-

- Agora extraia os cabeçalhos de kernel visíveis ao usuário a - partir do fonte. O alvo recomendado de make headers_install não pode ser - usado, pois ele exige rsync, - que talvez não esteja disponível. Os cabeçalhos são primeiro - colocados em ./usr, então - copiados para a localização necessária. -

-
make headers
-find usr/include -name '.*' -delete
-rm usr/include/Makefile
-cp -rv usr/include $LFS/usr
-
-
-

- 5.4.2. Conteúdo dos Cabeçalhos - da API do Linux -

-
-
-
- Cabeçalhos instalados: - /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, - /usr/include/mtd/*.h, /usr/include/rdma/*.h, - /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h -
-
- Diretórios instalados: - /usr/include/asm, - /usr/include/asm-generic, /usr/include/drm, - /usr/include/linux, /usr/include/misc, /usr/include/mtd, - /usr/include/rdma, /usr/include/scsi, /usr/include/sound, - /usr/include/video, and /usr/include/xen -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- /usr/include/asm/*.h -

-
-

- Os Cabeçalhos API ASM Linux -

-
-

- /usr/include/asm-generic/*.h -

-
-

- Os Cabeçalhos Genéricos API ASM Linux -

-
-

- /usr/include/drm/*.h -

-
-

- Os Cabeçalhos API DRM Linux -

-
-

- /usr/include/linux/*.h -

-
-

- Os Cabeçalhos Linux API Linux -

-
-

- /usr/include/misc/*.h -

-
-

- Os Cabeçalhos Miscelâneas API Linux -

-
-

- /usr/include/mtd/*.h -

-
-

- Os Cabeçalhos API MTD Linux -

-
-

- /usr/include/rdma/*.h -

-
-

- Os Cabeçalhos API RDMA Linux -

-
-

- /usr/include/scsi/*.h -

-
-

- Os Cabeçalhos API SCSI Linux -

-
-

- /usr/include/sound/*.h -

-
-

- Os Cabeçalhos de Som API Linux -

-
-

- /usr/include/video/*.h -

-
-

- Os Cabeçalhos de Vídeo API Linux -

-
-

- /usr/include/xen/*.h -

-
-

- Os Cabeçalhos Xen API Linux -

-
-
-
-
-
-
-
-
-

- 5.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.5.1. Instalação de Glibc -

-

- Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de - compatibilidade exigido para a operação adequada do - carregador dinâmico de biblioteca: -

-
case $(uname -m) in
-    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
-    ;;
-    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-            ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
-    ;;
-esac
-
-

- Nota -

-

- O comando acima está correto. O comando ln tem umas poucas - versões sintáticas, de forma que tenha certeza de verificar - info coreutils - ln e ln(1) - antes de relatar o que você talvez pense que seja um erro. -

-
-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- A seguir, prepare Glibc para compilação: -

-
../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGT                    \
-      --build=$(../scripts/config.guess) \
-      --enable-kernel=3.2                \
-      --with-headers=$LFS/usr/include    \
-      libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --host=$LFS_TGT, - --build=$(../scripts/config.guess) -
-
-

- O efeito combinado dessas chaves é o de que o sistema - de construção do Glibc se autoconfigura para ser - compilado cruzadamente, usando o vinculador cruzado e - compilador cruzado em $LFS/tools. -

-
-
- --enable-kernel=3.2 -
-
-

- Isso diz a Glibc para compilar a biblioteca com suporte - para kernels Linux 3.2 e posteriores. Contornos para - kernels antigos não estão habilitados. -

-
-
- --with-headers=$LFS/usr/include -
-
-

- Isso diz a Glibc para compilar a si mesmo com os - cabeçalhos recentemente instalados no diretório - $LFS/usr/include, de forma que ele saiba exatamente - quais características o kernel tem e possa otimizar-se - adequadamente. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Isso garante que a biblioteca seja instalada em - /usr/lib em vez do padrão /lib64 em máquinas de 64 - bits. -

-
-
-
-

- Durante este estágio o seguinte alerta pode aparecer: -

-
-
-
configure: WARNING:
-*** These auxiliary programs are missing or
-*** incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.
-
-
-

- O aplicativo msgfmt faltando ou - incompatível geralmente é inofensivo. Esse aplicativo - msgfmt é parte - do pacote Gettext que a distribuição anfitriã deveria - fornecer. -

-
-

- Nota -

-

- Tem havido relatos de que esse pacote talvez falhe quando - da construção como um "parallel make". Se isso ocorrer, - então reexecute o comando make com uma opção "-j1". -

-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
-

- Atenção -

-

- Se LFS não estiver adequadamente - configurada, e a despeito das recomendações, você estiver - construindo como root, - então o próximo comando instalará a recém construída glibc - em seu sistema anfitrião, o que possivelmente o tornará - inutilizável. Portanto, verifique duas vezes se o ambiente - está corretamente configurado, antes de executar o seguinte - comando. -

-
-
make DESTDIR=$LFS install
-
-

- O significado da opção make install: -

-
-
- DESTDIR=$LFS -
-
-

- A variável DESTDIR de make é - usada por quase todos os pacotes para definir a - localização onde o pacote deveria ser instalado. Se ela - não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós - especificamos que o pacote seja instalado em - $LFS, que se tornará a - raiz após Seção 7.4, - “Entrando no Ambiente Chroot”. -

-
-
-
-

- Corrija caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
-
-

- Cuidado -

-

- Neste ponto, é imperativo parar e certificar-se de que as - funções básicas (compilar e lincar) do novo conjunto de - ferramentas estão funcionando como esperado. Para realizar - uma verificação de sanidade, execute os seguintes comandos: -

-
echo 'int main(){}' > dummy.c
-$LFS_TGT-gcc dummy.c
-readelf -l a.out | grep '/ld-linux'
-

- Se tudo estiver funcionando corretamente, então não - deveriam existir quaisquer erros, e a saída do último - comando será na forma: -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Note que para máquinas de 32 bits, o nome do interpretador - será /lib/ld-linux.so.2. -

-

- Se a saída não for mostrada como acima ou não existir saída - nenhuma, então alguma coisa está errada. Investigue e - retrace os passos para encontrar onde está o problema e - corrija-o. Esse problema deve ser resolvido antes de - continuar. -

-

- Uma vez que tudo esteja bem, limpe os arquivos de teste: -

-
rm -v dummy.c a.out
-
-
-

- Nota -

-

- Construir pacotes no próximo capítulo servirá como uma - verificação adicional de que o conjunto de ferramentas foi - construído adequadamente. Se algum pacote, especialmente - binutils-passagem 2 ou gcc-passagem 2, falhar na - construção, então isso é uma indicação de que alguma coisa - deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. -

-
-

- Agora que nosso conjunto de ferramentas cruzadas está - completa, finalize a instalação do cabeçalho limits.h. Para - fazer isso, execute um utilitário fornecido pelas(os) - desenvolvedoras(os) de GCC: -

-
$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.5.3, “Conteúdo - de Glibc.” -

-
-
-
-
-
-
-

- 5.6. Libstdc++ - oriundo de GCC-11.2.0, Passagem 1 -

-
-
-
-
-

- Libstdc++ é a biblioteca padrão C++. Ela é necessária para - compilar código C++ (parte de GCC é escrito em C++), porém - nós tivemos que adiar sua instalação quando construímos - gcc-pass1, pois ela - depende de glibc, que ainda não estava disponível no - diretório alvo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.6.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure           \
-    --host=$LFS_TGT                 \
-    --build=$(../config.guess)      \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch         \
-    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0
-
-

- O significado das opções de configure: -

-
-
- --host=... -
-
-

- Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em - /usr/bin. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
- --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 -
-
-

- Isso especifica o diretório de instalação para arquivos - include. Por causa de libstdc++ ser a biblioteca padrão - C++ para LFS, esse diretório deveria coincidir com a - localização onde o compilador C++ ($LFS_TGT-g++) - procuraria pelos arquivos include C++ padrão. Em uma - construção normal, essa informação é automaticamente - passada para as opções configure de - libstdc++ a partir do diretório de nível de topo. Em - nosso caso, essa informação deve ser explicitamente - dada. O compilador C++ precederá o caminho raiz de - sistema $LFS - (especificado quando da construção de GCC passagem 1) - para o caminho de pesquisa de arquivo include, de forma - que ele atualmente pesquisará em $LFS/tools/$LFS_TGT/include/c++/11.2.0. - A combinação da variável DESTDIR (no comando - make - install abaixo) e essa chave garante - instalar os cabeçalhos lá. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 6. Compilando - Cruzadamente Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- 6.1. Introdução -

-
-
-
-

- Este capítulo mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto de ferramentas - cruzadas. Esses utilitários são instalados no local final - deles, porém ainda não podem ser usados. Tarefas básicas ainda - dependem das ferramentas do anfitrião. Apesar disso, as - bibliotecas instaladas são usadas quando da vinculação. -

-

- O uso dos utilitários será possível no próximo capítulo após - entrada no ambiente chroot. Porém, todos os pacotes - construídos no presente capítulo precisam ser construídos antes - que façamos isso. Dessa forma nós ainda não podemos ficar - independentes do sistema anfitrião. -

-

- Uma vez mais, permita-nos relembrar que a configuração - inapropriada de LFS junto com a - construção como root, talvez - torne seu computador inutilizável. Este capítulo inteiro - precisa ser feito como usuária(o) lfs, com o ambiente conforme descrito em - Seção 4.4, - “Configurando o Ambiente”. -

-
-
-
-
-
-

- 6.2. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 6.2.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.12.2, “Conteúdo - de M4.” -

-
-
-
-
-
-
-

- 6.3. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 6.3.1. Instalação de Ncurses -

-

- Primeiro, assegure que gawk é encontrado primeiro - durante a configuração: -

-
sed -i s/mawk// configure
-

- Então, execute os seguintes comandos para construir o - aplicativo tic no anfitrião de construção: -

-
mkdir build
-pushd build
-  ../configure
-  make -C include
-  make -C progs tic
-popd
-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr                \
-            --host=$LFS_TGT              \
-            --build=$(./config.guess)    \
-            --mandir=/usr/share/man      \
-            --with-manpage-format=normal \
-            --with-shared                \
-            --without-debug              \
-            --without-ada                \
-            --without-normal             \
-            --disable-stripping          \
-            --enable-widec
-
-

- O significado das novas opções de - configure: -

-
-
- --with-manpage-format=normal -
-
-

- Isso evita que Ncurses instale páginas comprimidas de - manual, o que talvez aconteceu se a própria - distribuição anfitriã tiver páginas comprimidas de - manual. -

-
-
- --without-ada -
-
-

- Isso assegura que Ncurses não construa suporte para o - compilador Ada, o qual talvez esteja presente no - anfitrião, porém não estará disponível até que nós - entremos no ambiente chroot. -

-
-
- --disable-stripping -
-
-

- Essa chave impede o sistema de construção de despojar - os aplicativos usando o aplicativo strip oriundo do - anfitrião. O uso de ferramentas de anfitrião em - aplicativo compilado cruzadamente pode causar falha. -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
-echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
-
-

- O significado das opções de install: -

-
-
- TIC_PATH=$(pwd)/build/progs/tic -
-
-

- Nós precisamos passar o caminho do recém construído - tic apto - para executar na máquina de construção, de forma que a - base de dados de terminal possa ser criada sem erros. -

-
-
- echo - "INPUT(-lncursesw)" > - $LFS/usr/lib/libncurses.so -
-
-

- A biblioteca libncurses.so é necessária para uns - poucos pacotes que nós construiremos breve. Nós criamos - esse pequeno script vinculador, pois isso é o que é - feito em - Capítulo 8. -

-
-
-
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.28.2, - “Conteúdo de Ncurses.” -

-
-
-
-
-
-
-

- 6.4. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-
-

- 6.4.1. Instalação de Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                   \
-            --build=$(support/config.guess) \
-            --host=$LFS_TGT                 \
-            --without-bash-malloc
-
-

- O significado das opções de configure: -

-
-
- --without-bash-malloc -
-
-

- Essa opção desliga o uso da função de alocação de - memória do Bash (malloc) - a qual é conhecida por causar falhas de segmentação. Ao - se desligar essa opção, Bash usará as funções - malloc originárias de - Glibc que são mais estáveis. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Faça um link para os aplicativos que usam sh para um shell: -

-
ln -sv bash $LFS/bin/sh
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.34.2, “Conteúdo - do Bash.” -

-
-
-
-
-
-
-

- 6.5. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 6.5.1. Instalação de Coreutils -

-

- Prepare Coreutils para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --enable-install-program=hostname \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- --enable-install-program=hostname -
-
-

- Isso habilita o binário hostname para ser - construído e instalado – ele é desabilitado por - padrão, porém é exigido pela suíte de teste de Perl. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Mova aplicativos para seus locais finais esperados. Apesar de - isso não ser necessário neste ambiente temporário, nós - precisamos fazer isso, pois alguns aplicativos codificam - rigidamente locais de executável: -

-
mv -v $LFS/usr/bin/chroot              $LFS/usr/sbin
-mkdir -pv $LFS/usr/share/man/man8
-mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/'                    $LFS/usr/share/man/man8/chroot.8
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.53.2, - “Conteúdo do Coreutils.” -

-
-
-
-
-
-
-

- 6.6. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 27 MB -
-
-
-
-
-

- 6.6.1. Instalação de Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.55.2, - “Conteúdo do Diffutils.” -

-
-
-
-
-
-
-

- 6.7. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 6.7.1. Instalação de File -

-

- O comando file - no anfitrião de construção precisa ser da mesma versão que - aquele que nós estamos construindo com a finalidade de criar - o arquivo de assinatura. Execute os seguintes comandos para - construí-lo: -

-
mkdir build
-pushd build
-  ../configure --disable-bzlib      \
-               --disable-libseccomp \
-               --disable-xzlib      \
-               --disable-zlib
-  make
-popd
-
-

- O significado da nova opção de configure: -

-
-
- --disable-* -
-
-

- O script de configuração tenta usar alguns pacotes - originários da distribuição anfitriã se os arquivos de - biblioteca correspondentes existirem. Isso talvez cause - falha de compilação se um arquivo de biblioteca - existir, porém os arquivos de cabeçalhos - correspondentes não. Essas opções impedem o uso dessas - capacidades desnecessárias a partir do anfitrião. -

-
-
-
-

- Prepare File para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)
-

- Compile o pacote: -

-
make FILE_COMPILE=$(pwd)/build/src/file
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.10.2, “Conteúdo - de File.” -

-
-
-
-
-
-
-

- 6.8. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 42 MB -
-
-
-
-
-

- 6.8.1. Instalação de Findutils -

-

- Prepare Findutils para compilação: -

-
./configure --prefix=/usr                   \
-            --localstatedir=/var/lib/locate \
-            --host=$LFS_TGT                 \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.57.2, - “Conteúdo do Findutils.” -

-
-
-
-
-
-
-

- 6.9. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 6.9.1. Instalação de Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.56.2, “Conteúdo - do Gawk.” -

-
-
-
-
-
-
-

- 6.10. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 26 MB -
-
-
-
-
-

- 6.10.1. Instalação de Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.33.2, “Conteúdo - do Grep.” -

-
-
-
-
-
-
-

- 6.11. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 11 MB -
-
-
-
-
-

- 6.11.1. Instalação de Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.60.2, “Conteúdo - do Gzip.” -

-
-
-
-
-
-
-

- 6.12. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.12.1. Instalação de Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr   \
-            --without-guile \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-
-

- O significado da nova opção de configure: -

-
-
- --without-guile -
-
-

- Apesar de nós estarmos compilando cruzadamente, - configure tenta usar guile a partir do anfitrião de - construção se encontrá-lo. Isso provoca falha de - compilação, de forma que essa chave impede o uso de - guile. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.64.2, “Conteúdo - do Make.” -

-
-
-
-
-
-
-

- 6.13. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 6.13.1. Instalação de Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.65.2, - “Conteúdo do Patch.” -

-
-
-
-
-
-
-

- 6.14. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 6.14.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.29.2, “Conteúdo - do Sed.” -

-
-
-
-
-
-
-

- 6.15. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 6.15.1. Instalação de Tar -

-

- Prepare Tar para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.66.2, “Conteúdo - do Tar.” -

-
-
-
-
-
-
-

- 6.16. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.16.1. Instalação de Xz -

-

- Prepare Xz para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --disable-static                  \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.8.2, “Conteúdo de - Xz.” -

-
-
-
-
-
-
-

- 6.17. Binutils-2.38 - - Passagem 2 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1,3 UPC -
-
- Espaço em disco - exigido: 520 MB -
-
-
-
-
-

- 6.17.1. Instalação de Binutils -

-

- Binutils entrega uma cópia desatualizada de libtool no - tarball. Ela carece de suporte de raiz de sistema de forma - que os binários produzidos serão erroneamente vinculados à - bibliotecas originárias da distribuição anfitriã. Contorne - esse problema: -

-
sed '6009s/$add_dir//' -i ltmain.sh
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure                   \
-    --prefix=/usr              \
-    --build=$(../config.guess) \
-    --host=$LFS_TGT            \
-    --disable-nls              \
-    --enable-shared            \
-    --disable-werror           \
-    --enable-64-bit-bfd
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-shared -
-
-

- Constrói libbfd como uma - biblioteca compartilhada. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 6.18. GCC-11.2.0 - - Passagem 2 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 6.18.1. Instalação de GCC -

-

- Como na primeira construção de GCC, os pacotes GMP, MPFR, e - MPC são exigidos. Desempacote os tarballs e mova-os para os - nomes de diretório exigidos: -

-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Se construindo em x86_64, então mude o nome padrão de - diretório para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Crie um link simbólico que permite que libgcc seja construída - com suporte posix de camadas: -

-
mkdir -pv $LFS_TGT/libgcc
-ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
-

- Antes de iniciar a construção de GCC, lembre-se de - desconfigurar quaisquer variáveis de ambiente que substituam - os sinalizadores de otimização padrão. -

-

- Agora prepare GCC para compilação: -

-
../configure                                       \
-    --build=$(../config.guess)                     \
-    --host=$LFS_TGT                                \
-    --prefix=/usr                                  \
-    CC_FOR_TARGET=$LFS_TGT-gcc                     \
-    --with-build-sysroot=$LFS                      \
-    --enable-initfini-array                        \
-    --disable-nls                                  \
-    --disable-multilib                             \
-    --disable-decimal-float                        \
-    --disable-libatomic                            \
-    --disable-libgomp                              \
-    --disable-libquadmath                          \
-    --disable-libssp                               \
-    --disable-libvtv                               \
-    --disable-libstdcxx                            \
-    --enable-languages=c,c++
-
-

- O significado das novas opções de - configure: -

-
-
- -with-build-sysroot=$LFS -
-
-

- Normalmente, usar --host garante que um - compilador cruzado seja usado para construir GCC, e que - o compilador sabe que tem que procurar por cabeçalhos e - bibliotecas em $LFS. - Porém, o sistema de construção de GCC usa outras - ferramentas, que não estão cientes dessa localização. - Essa chave é necessária para que elas busquem os - arquivos necessários em $LFS, e não no anfitrião. -

-
-
- --enable-initfini-array -
-
-

- Essa opção é automaticamente habilitada quando da - construção de um compilador nativo com um compilador - nativo em x86. Porém, aqui, nós construímos com um - compilador cruzado, de forma que nós precisamos - explicitamente configurar essa opção. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Como um toque final, crie um link simbólico utilitário. - Muitos aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em - todos os tipos de sistemas UNIX onde o compilador C de GNU - nem sempre está instalado. Executar cc deixa a(o) - administradora(r) de sistema livre para decidir qual - compilador C instalar: -

-
ln -sv gcc $LFS/usr/bin/cc
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 7. - Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais -

-
-
-
-
-
-
-
-

- 7.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir os últimos bits que faltam - no sistema temporário: as ferramentas necessárias para o - maquinário de construção de vários pacotes. Agora que todas as - dependências circulares foram resolvidas, um ambiente - chroot, completamente isolado do - sistema operacional anfitrião (exceto pelo kernel em execução), - pode ser usado para a construção. -

-

- Para operação adequada do ambiente isolado, alguma comunicação - com o kernel em execução precisa ser estabelecida. Isso é feito - por meio dos assim chamados Sistemas - de Arquivos Virtuais de Kernel, que precisam ser - montados quando da entrada no ambiente chroot. Você talvez - queira verificar que eles estejam montados emitindo - findmnt. -

-

- Até Seção 7.4, - “Entrando no Ambiente Chroot”, os comandos - precisam ser executados como root, com a variável LFS configurada. Após a entrada em chroot, todos - os comandos são executados como root, por sorte sem acesso ao - OS do computador no qual que você construiu LFS. Seja - cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. -

-
-
-
-
-
-

- 7.2. Mudando - Propriedade -

-
-
-
-
-

- Nota -

-

- Os comandos no resto deste livro precisam ser realizados - enquanto logada(o) como usuária(o) root e não mais como usuária(o) - lfs. Também, verifique - duplamente que $LFS está - configurada no ambiente do root. -

-
-

- Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade da(o) usuária(o) - lfs, uma(m) usuária(o) que - existe somente no sistema anfitrião. Se os diretórios e - arquivos sob $LFS forem mantidos - como estão, então eles serão de propriedade de um ID de - usuária(o) sem uma conta correspondente. Isso é perigoso, pois - uma conta de usuária(o) criada posteriormente poderia receber - esse mesmo ID de usuária(o) e se tornaria proprietária(o) de - todos os arquivos sob $LFS, dessa - forma expondo esses arquivos a possível manipulação maliciosa. -

-

- Para endereçar esse problema, mude a propriedade dos diretórios - $LFS/* para usuária(o) - root executando o seguinte - comando: -

-
chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -R root:root $LFS/lib64 ;;
-esac
-
-
-
-
-
-

- 7.3. Preparando Sistemas de - Arquivos Virtuais de Kernel -

-
-
-
-

- Vários sistemas de arquivos exportados pelo kernel são usados - para comunicar para e oriunda do próprio kernel. Esses sistemas - de arquivos são virtuais uma vez que nenhum espaço de disco é - usado por eles. O conteúdo dos sistemas de arquivos reside em - memória. -

-

- Comece criando diretórios nos quais os sistemas de arquivos - serão montados: -

-
mkdir -pv $LFS/{dev,proc,sys,run}
-
-

- 7.3.1. Criando Nós de Dispositivos Iniciais -

-

- Quando o kernel inicializa o sistema, ele exige a presença de - alguns nós de dispositivos, em particular os dispositivos - console e null. Os nós de dispositivos precisam ser - criados no disco rígido de modo que eles estejam disponíveis - antes que o kernel povoe /dev), e adicionalmente quando Linux é - iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -

-
mknod -m 600 $LFS/dev/console c 5 1
-mknod -m 666 $LFS/dev/null c 1 3
-
-
-

- 7.3.2. Montando e Povoando /dev -

-

- O método recomendado de povoar o diretório /dev com dispositivos é montar um sistema - de arquivos virtuais (tal como tmpfs) no diretório /dev, e permitir que os dispositivos sejam - criados dinamicamente naquele sistema de arquivos virtuais - conforme eles sejam detectados ou acessados. Criação de - dispositivos é geralmente feita durante o processo de - inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário - montar e povoar /dev - manualmente. Isso é conseguido montando com bind o diretório - /dev do sistema anfitrião. Uma - montagem com bind é um tipo especial de montagem que permite - que você crie um espelho de um diretório ou ponto de montagem - para alguma outra localização. Use o seguinte comando para - conseguir isso: -

-
mount -v --bind /dev $LFS/dev
-
-
-

- 7.3.3. Montando Sistemas de - Arquivos Virtuais de Kernel -

-

- Agora monte os restantes sistemas de arquivos virtuais de - kernel: -

-
mount -v --bind /dev/pts $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run
-

- Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi - montado acima então, nesse caso, apenas um diretório precisa - ser criado. -

-
if [ -h $LFS/dev/shm ]; then
-  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
-fi
-
-
-
-
-
-
-

- 7.4. Entrando no Ambiente - Chroot -

-
-
-
-

- Agora que todos os pacotes que são exigidos para construir o - resto das ferramentas necessárias estão no sistema, é hora de - entrar no ambiente chroot para finalizar a instalação das - restantes ferramentas temporárias. Esse ambiente estará em uso - também para a instalação do sistema final. Como usuária(o) - root, execute o seguinte - comando para entrar no ambiente que é, neste momento, povoado - apenas com as ferramentas temporárias: -

-
chroot "$LFS" /usr/bin/env -i   \
-    HOME=/root                  \
-    TERM="$TERM"                \
-    PS1='(lfs chroot) \u:\w\$ ' \
-    PATH=/usr/bin:/usr/sbin     \
-    /bin/bash --login
-

- A opção -i dada para o - comando env - limpará todas as variáveis do ambiente chroot. Depois disso, - apenas as variáveis HOME, - TERM, PS1, e PATH são - configuradas novamente. A construção TERM=$TERM configurará a variável - TERM dentro de chroot para o mesmo - valor que fora de chroot. Essa variável é necessária para - aplicativos como vim e less operarem adequadamente. - Se outras variáveis forem desejadas, tais como CFLAGS ou CXXFLAGS, - então esse é um bom lugar para configurá-las novamente. -

-

- Deste ponto em diante, não mais há necessidade de usar a - variável LFS, pois todo o trabalho - estará restrito ao sistema de arquivos de LFS. Isso acontece - pois o shell Bash é informado que $LFS agora é o diretório raiz (/). -

-

- Perceba que /tools/bin não está - no PATH. Isso significa que o - conjunto de ferramentas cruzadas não mais será usado no - ambiente chroot. -

-

- Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi - criado. -

-
-

- Nota -

-

- É importante que todos os comandos até o final deste capítulo - e nos capítulos seguintes sejam executados de dentro do - ambiente chroot. Se você deixar esse ambiente por qualquer - razão (reiniciar, por exemplo), então certifique-se que os - sistemas de arquivos virtuais de kernel estejam montados como - explicado em Seção 7.3.2, - “Montando e Povoando /dev” e Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de - Kernel” e entre no chroot novamente antes de - continuar a instalação. -

-
-
-
-
-
-
-

- 7.5. Criando Diretórios -

-
-
-
-

- É tempo de criar a estrutura completa no sistema de arquivos - LFS. -

-

- Crie alguns diretórios de nível de raiz que não estão no - conjunto limitado exigido nos capítulos anteriores emitindo o - seguinte comando: -

-
-

- Nota -

-

- Alguns dos diretórios abaixo já foram criados anteriormente - com instruções explícitas ou quando da instalação de alguns - pacotes. Elas estão repetidas abaixo para completude. -

-
-
mkdir -pv /{boot,home,mnt,opt,srv}
-

- Crie o conjunto exigido de subdiretórios abaixo do nível de - raiz emitindo os seguintes comandos: -

-
mkdir -pv /etc/{opt,sysconfig}
-mkdir -pv /lib/firmware
-mkdir -pv /media/{floppy,cdrom}
-mkdir -pv /usr/{,local/}{include,src}
-mkdir -pv /usr/local/{bin,lib,sbin}
-mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
-mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
-mkdir -pv /usr/{,local/}share/man/man{1..8}
-mkdir -pv /var/{cache,local,log,mail,opt,spool}
-mkdir -pv /var/lib/{color,misc,locate}
-
-ln -sfv /run /var/run
-ln -sfv /run/lock /var/lock
-
-install -dv -m 0750 /root
-install -dv -m 1777 /tmp /var/tmp
-

- Diretórios são, por padrão, criados com modo de permissão 755, - mas isso não é desejável para todos os diretórios. Nos comandos - acima, duas mudanças são feitas—uma para o diretório home - da(o) usuária(o) root, e outra - para os diretórios para arquivos temporários. -

-

- A primeira mudança de modo assegura que nem qualquer pessoa - possa entrar no diretório /root—o mesmo que uma(m) usuária(o) - normal faria com o diretório home dela ou dele. A segunda - mudança de modo garante que qualquer usuária(o) possa escrever - nos diretórios /tmp e - /var/tmp, mas não possa remover - deles os arquivos de outras(os) usuárias(os). Essa última é - proibida pelo assim chamado sticky - bit, o bit mais alto (1) na máscara de - bits 1777. -

-
-

- 7.5.1. Nota de conformidade FHS -

-

- A árvore de diretório é baseada no Padrão de Hierarquia de - Sistema de Arquivos (Filesystem Hierarchy Standard - FHS) - (disponível em https://refspecs.linuxfoundation.org/fhs.shtml). - O FHS também especifica a existência opcional de alguns - diretórios tais como /usr/local/games e /usr/share/games. Nós criamos apenas os - diretórios que são necessários. Entretanto, sinta-se livre - para criar esses diretórios. -

-
-
-
-
-
-
-

- 7.6. Criando Arquivos - Essenciais e Links Simbólicos -

-
-
-
-

- Historicamente, o Linux mantém uma lista dos sistemas de - arquivos montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de - arquivos /proc. Para satisfazer - utilitários que esperam a presença de /etc/mtab, crie o seguinte link simbólico: -

-
ln -sv /proc/self/mounts /etc/mtab
-

- Crie um arquivo /etc/hosts básico - para ser referenciado em algumas suítes de teste, e em um dos - arquivos de configuração do Perl também: -

-
cat > /etc/hosts << EOF
-127.0.0.1  localhost $(hostname)
-::1        localhost
-EOF
-

- Para que a(o) usuária(o) root - seja capaz de logar e para que o nome root - seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e - /etc/group. -

-

- Crie o arquivo /etc/passwd - executando o seguinte comando: -

-
cat > /etc/passwd << "EOF"
-root:x:0:0:root:/root:/bin/bash
-bin:x:1:1:bin:/dev/null:/usr/bin/false
-daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
-messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
-uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false
-EOF
-

- A senha atual para root será - configurada mais tarde. -

-

- Crie o arquivo /etc/group - executando o seguinte comando: -

-
cat > /etc/group << "EOF"
-root:x:0:
-bin:x:1:daemon
-sys:x:2:
-kmem:x:3:
-tape:x:4:
-tty:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-video:x:12:
-utmp:x:13:
-usb:x:14:
-cdrom:x:15:
-adm:x:16:
-messagebus:x:18:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-uuidd:x:80:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:
-EOF
-

- Os grupos criados não são parte de qualquer padrão—eles - são grupos decididos em parte pelas exigências da configuração - de Udev no Capítulo 9, e em parte pelas convenções comuns - empregadas por um número de distribuições Linux existentes. Em - adição, algumas suítes de teste dependem de usuárias(os) ou - grupos específicos. A Base Padrão Linux (Linux Standard Base - - LSB, disponível em http://refspecs.linuxfoundation.org/lsb.shtml) - apenas recomenda que, além do grupo root com um ID de Grupo (GID) de 0, um - grupo bin com um GID de 1 - esteja presente. Todos os outros nomes de grupo e GIDs podem - ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de - GID, mas sim usam o nome do grupo. -

-

- Alguns testes em Capítulo 8 - precisam de uma(m) usuária(o) regular. Nós adicionamos essa(e) - usuária(o) aqui e deletamos essa conta ao final daquele - capítulo. -

-
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
-echo "tester:x:101:" >> /etc/group
-install -o tester -d /home/tester
-

- Para remover o prompt I have no name!, inicie um novo - shell. Uma vez que os arquivos /etc/passwd e /etc/group foram criados, resolução de nome - de usuária(o) e nome de grupo agora funcionará: -

-
exec /usr/bin/bash --login
-

- Os aplicativos login, agetty, e init (e outros) usam um - número de arquivos de log para registrar informação tais como - quem esteve logada(o) no sistema e quando. Entretanto, esses - aplicativos não escreverão nos arquivos de log se eles já não - existirem. Inicialize os arquivos de log e dê a eles permissões - adequadas: -

-
touch /var/log/{btmp,lastlog,faillog,wtmp}
-chgrp -v utmp /var/log/lastlog
-chmod -v 664  /var/log/lastlog
-chmod -v 600  /var/log/btmp
-

- O arquivo /var/log/wtmp registra - todos os logins e logouts. O arquivo /var/log/lastlog registra quando cada - usuária(o) logou pela última vez. O arquivo /var/log/faillog registra tentativas de login - falhas. O arquivo /var/log/btmp - registra tentativas de login inválidas. -

-
-

- Nota -

-

- O arquivo /run/utmp registra - as(os) usuárias(os) que estão atualmente logadas(os). Esse - arquivo é criado dinamicamente nos scripts de inicialização. -

-
-
-
-
-
-
-

- 7.7. Libstdc++ - oriundo de GCC-11.2.0, Passagem 2 -

-
-
-
-
-

- Quando da construção de gcc-pass2 nós tivemos que - adiar a instalação da biblioteca padrão C++, pois nenhum - compilador adequado estava disponível para compilá-la. Nós - não poderíamos usar o compilador construído naquela seção, - por causa de que ele é um compilador nativo e não deveria ser - usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 1,1 GB -
-
-
-
-
-

- 7.7.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um link que existe quando da construção de libstdc++ na - árvore de gcc: -

-
ln -s gthr-posix.h libgcc/gthr-default.h
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure            \
-    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
-    --prefix=/usr                    \
-    --disable-multilib               \
-    --disable-nls                    \
-    --host=$(uname -m)-lfs-linux-gnu \
-    --disable-libstdcxx-pch
-
-

- O significado das opções de configure: -

-
-
- CXXFLAGS="-g -O2 - -D_GNU_SOURCE" -
-
-

- Esses sinalizadores são passados pelo Makefile de nível - de topo quando da feitura de uma construção completa de - GCC. -

-
-
- --host=$(uname - -m)-lfs-linux-gnu -
-
-

- Nós temos que imitar o que teria acontecido se esse - pacote fosse construído como parte de uma construção - completa de compilador. Essa chave teria sido passada - para configure pelo maquinário de construção do GCC. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 7.8. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 280 MB -
-
-
-
-
-

- 7.8.1. Instalação de Gettext -

-

- Para nosso conjunto temporário de ferramentas, nós apenas - precisamos instalar três aplicativos originários de Gettext. -

-

- Prepare Gettext para compilação: -

-
./configure --disable-shared
-
-

- O significado da opção de configure: -

-
-
- --disable-shared -
-
-

- Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não - existe necessidade de construí-las. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale os aplicativos msgfmt, msgmerge, e xgettext: -

-
cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.31.2, - “Conteúdo do Gettext.” -

-
-
-
-
-
-
-

- 7.9. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 7.9.1. Instalação de Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/bison-3.8.2
-
-

- O significado da nova opção de configure: -

-
-
- --docdir=/usr/share/doc/bison-3.8.2 -
-
-

- Isso diz ao sistema de construção para instalar - documentação de bison em um diretório versionado. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.32.2, - “Conteúdo do Bison.” -

-
-
-
-
-
-
-

- 7.10. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 272 MB -
-
-
-
-
-

- 7.10.1. Instalação de Perl -

-

- Prepare Perl para compilação: -

-
sh Configure -des                                        \
-             -Dprefix=/usr                               \
-             -Dvendorprefix=/usr                         \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl     \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl     \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl     \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl    \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl
-
-

- O significado das novas opções de - Configure: -

-
-
- -des -
-
-

- Essa é uma combinação de três opções: -d usa padrões - para todos os itens; -e assegura completamento de todas - as tarefas; -s silencia saída não essencial. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.41.2, “Conteúdo - do Perl.” -

-
-
-
-
-
-
-

- 7.11. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 1,2 UPC -
-
- Espaço em disco - exigido: 359 MB -
-
-
-
-
-

- 7.11.1. Instalação de Python -

-
-

- Nota -

-

- Existem dois arquivos de pacotes cujos nomes se iniciam com - python. Aquele a se extrair a - partir dele é Python-3.10.2.tar.xz (perceba a primeira - letra maiúscula). -

-
-

- Prepare Python para compilação: -

-
./configure --prefix=/usr   \
-            --enable-shared \
-            --without-ensurepip
-
-

- O significado da opção de configure: -

-
-
- --enable-shared -
-
-

- Essa chave impede instalação de bibliotecas estáticas. -

-
-
- --without-ensurepip -
-
-

- Essa chave desabilita o instalador de pacote de Python, - o qual não é necessário neste estágio. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Alguns módulos de Python 3 não podem ser construídos agora, - por causa de que as dependências não estão instaladas - ainda. O sistema de construção ainda tenta construí-las, - entretanto, de forma que a compilação de alguns arquivos - falhará e a mensagem de compilador talvez pareça indicar - fatal - error. A mensagem deveria ser - ignorada. Apenas tenha certeza de que o comando de nível de - topo make não - tenha falhado. Os módulos opcionais não são necessários - agora e eles serão construídos em Capítulo 8. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.50.2, - “Conteúdo do Python 3.” -

-
-
-
-
-
-
-

- 7.12. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 109 MB -
-
-
-
-
-

- 7.12.1. Instalação de Texinfo -

-

- Primeiro, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.67.2, - “Conteúdo do Texinfo.” -

-
-
-
-
-
-
-

- 7.13. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém diversos aplicativos utilitários. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 129 MB -
-
-
-
-
-

- 7.13.1. Instalação de Util-linux -

-

- O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual diretório - /etc como a localização para o - arquivo adjtime. Crie esse - diretório com: -

-
mkdir -pv /var/lib/hwclock
-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
-            --libdir=/usr/lib    \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python     \
-            runstatedir=/run
-
-

- O significado das opções de configure: -

-
-
- ADJTIME_PATH=/var/lib/hwclock/adjtime -
-
-

- Isso configura a localização do arquivo gravando - informação acerca do relógio de hardware de acordo com - o FHS. Isso não é estritamente necessário para essa - ferramenta temporária, porém impede a criação de um - arquivo em outra localização, o qual não seria - sobrescrito ou removido quando da construção do pacote - util-linux final. -

-
-
- --libdir=/usr/lib -
-
-

- Essa chave assegura que os links simbólicos - .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. -

-
-
- --disable-* -
-
-

- Essas chaves evitam avisos acerca de componentes de - construção que exigem pacotes que não estão no LFS ou - ainda não estão instalados. -

-
-
- --without-python -
-
-

- Essa chave desabilita o uso de Python. Ela evita tentar construir - ligações desnecessárias. -

-
-
- runstatedir=/run -
-
-

- Essa chave configura corretamente a localização do - soquete usado por uuidd e libuuid. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.72.2, - “Conteúdo do Util-linux.” -

-
-
-
-
-
-
-

- 7.14. Limpando e Salvando o - Sistema Temporário -

-
-
-
-
-

- 7.14.1. Limpando -

-

- Primeiro, remova a documentação atualmente instalada para - evitar que ela termine no sistema final, e para salvar cerca - de 35 MB: -

-
rm -rf /usr/share/{info,man,doc}/*
-

- Segundo, os arquivos .la de libtool somente são úteis quando - vinculados com bibliotecas estáticas. Eles são desnecessários - e potencialmente danosos quando do uso de bibliotecas - compartilhadas dinâmicas, especialmente quando do uso de - sistemas de construção não autotools. Enquanto ainda no - chroot, remova aqueles arquivos agora: -

-
find /usr/{lib,libexec} -name \*.la -delete
-

- O tamanho atual de sistema é agora de cerca de 3 GB, - entretanto o diretório /tools não mais é necessário. Ele usa - cerca de 1 GB de espaço de disco. Delete ele agora: -

-
rm -rf /tools
-
-
-

- 7.14.2. Cópia de segurança -

-

- Neste ponto os aplicativos e bibliotecas essenciais foram - criados e seu sistema LFS atual está em um bom estado. Seu - sistema pode agora ser copiado para posterior reuso. Em caso - de falhas fatais nos capítulos subsequentes, frequentemente - acontece que remover tudo e começar de novo (mais - cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, - também. Para evitar desperdiçar tempo extra para refazer tudo - o que foi construído com sucesso, criar uma cópia de - segurança do sistema LFS atual talvez se prove útil. -

-
-

- Nota -

-

- Todos os passos restantes nesta seção são opcionais. Apesar - disso, tão logo você comece a instalar pacotes em Capítulo 8, - os arquivos temporários serão sobrescritos. Assim, talvez - seja uma boa ideia fazer uma cópia de segurança do sistema - atual conforme descrito abaixo. -

-
-

- Os passos seguintes são realizados a partir do lado de fora - do ambiente chroot. Isso significa, você tem de deixar o - ambiente chroot primeiro antes de continuar. A razão para - isso é para conseguir acesso a locais do sistema de arquivos - do lado de fora do ambiente chroot para armazenar/ler o - arquivamento de cópia de segurança o qual não deveria ser - colocado dentro da hierarquia de $LFS por razões de segurança. -

-

- Se você decidiu fazer uma cópia de segurança, então deixe o - ambiente chroot: -

-
exit
-
-

- Importante -

-

- Todas as instruções seguintes são executadas por - root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você - vai executar, uma vez que erros aqui podem modificar seu - sistema anfitrião. Esteja ciente de que a variável de - ambiente LFS está configurada - para usuária(o) lfs por - padrão, mas talvez não esteja configurada para - root. -

-

- Sempre que comandos forem ser executados por root, tenha certeza de que você - configurou LFS. -

-

- Isso foi discutido em Seção 2.6, - “Configurando a Variável $LFS”. -

-
-

- Antes de fazer uma cópia de segurança, desmonte os sistemas - de arquivos virtuais: -

-
umount $LFS/dev/pts
-umount $LFS/{sys,proc,run,dev}
-

- Tenha certeza de que tem pelo menos 1 GB de espaço de disco - livre (os tarballs de fonte serão incluídos no arquivamento - de cópia de segurança) no sistema de arquivos contendo - diretório onde você criar o arquivamento de cópia de - segurança. -

-

- Note que as instruções abaixo especificam o diretório home - da(o) usuária(o) root do - sistema anfitrião, o qual tipicamente é encontrado no sistema - de arquivos raiz. -

-

- Substitua $HOME por um diretório - da sua escolha se você não quiser ter a cópia de segurança - armazenada no diretório home de root. -

-

- Crie o arquivamento de cópia de segurança executando o - seguinte comando: -

-
-

- Nota -

-

- Por causa de que o arquivamento de cópia de segurança é - comprimido, dura um tempo relativamente longo (mais de 10 - minutos) mesmo em um sistema razoavelmente rápido. -

-
-
cd $LFS
-tar -cJpf $HOME/lfs-temp-tools-11.1.tar.xz .
-
-

- Nota -

-

- Se continuar para o capítulo 8, então não se esqueça de - entrar novamente no ambiente chroot conforme explanado na - caixa Importante abaixo. -

-
-
-
-

- 7.14.3. Restauro -

-

- No caso de alguns erros tiverem sido feitos e você precisar - começar de novo, você pode usar essa cópia de segurança para - restaurar o sistema e economizar algum tempo de recuperação. - Desde que os fontes estão localizados sob $LFS, eles são incluídos no arquivamento de - cópia de segurança também, de forma que eles não precisam ser - baixados novamente. Após verificar que $LFS está configurada adequadamente, restaure - a cópia de segurança executando os seguintes comandos: -

-
-

- Atenção -

-

- Os seguintes comandos são extremamente perigosos. Se você - executar rm -rf - ./* como a(o) usuária(o) root e você não - mudar para o diretório $LFS ou a variável de ambiente - LFS não estiver configurada para - a(o) usuária(o) root, então isso destruirá seu sistema - anfitrião inteiro. VOCÊ ESTÁ AVISADA(O). -

-
-
cd $LFS
-rm -rf ./*
-tar -xpf $HOME/lfs-temp-tools-11.1.tar.xz
-

- Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. -

-
-

- Importante -

-

- Se você deixou o ambiente chroot para criar uma cópia de - segurança ou reiniciar a construção usando um restauro, - então lembre-se de verificar se os sistemas de arquivos - virtuais ainda estão montados (findmnt | grep $LFS). Se - eles não estiverem montados, então remonte-os agora - conforme descrito em Seção 7.3, - “Preparando Sistemas de Arquivos Virtuais de - Kernel” e entre novamente no ambiente chroot - (veja Seção 7.4, - “Entrando no Ambiente Chroot”) antes de - continuar. -

-
-
-
-
-
-
-
-
-
-

- Parte IV. Construindo o Sistema - LFS -

-
-
-
-
-
-
-
-

- Capítulo 8. Instalando - Aplicativos Básicos de Sistema -

-
-
-
-
-
-
-
-

- 8.1. Introdução -

-
-
-
-

- Neste capítulo, nós começamos a construir o sistema LFS pra - valer. -

-

- A instalação desse software é simples. Embora em muitos casos - as instruções de instalação pudessem ser mais curtas e mais - genéricas, nós optamos por fornecer as instruções completas - para cada pacote para minimizar as possibilidades de erros. A - chave para aprender o que faz um sistema Linux funcionar é - saber para que cada pacote é usado e porque você (ou o sistema) - talvez precise dele. -

-

- Nós não recomendamos usar otimizações. Elas podem fazer com que - um aplicativo execute ligeiramente mais rápido, mas elas também - talvez causem dificuldades de compilação e problemas quando - executar o aplicativo. Se um pacote se recusar a compilar - quando usar otimização, então tente compilá-lo sem otimização e - veja se isso conserta o problema. Mesmo se o pacote compilar - quando usar otimização, existe o risco de que ele talvez tenha - sido compilado incorretamente devido às complexas interações - entre o código e ferramentas de construção. Note também que as - opções -march e -mtune usando valores não especificados no - livro não foram testadas. Isso talvez cause problemas com os - pacotes do conjunto de ferramentas (Binutils, GCC e Glibc). Os - pequenos ganhos potenciais alcançados usando otimizações de - compilador frequentemente são superados pelos riscos. - Construtoras(es) de primeira vez de LFS são encorajadas(os) a - construir sem otimizações personalizadas. O sistema subsequente - ainda executará muito rápido e será estável ao mesmo tempo. -

-

- Antes das instruções de instalação, cada página de instalação - fornece informação acerca do pacote, incluindo uma descrição - concisa do que ele contém, aproximadamente quando tempo levará - para construir, e quanto espaço de disco é exigido durante esse - processo de construção. Seguindo as instruções de instalação, - existe uma lista de aplicativos e bibliotecas (juntamente com - breves descrições) que o pacote instala. -

-
-

- Nota -

-

- Os valores de UPC e espaço de disco exigido incluem dados de - suíte de teste para todos os pacotes aplicáveis em Capítulo 8. - Os valores de UPC foram calculados usando um núcleo sozinho - de CPU (-j1) para todas as operações. -

-
-
-

- 8.1.1. Acerca de bibliotecas -

-

- Em geral, as(os) editoras(es) de LFS desencorajam construir e - instalar bibliotecas estáticas. O propósito original para a - maioria das bibliotecas estáticas tem sido tornado obsoleto - em um sistema moderno Linux. Além disso, vincular uma - biblioteca estática a um aplicativo pode ser prejudicial. Se - uma atualização para a biblioteca for necessária para remover - um problema de segurança, então todos os aplicativos que usam - a biblioteca estática precisarão ser vinculados de novo à - nova biblioteca. Como o uso de bibliotecas estáticas nem - sempre é óbvio, os aplicativos relevantes (e os procedimentos - necessários para fazer a vinculação) talvez nem mesmo sejam - conhecidos. -

-

- Nos procedimentos neste capítulo, nós removemos ou - desabilitamos a instalação da maioria das bibliotecas - estáticas. Usualmente isso é feito passando-se uma opção - --disable-static para - configure. Em - outros casos, meios alternativos são necessários. Em uns - poucos casos, especialmente glibc e gcc, o uso de bibliotecas - estáticas permanece essencial para o processo geral de - construção de pacote. -

-

- Para uma discussão mais completa acerca de bibliotecas, - veja-se a discussão - Bibliotecas: Estática ou compartilhada? no livro BLFS. -

-
-
-
-
-
-
-

- 8.2. Gerenciamento de Pacote -

-
-
-
-

- Gerenciamento de Pacote é uma adição frequentemente solicitada - ao Livro LFS. Um Gerenciador de Pacote permite monitorar a - instalação de arquivos tornando fácil remover e atualizar - pacotes. Assim como os arquivos binários e bibliotecas, um - gerenciador de pacote lidará com a instalação de arquivos de - configuração. Antes que você comece a questionar, - NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um - resumo acerca das técnicas mais populares e como elas - funcionam. O gerenciador de pacote perfeito para você talvez - esteja entre essas técnicas ou talvez seja uma combinação de - duas ou mais dessas técnicas. Esta seção menciona brevemente - problemas que talvez surjam quando da atualização de pacotes. -

-

- Algumas razões porque nenhum gerenciador de pacote é mencionado - em LFS ou BLFS incluem: -

-
-
    -
  • -

    - Lidar com gerenciamento de pacote retira o foco das - finalidades desses livros—ensinar como um sistema - Linux é construído. -

    -
  • -
  • -

    - Existem múltiplas soluções para gerenciamento de pacote, - cada uma tendo seus pontos fortes e fracos. Incluir uma - que satisfaça todas as audiências é difícil. -

    -
  • -
-
-

- Existem algumas dicas escritas no tópico acerca de - gerenciamento de pacote. Visite o Hints - Project e veja se uma delas se adéqua às suas necessidades. -

-
-

- 8.2.1. Problemas de Atualização -

-

- Um Gerenciador de Pacote torna fácil atualizar para versões - mais novas quando elas são liberadas. Geralmente as - instruções nos livros LFS e BLFS podem ser usadas para - atualizar para versões mais novas. Aqui estão alguns pontos - que você deveria estar ciente quando da atualização de - pacotes, especialmente em um sistema em execução. -

-
-
    -
  • -

    - Se o kernel Linux precisar ser atualizado (por exemplo, - de 5.10.17 para 5.10.18 ou 5.11.1), então nada mais - precisa ser reconstruído. O sistema seguirá funcionando - bem graças à borda bem definida entre kernel e espaço - de usuária(o). Especificamente, os cabeçalhos de API de - Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você - precisará reiniciar seu sistema para usar o kernel - atualizado. -

    -
  • -
  • -

    - Se os cabeçalhos de API de Linux ou Glibc precisarem - ser atualizados para uma versão mais nova, (por - exemplo, de glibc-2.31 para glibc-2.32), então é mais - seguro reconstruir LFS. Ainda que você talvez seja capaz de - reconstruir todos os pacotes na ordem de dependência - deles, nós não recomendamos isso. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e se o nome da biblioteca mudar, então - quaisquer pacotes dinamicamente vinculados à biblioteca - precisam ser recompilados com a finalidade de vincular - à biblioteca mais nova. (Note que não existe correlação - entre a versão de pacote e o nome da biblioteca). Por - exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala - uma biblioteca compartilhada com nome libfoo.so.2. Nesse caso, quaisquer - pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser - recompilados para vincular à libfoo.so.2 com a finalidade de usar - a nova versão de biblioteca. Você não deveria remover - as bibliotecas anteriores a menos que todos os pacotes - dependentes sejam recompilados. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém o - número de versão do arquivo de biblioteca - decrescer (por exemplo, o nome da biblioteca é mantido - como libfoo.so.1, porém o - nome do arquivo de biblioteca é modificado de - libfoo.so.1.25 para - libfoo.so.1.24), então - você deveria remover o arquivo de biblioteca originário - da versão previamente instalada (libfoo.so.1.25 no caso). Ou, uma - execução de ldconfig (por você - mesmo usando uma linha de comando, ou pela instalação - de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar - para o antigo arquivo de biblioteca, pois ele aparenta - ter uma versão mais nova, uma vez que seu - número de versão é mais largo. Essa situação talvez - aconteceu se você teve que desatualizar um pacote, ou o - pacote muda repentinamente o esquema de versionamento - de arquivos de biblioteca. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém um - problema severo (especialmente, uma vulnerabilidade de - segurança) for corrigido, então todos os aplicativos em - execução vinculados à biblioteca compartilhada deveriam - ser reiniciados. O seguinte comando, executado como - root após atualização, - listará o que está usando as versões antigas daquelas - bibliotecas (substitua libfoo com o nome da - biblioteca): -

    -
    grep -l  -e 'libfoo.*deleted' /proc/*/maps |
    -   tr -cd 0-9\\n | xargs -r ps u
    -

    - Se OpenSSH estiver - sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa - reiniciar o serviço sshd, então - deslogar-se, logar-se novamente, e reexecutar aquele - comando para confirmar que nada ainda está usando as - bibliotecas deletadas. -

    -
  • -
  • -

    - Se um binário ou uma biblioteca compartilhada for - sobrescrito, então os processos usando o código ou - dados no binário ou biblioteca talvez quebrem. A - maneira correta para atualizar um binário ou uma - biblioteca compartilhada sem causar quebra ao processo - é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por - Coreutils já - implementou isso e a maioria dos pacotes usa ele para - instalar binários e bibliotecas. Isso significa que - você não estaria encrencada(o) por esse problema a - maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em - BLFS) apenas sobrescreve o arquivo se ele existir e - causa uma quebra, de forma que é mais seguro salvar seu - trabalho e fechar processos em execução desnecessários - antes de atualizar um pacote. -

    -
  • -
-
-
-
-

- 8.2.2. Técnicas de Gerenciamento de Pacote -

-

- As seguintes são algumas técnicas comuns de gerenciamento de - pacote. Antes de se decidir acerca de um gerenciador de - pacote, pesquise sobre as várias técnicas, particularmente os - pontos fracos do esquema em particular. -

-
-
-
-
-

- 8.2.2.1. Está Tudo na Minha - Cabeça! -

-
-
-
-

- Sim, isso é uma técnica de gerenciamento de pacote. Algumas - pessoas não encontram a necessidade para um gerenciador de - pacote, pois elas conhecem os pacotes intimamente e sabem - quais arquivos estão instalados por cada pacote. - Algumas(ns) usuárias(os) também não precisam de qualquer - gerenciamento de pacote, pois elas(es) planejam reconstruir - o sistema inteiro quando um pacote for mudado. -

-
-
-
-
-
-

- 8.2.2.2. Instalação em Diretórios - Separados -

-
-
-
-

- Esse é um gerenciamento de pacote simplista que não - necessita de qualquer pacote extra para gerenciar as - instalações. Cada pacote é instalado em um diretório - separado. Por exemplo, o pacote foo-1.1 é instalado em - /usr/pkg/foo-1.1 e um link - simbólico é feito de /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de - uma nova versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova - versão. -

-

- Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, INFOPATH - e CPPFLAGS precisam ser - expandidas para incluir /usr/pkg/foo. Para mais que uns poucos - pacotes, esse esquema se torna ingerenciável. -

-
-
-
-
-
-

- 8.2.2.3. Gerenciamento de Pacote - Estilo Link Simbólico -

-
-
-
-

- Essa é uma variação da técnica de gerenciamento de pacote - anterior. Cada pacote é instalado similar ao esquema - anterior. Mas, em vez de fazer o link simbólico, cada - arquivo é simbolicamente vinculado à hierarquia - /usr. Isso remove a - necessidade de expandir as variáveis de ambiente. Ainda que - os links simbólicos possam ser criados pela(o) usuária(o) - para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos - populares inclui Stow, Epkg, Graft, e Depot. -

-

- A instalação precisa ser falseada, de modo que o pacote - pense que está instalado em /usr, ainda que, na realidade, ele esteja - instalado na hierarquia /usr/pkg. Instalar dessa maneira - geralmente não é uma tarefa trivial. Por exemplo, considere - que você está instalando um pacote libfoo-1.1. As seguintes - instruções talvez não instalem adequadamente o pacote: -

-
./configure --prefix=/usr/pkg/libfoo/1.1
-make
-make install
-

- A instalação funcionará, mas os pacotes dependentes talvez - não se vinculem à libfoo conforme você esperaria. Se você - compilar um pacote que vincula à libfoo, então você talvez - note que ele está vinculado a /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em - vez de /usr/lib/libfoo.so.1 - como você esperaria. A abordagem correta é usar a - estratégia DESTDIR para falsear - a instalação do pacote. Essa abordagem funciona como se - segue: -

-
./configure --prefix=/usr
-make
-make DESTDIR=/usr/pkg/libfoo/1.1 install
-

- A maioria dos pacotes suporta essa abordagem, mas existem - alguns que não. Para os pacotes não conformes, você talvez - ou precise instalar manualmente o pacote, ou você talvez - ache que é mais fácil instalar alguns pacotes problemáticos - em /opt. -

-
-
-
-
-
-

- 8.2.2.4. Baseado em Marca - Temporal -

-
-
-
-

- Nessa técnica, um arquivo é marcado temporalmente antes da - instalação do pacote. Após a instalação, um simples uso do - comando find - com as opções apropriadas pode gerar um registro de todos - os arquivos instalados após o arquivo de marca temporal ser - criado. Um gerenciador de pacote escrito com essa abordagem - é instalação-registro. -

-

- Ainda que esse esquema tenha a vantagem de ser simples, ele - tem duas desvantagens. Se, durante a instalação, os - arquivos forem instalados com qualquer marca temporal outra - que a hora atual, então aqueles arquivos não serão - rastreados pelo gerenciador de pacote. Além disso, esse - esquema pode ser usado apenas quando um pacote for - instalado de cada vez. Os registros não são confiáveis se - dois pacotes estão sendo instalados em dois consoles. -

-
-
-
-
-
-

- 8.2.2.5. Scripts de Rastreamento - de Instalação -

-
-
-
-

- Nessa abordagem, os comandos que os scripts de instalação - realizam são gravados. Existem duas técnicas que se pode - usar: -

-

- A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da - instalação. Durante a instalação, essa biblioteca rastreia - os pacotes que estão sendo instalados anexando-se a vários - executáveis tais como cp, install, mv e rastreando as - chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis - precisam ser dinamicamente vinculados sem o bit suid ou - sgid. Pré-carregar a biblioteca talvez cause alguns efeitos - colaterais indesejados durante a instalação. Portanto, - aconselha-se que se realize alguns testes para garantir que - o gerenciador de pacote não quebre nada e registre todos os - arquivos adequados. -

-

- A segunda técnica é usar strace, que registra - todas as chamadas de sistema feitas durante a execução dos - scripts de instalação. -

-
-
-
-
-
-

- 8.2.2.6. Criando Arquivamentos de - Pacote -

-
-
-
-

- Nesse esquema, a instalação do pacote é falseada em uma - árvore separada como descrito no gerenciamento de pacote - estilo Link Simbólico. Após a instalação, um arquivamento - de pacote é criado usando os arquivos instalados. Esse - arquivamento é então usado para instalar o pacote tanto na - máquina local quanto pode até ser usado para instalar o - pacote em outras máquinas. -

-

- Essa abordagem é usada pela maioria dos gerenciadores de - pacote encontrados nas distribuições comerciais. Exemplos - de gerenciadores de pacote que seguem essa abordagem são - RPM (o qual, incidentalmente, é exigido pela Linux - Standard Base Specification), pkg-utils, apt do Debian, - e sistema Portage do Gentoo. Uma dica descrevendo como - adotar esse estilo de gerenciamento de pacote para sistemas - LFS está localizada em - https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt. -

-

- Criação de arquivos pacote que incluem informação de - dependência é complexa e está além do escopo de LFS. -

-

- Slackware usa um sistema baseado em tar para arquivamentos de - pacote. Esse sistema intencionalmente não manuseia - dependências de pacote como gerenciadores de pacote mais - complexos fazem. Para detalhes de gerenciamento de pacote - Slackware, veja http://www.slackbook.org/html/package-management.html. -

-
-
-
-
-
-

- 8.2.2.7. Gerenciamento Baseado em - Usuária(o) -

-
-
-
-

- Esse esquema, único para LFS, foi concebido por Matthias - Benkmann, e está disponível a partir do Hints - Project. Nesse esquema, cada pacote é instalado como - uma(m) usuária(o) separada(o) nos locais padrão. Arquivos - pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e - deficiências dessa abordagem são muito complexas para serem - descritas nesta seção. Para os detalhes, por favor veja a - dica em - https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt. -

-
-
-
-

- 8.2.3. Implantando LFS em Múltiplos Sistemas -

-

- Uma das vantagens de um sistema LFS é a de que não existem - arquivos que dependam da posição de arquivos em um sistema de - disco. Clonar uma construção LFS para outro computador com a - mesma arquitetura que a do sistema base é tão simples quanto - usar tar na - partição LFS que contém o diretório raiz (cerca de 250MB - descomprimido para uma construção base LFS), copiando aquele - arquivo via transferência de rede ou CD-ROM para o novo - sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: - /etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, - /etc/ld.so.conf, /etc/sysconfig/rc.site, /etc/sysconfig/network, e /etc/sysconfig/ifconfig.eth0. -

-

- Um kernel personalizado talvez seja necessário ser construído - para o novo sistema dependendo das diferenças entre hardware - de sistema e a configuração original do kernel. -

-
-

- Nota -

-

- Tem havido alguns relatos de problemas quando da cópia - entre arquiteturas similares, porém não idênticas. Por - exemplo, o conjunto de instrução para um sistema Intel não - é idêntico com um processador AMD, e versões posteriores de - alguns processadores talvez tenham instruções que estão - indisponíveis em versões anteriores. -

-
-

- Finalmente, o novo sistema tem de ser tornado inicializável - via - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-
-
-
-
-

- 8.3. Man-pages-5.13 -

-
-
-
-
-

- O pacote Man-pages contém mais que 2.200 páginas de manual. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.3.1. Instalação de Man-pages -

-

- Instale Man-pages executando: -

-
make prefix=/usr install
-
-
-

- 8.3.2. - Conteúdo de Man-pages -

-
-
-
- Arquivos instalados: - várias páginas de manual -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - -
-

- man - pages -

-
-

- Descreve funções da linguagem de programação C, - arquivos importantes de dispositivo e arquivos - significantes de configuração -

-
-
-
-
-
-
-
-
-

- 8.4. Iana-Etc-20220207 -

-
-
-
-
-

- O pacote Iana-Etc fornece dados para serviços e protocolos de - rede. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,7 MB -
-
-
-
-
-

- 8.4.1. Instalação de Iana-Etc -

-

- Para esse pacote, nós apenas precisamos copiar os arquivos - para o lugar: -

-
cp services protocols /etc
-
-
-

- 8.4.2. - Conteúdo de Iana-Etc -

-
-
-
- Arquivos instalados: - /etc/protocols e - /etc/services -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - - - - - -
-

- /etc/protocols -

-
-

- Descreve os vários protocolos DARPA de Internet que - estão disponíveis a partir do subsistema TCP/IP -

-
-

- /etc/services -

-
-

- Fornece um mapeamento entre nomes textuais - amigáveis para serviços de internet e seus números - de porta atribuídos e tipos de protocolos não - expostos -

-
-
-
-
-
-
-
-
-

- 8.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 24 UPC -
-
- Espaço em disco - exigido: 2,8 GB -
-
-
-
-
-

- 8.5.1. Instalação de Glibc -

-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- Prepare Glibc para compilação: -

-
../configure --prefix=/usr                            \
-             --disable-werror                         \
-             --enable-kernel=3.2                      \
-             --enable-stack-protector=strong          \
-             --with-headers=/usr/include              \
-             libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --disable-werror -
-
-

- Essa opção desabilita a opção -Werror passada para GCC. - Isso é necessário para a execução da suíte de teste. -

-
-
- --enable-kernel=3.2 -
-
-

- Essa opção diz ao sistema de construção que este glibc - talvez seja usado com kernels tão antigos quanto 3.2. - Isso significa que a geração de contornos no caso de - uma chamada de sistema introduzida em uma versão - posterior não pode ser usada. -

-
-
- --enable-stack-protector=strong -
-
-

- Essa opção aumenta a segurança de sistema adicionando - código extra para verificar estouros de buffer, tais - como ataques de esmagamento de pilha. -

-
-
- --with-headers=/usr/include -
-
-

- Essa opção diz ao sistema de construção onde encontrar - os cabeçalhos de API de kernel. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Essa variável configura a biblioteca correta para todos - os sistemas. Nós não queremos que lib64 seja usada. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para Glibc é considerada - crítica. Não pule sob qualquer circunstância. -

-
-

- Geralmente uns poucos testes não passam. As falhas de teste - listadas abaixo são usualmente seguras ignorar. -

-
make check
-

- Você talvez veja algumas falhas de teste. A suíte de teste de - Glibc é de alguma forma dependente do sistema anfitrião. Umas - poucas falhas saídas de mais que 4.200 testes geralmente - podem ignoradas. Esta é uma lista dos problemas mais comuns - vistos para versões recentes de LFS: -

-
-
    -
  • -

    - io/tst-lchmod é - conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - misc/tst-ttyname - é conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - O teste nss/tst-nss-files-hosts-multi - é conhecido por falhar se o sistema não tiver endereços - IP não loopback. -

    -
  • -
-
-

- Mesmo sendo uma mensagem inofensiva, o estágio de instalação - de Glibc reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta com: -

-
touch /etc/ld.so.conf
-

- Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -

-
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
-

- Instale o pacote: -

-
make install
-

- Conserte caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
-

- Instale o arquivo de configuração e diretório de tempo de - execução para nscd: -

-
cp -v ../nscd/nscd.conf /etc/nscd.conf
-mkdir -pv /var/cache/nscd
-

- Em seguida, instale os locales que podem fazer o sistema - responder em um idioma diferente. Nenhum dos locales é - exigido, mas se algum deles estiver faltando, então as suítes - de teste de futuros pacotes pulariam casos de teste - importantes. -

-

- Locales individuais podem ser instalados usando o aplicativo - localedef. Por - exemplo, o segundo comando localedef abaixo combina a - definição de locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales - necessário para a cobertura ótima de testes: -

-
mkdir -pv /usr/lib/locale
-localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
-localedef -i de_DE -f ISO-8859-1 de_DE
-localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
-localedef -i de_DE -f UTF-8 de_DE.UTF-8
-localedef -i el_GR -f ISO-8859-7 el_GR
-localedef -i en_GB -f ISO-8859-1 en_GB
-localedef -i en_GB -f UTF-8 en_GB.UTF-8
-localedef -i en_HK -f ISO-8859-1 en_HK
-localedef -i en_PH -f ISO-8859-1 en_PH
-localedef -i en_US -f ISO-8859-1 en_US
-localedef -i en_US -f UTF-8 en_US.UTF-8
-localedef -i es_ES -f ISO-8859-15 es_ES@euro
-localedef -i es_MX -f ISO-8859-1 es_MX
-localedef -i fa_IR -f UTF-8 fa_IR
-localedef -i fr_FR -f ISO-8859-1 fr_FR
-localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
-localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
-localedef -i is_IS -f ISO-8859-1 is_IS
-localedef -i is_IS -f UTF-8 is_IS.UTF-8
-localedef -i it_IT -f ISO-8859-1 it_IT
-localedef -i it_IT -f ISO-8859-15 it_IT@euro
-localedef -i it_IT -f UTF-8 it_IT.UTF-8
-localedef -i ja_JP -f EUC-JP ja_JP
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
-localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
-localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
-localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
-localedef -i se_NO -f UTF-8 se_NO.UTF-8
-localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
-localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
-localedef -i zh_CN -f GB18030 zh_CN.GB18030
-localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
-localedef -i zh_TW -f UTF-8 zh_TW.UTF-8
-

- Em adição, instale o locale para seu próprio país, idioma e - conjunto de caracteres. -

-

- Alternativamente, instale todos os locales listados no - arquivo glibc-2.35/localedata/SUPPORTED (inclui - cada locale listado acima e muitos mais) de uma vez com o - seguinte comando consumidor de tempo: -

-
make localedata/install-locales
-

- Então, use o comando localedef para criar e - instalar locales não listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são - necessários para alguns testes posteriormente neste capítulo: -

-
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-
-

- Nota -

-

- Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de - tempo de execução. Se essa capacidade for necessária, então - as instruções para instalar libidn2 estão na - página libidn2 de BLFS. -

-
-
-
-

- 8.5.2. Configurando - Glibc -

-
-
-
-
-

- 8.5.2.1. Adicionando - nsswitch.conf -

-
-
-
-

- O arquivo /etc/nsswitch.conf - precisa ser criado, pois os padrões de Glibc não funcionam - bem em um ambiente em rede. -

-

- Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -

-
cat > /etc/nsswitch.conf << "EOF"
-# Begin /etc/nsswitch.conf
-
-passwd: files
-group: files
-shadow: files
-
-hosts: files dns
-networks: files
-
-protocols: files
-services: files
-ethers: files
-rpc: files
-
-# End /etc/nsswitch.conf
-EOF
-
-
-
-
-
-

- 8.5.2.2. Adicionando dados de - fuso horário -

-
-
-
-

- Instale e configure os dados de fuso horário com o - seguinte: -

-
tar -xf ../../tzdata2021e.tar.gz
-
-ZONEINFO=/usr/share/zoneinfo
-mkdir -pv $ZONEINFO/{posix,right}
-
-for tz in etcetera southamerica northamerica europe africa antarctica  \
-          asia australasia backward; do
-    zic -L /dev/null   -d $ZONEINFO       ${tz}
-    zic -L /dev/null   -d $ZONEINFO/posix ${tz}
-    zic -L leapseconds -d $ZONEINFO/right ${tz}
-done
-
-cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
-zic -d $ZONEINFO -p America/New_York
-unset ZONEINFO
-
-

- O significado dos comandos zic: -

-
-
- zic -L - /dev/null ... -
-
-

- Isso cria fusos horários posix sem quaisquer segundos - bissextos. É convencional colocá-los em ambos - zoneinfo e zoneinfo/posix. É necessário - colocar os fusos horários POSIX em zoneinfo, do contrário várias - suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, você - poderia economizar 1,9 MB não usando o diretório - posix, mas alguns - aplicativos ou suítes de teste poderiam produzir - algumas falhas. -

-
-
- zic -L - leapseconds ... -
-
-

- Isso cria fusos horários corretos, incluindo segundos - bissextos. Em um sistema embarcado, onde o espaço é - apertado e você não pretende nunca atualizar os fusos - horários, ou se importa com a hora correta, você - poderia economizar 1,9 MB omitindo o diretório - right. -

-
-
- zic ... - -p ... -
-
-

- Isso cria o arquivo posixrules. Nós usamos New York, - pois POSIX exige que as regras de horário de verão - estejam de acordo com regras dos Estados Unidos da - América do Norte. -

-
-
-
-

- Uma maneira para determinar o fuso horário local é - executando o seguinte script: -

-
tzselect
-

- Depois de responder à umas poucas perguntas sobre a - localização, o script retornará o nome do fuso horário (por - exemplo, America/Edmonton). Existem - também alguns outros possíveis fusos horários listados em - /usr/share/zoneinfo, tais - como Canada/Eastern - ou EST5EDT que não - são identificados pelo script, mas podem ser usados. -

-

- Então crie o arquivo /etc/localtime executando: -

-
ln -sfv /usr/share/zoneinfo/<xxx> /etc/localtime
-

- Substitua <xxx> com o nome do - fuso horário selecionado (por exemplo, Canada/Eastern). -

-
-
-
-
-
-

- 8.5.2.3. Configurando o - Carregador Dinâmico -

-
-
-
-

- Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em - /lib e /usr/lib por bibliotecas dinâmicas que - são necessárias para aplicativos assim que são executados. - Entretanto, se existirem bibliotecas em outros diretórios - diferentes de /lib e - /usr/lib, então esses - precisam ser adicionados ao arquivo /etc/ld.so.conf para a finalidade de que - o carregador dinâmico encontre elas. Dois diretórios que - são comumente conhecidos por conterem bibliotecas - adicionais são /usr/local/lib - e /opt/lib, então adicione - esses diretórios ao caminho de busca do carregador - dinâmico. -

-

- Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -

-
cat > /etc/ld.so.conf << "EOF"
-# Begin /etc/ld.so.conf
-/usr/local/lib
-/opt/lib
-
-EOF
-

- Se desejado, o carregador dinâmico também pode pesquisar um - diretório e incluir o conteúdo de arquivos encontrados lá. - Geralmente os arquivos nesse diretório include são uma - linha especificando o caminho de biblioteca desejado. Para - adicionar essa capacidade, execute os seguintes comandos: -

-
cat >> /etc/ld.so.conf << "EOF"
-# Add an include directory
-include /etc/ld.so.conf.d/*.conf
-
-EOF
-mkdir -pv /etc/ld.so.conf.d
-
-
-
-

- 8.5.3. - Conteúdo de Glibc -

-
-
-
- Aplicativos instalados: - gencat, getconf, getent, iconv, - iconvconfig, ldconfig, ldd, lddlibc4, ld.so (link - simbólico para ld-linux-x86-64.so.2 ou ld-linux.so.2), - locale, localedef, makedb, mtrace, nscd, pcprofiledump, - pldd, sln, sotruss, sprof, tzselect, xtrace, zdump, e - zic -
-
- Bibliotecas instaladas: - ld-linux-x86-64.so.2, - ld-linux.so.2, libBrokenLocale.{a,so}, libanl.{a,so}, - libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so, - libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so}, - libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, - libnss_hesiod.so, libpcprofile.so, libpthread.{a,so.0}, - libresolv.{a,so}, librt.{a,so.1}, libthread_db.so, e - libutil.{a,so.1} -
-
- Diretórios instalados: - /usr/include/arpa, - /usr/include/bits, /usr/include/gnu, /usr/include/net, - /usr/include/netash, /usr/include/netatalk, - /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, - /usr/include/netiucv, /usr/include/netpacket, - /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, - /usr/include/rpc, /usr/include/sys, /usr/lib/audit, - /usr/lib/gconv, /usr/lib/locale, /usr/libexec/getconf, - /usr/share/i18n, /usr/share/zoneinfo, /var/cache/nscd, e - /var/lib/nss_db -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gencat -

-
-

- Gera catálogos de mensagem -

-
-

- getconf -

-
-

- Exibe os valores de configuração de sistema para - variáveis específicas do sistema de arquivos -

-
-

- getent -

-
-

- Obtém entradas a partir de uma base de dados - administrativa -

-
-

- iconv -

-
-

- Realiza conversão de conjuntos de caracteres -

-
-

- iconvconfig -

-
-

- Cria arquivos de configuração de módulos de - carregamento rápido de iconv -

-
-

- ldconfig -

-
-

- Configura as ligações de tempo de execução do - vinculador dinâmico -

-
-

- ldd -

-
-

- Reporta quis bibliotecas compartilhadas são - exigidas por cada dado aplicativo ou biblioteca - compartilhada -

-
-

- lddlibc4 -

-
-

- Auxilia ldd com arquivos - objeto. Isso não existe em arquiteturas mais novas - como x86_64 -

-
-

- locale -

-
-

- Imprime várias informações sobre o locale atual -

-
-

- localedef -

-
-

- Compila especificações de locale -

-
-

- makedb -

-
-

- Cria um banco de dados simples a partir de uma - entrada textual -

-
-

- mtrace -

-
-

- Lê e interpreta um arquivo de rastreamento de - memória e exibe um resumo em formato legível por - humanos -

-
-

- nscd -

-
-

- Um daemon que fornece um cache para as solicitações - de serviço de nomes mais comuns -

-
-

- pcprofiledump -

-
-

- Despeja informação gerada pelos perfis do PC -

-
-

- pldd -

-
-

- Lista objetos dinâmicos compartilhados usados por - processos em execução -

-
-

- sln -

-
-

- Um aplicativo ln vinculado - estaticamente -

-
-

- sotruss -

-
-

- Rastreia chamadas de procedimentos de bibliotecas - compartilhadas de um comando especificado -

-
-

- sprof -

-
-

- Lê e exibe dados de perfil de objetos - compartilhados -

-
-

- tzselect -

-
-

- Pergunta ao usuário sobre a localização do sistema - e reporta a correspondente descrição de fuso - horário -

-
-

- xtrace -

-
-

- Rastreia a execução de um aplicativo exibindo a - função atualmente executada -

-
-

- zdump -

-
-

- O despejador de fuso horário -

-
-

- zic -

-
-

- O compilador de fuso horário -

-
-

- ld-*.so -

-
-

- O aplicativo ajudador para executáveis de - bibliotecas compartilhadas -

-
-

- libBrokenLocale -

-
-

- Usado internamente por Glibc como um hack grosseiro - para executar aplicativos quebrados (por exemplo, - alguns aplicativos Motif). Veja comentários em - glibc-2.35/locale/broken_cur_max.c - para mais informação -

-
-

- libanl -

-
-

- Uma biblioteca assíncrona de pesquisa de nomes -

-
-

- libc -

-
-

- A biblioteca C principal -

-
-

- libc_malloc_debug -

-
-

- Liga verificação de alocação de memória quando - pré-carregada -

-
-

- libcrypt -

-
-

- A biblioteca de criptografia -

-
-

- libdl -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era a biblioteca de interface do - vinculador dinâmico, cujas funções agora estão em - libc -

-
-

- libg -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era uma biblioteca de tempo de - execução para g++ -

-
-

- libm -

-
-

- A biblioteca matemática -

-
-

- libmvec -

-
-

- A biblioteca de vetor matemático, vinculada - conforme necessária quando libm for usada -

-
-

- libmcheck -

-
-

- Liga verificação de alocação de memória quando - quando vinculada para -

-
-

- libmemusage -

-
-

- Usado por memusage para - ajudar a coletar informação sobre o uso de memória - de um aplicativo -

-
-

- libnsl -

-
-

- A biblioteca de serviços de rede, agora obsoleta -

-
-

- libnss_* -

-
-

- Os módulos de Name Service Switch, contendo funções - para resolução de nomes de hosts, nomes de - usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por - libc conforme a - configuração em /etc/nsswitch.conf -

-
-

- libpcprofile -

-
-

- Pode ser pré-carregada para PC perfilar um - executável -

-
-

- libpthread -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha funções fornecendo a maior - parte das interfaces especificadas pela Extensão - POSIX.1b de Tempo Real, agora as funções estão em - libc -

-
-

- libresolv -

-
-

- Contém funções para criação, envio e interpretação - de pacotes para os servidores de nomes de domínio - de Internet -

-
-

- librt -

-
-

- Contém funções fornecendo a maior parte das - interfaces especificadas pela Extensão POSIX.1b de - Tempo Real -

-
-

- libthread_db -

-
-

- Contém funções úteis para construir depuradores - para aplicativos de múltiplas camadas -

-
-

- libutil -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha código para funções - standard usadas em - muitos utilitários Unix. Essas funções agora estão - em libc -

-
-
-
-
-
-
-
-
-

- 8.6. Zlib-1.2.11 -

-
-
-
-
-

- O pacote Zlib contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,0 MB -
-
-
-
-
-

- 8.6.1. Instalação de Zlib -

-

- Prepare Zlib para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libz.a
-
-
-

- 8.6.2. - Conteúdo de Zlib -

-
-
-
- Bibliotecas instaladas: - libz.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libz -

-
-

- Contém funções de compressão e descompressão usadas - por alguns aplicativos -

-
-
-
-
-
-
-
-
-

- 8.7. Bzip2-1.0.8 -

-
-
-
-
-

- O pacote Bzip2 contém aplicativos para comprimir e - descomprimir arquivos. Comprimir arquivos de texto com - bzip2 gera uma - muito melhor percentagem de compressão que com o tradicional - gzip. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,2 MB -
-
-
-
-
-

- 8.7.1. Instalação de Bzip2 -

-

- Aplique um patch que instalará a documentação para esse - pacote: -

-
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
-

- O seguinte comando garante que a instalação de links - simbólicos sejam relativos: -

-
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
-

- Garanta que as páginas de manual sejam instaladas na - localização correta: -

-
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
-

- Prepare Bzip2 para compilação com: -

-
make -f Makefile-libbz2_so
-make clean
-
-

- O significado do parâmetro de make: -

-
-
- -f - Makefile-libbz2_so -
-
-

- Isso causará Bzip2 ser construído usando um arquivo - Makefile diferente, nesse - caso o arquivo Makefile-libbz2_so, o qual cria uma - biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. -

-
-
-
-

- Compile e teste o pacote: -

-
make
-

- Instale os aplicativos: -

-
make PREFIX=/usr install
-

- Instale a biblioteca compartilhada: -

-
cp -av libbz2.so.* /usr/lib
-ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
-

- Instale o binário compartilhado bzip2 no diretório - /usr/bin, e substitua duas - cópias de bzip2 - com links simbólicos: -

-
cp -v bzip2-shared /usr/bin/bzip2
-for i in /usr/bin/{bzcat,bunzip2}; do
-  ln -sfv bzip2 $i
-done
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libbz2.a
-
-
-

- 8.7.2. - Conteúdo de Bzip2 -

-
-
-
- Aplicativos instalados: - bunzip2 (link para bzip2), bzcat - (link para bzip2), bzcmp (link para bzdiff), bzdiff, - bzegrep (link para bzgrep), bzfgrep (link para bzgrep), - bzgrep, bzip2, bzip2recover, bzless (link para bzmore), e - bzmore -
-
- Bibliotecas instaladas: - libbz2.so -
-
- Diretórios instalados: - /usr/share/doc/bzip2-1.0.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bunzip2 -

-
-

- Descomprime arquivos compactados com bzip -

-
-

- bzcat -

-
-

- Descomprime para a saída padrão -

-
-

- bzcmp -

-
-

- Executa cmp em arquivos - compactados com bzip -

-
-

- bzdiff -

-
-

- Executa diff em arquivos - compactados com bzip -

-
-

- bzegrep -

-
-

- Executa egrep em arquivos - compactados com bzip -

-
-

- bzfgrep -

-
-

- Executa fgrep em arquivos - compactados com bzip -

-
-

- bzgrep -

-
-

- Executa grep em arquivos - compactados com bzip -

-
-

- bzip2 -

-
-

- Comprime arquivos usando o algoritmo de compressão - de texto de classificação de blocos Burrows-Wheeler - com codificação Huffman; a taxa de compressão é - melhor que aquela obtida por compressores mais - convencionais usando algoritmos Lempel-Ziv, como - gzip -

-
-

- bzip2recover -

-
-

- Tenta recuperar dados a partir de arquivos - danificados comprimidos com bzip -

-
-

- bzless -

-
-

- Executa less em arquivos - compactados com bzip -

-
-

- bzmore -

-
-

- Executa more em arquivos - compactados com bzip -

-
-

- libbz2 -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos sem perdas, usando o - algoritmo Burrows-Wheeler -

-
-
-
-
-
-
-
-
-

- 8.8. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.8.1. Instalação de Xz -

-

- Prepare Xz para compilação com: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.8.2. Conteúdo de - Xz -

-
-
-
- Aplicativos instalados: - lzcat (link para xz), lzcmp (link - para xzdiff), lzdiff (link para xzdiff), lzegrep (link - para xzgrep), lzfgrep (link para xzgrep), lzgrep (link - para xzgrep), lzless (link para xzless), lzma (link para - xz), lzmadec, lzmainfo, lzmore (link para xzmore), unlzma - (link para xz), unxz (link para xz), xz, xzcat (link para - xz), xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep - (link para xzgrep), xzfgrep (link para xzgrep), xzgrep, - xzless, e xzmore -
-
- Bibliotecas instaladas: - liblzma.so -
-
- Diretórios instalados: - /usr/include/lzma e - /usr/share/doc/xz-5.2.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- lzcat -

-
-

- Descomprime para a saída padrão -

-
-

- lzcmp -

-
-

- Executa cmp em arquivos - comprimidos LZMA -

-
-

- lzdiff -

-
-

- Executa diff em arquivos - comprimidos LZMA -

-
-

- lzegrep -

-
-

- Executa egrep em arquivos - comprimidos LZMA -

-
-

- lzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos LZMA -

-
-

- lzgrep -

-
-

- Executa grep em arquivos - comprimidos LZMA -

-
-

- lzless -

-
-

- Executa less em arquivos - comprimidos LZMA -

-
-

- lzma -

-
-

- Comprime ou descomprime arquivos usando o formato - LZMA -

-
-

- lzmadec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos LZMA -

-
-

- lzmainfo -

-
-

- Exibe informação armazenada no cabeçalho de arquivo - comprimido com LZMA -

-
-

- lzmore -

-
-

- Executa more em arquivos - comprimidos LZMA -

-
-

- unlzma -

-
-

- Descomprime arquivos usando o formato LZMA -

-
-

- unxz -

-
-

- Descomprime arquivos usando o formato XZ -

-
-

- xz -

-
-

- Comprime ou descomprime arquivos usando o formato - XZ -

-
-

- xzcat -

-
-

- Descomprime para a saída padrão -

-
-

- xzcmp -

-
-

- Executa cmp em arquivos - comprimidos XZ -

-
-

- xzdec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos XZ -

-
-

- xzdiff -

-
-

- Executa diff em arquivos - comprimidos XZ -

-
-

- xzegrep -

-
-

- Executa egrep em arquivos - comprimidos XZ -

-
-

- xzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos XZ -

-
-

- xzgrep -

-
-

- Executa grep em arquivos - comprimidos XZ -

-
-

- xzless -

-
-

- Executa less em arquivos - comprimidos XZ -

-
-

- xzmore -

-
-

- Executa more em arquivos - comprimidos XZ -

-
-

- liblzma -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos, sem perdas, usando o - algoritmo de cadeia Lempel-Ziv-Markov -

-
-
-
-
-
-
-
-
-

- 8.9. Zstd-1.5.2 -

-
-
-
-
-

- Zstandard é um algoritmo de tempo real de compressão, - fornecendo taxas altas de compressão. Ele oferece um - intervalo muito amplo de combinações de - compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 55 MB -
-
-
-
-
-

- 8.9.1. Instalação de Zstd -

-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Na saída de teste existem muitos lugares que indicam - 'failed'. Essas são esperadas e apenas 'FAIL' é uma falha - atual de teste. Não deveriam existir falhas de teste. -

-
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make prefix=/usr install
-

- Remova a biblioteca estática: -

-
rm -v /usr/lib/libzstd.a
-
-
-

- 8.9.2. - Conteúdo de Zstd -

-
-
-
- Aplicativos instalados: - zstd, zstdcat (link para zstd), - zstdgrep, zstdless, zstdmt (link para zstd), e unzstd - (link para zstd) -
-
- Bibliotecas instaladas: - libzstd.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- zstd -

-
-

- Comprime ou descomprime arquivos usando o formato - ZSTD -

-
-

- zstdgrep -

-
-

- Executa grep em arquivos - comprimidos ZSTD -

-
-

- zstdless -

-
-

- Executa less em arquivos - comprimidos ZSTD -

-
-

- libzstd -

-
-

- A biblioteca que implementa compressão de dados sem - perdas, usando o algoritmo ZSTD -

-
-
-
-
-
-
-
-
-

- 8.10. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.10.1. Instalação de File -

-

- Prepare File para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.10.2. - Conteúdo de File -

-
-
-
- Aplicativos instalados: - file -
-
- Bibliotecas instaladas: - libmagic.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- file -

-
-

- Tenta classificar cada arquivo dado; ele faz isso - realizando vários testes—testes de sistema de - arquivos, testes de números mágicos, e testes de - idioma -

-
-

- libmagic -

-
-

- Contém rotinas para reconhecimento de números - mágicos, usado pelo aplicativo file -

-
-
-
-
-
-
-
-
-

- 8.11. Readline-8.1.2 -

-
-
-
-
-

- O pacote Readline é um conjunto de bibliotecas que oferecem - edição de linha de comando e capacidades de histórico. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.11.1. Instalação de Readline -

-

- Reinstalar Readline causará as bibliotecas antigas serem - movidas para <libraryname>.old. Mesmo que isso - normalmente não seja um problema, em alguns casos isso pode - deflagrar um defeito de vinculação em ldconfig. Isso pode ser - evitado executando os seguintes dois seds: -

-
sed -i '/MV.*old/d' Makefile.in
-sed -i '/{OLDSUFF}/c:' support/shlib-install
-

- Prepare Readline para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --with-curses    \
-            --docdir=/usr/share/doc/readline-8.1.2
-
-

- O significado da opção de configure: -

-
-
- --with-curses -
-
-

- Essa opção diz a Readline que ela pode encontrar as - funções de biblioteca de termcap na biblioteca curses, - em vez de uma biblioteca termcap separada. Ela permite - a geração de um arquivo readline.pc correto. -

-
-
-
-

- Compile o pacote: -

-
make SHLIB_LIBS="-lncursesw"
-
-

- O significado da opção de make: -

-
-
- SHLIB_LIBS="-lncursesw" -
-
-

- Essa opção força Readline a vincular com a biblioteca - libncursesw. -

-
-
-
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make SHLIB_LIBS="-lncursesw" install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2
-
-
-

- 8.11.2. Conteúdo de Readline -

-
-
-
- Bibliotecas instaladas: - libhistory.so e - libreadline.so -
-
- Diretórios instalados: - /usr/include/readline e - /usr/share/doc/readline-8.1.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libhistory -

-
-

- Fornece uma consistente interface de usuária(o) - para recordar linhas de histórico -

-
-

- libreadline -

-
-

- Fornece um conjunto de comandos para manipular - texto digitado em uma sessão interativa de um - aplicativo -

-
-
-
-
-
-
-
-
-

- 8.12. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.12.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.12.2. Conteúdo - de M4 -

-
-
-
- Aplicativo instalado: - m4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- m4 -

-
-

- Copia os arquivos dados enquanto expande as macros - que eles contém. Essas macros são ou nativas ou - definidas pela(o) usuária(o) e podem receber - qualquer número de argumentos. Além de executar - expansão de macro, m4 tem funções - nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, - manipular texto, recursão, etc. O aplicativo - m4 - pode ser usado ou como um front-end para um - compilador ou como um processador de macro - independente -

-
-
-
-
-
-
-
-
-

- 8.13. Bc-5.2.2 -

-
-
-
-
-

- O pacote Bc contém uma linguagem de processamento numérica de - precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,1 MB -
-
-
-
-
-

- 8.13.1. Instalação de Bc -

-

- Prepare Bc para compilação: -

-
CC=gcc ./configure --prefix=/usr -G -O3
-
-

- O significado das opções de configure: -

-
-
- CC=gcc -
-
-

- Esse parâmetro especifica o compilador a usar. -

-
-
- -O3 -
-
-

- Especifica a optimização a usar. -

-
-
- -G -
-
-

- Omite partes da suíte de teste que não funcionariam sem - um GNU bc presente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar bc, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.13.2. Conteúdo - de Bc -

-
-
-
- Aplicativos instalados: - bc e dc -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- bc -

-
-

- Uma calculadora de linha de comando -

-
-

- dc -

-
-

- Uma calculadora de linha de comando de entrada - polonesa - reversa -

-
-
-
-
-
-
-
-
-

- 8.14. Flex-2.6.4 -

-
-
-
-
-

- O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 8.14.1. Instalação de Flex -

-

- Prepare Flex para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/flex-2.6.4 \
-            --disable-static
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 0,5 UPC), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Uns poucos aplicativos não sabem acerca de flex ainda e tentam - executar seu predecessor, lex. Para suportar esses - aplicativos, crie um link simbólico chamado lex que executa flex em modo de emulação lex: -

-
ln -sv flex /usr/bin/lex
-
-
-

- 8.14.2. - Conteúdo de Flex -

-
-
-
- Aplicativos instalados: - flex, flex++ (link para flex), e - lex (link para flex) -
-
- Bibliotecas instaladas: - libfl.so -
-
- Diretórios instalados: - /usr/share/doc/flex-2.6.4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- flex -

-
-

- Uma ferramenta para gerar aplicativos que - reconhecem padrões em texto; ele permite, para a - versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver - um aplicativo especializado -

-
-

- flex++ -

-
-

- Uma extensão de flex, é usada para gerar código e - classes C++. É um link simbólico para flex -

-
-

- lex -

-
-

- Um link simbólico que executa flex em modo de - emulação lex -

-
-

- libfl -

-
-

- A biblioteca flex -

-
-
-
-
-
-
-
-
-

- 8.15. Tcl-8.6.12 -

-
-
-
-
-

- O pacote Tcl contém a Tool - Command Language, uma linguagem de script robusta de - propósito geral. O pacote Expect é escrito na linguagem - Tcl. -

-
-
-
- Tempo aproximado de - construção: 3,4 UPC -
-
- Espaço em disco - exigido: 87 MB -
-
-
-
-
-

- 8.15.1. Instalação de Tcl -

-

- Esse pacote e os próximos dois (Expect e DejaGNU) são - instalados para suportar a execução das suítes de teste para - binutils e GCC e outros pacotes. Instalar três pacotes para - propósitos de teste talvez pareça excessivo, mas é muito - assegurador, se não essencial, saber que as ferramentas mais - importantes estão funcionando adequadamente. -

-

- Primeiro, desempacote a documentação executando o seguinte - comando: -

-
tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1
-

- Prepare Tcl para compilação: -

-
SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
-
-

- O significado das opções de configure: -

-
-
- $([ - "$(uname -m)" = x86_64 ] && echo - --enable-64bit) -
-
-

- A construção $(<shell - command>) é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada - em uma máquina de 32 bits, e é --enable-64bit se - executada em uma máquina de 64 bits. -

-
-
-
-

- Construa o pacote: -

-
make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
-    -e "s|$SRCDIR|/usr/include|"  \
-    -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|"            \
-    -i pkgs/tdbc1.1.3/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|"            \
-    -i pkgs/itcl4.2.2/itclConfig.sh
-
-unset SRCDIR
-

- As várias instruções sed após o comando make - removem referências ao diretório de construção dos arquivos - de configuração e as substituem com o diretório de - instalação. Isso não é obrigatório para o restante de LFS, - porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. -

-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-

- Torne as bibliotecas instaladas graváveis de modo que - símbolos de depuração possam ser removidos posteriormente: -

-
chmod -v u+w /usr/lib/libtcl8.6.so
-

- Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige - elas. -

-
make install-private-headers
-

- Agora faça um necessário link simbólico: -

-
ln -sfv tclsh8.6 /usr/bin/tclsh
-

- Renomeie uma página de manual que conflita com uma página de - manual de Perl: -

-
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
-

- Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -

-
mkdir -v -p /usr/share/doc/tcl-8.6.12
-cp -v -r  ../html/* /usr/share/doc/tcl-8.6.12
-
-
-

- 8.15.2. Conteúdo - de Tcl -

-
-
-
- Aplicativos instalados: - tclsh (link to tclsh8.6) e - tclsh8.6 -
-
- Bibliotecas instaladas: - libtcl8.6.so e - libtclstub8.6.a -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- tclsh8.6 -

-
-

- O shell de comando de Tcl -

-
-

- tclsh -

-
-

- Um link para tclsh8.6 -

-
-

- libtcl8.6.so -

-
-

- A biblioteca Tcl -

-
-

- libtclstub8.6.a -

-
-

- A biblioteca Stub de Tcl -

-
-
-
-
-
-
-
-
-

- 8.16. Expect-5.45.4 -

-
-
-
-
-

- O pacote Expect contém - ferramentas para automatizar, via diálogos com script, - aplicativos interativos tais como telnet, ftp, passwd, fsck, rlogin, e tip. Expect também é útil para testar esses - mesmos aplicativos bem como facilitar todos os tipos de - tarefas que são proibitivamente difíceis com qualquer outra - coisa. A estrutura subjacente de DejaGnu é escrita em Expect. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 3,9 MB -
-
-
-
-
-

- 8.16.1. Instalação de Expect -

-

- Prepare Expect para compilação: -

-
./configure --prefix=/usr           \
-            --with-tcl=/usr/lib     \
-            --enable-shared         \
-            --mandir=/usr/share/man \
-            --with-tclinclude=/usr/include
-
-

- O significado das opções de configure: -

-
-
- --with-tcl=/usr/lib -
-
-

- Esse parâmetro é necessário para dizer a configure onde o - script tclConfig.sh está - localizado. -

-
-
- --with-tclinclude=/usr/include -
-
-

- Isso explicitamente diz a Expect onde encontrar os - cabeçalhos internos de Tcl. -

-
-
-
-

- Construa o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
-
-
-

- 8.16.2. - Conteúdo de Expect -

-
-
-
- Aplicativo instalado: - expect -
-
- Biblioteca instalada: - libexpect5.45.4.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- expect -

-
-

- Comunica-se com outros aplicativos interativos de - acordo com um script -

-
-

- libexpect-5.45.4.so -

-
-

- Contém funções que permitem a Expect ser usado como - uma extensão Tcl ou ser usado diretamente a partir - de C ou C++ (sem Tcl) -

-
-
-
-
-
-
-
-
-

- 8.17. DejaGNU-1.6.3 -

-
-
-
-
-

- O pacote DejaGnu contém uma - estrutura subjacente para executar suítes de teste em - ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command - Language). -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,9 MB -
-
-
-
-
-

- 8.17.1. Instalação de DejaGNU -

-

- A(O) desenvolvedora(r) recomenda construir DejaGNU em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare DejaGNU para compilação: -

-
../configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
-makeinfo --plaintext       -o doc/dejagnu.txt  ../doc/dejagnu.texi
-

- Construa e instale o pacote: -

-
make install
-install -v -dm755  /usr/share/doc/dejagnu-1.6.3
-install -v -m644   doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3
-

- Para testar os resultados, execute: -

-
make check
-
-
-

- 8.17.2. - Conteúdo de DejaGNU -

-
-
-
- Aplicativos instalados: - dejagnu e runtest -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- dejagnu -

-
-

- Iniciador de comando auxiliar DejaGNU -

-
-

- runtest -

-
-

- Um script encapsulador que localiza o shell - expect adequado - e, em seguida, executa o DejaGNU -

-
-
-
-
-
-
-
-
-

- 8.18. Binutils-2.38 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 6,1 UPC -
-
- Espaço em disco - exigido: 4,6 GB -
-
-
-
-
-

- 8.18.1. Instalação de Binutils -

-

- Verifique se os Pseudo Terminais (PTYs) estão funcionando - adequadamente dentro do ambiente chroot executando um teste - simples: -

-
expect -c "spawn ls"
-

- Esse comando deveria retornar o seguinte: -

-
spawn ls
-

- Se, ao invés, a saída incluir a mensagem abaixo, então o - ambiente não está configurado para operação adequada de PTY. - Esse problema precisa ser resolvido antes de executar as - suítes de teste para Binutils e GCC: -

-
The system has no more ptys.
-Ask your system administrator to create more.
-

- A(O) desenvolvedora(r) fez um conjunto curto de comandos para - fixar um problema quando do uso de binutils para construir - alguns pacotes BLFS com Link Time Optimization (LTO) - habilitado. Aplique ele agora: -

-
patch -Np1 -i ../binutils-2.38-lto_fix-1.patch
-

- Agora, faça um conserto identificado pela(o) - desenvolvedora(r) que afeta a construção alguns pacotes: -

-
sed -e '/R_386_TLS_LE /i \   || (TYPE) == R_386_TLS_IE \\' \
-    -i ./bfd/elfxx-x86.h
-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure --prefix=/usr       \
-             --enable-gold       \
-             --enable-ld=default \
-             --enable-plugins    \
-             --enable-shared     \
-             --disable-werror    \
-             --enable-64-bit-bfd \
-             --with-system-zlib
-
-

- O significado dos parâmetros de configure: -

-
-
- --enable-gold -
-
-

- Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). -

-
-
- --enable-ld=default -
-
-

- Constrói o vinculador bfd original e instala ele como - ambos ld (o vinculador padrão) e ld.bfd. -

-
-
- --enable-plugins -
-
-

- Habilita suporte de plugin para o vinculador. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
- --with-system-zlib -
-
-

- Usa a biblioteca zlib instalada em vez de construir a - versão incluída. -

-
-
-
-

- Compile o pacote: -

-
make tooldir=/usr
-
-

- O significado do parâmetro de make: -

-
-
- tooldir=/usr -
-
-

- Normalmente, o tooldir (o diretório onde os executáveis - estarão ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por - exemplo, máquinas x86_64 expandiriam isso para - /usr/x86_64-pc-linux-gnu. - Por causa que este é um sistema personalizado, esse - diretório alvo específico em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar - cruzadamente (por exemplo, compilar um pacote em uma - máquina Intel que gera código que pode ser executado em - máquinas PowerPC). -

-
-
-
-
-

- Importante -

-

- A suíte de teste para Binutils nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make -k check
-

- Instale o pacote: -

-
make tooldir=/usr install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
-
-
-

- 8.18.2. Conteúdo de Binutils -

-
-
-
- Aplicativos instalados: - addr2line, ar, as, c++filt, dwp, - elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, - objdump, ranlib, readelf, size, strings, e strip -
-
- Bibliotecas instaladas: - libbfd.so, libctf.so, - libctf-nobfd.so, e libopcodes.so -
-
- Diretório instalado: - /usr/lib/ldscripts -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addr2line -

-
-

- Traduz endereços de aplicativos para nomes de - arquivo e números de linha; dado um endereço e o - nome de um executável, ele usa a informação de - depuração no executável para determinar qual - arquivo fonte e número de linha estão associados ao - endereço -

-
-

- ar -

-
-

- Cria, modifica e extrai a partir de arquivamentos -

-
-

- as -

-
-

- Um montador que monta a saída de gcc para dentro - de arquivos objeto -

-
-

- c++filt -

-
-

- Usado pelo vinculador para desmembrar símbolos C++ - e Java e para impedir que funções sobrecarregadas - entrem em conflito -

-
-

- dwp -

-
-

- O utilitário de empacotamento DWARF -

-
-

- elfedit -

-
-

- Atualiza o cabeçalho ELF de arquivos ELF -

-
-

- gprof -

-
-

- Exibe dados do perfil de gráfico de chamada -

-
-

- ld -

-
-

- Um vinculador que combina um número de objetos e - arquivos de arquivamento em um arquivo, realocando - seus dados e vinculando referências de símbolos -

-
-

- ld.gold -

-
-

- Uma versão reduzida de ld que suporta apenas o - formato de arquivo de objeto elf -

-
-

- ld.bfd -

-
-

- Hard link para ld -

-
-

- nm -

-
-

- Lista os símbolos que ocorrem em um dado arquivo de - objeto -

-
-

- objcopy -

-
-

- Traduz um tipo de arquivo de objeto em outro -

-
-

- objdump -

-
-

- Exibe informação sobre o dado arquivo de objeto, - com opções controlando a informação particular a - ser exibida; a informação mostrada é útil para - programadores que estão trabalhando nas ferramentas - de compilação -

-
-

- ranlib -

-
-

- Gera um índice do conteúdo de um arquivamento e o - armazena no arquivamento; o índice lista todos os - símbolos definidos pelos membros do arquivamento - que são arquivos de objeto realocáveis -

-
-

- readelf -

-
-

- Exibe informação sobre binários de tipo ELF -

-
-

- size -

-
-

- Lista os tamanhos de seção e o tamanho total para - os arquivos de objeto dados -

-
-

- strings -

-
-

- Exibe, para cada arquivo dado, as sequências de - caracteres imprimíveis que são de, no mínimo, o - tamanho especificado (padronizado para quatro); - para arquivos de objeto, ele imprime, por padrão, - apenas as sequências de caracteres a partir das - seções de inicialização e carregamento enquanto que - para outros tipos de arquivos, ele escaneia o - arquivo inteiro -

-
-

- strip -

-
-

- Descarta símbolos de arquivos de objeto -

-
-

- libbfd -

-
-

- A biblioteca de Descritor de Arquivo Binário -

-
-

- libctf -

-
-

- A biblioteca de suporte de depuração Compat ANSI-C - Type Format -

-
-

- libctf-nobfd -

-
-

- Uma variante de libctf que não usa funcionalidade - de libbfd -

-
-

- libopcodes -

-
-

- Uma biblioteca para lidar com opcodes—as - versões de texto legível de - instruções para o processador; é usado para - construir utilitários como objdump -

-
-
-
-
-
-
-
-
-

- 8.19. GMP-6.2.1 -

-
-
-
-
-

- O pacote GMP contém bibliotecas matemáticas. Essas tem - funções úteis para aritmética de precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: 1,0 UPC -
-
- Espaço em disco - exigido: 52 MB -
-
-
-
-
-

- 8.19.1. Instalação de GMP -

-
-

- Nota -

-

- Se você estiver construindo para x86 de 32 bits, mas tem - uma CPU capaz de executar código de 64 bits e você especificou CFLAGS no ambiente, então o script configure - tentará configurar para 64 bits e falhará. Impeça isso - invocando o comando de configure abaixo com -

-
ABI=32 ./configure ...
-
-
-

- Nota -

-

- As configurações padrão de GMP produzem bibliotecas - otimizadas para o processador anfitrião. Se bibliotecas - adequadas para processadores menos capazes que a CPU do - anfitrião forem desejadas, então bibliotecas genéricas - podem ser criadas executando o seguinte: -

-
cp -v configfsf.guess config.guess
-cp -v configfsf.sub   config.sub
-
-

- Prepare GMP para compilação: -

-
./configure --prefix=/usr    \
-            --enable-cxx     \
-            --disable-static \
-            --docdir=/usr/share/doc/gmp-6.2.1
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-cxx -
-
-

- Esse parâmetro habilita suporte a C++ -

-
-
- --docdir=/usr/share/doc/gmp-6.2.1 -
-
-

- Essa variável especifica o lugar correto para a - documentação. -

-
-
-
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para GMP nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make check 2>&1 | tee gmp-check-log
-
-

- Cuidado -

-

- O código em gmp é altamente otimizado para o processador - onde ele é construído. Ocasionalmente, o código que detecta - o processador identifica errado as capacidades de sistema e - existirão erros nos testes ou outros aplicativos que usam - as bibliotecas de gmp com a mensagem "Illegal instruction". - Nesse caso, gmp deveria ser reconfigurado com a opção - --build=x86_64-pc-linux-gnu e reconstruído. -

-
-

- Certifique-se de que todos os 197 testes na suíte de teste - passaram. Verifique os resultados executando o seguinte - comando: -

-
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.19.2. Conteúdo - de GMP -

-
-
-
- Bibliotecas instaladas: - libgmp.so e libgmpxx.so -
-
- Diretório instalado: - /usr/share/doc/gmp-6.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libgmp -

-
-

- Contém funções matemáticas de precisão -

-
-

- libgmpxx -

-
-

- Contém funções matemáticas de precisão C++ -

-
-
-
-
-
-
-
-
-

- 8.20. MPFR-4.1.0 -

-
-
-
-
-

- O pacote MPFR contém funções para matemática de precisão - múltipla. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 8.20.1. Instalação de MPFR -

-

- Prepare MPFR para compilação: -

-
./configure --prefix=/usr        \
-            --disable-static     \
-            --enable-thread-safe \
-            --docdir=/usr/share/doc/mpfr-4.1.0
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para MPFR nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados e certifique-se de que todos os testes - passaram: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.20.2. - Conteúdo de MPFR -

-
-
-
- Biblioteca instalada: - libmpfr.so -
-
- Diretório instalado: - /usr/share/doc/mpfr-4.1.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpfr -

-
-

- Contém funções matemáticas de precisão múltipla -

-
-
-
-
-
-
-
-
-

- 8.21. MPC-1.2.1 -

-
-
-
-
-

- O pacote MPC contém uma biblioteca para a aritmética de - números complexos com precisão arbitrariamente alta e - arredondamento correto de resultado. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 21 MB -
-
-
-
-
-

- 8.21.1. Instalação de MPC -

-

- Prepare MPC para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/mpc-1.2.1
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.21.2. Conteúdo - de MPC -

-
-
-
- Biblioteca instalada: - libmpc.so -
-
- Diretório instalado: - /usr/share/doc/mpc-1.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpc -

-
-

- Contém funções matemáticas complexas -

-
-
-
-
-
-
-
-
-

- 8.22. Attr-2.5.1 -

-
-
-
-
-

- O pacote attr contém utilitários para administrar os - atributos estendidos sobre objetos de sistema de arquivos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,1 MB -
-
-
-
-
-

- 8.22.1. Instalação de Attr -

-

- Prepare Attr para compilação: -

-
./configure --prefix=/usr     \
-            --disable-static  \
-            --sysconfdir=/etc \
-            --docdir=/usr/share/doc/attr-2.5.1
-

- Compile o pacote: -

-
make
-

- Os testes precisam ser executados sobre um sistema de - arquivos que suporte atributos estendidos, tais como os - sistemas de arquivos ext2, ext3 ou ext4. Para testar os - resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.22.2. - Conteúdo de Attr -

-
-
-
- Aplicativos instalados: - attr, getfattr, e setfattr -
-
- Biblioteca instalada: - libattr.so -
-
- Diretórios instalados: - /usr/include/attr e - /usr/share/doc/attr-2.5.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- attr -

-
-

- Estende atributos sobre objetos de sistemas de - arquivos -

-
-

- getfattr -

-
-

- Obtém os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- setfattr -

-
-

- Configura os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- libattr -

-
-

- Contém as funções de biblioteca para manipular - atributos estendidos -

-
-
-
-
-
-
-
-
-

- 8.23. Acl-2.3.1 -

-
-
-
-
-

- O pacote Acl contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir direitos - de acesso discricionários mais refinados para arquivos e - diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 6,1 MB -
-
-
-
-
-

- 8.23.1. Instalação de Acl -

-

- Prepare Acl para compilação: -

-
./configure --prefix=/usr         \
-            --disable-static      \
-            --docdir=/usr/share/doc/acl-2.3.1
-

- Compile o pacote: -

-
make
-

- Os testes de Acl precisam ser executados sobre um sistema de - arquivos que suporte controles de acesso, após Coreutils ter sido construído com as - bibliotecas de Acl. Se desejado, retorne a esse pacote e - execute make - check após Coreutils ter sido construído - posteriormente neste capítulo. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.23.2. Conteúdo - de Acl -

-
-
-
- Aplicativos instalados: - chacl, getfacl, e setfacl -
-
- Biblioteca instalada: - libacl.so -
-
- Diretórios instalados: - /usr/include/acl e - /usr/share/doc/acl-2.3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- chacl -

-
-

- Muda a lista de controle de acesso de um arquivo ou - diretório -

-
-

- getfacl -

-
-

- Obtém listas de controle de acesso de arquivo -

-
-

- setfacl -

-
-

- Configura listas de controle de acesso de arquivo -

-
-

- libacl -

-
-

- Contém as funções de biblioteca para manipular - Listas de Controle de Acesso -

-
-
-
-
-
-
-
-
-

- 8.24. Libcap-2.63 -

-
-
-
-
-

- O pacote Libcap implementa as interfaces de espaço de - usuária(o) para as capacidades POSIX 1003.1e disponíveis em - kernels Linux. Essas capacidades são um particionamento de - todo o poderoso privilégio de root em um conjunto de - privilégios distintos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,7 MB -
-
-
-
-
-

- 8.24.1. Instalação de Libcap -

-

- Impeça bibliotecas estáticas de serem instaladas: -

-
sed -i '/install -m.*STA/d' libcap/Makefile
-

- Compile o pacote: -

-
make prefix=/usr lib=lib
-
-

- O significado da opção de make: -

-
-
- lib=lib -
-
-

- Esse parâmetro configura o diretório de biblioteca para - /usr/lib em vez de - /usr/lib64 em x86_64. Ele - não tem efeito em x86. -

-
-
-
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make prefix=/usr lib=lib install
-
-
-

- 8.24.2. - Conteúdo de Libcap -

-
-
-
- Aplicativos instalados: - capsh, getcap, getpcaps, e - setcap -
-
- Bibliotecas instaladas: - libcap.so e libpsx.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- capsh -

-
-

- Um encapsulador de shell para explorar e restringir - suporte de capacidade -

-
-

- getcap -

-
-

- Examina capacidades de arquivo -

-
-

- getpcaps -

-
-

- Exibe as capacidades sobre o(s) processo(s) - consultado(s) -

-
-

- setcap -

-
-

- Configura capacidades de arquivo -

-
-

- libcap -

-
-

- Contém as funções de biblioteca para manipular - capacidades POSIX 1003.1e -

-
-

- libpsx -

-
-

- Contém funções para suportar semântica POSIX para - chamadas de sistema associadas com a biblioteca - pthread -

-
-
-
-
-
-
-
-
-

- 8.25. Shadow-4.11.1 -

-
-
-
-
-

- O pacote Shadow contém aplicativos para manipular senhas de - uma maneira segura. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.25.1. Instalação de Shadow -

-
-

- Nota -

-

- Se você gostaria de reforçar o uso de senhas fortes, então - recorra a - https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.html - para instalar CrackLib antes de construir Shadow. Então - adicione --with-libcrack ao comando - configure - abaixo. -

-
-

- Desabilite a instalação do aplicativo groups e suas páginas de - manual, uma vez que Coreutils fornece uma versão melhor. - Também, impeça a instalação de páginas de manual que já foram - instaladas em Seção 8.3, - “Man-pages-5.13”: -

-
sed -i 's/groups$(EXEEXT) //' src/Makefile.in
-find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
-find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
-find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;
-

- Em vez de usar o método padrão - crypt, use o método - mais seguro SHA-512 de - encriptação de senha, o qual também permite senhas maiores - que oito (08) caracteres. É também necessário mudar a - localização obsoleta /var/spool/mail para caixas de correio de - usuária(o) que Shadow usa por padrão pela localização - /var/mail usada atualmente. E, - livre-se de /bin e /sbin a partir de PATH, uma vez que eles são simples links - simbólicos para seus homônimos em /usr. -

-
-

- Nota -

-

- Se /bin e (ou) /sbin forem preferidos para serem - deixados em PATH por alguma - razão, então modifique PATH em - .bashrc após LFS ser - construído. -

-
-
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-    -e 's:/var/spool/mail:/var/mail:'                 \
-    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \
-    -i etc/login.defs
-
-

- Nota -

-

- Se você escolher construir Shadow com suporte CrackLib, - então execute o seguinte: -

-
sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs
-
-

- Prepare Shadow para compilação: -

-
touch /usr/bin/passwd
-./configure --sysconfdir=/etc \
-            --disable-static  \
-            --with-group-name-max-length=32
-
-

- O significado da opção de configure: -

-
-
- touch - /usr/bin/passwd -
-
-

- O arquivo /usr/bin/passwd - precisa existir, pois a localização dele é codificada - rigidamente em alguns aplicativos, e se ele não - existir, então a localização padrão não é correta. -

-
-
- --with-group-name-max-length=32 -
-
-

- O nome de usuária(o) máximo é trinta e dois (32) - caracteres. Torne o nome de grupo máximo o mesmo. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make exec_prefix=/usr install
-make -C man install-man
-
-
-

- 8.25.2. - Configurando Shadow -

-

- Esse pacote contém utilitários para adicionar, modificar, e - deletar usuárias(os) e grupos; configura e modifica suas - senhas; e realiza outras tarefas administrativas. Para uma - explanação completa do que password shadowing significa, veja - o arquivo doc/HOWTO dentro da - árvore desempacotada de fonte. Se usar suporte Shadow, então - tenha na mente que aplicativos que necessitem verificar - senhas (gerenciadores de tela, aplicativos de FTP, daemons - pop3, etc.) precisam ser conformes com Shadow. Isto é, eles - precisam ser capazes de trabalhar com senhas ocultas. -

-

- Para habilitar senhas ocultas, execute o seguinte comando: -

-
pwconv
-

- Para habilitar senhas ocultas de grupo, execute: -

-
grpconv
-

- A configuração padrão de Shadow para o utilitário - useradd tem - umas poucas ressalvas que precisam de alguma explanação. - Primeiro, a ação padrão para o utilitário useradd é a de criar a(o) - usuária(o) e um grupo de mesmo nome que a(o) usuária(o). Por - padrão os números de ID de usuária(o) (UID) e ID de grupo - (GID) iniciarão com 1000. Isso significa que se você não - passar parâmetros para useradd, então cada - usuária(o) será uma(m) membro de um grupo único no sistema. - Se esse comportamento for indesejável, então você precisará - passar um parâmetro de -g ou -N para useradd ou mudar a - configuração de USERGROUPS_ENAB em /etc/login.defs. Veja-se useradd(8) para mais informação. -

-

- Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa - ser criado e adaptado para atender às suas necessidades - particulares. Crie ele com: -

-
mkdir -p /etc/default
-useradd -D --gid 999
-
-

- Explanações de Parâmetro de /etc/default/useradd -

-
-
- GROUP=999 -
-
-

- Esse parâmetro configura o início dos números de grupo - usado no arquivo /etc/group. O valor particular 999 - vem do parâmetro --gid acima. Você pode - modificá-lo para qualquer coisa que deseje. Note que - useradd - nunca reusará um UID ou GID. Se o número identificado - nesse parâmetro for usado, então ele usará o próximo - número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na - primeira vez que você usar useradd sem o - parâmetro -g, - então você receberá uma mensagem exibida no terminal - que diz: useradd: unknown - GID 999, apesar de a conta estar criada - corretamente. Esse é o motivo pelo qual nós criamos o - grupo users com esse ID - de grupo em Seção 7.6, - “Criando Arquivos Essenciais e Links - Simbólicos”. -

-
-
- CREATE_MAIL_SPOOL=yes -
-
-

- Esse parâmetro faz com que useradd crie um - arquivo de caixa de correio para a(o) usuária(o) recém - criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo - mail com permissões - 0660. Se você preferisse que esses arquivos de caixa de - correio não fossem criados por useradd, então - execute o seguinte comando: -

-
sed -i '/MAIL/s/yes/no/' /etc/default/useradd
-
-
-
-
-
-

- 8.25.3. Configurando a senha de root -

-

- Escolha uma senha para a(o) usuária(o) root e configure ela executando: -

-
passwd root
-
-
-

- 8.25.4. - Conteúdo de Shadow -

-
-
-
- Aplicativos instalados: - chage, chfn, chgpasswd, chpasswd, - chsh, expiry, faillog, getsubids, gpasswd, groupadd, - groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, - lastlog, login, logoutd, newgidmap, newgrp, newuidmap, - newusers, nologin, passwd, pwck, pwconv, pwunconv, sg - (link para newgrp), su, useradd, userdel, usermod, vigr - (link para vipw), e vipw -
-
- Biblioteca instalada: - libsubid.so -
-
- Diretório instalado: - /etc/default -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chage -

-
-

- Usado para alterar o número de dias máximo entre - mudanças obrigatórias de senha -

-
-

- chfn -

-
-

- Usado para alterar um nome completo da(o) - usuária(o) e outra informação -

-
-

- chgpasswd -

-
-

- Usado para atualizar senhas de grupo em modo de - lote -

-
-

- chpasswd -

-
-

- Usado para atualizar senhas de usuárias(os) em modo - de lote -

-
-

- chsh -

-
-

- Usado para alterar um shell de login padrão da(o) - usuária(o) -

-
-

- expiry -

-
-

- Verifica e reforça a política atual de expiração de - senha -

-
-

- faillog -

-
-

- É Usado para examinar o registro de falhas de - login, configurar um número máximo de falhas antes - que uma conta seja bloqueada, ou zerar a contagem - de falhas -

-
-

- getsubids -

-
-

- É usado para listar os intervalos subordinados de - id para uma(m) usuária(o) -

-
-

- gpasswd -

-
-

- É usado para adicionar e deletar membros e - administradoras(es) para grupos -

-
-

- groupadd -

-
-

- Cria um grupo com o nome dado -

-
-

- groupdel -

-
-

- Deleta o grupo com o nome dado -

-
-

- groupmems -

-
-

- Permite que uma(m) usuária(o) administre sua - própria lista de membros de grupo sem a exigência - de privilégios de superusuária(o) -

-
-

- groupmod -

-
-

- É usado para modificar o nome ou GID do grupo dado -

-
-

- grpck -

-
-

- Verifica a integridade dos arquivos de grupo - /etc/group e - /etc/gshadow -

-
-

- grpconv -

-
-

- Cria ou atualiza o arquivo de grupo de sombra a - partir do arquivo de grupo normal -

-
-

- grpunconv -

-
-

- Atualiza /etc/group a - partir de /etc/gshadow e então deleta o - último -

-
-

- lastlog -

-
-

- Reporta o login mais recente de todas(os) as(os) - usuárias(os) ou de uma(m) usuária(o) dada(o) -

-
-

- login -

-
-

- É usado pelo sistema para permitir usuárias(os) - logar -

-
-

- logoutd -

-
-

- É um daemon usado para reforçar restrições sobre - horário de logon e portas -

-
-

- newgidmap -

-
-

- É usado para configurar o mapeamento gid de um - espaço de nome de usuária(o) -

-
-

- newgrp -

-
-

- É usado para modificar o GID atual durante uma - sessão de login -

-
-

- newuidmap -

-
-

- É usado para configurar o mapeamento uid de um - espaço de nome de usuária(o) -

-
-

- newusers -

-
-

- É usado para criar ou atualizar uma série inteira - de contas de usuárias(os) -

-
-

- nologin -

-
-

- Exibe uma mensagem que uma conta não está - disponível; projetado para ser usado como o shell - padrão para contas que foram desabilitadas -

-
-

- passwd -

-
-

- É usado para modificar a senha para uma conta de - usuária(o) ou grupo -

-
-

- pwck -

-
-

- Verifica a integridade dos arquivos de senha - /etc/passwd e - /etc/shadow -

-
-

- pwconv -

-
-

- Cria ou atualiza o arquivo de senha de sombra a - partir do arquivo de senha normal -

-
-

- pwunconv -

-
-

- Atualiza /etc/passwd - a partir de /etc/shadow e então deleta o - último -

-
-

- sg -

-
-

- Executa um comando dado enquanto o GID da(o) - usuária(o) está configurado para aquele do grupo - dado -

-
-

- su -

-
-

- Executa um shell com IDs de usuária(o) e grupo - substitutos -

-
-

- useradd -

-
-

- Cria uma(m) usuária(o) nova(o) com o nome dado, ou - atualiza a informação padrão de nova(o) usuária(o) -

-
-

- userdel -

-
-

- Deleta a conta de usuária(o) dada -

-
-

- usermod -

-
-

- É usado para modificar o nome de login da(o) - usuária(o) dada(o), Identificação de Usuária(o) - (UID), shell, grupo inicial, diretório home, etc. -

-
-

- vigr -

-
-

- Edita os arquivos /etc/group ou /etc/gshadow -

-
-

- vipw -

-
-

- Edita os arquivos /etc/passwd ou /etc/shadow -

-
-

- libsubid -

-
-

- Biblioteca para processar intervalos subordinados - de id para usuárias(os) -

-
-
-
-
-
-
-
-
-

- 8.26. GCC-11.2.0 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 153 UPC (com - os testes) -
-
- Espaço em disco - exigido: 4,3 GB -
-
-
-
-
-

- 8.26.1. Instalação de GCC -

-

- Primeiramente, conserte um problema que quebra libasan.a quando da construção desse pacote - com Glibc-2.34 ou posterior: -

-
sed -e '/static.*SIGSTKSZ/d' \
-    -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
-    -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
-

- Se construir em x86_64, então mude o nome de diretório padrão - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure --prefix=/usr            \
-             LD=ld                    \
-             --enable-languages=c,c++ \
-             --disable-multilib       \
-             --disable-bootstrap      \
-             --with-system-zlib
-

- Note que para outras linguagens de programação, existem - alguns pré-requisitos que ainda não estão disponíveis. - Veja-se a - página de GCC do Livro BLFS para instruções sobre como - construir todas as linguagens suportadas do GCC. -

-
-

- O significado dos novos parâmetros de - configure: -

-
-
- LD=ld -
-
-

- Esse parâmetro induz o script configure a usar o ld - instalado pelo binutils construído anteriormente neste - capítulo, em vez da versão construída cruzadamente a - qual de outra maneira seria usada. -

-
-
- --with-system-zlib -
-
-

- Essa chave diz a GCC para vincular à cópia instalada de - sistema da biblioteca zlib, em vez de sua própria cópia - interna. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para GCC é considerada - importante, porém ela toma um tempo longo. Construtoras(es) - de primeira vez são encorajadas(os) a não pular ela. O - tempo para executar os testes pode ser reduzido - significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. -

-
-

- Um conjunto de testes na suíte de teste de GCC é conhecida - por esgotar a pilha padrão, então aumente o tamanho de pilha - antes de executar os testes: -

-
ulimit -s 32768
-

- Teste os resultados como uma(m) usuária(o) não - privilegiada(o), porém não pare aos erros: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make -k check"
-

- Para receber um sumário dos resultados de suíte de teste, - execute: -

-
../contrib/test_summary
-

- Para apenas os sumários, entube a saída por grep -A7 Summ. -

-

- Resultados podem ser comparados com aqueles localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - e https://gcc.gnu.org/ml/gcc-testresults/. -

-

- Oito testes relacionados ao analisador são conhecidos por - falhar. -

-

- Um teste chamado asan_test.C é - conhecido por falhar. -

-

- Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. -

-

- Em libstdc++, um teste de numeração de pontuação e seis - testes relacionados a get_time são conhecidos por falhar. - Essas são todas por causa das definições de locale em glibc - que mudaram, porém libstdc++ atualmente não suporta essas - mudanças. -

-

- Umas poucas falhas inesperadas não podem ser evitadas sempre. - As(Os) desenvolvedoras(es) de GCC geralmente estão cientes - desses problemas, mas ainda não os resolveram. A menos que os - resultados de teste sejam amplamente diferentes daqueles na - URL acima, é seguro continuar. -

-

- Instale o pacote e remova um diretório desnecessário: -

-
make install
-rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/
-

- O diretório de construção de GCC é de propriedade de - tester agora e a propriedade - do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e - grupo root: -

-
chown -v -R root:root \
-    /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed}
-

- Crie um link simbólico exigido por - FHS por razões "históricas". -

-
ln -svr /usr/bin/cpp /usr/lib
-

- Adicione um link simbólico de compatibilidade para habilitar - a construção de aplicativos com Link Time Optimization (LTO): -

-
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \
-        /usr/lib/bfd-plugins/
-

- Agora que nosso conjunto de ferramentas final está no lugar, - é importante certificar-se novamente de que compilação e - vinculação funcionarão como esperado. Nós fazemos isso - realizando algumas verificações de sanidade: -

-
echo 'int main(){}' > dummy.c
-cc dummy.c -v -Wl,--verbose &> dummy.log
-readelf -l a.out | grep ': /lib'
-

- Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de - vinculador dinâmico): -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Agora tenha certeza de que nós estamos configurados para usar - os arquivos de iniciação corretos: -

-
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
-

- A saída do último comando deveria ser: -

-
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded
-

- Dependendo da arquitetura de sua máquina, o acima talvez - difira levemente. A diferença será o nome do diretório depois - de /usr/lib/gcc. A coisa - importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório - /usr/lib. -

-

- Verifique que o compilador está procurando pelos arquivos de - cabeçalho corretos: -

-
grep -B4 '^ /usr/include' dummy.log
-

- Esse comando deveria retornar a seguinte saída: -

-
#include <...> search starts here:
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include
- /usr/local/include
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed
- /usr/include
-

- Novamente, o diretório nomeado após seu triplet alvo talvez - seja diferente do que o acima, dependendo da arquitetura de - seu sistema. -

-

- Em seguida, verifique que o novo vinculador está sendo usado - com os caminhos de procura corretos: -

-
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
-

- Referências a caminhos que tem componentes com '-linux-gnu' - deveriam ser ignoradas, porém, do contrário, a saída do - último comando deveria ser: -

-
SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
-SEARCH_DIR("/usr/local/lib64")
-SEARCH_DIR("/lib64")
-SEARCH_DIR("/usr/lib64")
-SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Um sistema de 32 bits talvez veja uns poucos diretórios - diferentes. Por exemplo, aqui está a saída originária de uma - máquina i686: -

-
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
-SEARCH_DIR("/usr/local/lib32")
-SEARCH_DIR("/lib32")
-SEARCH_DIR("/usr/lib32")
-SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Em seguida, tenha certeza de que nós estamos usando a libc - correta: -

-
grep "/lib.*/libc.so.6 " dummy.log
-

- A saída do último comando deveria ser: -

-
attempt to open /usr/lib/libc.so.6 succeeded
-

- Tenha certeza de que GCC está usando o vinculador dinâmico - correto: -

-
grep found dummy.log
-

- A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -

-
found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2
-

- Se a saída não aparecer como mostrado acima ou não for - recebida de jeito nenhum, então alguma coisa está seriamente - errada. Investigue e retrace os passos para encontrar onde - está o problema e corrija o mesmo. Quaisquer problemas - precisão ser resolvidos antes de continuar com o processo. -

-

- Uma vez que tudo esteja funcionando corretamente, limpe os - arquivos de teste: -

-
rm -v dummy.c a.out dummy.log
-

- Finalmente, mova um arquivo mal colocado: -

-
mkdir -pv /usr/share/gdb/auto-load/usr/lib
-mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
-
-
-

- 8.26.2. Conteúdo - de GCC -

-
-
-
- Aplicativos instalados: - c++, cc (link para gcc), cpp, g++, - gcc, gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, - gcov-tool, e lto-dump -
-
- Bibliotecas instaladas: - libasan.{a,so}, libatomic.{a,so}, - libcc1.so, libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, - libgomp.{a,so}, libitm.{a,so}, liblsan.{a,so}, - liblto_plugin.so, libquadmath.{a,so}, libssp.{a,so}, - libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} -
-
- Diretórios instalados: - /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- c++ -

-
-

- O compilador C++ -

-
-

- cc -

-
-

- O compilador C -

-
-

- cpp -

-
-

- O preprocessador C; é usado pelo compilador para - expandir as declarações #include, #define e - similares nos arquivos fonte -

-
-

- g++ -

-
-

- O compilador C++ -

-
-

- gcc -

-
-

- O compilador C -

-
-

- gcc-ar -

-
-

- Um encapsulador em torno de ar que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-nm -

-
-

- Um encapsulador em torno de nm que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-ranlib -

-
-

- Um encapsulador em torno de ranlib que - adiciona um plugin à linha de comando. Esse - aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcov -

-
-

- Uma ferramenta de teste de cobertura; usada para - analisar aplicativos para determinar onde as - otimizações terão mais efeito -

-
-

- gcov-dump -

-
-

- Ferramenta de despejo de perfil offline gcda e gcno -

-
-

- gcov-tool -

-
-

- Ferramenta de processamento de perfil offline gcda -

-
-

- lto-dump -

-
-

- Ferramenta para despejar arquivos objeto produzidos - por GCC com LTO habilitado -

-
-

- libasan -

-
-

- A biblioteca de tempo de execução do Address - Sanitizer -

-
-

- libatomic -

-
-

- Biblioteca de tempo de execução atômica interna do - GCC -

-
-

- libcc1 -

-
-

- A biblioteca de pré-processamento C -

-
-

- libgcc -

-
-

- Contém suporte de tempo de execução para - gcc -

-
-

- libgcov -

-
-

- Essa biblioteca é vinculada a um aplicativo quando - GCC for instruído a habilitar criação de perfil -

-
-

- libgomp -

-
-

- Implementação GNU da API OpenMP para programação - paralela de memória compartilhada multiplataforma - em C/C++ e Fortran -

-
-

- libitm -

-
-

- A biblioteca de memória transacional GNU -

-
-

- liblsan -

-
-

- A biblioteca de tempo de execução do Leak Sanitizer -

-
-

- liblto_plugin -

-
-

- Plugin LTO do GCC permite ao binutils processar - arquivos objeto produzidos por GCC com LTO - habilitado -

-
-

- libquadmath -

-
-

- API da Biblioteca Matemática de Precisão Quádrupla - GCC -

-
-

- libssp -

-
-

- Contém rotinas que suportam a funcionalidade de - proteção contra esmagamento de pilha do GCC -

-
-

- libstdc++ -

-
-

- A biblioteca C++ padrão -

-
-

- libstdc++fs -

-
-

- Biblioteca de Sistema de Arquivos ISO/IEC TS - 18822:2015 -

-
-

- libsupc++ -

-
-

- Fornece rotinas de suporte para a linguagem de - programação C++ -

-
-

- libtsan -

-
-

- A biblioteca de tempo de execução do Thread - Sanitizer -

-
-

- libubsan -

-
-

- A biblioteca de tempo de execução do Undefined - Behavior Sanitizer -

-
-
-
-
-
-
-
-
-

- 8.27. Pkg-config-0.29.2 -

-
-
-
-
-

- O pacote pkg-config contém uma ferramenta para passar o - caminho include e (ou) caminhos de biblioteca para - ferramentas de construção durante as fases configure e make - de instalações de pacote. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 29 MB -
-
-
-
-
-

- 8.27.1. Instalação de Pkg-config -

-

- Prepare Pkg-config para compilação: -

-
./configure --prefix=/usr              \
-            --with-internal-glib       \
-            --disable-host-tool        \
-            --docdir=/usr/share/doc/pkg-config-0.29.2
-
-

- O significado das novas opções de - configure: -

-
-
- --with-internal-glib -
-
-

- Isso permitirá que pkg-config use a versão interna dele - de Glib, pois uma versão externa não está disponível em - LFS. -

-
-
- --disable-host-tool -
-
-

- Essa opção desabilita a criação de um indesejado hard - link para o aplicativo pkg-config. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.27.2. Conteúdo de Pkg-config -

-
-
-
- Aplicativo instalado: - pkg-config -
-
- Diretório instalado: - /usr/share/doc/pkg-config-0.29.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- pkg-config -

-
-

- Retorna meta informação para a biblioteca ou pacote - especificada -

-
-
-
-
-
-
-
-
-

- 8.28. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 8.28.1. Instalação de Ncurses -

-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            --with-shared           \
-            --without-debug         \
-            --without-normal        \
-            --enable-pc-files       \
-            --enable-widec          \
-            --with-pkg-config-libdir=/usr/lib/pkgconfig
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --enable-pc-files -
-
-

- Essa chave gera e instala arquivos .pc para pkg-config. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote tem uma suíte de teste, entretanto ela só pode - ser executada após o pacote ter sido instalado. Os testes - residem no diretório test/. - Veja-se o arquivo README - naquele diretório para maiores detalhes. -

-

- A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. Isso talvez - quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com - DESTDIR, e substitua o arquivo - de biblioteca corretamente usando comando install. Um arquivamento - estático inútil que não é manejado por configure também é - removido: -

-
make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib
-rm -v  dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a}
-cp -av dest/* /
-

- Muitos aplicativos ainda esperam que o vinculador seja capaz - de encontrar bibliotecas Ncurses de caracteres não largos. - Ajuste tais aplicativos para vincularem com bibliotecas de - caracteres largos por meio de links simbólicos e scripts de - vinculador: -

-
for lib in ncurses form panel menu ; do
-    rm -vf                    /usr/lib/lib${lib}.so
-    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
-    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
-done
-

- Finalmente, certifique-se de que aplicativos antigos que - procuram por -lcurses em tempo - de construção ainda sejam construíveis: -

-
rm -vf                     /usr/lib/libcursesw.so
-echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
-ln -sfv libncurses.so      /usr/lib/libcurses.so
-

- Se desejado, então instale a documentação do Ncurses: -

-
mkdir -pv      /usr/share/doc/ncurses-6.3
-cp -v -R doc/* /usr/share/doc/ncurses-6.3
-
-

- Nota -

-

- As instruções acima não criam bibliotecas Ncurses de - caracteres não largos, uma vez que nenhum pacote instalado - por compilação a partir de fontes se vincularia a elas em - tempo de execução. Entretanto, os únicos aplicativos - somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você - precisa ter tais bibliotecas, por causa de algum aplicativo - somente binário ou para estar conforme com LSB, então - construa o pacote novamente com os seguintes comandos: -

-
make distclean
-./configure --prefix=/usr    \
-            --with-shared    \
-            --without-normal \
-            --without-debug  \
-            --without-cxx-binding \
-            --with-abi-version=5
-make sources libs
-cp -av lib/lib*.so.5* /usr/lib
-
-
-
-

- 8.28.2. - Conteúdo de Ncurses -

-
-
-
- Aplicativos instalados: - captoinfo (link para tic), clear, - infocmp, infotocap (link para tic), ncursesw6-config, - reset (link para tset), tabs, tic, toe, tput, e - tset -
-
- Bibliotecas instaladas: - libcursesw.so (link simbólico e - script de vinculador para libncursesw.so), libformw.so, - libmenuw.so, libncursesw.so, libpanelw.so, e homônimos - delas de caractere não largo sem "w" nos nomes de - biblioteca. -
-
- Diretórios instalados: - /usr/share/tabset, - /usr/share/terminfo, e /usr/share/doc/ncurses-6.3 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- captoinfo -

-
-

- Converte uma descrição termcap em uma descrição - terminfo -

-
-

- clear -

-
-

- Limpa a tela, se possível -

-
-

- infocmp -

-
-

- Compara ou imprime descrições terminfo -

-
-

- infotocap -

-
-

- Converte uma descrição terminfo em uma descrição - termcap -

-
-

- ncursesw6-config -

-
-

- Fornece informação de configuração para ncurses -

-
-

- reset -

-
-

- Reinicializa um terminal para valores padrão dele -

-
-

- tabs -

-
-

- Limpa e configura paradas de tabulação em um - terminal -

-
-

- tic -

-
-

- O compilador de descrição de entrada terminfo que - traduz um arquivo terminfo do formato fonte para o - formato binário necessário para as rotinas de - biblioteca ncurses [Um arquivo terminfo contém - informação sobre as capacidades de um certo - terminal]. -

-
-

- toe -

-
-

- Lista todos os tipos de terminal disponíveis, dando - o nome primário e descrição para cada -

-
-

- tput -

-
-

- Torna os valores de capacidades dependentes de - terminal disponíveis para o shell; também pode ser - usado para reconfigurar ou inicializar um terminal - ou reportar o nome longo dele -

-
-

- tset -

-
-

- Pode ser usado para inicializar terminais -

-
-

- libcursesw -

-
-

- Um link para libncursesw -

-
-

- libncursesw -

-
-

- Contém funções para exibir texto em muitas formas - complexas em uma tela de terminal; um bom exemplo - do uso dessas funções é o menu exibido durante o - make - menuconfig do kernel -

-
-

- libformw -

-
-

- Contém funções para implementar formulários -

-
-

- libmenuw -

-
-

- Contém funções para implementar menus -

-
-

- libpanelw -

-
-

- Contém funções para implementar painéis -

-
-
-
-
-
-
-
-
-

- 8.29. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 8.29.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote e documentação dele: -

-
make install
-install -d -m755           /usr/share/doc/sed-4.8
-install -m644 doc/sed.html /usr/share/doc/sed-4.8
-
-
-

- 8.29.2. Conteúdo - do Sed -

-
-
-
- Aplicativo instalado: - sed -
-
- Diretório instalado: - /usr/share/doc/sed-4.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- sed -

-
-

- Filtra e transforma arquivos de texto em uma - passagem única -

-
-
-
-
-
-
-
-
-

- 8.30. Psmisc-23.4 -

-
-
-
-
-

- O pacote Psmisc contém aplicativos para mostrar informação - sobre processos em execução. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,6 MB -
-
-
-
-
-

- 8.30.1. Instalação do Psmisc -

-

- Prepare Psmisc para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.30.2. - Conteúdo do Psmisc -

-
-
-
- Aplicativos instalados: - fuser, killall, peekfd, prtstat, - pslog, pstree, e pstree.x11 (link para pstree) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- fuser -

-
-

- Reporta os IDs de Processos (PIDs) de processos que - usam os arquivos ou sistemas de arquivos dados -

-
-

- killall -

-
-

- Mata processos pelo nome; envia um sinal para todos - os processos executando quaisquer dos comandos - dados -

-
-

- peekfd -

-
-

- Dê uma olhada nos descritores de arquivo de um - processo em execução, dado seu PID -

-
-

- prtstat -

-
-

- Imprime informação sobre um processo -

-
-

- pslog -

-
-

- Reporta o caminho atual de registros de um processo -

-
-

- pstree -

-
-

- Exibe processos em execução como uma árvore -

-
-

- pstree.x11 -

-
-

- O mesmo que pstree, exceto - que ele espera por confirmação antes de sair -

-
-
-
-
-
-
-
-
-

- 8.31. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 2,7 UPC -
-
- Espaço em disco - exigido: 233 MB -
-
-
-
-
-

- 8.31.1. Instalação do Gettext -

-

- Prepare Gettext para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/gettext-0.21
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (isso toma um tempo longo, em torno - de 3 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-chmod -v 0755 /usr/lib/preloadable_libintl.so
-
-
-

- 8.31.2. - Conteúdo do Gettext -

-
-
-
- Aplicativos instalados: - autopoint, envsubst, gettext, - gettext.sh, gettextize, msgattrib, msgcat, msgcmp, - msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, - msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, - recode-sr-latin, e xgettext -
-
- Bibliotecas instaladas: - libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so -
-
- Diretórios instalados: - /usr/lib/gettext, - /usr/share/doc/gettext-0.21, /usr/share/gettext, e - /usr/share/gettext-0.19.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autopoint -

-
-

- Copia arquivos de infraestrutura padrão do Gettext - para um pacote fonte -

-
-

- envsubst -

-
-

- Substitui variáveis de ambiente em sequências de - caracteres de formato de shell -

-
-

- gettext -

-
-

- Traduz uma mensagem de idioma natural para o idioma - da(o) usuária(o) procurando a tradução em um - catálogo de mensagens -

-
-

- gettext.sh -

-
-

- Primariamente serve como uma biblioteca de função - de shell para gettext -

-
-

- gettextize -

-
-

- Copia todos os arquivos Gettext padrão para o - diretório de nível superior fornecido de um pacote - para começar a internacionalizá-lo -

-
-

- msgattrib -

-
-

- Filtra as mensagens de um catálogo de tradução de - acordo com os atributos delas e manipula os - atributos -

-
-

- msgcat -

-
-

- Concatena e funde os arquivos .po fornecidos -

-
-

- msgcmp -

-
-

- Compara dois arquivos .po para verificar se ambos - contém o mesmo conjunto de sequências de caracteres - de msgid -

-
-

- msgcomm -

-
-

- Encontra as mensagens que são comuns aos arquivos - .po fornecidos -

-
-

- msgconv -

-
-

- Converte um catálogo de tradução para uma - codificação de caracteres diferente -

-
-

- msgen -

-
-

- Cria um catálogo de tradução em inglês -

-
-

- msgexec -

-
-

- Aplica um comando a todas as traduções de um - catálogo de tradução -

-
-

- msgfilter -

-
-

- Aplica um filtro a todas as traduções de um - catálogo de tradução -

-
-

- msgfmt -

-
-

- Gera um catálogo de mensagem binária a partir de um - catálogo de tradução -

-
-

- msggrep -

-
-

- Extrai todas as mensagens de um catálogo de - tradução que correspondem a um determinado padrão - ou pertencem a alguns arquivos fonte fornecidos -

-
-

- msginit -

-
-

- Cria um novo arquivo .po, inicializando a meta - informação com valores oriundos do ambiente da(o) - usuária(o) -

-
-

- msgmerge -

-
-

- Combina duas traduções cruas em um arquivo único -

-
-

- msgunfmt -

-
-

- Descompila um catálogo de mensagem binário em um - texto de tradução cru -

-
-

- msguniq -

-
-

- Unifica traduções duplicadas em um catálogo de - tradução -

-
-

- ngettext -

-
-

- Exibe traduções no idioma nativo de uma mensagem - textual cuja forma gramatical depende de um número -

-
-

- recode-sr-latin -

-
-

- Recodifica texto sérvio do cirílico para alfabeto - latino -

-
-

- xgettext -

-
-

- Extrai as linhas de mensagem traduzíveis dos - arquivos fonte fornecidos para fazer o primeiro - modelo de tradução -

-
-

- libasprintf -

-
-

- define a classe autosprintf, que torna - as rotinas de saída formatada em C utilizáveis em - aplicativos C++, para uso com as sequências de - caracteres <string> e os - fluxos <iostream> -

-
-

- libgettextlib -

-
-

- uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libgettextpo -

-
-

- Usado para escrever aplicativos especializados que - processam arquivos .po; essa biblioteca é usada - quando os aplicativos padrão fornecidos com Gettext - (tais como msgcomm, - msgcmp, - msgattrib, e - msgen) não são - suficientes -

-
-

- libgettextsrc -

-
-

- Uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libtextstyle -

-
-

- Biblioteca de estilo de texto -

-
-

- preloadable_libintl -

-
-

- Uma biblioteca, destinada a ser usada por - LD_PRELOAD que auxilia libintl no registro de mensagens - não traduzidas -

-
-
-
-
-
-
-
-
-

- 8.32. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 6,3 UPC -
-
- Espaço em disco - exigido: 53 MB -
-
-
-
-
-

- 8.32.1. Instalação do Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 5,5 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.32.2. - Conteúdo do Bison -

-
-
-
- Aplicativos instalados: - bison e yacc -
-
- Biblioteca instalada: - liby.a -
-
- Diretório instalado: - /usr/share/bison -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bison -

-
-

- Gera, a partir de uma série de regras, um - aplicativo para analisar a estrutura de arquivos de - texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) -

-
-

- yacc -

-
-

- Um encapsulador para bison, destinado - a aplicativos que ainda chamam yacc em vez de - bison; ele chama - bison - com a opção -y -

-
-

- liby -

-
-

- A biblioteca Yacc contendo implementações de - funções compatíveis com Yacc yyerror e main; essa biblioteca normalmente - não é muito útil, mas POSIX a exige -

-
-
-
-
-
-
-
-
-

- 8.33. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 36 MB -
-
-
-
-
-

- 8.33.1. Instalação do Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.33.2. - Conteúdo do Grep -

-
-
-
- Aplicativos instalados: - egrep, fgrep, e grep -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- egrep -

-
-

- Imprime linhas que correspondem a uma expressão - regular estendida -

-
-

- fgrep -

-
-

- Imprime linhas que correspondem a uma lista de - sequências de caracteres fixas -

-
-

- grep -

-
-

- Imprime linhas que correspondem a expressão regular - básica -

-
-
-
-
-
-
-
-
-

- 8.34. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 8.34.1. Instalação do Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                      \
-            --docdir=/usr/share/doc/bash-5.1.16 \
-            --without-bash-malloc              \
-            --with-installed-readline
-
-

- O significado da nova opção de configure: -

-
-
- --with-installed-readline -
-
-

- Essa opção diz a Bash para usar a biblioteca - readline que já está - instalada no sistema em vez de usar sua própria versão - de readline. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Para preparar os testes, garanta que a(o) usuária(o) - tester pode escrever na - árvore de fontes: -

-
chown -Rv tester .
-

- A suíte de teste do pacote é desenhada para ser executada - como uma(m) usuária(o) não root que é proprietária(o) do - terminal conectado à entrada padrão. Para satisfazer a - exigência, crie um novo pseudo terminal usando Expect e execute os testes como a(o) - usuária (o) tester: -

-
su -s /usr/bin/expect tester << EOF
-set timeout -1
-spawn make tests
-expect eof
-lassign [wait] _ _ _ value
-exit $value
-EOF
-

- Instale o pacote: -

-
make install
-

- Execute o aplicativo recém compilado bash (substituindo o que - está sendo executado atualmente): -

-
exec /usr/bin/bash --login
-
-
-

- 8.34.2. - Conteúdo do Bash -

-
-
-
- Aplicativos instalados: - bash, bashbug, e sh (link para - bash) -
-
- Diretórios instalados: - /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bash -

-
-

- Um interpretador de comandos vastamente utilizado; - ele realiza muitos tipos de expansões e - substituições sobre uma dada linha de comando antes - de executá-la, portanto fazendo desse interpretador - uma ferramenta poderosa -

-
-

- bashbug -

-
-

- Um script de shell para ajudar a(o) usuária(o) a - compor e enviar relatórios de defeitos formatados - padrão concernentes a bash -

-
-

- sh -

-
-

- Um link simbólico para o aplicativo bash; quando - invocado como sh, bash tenta imitar - o comportamento de inicialização de versões - históricas do sh o mais próximo - possível, enquanto também conformando com o padrão - POSIX -

-
-
-
-
-
-
-
-
-

- 8.35. Libtool-2.4.6 -

-
-
-
-
-

- O pacote Libtool contém o script de suporte à biblioteca - genérica GNU. Ele esconde a complexidade de usar bibliotecas - compartilhadas em uma interface consistente e portável. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.35.1. Instalação do Libtool -

-

- Prepare Libtool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para libtool pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Cinco testes são conhecidos por falharem dentro do ambiente - de construção LFS devido a uma dependência circular, porém - todos os testes passam se verificados novamente após automake - ser instalado. -

-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libltdl.a
-
-
-

- 8.35.2. - Conteúdo do Libtool -

-
-
-
- Aplicativos instalados: - libtool e libtoolize -
-
- Biblioteca instalada: - libltdl.so -
-
- Diretórios instalados: - /usr/include/libltdl e - /usr/share/libtool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- libtool -

-
-

- Fornece serviços generalizados de suporte à - construção de bibliotecas -

-
-

- libtoolize -

-
-

- Fornece uma maneira padrão de adicionar suporte - libtool a um - pacote -

-
-

- libltdl -

-
-

- Esconde as várias dificuldades do dlopening de - bibliotecas -

-
-
-
-
-
-
-
-
-

- 8.36. GDBM-1.23 -

-
-
-
-
-

- O pacote GDBM contém o GNU Database Manager. Ele é uma - biblioteca de funções de banco de dados que usa hash - extensível e funciona semelhante ao dbm UNIX padrão. A - biblioteca fornece primitivos para armazenar pares de - chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.36.1. Instalação do GDBM -

-

- Prepare GDBM para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --enable-libgdbm-compat
-
-

- O significado da opção de configure: -

-
-
- --enable-libgdbm-compat -
-
-

- Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS - talvez exijam as rotinas DBM mais antigas que ela - fornece. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.36.2. - Conteúdo do GDBM -

-
-
-
- Aplicativos instalados: - gdbm_dump, gdbm_load, e - gdbmtool -
-
- Bibliotecas instaladas: - libgdbm.so e - libgdbm_compat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gdbm_dump -

-
-

- Despeja um banco de dados GDBM para um arquivo -

-
-

- gdbm_load -

-
-

- Recria um banco de dados GDBM a partir de um - arquivo de despejo -

-
-

- gdbmtool -

-
-

- Testa e modifica um banco de dados GDBM -

-
-

- libgdbm -

-
-

- Contém funções para manipular um banco de dados com - hash -

-
-

- libgdbm_compat -

-
-

- Biblioteca de compatibilidade contendo funções DBM - mais antigas -

-
-
-
-
-
-
-
-
-

- 8.37. Gperf-3.1 -

-
-
-
-
-

- Gperf gera uma função de hash perfeita a partir de um - conjunto de chaves. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,0 MB -
-
-
-
-
-

- 8.37.1. Instalação do Gperf -

-

- Prepare Gperf para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
-

- Compile o pacote: -

-
make
-

- Os testes são conhecidos por falharem se executar múltiplos - testes simultâneos (opção -j maior que 1). Para testar os - resultados, execute: -

-
make -j1 check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.37.2. - Conteúdo do Gperf -

-
-
-
- Aplicativo instalado: - gperf -
-
- Diretório instalado: - /usr/share/doc/gperf-3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- gperf -

-
-

- Gera um hash perfeito a partir de um conjunto de - chaves -

-
-
-
-
-
-
-
-
-

- 8.38. Expat-2.4.6 -

-
-
-
-
-

- O pacote Expat contém uma biblioteca C orientada a fluxo para - analisar XML. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.38.1. Instalação do Expat -

-

- Prepare Expat para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/expat-2.4.6
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6
-
-
-

- 8.38.2. - Conteúdo do Expat -

-
-
-
- Aplicativo instalado: - xmlwf -
-
- Biblioteca instalada: - libexpat.so -
-
- Diretório instalado: - /usr/share/doc/expat-2.4.6 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- xmlwf -

-
-

- É um utilitário não validador para verificar se - documentos XML estão bem formados ou não -

-
-

- libexpat -

-
-

- Contém funções de API para analisar XML -

-
-
-
-
-
-
-
-
-

- 8.39. Inetutils-2.2 -

-
-
-
-
-

- O pacote Inetutils contém aplicativos para redes básicas. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 30 MB -
-
-
-
-
-

- 8.39.1. Instalação do Inetutils -

-

- Prepare Inetutils para compilação: -

-
./configure --prefix=/usr        \
-            --bindir=/usr/bin    \
-            --localstatedir=/var \
-            --disable-logger     \
-            --disable-whois      \
-            --disable-rcp        \
-            --disable-rexec      \
-            --disable-rlogin     \
-            --disable-rsh        \
-            --disable-servers
-
-

- O significado das opções de configure: -

-
-
- --disable-logger -
-
-

- Essa opção impede que o Inetutils instale o aplicativo - logger, o - qual é usado por scripts para passar mensagens para o - System Log Daemon. Não instale isso, pois o Util-linux - instala uma versão mais recente. -

-
-
- --disable-whois -
-
-

- Essa opção desabilita a construção do cliente - whois do - Inetutils, o qual está desatualizado. Instruções para - um cliente whois melhor estão no - livro BLFS. -

-
-
- --disable-r* -
-
-

- Esses parâmetros desabilitam a construção de - aplicativos obsoletos que não deveriam ser usados - devido a problemas de segurança. As funções fornecidas - por esses aplicativos podem ser fornecidas pelo pacote - openssh no livro BLFS. -

-
-
- --disable-servers -
-
-

- Isso desabilita a instalação dos vários servidores de - rede incluídos como parte do pacote Inetutils. Esses - servidores são considerados inadequados em um sistema - LFS básico. Alguns são inseguros por natureza e só são - considerados seguros em redes confiáveis. Observe que - substituições melhores estão disponíveis para muitos - desses servidores. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Mova um aplicativo para o local adequado: -

-
mv -v /usr/{,s}bin/ifconfig
-
-
-

- 8.39.2. Conteúdo do Inetutils -

-
-
-
- Aplicativos instalados: - dnsdomainname, ftp, ifconfig, - hostname, ping, ping6, talk, telnet, tftp, e - traceroute -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- dnsdomainname -

-
-

- Mostra o nome de domínio DNS do sistema -

-
-

- ftp -

-
-

- É o aplicativo de protocolo de transferência de - arquivos -

-
-

- hostname -

-
-

- Relata ou configura o nome do dispositivo -

-
-

- ifconfig -

-
-

- Gerencia interfaces de rede -

-
-

- ping -

-
-

- Envia pacotes de solicitação de echo e informa - quanto tempo as respostas demoram -

-
-

- ping6 -

-
-

- Uma versão do ping para redes - IPv6 -

-
-

- talk -

-
-

- É usado para conversar com outra(o) usuária(o) -

-
-

- telnet -

-
-

- Uma interface para o protocolo TELNET -

-
-

- tftp -

-
-

- Um aplicativo de transferência de arquivos trivial -

-
-

- traceroute -

-
-

- Rastreia a rota que seus pacotes fazem a partir do - dispositivo em que você está trabalhando para outro - dispositivo em uma rede, mostrando todos os saltos - intermediários (gateways) ao longo do caminho -

-
-
-
-
-
-
-
-
-

- 8.40. Less-590 -

-
-
-
-
-

- O pacote Less contém um visualizador de arquivos de texto. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,2 MB -
-
-
-
-
-

- 8.40.1. Instalação do Less -

-

- Prepare Less para compilação: -

-
./configure --prefix=/usr --sysconfdir=/etc
-
-

- O significado das opções de configure: -

-
-
- --sysconfdir=/etc -
-
-

- Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos - arquivos de configuração. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.40.2. - Conteúdo do Less -

-
-
-
- Aplicativos instalados: - less, lessecho e lesskey -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- less -

-
-

- Um visualizador de arquivos ou paginador; ele exibe - o conteúdo do arquivo dado, permitindo que a(o) - usuária(o) role, encontre sequências de caracteres - e pule para marcas -

-
-

- lessecho -

-
-

- Necessário para expandir metacaracteres, tais como - * e - ?, em nomes - de arquivos em sistemas Unix -

-
-

- lesskey -

-
-

- Usado para especificar os atalhos de tecla para - less -

-
-
-
-
-
-
-
-
-

- 8.41. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 9,3 UPC -
-
- Espaço em disco - exigido: 226 MB -
-
-
-
-
-

- 8.41.1. Instalação do Perl -

-

- Primeiro, aplique uma correção que conserta um problema - destacado por versões recentes do gdbm: -

-
patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch
-

- Essa versão do Perl agora constrói os módulos - Compress::Raw::Zlib e Compress::Raw::BZip2. Por padrão, Perl - usará uma cópia interna dos fontes para a construção. Execute - o seguinte comando de modo que Perl usará as bibliotecas - instaladas no sistema: -

-
export BUILD_ZLIB=False
-export BUILD_BZIP2=0
-

- Para ter controle completo sobre a maneira como Perl é - configurado, você pode remover as opções -des - do comando seguinte e escolher manualmente a maneira como - esse pacote é construído. Alternativamente, use o comando - exatamente como está abaixo para usar os padrões que o Perl - detecta automaticamente: -

-
sh Configure -des                                         \
-             -Dprefix=/usr                                \
-             -Dvendorprefix=/usr                          \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl      \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl      \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl      \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl     \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl  \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \
-             -Dman1dir=/usr/share/man/man1                \
-             -Dman3dir=/usr/share/man/man3                \
-             -Dpager="/usr/bin/less -isR"                 \
-             -Duseshrplib                                 \
-             -Dusethreads
-
-

- O significado das opções de configure: -

-
-
- -Dvendorprefix=/usr -
-
-

- Isso garante que perl saiba como dizer - aos pacotes onde eles deveriam instalar módulos perl - deles. -

-
-
- -Dpager="/usr/bin/less - -isR" -
-
-

- Isso garante que less seja usado em - vez de more. -

-
-
- -Dman1dir=/usr/share/man/man1 - -Dman3dir=/usr/share/man/man3 -
-
-

- Uma vez que o Groff ainda não está instalado, - Configure - pensa que nós não queremos páginas de manual para o - Perl. Emitir esses parâmetros substitui essa decisão. -

-
-
- -Duseshrplib -
-
-

- Constrói uma libperl compartilhada necessária para - alguns módulos perl. -

-
-
- -Dusethreads -
-
-

- Constrói perl com suporte para camadas. -

-
-
- -Dprivlib,-Darchlib,-Dsitelib,... -
-
-

- Essas configurações definem onde o Perl está procurando - módulos instalados. As(Os) editoras(es) de LFS optaram - por colocá-los em uma estrutura de diretórios baseada - na versão Major.Minor do Perl (5.34), a qual permite - atualizar o Perl para níveis de Patch mais recentes - (5.34.0) sem a necessidade de reinstalar todos os - módulos novamente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (aproximadamente 11 UPCs), execute: -

-
make test
-

- Instale o pacote e limpe: -

-
make install
-unset BUILD_ZLIB BUILD_BZIP2
-
-
-

- 8.41.2. - Conteúdo do Perl -

-
-
-
- Aplicativos instalados: - corelist, cpan, enc2xs, encguess, - h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, - perl5.34.0 (hard link para perl), perlbug, perldoc, - perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, - podchecker, podselect, prove, ptar, ptardiff, ptargrep, - shasum, splain, xsubpp e zipdetails -
-
- Bibliotecas instaladas: - Muitas, as quais não podem ser - todas listadas aqui -
-
- Diretório instalado: - /usr/lib/perl5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- corelist -

-
-

- Um frontend de linha de comando para - Module::CoreList -

-
-

- cpan -

-
-

- Interage com o Comprehensive Perl Archive Network - (CPAN) a partir da linha de comando -

-
-

- enc2xs -

-
-

- Constrói uma extensão Perl para o módulo Encode a - partir tanto de Mapeamentos de Caracteres Unicode - quanto de Arquivos de Codificação Tcl -

-
-

- encguess -

-
-

- Advinha o tipo de codificação de um ou vários - arquivos -

-
-

- h2ph -

-
-

- Converte arquivos de cabeçalho C .h para arquivos de cabeçalho - Perl .ph -

-
-

- h2xs -

-
-

- Converte arquivos de cabeçalho C .h para extensões Perl -

-
-

- instmodsh -

-
-

- Script de shell para examinar módulos Perl - instalados, e pode criar um tarball a partir de um - módulo instalado -

-
-

- json_pp -

-
-

- Converte dados entre certos formatos de entrada e - saída -

-
-

- libnetcfg -

-
-

- Pode ser usado para configurar o módulo Perl - libnet -

-
-

- perl -

-
-

- Combina algumas das melhores características do C, - sed, - awk e - sh em - uma linguagem canivete suíço única -

-
-

- perl5.34.0 -

-
-

- Um hard link para perl -

-
-

- perlbug -

-
-

- Usado para gerar relatórios de defeitos sobre o - Perl, ou módulos que vem como ele, e enviá-los por - correio -

-
-

- perldoc -

-
-

- Exibe uma parte da documentação em formato de pod - que está incorporada na árvore de instalação do - Perl ou em um script Perl -

-
-

- perlivp -

-
-

- O Procedimento de Verificação de Instalação do - Perl; pode ser usado para verificar se o Perl e - suas bibliotecas foram instalados corretamente -

-
-

- perlthanks -

-
-

- Usado para gerar mensagens de agradecimento para - enviar para as(os) desenvolvedoras(es) Perl -

-
-

- piconv -

-
-

- Uma versão Perl do conversor de codificação de - caracteres iconv -

-
-

- pl2pm -

-
-

- Uma ferramenta rudimentar para converter arquivos - Perl4 .pl para - módulos Perl5 .pm -

-
-

- pod2html -

-
-

- Converte arquivos do formato pod para o formato - HTML -

-
-

- pod2man -

-
-

- Converte dados pod para entrada formatada *roff -

-
-

- pod2text -

-
-

- Converte dados pod para texto ASCII formatado -

-
-

- pod2usage -

-
-

- Imprime mensagens de uso a partir de documentos pod - incorporados em arquivos -

-
-

- podchecker -

-
-

- Verifica a sintaxe de arquivos de documentação no - formato pod -

-
-

- podselect -

-
-

- Exibe seções selecionadas de documentação pod -

-
-

- prove -

-
-

- Ferramenta de linha de comando para executar testes - contra o módulo Test::Harness -

-
-

- ptar -

-
-

- Um aplicativo similar ao tar escrito em - Perl -

-
-

- ptardiff -

-
-

- Um aplicativo Perl que compara um arquivamento - extraído com um não extraído -

-
-

- ptargrep -

-
-

- Um aplicativo Perl que aplica correspondência de - padrão ao conteúdo de arquivos em um arquivamento - tar -

-
-

- shasum -

-
-

- Imprime ou verifica somas de verificação SHA -

-
-

- splain -

-
-

- É usado para forçar diagnósticos de aviso - detalhados em Perl -

-
-

- xsubpp -

-
-

- Converte código Perl XS em código C -

-
-

- zipdetails -

-
-

- Exibe detalhes sobre a estrutura interna de um - arquivo Zip -

-
-
-
-
-
-
-
-
-

- 8.42. XML::Parser-2.46 -

-
-
-
-
-

- O módulo XML::Parser é uma interface Perl para o analisador - de XML do James Clark, Expat. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,4 MB -
-
-
-
-
-

- 8.42.1. Instalação do XML::Parser -

-

- Prepare XML::Parser para compilação: -

-
perl Makefile.PL
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.42.2. Conteúdo do XML::Parser -

-
-
-
- Módulo instalado: - Expat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- Expat -

-
-

- Fornece a interface Perl Expat -

-
-
-
-
-
-
-
-
-

- 8.43. Intltool-0.51.0 -

-
-
-
-
-

- O Intltool é uma ferramenta de internacionalização usada para - extrair sequências de caracteres traduzíveis a partir de - arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 1,5 MB -
-
-
-
-
-

- 8.43.1. Instalação do Intltool -

-

- Primeiro, conserte um aviso que é causado por perl-5.22 e - posteriores: -

-
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
-
-

- Nota -

-

- A expressão regular acima parece incomum por causa de todas - as contra barras. O que ela faz é adicionar uma contra - barra antes do carácter abre chave na sequência '\${' - resultando em '\$\{'. -

-
-

- Prepare Intltool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO
-
-
-

- 8.43.2. Conteúdo do Intltool -

-
-
-
- Aplicativos instalados: - intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize -
-
- Diretórios instalados: - /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- intltoolize -

-
-

- Prepara um pacote para usar intltool -

-
-

- intltool-extract -

-
-

- Gera arquivos de cabeçalho que podem ser lidos por - gettext -

-
-

- intltool-merge -

-
-

- Mescla sequência de caracteres traduzidos em vários - tipos de arquivos -

-
-

- intltool-prepare -

-
-

- Atualiza arquivos pot e mescla eles com arquivos de - tradução -

-
-

- intltool-update -

-
-

- Atualiza os arquivos de modelo po e mescla eles com - as traduções -

-
-
-
-
-
-
-
-
-

- 8.44. Autoconf-2.71 -

-
-
-
-
-

- O pacote Autoconf contém aplicativos para produzir scripts de - shell que podem configurar automaticamente código fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 6,8 UPC com os testes) -
-
- Espaço em disco - exigido: 24 MB -
-
-
-
-
-

- 8.44.1. Instalação do Autoconf -

-

- Prepare Autoconf para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para autoconf pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- 8.44.2. Conteúdo do Autoconf -

-
-
-
- Aplicativos instalados: - autoconf, autoheader, autom4te, - autoreconf, autoscan, autoupdate e ifnames -
-
- Diretório instalado: - /usr/share/autoconf -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autoconf -

-
-

- Produz scripts de shell que configuram - automaticamente pacotes de código fonte de - aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que - ele produz são independentes—executá-los não - exige o aplicativo autoconf -

-
-

- autoheader -

-
-

- Uma ferramenta para criar arquivos de modelo de - declarações #define de C para - configure usar -

-
-

- autom4te -

-
-

- Um encapsulador para o processador de macro M4 -

-
-

- autoreconf -

-
-

- Automaticamente executa autoconf, - autoheader, - aclocal, - automake, - gettextize e - libtoolize na - ordem correta para economizar tempo quando mudanças - são feitas para arquivos de modelo autoconf e - automake -

-
-

- autoscan -

-
-

- Ajuda a criar um arquivo configure.in para um pacote de - aplicativos; ele examina os arquivos fonte em uma - árvore de diretórios, procurando neles por - problemas de portabilidade comuns, e cria um - arquivo configure.scan que serve como um - arquivo configure.in - preliminar para o pacote -

-
-

- autoupdate -

-
-

- Modifica um arquivo configure.in que ainda chama - macros autoconf por seus - nomes antigos para usar os nomes de macro atuais -

-
-

- ifnames -

-
-

- Ajuda ao escrever arquivos configure.in para um pacote de - aplicativos; ele imprime os identificadores que o - pacote usa em condicionais de preprocessador C [Se - um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a - determinar o que configure precisa - checar. Ele também pode preencher lacunas em um - arquivo configure.in - gerado por autoscan]. -

-
-
-
-
-
-
-
-
-

- 8.45. Automake-1.16.5 -

-
-
-
-
-

- O pacote Automake contém aplicativos para gerar Makefiles - para uso com Autoconf. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 8,3 UPC com os testes) -
-
- Espaço em disco - exigido: 115 MB -
-
-
-
-
-

- 8.45.1. Instalação do Automake -

-

- Prepare Automake para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5
-

- Compile o pacote: -

-
make
-

- Usar a opção de make -j4 acelera os testes, mesmo em sistemas - com apenas um processador, devido a atrasos internos em - testes individuais. Para testar os resultados, execute: -

-
make -j4 check
-

- O teste t/subobj.sh é conhecido por falhar. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.45.2. Conteúdo do Automake -

-
-
-
- Aplicativos instalados: - aclocal, aclocal-1.16 (hard link - com aclocal), automake e automake-1.16 (hard link com - automake) -
-
- Diretórios instalados: - /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e - /usr/share/doc/automake-1.16.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- aclocal -

-
-

- Gera arquivos aclocal.m4 baseados no conteúdo - dos arquivos configure.in -

-
-

- aclocal-1.16 -

-
-

- Um hard link para aclocal -

-
-

- automake -

-
-

- Uma ferramenta para gerar automaticamente arquivos - Makefile.in a partir - de arquivos Makefile.am [Para criar todos os - arquivos Makefile.in - para um pacote, execute esse aplicativo no - diretório superior. Escaneando o arquivo - configure.in, ele - automaticamente encontra cada arquivo Makefile.am apropriado e gera o - arquivo Makefile.in - correspondente]. -

-
-

- automake-1.16 -

-
-

- Um hard link para automake -

-
-
-
-
-
-
-
-
-

- 8.46. OpenSSL-3.0.1 -

-
-
-
-
-

- O pacote OpenSSL contém ferramentas de gerenciamento e - bibliotecas relacionadas à criptografia. Essas são úteis para - fornecer funções criptográficas para outros pacotes, tais - como OpenSSH, aplicativos de correio eletrônico e navegadores - de rede (para acessar sítios HTTPS). -

-
-
-
- Tempo aproximado de - construção: 5,4 UPC -
-
- Espaço em disco - exigido: 474 MB -
-
-
-
-
-

- 8.46.1. Instalação do OpenSSL -

-

- Prepare OpenSSL para compilação: -

-
./config --prefix=/usr         \
-         --openssldir=/etc/ssl \
-         --libdir=lib          \
-         shared                \
-         zlib-dynamic
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes - de configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, - então ele pode seguramente ser ignorado. -

-

- Instale o pacote: -

-
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
-make MANSUFFIX=ssl install
-

- Adicione a versão ao nome de diretório de documentação, para - ser consistente com outros pacotes: -

-
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1
-

- Se desejado, instale alguma documentação adicional: -

-
cp -vfr doc/* /usr/share/doc/openssl-3.0.1
-
-

- Nota -

-

- Você deveria atualizar OpenSSL quando uma versão nova que - conserta vulnerabilidades for anunciada. Os lançamentos - ocorrem em séries, com uma letra para cada lançamento após - o lançamento inicial (por exemplo, 1.1.1, 1.1.1a, 1.1.1b, - etc). Por causa de que LFS instala somente as bibliotecas - compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na mesma série. -

-

- Entretanto, quaisquer aplicativos em execução vinculados - àquelas bibliotecas precisam ser parados e reiniciados. - Leia-se as entradas relacionadas em Seção 8.2.1, - “Problemas de Atualização” para detalhes. -

-
-
-
-

- 8.46.2. - Conteúdo do OpenSSL -

-
-
-
- Aplicativos instalados: - c_rehash e openssl -
-
- Bibliotecas instaladas: - libcrypto.so e libssl.so -
-
- Diretórios instalados: - /etc/ssl, /usr/include/openssl, - /usr/lib/engines e /usr/share/doc/openssl-3.0.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- c_rehash -

-
-

- é um script Perl - que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash - deles -

-
-

- openssl -

-
-

- é uma ferramenta de linha de comando para usar as - várias funções criptográficas da biblioteca de - criptografia do OpenSSL a partir do shell. Ela - pode ser usada para várias funções que estão - documentadas em man 1 - openssl -

-
-

- libcrypto.so -

-
-

- implementa um intervalo amplo de algoritmos - criptográficos usados em vários padrões da - Internet. Os serviços fornecidos por essa - biblioteca são usados pelas implementações - OpenSSL do SSL, - TLS e S/MIME e eles também tem sido usados para - implementar OpenSSH, OpenPGP e outros padrões - criptográficos -

-
-

- libssl.so -

-
-

- implementa o protocolo Transport Layer Security - (TLS v1). Ela fornece uma API rica, documentação - sobre a qual pode ser encontrada executando - man 3 - ssl -

-
-
-
-
-
-
-
-
-

- 8.47. Kmod-29 -

-
-
-
-
-

- O pacote Kmod contém bibliotecas e utilitários para carregar - módulos de kernel -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.47.1. Instalação do Kmod -

-

- Prepare Kmod para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --with-openssl         \
-            --with-xz              \
-            --with-zstd            \
-            --with-zlib
-
-

- O significado das opções de configure: -

-
-
- --with-openssl -
-
-

- Essa opção habilita Kmod a lidar com assinaturas PKCS7 - para módulos de kernel. -

-
-
- --with-xz, --with-zlib, e --with-zstd -
-
-

- Essas opções habilitam Kmod a lidar com módulos de - kernel comprimidos. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste desse pacote exige cabeçalhos de kernel crus - (não os cabeçalhos de kernel sanitizados instalados - anteriormente), os quais estão além do escopo do LFS. -

-

- Instale o pacote e crie links simbólicos para compatibilidade - com Module-Init-Tools (o pacote que anteriormente lidava com - módulos de kernel do Linux): -

-
make install
-
-for target in depmod insmod modinfo modprobe rmmod; do
-  ln -sfv ../bin/kmod /usr/sbin/$target
-done
-
-ln -sfv kmod /usr/bin/lsmod
-
-
-

- 8.47.2. - Conteúdo do Kmod -

-
-
-
- Aplicativos instalados: - depmod (link para kmod), insmod - (link para kmod), kmod, lsmod (link para kmod), modinfo - (link para kmod), modprobe (link para kmod) e rmmod (link - para kmod) -
-
- Biblioteca instalada: - libkmod.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- depmod -

-
-

- Cria um arquivo de dependência baseado nos símbolos - que ele encontra no conjunto existente de módulos; - esse arquivo de dependência é usado por - modprobe - para carregar automaticamente os módulos exigidos -

-
-

- insmod -

-
-

- Instala um módulo carregável no kernel em execução -

-
-

- kmod -

-
-

- Carrega e descarrega módulos de kernel -

-
-

- lsmod -

-
-

- Lista módulos atualmente carregados -

-
-

- modinfo -

-
-

- Examina um arquivo objeto associado com um módulo - de kernel e exibe qualquer informação que ele possa - coletar -

-
-

- modprobe -

-
-

- Usa um arquivo de dependência, criado por - depmod, para - carregar automaticamente módulos relevantes -

-
-

- rmmod -

-
-

- Descarrega módulos a partir do kernel em execução -

-
-

- libkmod -

-
-

- Essa biblioteca é usada por outros aplicativos para - carregar e descarregar módulos de kernel -

-
-
-
-
-
-
-
-
-

- 8.48. Libelf oriundo de - Elfutils-0.186 -

-
-
-
-
-

- Libelf é uma biblioteca para lidar com arquivos ELF - (Executable and Linkable Format). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 116 MB -
-
-
-
-
-

- 8.48.1. Instalação do Libelf -

-

- Libelf é parte do pacote elfutils-0.186. Use o - elfutils-0.186.tar.bz2 como o tarball fonte. -

-

- Prepare Libelf para compilação: -

-
./configure --prefix=/usr                \
-            --disable-debuginfod         \
-            --enable-libdebuginfod=dummy
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale apenas Libelf: -

-
make -C libelf install
-install -vm644 config/libelf.pc /usr/lib/pkgconfig
-rm /usr/lib/libelf.a
-
-
-

- 8.48.2. Conteúdo do Libelf -

-
-
-
- Biblioteca instalada: - libelf.so (link simbólico) e - libelf-0.186.so -
-
- Diretório instalado: - /usr/include/elfutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libelf -

-
-

- Contém funções de API para lidar com arquivos - objeto ELF -

-
-
-
-
-
-
-
-
-

- 8.49. Libffi-3.4.2 -

-
-
-
-
-

- A biblioteca Libffi fornece uma interface de programação - portável e de alto nível para várias convenções de chamada. - Isso permite a uma(m) programadora(r) chamar qualquer função - especificada por uma descrição de interface de chamada em - tempo de execução. -

-
-
-
- Tempo aproximado de - construção: 1,9 UPC -
-
- Espaço em disco - exigido: 10 MB -
-
-
-
-
-

- 8.49.1. Instalação do Libffi -

-
-

- Nota -

-

- Semelhante a GMP, libffi constrói com otimizações - específicas para o processador em uso. Se construir para - outro sistema, então exporte CFLAGS e CXXFLAGS para - especificar uma construção genérica para sua arquitetura. - Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. -

-
-

- Prepare libffi para compilação: -

-
./configure --prefix=/usr          \
-            --disable-static       \
-            --with-gcc-arch=native \
-            --disable-exec-static-tramp
-
-

- O significado da opção de configure: -

-
-
- --with-gcc-arch=native -
-
-

- Garante que GCC otimiza para o sistema atual. Se isso - não for especificado, então o sistema é presumido e o - código gerado talvez não esteja correto para alguns - sistemas. Se o código gerado será copiado de um sistema - nativo para um sistema menos capaz, então use o sistema - menos capaz como um parâmetro. Para detalhes acerca de - tipos de sistema alternativos, veja-se - as opções de x86 no manual do GCC. -

-
-
- --disable-exec-static-tramp -
-
-

- Desabilita o suporte de trampolim estático. Ele é uma - nova característica de segurança em libffi, porém - alguns pacotes BLFS (notadamente GJS e gobject-introspection) não foram - adaptados para ele. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.49.2. - Conteúdo do Libffi -

-
-
-
- Biblioteca instalada: - libffi.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libffi -

-
-

- contém as funções da API da interface de função - estrangeira -

-
-
-
-
-
-
-
-
-

- 8.50. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 275 MB -
-
-
-
-
-

- 8.50.1. Instalação do Python 3 -

-

- Prepare Python para compilação: -

-
./configure --prefix=/usr        \
-            --enable-shared      \
-            --with-system-expat  \
-            --with-system-ffi    \
-            --with-ensurepip=yes \
-            --enable-optimizations
-
-

- O significado das opções de configure: -

-
-
- --with-system-expat -
-
-

- Essa chave habilita vinculação contra a versão de - sistema do Expat. -

-
-
- --with-system-ffi -
-
-

- Essa chave habilita vinculação contra a versão de - sistema de libffi. -

-
-
- --with-ensurepip=yes -
-
-

- Essa chave habilita construir os aplicativos de - empacotamento pip e setuptools. -

-
-
- --enable-optimizations -
-
-

- Essa chave habilita otimizações estáveis, porém - onerosas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Executar os testes neste ponto não é recomendado. Os testes - são conhecidos por travar indefinidamente dentro de um - ambiente LFS parcial. Se desejado, então os testes podem ser - reexecutados ao final deste capítulo ou quando Python 3 for - reinstalado em BLFS. Para executar os testes de qualquer - maneira, emita make - test. -

-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação pré-formatada: -

-
install -v -dm755 /usr/share/doc/python-3.10.2/html
-
-tar --strip-components=1  \
-    --no-same-owner       \
-    --no-same-permissions \
-    -C /usr/share/doc/python-3.10.2/html \
-    -xvf ../python-3.10.2-docs-html.tar.bz2
-
-

- O significado dos comandos de instalação de - documentação: -

-
-
- --no-same-owner e --no-same-permissions -
-
-

- Garanta que os arquivos instalados tenham a propriedade - e as permissões corretas. Sem essas opções, usar - tar instalará os - arquivos de pacote com os valores da(o) criadora(r) - upstream. -

-
-
-
-
-
-

- 8.50.2. - Conteúdo do Python 3 -

-
-
-
- Aplicativos instalados: - 2to3, idle3, pip3, pydoc3, python3 - e python3-config -
-
- Bibliotecas instaladas: - libpython3.10.so e - libpython3.so -
-
- Diretórios instalados: - /usr/include/python3.10, - /usr/lib/python3 e /usr/share/doc/python-3.10.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- 2to3 -

-
-

- é um aplicativo Python que lê código fonte - Python 2.x e - aplica uma série de consertos para transformá-lo em - código Python 3.x - válido -

-
-

- idle3 -

-
-

- é um script encapsulador que abre um editor GUI - ciente de Python. - Para esse script executar, você precisa ter - instalado Tk antes - do Python, de forma que o módulo Tkinter Python - seja construído -

-
-

- pip3 -

-
-

- O instalador de pacote para Python. Você pode usar - pip para instalar pacotes originários do Python - Package Index e outros índices -

-
-

- pydoc3 -

-
-

- é a ferramenta de documentação Python -

-
-

- python3 -

-
-

- é uma linguagem de programação orientada a objeto, - interativa e interpretada -

-
-
-
-
-
-
-
-
-

- 8.51. Ninja-1.10.2 -

-
-
-
-
-

- Ninja é um sistema de construção pequeno com um foco em - velocidade. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-

- Dica -

-

- Esta seção não é estritamente exigida para LFS se não usar - systemd. Por outro lado, ninja associado a meson fazem uma - combinação de sistema de construção poderosa, o qual é - esperado que seja usado mais e mais frequentemente. Ele é - exigido por muitos pacotes no livro - BLFS. -

-
-
-
-

- 8.51.1. Instalação do Ninja -

-

- Quando executado, ninja normalmente executa um número máximo - de processos em paralelo. Por padrão, esse é o número de - núcleos no sistema mais dois. Em alguns casos, isso pode - superaquecer uma CPU ou deixar o sistema sem memória. Se - executar a partir da linha de comando, então passar um - parâmetro -jN limitará o número de processos paralelos, porém - alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. -

-

- Usar o procedimento opcional abaixo permite que uma(m) - usuária(o) limite o número de processos paralelos via uma - variável de ambiente, NINJAJOBS. Por exemplo, configurar: -

-
export NINJAJOBS=4
-

- limitará ninja a quatro processos paralelos. -

-

- Se desejado, então adicione a capacidade de usar a variável - de ambiente NINJAJOBS executando: -

-
sed -i '/int Guess/a \
-  int   j = 0;\
-  char* jobs = getenv( "NINJAJOBS" );\
-  if ( jobs != NULL ) j = atoi( jobs );\
-  if ( j > 0 ) return j;\
-' src/ninja.cc
-

- Construa Ninja com: -

-
python3 configure.py --bootstrap
-
-

- O significado da opção de construção: -

-
-
- --bootstrap -
-
-

- Esse parâmetro força ninja a reconstruir ele próprio - para o sistema atual. -

-
-
-
-

- Para testar os resultados, execute: -

-
./ninja ninja_test
-./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
-

- Instale o pacote: -

-
install -vm755 ninja /usr/bin/
-install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
-install -vDm644 misc/zsh-completion  /usr/share/zsh/site-functions/_ninja
-
-
-

- 8.51.2. - Conteúdo do Ninja -

-
-
-
- Aplicativo instalado: - ninja -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- ninja -

-
-

- é o sistema de construção Ninja -

-
-
-
-
-
-
-
-
-

- 8.52. Meson-0.61.1 -

-
-
-
-
-

- Meson é um sistema de construção de código fonte aberto - destinado para ser ambos extremamente rápido e tão amigável - à(ao) usuária(o) quanto possível. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 41 MB -
-
-
-
-

- Dica -

-

- Esta seção não é estritamente exigida para LFS se não usar - systemd. Por outro lado, meson/ninja é um sistema de - construção poderoso, o qual é esperado que seja usado mais - e mais frequentemente. Ele é exigido por muitos pacotes no - livro - BLFS. -

-
-
-
-

- 8.52.1. Instalação do Meson -

-

- Compile Meson com o seguinte comando: -

-
python3 setup.py build
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
python3 setup.py install --root=dest
-cp -rv dest/* /
-install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson
-install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson
-
-

- O significado dos parâmetros de install: -

-
-
- --root=dest -
-
-

- Por padrão, python3 - setup.py install instala vários - arquivos (tais como páginas de manual) em Python Eggs. - Com um local raiz especificado, setup.py instala - esses arquivos na hierarquia padrão. Então a hierarquia - pode apenas ser copiada para o local padrão. -

-
-
-
-
-
-

- 8.52.2. - Conteúdo do Meson -

-
-
-
- Aplicativo instalado: - meson -
-
- Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info - e /usr/lib/python3.10/site-packages/mesonbuild -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- meson -

-
-

- Um sistema de construção de alta produtividade -

-
-
-
-
-
-
-
-
-

- 8.53. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 2,6 UPC -
-
- Espaço em disco - exigido: 153 MB -
-
-
-
-
-

- 8.53.1. Instalação do Coreutils -

-

- POSIX exige que aplicativos originários do Coreutils - reconheçam limites de carácter corretamente mesmo em locales - multibyte. A seguinte correção conserta essa não-conformidade - e outros defeitos relacionados à internacionalização. -

-
patch -Np1 -i ../coreutils-9.0-i18n-1.patch
-
-

- Nota -

-

- No passado, muitos defeitos foram encontrados nessa - correção. Quando reportar novos defeitos para as(os) - mantenedoras(es) do Coreutils, por favor verifique primeiro - se eles são reproduzíveis sem essa correção. -

-
-

- Agora, conserte um problema com valores de retorno de chmod: -

-
patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch
-

- Agora prepare Coreutils para compilação: -

-
autoreconf -fiv
-FORCE_UNSAFE_CONFIGURE=1 ./configure \
-            --prefix=/usr            \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- autoreconf -
-
-

- A correção para internacionalização modificou o sistema - de construção do pacote, então os arquivos de - configuração tem de ser regenerados. -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Essa variável de ambiente permite que o pacote seja - construído como a(o) usuária(o) root. -

-
-
- --enable-no-install-program=kill,uptime -
-
-

- O propósito dessa chave é o de impedir que o Coreutils - instale binários que serão instalados por outros - pacotes posteriormente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Agora a suíte de teste está pronta para ser executada. - Primeiro, execute os testes que são destinados a serem - executados como usuária(o) root: -

-
make NON_ROOT_USERNAME=tester check-root
-

- Nós vamos executar o resto dos testes como a(o) usuária(o) - tester. Certos testes exigem - que a(o) usuária(o) seja um membro de mais que um grupo. Para - que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -

-
echo "dummy:x:102:tester" >> /etc/group
-

- Conserte algumas das permissões de modo que a(o) usuária(o) - não-root possa compilar e executar os testes: -

-
chown -Rv tester . 
-

- Agora execute os testes: -

-
su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
-

- O teste test-getlogin é conhecido por falhar dentro do - ambiente chroot do LFS. -

-

- Remova o grupo temporário: -

-
sed -i '/dummy/d' /etc/group
-

- Instale o pacote: -

-
make install
-

- Mova aplicativos para os locais especificados pelo FHS: -

-
mv -v /usr/bin/chroot /usr/sbin
-mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8
-
-
-

- 8.53.2. Conteúdo do Coreutils -

-
-
-
- Aplicativos instalados: - [, b2sum, base32, base64, basename, - basenc, cat, chcon, chgrp, chmod, chown, chroot, cksum, - comm, cp, csplit, cut, date, dd, df, dir, dircolors, - dirname, du, echo, env, expand, expr, factor, false, fmt, - fold, groups, head, hostid, id, install, join, link, ln, - logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, - nice, nl, nohup, nproc, numfmt, od, paste, pathchk, - pinky, pr, printenv, printf, ptx, pwd, readlink, - realpath, rm, rmdir, runcon, seq, sha1sum, sha224sum, - sha256sum, sha384sum, sha512sum, shred, shuf, sleep, - sort, split, stat, stdbuf, stty, sum, sync, tac, tail, - tee, test, timeout, touch, tr, true, truncate, tsort, - tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, - whoami e yes -
-
- Biblioteca instalada: - libstdbuf.so (em - /usr/libexec/coreutils) -
-
- Diretório instalado: - /usr/libexec/coreutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- [ -

-
-

- É um comando atual, /usr/bin/[, que é um sinônimo - para o comando test -

-
-

- base32 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base32 (RFC 4648) -

-
-

- base64 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base64 (RFC 4648) -

-
-

- b2sum -

-
-

- Imprime ou verifica somas de verificação BLAKE2 - (512 bits) -

-
-

- basename -

-
-

- Remove qualquer caminho e um dado sufixo de um nome - de arquivo -

-
-

- basenc -

-
-

- Codifica ou decodifica dados usando vários - algoritmos -

-
-

- cat -

-
-

- Concatena arquivos para saída padrão -

-
-

- chcon -

-
-

- Muda contexto de segurança para arquivos e - diretórios -

-
-

- chgrp -

-
-

- Muda a propriedade do grupo de arquivos e - diretórios -

-
-

- chmod -

-
-

- Muda as permissões de cada arquivo para o modo - dado; o modo pode ser ou uma representação - simbólica das mudanças a fazer ou um número octal - representando as novas permissões -

-
-

- chown -

-
-

- Muda a propriedade da(o) usuária(o) e (ou) grupo de - arquivos e dos diretórios -

-
-

- chroot -

-
-

- Executa um comando com o diretório especificado - como o diretório / -

-
-

- cksum -

-
-

- Imprime a soma de verificação Cyclic Redundancy - Check (CRC) e as contagens de bytes de cada arquivo - especificado -

-
-

- comm -

-
-

- Compara dois arquivos ordenados, exibindo em três - colunas as linhas que são únicas e as linhas que - são comuns -

-
-

- cp -

-
-

- Copia arquivos -

-
-

- csplit -

-
-

- Divide um dado arquivo em vários novos arquivos, - separando-os de acordo com padrões dados ou números - de linha e exibindo a contagem de bytes de cada - novo arquivo -

-
-

- cut -

-
-

- Imprime seções de linhas, selecionando as partes de - acordo com campos ou posições dados -

-
-

- date -

-
-

- Exibe a hora atual no formato dado, ou configura a - data do sistema -

-
-

- dd -

-
-

- Copia um arquivo usando o tamanho de bloco e - contagem dados, enquanto opcionalmente realiza - conversões sobre ele -

-
-

- df -

-
-

- Reporta a quantidade de espaço de disco disponível - (e usada) em todos os sistemas de arquivos - montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados -

-
-

- dir -

-
-

- Lista o conteúdo de cada diretório dado (o mesmo - que o comando ls) -

-
-

- dircolors -

-
-

- Gera comandos para configurar a variável de - ambiente LS_COLOR para - mudar o esquema de cores usado por ls -

-
-

- dirname -

-
-

- Remove o sufixo que não é diretório de um nome de - arquivo -

-
-

- du -

-
-

- Relata a quantidade de espaço de disco usado pelo - diretório atual, por cada diretório dado (incluindo - todos subdiretórios) ou por cada um dos arquivos - dados -

-
-

- echo -

-
-

- Exibe as sequências de caracteres dadas -

-
-

- env -

-
-

- Executa um comando em um ambiente modificado -

-
-

- expand -

-
-

- Converte tabulação para espaços -

-
-

- expr -

-
-

- Avalia expressões -

-
-

- factor -

-
-

- Imprime os fatores primos de todos os números - inteiros especificados -

-
-

- false -

-
-

- Não faz nada, sem sucesso; sempre sai com um código - de status indicando falha -

-
-

- fmt -

-
-

- Reformata os parágrafos nos arquivos dados -

-
-

- fold -

-
-

- Quebra as linhas nos arquivos dados -

-
-

- groups -

-
-

- Relata relacionamentos de membro de grupo de uma(m) - usuária(o) -

-
-

- head -

-
-

- Imprime as primeiras dez linhas (ou o número de - linhas dado) de cada arquivo dado -

-
-

- hostid -

-
-

- Relata o número identificador (em hexadecimal) do - dispositivo -

-
-

- id -

-
-

- Relata o efetivo ID de usuária(o), ID de grupo, e - os relacionamentos de membro de grupo da(o) - usuária(o) atual ou usuária(o) especificada(o) -

-
-

- install -

-
-

- Copia arquivos enquanto configura seus modos de - permissão e, se possível, seus proprietário e grupo -

-
-

- join -

-
-

- Junta as linhas que tem idênticos campos de junção - a partir de dois arquivos separados -

-
-

- link -

-
-

- Cria um hard link com o nome dado para um arquivo -

-
-

- ln -

-
-

- Faz hard links ou soft (simbólico) links entre - arquivos -

-
-

- logname -

-
-

- Relata o nome de login da(o) usuária(o) atual -

-
-

- ls -

-
-

- Lista o conteúdo de cada diretório dado -

-
-

- md5sum -

-
-

- Relata ou verifica somas de verificação Message - Digest 5 (MD5) -

-
-

- mkdir -

-
-

- Cria diretórios com os nomes dados -

-
-

- mkfifo -

-
-

- Cria First-In, First-Outs (FIFOs), um "pipe - nomeado" na linguagem UNIX, com os nomes dados -

-
-

- mknod -

-
-

- Cria nós de dispositivo com os nomes dados; um nó - de dispositivo é um arquivo especial de caractere, - um arquivo especial de bloco ou um FIFO -

-
-

- mktemp -

-
-

- Cria arquivos temporários de uma maneira segura; é - usado em scripts -

-
-

- mv -

-
-

- Move ou renomeia arquivos ou diretórios -

-
-

- nice -

-
-

- Executa um aplicativo com prioridade de agendamento - modificada -

-
-

- nl -

-
-

- Numera as linhas a partir dos arquivos dados -

-
-

- nohup -

-
-

- Executa um comando imune a interrupções, com sua - saída redirecionada para um arquivo de registro -

-
-

- nproc -

-
-

- Imprime o número de unidades de processamento - disponíveis para um processo -

-
-

- numfmt -

-
-

- Converte números para ou de sequências de - caracteres legíveis por humanos -

-
-

- od -

-
-

- Despeja arquivos em octal e outros formatos -

-
-

- paste -

-
-

- Mescla os arquivos dados, unindo linhas - sequencialmente correspondentes lado a lado, - separadas por caracteres de tabulação -

-
-

- pathchk -

-
-

- Verifica se nomes de arquivos são válidos ou - portáveis -

-
-

- pinky -

-
-

- É um cliente de dedo leve; ele relata algumas - informações sobre as(os) usuárias(os) dadas(os) -

-
-

- pr -

-
-

- Pagina e coluna arquivos para impressão -

-
-

- printenv -

-
-

- Imprime o ambiente -

-
-

- printf -

-
-

- Imprime os argumentos dados de acordo com o formato - dado, muito parecido com a função printf do C -

-
-

- ptx -

-
-

- Produz um índice permutado a partir do conteúdo dos - arquivos dados, com cada palavra-chave no contexto - dela -

-
-

- pwd -

-
-

- Relata o nome do diretório de trabalho atual -

-
-

- readlink -

-
-

- Relata o valor do link simbólico dado -

-
-

- realpath -

-
-

- Imprime o caminho resolvido -

-
-

- rm -

-
-

- Remove arquivos ou diretórios -

-
-

- rmdir -

-
-

- Remove diretórios se eles estiverem vazios -

-
-

- runcon -

-
-

- Executa um comando com contexto de segurança - especificado -

-
-

- seq -

-
-

- Imprime uma sequência de números dentro de um dado - intervalo e com um dado incremento -

-
-

- sha1sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm 1 (SHA1) 160 bits -

-
-

- sha224sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 224 bits -

-
-

- sha256sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 256 bits -

-
-

- sha384sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 384 bits -

-
-

- sha512sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 512 bits -

-
-

- shred -

-
-

- Sobrescreve os arquivos dados repetidamente com - padrões complexos, tornando difícil recuperar os - dados -

-
-

- shuf -

-
-

- Embaralha linhas do texto -

-
-

- sleep -

-
-

- Pausa pelo período de tempo dado -

-
-

- sort -

-
-

- Ordena as linhas a partir dos arquivos dados -

-
-

- split -

-
-

- Divide o arquivo dado em pedaços, por tamanho ou - por número de linhas -

-
-

- stat -

-
-

- Exibe a situação de arquivo ou sistema de arquivos -

-
-

- stdbuf -

-
-

- Executa comandos com operações de buffer alteradas - para fluxos padrão deles -

-
-

- stty -

-
-

- Configura ou relata configurações de linha de - terminal -

-
-

- sum -

-
-

- Imprime soma de verificação e contagens de blocos - para cada arquivo dado -

-
-

- sync -

-
-

- Libera buffers do sistema de arquivos; isso força - blocos modificados para o disco e atualiza o super - bloco -

-
-

- tac -

-
-

- Concatena os arquivos dados em ordem reversa -

-
-

- tail -

-
-

- Imprime as últimas dez linhas (ou o número dado de - linhas) de cada arquivo dado -

-
-

- tee -

-
-

- Lê a partir da entrada padrão enquanto escreve - tanto para saída padrão quanto para os arquivos - dados -

-
-

- test -

-
-

- Compara valores e verifica tipos de arquivos -

-
-

- timeout -

-
-

- Executa um comando com um limite de tempo -

-
-

- touch -

-
-

- Muda marcas temporais de arquivo, definindo os - horários de acesso e modificação dos arquivos dados - para o horário atual; arquivos que não existem são - criados com tamanho zero -

-
-

- tr -

-
-

- Traduz, comprime e deleta os caracteres dados a - partir da entrada padrão -

-
-

- true -

-
-

- Não faz nada, com sucesso; sempre sai com um código - de status indicando sucesso -

-
-

- truncate -

-
-

- Comprime ou expande um arquivo para o tamanho - especificado -

-
-

- tsort -

-
-

- Realiza uma ordenação topológica; ele escreve uma - lista completamente ordenada de acordo com a - ordenação parcial em um arquivo dado -

-
-

- tty -

-
-

- Relata o nome de arquivo do terminal conectado à - entrada padrão -

-
-

- uname -

-
-

- Relata informação de sistema -

-
-

- unexpand -

-
-

- Converte espaços para tabulação -

-
-

- uniq -

-
-

- Descarta todas, exceto uma das sucessivas linhas - idênticas -

-
-

- unlink -

-
-

- Remove o arquivo dado -

-
-

- users -

-
-

- Relata os nomes das(os) usuárias(os) atualmente - logados -

-
-

- vdir -

-
-

- É o mesmo que ls - -l -

-
-

- wc -

-
-

- Relata o número de linhas, palavras e bytes para - cada arquivo dado, assim como uma linha de total - quando mais que um arquivo for dado -

-
-

- who -

-
-

- Relata quem está logado -

-
-

- whoami -

-
-

- Relata o nome de usuária(o) associado com o ID de - usuária(o) efetivo atual -

-
-

- yes -

-
-

- Repetidamente retorna y ou uma sequência de - caracteres dada até que seja terminado -

-
-

- libstdbuf -

-
-

- Biblioteca usada por stdbuf -

-
-
-
-
-
-
-
-
-

- 8.54. Check-0.15.2 -

-
-
-
-
-

- Check é uma estrutura de teste de unidade para C. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC (cerca - de 3,8 UPC com os testes) -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.54.1. Instalação do Check -

-

- Prepare Check para compilação: -

-
./configure --prefix=/usr --disable-static
-

- Construa o pacote: -

-
make
-

- Compilação agora está completa. Para executar a suíte de - teste do Check, execute o seguinte comando: -

-
make check
-

- Instale o pacote: -

-
make docdir=/usr/share/doc/check-0.15.2 install
-
-
-

- 8.54.2. - Conteúdo do Check -

-
-
-
- Aplicativo instalado: - checkmk -
-
- Biblioteca instalada: - libcheck.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- checkmk -

-
-

- Script awk para gerar testes de unidade C para uso - com a estrutura de teste de unidade do Check -

-
-

- libcheck.{a,so} -

-
-

- Contém funções que permitem que Check seja chamado - a partir de um aplicativo de teste -

-
-
-
-
-
-
-
-
-

- 8.55. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 34 MB -
-
-
-
-
-

- 8.55.1. Instalação do Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.55.2. Conteúdo do Diffutils -

-
-
-
- Aplicativos instalados: - cmp, diff, diff3 e sdiff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- cmp -

-
-

- Compara dois arquivos e relata se ou em quais bytes - eles diferem -

-
-

- diff -

-
-

- Compara dois arquivos ou diretórios e relata quais - linhas nos arquivos diferem -

-
-

- diff3 -

-
-

- Compara três arquivos linha por linha -

-
-

- sdiff -

-
-

- Mescla dois arquivos e interativamente exibe os - resultados -

-
-
-
-
-
-
-
-
-

- 8.56. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.56.1. Instalação do Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv                                   /usr/share/doc/gawk-5.1.1
-cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1
-
-
-

- 8.56.2. - Conteúdo do Gawk -

-
-
-
- Aplicativos instalados: - awk (link para gawk), gawk e - awk-5.1.1 -
-
- Bibliotecas instaladas: - filefuncs.so, fnmatch.so, fork.so, - inplace.so, intdiv.so, ordchr.so, readdir.so, - readfile.so, revoutput.so, revtwoway.so, rwarray.so e - time.so (todas em /usr/lib/gawk) -
-
- Diretórios instalados: - /usr/lib/gawk, /usr/libexec/awk, - /usr/share/awk e /usr/share/doc/gawk-5.1.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- awk -

-
-

- Um link para gawk -

-
-

- gawk -

-
-

- Um aplicativo para manipular arquivos de texto; é a - implementação GNU do awk -

-
-

- gawk-5.1.1 -

-
-

- Um hard link para gawk -

-
-
-
-
-
-
-
-
-

- 8.57. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 51 MB -
-
-
-
-
-

- 8.57.1. Instalação do Findutils -

-

- Prepare Findutils para compilação: -

-
case $(uname -m) in
-    i?86)   TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-    x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-esac
-
-

- O significado das opções de configure: -

-
-
- TIME_32_BIT_OK=yes -
-
-

- Essa configuração é necessária para construir em um - sistema de 32 bits. -

-
-
- --localstatedir -
-
-

- Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é - conforme com FHS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.57.2. Conteúdo do Findutils -

-
-
-
- Aplicativos instalados: - find, locate, updatedb e - xargs -
-
- Diretório instalado: - /var/lib/locate -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- find -

-
-

- Pesquisa em árvores de diretórios dadas por - arquivos correspondendo a critérios especificados -

-
-

- locate -

-
-

- Pesquisa em um banco de dados de nomes de arquivo e - relata os nomes que contém uma sequência de - caracteres dada ou correspondem a um padrão dado -

-
-

- updatedb -

-
-

- Atualiza o banco de dados locate; ele - escaneia o sistema de arquivos inteiro (incluindo - outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca - cada nome de arquivo que ele encontrar no banco de - dados -

-
-

- xargs -

-
-

- Pode ser usado para aplicar um comando dado a uma - lista de arquivos -

-
-
-
-
-
-
-
-
-

- 8.58. Groff-1.22.4 -

-
-
-
-
-

- O pacote Groff contém aplicativos para processar e formatar - texto. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 88 MB -
-
-
-
-
-

- 8.58.1. Instalação do Groff -

-

- Groff espera que a variável de ambiente PAGE contenha o tamanho de papel padrão. Para - usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é - apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado - durante a compilação, ele pode ser substituído posteriormente - ecoando ou A4 ou letter para o arquivo - /etc/papersize. -

-

- Prepare Groff para compilação: -

-
PAGE=<paper_size> ./configure --prefix=/usr
-

- Esse pacote não suporta construção paralela. Compile o - pacote: -

-
make -j1
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.58.2. - Conteúdo do Groff -

-
-
-
- Aplicativos instalados: - addftinfo, afmtodit, chem, eqn, - eqn2graph, gdiffmk, glilypond, gperl, gpinyin, - grap2graph, grn, grodvi, groff, groffer, grog, grolbp, - grolj4, gropdf, grops, grotty, hpftodit, indxbib, lkbib, - lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, - refer, roff2dvi, roff2html, roff2pdf, roff2ps, roff2text, - roff2x, soelim, tbl, tfmtodit e troff -
-
- Diretórios instalados: - /usr/lib/groff, - /usr/share/doc/groff-1.22.4 e /usr/share/groff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addftinfo -

-
-

- Lê um arquivo de fonte troff e adiciona algumas - informações de métrica de fonte adicionais que são - usadas pelo sistema groff -

-
-

- afmtodit -

-
-

- Cria um arquivo de fonte para uso com groff e - grops -

-
-

- chem -

-
-

- Preprocessador Groff para produzir diagramas de - estrutura química -

-
-

- eqn -

-
-

- Compila descrições de equações embutidas em - arquivos de entrada troff em comandos que são - entendidos por troff -

-
-

- eqn2graph -

-
-

- Converte uma EQN (equação) troff em uma imagem - recortada -

-
-

- gdiffmk -

-
-

- Marca diferenças entre arquivos groff/nroff/troff -

-
-

- glilypond -

-
-

- Transforma partituras escritas na linguagem - lilypond na linguagem groff -

-
-

- gperl -

-
-

- Preprocessador para groff, permitindo adição do - código perl em arquivos groff -

-
-

- gpinyin -

-
-

- Preprocessador para groff, permitindo adição do - idioma semelhante a Chinês Europeu Pinyin em - arquivos groff -

-
-

- grap2graph -

-
-

- Converte um diagrama grap em uma imagem de bitmap - recortada -

-
-

- grn -

-
-

- Um preprocessador groff para - arquivos gremlin -

-
-

- grodvi -

-
-

- Um controlador para groff que produz - formato dvi do TeX -

-
-

- groff -

-
-

- Um frontal para o sistema de formatação de - documentos groff; normalmente, ele executa o - aplicativo troff e um - pós-processador apropriado para o dispositivo - selecionado -

-
-

- groffer -

-
-

- Exibe arquivos groff e páginas de manual em - terminais X e tty -

-
-

- grog -

-
-

- Lê arquivos e advinha quais das opções groff - -e, -man, -me, -mm, -ms, -p, -s - e -t são exigidas para - imprimir arquivos, e relata o comando groff incluindo - aquelas opções -

-
-

- grolbp -

-
-

- É um controlador groff para - impressoras Canon CAPSL (impressoras a laser séries - LBP-4 e LBP-8) -

-
-

- grolj4 -

-
-

- É um controlador para groff que produz - saída no formato PCL5 adequado para uma impressora - HP LaserJet 4 -

-
-

- gropdf -

-
-

- Traduz a saída do GNU troff para PDF -

-
-

- grops -

-
-

- Traduz a saída do GNU troff para - PostScript -

-
-

- grotty -

-
-

- Traduz a saída do GNU troff em uma - forma adequada para dispositivos semelhantes a - máquina de escrever -

-
-

- hpftodit -

-
-

- Cria um arquivo de fonte para uso com groff -Tlj4 a - partir de um arquivo de métrica de fonte rotulada - HP -

-
-

- indxbib -

-
-

- Cria um índice invertido para os bancos de dados - bibliográficos com um arquivo especificado para uso - com refer, - lookbib e - lkbib -

-
-

- lkbib -

-
-

- Pesquisa em bancos de dados bibliográficos por - referências que contenham chaves especificadas e - relata quaisquer referências encontradas -

-
-

- lookbib -

-
-

- Imprime um prompt na saída de erro padrão (a não - ser que a entrada padrão não seja um terminal); lê - uma linha contendo um conjunto de palavras chave a - partir da entrada padrão; pesquisa em bancos de - dados bibliográficos, em um arquivo especificado, - por referências contendo aquelas palavras chave; - imprime quaisquer referências encontradas na saída - padrão; e repete esse processo até o final da - entrada -

-
-

- mmroff -

-
-

- Um preprocessador simples para groff -

-
-

- neqn -

-
-

- Formata equações para saída American Standard Code - for Information Interchange (ASCII) -

-
-

- nroff -

-
-

- Um script que emula o comando nroff usando - groff -

-
-

- pdfmom -

-
-

- É um encapsulador em torno de groff que facilita a - produção de documentos PDF a partir de arquivos - formatados com as macros mom -

-
-

- pdfroff -

-
-

- Cria documentos pdf usando groff -

-
-

- pfbtops -

-
-

- Traduz uma fonte PostScript em formato .pfb para ASCII -

-
-

- pic -

-
-

- Compila descrições de imagens embutidas em arquivos - de entrada troff ou TeX em comandos entendidos por - TeX ou troff -

-
-

- pic2graph -

-
-

- Converte um diagrama PIC em uma imagem recortada -

-
-

- post-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- preconv -

-
-

- Converte codificação de arquivos de entrada em - alguma coisa que o GNU troff entende -

-
-

- pre-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- refer -

-
-

- Copia o conteúdo de um arquivo para a saída padrão, - exceto aquelas linhas entre .[ e .] que são interpretadas - como citações, e linhas entre .R1 e .R2 que são - interpretadas como comandos para como citações são - para serem processadas -

-
-

- roff2dvi -

-
-

- Transforma arquivos roff para o formato DVI -

-
-

- roff2html -

-
-

- Transforma arquivos roff para o formato HTML -

-
-

- roff2pdf -

-
-

- Transforma arquivos roff em PDFs -

-
-

- roff2ps -

-
-

- Transforma arquivos roff em arquivos ps -

-
-

- roff2text -

-
-

- Transforma arquivos roff em arquivos de texto -

-
-

- roff2x -

-
-

- Transforma arquivos roff em outros formatos -

-
-

- soelim -

-
-

- Lê arquivos e substitui linhas da forma - .so arquivo - pelo conteúdo do arquivo mencionado -

-
-

- tbl -

-
-

- Compila descrições de tabelas embutidas em arquivos - de entrada troff em comandos que são entendidos por - troff -

-
-

- tfmtodit -

-
-

- Cria um arquivo fonte para uso com groff -Tdvi -

-
-

- troff -

-
-

- É altamente compatível com o troff do Unix; - ele usualmente deveria ser invocado usando o - comando groff, o qual - também executará preprocessadores e - pós-processadores na ordem apropriada e com as - opções apropriadas -

-
-
-
-
-
-
-
-
-

- 8.59. GRUB-2.06 -

-
-
-
-
-

- O pacote GRUB contém o GRand Unified Bootloader. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 8.59.1. Instalação do GRUB -

-
-

- Nota -

-

- Se seu sistema tem suporte UEFI e você deseja inicializar - LFS com UEFI, então você pode pular esse pacote em LFS, e - instalar GRUB com suporte UEFI (e as dependências dele) - seguindo - a página BLFS ao final deste capítulo. -

-
-

- Prepare GRUB para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --disable-efiemu       \
-            --disable-werror
-
-

- O significado das novas opções de - configure: -

-
-
- --disable-werror -
-
-

- Isso permite que a construção complete com avisos - introduzidos por mais recentes versões do Flex. -

-
-
- --disable-efiemu -
-
-

- Essa opção minimiza o que é construído desabilitando - uma característica e aplicativos de teste não - necessários para o LFS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste para esse pacote não é recomendada. A - maioria dos testes depende de pacotes que não estão - disponíveis no limitado ambiente do LFS. Para executar os - testes mesmo assim, execute make check. -

-

- Instale o pacote: -

-
make install
-mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
-

- Usar GRUB para tornar seu sistema LFS inicializável será - discutido em - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-

- 8.59.2. - Conteúdo do GRUB -

-
-
-
- Aplicativos instalados: - grub-bios-setup, grub-editenv, - grub-file, grub-fstest, grub-glue-efi, grub-install, - grub-kbdcomp, grub-macbless, grub-menulst2cfg, - grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, - grub-mkrescue, grub-mkstandalone, grub-ofpathname, - grub-probe, grub-reboot, grub-render-label, - grub-script-check, grub-set-default, grub-sparc64-setup e - grub-syslinux2cfg -
-
- Diretórios instalados: - /usr/lib/grub, /etc/grub.d, - /usr/share/grub e /boot/grub (quando grub-install for - primeiro executado) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- grub-bios-setup -

-
-

- É um aplicativo auxiliar para grub-install -

-
-

- grub-editenv -

-
-

- Uma ferramenta para editar o bloco ambiente -

-
-

- grub-file -

-
-

- Verifica se FILE é do tipo especificado -

-
-

- grub-fstest -

-
-

- Ferramenta para depurar o controlador de sistema de - arquivos -

-
-

- grub-glue-efi -

-
-

- Processa imagens EFI ia32 e amd64 e cola elas de - acordo com formato Apple -

-
-

- grub-install -

-
-

- Instala o GRUB no seu controlador -

-
-

- grub-kbdcomp -

-
-

- Script que converte um esquema xkb em um - reconhecido por GRUB -

-
-

- grub-macbless -

-
-

- Bênção estilo Mac sobre arquivos HFS ou HFS+ -

-
-

- grub-menulst2cfg -

-
-

- Converte um menu.lst - do GRUB Legacy em um grub.cfg para uso com GRUB 2 -

-
-

- grub-mkconfig -

-
-

- Gera um arquivo de configuração grub -

-
-

- grub-mkimage -

-
-

- Faz uma imagem inicializável do GRUB -

-
-

- grub-mklayout -

-
-

- Gera um arquivo de esquema de teclado do GRUB -

-
-

- grub-mknetdir -

-
-

- Prepara um diretório de inicialização de rede GRUB -

-
-

- grub-mkpasswd-pbkdf2 -

-
-

- Gera uma senha PBKDF2 encriptada para uso no menu - de inicialização -

-
-

- grub-mkrelpath -

-
-

- Faz um caminho de sistema relativo à raiz dele -

-
-

- grub-mkrescue -

-
-

- Faz uma imagem inicializável do GRUB adequada para - um disquete ou CDROM/DVD -

-
-

- grub-mkstandalone -

-
-

- Gera uma imagem independente -

-
-

- grub-ofpathname -

-
-

- É um programa auxiliar que imprime o caminho de um - dispositivo GRUB -

-
-

- grub-probe -

-
-

- Sonda informação de dispositivo para um caminho ou - dispositivo dado -

-
-

- grub-reboot -

-
-

- Configura a entrada de inicialização padrão para o - GRUB para a próxima inicialização apenas -

-
-

- grub-render-label -

-
-

- Renderiza .disk_label da Apple para Macs da Apple -

-
-

- grub-script-check -

-
-

- Verifica script de configuração do GRUB para erros - de sintaxe -

-
-

- grub-set-default -

-
-

- Configura a entrada de inicialização padrão para o - GRUB -

-
-

- grub-sparc64-setup -

-
-

- É um programa auxiliar para grub-setup -

-
-

- grub-syslinux2cfg -

-
-

- Transforma um arquivo de configuração syslinux no - formato grub.cfg -

-
-
-
-
-
-
-
-
-

- 8.60. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 8.60.1. Instalação do Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.60.2. - Conteúdo do Gzip -

-
-
-
- Aplicativos instalados: - gunzip, gzexe, gzip, uncompress - (hard link com gunzip), zcat, zcmp, zdiff, zegrep, - zfgrep, zforce, zgrep, zless, zmore e znew -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gunzip -

-
-

- Descomprime arquivos gzipados -

-
-

- gzexe -

-
-

- Cria arquivos executáveis auto-descomprimíveis -

-
-

- gzip -

-
-

- Comprime os arquivos dados usando codificação - Lempel-Ziv (LZ77) -

-
-

- uncompress -

-
-

- Descomprime arquivos comprimidos -

-
-

- zcat -

-
-

- Descomprime os arquivos gzipados dados para a saída - padrão -

-
-

- zcmp -

-
-

- Executa cmp em arquivos - gzipados -

-
-

- zdiff -

-
-

- Executa diff em arquivos - gzipados -

-
-

- zegrep -

-
-

- Executa egrep em arquivos - gzipados -

-
-

- zfgrep -

-
-

- Executa fgrep em arquivos - gzipados -

-
-

- zforce -

-
-

- Força uma extensão .gz em todos os arquivos dados - que são arquivos gzipados, de modo que o - gzip - não comprimirá eles novamente; isso pode ser útil - quando nomes de arquivo foram truncados durante uma - transferência de arquivo -

-
-

- zgrep -

-
-

- Executa grep em arquivos - gzipados -

-
-

- zless -

-
-

- Executa less em arquivos - gzipados -

-
-

- zmore -

-
-

- Executa more em arquivos - gzipados -

-
-

- znew -

-
-

- Recomprime arquivos oriundos do formato - compress - para formato gzip.Z - para .gz -

-
-
-
-
-
-
-
-
-

- 8.61. IPRoute2-5.16.0 -

-
-
-
-
-

- O pacote IPRoute2 contém aplicativos para redes baseadas em - IPV4 básicas e avançadas. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.61.1. Instalação do IPRoute2 -

-

- O aplicativo arpd incluído nesse pacote - não será construído dado que ele é dependente do Berkeley DB, - o qual não é instalado em LFS. Entretanto, um diretório para - arpd e uma - página de manual ainda serão instalados. Impeça isso - executando os comandos abaixo. Se o binário arpd for necessário, então - instruções para compilar o Berkeley DB podem ser encontradas - no Livro BLFS em - https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html. -

-
sed -i /ARPD/d Makefile
-rm -fv man/man8/arpd.8
-

- Compile o pacote: -

-
make
-

- Esse pacote não tem uma suíte de teste funcional. -

-

- Instale o pacote: -

-
make SBINDIR=/usr/sbin install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv             /usr/share/doc/iproute2-5.16.0
-cp -v COPYING README* /usr/share/doc/iproute2-5.16.0
-
-
-

- 8.61.2. Conteúdo do IPRoute2 -

-
-
-
- Aplicativos instalados: - bridge, ctstat (link para lnstat), - genl, ifcfg, ifstat, ip, lnstat, nstat, routef, routel, - rtacct, rtmon, rtpr, rtstat (link para lnstat), ss e - tc -
-
- Diretórios instalados: - /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bridge -

-
-

- Configura pontes de redes -

-
-

- ctstat -

-
-

- Utilitário de situação de conexão -

-
-

- genl -

-
-

- Frontal utilitário de link de rede genérico -

-
-

- ifcfg -

-
-

- Um encapsulador de script de shell para o comando - ip - [Note que ele exige os aplicativos arping e - rdisk - originários do pacote iputils encontrado em - http://www.skbuff.net/iputils/] -

-
-

- ifstat -

-
-

- Mostra as estatísticas de interface, incluindo a - quantidade de pacotes transmitidos e recebidos pela - interface -

-
-

- ip -

-
-

- O executável principal. Ele tem várias funções: -

-

- ip link <dispositivo> - permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças -

-

- ip - addr permite usuárias(os) olharem - para endereços e propriedades deles, adicionarem - novos endereços e deletarem antigos -

-

- ip - neighbor permite usuárias(os) - olharem para vínculos de vizinho e propriedades - deles, adicionarem novas entradas de vizinho e - deletarem as antigas -

-

- ip - rule permite usuárias(os) olharem - para políticas de roteamento e mudar elas -

-

- ip - route permite usuárias(os) olharem - para a tabela de roteamento e mudar regras de - tabela de roteamento -

-

- ip - tunnel permite usuárias(os) olharem - para os tuneis IP e propriedades deles, e mudar - elas -

-

- ip - maddr permite usuárias(os) olharem - para os endereços multicast e propriedades deles, e - mudar elas -

-

- ip - mroute permite usuárias(os) - configurarem, mudarem ou deletarem o roteamento - multicast -

-

- ip - monitor permite usuárias(os) - continuamente monitorarem o estado de dispositivos, - endereços e rotas -

-
-

- lnstat -

-
-

- Fornece estatísticas de rede do Linux; ele é uma - substituição difundida e mais completa de - características para o antigo aplicativo - rtstat -

-
-

- nstat -

-
-

- Mostra estatísticas de rede -

-
-

- routef -

-
-

- Um componente do ip - route. Isso é para esvaziar as - tabelas de roteamento -

-
-

- routel -

-
-

- Um componente do ip - route. Isso é para listar as - tabelas de roteamento -

-
-

- rtacct -

-
-

- Exibe o conteúdo de /proc/net/rt_acct -

-
-

- rtmon -

-
-

- Utilitário de monitoramento de rota -

-
-

- rtpr -

-
-

- Converte a saída de ip -o de volta em - um formato legível -

-
-

- rtstat -

-
-

- Utilitário de situação de rota -

-
-

- ss -

-
-

- Similar ao comando netstat; exibe - conexões ativas -

-
-

- tc -

-
-

- Executável de Controle de Tráfego; isso é para - implementações de Quality Of Service (QOS) e Class - Of Service (COS) -

-

- tc - qdisc permite usuárias(os) - configurarem a disciplina de enfileiramento -

-

- tc - class permite usuárias(os) - configurarem classes baseadas no agendamento de - disciplina de enfileiramento -

-

- tc - estimator permite usuárias(os) - estimarem o fluxo de rede dentro de uma rede -

-

- tc - filter permite usuárias(os) - configurarem a filtragem de pacote QOS/COS -

-

- tc - policy permite usuárias(os) - configurarem as políticas de QOS/COS -

-
-
-
-
-
-
-
-
-

- 8.62. Kbd-2.4.0 -

-
-
-
-
-

- O pacote Kbd contém arquivos de tabelas de teclas, fontes de - console e utilitários de teclado. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.62.1. Instalação do Kbd -

-

- O comportamento das teclas backspace e delete não é - consistente ao longo dos mapas de teclas no pacote Kbd. A - seguinte correção conserta esse problema para mapas de tecla - i386: -

-
patch -Np1 -i ../kbd-2.4.0-backspace-1.patch
-

- Após corrigir, a tecla backspace gera o carácter com código - 127 e a tecla delete gera uma sequência bem conhecida de - escape. -

-

- Remova o aplicativo redundante resizecons (ele exige que a - defunta svgalib forneça os arquivos de modo de vídeo - para - uso normal setfont dimensiona o - console adequadamente) juntamente com a página de manual - dele. -

-
sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
-sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
-

- Prepare Kbd para compilação: -

-
./configure --prefix=/usr --disable-vlock
-
-

- O significado da opção de configure: -

-
-
- --disable-vlock -
-
-

- Essa opção evita que o utilitário vlock seja - construído, pois ele exige a biblioteca PAM, que não - está disponível no ambiente chroot. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-

- Nota -

-

- Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd - não fornece um mapa de tecla útil onde o regular mapa de - tecla by supõe a codificação - ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla - funcionais separadamente. -

-
-

- Se desejado, então instale a documentação: -

-
mkdir -pv           /usr/share/doc/kbd-2.4.0
-cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0
-
-
-

- 8.62.2. Conteúdo - do Kbd -

-
-
-
- Aplicativos instalados: - chvt, deallocvt, dumpkeys, - fgconsole, getkeycodes, kbdinfo, kbd_mode, kbdrate, - loadkeys, loadunimap, mapscrn, openvt, psfaddtable (link - para psfxtable), psfgettable (link para psfxtable), - psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, - showconsolefont, showkey, unicode_start e - unicode_stop -
-
- Diretórios instalados: - /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, - /usr/share/doc/kbd-2.4.0 e /usr/share/unimaps -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chvt -

-
-

- Muda o terminal virtual de primeiro plano -

-
-

- deallocvt -

-
-

- Desaloca terminais virtuais não usados -

-
-

- dumpkeys -

-
-

- Despeja as tabelas de tradução de teclado -

-
-

- fgconsole -

-
-

- Imprime o número do terminal virtual ativo -

-
-

- getkeycodes -

-
-

- Imprime a tabela de mapeamento de código de - escaneamento para código de tecla do kernel -

-
-

- kbdinfo -

-
-

- Obtém informação sobre a situação de um console -

-
-

- kbd_mode -

-
-

- Relata ou configura o modo de teclado -

-
-

- kbdrate -

-
-

- Configura as taxas de repetição e atraso de teclado -

-
-

- loadkeys -

-
-

- Carrega as tabelas de tradução de teclado -

-
-

- loadunimap -

-
-

- Carrega a tabela de mapeamento unicode para fonte - do kernel -

-
-

- mapscrn -

-
-

- Um aplicativo obsoleto que costumava carregar uma - tabela de mapeamento de caractere de saída definida - pela(o) usuária(o) para dentro do controlador de - console; isso é feito agora por setfont -

-
-

- openvt -

-
-

- Inicia um aplicativo em um novo terminal virtual - (VT) -

-
-

- psfaddtable -

-
-

- Adiciona uma tabela de carácter Unicode para uma - fonte de console -

-
-

- psfgettable -

-
-

- Extrai a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfstriptable -

-
-

- Remove a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfxtable -

-
-

- Lida com tabelas de carácter Unicode para fontes de - console -

-
-

- setfont -

-
-

- Muda as fontes Enhanced Graphic Adapter (EGA) e - Video Graphics Array (VGA) no console -

-
-

- setkeycodes -

-
-

- Carrega entradas de tabela de mapeamento de código - de escaneamento para código de tecla do kernel; - isso é útil se existirem teclas incomuns no teclado -

-
-

- setleds -

-
-

- Configura os sinalizadores de teclado e Light - Emitting Diodes (LEDs) -

-
-

- setmetamode -

-
-

- Define o manuseio de meta tecla de teclado -

-
-

- setvtrgb -

-
-

- Configura o mapa de cor de console em todos os - terminais virtuais -

-
-

- showconsolefont -

-
-

- Exibe a fonte de tela de console EGA/VGA atual -

-
-

- showkey -

-
-

- Relata os códigos de escaneamento, códigos de tecla - e códigos ASCII das teclas pressionadas no teclado -

-
-

- unicode_start -

-
-

- Põe o teclado e console em modo UNICODE [Não use - esse aplicativo a menos que seu arquivo de mapa de - tecla esteja na codificação ISO-8859-1. Para outras - codificações, esse utilitário produz resultados - incorretos.] -

-
-

- unicode_stop -

-
-

- Reverte teclado e console do modo UNICODE -

-
-
-
-
-
-
-
-
-

- 8.63. Libpipeline-1.5.5 -

-
-
-
-
-

- O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos em uma maneira flexível e - conveniente. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 9,7 MB -
-
-
-
-
-

- 8.63.1. Instalação do Libpipeline -

-

- Prepare Libpipeline para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.63.2. Conteúdo do Libpipeline -

-
-
-
- Biblioteca instalada: - libpipeline.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libpipeline -

-
-

- Essa biblioteca é usada para seguramente construir - pipelines entre subprocessos -

-
-
-
-
-
-
-
-
-

- 8.64. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.64.1. Instalação do Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.64.2. - Conteúdo do Make -

-
-
-
- Aplicativo instalado: - make -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- make -

-
-

- Automaticamente determina quais partes de um pacote - precisam ser (re)compiladas e então emite os - comandos relevantes -

-
-
-
-
-
-
-
-
-

- 8.65. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.65.1. Instalação do Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.65.2. - Conteúdo do Patch -

-
-
-
- Aplicativo instalado: - patch -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- patch -

-
-

- Modifica arquivos de acordo com um arquivo de - correção (Um arquivo de correção normalmente é uma - listagem de diferenças criada com o aplicativo - diff. - Aplicando essas diferenças aos arquivos originais, - patch - cria as versões corrigidas.) -

-
-
-
-
-
-
-
-
-

- 8.66. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 1,7 UPC -
-
- Espaço em disco - exigido: 40 MB -
-
-
-
-
-

- 8.66.1. Instalação do Tar -

-

- Prepare Tar para compilação: -

-
FORCE_UNSAFE_CONFIGURE=1  \
-./configure --prefix=/usr
-
-

- O significado da opção de configure: -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Isso força o teste para mknod ser executado como root. Geralmente é considerado - perigoso executar esse teste como a(o) usuária(o) - root, porém como ele - está sendo executado em um sistema que foi apenas - parcialmente construído, substituir ele está OK. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Um teste, capabilities: binary store/restore, é conhecido por - falhar se ele for executado (LFS carece de selinux), porém - será pulado se o kernel do anfitrião não suportar atributos - estendidos no sistema de arquivos usado para construir LFS. -

-

- Instale o pacote: -

-
make install
-make -C doc install-html docdir=/usr/share/doc/tar-1.34
-
-
-

- 8.66.2. Conteúdo - do Tar -

-
-
-
- Aplicativo instalado: - tar -
-
- Diretório instalado: - /usr/share/doc/tar-1.34 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- tar -

-
-

- Cria, extrai arquivos originários de, e lista o - conteúdo de arquivamentos, também conhecidos como - tarballs -

-
-
-
-
-
-
-
-
-

- 8.67. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 112 MB -
-
-
-
-
-

- 8.67.1. Instalação do Texinfo -

-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Novamente, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Opcionalmente, instale os componentes pertencentes a uma - instalação de TeX: -

-
make TEXMF=/usr/share/texmf install-tex
-
-

- O significado do parâmetro de make: -

-
-
- TEXMF=/usr/share/texmf -
-
-

- A variável de arquivo make TEXMF mantém o local da raiz da árvore - do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. -

-
-
-
-

- O sistema de documentação Info usa um arquivo de texto - simples para manter a lista de entradas de menu dele. O - arquivo está localizado em /usr/share/info/dir. Infelizmente, devido a - problemas ocasionais nos arquivos Make de vários pacotes, ele - pode as vezes sair de sincronia com as páginas info - instaladas no sistema. Se o arquivo /usr/share/info/dir alguma vez precisar ser - recriado, então os seguintes comandos opcionais realizarão a - tarefa: -

-
pushd /usr/share/info
-  rm -v dir
-  for f in *
-    do install-info $f dir 2>/dev/null
-  done
-popd
-
-
-

- 8.67.2. - Conteúdo do Texinfo -

-
-
-
- Aplicativos instalados: - info, install-info, makeinfo (link - para texi2any), pdftexi2dvi, pod2texi, texi2any, - texi2dvi, texi2pdf e texindex -
-
- Bibliotecas instaladas: - MiscXS.so, Parsetexi.so e - XSParagraph.so (todas em /usr/lib/texinfo) -
-
- Diretórios instalados: - /usr/share/texinfo e - /usr/lib/texinfo -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- info -

-
-

- Usado para ler páginas info as quais são similares - a páginas de manual, porém frequentemente vão muito - mais fundo que somente explanar todas as opções de - linha de comando disponíveis [Por exemplo, compare - man - bison e info bison] -

-
-

- install-info -

-
-

- Usado para instalar páginas info; ele atualiza - entradas no arquivo de índice info -

-
-

- makeinfo -

-
-

- Traduz os documentos fonte do Texinfo dados para - páginas info, texto simples ou HTML -

-
-

- pdftexi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- pod2texi -

-
-

- Converte Pod para formato Texinfo -

-
-

- texi2any -

-
-

- Traduz documentação fonte do Texinfo para vários - outros formatos -

-
-

- texi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo independente de dispositivo que pode ser - impresso -

-
-

- texi2pdf -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- texindex -

-
-

- Usado para ordenar arquivos de índice do Texinfo -

-
-
-
-
-
-
-
-
-

- 8.68. Vim-8.2.4383 -

-
-
-
-
-

- O pacote Vim contém um editor de texto poderoso. -

-
-
-
- Tempo aproximado de - construção: 2,4 UPC -
-
- Espaço em disco - exigido: 206 MB -
-
-
-
-

- Alternativas ao Vim -

-

- Se você preferir outro editor—como Emacs, Joe ou - Nano—por favor consulte - https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/editors.html - para instruções de instalação sugeridas. -

-
-
-
-

- 8.68.1. Instalação do Vim -

-

- Primeiro, mude o local padrão do arquivo de configuração - vimrc para /etc: -

-
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
-

- Prepare vim para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para preparar os testes, garanta que usuária(o) tester pode escrever na árvore de fonte: -

-
chown -Rv tester .
-

- Agora execute os testes como usuária(o) tester: -

-
su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
-

- A suíte de teste emite muitos dados binários para a tela. - Isso pode causar problemas com as configurações do terminal - atual. O problema pode ser evitado redirecionando a saída - para um arquivo de registro conforme mostrado acima. Um teste - bem sucedido resultará nas palavras "ALL DONE" no arquivo de - registro ao completar. -

-

- Instale o pacote: -

-
make install
-

- Muitas(os) usuárias(os) estão acostumadas(os) a usar - vi em vez de - vim. Para - permitir a execução do vim quando usuárias(os) - habitualmente digitarem vi, crie um link simbólico - para ambos o binário e a página de manual nos idiomas - fornecidos: -

-
ln -sv vim /usr/bin/vi
-for L in  /usr/share/man/{,*/}man1/vim.1; do
-    ln -sv vim.1 $(dirname $L)/vi.1
-done
-

- Por padrão, a documentação do vim é instalada em /usr/share/vim. O seguinte link simbólico - permite que a documentação seja acessada via /usr/share/doc/vim-8.2.4383, tornando ela - consistente com o local da documentação para outros pacotes: -

-
ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383
-

- Se um X Window System vier a ser instalado no sistema LFS, - então talvez seja necessário recompilar vim após instalar X. - O Vim vem com uma versão GUI do editor que exige o X e - algumas bibliotecas adicionais para ser instalada. Para mais - informações sobre esse processo, consulte a documentação de - vim e a página de instalação de vim no livro BLFS em - - https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/vim.html. -

-
-
-

- 8.68.2. Configurando Vim -

-

- Por padrão, vim - executa em modo incompatível com vi. Isso talvez seja novo - para usuárias(os) que usaram outros editores no passado. A - configuração nocompatible está incluída - abaixo para destacar o fato de que um novo comportamento está - sendo usado. Ela também lembra àquelas(es) que mudariam para - o modo compatible que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é - necessário, pois ela muda outras configurações, e - substituições precisam vir após essa configuração. Crie um - arquivo de configuração vim padrão executando o - seguinte: -

-
cat > /etc/vimrc << "EOF"
-" Begin /etc/vimrc
-
-" Ensure defaults are set before customizing settings, not after
-source $VIMRUNTIME/defaults.vim
-let skip_defaults_vim=1
-
-set nocompatible
-set backspace=2
-set mouse=
-syntax on
-if (&term == "xterm") || (&term == "putty")
-  set background=dark
-endif
-
-" End /etc/vimrc
-EOF
-

- A configuração set - nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. - Remova o no para manter o comportamento - vi antigo. A - configuração set - backspace=2 permite retroceder sobre quebras de - linha, auto recuos e o início de uma inserção. O parâmetro - syntax on habilita o - destaque de sintaxe do vim. A configuração set mouse= habilita adequada - colagem de texto com o mouse quando trabalhar em chroot ou - por meio de uma conexão remota. Finalmente, a declaração - if com a configuração - set background=dark - corrige a suposição do vim sobre a cor de segundo - plano de alguns emuladores de terminal. Isso dá ao destaque - um esquema de cores melhor para uso no segundo plano preto - desses aplicativos. -

-

- Documentação para outras opções disponíveis pode ser obtida - executando o seguinte comando: -

-
vim -c ':options'
-
-

- Nota -

-

- Por padrão, vim instala apenas arquivos de soletrar para o - idioma inglês. Para instalar arquivos de soletrar para seu - idioma preferido, baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e codificação de - caracter a partir de ftp://ftp.vim.org/pub/vim/runtime/spell/ - e salve-os em /usr/share/vim/vim82/spell/. -

-

- Para usar esses arquivos de soletrar, alguma configuração - em /etc/vimrc é necessária, - por exemplo: -

-
set spelllang=en,ru
-set spell
-

- Para mais informação, veja o arquivo README apropriado - localizado na URL acima. -

-
-
-
-

- 8.68.3. Conteúdo - do Vim -

-
-
-
- Aplicativos instalados: - ex (link para vim), rview (link - para vim), rvim (link para vim), vi (link para vim), view - (link para vim), vim, vimdiff (link para vim), vimtutor e - xxd -
-
- Diretório instalado: - /usr/share/vim -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ex -

-
-

- Inicia vim em modo ex -

-
-

- rview -

-
-

- É uma versão restrita do view; nenhum - comando de shell pode ser iniciado e view não pode ser - suspenso -

-
-

- rvim -

-
-

- É uma versão restrita do vim; nenhum - comando de shell pode ser iniciado e vim não pode ser - suspenso -

-
-

- vi -

-
-

- Link para vim -

-
-

- view -

-
-

- Inicia vim em modo - somente leitura -

-
-

- vim -

-
-

- É o editor -

-
-

- vimdiff -

-
-

- Edita duas ou três versões de um arquivo com - vim e - exibe diferenças -

-
-

- vimtutor -

-
-

- Ensina as teclas básicas e comandos do vim -

-
-

- xxd -

-
-

- Cria um despejo hexadecimal do arquivo dado; ele - também pode fazer o reverso, de forma que ele pode - ser usado para correção de binário -

-
-
-
-
-
-
-
-
-

- 8.69. Eudev-3.2.11 -

-
-
-
-
-

- O pacote Eudev contém aplicativos para criação dinâmica de - nós de dispositivo. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 83 MB -
-
-
-
-
-

- 8.69.1. Instalação do Eudev -

-

- Prepare Eudev para compilação: -

-
./configure --prefix=/usr           \
-            --bindir=/usr/sbin      \
-            --sysconfdir=/etc       \
-            --enable-manpages       \
-            --disable-static
-

- Compile o pacote: -

-
make
-

- Crie alguns diretórios agora que são necessários para testes, - porém também serão usados como uma parte da instalação: -

-
mkdir -pv /usr/lib/udev/rules.d
-mkdir -pv /etc/udev/rules.d
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Instale algumas regras personalizadas e arquivos de suporte - úteis em um ambiente LFS: -

-
tar -xvf ../udev-lfs-20171102.tar.xz
-make -f udev-lfs-20171102/Makefile.lfs install
-
-
-

- 8.69.2. Configurando - Eudev -

-

- Informação acerca de dispositivos de hardware é mantida nos - diretórios /etc/udev/hwdb.d e - /usr/lib/udev/hwdb.d. - Eudev precisa que a - informação seja compilada em um banco de dados binário - /etc/udev/hwdb.bin. Crie o - banco de dados inicial: -

-
udevadm hwdb --update
-

- Esse comando precisa ser executado cada vez que a informação - de hardware for atualizada. -

-
-
-

- 8.69.3. - Conteúdo do Eudev -

-
-
-
- Aplicativos instalados: - udevadm e udevd -
-
- Biblioteca instalada: - libudev.so -
-
- Diretórios instalados: - /etc/udev, /usr/lib/udev e - /usr/share/doc/udev-udev-lfs-20171102 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- udevadm -

-
-

- Ferramenta de administração udev genérica: controla - o daemon udevd, fornece informação a partir do - banco de dados do Udev, monitora uevents, aguarda - que uevents terminem, testa configuração do Udev e - deflagra uevents para um dispositivo dado -

-
-

- udevd -

-
-

- Um daemon que ouve uevents no soquete de link de - rede, cria dispositivos e executa os aplicativos - externos configurados em resposta a esses uevents -

-
-

- libudev -

-
-

- Uma interface de biblioteca para informação de - dispositivo do udev -

-
-

- /etc/udev -

-
-

- Contém arquivos de configuração do Udev, permissões - de dispositivo e regras para nomear dispositivo -

-
-
-
-
-
-
-
-
-

- 8.70. Man-DB-2.10.1 -

-
-
-
-
-

- O pacote Man-DB contém aplicativos para encontrar e - visualizar páginas de manual. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 39 MB -
-
-
-
-
-

- 8.70.1. Instalação do Man-DB -

-

- Prepare Man-DB para compilação: -

-
./configure --prefix=/usr                         \
-            --docdir=/usr/share/doc/man-db-2.10.1 \
-            --sysconfdir=/etc                     \
-            --disable-setuid                      \
-            --enable-cache-owner=bin              \
-            --with-browser=/usr/bin/lynx          \
-            --with-vgrind=/usr/bin/vgrind         \
-            --with-grap=/usr/bin/grap             \
-            --with-systemdtmpfilesdir=            \
-            --with-systemdsystemunitdir=
-
-

- O significado das opções de configure: -

-
-
- --disable-setuid -
-
-

- Isso desabilita fazer o aplicativo man configurar uid - para usuária(o) man. -

-
-
- --enable-cache-owner=bin -
-
-

- Isso torna os arquivos de cache de sistema de - propriedade da(o) usuária(o) bin. -

-
-
- --with-... -
-
-

- Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador - de rede baseado em texto (veja-se BLFS para instruções - de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e - grap é - útil para tipografar gráficos em documentos do Groff. - Os aplicativos vgrind e grap normalmente não - são necessários para visualizar páginas de manual. Eles - não são parte do LFS ou BLFS, mas você deveria ser - capaz de instalá-los após terminar o LFS se você - desejar fazer isso. -

-
-
- --with-systemd... -
-
-

- Esses parâmetros impedem a instalação de diretórios e - arquivos do systemd desnecessários. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.70.2. Páginas de Manual não inglesas no LFS -

-

- A seguinte tabela mostra o conjunto de caracteres no qual - Man-DB supõe que as páginas de manual instaladas sob - /usr/share/man/<ll> - estarão codificadas. Em adição a isto, o Man-DB determina - corretamente se páginas de manual instaladas naquele - diretório estão codificadas com UTF-8. -

-
- -

- Tabela 8.1. Codificação de caracteres esperada das - páginas de manual de 8-bit legadas -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Idioma (código) - - Codificação - - Idioma (código) - - Codificação -
- Dinamarquês (da) - - ISO-8859-1 - - Croata (hr) - - ISO-8859-2 -
- Alemão (de) - - ISO-8859-1 - - Húngaro (hu) - - ISO-8859-2 -
- Inglês (en) - - ISO-8859-1 - - Japonês (ja) - - EUC-JP -
- Espanhol (es) - - ISO-8859-1 - - Coreano (ko) - - EUC-KR -
- Estoniano (et) - - ISO-8859-1 - - Lituano (lt) - - ISO-8859-13 -
- Finlandês (fi) - - ISO-8859-1 - - Letão (lv) - - ISO-8859-13 -
- Francês (fr) - - ISO-8859-1 - - Macedônio (mk) - - ISO-8859-5 -
- Irlandês (ga) - - ISO-8859-1 - - Polonês (pl) - - ISO-8859-2 -
- Galego (gl) - - ISO-8859-1 - - Romeno (ro) - - ISO-8859-2 -
- Indonésio (id) - - ISO-8859-1 - - Russo (ru) - - KOI8-R -
- Islandês (is) - - ISO-8859-1 - - Eslovaco (sk) - - ISO-8859-2 -
- Italiano (it) - - ISO-8859-1 - - Esloveno (sl) - - ISO-8859-2 -
- Bokmal norueguês (nb) - - ISO-8859-1 - - Latim sérvio (sr@latin) - - ISO-8859-2 -
- Holandês (nl) - - ISO-8859-1 - - Sérvio (sr) - - ISO-8859-5 -
- Nynorsk norueguês (nn) - - ISO-8859-1 - - Turco (tr) - - ISO-8859-9 -
- Norueguês (no) - - ISO-8859-1 - - Ucraniano (uk) - - KOI8-U -
- Português (pt) - - ISO-8859-1 - - Vietnamita (vi) - - TCVN5712-1 -
- Sueco (sv) - - ISO-8859-1 - - Chinês simplificado (zh_CN) - - GBK -
- Bielorrusso (be) - - CP1251 - - Chinês simplificado, Singapura (zh_SG) - - GBK -
- Búlgaro (bg) - - CP1251 - - Chinês tradicional, Hong Kong (zh_HK) - - BIG5HKSCS -
- Tcheco (cs) - - ISO-8859-2 - - Chinês tradicional (zh_TW) - - BIG5 -
- Grego (el) - - ISO-8859-7 - -   - -   -
-
-

-
-

- Nota -

-

- Páginas de manual em idiomas que não estão na lista não são - suportadas. -

-
-
-
-

- 8.70.3. - Conteúdo do Man-DB -

-
-
-
- Aplicativos instalados: - accessdb, apropos (link para - whatis), catman, lexgrog, man, man-recode, mandb, manpath - e whatis -
-
- Bibliotecas instaladas: - libman.so e libmandb.so (ambas em - /usr/lib/man-db) -
-
- Diretórios instalados: - /usr/lib/man-db, - /usr/libexec/man-db e /usr/share/doc/man-db-2.10.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- accessdb -

-
-

- Despeja o conteúdo do banco de dados whatis em formato - legível por humanos -

-
-

- apropos -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas dos comandos de sistema que - contém uma sequência de caracteres dada -

-
-

- catman -

-
-

- Cria ou atualiza páginas de manual pré-formatadas -

-
-

- lexgrog -

-
-

- Exibe informação de sumário em uma linha sobre uma - página de manual dada -

-
-

- man -

-
-

- Formata e exibe a página de manual solicitada -

-
-

- man-recode -

-
-

- Converte páginas de manual para outra codificação -

-
-

- mandb -

-
-

- Cria ou atualiza o banco de dados whatis -

-
-

- manpath -

-
-

- Exibe o conteúdo de $MANPATH ou (se $MANPATH não - estiver configurada) um caminho de busca adequado - baseado nas configurações em man.conf e no ambiente - da(o) usuária(o) -

-
-

- whatis -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas de comandos do sistema que contém - a palavra chave dada como uma palavra separada -

-
-

- libman -

-
-

- Contém suporte em tempo de execução para o - man -

-
-

- libmandb -

-
-

- Contém suporte em tempo de execução para o - man -

-
-
-
-
-
-
-
-
-

- 8.71. Procps-ng-3.3.17 -

-
-
-
-
-

- O pacote Procps-ng contém aplicativos para monitorar - processos. -

-
-

- Nota -

-

- Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. -

-
-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 19 MB -
-
-
-
-
-

- 8.71.1. Instalação do Procps-ng -

-

- Prepare procps-ng para compilação: -

-
./configure --prefix=/usr                            \
-            --docdir=/usr/share/doc/procps-ng-3.3.17 \
-            --disable-static                         \
-            --disable-kill
-
-

- O significado da opção de configure: -

-
-
- --disable-kill -
-
-

- Essa chave desabilita a construção do comando - kill que - será instalado pelo pacote util-linux. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar a suíte de teste, execute: -

-
make check
-

- Cinco testes relacionados a pkill são conhecidos por falhar - devido a um problema com testes que não foram atualizados. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.71.2. - Conteúdo do Procps-ng -

-
-
-
- Aplicativos instalados: - free, pgrep, pidof, pkill, pmap, - ps, pwdx, slabtop, sysctl, tload, top, uptime, vmstat, w - e watch -
-
- Biblioteca instalada: - libprocps.so -
-
- Diretórios instalados: - /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- free -

-
-

- Relata a quantidade de memória livre e usada (ambas - memória física e swap) no sistema -

-
-

- pgrep -

-
-

- Procura por processos baseado nos nomes deles e - outros atributos -

-
-

- pidof -

-
-

- Relata os PIDs dos aplicativos dados -

-
-

- pkill -

-
-

- Sinaliza processos baseado nos nomes deles e outros - atributos -

-
-

- pmap -

-
-

- Relata o mapeamento de memória do processo dado -

-
-

- ps -

-
-

- Lista os processos em execução atualmente -

-
-

- pwait -

-
-

- Aguarda que um processo termine antes de executar. -

-
-

- pwdx -

-
-

- Relata o diretório de trabalho atual de um processo -

-
-

- slabtop -

-
-

- Exibe informações detalhadas de cache de slab do - kernel em tempo real -

-
-

- sysctl -

-
-

- Modifica parâmetros do kernel em tempo de execução -

-
-

- tload -

-
-

- Imprime um gráfico da média de carga de sistema - atual -

-
-

- top -

-
-

- Exibe uma lista dos processos com maior uso de CPU; - ele fornece uma visão contínua da atividade do - processador em tempo real -

-
-

- uptime -

-
-

- Relata há quanto tempo o sistema está executando, - quantas(os) usuárias(os) estão logadas(os) e as - médias de carga de sistema -

-
-

- vmstat -

-
-

- Relata estatísticas de memória virtual, dando - informações sobre processos, memória, paginação, - Entrada/Saída (E/S) de bloco, traps e atividade da - CPU -

-
-

- w -

-
-

- Mostra quais usuárias(os) estão logadas(os) - atualmente, onde e desde quando -

-
-

- watch -

-
-

- Executa um comando dado repetidamente, exibindo a - primeira tela cheia da saída dele; isso permite que - uma(m) usuária(o) observe a mudança de saída ao - longo do tempo -

-
-

- libprocps -

-
-

- Contém as funções usadas pela maioria dos - aplicativos nesse pacote -

-
-
-
-
-
-
-
-
-

- 8.72. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém aplicativos utilitários diversos. - Entre eles estão utilitários para lidar com sistemas de - arquivos, consoles, partições e mensagens. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 261 MB -
-
-
-
-
-

- 8.72.1. Instalação do Util-linux -

-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
-            --bindir=/usr/bin    \
-            --libdir=/usr/lib    \
-            --sbindir=/usr/sbin  \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python     \
-            --without-systemd    \
-            --without-systemdsystemunitdir
-

- As opções --disable e --without impedem avisos acerca de - construir componentes que exigem pacotes ausentes em LFS ou - estão inconsistentes com aplicativos instalados por outros - pacotes. -

-

- Compile o pacote: -

-
make
-

- Se desejado, execute a suíte de teste como uma(m) usuária(o) - não root: -

-
-

- Atenção -

-

- Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao seu sistema. - Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente - e precisa ser construída como um módulo. Construí-lo dentro - do kernel impedirá a inicialização. Para cobertura - completa, outros pacotes do BLFS precisam ser instalados. - Se desejado, esse teste pode ser executado após reiniciar - no sistema LFS completo e executar: -

-
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
-
-
-

- Nota -

-

- Existe um teste que falha no ambiente chroot e causa os - testes travarem para sempre. O problema não ocorre do lado - de fora do ambiente chroot. Para contornar o problema, - delete o teste: -

-
rm tests/ts/lsns/ioctl_ns
-
-
chown -Rv tester .
-su tester -c "make -k check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.72.2. Conteúdo do Util-linux -

-
-
-
- Aplicativos instalados: - addpart, agetty, blkdiscard, blkid, - blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, - chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, - dmesg, eject, fallocate, fdisk, fincore, findfs, findmnt, - flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, - getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, - ipcs, irqtop, isosize, kill, last, lastb (link para - last), ldattach, linux32, linux64, logger, look, losetup, - lsblk, lscpu, lsipc, lsirq, lslocks, lslogins, lsmem, - lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, - nsenter, partx, pivot_root, prlimit, readprofile, rename, - renice, resizepart, rev, rfkill, rtcwake, script, - scriptlive, scriptreplay, setarch, setsid, setterm, - sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, - uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, - wall, wdctl, whereis, wipefs, x86_64 e zramctl -
-
- Bibliotecas instaladas: - libblkid.so, libfdisk.so, - libmount.so, libsmartcols.so e libuuid.so -
-
- Diretórios instalados: - /usr/include/blkid, - /usr/include/libfdisk, /usr/include/libmount, - /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e - /var/lib/hwclock -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addpart -

-
-

- Informa o kernel Linux de novas partições -

-
-

- agetty -

-
-

- Abre uma porta tty, solicita um nome de login e - então invoca o aplicativo login -

-
-

- blkdiscard -

-
-

- Descarta setores em um dispositivo -

-
-

- blkid -

-
-

- Um utilitário de linha de comando para localizar e - imprimir atributos de dispositivo de bloco -

-
-

- blkzone -

-
-

- Executa comando de zona no dispositivo de bloco - dado -

-
-

- blockdev -

-
-

- Permite usuárias(os) chamar ioctls de dispositivo - de bloco a partir da linha de comando -

-
-

- cal -

-
-

- Exibe um calendário simples -

-
-

- cfdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- chcpu -

-
-

- Modifica o estado de CPUs -

-
-

- chmem -

-
-

- Configura memória -

-
-

- choom -

-
-

- Exibe e ajusta a pontuação de matador de OOM -

-
-

- chrt -

-
-

- Manipula atributos de tempo real de um processo -

-
-

- col -

-
-

- Filtra feeds de linha reversa -

-
-

- colcrt -

-
-

- Filtra saída nroff para - terminais que não tem algumas capacidades, tais - como overstriking e half-lines -

-
-

- colrm -

-
-

- Filtra as colunas dadas -

-
-

- column -

-
-

- Formata um arquivo dado em colunas múltiplas -

-
-

- ctrlaltdel -

-
-

- Configura a função da combinação de teclas - Ctrl+Alt+Del para uma reconfiguração hard ou soft -

-
-

- delpart -

-
-

- Pede ao kernel Linux para remover uma partição -

-
-

- dmesg -

-
-

- Despeja as mensagens de inicialização do kernel -

-
-

- eject -

-
-

- Ejeta mídia removível -

-
-

- fallocate -

-
-

- Pré-aloca espaço para um arquivo -

-
-

- fdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- fincore -

-
-

- Conta páginas de conteúdo de arquivo em núcleo -

-
-

- findfs -

-
-

- Encontra um sistema de arquivos pelo rótulo ou - Universally Unique Identifier (UUID) -

-
-

- findmnt -

-
-

- É uma interface de linha de comando para a - biblioteca libmount para funcionar com mountinfo, - fstab e arquivos mtab -

-
-

- flock -

-
-

- Adquire uma trava de arquivo e então executa um - comando com a trava mantida -

-
-

- fsck -

-
-

- É usado para verificar, e opcionalmente reparar, - sistemas de arquivos -

-
-

- fsck.cramfs -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Cramfs no dispositivo dado -

-
-

- fsck.minix -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Minix no dispositivo dado -

-
-

- fsfreeze -

-
-

- É um encapsulador muito simples em torno de - operações de controlador de kernel de ioctl de - FIFREEZE/FITHAW -

-
-

- fstrim -

-
-

- Descarta blocos não usados em um sistema de - arquivos montado -

-
-

- getopt -

-
-

- Analisa opções na linha de comando dada -

-
-

- hexdump -

-
-

- Despeja o arquivo dado em hexadecimal ou em outro - formato dado -

-
-

- hwclock -

-
-

- Lê ou configura o relógio de hardware do sistema, - também chamado de Real-Time Clock (RTC) ou relógio - do Basic Input-Output System (BIOS) -

-
-

- i386 -

-
-

- Um link simbólico para setarch -

-
-

- ionice -

-
-

- Obtém ou configura a classe de agendamento de io e - prioridade para um aplicativo -

-
-

- ipcmk -

-
-

- Cria vários recursos IPC -

-
-

- ipcrm -

-
-

- Remove o recurso de Inter-Process Communication - (IPC) dado -

-
-

- ipcs -

-
-

- Fornece informação de situação de IPC -

-
-

- irqtop -

-
-

- Exibe informação de contador de interrupção do - kernel em visão estilo top(1) -

-
-

- isosize -

-
-

- Relata o tamanho de um sistema de arquivos iso9660 -

-
-

- kill -

-
-

- Envia sinais para processos -

-
-

- last -

-
-

- Mostra quais usuárias(os) derradeiramente - logaram-se (e deslogaram-se), pesquisando de volta - ao longo do arquivo /var/log/wtmp; ele também mostra - inicializações de sistema, desligamentos e mudanças - de nível de execução -

-
-

- lastb -

-
-

- Exibe as tentativas de login falhas, conforme - registrado em /var/log/btmp -

-
-

- ldattach -

-
-

- Anexa uma disciplina de linha à uma linha serial -

-
-

- linux32 -

-
-

- Um link simbólico para setarch -

-
-

- linux64 -

-
-

- Um link simbólico para setarch -

-
-

- logger -

-
-

- Adiciona a mensagem dada ao registro do sistema -

-
-

- look -

-
-

- Exibe linhas que começam com a sequência de - caracteres dada -

-
-

- losetup -

-
-

- Configura e controla dispositivos de loop -

-
-

- lsblk -

-
-

- Lista informações sobre todos ou dispositivos de - bloco selecionados em um formato semelhante a - árvore -

-
-

- lscpu -

-
-

- Imprime informação de arquitetura da CPU -

-
-

- lsipc -

-
-

- Imprime informação acerca de facilidades de IPC - empregadas atualmente no sistema -

-
-

- lsirq -

-
-

- Exibe informação de contador de interrupção do - kernel -

-
-

- lslocks -

-
-

- Lista travas locais de sistema -

-
-

- lslogins -

-
-

- Lista informação acerca de contas de usuárias(os), - grupos e sistema -

-
-

- lsmem -

-
-

- Lista os intervalos de memória disponível com a - situação online deles -

-
-

- lsns -

-
-

- Lista espaços de nome -

-
-

- mcookie -

-
-

- Gera cookies mágicos (números hexadecimais - aleatórios de 128 bits) para o xauth -

-
-

- mesg -

-
-

- Controla se outras(os) usuárias(os) podem enviar - mensagens para o terminal da(o) usuária(o) atual -

-
-

- mkfs -

-
-

- Constrói um sistema de arquivos em um dispositivo - (geralmente uma partição de disco rígido) -

-
-

- mkfs.bfs -

-
-

- Cria um sistema de arquivos Santa Cruz Operations - (SCO) bfs -

-
-

- mkfs.cramfs -

-
-

- Cria um sistema de arquivos cramfs -

-
-

- mkfs.minix -

-
-

- Cria um sistema de arquivos Minix -

-
-

- mkswap -

-
-

- Inicializa dispositivo ou arquivo dado para ser - usado como uma área de troca -

-
-

- more -

-
-

- Um filtro para paginar ao longo de texto uma tela - de cada vez -

-
-

- mount -

-
-

- Anexa o sistema de arquivos no dispositivo dado a - um diretório especificado na árvore do sistema de - arquivos -

-
-

- mountpoint -

-
-

- Verifica se o diretório é um ponto de montagem -

-
-

- namei -

-
-

- Mostra os links simbólicos nos nomes de caminho - dados -

-
-

- nsenter -

-
-

- Executa um aplicativo com espaços de nome de outros - processos -

-
-

- partx -

-
-

- Informa ao kernel sobre a presença e numeração de - partições no disco -

-
-

- pivot_root -

-
-

- Torna o sistema de arquivos dado o novo sistema de - arquivos raiz do processo atual -

-
-

- prlimit -

-
-

- Obtém e configura um limite de recursos do processo -

-
-

- readprofile -

-
-

- Lê informação de perfil do kernel -

-
-

- rename -

-
-

- Renomeia os arquivos dados, substituindo uma - sequência de caracteres dada por outra -

-
-

- renice -

-
-

- Altera a prioridade de processos em execução -

-
-

- resizepart -

-
-

- Pede ao kernel Linux para redimensionar uma - partição -

-
-

- rev -

-
-

- Inverte as linhas de um arquivo dado -

-
-

- rkfill -

-
-

- Ferramenta para habilitar e desabilitar - dispositivos sem fios -

-
-

- rtcwake -

-
-

- Usado para entrar em um estado de suspensão do - sistema até o horário de ativação especificado -

-
-

- script -

-
-

- Cria um texto datilografado de uma sessão de - terminal -

-
-

- scriptlive -

-
-

- Reexecuta textos datilografados de sessão usando - informação de tempo -

-
-

- scriptreplay -

-
-

- Reproduz textos datilografados usando informações - de tempo -

-
-

- setarch -

-
-

- Muda a arquitetura relatada em um novo ambiente de - aplicativo e configura sinalizadores de - personalidade -

-
-

- setsid -

-
-

- Executa o aplicativo dado em uma nova sessão -

-
-

- setterm -

-
-

- Configura atributos do terminal -

-
-

- sfdisk -

-
-

- Um manipulador de tabela de partição de disco -

-
-

- sulogin -

-
-

- Permite root se - logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) -

-
-

- swaplabel -

-
-

- Permite modificar o UUID e rótulo da área de troca -

-
-

- swapoff -

-
-

- Desabilita dispositivos e arquivos para paginação e - troca -

-
-

- swapon -

-
-

- Habilita dispositivos e arquivos para paginação e - troca e lista os dispositivos e arquivos atualmente - em uso -

-
-

- switch_root -

-
-

- Alterna para outro sistema de arquivos como a raiz - da árvore de montagem -

-
-

- taskset -

-
-

- Recupera ou configura uma afinidade de CPU do - processo -

-
-

- uclampset -

-
-

- Manipula os atributos de fixação de utilização do - sistema ou um processo -

-
-

- ul -

-
-

- Um filtro para traduzir sublinhados em sequências - de escape indicando sublinhamento para o terminal - em uso -

-
-

- umount -

-
-

- Desconecta um sistema de arquivos da árvore de - arquivos do sistema -

-
-

- uname26 -

-
-

- Um link simbólico para setarch -

-
-

- unshare -

-
-

- Executa um aplicativo com alguns espaços de nome - não compartilhados oriundos do pai -

-
-

- utmpdump -

-
-

- Exibe o conteúdo do arquivo de login dado em um - formato mais amigável para a(o) usuária(o) -

-
-

- uuidd -

-
-

- Um daemon usado pela biblioteca UUID para gerar - UUIDs baseados em horário em uma forma segura e - garantidamente única -

-
-

- uuidgen -

-
-

- Cria novos UUIDs. Cada novo UUID pode razoavelmente - ser considerado único entre todos os UUIDs criados, - no sistema local e em outros sistemas, no passado e - no futuro -

-
-

- uuidparse -

-
-

- Um utilitário para analisar identificadores únicos -

-
-

- wall -

-
-

- Exibe o conteúdo de um arquivo ou, por padrão, a - entrada padrão dele, nos terminais de todas(os) - as(os) usuárias(os) logadas(os) atualmente -

-
-

- wdctl -

-
-

- Mostra a situação de vigilante de hardware -

-
-

- whereis -

-
-

- Relata o local do binário, fonte e página de manual - para o comando dado -

-
-

- wipefs -

-
-

- Limpa uma assinatura de sistema de arquivos a - partir de um dispositivo -

-
-

- x86_64 -

-
-

- Um link simbólico para setarch -

-
-

- zramctl -

-
-

- Um aplicativo para configurar e controlar - dispositivos zram (disco ram comprimido) -

-
-

- libblkid -

-
-

- Contém rotinas para identificação de dispositivo e - extração de token -

-
-

- libfdisk -

-
-

- Contém rotinas para manipular tabelas de partição -

-
-

- libmount -

-
-

- Contém rotinas para montagem e desmontagem de - dispositivo de bloco -

-
-

- libsmartcols -

-
-

- Contém rotinas para auxiliar a saída de tela em - forma de tabela -

-
-

- libuuid -

-
-

- Contém rotinas para gerar identificadores únicos - para objetos que talvez sejam acessíveis além do - sistema local -

-
-
-
-
-
-
-
-
-

- 8.73. E2fsprogs-1.46.5 -

-
-
-
-
-

- O pacote e2fsprogs contém os utilitários para lidar com o - sistema de arquivos ext2. Ele - também suporta os sistemas de arquivos de registro em diário - ext3 e ext4. -

-
-
-
- Tempo aproximado de - construção: 4,4 UPC em um - disco giratório, 1,3 UPC em um SSD -
-
- Espaço em disco - exigido: 93 MB -
-
-
-
-
-

- 8.73.1. Instalação do E2fsprogs -

-

- A documentação do e2fsprogs recomenda que o pacote seja - construído em um subdiretório da árvore do fonte: -

-
mkdir -v build
-cd       build
-

- Prepare e2fsprogs para compilação: -

-
../configure --prefix=/usr           \
-             --sysconfdir=/etc       \
-             --enable-elf-shlibs     \
-             --disable-libblkid      \
-             --disable-libuuid       \
-             --disable-uuidd         \
-             --disable-fsck
-
-

- O significado das opções de configure: -

-
-
- --enable-elf-shlibs -
-
-

- Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. -

-
-
- --disable-* -
-
-

- Isso evita que e2fsprogs construa e instale as - bibliotecas libuuid e - libblkid, o daemon - uuidd, e o encapsulador - fsck, uma - vez que o util-linux instala versões mais recentes. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar os testes, execute: -

-
make check
-

- Um teste, u_direct_io, é conhecido por falhar em alguns - sistemas. -

-

- Instale o pacote: -

-
make install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
-

- Esse pacote instala um arquivo gzipado .info, mas não atualiza o arquivo do - sistema dir. Descompacte esse - arquivo e então atualize o arquivo do sistema dir usando os seguintes comandos: -

-
gunzip -v /usr/share/info/libext2fs.info.gz
-install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
-

- Se desejado, crie e instale alguma documentação adicional - executando os seguintes comandos: -

-
makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
-install -v -m644 doc/com_err.info /usr/share/info
-install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
-
-
-

- 8.73.2. Conteúdo do E2fsprogs -

-
-
-
- Aplicativos instalados: - badblocks, chattr, compile_et, - debugfs, dumpe2fs, e2freefrag, e2fsck, e2image, e2label, - e2mmpstatus, e2scrub, e2scrub_all, e2undo, e4crypt, - e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, - logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs -
-
- Bibliotecas instaladas: - libcom_err.so, libe2p.so, - libext2fs.so e libss.so -
-
- Diretórios instalados: - /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, - /usr/share/et e /usr/share/ss -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- badblocks -

-
-

- Pesquisa em um dispositivo (geralmente uma partição - de disco) por blocos defeituosos -

-
-

- chattr -

-
-

- Muda os atributos de arquivos em um sistema de - arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em - diário dos sistemas de arquivos ext2 -

-
-

- compile_et -

-
-

- Um compilador de tabela de erro; ele converte uma - tabela de nomes de códigos de erros e mensagens em - um arquivo fonte C adequado para uso com a - biblioteca com_err -

-
-

- debugfs -

-
-

- Um depurador de sistema de arquivo; ele pode ser - usado para examinar e mudar o estado de um sistema - de arquivos ext2 -

-
-

- dumpe2fs -

-
-

- Imprime informação de superblocos e grupo de blocos - para o sistema de arquivos presente em um - dispositivo dado -

-
-

- e2freefrag -

-
-

- Relata informação de fragmentação de espaço livre -

-
-

- e2fsck -

-
-

- É usado para verificar, e opcionalmente reparar - sistemas de arquivos ext2 e sistemas de arquivos - ext3 -

-
-

- e2image -

-
-

- É usado para salvar dados críticos de sistema de - arquivos ext2 para - um arquivo -

-
-

- e2label -

-
-

- Exibe ou muda o rótulo de sistema de arquivos no - sistema de arquivos ext2 presente em um dispositivo - dado -

-
-

- e2mmpstatus -

-
-

- Verifica situação de MMP de um sistema de arquivos - ext4 -

-
-

- e2scrub -

-
-

- Verifica o conteúdo de um sistema de arquivos - ext[234] montado -

-
-

- e2scrub_all -

-
-

- Verifica todos os sistemas de arquivos ext[234] - montados para erros -

-
-

- e2undo -

-
-

- Reexecuta o registro de desfazer undo_log para um - sistema de arquivos ext2/ext3/ext4 encontrado em um - dispositivo [Isso pode ser usado para desfazer uma - operação falha por um aplicativo do e2fsprogs] -

-
-

- e4crypt -

-
-

- Utilitário de encriptação de sistema de arquivos - ext4 -

-
-

- e4defrag -

-
-

- Desfragmentador online para sistemas de arquivo - ext4 -

-
-

- filefrag -

-
-

- Relatórios sobre quão fragmentado um arquivo - específico pode estar -

-
-

- fsck.ext2 -

-
-

- Por padrão verifica sistemas de arquivo - ext2 e é um hard - link para e2fsck -

-
-

- fsck.ext3 -

-
-

- Por padrão verifica sistemas de arquivo - ext3 e é um hard - link para e2fsck -

-
-

- fsck.ext4 -

-
-

- Por padrão verifica sistemas de arquivo - ext4 e é um hard - link para e2fsck -

-
-

- logsave -

-
-

- Salva a saída de um comando em um arquivo de - registro -

-
-

- lsattr -

-
-

- Lista os atributos de arquivos em um segundo - sistema de arquivos estendido -

-
-

- mk_cmds -

-
-

- Converte uma tabela de nomes de comando e mensagens - de ajuda em um arquivo fonte C adequado para uso - com a biblioteca de subsistema libss -

-
-

- mke2fs -

-
-

- Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado -

-
-

- mkfs.ext2 -

-
-

- Por padrão cria sistemas de arquivos ext2 e é um hard link para - mke2fs -

-
-

- mkfs.ext3 -

-
-

- Por padrão cria sistemas de arquivos ext3 e é um hard link para - mke2fs -

-
-

- mkfs.ext4 -

-
-

- Por padrão cria sistemas de arquivos ext4 e é um hard link para - mke2fs -

-
-

- mklost+found -

-
-

- Usado para criar um diretório lost+found em um sistema de - arquivos ext2; ele - pré-aloca blocos de disco para esse diretório para - facilitar a tarefa do e2fsck -

-
-

- resize2fs -

-
-

- Pode ser usado para alargar ou estreitar um sistema - de arquivos ext2 -

-
-

- tune2fs -

-
-

- Ajusta parâmetros ajustáveis de sistema de arquivos - em um sistema de arquivos ext2 -

-
-

- libcom_err -

-
-

- A rotina comum de exibição de erro -

-
-

- libe2p -

-
-

- Usado por dumpe2fs, - chattr e - lsattr -

-
-

- libext2fs -

-
-

- Contém rotinas para habilitar aplicativos de nível - de usuária(o) para lidar com um sistema de arquivos - ext2 -

-
-

- libss -

-
-

- Usado por debugfs -

-
-
-
-
-
-
-
-
-

- 8.74. Sysklogd-1.5.1 -

-
-
-
-
-

- O pacote sysklogd contém aplicativos para registrar mensagens - de sistema, tais como aquelas dadas pelo kernel quando coisas - incomuns acontecem. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 0,6 MB -
-
-
-
-
-

- 8.74.1. Instalação do Sysklogd -

-

- Primeiro, conserte problemas que causam uma falha de - segmentação sob certas condições em klogd e conserte uma - construção obsoleta de aplicativo: -

-
sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
-sed -i 's/union wait/int/' syslogd.c
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make BINDIR=/sbin install
-
-
-

- 8.74.2. - Configurando Sysklogd -

-

- Crie um novo arquivo /etc/syslog.conf executando o seguinte: -

-
cat > /etc/syslog.conf << "EOF"
-# Begin /etc/syslog.conf
-
-auth,authpriv.* -/var/log/auth.log
-*.*;auth,authpriv.none -/var/log/sys.log
-daemon.* -/var/log/daemon.log
-kern.* -/var/log/kern.log
-mail.* -/var/log/mail.log
-user.* -/var/log/user.log
-*.emerg *
-
-# End /etc/syslog.conf
-EOF
-
-
-

- 8.74.3. Conteúdo do Sysklogd -

-
-
-
- Aplicativos instalados: - klogd e syslogd -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- klogd -

-
-

- Um daemon de sistema para interceptar e registrar - mensagens do kernel -

-
-

- syslogd -

-
-

- Registra as mensagens que aplicativos do sistema - oferecem para registro [Cada mensagem registrada - contém pelo menos uma marca de data e um nome de - dispositivo, e normalmente o nome do aplicativo - também, mas isso depende do quão confiável o daemon - de registro é dito ser] -

-
-
-
-
-
-
-
-
-

- 8.75. Sysvinit-3.01 -

-
-
-
-
-

- O pacote Sysvinit contém aplicativos para controlar a - inicialização, execução e desligamento do sistema. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 1,4 MB -
-
-
-
-
-

- 8.75.1. Instalação do Sysvinit -

-

- Primeiro, aplique uma correção que remove vários aplicativos - instalados por outros pacotes, esclarece uma mensagem, e - conserta um aviso de compilador: -

-
patch -Np1 -i ../sysvinit-3.01-consolidated-1.patch
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.75.2. Conteúdo do Sysvinit -

-
-
-
- Aplicativos instalados: - bootlogd, fstab-decode, halt, init, - killall5, poweroff (link para halt), reboot (link para - halt), runlevel, shutdown e telinit (link para - init) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bootlogd -

-
-

- Registra mensagens de inicialização para um arquivo - de registro -

-
-

- fstab-decode -

-
-

- Executa um comando com argumentos codificados para - fstab -

-
-

- halt -

-
-

- Normalmente invoca shutdown com a - opção -h, - exceto quando já em nível de execução 0, então ele - diz ao kernel para parar o sistema; ele anota no - arquivo /var/log/wtmp - que o sistema está sendo desligado -

-
-

- init -

-
-

- O primeiro processo a ser iniciado quando o kernel - inicializou o hardware e que assume o processo de - inicialização e inicia todos os processos - especificados no arquivo de configuração dele -

-
-

- killall5 -

-
-

- Envia um sinal para todos os processos, exceto os - processos na própria sessão dele, de modo que ele - não matará o shell pai dele -

-
-

- poweroff -

-
-

- Diz ao kernel para parar o sistema e desligar o - computador (veja halt) -

-
-

- reboot -

-
-

- Diz ao kernel para reinicializar o sistema (veja - halt) -

-
-

- runlevel -

-
-

- Relata o nível de execução anterior e o atual, - conforme anotado no último registro de nível de - execução em /run/utmp -

-
-

- shutdown -

-
-

- Desliga o sistema de maneira segura, sinalizando - todos os processos e notificando todas(os) as(os) - usuárias(os) logadas(os) -

-
-

- telinit -

-
-

- Diz ao init para qual - nível de execução mudar -

-
-
-
-
-
-
-
-
-

- 8.76. Acerca dos - Símbolos de Depuração -

-
-
-
-

- A maioria dos aplicativos e bibliotecas é, por padrão, - compilada com símbolos de depuração incluídos (com opção - -g do gcc). Isso significa que - quando depurar um aplicativo ou biblioteca que foi compilado - com informação de depuração, o depurador pode fornecer não - apenas endereços de memória, mas também os nomes das rotinas e - variáveis. -

-

- Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um - exemplo da quantidade de espaço que esses símbolos ocupam: -

-
-
    -
  • -

    - Um binário bash com símbolos de - depuração: 1200 KB -

    -
  • -
  • -

    - Um binário bash sem símbolos de - depuração: 480 KB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de depuração: 87 - MB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB -

    -
  • -
-
-

- Tamanhos talvez variem dependendo de qual compilador e - biblioteca C foram usados, mas quando comparar aplicativos com - e sem símbolos de depuração, a diferença geralmente será um - fator entre dois e cinco. -

-

- Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco - pode ser recuperado removendo esses símbolos. A próxima seção - mostra como remover todos os símbolos de depuração dos - aplicativos e bibliotecas. -

-
-
-
-
-
-

- 8.77. Despojando -

-
-
-
-

- Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for - uma(m) programadora(r) e não planeja fazer qualquer depuração - nos aplicativos do sistema, então o tamanho do sistema pode ser - reduzido em cerca de 2 GB removendo os símbolos de depuração de - binários e bibliotecas. Isso não causa nenhum inconveniente - além de não mais poder depurar os aplicativos completamente. -

-

- A maioria das pessoas que usam os comandos mencionados abaixo - não experimenta quaisquer dificuldades. Entretanto, é fácil - cometer um erro de digitação e tornar o novo sistema - inutilizável, de forma que, antes de executar os comandos - strip, é uma boa - ideia produzir uma cópia de segurança do sistema LFS no estado - atual dele. -

-

- Os símbolos de depuração para bibliotecas selecionadas estão - colocados em arquivos separados. Essa informação de depuração é - necessária se executar testes de regressão que usam - valgrind ou - gdb posteriormente em BLFS. -

-

- Observe que strip - sobrescreverá o arquivo de binário ou biblioteca que ele está - processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o - strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. - Para evitar isso, nós copiaremos algumas bibliotecas e binários - para /tmp, despojaremos elas lá, - e instalaremos elas de volta com o comando install. Leia a entrada - relacionada em Seção 8.2.1, - “Problemas de Atualização” para a justificativa - para usar o comando install aqui. -

-
-

- Nota -

-

- O nome do carregador de ELF é ld-linux-x86-64.so.2 em - sistemas de 64 bits e ld-linux.so.2 em sistemas de 32 bits. A - construção abaixo seleciona o nome correto para a arquitetura - atual. -

-
-
save_usrlib="$(cd /usr/lib; ls ld-linux*)
-             libc.so.6
-             libthread_db.so.1
-             libquadmath.so.0.0.0
-             libstdc++.so.6.0.29
-             libitm.so.1.0.0
-             libatomic.so.1.2.0"
-
-cd /usr/lib
-
-for LIB in $save_usrlib; do
-    objcopy --only-keep-debug $LIB $LIB.dbg
-    cp $LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-online_usrbin="bash find strip"
-online_usrlib="libbfd-2.38.so
-               libhistory.so.8.1
-               libncursesw.so.6.3
-               libm.so.6
-               libreadline.so.8.1
-               libz.so.1.2.11
-               $(cd /usr/lib; find libnss*.so* -type f)"
-
-for BIN in $online_usrbin; do
-    cp /usr/bin/$BIN /tmp/$BIN
-    strip --strip-unneeded /tmp/$BIN
-    install -vm755 /tmp/$BIN /usr/bin
-    rm /tmp/$BIN
-done
-
-for LIB in $online_usrlib; do
-    cp /usr/lib/$LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/lib -type f -name \*.a)                 \
-         $(find /usr/{bin,sbin,libexec} -type f); do
-    case "$online_usrbin $online_usrlib $save_usrlib" in
-        *$(basename $i)* )
-            ;;
-        * ) strip --strip-unneeded $i
-            ;;
-    esac
-done
-
-unset BIN LIB save_usrlib online_usrbin online_usrlib
-
-

- Um número grande de arquivos serão relatados como tendo o - formato de arquivo deles não reconhecido. Esses avisos podem - ser seguramente ignorados. Eles indicam que aqueles arquivos - são scripts em vez de binários. -

-
-
-
-
-
-

- 8.78. Limpando -

-
-
-
-

- Finalmente, limpe alguns arquivos extra deixados pela execução - de testes: -

-
rm -rf /tmp/*
-

- Existem também muitos arquivos instalados nos diretórios - /usr/lib e /usr/libexec com uma extensão de nome de arquivo de - .la. Esses são arquivos "libtool archive". Como já dito, eles - somente são úteis quando vincular com bibliotecas estáticas. - Eles são desnecessários, e potencialmente danosos, quando se - usar bibliotecas compartilhadas dinâmicas, especialmente quando - se usar também sistemas de construção não autotools. Para - remover eles, execute: -

-
find /usr/lib /usr/libexec -name \*.la -delete
-

- Para mais informação acerca de arquivos libtool archive, veja a - - seção de BLFS "About Libtool Archive (.la) files". -

-

- O compilador construído em Capítulo 6 - e - Capítulo 7 ainda está instalado parcialmente e não é - mais necessário. Remova ele com: -

-
find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf
-

- Por fim, remova a conta de usuária(o) 'tester' temporária - criada no início do capítulo anterior. -

-
userdel -r tester
-
-
-
-
-
-
-

- Capítulo 9. Configuração do - Sistema -

-
-
-
-
-
-
-
-

- 9.1. Introdução -

-
-
-
-

- Inicializar um sistema Linux envolve muitas tarefas. O processo - precisa montar ambos sistemas de arquivos virtual e real, - inicializar dispositivos, ativar a troca, verificar sistemas de - arquivos para integridade, montar quaisquer partições ou - arquivos de troca, configurar o relógio do sistema, ativar - rede, iniciar quaisquer daemons exigidos pelo sistema, e - realizar quaisquer outras tarefas personalizadas necessitadas - pela(o) usuária(o). Esse processo precisa estar organizado para - garantir que as tarefas sejam realizadas na ordem correta, - porém, ao mesmo tempo, ser executado o mais rápido possível. -

-
-

- 9.1.1. System V -

-

- System V é o processo de inicialização clássico que tem sido - usado em sistemas Unix e semelhantes a Unix, tais como Linux, - desde cerca de 1983. Ele consiste de um aplicativo pequeno, - init, que - configura aplicativos básicos, tais como login (via getty), e - executa um script. Esse script, usualmente chamado de - rc, controla a - execução de um conjunto de scripts adicionais que realizam as - tarefas exigidas para inicializar o sistema. -

-

- O aplicativo init é controlado pelo - arquivo /etc/inittab e está - organizado em níveis de execução que podem ser executados - pela(o) usuária(o): -

-
-

- 0 — parar
- 1 — Modo de usuária(o) única(o)
- - 2 — Multiusuária(o), sem rede
- - 3 — Modo de multiusuária(o) completo
- - 4 — Definível pela(o) usuária(o)
- - 5 — Modo de multiusuária(o) completo com gerenciador de tela
- - 6 — reinicializar -

-
-

- O nível de execução padrão usual é 3 ou 5. -

-

- Vantagens -

-
-
    -
  • -

    - Sistema estabelecido, bem compreendido. -

    -
  • -
  • -

    - Fácil de personalizar. -

    -
  • -
-
-

- Desvantagens -

-
-
    -
  • -

    - Talvez seja mais lento inicializar. Um sistema LFS - básico de velocidade média toma de 8 a 12 segundos, - onde o tempo de inicialização é medido desde a primeira - mensagem do kernel até o prompt de login. A - conectividade de rede tipicamente é estabelecida cerca - de 2 segundos após o prompt de login. -

    -
  • -
  • -

    - Processamento em série de tarefas de inicialização. - Isso está relacionado ao ponto anterior. Um atraso em - qualquer processo, tal como uma verificação de sistema - de arquivos, atrasará o processo de inicialização - inteiro. -

    -
  • -
  • -

    - Não suporta diretamente características avançadas, como - grupos de controle (cgroups), e agendamento de - compartilhamento justo por usuária(o). -

    -
  • -
  • -

    - Adicionar scripts exige decisões de sequenciamento - estático, manuais. -

    -
  • -
-
-
-
-
-
-
-
-

- 9.2. - LFS-Bootscripts-20210608 -

-
-
-
-
-

- O pacote LFS-Bootscripts contém um conjunto de scripts para - iniciar/parar o sistema LFS na inicialização/desligamento. Os - arquivos de configuração e procedimentos necessários para - personalizar o processo de inicialização estão descritos nas - seções seguintes. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 244 KB -
-
-
-
-
-

- 9.2.1. Instalação do LFS-Bootscripts -

-

- Instale o pacote: -

-
make install
-
-
-

- 9.2.2. Conteúdo do LFS-Bootscripts -

-
-
-
- Scripts instalados: - checkfs, cleanfs, console, - functions, halt, ifdown, ifup, localnet, modules, - mountfs, mountvirtfs, network, rc, reboot, sendsignals, - setclock, ipv4-static, swap, sysctl, sysklogd, template, - udev e udev_retry -
-
- Diretórios instalados: - /etc/rc.d, /etc/init.d (link - simbólico), /etc/sysconfig, /lib/services e /lib/lsb - (link simbólico) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- checkfs -

-
-

- Verifica a integridade dos sistemas de arquivos - antes que eles sejam montados (com a exceção dos - sistemas de arquivos baseados em diário e rede) -

-
-

- cleanfs -

-
-

- Remove os arquivos que não deveriam ser preservados - entre as reinicializações, tais como aqueles em - /run/ e /var/lock/; ele recria - /run/utmp e remove os - arquivos possivelmente presentes /etc/nologin, /fastboot e /forcefsck -

-
-

- console -

-
-

- Carrega a tabela de mapa de tecla correta para o - esquema de teclado desejado; ele também configura a - fonte de tela -

-
-

- functions -

-
-

- Contém funções comuns, tais como de verificação de - erro e situação, que são usadas por diversos - scripts de inicialização -

-
-

- halt -

-
-

- Para o sistema -

-
-

- ifdown -

-
-

- Para um dispositivo de rede -

-
-

- ifup -

-
-

- Inicializa um dispositivo de rede -

-
-

- localnet -

-
-

- Configura o nome de dispositivo do sistema e - dispositivo de loopback local -

-
-

- modules -

-
-

- Carrega módulos do kernel listados em /etc/sysconfig/modules, usando - argumentos que também são dados lá -

-
-

- mountfs -

-
-

- Monta todos os sistemas de arquivos, exceto os que - estão marcados como noauto ou são baseados - em rede -

-
-

- mountvirtfs -

-
-

- Monta os sistemas de arquivos do kernel virtuais, - tais como o proc -

-
-

- network -

-
-

- Configura as interfaces de rede, tais como placas - de rede, e configura o gateway padrão (onde - aplicável) -

-
-

- rc -

-
-

- O script de controle de nível de execução mestre; - ele é responsável por executar todos os outros - scripts de inicialização, um por um, em uma - sequência determinada pelo nome dos links - simbólicos sendo processados -

-
-

- reboot -

-
-

- Reinicializa o sistema -

-
-

- sendsignals -

-
-

- Garante que cada processo seja terminado antes que - o sistema reinicialize ou pare -

-
-

- setclock -

-
-

- Reconfigura o relógio do kernel para hora local - quando o relógio do hardware não está configurado - para hora UTC -

-
-

- ipv4-static -

-
-

- Fornece a funcionalidade necessária para atribuir - um endereço Internet Protocol (IP) estático para - uma interface de rede -

-
-

- swap -

-
-

- Habilita e desabilita arquivos e partições de troca -

-
-

- sysctl -

-
-

- Carrega valores de configuração de sistema a partir - do /etc/sysctl.conf, - se esse arquivo existir, para dentro do kernel em - execução -

-
-

- sysklogd -

-
-

- Inicia e para os daemons de registro do sistema e - kernel -

-
-

- template -

-
-

- Um modelo para criar scripts de inicialização - personalizados para outros daemons -

-
-

- udev -

-
-

- Prepara o diretório /dev e inicia o Udev -

-
-

- udev_retry -

-
-

- Tenta novamente uevents do udev que falharam, e - copia arquivos de regras gerados de /run/udev para /etc/udev/rules.d se exigido -

-
-
-
-
-
-
-
-
-

- 9.3. Visão Geral do Manuseio - de Dispositivos e Módulos -

-
-
-
-

- No Capítulo 8, - nós instalamos o pacote udev quando eudev foi construído. Antes de entrarmos em - detalhes referentes a como isso funciona, um histórico breve - dos métodos anteriores de manuseio de dispositivos é oportuno. -

-

- Sistemas Linux em geral tradicionalmente usavam um método de - criação de dispositivo estático, pelo qual muitos nós de - dispositivos eram criados sob /dev (as vezes literalmente milhares de nós), - independente de se os dispositivos de hardware correspondentes - atualmente existissem. Isso tipicamente era feito via um script - MAKEDEV, o qual - contém um número de chamadas ao aplicativo mknod com os números de - dispositivo principal e secundário relevantes para cada - dispositivo possível que pudesse existir no mundo. -

-

- Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para - eles. Como esses nós de dispositivo serão criados a cada vez - que o sistema inicializar, eles serão armazenados em um sistema - de arquivos devtmpfs (um - sistema de arquivos virtual que reside inteiramente na memória - do sistema). Nós de dispositivo não exigem muito espaço, de - forma que a memória que é usada é insignificante. -

-
-

- 9.3.1. Histórico -

-

- Em fevereiro 2000, um novo sistema de arquivos chamado - devfs foi mesclado no kernel - 2.3.46 e foi feito disponível durante as séries 2.4 de - kernels estáveis. Embora ele estivesse presente no próprio - fonte do kernel, esse método de criar dispositivos - dinamicamente nunca recebeu suporte decisivo das(os) - desenvolvedoras(es) do kernel centrais. -

-

- O problema principal com a abordagem adotada pelo - devfs era a maneira como ele - lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, - era talvez o mais crítico. É aceito geralmente que, se nomes - de dispositivo são passíveis de serem configuráveis, então a - política de nomenclatura de dispositivo esteja a cargo de - uma(m) administradora(r) do sistema, não imposta sobre - elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com algumas condições - que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou - marcado como obsoleto por um longo período – e foi - finalmente removido do kernel em junho de 2006. -

-

- Com o desenvolvimento da árvore do kernel 2.5 instável, - liberada posteriormente como as séries 2.6 dos kernels - estáveis, um novo sistema de arquivos virtual chamado - sysfs veio a existir. O - trabalho do sysfs é o de - exportar uma visão da configuração de hardware do sistema - para processos de espaço de usuária(o). Com essa - representação visível ao espaço de usuária(o), a - possibilidade de desenvolvimento de um substituto de espaço - de usuária(o) para o devfs - tornou-se muito mais realista. -

-
-
-

- 9.3.2. Implementação do Udev -

-
-
-
-
-

- 9.3.2.1. Sysfs -

-
-
-
-

- O sistema de arquivos sysfs - foi mencionado brevemente acima. Alguém talvez questione - como o sysfs sabe sobre os - dispositivos presentes em um sistema e quais números de - dispositivo deveriam ser usados para eles. Controladores - que tenham sido compilados diretamente no kernel registram - os objetos deles com um sysfs (devtmpfs internamente) assim que - eles são detectados pelo kernel. Para controladores - compilados como módulos, esse registro acontecerá quando o - módulo for carregado. Assim que o sistema de arquivos - sysfs for montado (em - /sys), os dados os quais os controladores registram com - sysfs ficam disponíveis - para os processos de espaço de usuária(o) e para udevd para - processamento (incluindo modificações para nós de - dispositivo). -

-
-
-
-
-
-

- 9.3.2.2. Criação de Nó de - Dispositivo -

-
-
-
-

- Arquivos de dispositivo são criados pelo kernel por meio do - sistema de arquivos devtmpfs. Qualquer controlador que - deseje registrar um nó de dispositivo usará o devtmpfs (via o núcleo do controlador) - para fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de dispositivo inicialmente - será criado com um nome, permissões e proprietária(o) - fixos. -

-

- Pouco tempo depois, o kernel enviará um uevent para - udevd. - Baseado nas regras especificadas nos arquivos dentro dos - diretórios /etc/udev/rules.d, - /usr/lib/udev/rules.d e - /run/udev/rules.d, - udevd criará - links simbólicos adicionais para o nó de dispositivo, ou - mudará as permissões, proprietária(o), ou grupo deles, ou - modificará a entrada de banco de dados do udevd interna (nome) para - aquele objeto. -

-

- As regras nesses três diretórios são numeradas e todos os - três diretórios são mesclados. Se udevd não puder encontrar - uma regra para o dispositivo que ele está criando, então - ele deixará as permissões e propriedade no que devtmpfs usou inicialmente. -

-
-
-
-
-
-

- 9.3.2.3. Carregamento de - Módulo -

-
-
-
-

- Controladores de dispositivo compilados como módulos talvez - tenham apelidos construídos dentro deles. Apelidos são - visíveis na saída do aplicativo modinfo e geralmente - estão relacionados aos identificadores específicos ao - barramento dos dispositivos suportados por um módulo. Por - exemplo, o controlador snd-fm801 suporta dispositivos - PCI com ID de fornecedor 0x1319 e ID de dispositivo 0x0801, - e tem um apelido de pci:v00001319d00000801sv*sd*bc04sc01i*. - Para a maioria dos dispositivos, o controlador de - barramento exporta o apelido do controlador que lidaria com - o dispositivo via sysfs. - Por exemplo, o arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias - pode conter a sequência de caracteres pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. - As regras padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser o mesmo que o - conteúdo do arquivo modalias - em sysfs), dessa forma carregando todos os módulos cujos - apelidos correspondem a essa sequência de caracteres depois - da expansão de carácter curinga. -

-

- Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele - estiver disponível. Veja abaixo maneiras pelas quais o - carregamento de controladores indesejados pode ser evitado. -

-

- O próprio kernel também é capaz de carregar módulos para - protocolos de rede, sistemas de arquivos e suporte NLS sob - demanda. -

-
-
-
-
-
-

- 9.3.2.4. Lidando com - Dispositivos Plugáveis a Quente/Dinâmicos -

-
-
-
-

- Quando você conecta um dispositivo, como um tocador de MP3 - Universal Serial Bus (USB), o kernel reconhece que o - dispositivo agora está conectado e gera um uevent. Esse - uevent é então tratado pelo udevd como descrito - acima. -

-
-
-
-

- 9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos -

-

- Existem uns poucos possíveis problemas quando se trata de - criar automaticamente nós de dispositivos. -

-
-
-
-
-

- 9.3.3.1. Um módulo do kernel não - é carregado automaticamente -

-
-
-
-

- O Udev só carregará um módulo se ele tiver um apelido - específico a barramento e o controlador de barramento - exportar adequadamente os apelidos necessários para - sysfs. Em outros casos, - deve-se organizar o carregamento de módulo por outros - meios. Com o Linux-5.16.9, udev é conhecido por carregar - controladores escritos adequadamente para dispositivos - INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. -

-

- Para determinar se o controlador de dispositivo que você - exige tem o suporte necessário para udev, execute - modinfo com o - nome de módulo como o argumento. Agora tente localizar o - diretório de dispositivo sob /sys/bus e verifique se existe um arquivo - modalias lá. -

-

- Se o arquivo modalias existir - em sysfs, então o - controlador suporta o dispositivo e pode falar com ele - diretamente, mas não tem o apelido, isso é um defeito no - controlador. Carregue o controlador sem a ajuda do udev e - espere que o problema seja consertado posteriormente. -

-

- Se não existir arquivo modalias no diretório relevante sob - /sys/bus, então isso - significa que as(os) desenvolvedoras(es) do kernel ainda - não adicionaram suporte modalias para esse tipo de - barramento. Com Linux-5.16.9, esse é o caso com barramentos - ISA. Espere que esse problema seja consertado em versões do - kernel posteriores. -

-

- Udev não é planejado para carregar controladores - encapsuladores, tais como - snd-pcm-oss, e - controladores não hardware, tais como loop, de maneira alguma. -

-
-
-
-
-
-

- 9.3.3.2. Um módulo do kernel não - é carregado automaticamente, e udev não é planejado - para carregar ele -

-
-
-
-

- Se o módulo encapsulador apenas aprimora a - funcionalidade fornecida por algum outro módulo (por - exemplo, snd-pcm-oss - aprimora a funcionalidade de snd-pcm tornando as placas de - som disponíveis para aplicações OSS), então configure - modprobe para - carregar o encapsulador após o udev carregar o módulo - encapsulado. Para fazer isso, adicione uma linha - softdep ao arquivo - /etc/modprobe.d/<filename>.conf - correspondente. Por exemplo: -

-
softdep snd-pcm post: snd-pcm-oss
-

- Observe que o comando softdep também permite - dependências pre:, ou uma - mistura de ambas as dependências pre: e post:. - Veja-se a página de manual modprobe.d(5) para mais informação sobre - a sintaxe e capacidades softdep. -

-

- Se o módulo em questão não é um encapsulador e é útil por - ele próprio, então configure o script de inicialização - modules para - carregar esse módulo na inicialização do sistema. Para - fazer isso, adicione o nome de módulo ao arquivo - /etc/sysconfig/modules em uma - linha separada. Isso funciona para módulos encapsuladores - também, mas é abaixo do ideal naquele caso. -

-
-
-
-
-
-

- 9.3.3.3. Udev carrega algum - módulo indesejado -

-
-
-
-

- Ou não construa o módulo, ou coloque-o na lista negra em um - arquivo /etc/modprobe.d/blacklist.conf como feito - com o módulo forte - no exemplo abaixo: -

-
blacklist forte
-

- Módulos em listas negras ainda podem ser carregados - manualmente com o comando explícito modprobe. -

-
-
-
-
-
-

- 9.3.3.4. Udev cria um - dispositivo incorretamente, ou faz um link simbólico - errado -

-
-
-
-

- Isso geralmente acontece se uma regra inesperadamente - corresponder com um dispositivo. Por exemplo, uma regra mal - escrita pode corresponder com ambos um disco SCSI (como - desejado) e o dispositivo genérico SCSI correspondente - (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando - udevadm info. -

-
-
-
-
-
-

- 9.3.3.5. Regra do Udev funciona - de forma não confiável -

-
-
-
-

- Isso talvez seja outra manifestação do problema anterior. - Se não, e sua regra usar atributos do sysfs, então isso talvez seja um - problema de temporização do kernel, a ser consertado em - kernels posteriores. Por hora, você pode contornar ele - criando uma regra que aguarda o atributo do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules - (crie esse arquivo se ele não existir). Por favor notifique - a lista LFS Development se você o fizer e isso ajudar. -

-
-
-
-
-
-

- 9.3.3.6. Udev não cria um - dispositivo -

-
-
-
-

- O texto adicional assume que o driver está construído - estaticamente dentro do kernel ou já carregado como um - módulo, e que você já verificou que o udev não cria um - dispositivo mal nomeado. -

-

- Udev não tem informação necessária para criar um nó de - dispositivo se um controlador de kernel não exportar os - dados dele para o sysfs. - Isso é mais comum com controladores terceirizados oriundos - de fora da árvore do kernel. Crie um nó de dispositivo - estático em /usr/lib/udev/devices com os números - principal/secundário apropriados (veja o arquivo - devices.txt dentro da - documentação do kernel ou a documentação fornecida pela(o) - fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. -

-
-
-
-
-
-

- 9.3.3.7. Ordem de nomenclatura - de dispositivo muda aleatoriamente após reinicializar -

-
-
-
-

- Isso é devido ao fato de o udev, pelo projeto, lidar com - uevents e carregar módulos em paralelo, e assim em uma - ordem imprevisível. Isso nunca será consertado. Você não deveria - confiar que os nomes de dispositivos do kernel sejam - estáveis. Em vez disso, crie suas próprias regras que fazem - links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de - série ou a saída dos vários utilitários *_id instalados - pelo udev. Veja-se a Seção 9.4, - “Gerenciando Dispositivos” e Seção 9.5, - “Configuração de Rede Geral” para exemplos. -

-
-
-
-

- 9.3.4. Leitura Útil -

-

- Documentação útil adicional está disponível nos seguintes - sítios: -

- -
-
-
-
-
-
-

- 9.4. Gerenciando - Dispositivos -

-
-
-
-
-

- 9.4.1. Dispositivos de Rede -

-

- Udev, por padrão, nomeia dispositivos de rede de acordo com - dados de Firmware/BIOS ou características físicas como - barramento, slot ou endereço MAC. O propósito dessa convenção - de nomenclatura é o de garantir que dispositivos de rede - sejam nomeados consistentemente e não baseados no horário que - a placa de rede foi descoberta. Por exemplo, em um computador - que tem duas placas de rede feitas por Intel e Realtek, a - placa de rede fabricada pela Intel talvez se torne eth0 e a - placa Realtek se torne eth1. Em alguns casos, após uma - reinicialização as placas poderiam ser renumeradas de maneira - inversa. -

-

- No novo esquema de nomenclatura, nomes de dispositivo de rede - típicos seriam então alguma coisa como enp5s0 ou wlp3s0. Se - essa convenção de nomenclatura não for desejada, então o - esquema de nomenclatura tradicional ou um esquema - personalizado pode ser implementado. -

-
-
-
-
-

- 9.4.1.1. Desabilitando - Nomenclatura Persistente na Linha de Comando do - Kernel -

-
-
-
-

- O esquema de nomenclatura tradicional usando eth0, eth1, - etc., pode ser restaurado adicionando-se net.ifnames=0 na linha de - comando do kernel. Isso é mais apropriado para aqueles - sistemas que tem apenas um dispositivo ethernet do mesmo - tipo. Laptops frequentemente tem múltiplas conexões - ethernet que são nomeadas eth0 e wlan0 e são também - candidatas para esse método. A linha de comando é passada - no arquivo de configuração do GRUB. Veja-se Seção 10.4.4, - “Criando o Arquivo de Configuração do - GRUB”. -

-
-
-
-
-
-

- 9.4.1.2. Criando Regras do Udev - Personalizadas -

-
-
-
-

- O esquema de nomenclatura pode ser personalizado criando-se - regras do udev personalizadas. Um script foi incluído que - gera as regras iniciais. Gere essas regras executando: -

-
bash /usr/lib/udev/init-net-rules.sh
-

- Agora, inspecione o arquivo /etc/udev/rules.d/70-persistent-net.rules, - para descobrir qual nome foi atribuído a qual dispositivo - de rede: -

-
cat /etc/udev/rules.d/70-persistent-net.rules
-
-

- Nota -

-

- Em alguns casos tais como quando endereços MAC foram - atribuídos para uma placa de rede manualmente ou em um - ambiente virtual como Qemu ou Xen, o arquivo de regras de - rede talvez não tenha sido gerado, pois endereços não são - atribuídos consistentemente. Nesses casos, esse método - não pode ser usado. -

-
-

- O arquivo começa com um bloco de comentário seguido por - duas linhas para NIC. A primeira linha para cada NIC é uma - descrição comentada mostrando os IDs de hardware delas (por - exemplo, fornecedor de PCI delas e IDs de dispositivo, se - ela for uma placa PCI), juntamente com o controlador delas - entre parênteses, se o controlador puder ser encontrado. - Nem o ID de hardware nem o controlador é usado para - determinar quais nomes dar para uma interface; essa - informação é apenas para referência. A segunda linha é a - regra do udev que corresponde a essa NIC e atualmente - atribui a ela um nome. -

-

- Todas as regras do udev são compostas de muitas chaves, - separadas por vírgulas e espaços em branco opcionais. Essas - chaves da regra e uma explanação de cada uma delas estão a - seguir: -

-
-
    -
  • -

    - SUBSYSTEM=="net" - Isso - diz a udev para ignorar dispositivos que não sejam - placas de rede. -

    -
  • -
  • -

    - ACTION=="add" - Isso diz - a udev para ignorar essa regra para um uevent que não - seja um adicionar (uevents "remover" e "mudar" também - acontecem, porém não precisam renomear interfaces de - rede). -

    -
  • -
  • -

    - DRIVERS=="?*" - Isso - existe de forma que udev ignorará sub-interfaces VLAN - ou bridge (pois essas sub-interfaces não tem - controladores). Essas sub-interfaces são puladas, - pois o nome que seria atribuído conflitaria com os - dispositivos pais delas. -

    -
  • -
  • -

    - ATTR{address} - O valor - dessa chave é o endereço MAC da NIC. -

    -
  • -
  • -

    - ATTR{type}=="1" - Isso - garante que a regra corresponde apenas à interface - primária no caso de certos controladores sem fios os - quais criam múltiplas interfaces virtuais. As - interfaces secundárias são puladas pela mesma razão - que sub-interfaces VLAN e bridge são puladas: - existiria um conflito de nome do contrário. -

    -
  • -
  • -

    - NAME - O valor dessa - chave é o nome que udev atribuirá para essa - interface. -

    -
  • -
-
-

- O valor de NAME é a parte - importante. Assegure-se de que você sabe qual nome foi - atribuído para cada uma das suas placas de rede antes de - prosseguir, e tenha certeza de usar esse valor NAME quando criar seus arquivos de - configuração abaixo. -

-
-
-
-

- 9.4.2. Links Simbólicos de CD-ROM -

-

- Alguns aplicativos que você talvez queira instalar - posteriormente (por exemplo, vários tocadores de mídia) - esperam que os links simbólicos /dev/cdrom e /dev/dvd existam, e apontem para um - dispositivo de CD-ROM ou DVD-ROM. Também, talvez seja - conveniente colocar referências a esses links simbólicos em - /etc/fstab. Udev vem com um - script que gerará arquivos de regras para criar esses links - simbólicos para você, dependendo das capacidades de cada - dispositivo, mas você precisa decidir qual de dois modos de - operação você deseja ter para o script usar. -

-

- Primeiro, o script pode operar em modo por-caminho (usado por padrão - para dispositivos USB e FireWire), onde as regras que ele - cria dependem do caminho físico para o dispositivo de CD ou - DVD. Segundo, ele pode operar em modo por-id (padrão para dispositivos - IDE e SCSI), onde as regras que ele cria dependem das - sequências de caracteres de identificação armazenadas no - próprio dispositivo de CD ou DVD. O caminho é determinado - pelo script path_id do udev, e as - sequências de caracteres de identificação são lidas a partir - do hardware pelos aplicativos ata_id ou scsi_id dele, dependendo de - qual tipo de dispositivo você tenha. -

-

- Existem vantagens para cada abordagem; a abordagem correta a - usar dependerá de que tipos de mudanças de dispositivo talvez - aconteçam. Se você espera o caminho físico para o dispositivo - (isto é, as portas e (ou) slots aos quais ele se conecta) - mudar, por exemplo porque você planeja mover a unidade para - uma porta IDE diferente ou um conector USB diferente, então - você deveria usar o modo por-id. Por outro lado, se você - espera que a identificação do dispositivo mude, por exemplo - porque ele talvez morra, e você o substituiria por um - dispositivo diferente com as mesmas capacidades e que estaria - plugado nos mesmos conectores, então você deveria usar o modo - por-caminho. -

-

- Se ambos os tipos de mudanças são possíveis com a sua - unidade, então escolha um modo baseado no tipo de mudança que - você espera que aconteça com maior frequência. -

-
-

- Importante -

-

- Dispositivos externos (por exemplo, uma unidade de CD - conectada via USB) não deveria usar persistência por - caminho, porque cada vez que o dispositivo for plugado em - uma nova porta externa, o caminho físico dele mudará. Todos - os dispositivos conectados externamente terão esse problema - se você escrever regras do udev para reconhecê-los pelo - caminho físico deles; o problema não está limitado a - unidades de CD e DVD. -

-
-

- Se você deseja ver os valores que os scripts do udev usarão, - então para o dispositivo de CD-ROM apropriado, encontre o - diretório correspondente sob /sys (por exemplo, isso pode ser - /sys/block/hdd) e execute um - comando similar ao seguinte: -

-
udevadm test /sys/block/hdd
-

- Olhe para as linhas contendo a saída de vários aplicativos - *_id. O modo por-id usará o valor ID_SERIAL - se ele existir e não estiver vazio, do contrário ele usará - uma combinação de ID_MODEL e ID_REVISION. O modo por-caminho usará o valor - ID_PATH. -

-

- Se o modo padrão não for adequado para a sua situação, então - a seguinte modificação pode ser feita para o arquivo - /etc/udev/rules.d/83-cdrom-symlinks.rules, - como se segue (onde mode é um de por-id ou por-caminho): -

-
sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \
-    -i /etc/udev/rules.d/83-cdrom-symlinks.rules
-

- Observe que não é necessário criar os arquivos de regras ou - links simbólicos neste momento, porque você montou com bind o - diretório do sistema anfitrião /dev dentro do sistema LFS, e nós assumimos - que os links simbólicos existem no anfitrião. As regras e - links simbólicos serão criados na primeira vez que você - inicializar seu sistema LFS. -

-

- Entretanto, se você tiver múltiplos dispositivos de CD-ROM, - então os links simbólicos gerados naquele momento talvez - apontem para dispositivos diferentes dos que eles apontam em - seu anfitrião, porque os dispositivos não são descobertos em - uma ordem previsível. As atribuições criadas quando você - inicializar o sistema LFS pela primeira vez serão estáveis, - de forma que isso é um problema apenas se você precisar dos - links simbólicos em ambos os sistemas para apontar para o - mesmo dispositivo. Se você precisar disso, então inspecione - (e possivelmente edite) o arquivo /etc/udev/rules.d/70-persistent-cd.rules - gerado após a inicialização, para ter certeza que os links - simbólicos atribuídos correspondem ao que você precisa. -

-
-
-

- 9.4.3. Lidando com dispositivos duplicados -

-

- Como explicado na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos”, a ordem na qual dispositivos com a mesma - função aparecem em /dev é - essencialmente aleatória. Por exemplo, se você tem uma câmera - web USB e um sintonizador de TV, as vezes /dev/video0 se refere à câmera e - /dev/video1 se refere ao - sintonizador, e as vezes após uma reinicialização a ordem - muda. Para todas as classes de hardware, exceto placas de som - e placas de rede, isso é consertável criando regras do udev - para links simbólicos persistentes personalizados. O caso das - placas de rede é abordado separadamente na Seção 9.5, - “Configuração de Rede Geral”, e configuração - de placa de som pode ser encontrado em - BLFS. -

-

- Para cada um dos seus dispositivos que é provável ter esse - problema (mesmo que o problema não exista em sua distribuição - Linux atual), encontre o diretório correspondente sob - /sys/class ou /sys/block. Para dispositivos de vídeo, - isso talvez seja /sys/class/video4linux/videoX. Descubra os - atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números - seriais funcionam): -

-
udevadm info -a -p /sys/class/video4linux/video0
-

- Então escreva regras que criam os links simbólicos, por - exemplo: -

-
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
-
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f",  ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-
-EOF
-

- O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se referem aleatoriamente - ao sintonizador e à câmera web (e, portanto, nunca deveriam - ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o - dispositivo correto. -

-
-
-
-
-
-
-

- 9.5. Configuração de Rede - Geral -

-
-
-
-
-

- 9.5.1. Criando Arquivos de Configuração de Interface de Rede -

-

- Quais interfaces são levantadas ou derrubadas pelo script de - rede usualmente depende dos arquivos em /etc/sysconfig/. Esse diretório deveria - conter um arquivo para cada interface a ser configurada, tal - como ifconfig.xyz, onde - xyz deveria descrever a placa de - rede. O nome de interface (por exemplo, eth0) usualmente é - apropriado. Dentro desse arquivo estão atributos para essa - interface, tais como endereço(s) IP dela, máscaras de - subrede, e por aí vai. É necessário que a base do nome do - arquivo seja ifconfig. -

-
-

- Nota -

-

- Se o procedimento na seção anterior não foi usado, udev - atribuirá nomes de interface de placa de rede baseados em - características físicas do sistema, tais como enp2s1. Se - você não tem certeza qual é seu nome de interface, então - você sempre pode executar ip - link ou ls - /sys/class/net após você ter inicializado - seu sistema. -

-

- Os nomes de interface dependem da implementação e - configuração do daemon udev em execução no sistema. O - daemon udev para LFS (instalado na Seção 8.69, - “Eudev-3.2.11”) não executará até que o - sistema LFS seja inicializado. Assim, não é confiável - determinar os nomes de interface sendo usados no sistema - LFS executando aqueles comandos na distribuição anfitriã, - mesmo que você esteja no - ambiente chroot. -

-
-

- O seguinte comando cria um arquivo modelo para o dispositivo - eth0 com um endereço - de IP estático: -

-
cd /etc/sysconfig/
-cat > ifconfig.eth0 << "EOF"
-ONBOOT=yes
-IFACE=eth0
-SERVICE=ipv4-static
-IP=192.168.1.2
-GATEWAY=192.168.1.1
-PREFIX=24
-BROADCAST=192.168.1.255
-EOF
-

- Os valores em itálico precisam ser mudados em cada arquivo - para corresponder com a configuração adequada. -

-

- Se a variável ONBOOT estiver - configurada para yes, então o script de rede do - System V levantará a Network Interface Card (NIC) durante o - processo de inicialização do sistema. Se configurado para - qualquer coisa exceto yes, então a NIC será ignorada - pelo script de rede e não será levantada automaticamente. A - interface pode ser manualmente iniciada ou parada com os - comandos ifup e - ifdown. -

-

- A variável IFACE define o nome de - interface, por exemplo, eth0. Ela é exigida para todos os - arquivos de configuração de dispositivo de rede. A extensão - de nome de arquivo precisa corresponder a esse valor. -

-

- A variável SERVICE define o método - usado para obter o endereço de IP. O pacote LFS-Bootscripts - tem um formato de atribuição de IP modular, e criar arquivos - adicionais no diretório /lib/services/ permite outros métodos de - atribuição de IP. Isso é comumente usado para Dynamic Host - Configuration Protocol (DHCP), o qual é abordado no livro - BLFS. -

-

- A variável GATEWAY deveria conter - o endereço de IP do gateway padrão, se um estiver presente. - Se não, então comente a variável inteiramente. -

-

- A variável PREFIX contém o número - de bits usados na subrede. Cada octeto em um endereço de IP é - 8 bits. Se a máscara de rede da subrede for 255.255.255.0, - então ela está usando os primeiros três octetos (24 bits) - para especificar o número de rede. Se a máscara de rede for - 255.255.255.240, então ela estaria usando os primeiros 28 - bits. Prefixos mais longos que 24 bits são comumente usados - por Internet Service Providers (ISPs) DSL e baseados em - cabos. Nesse exemplo (PREFIX=24), a máscara de rede é - 255.255.255.0. Ajuste a variável PREFIX de acordo com sua subrede específica. - Se omitida, então o PREFIX padrão é 24. -

-

- Para mais informação veja-se a página de manual do - ifup. -

-
-
-

- 9.5.2. Criando o - Arquivo /etc/resolv.conf -

-

- O sistema precisará de alguma forma de obter resolução de - nome do Domain Name Service (DNS) para resolver nomes de - domínio da Internet para endereços de IP, e vice versa. Isso - é melhor alcançado colocando o endereço de IP do servidor de - DNS, disponível a partir do ISP ou administradora(r) de rede, - no /etc/resolv.conf. Crie o - arquivo executando o seguinte: -

-
cat > /etc/resolv.conf << "EOF"
-# Begin /etc/resolv.conf
-
-domain <Your Domain Name>
-nameserver <IP address of your primary nameserver>
-nameserver <IP address of your secondary nameserver>
-
-# End /etc/resolv.conf
-EOF
-

- A declaração domain pode ser - omitida ou substituída com uma declaração search. Veja-se a página de manual para - resolv.conf para mais detalhes. -

-

- Substitua <IP address of the - nameserver> com o endereço de IP do DNS mais - apropriado para a configuração. Frequentemente existirá mais - que uma entrada (exigências demandam servidores secundários - para capacidade de substituto). Se você precisa ou quer - apenas um servidor de DNS, então remova a segunda linha - nameserver do arquivo. - O endereço de IP também talvez seja um roteador na rede - local. -

-
-

- Nota -

-

- Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; e - 2001:4860:4860::8888 e - 2001:4860:4860::8844 para - IPv6. -

-
-
-
-

- 9.5.3. Configurando o nome de - dispositivo do sistema -

-

- Durante o processo de inicialização, o arquivo /etc/hostname é usado para estabelecer o - nome de dispositivo do sistema. -

-

- Crie o arquivo /etc/hostname e - informe um nome de dispositivo executando: -

-
echo "<lfs>" > /etc/hostname
-

- <lfs> precisa - ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa - informação é colocada no arquivo /etc/hosts. -

-
-
-

- 9.5.4. - Personalizando o Arquivo /etc/hosts -

-

- Decida acerca do endereço de IP, fully-qualified domain name - (FQDN), e possíveis apelidos para uso no arquivo /etc/hosts. A sintaxe é: -

-
IP_address myhost.example.org aliases
-

- A menos que o computador seja para estar visível para a - Internet (por exemplo, existe um domínio registrado e um - bloco válido de endereços de IP atribuídos—a maioria - das(os) usuárias(os) não tem isso), assegure-se de que o - endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -

-
Private Network Address Range      Normal Prefix
-10.0.0.1 - 10.255.255.254           8
-172.x.0.1 - 172.x.255.254           16
-192.168.y.1 - 192.168.y.254         24
-

- x pode ser qualquer número no intervalo 16-31. y pode ser - qualquer número no intervalo 0-255. -

-

- Um endereço de IP privado válido poderia ser 192.168.1.1. Um - FQDN válido para esse IP poderia ser lfs.example.org. -

-

- Mesmo se não se usar uma placa de rede, um FQDN válido ainda - é exigido. Isso é necessário para determinados aplicativos - operarem corretamente. -

-

- Crie o arquivo /etc/hosts - executando: -

-
cat > /etc/hosts << "EOF"
-# Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <FQDN> <HOSTNAME>
-<192.168.1.1> <FQDN> <HOSTNAME> [alias1] [alias2 ...]
-::1       localhost ip6-localhost ip6-loopback
-ff02::1   ip6-allnodes
-ff02::2   ip6-allrouters
-
-# End /etc/hosts
-EOF
-

- Os valores <192.168.1.1>, - <FQDN> e - <HOSTNAME> - precisam ser mudados para usuárias(os) ou exigências - específicas(os) (se atribuído um endereço de IP por uma(m) - administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s). -

-

- A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a - interface de loopback IPv6. 127.0.1.1 é uma entrada de - loopback reservada especificamente para o FQDN. -

-
-
-
-
-
-
-

- 9.6. Uso e Configuração do - Script de Inicialização do System V -

-
-
-
-
-

- 9.6.1. Como os Scripts de Inicialização do System V - funcionam? -

-

- O Linux usa um aparato de inicialização especial chamado - SysVinit que é baseado em um conceito de níveis de execução. Isso pode ser - bem diferente de um sistema para outro, de forma que não pode - ser assumido que, porque as coisas funcionam em uma - distribuição do Linux em particular, elas deveriam funcionar - da mesma forma no LFS também. O LFS tem sua própria maneira - de fazer as coisas, mas ele respeita os padrões geralmente - aceitos. -

-

- O SysVinit (o qual será referido como init - daqui pra frente) funciona usando um esquema de níveis de - execução. Existem sete (numerados de 0 a 6) níveis de - execução (atualmente, existem mais níveis de execução, mas - eles são para casos especiais e geralmente não são usados. - Veja-se init(8) para mais - detalhes), e cada um deles corresponde às ações que o - computador é suposto realizar quando ele inicia. O nível de - execução padrão é 3. Aqui estão as descrições dos diferentes - níveis de execução conforme eles estão implementados: -

-
-

- 0: parar o computador
- 1: Modo de usuária(o) única(o)
- 2: Modo de multiusuária(o), sem rede
- - 3: Modo de multiusuária(o), com rede
- - 4: Reservado para personalização, do contrário faz o mesmo que 3
- - 5: Mesmo que 4, ele é usado usualmente para login GUI (como o xdm do X ou o kdm do KDE)
- - 6: reinicializar o computador -

-
-
-
-

- 9.6.2. - Configurando o Sysvinit -

-

- Durante a inicialização do kernel, o primeiro aplicativo que - é executado ou é especificado na linha de comando ou, por - padrão, init. - Esse aplicativo lê o arquivo de inicialização /etc/inittab. Crie esse arquivo com: -

-
cat > /etc/inittab << "EOF"
-# Begin /etc/inittab
-
-id:3:initdefault:
-
-si::sysinit:/etc/rc.d/init.d/rc S
-
-l0:0:wait:/etc/rc.d/init.d/rc 0
-l1:S1:wait:/etc/rc.d/init.d/rc 1
-l2:2:wait:/etc/rc.d/init.d/rc 2
-l3:3:wait:/etc/rc.d/init.d/rc 3
-l4:4:wait:/etc/rc.d/init.d/rc 4
-l5:5:wait:/etc/rc.d/init.d/rc 5
-l6:6:wait:/etc/rc.d/init.d/rc 6
-
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-su:S016:once:/sbin/sulogin
-
-1:2345:respawn:/sbin/agetty --noclear tty1 9600
-2:2345:respawn:/sbin/agetty tty2 9600
-3:2345:respawn:/sbin/agetty tty3 9600
-4:2345:respawn:/sbin/agetty tty4 9600
-5:2345:respawn:/sbin/agetty tty5 9600
-6:2345:respawn:/sbin/agetty tty6 9600
-
-# End /etc/inittab
-EOF
-

- Uma explicação desse arquivo de inicialização está na página - de manual para inittab. Para o LFS, o comando - chave que é executado é rc. O arquivo de - inicialização acima instruirá rc a executar todos os - scripts começando com um S no diretório /etc/rc.d/rcS.d seguido por todos os - scripts começando com um S no diretório /etc/rc.d/rc?.d onde o ponto de - interrogação é especificado pelo valor de initdefault. -

-

- Como uma conveniência, o script rc lê uma biblioteca de - funções em /lib/lsb/init-functions. Essa biblioteca - também lê um arquivo de configuração opcional, /etc/sysconfig/rc.site. Quaisquer dos - parâmetros de arquivo de configuração do sistema descritos em - seções subsequentes podem ser alternativamente colocados - nesse arquivo permitindo a consolidação de todos os - parâmetros do sistema nesse único arquivo. -

-

- Como uma conveniência de depuração, o script de funções - também registra todas as saídas para /run/var/bootlog. Dado que o diretório - /run é um tmpfs, esse arquivo - não é persistente ao longo de inicializações, entretanto ele - é adicionado ao arquivo mais permanente /var/log/boot.log ao final do processo de - inicialização. -

-
-
-
-
-

- 9.6.2.1. Mudando Níveis de - Execução -

-
-
-
-

- A mudança de níveis de execução é feita com init <runlevel>, - onde <runlevel> é o nível - de execução alvo. Por exemplo, para reinicializar o - computador, uma(m) usuária(o) poderia emitir o comando - init 6, o - qual é um apelido para o comando reboot. Da mesma forma, - init 0 é um - apelido para o comando halt. -

-

- Existe um número de diretórios sob /etc/rc.d que se parecem com rc?.d (onde ? é o número do nível de - execução) e rcsysinit.d, - todos contendo um número de links simbólicos. Alguns - começam com um K, os - outros começam com um S, e todos eles tem dois números - seguindo a letra inicial. O K significa parar (kill) um - serviço e o S significa iniciar um serviço. Os números - determinam a ordem na qual os scripts são executados, de 00 - a 99—quanto menor o número mais cedo ele se torna - executado. Quando init muda para outro - nível de execução, os serviços adequados são tanto - iniciados quanto parados, dependendo do nível de execução - escolhido. -

-

- Os scripts reais estão em /etc/rc.d/init.d. Eles fazem o trabalho - atual, e os links simbólicos todos apontam para eles. Os - links K e os links S apontam para o mesmo script em - /etc/rc.d/init.d. Isso é - porque os scripts podem ser chamados com parâmetros - diferentes como start, stop, restart, reload e status. Quando um link K é - encontrado, o script apropriado é executado com o argumento - stop. Quando um - link S é encontrado, o script apropriado é executado com o - argumento start. -

-

- Existe uma exceção para essa explicação. Os links que - começam com um S nos - diretórios rc0.d e - rc6.d não farão nada ser - iniciado. Eles serão chamados com o parâmetro stop para parar alguma coisa. - A lógica por trás disso é a de que quando uma(m) usuária(o) - está para reiniciar ou parar o sistema, nada precisa ser - iniciado. O sistema precisa apenas ser parado. -

-

- Estas são descrições do que os argumentos fazem os scripts - fazer: -

-
-
-
- start -
-
-

- O serviço é iniciado. -

-
-
- stop -
-
-

- O serviço é parado. -

-
-
- restart -
-
-

- O serviço é parado e então iniciado novamente. -

-
-
- reload -
-
-

- A configuração do serviço é atualizada. Isso é usado - depois que o arquivo de configuração de um serviço - foi modificado, quando o serviço não precisa ser - reiniciado. -

-
-
- status -
-
-

- Diz se o serviço está executando e com quais PIDs. -

-
-
-
-

- Sinta-se livre para modificar a maneira como o processo de - inicialização funciona (afinal de contas, este é seu - próprio sistema LFS). Os arquivos dados aqui são um exemplo - de como isso pode ser feito. -

-
-
-
-

- 9.6.3. Scripts de Inicialização do Udev -

-

- O script de iniciação /etc/rc.d/init.d/udev inicia o udevd, aciona quaisquer - dispositivos "coldplug" que já tenham sido criados pelo - kernel e aguarda por quaisquer regras para completar. O - script também desconfigura o manuseador do uevent do padrão - do /sbin/hotplug. Isso é feito, - pois o kernel não mais precisa chamar um binário externo. Em - vez disso, o udevd escutará em um - soquete de link de rede os uevents que o kernel gera. -

-

- O script de iniciação /etc/rc.d/init.d/udev_retry - se ocupa de reacionar eventos para subsistemas cujas regras - talvez dependam de sistemas de arquivos que não estão - montados até que o script mountfs seja executado (em - particular, /usr e /var talvez causem isso). Esse script - executa após o script mountfs, de forma que - aquelas regras (se reacionadas) deveriam prosperar na segunda - vez. Ele é configurado a partir do arquivo /etc/sysconfig/udev_retry; quaisquer - palavras nesse arquivo outras que comentários são - consideradas nomes de subsistema para acionar ao tempo de - re-tentativa. Para encontrar o subsistema de um dispositivo, - use udevadm info - --attribute-walk <dispositivo>, onde - <dispositivo> é um caminho absoluto em /dev ou /sys, - tais como /dev/sr0 ou /sys/class/rtc. -

-

- Para informação acerca de carregamento de módulo de kernel e - udev, veja-se Seção 9.3.2.3, - “Carregamento de Módulo”. -

-
-
-

- 9.6.4. - Configurando o Relógio do Sistema -

-

- O script setclock lê a hora a partir - do relógio do hardware, também conhecido como relógio do BIOS - ou do Complementary Metal Oxide Semiconductor (CMOS). Se o - relógio do hardware estiver ajustado para UTC, então esse - script converterá a hora do relógio do hardware para a hora - local usando o arquivo /etc/localtime (o qual diz ao aplicativo - hwclock qual - fuso horário usar). Não existe maneira de detectar se o - relógio do hardware está ou não configurado para UTC, de - forma que isso precisa ser configurado manualmente. -

-

- O aplicativo setclock é executado via - udev quando o kernel detecta - a capacidade do hardware em consequência da inicialização. - Ele também pode ser executado manualmente com o parâmetro - pare para armazenar a hora do sistema para o relógio CMOS. -

-

- Se você não conseguir lembrar se o relógio do hardware está - ou não configurado para UTC, então descubra executando o - comando hwclock --localtime - --show. Isso mostrará o que é a hora atual de - acordo com o relógio do hardware. Se essa hora corresponder à - que o seu relógio diz, então o relógio do hardware está - configurado para hora local. Se a saída originária do - hwclock não for - a hora local, então as chances são as de que ele esteja - configurado para hora UTC. Verifique isso adicionando ou - subtraindo a quantidade apropriada de horas para o fuso - horário à (da) hora mostrada pelo hwclock. Por exemplo, se - você estiver atualmente no fuso horário MST, o qual é - conhecido também como GMT -0700, então adicione sete horas à - hora local. -

-

- Mude o valor da variável UTC - abaixo para um valor de 0 (zero) se o relógio do - hardware NÃO estiver - configurado para hora UTC. -

-

- Crie um novo arquivo /etc/sysconfig/clock executando o seguinte: -

-
cat > /etc/sysconfig/clock << "EOF"
-# Begin /etc/sysconfig/clock
-
-UTC=1
-
-# Set this to any options you might need to give to hwclock,
-# such as machine hardware clock type for Alphas.
-CLOCKPARAMS=
-
-# End /etc/sysconfig/clock
-EOF
-

- Uma boa dica que explica como lidar com hora no LFS está - disponível em - https://www.linuxfromscratch.org/hints/downloads/files/time.txt. - Ela explica problemas como fusos horários, UTC e a variável - de ambiente TZ. -

-
-

- Nota -

-

- Os parâmetros CLOCKPARAMS e UTC também talvez sejam - configurados no arquivo /etc/sysconfig/rc.site. -

-
-
-
-

- 9.6.5. - Configurando o Console do Linux -

-

- Esta seção discute como configurar o script de inicialização - console que - configura o mapa de teclado, fonte do console e nível de - registro do kernel do console. Se caracteres não-ASCII (por - exemplo, o sinal de direitos autorais, o sinal da libra - britânica e o símbolo do Euro) não serão usados e o teclado - for um dos Estados Unidos da América do Norte, então muito - desta seção pode ser saltada. Sem o arquivo de configuração, - (ou configurações equivalentes em rc.site), o script de inicialização - console não - fará nada. -

-

- O script console lê o arquivo - /etc/sysconfig/console para - informação de configuração. Decida qual mapa de teclado e - fonte de tela serão usados. Vários HOWTOs específicos de - idiomas também podem ajudar com isso, veja-se http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. - Se ainda em dúvida, então olhe nos diretórios /usr/share/keymaps e /usr/share/consolefonts para mapas de - teclado válidos e fontes de tela. Leiam-se as páginas de - manual loadkeys(1) e - setfont(8) para determinar os - argumentos corretos para esses aplicativos. -

-

- O arquivo /etc/sysconfig/console deveria conter - linhas da forma: VARIÁVEL="valor". As seguintes variáveis são - reconhecidas: -

-
-
-
- LOGLEVEL -
-
-

- Essa variável especifica o nível de registro para - mensagens do kernel enviadas para o console como - configurado por dmesg - -n. Níveis válidos são de "1" (sem - mensagens) até "8". O nível padrão é "7". -

-
-
- KEYMAP -
-
-

- Essa variável especifica os argumentos para o - aplicativo loadkeys, - tipicamente, o nome do mapa de teclado a carregar, por - exemplo, it. Se essa variável não - estiver configurada, então o script de inicialização - não executará o aplicativo loadkeys, e o mapa de - teclado do kernel padrão será usado. Observe que uns - poucos mapas de teclado tem múltiplas versões com o - mesmo nome (cz e variantes dele em qwerty/ e qwertz/; - es em olpc/ e qwerty/; e trf em fgGIod/ e qwerty/). - Nesses casos, o diretório pai também deveria ser - especificado (por exemplo, qwerty/es) para garantir que - o mapa de teclado adequado seja carregado. -

-
-
- KEYMAP_CORRECTIONS -
-
-

- Essa (raramente usada) variável especifica os - argumentos para a segunda chamada ao aplicativo - loadkeys. - Isso é útil se o mapa de teclado padrão não for - completamente satisfatório e um pequeno ajuste tenha - que ser feito. Por exemplo, para incluir o símbolo do - Euro em um mapa de teclado que normalmente não o tem, - configure essa variável para euro2. -

-
-
- FONT -
-
-

- Essa variável especifica os argumentos para o - aplicativo setfont. Tipicamente, - isso inclui o nome de fonte, -m, e o nome do mapa de - caracteres de aplicação a carregar. Por exemplo, para - carregar a fonte lat1-16 - juntamente com o mapa de caracteres de aplicação - 8859-1 (já que ele é - apropriado nos Estados Unidos da América do Norte), - configure essa variável para lat1-16 -m - 8859-1. Em modo UTF-8, o kernel - usa o mapa de caracteres de aplicação para conversão - dos códigos de tecla de 8 bits compostos no mapa de - teclado para UTF-8, e assim o argumento do parâmetro - "-m" deveria ser configurado para a codificação dos - códigos de tecla compostos no mapa de teclado. -

-
-
- UNICODE -
-
-

- Configure essa variável para 1, yes ou true para colocar o - console em modo UTF-8. Isso é útil em locales baseados - em UTF-8 e danoso de outra forma. -

-
-
- LEGACY_CHARSET -
-
-

- Para muitos esquemas de teclado, não existe mapa de - teclado Unicode padrão no pacote Kbd. O script de - inicialização console converterá um - mapa de teclado disponível para UTF-8 em tempo real se - essa variável estiver configurada para a codificação do - mapa de teclado não-UTF-8 disponível. -

-
-
-
-

- Alguns exemplos: -

-
-
    -
  • -

    - Para uma configuração não-Unicode, apenas as variáveis - KEYMAP e FONT são geralmente necessárias. Por exemplo, - para uma configuração em polonês, alguém usaria: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -KEYMAP="pl2"
    -FONT="lat2a-16 -m 8859-2"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Como mencionado acima, as vezes é necessário ajustar um - mapa de teclado padrão um pouco. O exemplo seguinte - adiciona o símbolo do Euro ao mapa de teclado alemão: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -KEYMAP="de-latin1"
    -KEYMAP_CORRECTIONS="euro2"
    -FONT="lat0-16 -m 8859-15"
    -UNICODE="1"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - O seguinte é um exemplo habilitado para Unicode para - búlgaro, onde um mapa de teclado UTF-8 padrão existe: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="bg_bds-utf8"
    -FONT="LatArCyrHeb-16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Devido ao uso de uma fonte LatArCyrHeb-16 de 512 glifos - no exemplo anterior, cores brilhantes não mais estão - disponíveis no console do Linux, a menos que uma parte - da RAM usada para armazenamento temporário de dados que - estão esperando para serem enviados para um dispositivo - e que armazene o conteúdo de uma imagem pixel por pixel - seja usada. Se alguém quiser ter cores brilhantes sem - uma parte da RAM usada para armazenamento temporário de - dados que estão esperando para serem enviados para um - dispositivo e que armazene o conteúdo de uma imagem - pixel por pixel e puder viver sem caracteres que não - pertencem a seu idioma, então ainda é possível usar uma - fonte de 256 glifos específica para o idioma, conforme - ilustrado abaixo: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="bg_bds-utf8"
    -FONT="cyr-sun16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - O seguinte exemplo ilustra conversão automática de mapa - de teclado de ISO-8859-15 para UTF-8 e habilitação de - teclas mortas em modo Unicode: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="de-latin1"
    -KEYMAP_CORRECTIONS="euro2"
    -LEGACY_CHARSET="iso-8859-15"
    -FONT="LatArCyrHeb-16 -m 8859-15"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Alguns mapas de teclado tem teclas mortas (isto é, - teclas que não produzem um carácter por elas próprias, - mas põem um acento no carácter produzido pela próxima - tecla) ou definem regras de composição (tais como: - press - Ctrl+. A E para obter Æ no mapa de - teclado padrão). O Linux-5.16.9 interpreta teclas - mortas e regras de composição no mapa de teclado - corretamente apenas quando os caracteres fonte a serem - compostos juntos não são multibyte. Essa deficiência - não afeta mapas de teclado para idiomas europeus, pois - lá acentos são adicionados a caracteres ASCII não - acentuados, ou dois caracteres ASCII são compostos - juntos. Entretanto, em modo UTF-8 isso é um problema; - por exemplo, para o idioma grego, onde alguém de vez em - quando precisa colocar um acento na letra alpha. A solução é ou - evitar o uso de UTF-8, ou instalar o sistema de janelas - X que não tem essa limitação no manuseio de entradas - dele. -

    -
  • -
  • -

    - Para chinês, japonês, coreano e alguns outros idiomas, - o console do Linux não pode ser configurado para exibir - os caracteres necessários. Usuárias(os) que precisam de - tais idiomas deveriam instalar o Sistema de Janelas X, - fontes que cobrem os intervalos de caracteres - necessários, e o método de entrada adequado (por - exemplo, SCIM, suporta uma ampla variedade de idiomas). -

    -
  • -
-
-
-

- Nota -

-

- O arquivo /etc/sysconfig/console apenas controla a - localização do console de texto do Linux. Ele não tem nada - a ver com configurar o esquema de teclado adequado e fontes - de terminal no Sistema de Janelas X; com sessões do ssh; ou - com um console serial. Em tais situações, as limitações - mencionadas nos últimos dois itens de lista acima não se - aplicam. -

-
-
-
-

- 9.6.6. Criando Arquivos na - Inicialização -

-

- De vez em quando, é desejável criar arquivos em tempo de - inicialização. Por exemplo, o diretório /tmp/.ICE-unix frequentemente é necessário. - Isso pode ser feito criando-se uma entrada no script de - configuração /etc/sysconfig/createfiles. O formato desse - arquivo está embutido nos comentários do arquivo de - configuração padrão. -

-
-
-

- 9.6.7. Configurando o Script - sysklogd -

-

- O script sysklogd invoca o - aplicativo syslogd como uma parte da - inicialização do System V. A opção -m 0 desliga a marca de carimbo - de tempo periódica que o syslogd escreve nos - arquivos de registro a cada 20 minutos por padrão. Se você - quiser ligar essa marca de carimbo de tempo periódica, então - edite /etc/sysconfig/rc.site e - defina a variável SYSKLOGD_PARMS para o valor desejado. Por - exemplo, para remover todos os parâmetros, configure a - variável para um valor nulo: -

-
SYSKLOGD_PARMS=
-

- Veja-se man - syslogd para mais opções. -

-
-
-

- 9.6.8. O - Arquivo rc.site -

-

- O arquivo opcional /etc/sysconfig/rc.site contém configurações - que são automaticamente configuradas para cada script de - inicialização do SystemV. Ele pode alternativamente - configurar os valores especificados nos arquivos hostname, console e clock no diretório /etc/sysconfig/. Se as variáveis associadas - estiverem presentes em ambos desses arquivos separados e - rc.site, então os valores nos - arquivos específicos de script tem precedência. -

-

- rc.site também contém - parâmetros que podem personalizar outros aspectos do processo - de inicialização. Configurar a variável IPROMPT habilitará a - execução seletiva de scripts de inicialização. Outras opções - estão descritas nos comentários de arquivo. A versão padrão - do arquivo é como se segue: -

-
# rc.site
-# Optional parameters for boot scripts.
-
-# Distro Information
-# These values, if specified here, override the defaults
-#DISTRO="Linux From Scratch" # The distro name
-#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address
-#DISTRO_MINI="LFS" # Short name used in filenames for distro config
-
-# Define custom colors used in messages printed to the screen
-
-# Please consult `man console_codes` for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font.  This does
-# not affect framebuffer consoles
-
-# These values, if specified here, override the defaults
-#BRACKET="\\033[1;34m" # Blue
-#FAILURE="\\033[1;31m" # Red
-#INFO="\\033[1;36m"    # Cyan
-#NORMAL="\\033[0;39m"  # Grey
-#SUCCESS="\\033[1;32m" # Green
-#WARNING="\\033[1;33m" # Yellow
-
-# Use a colored prefix
-# These values, if specified here, override the defaults
-#BMPREFIX="      "
-#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
-#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-
-# Manually seet the right edge of message output (characters)
-# Useful when resetting console font during boot to override
-# automatic screen width detection
-#COLUMNS=120
-
-# Interactive startup
-#IPROMPT="yes" # Whether to display the interactive boot prompt
-#itime="3"    # The amount of time (in seconds) to display the prompt
-
-# The total length of the distro welcome string, without escape codes
-#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
-#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
-
-# The total length of the interactive string, without escape codes
-#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
-#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
-
-# Set scripts to skip the file system check on reboot
-#FASTBOOT=yes
-
-# Skip reading from the console
-#HEADLESS=yes
-
-# Write out fsck progress if yes
-#VERBOSE_FSCK=no
-
-# Speed up boot without waiting for settle in udev
-#OMIT_UDEV_SETTLE=y
-
-# Speed up boot without waiting for settle in udev_retry
-#OMIT_UDEV_RETRY_SETTLE=yes
-
-# Skip cleaning /tmp if yes
-#SKIPTMPCLEAN=no
-
-# For setclock
-#UTC=1
-#CLOCKPARAMS=
-
-# For consolelog (Note that the default, 7=debug, is noisy)
-#LOGLEVEL=7
-
-# For network
-#HOSTNAME=mylfs
-
-# Delay between TERM and KILL signals at shutdown
-#KILLDELAY=3
-
-# Optional sysklogd parameters
-#SYSKLOGD_PARMS="-m 0"
-
-# Console parameters
-#UNICODE=1
-#KEYMAP="de-latin1"
-#KEYMAP_CORRECTIONS="euro2"
-#FONT="lat0-16 -m 8859-15"
-#LEGACY_CHARSET=
-
-
-
-
-
-
-

- 9.6.8.1. Personalizando os - Scripts de Inicialização e Desligamento -

-
-
-
-

- Os scripts de inicialização do LFS inicializam e desligam - um sistema de uma maneira bastante eficiente, porém existem - uns poucos ajustes que você pode fazer no arquivo rc.site - para aumentar a velocidade ainda mais e ajustar mensagens - de acordo com suas preferências. Para fazer isso, ajuste as - configurações no arquivo /etc/sysconfig/rc.site acima. -

-
-
    -
  • -

    - Durante o script de inicialização udev, existe uma chamada para - udev - settle que exige algum tempo para - completar. Esse tempo talvez ou talvez não seja - exigido dependendo dos dispositivos presentes no - sistema. Se você tiver apenas partições simples e uma - placa ethernet, [então] o processo de inicialização - provavelmente não precisará esperar por esse comando. - Para pular ele, configure a variável - OMIT_UDEV_SETTLE=y. -

    -
  • -
  • -

    - O script de inicialização udev_retry também executa - udev - settle por padrão. Esse comando é - necessário por padrão somente se o diretório - /var for montado - separadamente. Isso é porque o relógio precisa do - arquivo /var/lib/hwclock/adjtime. Outras - personalizações talvez também precisem esperar que o - udev complete, porém em muitas instalações ele não é - necessário. Pule o comando configurando a variável - OMIT_UDEV_RETRY_SETTLE=y. -

    -
  • -
  • -

    - Por padrão, as verificações do sistema de arquivos - são silenciosas. Isso pode parecer um atraso durante - o processo de inicialização. Para ligar a saída do - fsck, - configure a variável VERBOSE_FSCK=y. -

    -
  • -
  • -

    - Quando reinicializar, você talvez queira pular a - verificação do sistema de arquivos, fsck, - completamente. Para fazer isso, ou crie o arquivo - /fastboot ou - reinicialize o sistema com o comando /sbin/shutdown -f -r - now. Por outro lado, você pode forçar - que todos os sistemas de arquivos sejam verificados - criando /forcefsck ou - executando shutdown com o - parâmetro -F - em vez de -f. -

    -

    - Configurar a variável FASTBOOT=y desabilitará - fsck - durante o processo de inicialização até que ela seja - removida. Isso não é recomendado em uma base - permanente. -

    -
  • -
  • -

    - Normalmente, todos os arquivos no diretório - /tmp são deletados em - tempo de inicialização. Dependendo do número de - arquivos ou diretórios presentes, isso pode causar um - atraso notável no processo de inicialização. Para - pular a remoção desses arquivos configure a variável - SKIPTMPCLEAN=y. -

    -
  • -
  • -

    - Durante o desligamento, o aplicativo init envia um sinal - TERM para cada aplicativo que ele iniciou (por - exemplo agetty), espera um tempo configurado (padrão - 3 segundos), e envia a cada processo um sinal KILL e - aguarda novamente. Esse processo é repetido no script - sendsignals para - quaisquer processos que não sejam desligados pelos - scripts próprios deles. O atraso para init pode ser - configurado passando um parâmetro. Por exemplo para - remover o atraso em init, passe o - parâmetro -t0 quando desligar ou reinicializar (por - exemplo /sbin/shutdown - -t0 -r now). O atraso para o script - sendsignals pode - ser pulado configurando o parâmetro KILLDELAY=0. -

    -
  • -
-
-
-
-
-
-
-
-
-

- 9.7. Os Arquivos de - Inicialização de Shell do Bash -

-
-
-
-

- O aplicativo de shell /bin/bash (daqui por diante - referenciado como o shell) usa uma coleção de - arquivos de inicialização para auxiliar a criar um ambiente - para executar dentro. Cada arquivo tem um uso específico e - talvez afete o login e ambientes interativos diferentemente. Os - arquivos no diretório /etc - fornecem configurações globais. Se um arquivo equivalente - existir no diretório home, [então] ele talvez substitua as - configurações globais. -

-

- Um shell de login interativo é iniciado após um login bem - sucedido, usando o /bin/login, lendo o arquivo - /etc/passwd. Um shell de - não-login interativo é iniciado na linha de comando (por - exemplo, [prompt]$/bin/bash). Um shell - não-interativo está geralmente presente quando um script de - shell está executando. Ele é não-interativo porque ele está - processando um script e não esperando pela entrada de - usuária(o) entre comandos. -

-

- Para mais informação, veja-se info bash sob a seção - Arquivos de Inicialização do Bash e - Shells Interativos. -

-

- Os arquivos /etc/profile e - ~/.bash_profile são lidos quando - o shell é invocado como um shell de login interativo. -

-

- O /etc/profile de base abaixo - configura algumas variáveis de ambiente necessárias para o - suporte ao idioma nativo. Configurá-las adequadamente resulta - em: -

-
-
    -
  • -

    - A saída dos aplicativos traduzida para o idioma nativo -

    -
  • -
  • -

    - Classificação correta dos caracteres em letras, dígitos e - outras classes. Isso é necessário para o bash aceitar - adequadamente caracteres não ASCII em linhas de comando - em locales não ingleses -

    -
  • -
  • -

    - A sequência de ordenação alfabética correta para o país -

    -
  • -
  • -

    - Tamanho de papel padrão apropriado -

    -
  • -
  • -

    - Formatação correta de valores monetário, hora e data -

    -
  • -
-
-

- Substitua <ll> - abaixo com o código de duas letras para o idioma desejado (por - exemplo, en) e <CC> com o código de duas - letras para o país apropriado (por exemplo, GB). - <charmap> - deveria ser substituído com o mapa de caracteres canônico para - seu locale escolhido. Modificadores opcionais, tais como - @euro, talvez também estejam - presentes. -

-

- A lista de todos os locales suportados pela Glibc pode ser - obtida executando o seguinte comando: -

-
locale -a
-

- Mapas de caracteres podem ter um número de apelidos, por - exemplo, ISO-8859-1 também é referenciado - como iso8859-1 e iso88591. Alguns aplicativos não - podem lidar com os vários sinônimos corretamente (por exemplo, - exigem que UTF-8 seja escrito como - UTF-8, não utf8), - de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde <locale name> é a saída - dada por locale - -a para seu locale preferido (en_GB.iso88591 no nosso exemplo). -

-
LC_ALL=<locale name> locale charmap
-

- Para o locale en_GB.iso88591, o comando acima - imprimirá: -

-
ISO-8859-1
-

- Isso resulta em uma configuração de locale final de - en_GB.ISO-8859-1. É importante que - o locale encontrado usando a heurística acima seja testado - antes que ele seja adicionado aos arquivos de inicialização do - Bash: -

-
LC_ALL=<locale name> locale language
-LC_ALL=<locale name> locale charmap
-LC_ALL=<locale name> locale int_curr_symbol
-LC_ALL=<locale name> locale int_prefix
-

- Os comandos acima deveriam imprimir o nome do idioma, a - codificação de caracteres usada pelo locale, a moeda local, e o - prefixo para discar antes do número de telefone para se - alcançar o país. Se quaisquer dos comandos acima falharem com - uma mensagem similar àquela mostrada abaixo, [então] isso - significa que seu locale ou não foi instalado no Seção 8.5, “Glibc-2.35” - ou não é suportado pela instalação padrão da Glibc. -

-
locale: Cannot set LC_* to default locale: No such file or directory
-

- Se isso acontecer, [então] você deveria instalar o locale - desejado usando o comando localedef, ou considere - escolher um locale diferente. As instruções posteriores assumem - que não existem tais mensagens de erro originárias da Glibc. -

-

- Outros pacotes também podem funcionar incorretamente (mas - talvez não necessariamente exibam quaisquer mensagens de erro) - se o nome do locale não corresponder às expectativas deles. - Nesses casos, investigar como outras distribuições do Linux - suportam seu locale poderia fornecer alguma informação útil. -

-

- Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/profile: -

-
cat > /etc/profile << "EOF"
-# Begin /etc/profile
-
-export LANG=<ll>_<CC>.<charmap><@modifiers>
-
-# End /etc/profile
-EOF
-

- Os locales C (padrão) e en_US.utf8 (aquele recomendado - para usuárias(os) do inglês dos Estados Unidos da América do - Norte) são diferentes. C usa o conjunto de caracteres de - 7 bits US-ASCII, e trata bytes com o bit alto configurado como - caracteres inválidos. Esse é o porquê, por exemplo, do comando - ls substituir - eles com pontos de interrogação nesse locale. Também, uma - tentativa de enviar correio com tais caracteres a partir do - Mutt ou Pine resulta em mensagens de não conformidade com RFC - sendo enviadas (o conjunto de caracteres no correio de saída é - indicado como unknown 8-bit). Então você pode - usar o locale C apenas se você tiver certeza de - que nunca precisará de caracteres de 8 bits. -

-

- Locales baseados em UTF-8 não são bem suportados por alguns - aplicativos. Trabalho está em progresso para documentar e, se - possível, consertar tais problemas, veja-se - https://www.linuxfromscratch.org/blfs/view/11.1/introduction/locale-issues.html. -

-
-
-
-
-
-

- 9.8. Criando o Arquivo - /etc/inputrc -

-
-
-
-

- O arquivo inputrc é o arquivo de - configuração para a biblioteca readline, a qual fornece - capacidades de edição enquanto a(o) usuária(o) estiver - digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é - usada pelo bash e maioria dos outros shells, bem como muitos - outros aplicativos. -

-

- A maioria das pessoas não necessita de funcionalidade - específica de usuária(o), de forma que o comando abaixo cria um - /etc/inputrc global usado por - qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), - [então] você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. -

-

- Para mais informação sobre como editar o arquivo inputrc, veja-se info bash sob a seção - Readline Init File. - info readline é - também uma boa fonte de informação. -

-

- Abaixo está um inputrc global - genérico junto com comentários para explicar o que as várias - opções fazem. Observe que comentários não podem estar na mesma - linha que comandos. Crie o arquivo usando o seguinte comando: -

-
cat > /etc/inputrc << "EOF"
-# Begin /etc/inputrc
-# Modified by Chris Lynn <roryo@roryo.dynup.net>
-
-# Allow the command prompt to wrap to the next line
-set horizontal-scroll-mode Off
-
-# Enable 8bit input
-set meta-flag On
-set input-meta On
-
-# Turns off 8th bit stripping
-set convert-meta Off
-
-# Keep the 8th bit for display
-set output-meta On
-
-# none, visible or audible
-set bell-style none
-
-# All of the following map the escape sequence of the value
-# contained in the 1st argument to the readline specific functions
-"\eOd": backward-word
-"\eOc": forward-word
-
-# for linux console
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# for xterm
-"\eOH": beginning-of-line
-"\eOF": end-of-line
-
-# for Konsole
-"\e[H": beginning-of-line
-"\e[F": end-of-line
-
-# End /etc/inputrc
-EOF
-
-
-
-
-
-

- 9.9. Criando o Arquivo - /etc/shells -

-
-
-
-

- O arquivo shells contém uma lista - dos shells de login no sistema. Os aplicativos usam esse - arquivo para determinar quando um shell é válido. Para cada - shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). -

-

- Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a - própria conta dela. Se o nome de comando não estiver listado, - [então] a usuária terá negada a habilidade de mudar shells. -

-

- É uma exigência para aplicativos tais como GDM o qual não publiciza o navegador de - face se ele não puder encontrar /etc/shells, ou daemons do FTP os quais - tradicionalmente proíbem acesso a usuárias(os) com shells não - incluídos nesse arquivo. -

-
cat > /etc/shells << "EOF"
-# Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells
-EOF
-
-
-
-
-
-
-

- Capítulo 10. Tornando o - Sistema LFS Inicializável -

-
-
-
-
-
-
-
-

- 10.1. Introdução -

-
-
-
-

- É hora de tornar o sistema LFS inicializável. Este capítulo - discute a criação do arquivo /etc/fstab; construção de um kernel para o - novo sistema LFS; e instalação do carregador de inicialização - GRUB, de modo que o sistema LFS possa ser selecionado para - iniciar durante a inicialização. -

-
-
-
-
-
-

- 10.2. Criando o Arquivo - /etc/fstab -

-
-
-
-

- O arquivo /etc/fstab é usado por - alguns aplicativos para determinar onde sistemas de arquivos - são para serem montados por padrão; em qual ordem; e quais - precisam ser verificados (para erros de integridade) antes da - montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -

-
cat > /etc/fstab << "EOF"
-# Begin /etc/fstab
-
-# file system  mount-point  type     options             dump  fsck
-#                                                              order
-
-/dev/<xxx>     /            <fff>    defaults            1     1
-/dev/<yyy>     swap         swap     pri=1               0     0
-proc           /proc        proc     nosuid,noexec,nodev 0     0
-sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
-devpts         /dev/pts     devpts   gid=5,mode=620      0     0
-tmpfs          /run         tmpfs    defaults            0     0
-devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0
-
-# End /etc/fstab
-EOF
-

- Substitua <xxx>; <yyy>; e <fff> com os valores - apropriados para o sistema, por exemplo, sda2; sda5; e - ext4. Para detalhes sobre os - seis campos nesse arquivo, veja-se man 5 fstab. -

-

- Sistemas de arquivos com origem MS-DOS ou Windows (isto é, - vfat, ntfs, smbfs, cifs, iso9660, udf) precisam de uma opção - especial, utf8, para a finalidade de caracteres não ASCII nos - nomes de arquivo serem interpretados corretamente. Para locales - não UTF-8, o valor de iocharset - deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o - entenda. Isso funciona se a definição de conjunto de caracteres - relevante (encontrada sob File systems -> Native Language - Support quando da configuração do kernel) tenha sido compilada - no kernel ou construída como um módulo. Entretanto, se o - conjunto de caracteres do locale for UTF-8, [então] a - correspondente opção iocharset=utf8 - tornaria o sistema de arquivo sensível a maiúsculas e - minúsculas. Para consertar isso, use a opção especial - utf8 em vez de iocharset=utf8, para locales UTF-8. A opção - codepage também é necessária para - sistemas de arquivos vfat e smbfs. Ela deveria ser configurada - para o número da página de código usada sob MS-DOS em seu país. - Por exemplo, para montar controladores flash USB, uma(m) - usuária(o) do ru_RU.KOI8-R precisaria do seguinte na porção de - opções da linha mount dele em /etc/fstab: -

-
noauto,user,quiet,showexec,codepage=866,iocharset=koi8r
-

- O correspondente fragmento das opções para usuárias(os) do - ru_RU.UTF-8 é: -

-
noauto,user,quiet,showexec,codepage=866,utf8
-

- Observe que usar iocharset é o - padrão para iso8859-1 (a qual - mantém o sistema de arquivo insensível a maiúsculas e - minúsculas), e a opção utf8 diz ao - kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. -

-

- É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados - de Default NLS - Option (CONFIG_NLS_DEFAULT); Default Remote NLS - Option (CONFIG_SMB_NLS_DEFAULT); Default codepage for - FAT (CONFIG_FAT_DEFAULT_CODEPAGE); e Default iocharset for - FAT (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira - de especificar essas configurações para o sistema de arquivos - ntfs em tempo de compilação do kernel. -

-

- É possível tornar o sistema de arquivos ext3 confiável em casos - de falhas de eletricidade para alguns tipos de disco rígido. - Para fazer isso, adicione a opção de montagem barrier=1 para a entrada apropriada em - /etc/fstab. Para verificar se o - controlador de disco suporta essa opção, execute - hdparm no controlador de disco aplicável. Por exemplo, se: -

-
hdparm -I /dev/sda | grep NCQ
-

- retornar uma saída não vazia, [então] a opção é suportada. -

-

- Nota: partições baseadas em Logical Volume Management (LVM) não - podem usar a opção barrier. -

-
-
-
-
-
-

- 10.3. Linux-5.16.9 -

-
-
-
-
-

- O pacote Linux contém o kernel do Linux. -

-
-
-
- Tempo aproximado de - construção: 1,5 - 130,0 - UPC (tipicamente cerca de 12 UPC) -
-
- Espaço em disco - exigido: 1200 - 8800 MB - (tipicamente cerca de 1700 MB) -
-
-
-
-
-

- 10.3.1. Instalação do kernel -

-

- Construir o kernel envolve uns poucos - passos—configuração; compilação; e instalação. Leia o - arquivo README na árvore do - fonte do kernel para métodos alternativos à maneira que este - livro configura o kernel. -

-

- Prepare para compilação executando o seguinte comando: -

-
make mrproper
-

- Isso garante que a árvore do kernel esteja absolutamente - limpa. O time do kernel recomenda que esse comando seja - executado antes de cada compilação do kernel. Não confie que - a árvore do fonte esteja limpa após descompactar. -

-

- Existem muitas maneiras de configurar as opções do kernel. - Usualmente, isso é feito por meio de uma interface controlada - por menu, por exemplo: -

-
make menuconfig
-
-

- O significado das variáveis de ambiente do make - opcionais: -

-
-
- LANG=<host_LANG_value> - LC_ALL= -
-
-

- Isso estabelece a configuração do locale para aquela - usada no anfitrião. Isso talvez seja necessário para um - adequado desenho de linha da interface ncurses do - menuconfig em um console de texto linux UTF-8. -

-

- Se usada, [então] assegure-se de substituir <host_LANG_value> - pelo valor da variável $LANG - oriunda do seu anfitrião. Você pode, alternativamente, - usar, em vez disso, o valor do anfitrião de - $LC_ALL ou $LC_CTYPE. -

-
-
- make - menuconfig -
-
-

- Isso lança uma interface controlada por menu ncurses. - Para outras (gráficas) interfaces, digite make help. -

-
-
-
-

- Para informação geral sobre configuração do kernel, veja-se - - https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. - O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora - do LFS em - https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index. - Informação adicional sobre configurar e construir o kernel - pode ser encontrada em http://www.kroah.com/lkn/ -

-
-

- Nota -

-

- Um bom ponto de partida para configurar a configuração do - kernel é executar make - defconfig. Isso configurará a configuração - base para um bom estado que leve a sua atual arquitetura de - sistema em conta. -

-

- Assegure-se de habilitar/desabilitar/configurar as - seguintes características ou o sistema poderia não - funcionar corretamente ou inicializar de forma alguma: -

-
General setup -->
-   < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
-Device Drivers  --->
-  Graphics support --->
-   Frame buffer Devices --->
-      [*] Support for frame buffer devices ----
-  Generic Driver Options  --->
-   [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
-   [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
-
-

- Existem muitas outras opções que talvez sejam desejadas, - dependendo das exigências para o sistema. Para uma lista das - opções necessárias para pacotes do BLFS, veja-se o - Índice BLFS das Configurações do Kernel - (https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index). -

-
-

- Nota -

-

- Se seu hardware do anfitrião estiver usando UEFI e você - desejar inicializar o sistema LFS com ela, [então] você - deveria ajustar alguma configuração do kernel seguindo - - a página do BLFS. -

-
-
-

- A justificativa para os itens de configuração - acima: -

-
-
- Enable - kernel headers through - /sys/kernel/kheaders.tar.xz -
-
-

- Isso exigirá cpio ao se construir - o kernel. cpio não é instalado - por LFS. -

-
-
- Support - for uevent helper -
-
-

- Ter essa opção configurada talvez interfira com o - gerenciamento de dispositivo quando se usar Udev/Eudev. -

-
-
- Maintain a - devtmpfs -
-
-

- Isso criará nós de dispositivos automatizados os quais - são povoados pelo kernel, mesmo sem o Udev executando. - O Udev então executa no topo disso, gerenciando - permissões e adicionando links simbólicos. Esse item de - configuração é exigido para todas(os) as(os) - usuárias(os) do Udev/Eudev. -

-
-
-
-

- Alternativamente, make - oldconfig talvez seja mais apropriado em - algumas situações. Veja-se o arquivo README para mais informação. -

-

- Se desejado, [então] pule a configuração do kernel copiando o - arquivo config do kernel, .config, a partir do sistema anfitrião - (assumindo que ele esteja disponível) para o diretório - linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é - melhor explorar todos os menus de configuração e criar a - configuração do kernel a partir do zero. -

-

- Compile a imagem do kernel e módulos: -

-
make
-

- Se usar módulos do kernel, [então] a configuração do módulo - em /etc/modprobe.d talvez seja - exigida. Informação pertinente à configuração de módulos e - kernel está localizada na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos” e na documentação do kernel no diretório - linux-5.16.9/Documentation. - Também, modprobe.d(5) talvez - seja de interesse. -

-

- A menos que o suporte de módulo tenha sido desabilitado na - configuração do kernel, instale os módulos com: -

-
make modules_install
-

- Depois que a compilação do kernel estiver completa, passos - adicionais são exigidos para completar a instalação. Alguns - arquivos precisam ser copiados para o diretório /boot. -

-
-

- Cuidado -

-

- Se o sistema anfitrião tiver uma partição /boot separada, - [então] os arquivos copiados abaixo deveriam ir para lá. A - maneira mais fácil de fazer isso é vincular /boot no - anfitrião (do lado de fora do chroot) à /mnt/lfs/boot antes - de prosseguir. Como a(o) usuária(o) root no sistema anfitrião: -

-
mount --bind /boot /mnt/lfs/boot
-
-

- O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser - mudado para se adequar ao seu gosto, porém o tronco do nome - de arquivo deveria ser vmlinuz para ser compatível com a - configuração automática do processo de inicialização descrito - na próxima seção. O seguinte comando assume uma arquitetura - x86: -

-
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1
-

- System.map é um arquivo de - símbolo para o kernel. Ele mapeia os pontos de entrada de - função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em - execução. Ele é usado como um recurso quando se investigar - problemas do kernel. Emita o seguinte comando para instalar o - arquivo de mapa: -

-
cp -iv System.map /boot/System.map-5.16.9
-

- O arquivo de configuração do kernel .config produzido pelo passo make menuconfig acima - contém todas as seleções de configuração para o kernel que - foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -

-
cp -iv .config /boot/config-5.16.9
-

- Instale a documentação para o kernel do Linux: -

-
install -d /usr/share/doc/linux-5.16.9
-cp -r Documentation/* /usr/share/doc/linux-5.16.9
-

- É importante observar que os arquivos no diretório do fonte - do kernel não são de propriedade da(o) root. Sempre que um pacote é - desempacotado como a(o) usuária(o) root (como nós fizemos dentro do - chroot), os arquivos tem os IDs de usuária(o) e grupo do que - quer que fossem no computador da(o) empacotadora(r). Isso - geralmente não é um problema para qualquer outro pacote ser - instalado, pois a árvore do fonte é removida depois da - instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, - existe uma chance de que qualquer ID de usuária(o) que a(o) - empacotadora(r) usou será atribuído para alguém na máquina. - Essa pessoa então teria acesso de escrita ao fonte do kernel. -

-
-

- Nota -

-

- Em muitos casos, a configuração do kernel precisará ser - atualizada para pacotes que serão instalados posteriormente - em BLFS. Diferente de outros pacotes, não é necessário - remover a árvore do fonte do kernel depois que o recém - construído kernel for instalado. -

-

- Se a árvore do fonte do kernel será mantida, [então] - execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os - arquivos são de propriedade da(o) usuária(o) root. -

-
-
-

- Atenção -

-

- Alguma documentação do kernel recomenda criar um link - simbólico a partir de /usr/src/linux apontando para o diretório - do fonte do kernel. Isso é específico para kernels - anteriores à série 2.6 e precisa - não ser criado em um sistema LFS, uma vez que - ele pode causar problemas para pacotes que você talvez - deseje construir tão logo seu sistema LFS base esteja - completo. -

-
-
-

- Atenção -

-

- Os cabeçalhos no diretório include do sistema (/usr/include) deveriam sempre ser aqueles contra os - quais a Glibc foi compilada, isto é, os cabeçalhos - sanitizados instalados na Seção 5.4, - “Cabeçalhos da API do Linux-5.16.9”. - Portanto, eles nunca - deveriam ser substituídos tanto pelos cabeçalhos do kernel - crus quanto por quaisquer outros cabeçalhos sanitizados do - kernel. -

-
-
-
-

- 10.3.2. - Configurando a Ordem de Carregamento de Módulos do Linux -

-

- Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma - direção específica. O aplicativo que carrega os módulos, - modprobe ou - insmod, usa - /etc/modprobe.d/usb.conf para - esse propósito. Esse arquivo precisa ser criado, de forma - que, se os controladores do USB (ehci_hcd, ohci_hcd e - uhci_hcd) tiverem sido construídos como módulos, [então] eles - serão carregados na ordem correta; ehci_hcd precisa ser - carregado antes de ohci_hcd e uhci_hcd para evitar um aviso - sendo produzido em tempo de inicialização. -

-

- Crie um novo arquivo /etc/modprobe.d/usb.conf executando o - seguinte: -

-
install -v -m755 -d /etc/modprobe.d
-cat > /etc/modprobe.d/usb.conf << "EOF"
-# Begin /etc/modprobe.d/usb.conf
-
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
-
-# End /etc/modprobe.d/usb.conf
-EOF
-
-
-

- 10.3.3. - Conteúdo do Linux -

-
-
-
- Arquivos instalados: - config-5.16.9, - vmlinuz-5.16.9-lfs-11.1 e System.map-5.16.9 -
-
- Diretórios instalados: - /lib/modules e - /usr/share/doc/linux-5.16.9 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- config-5.16.9 -

-
-

- Contém todas as seleções de configuração para o - kernel -

-
-

- vmlinuz-5.16.9-lfs-11.1 -

-
-

- O motor do sistema Linux. Quando se liga o - computador, o kernel é a primeira parte do sistema - operacional que se torna carregada. Ele detecta e - inicializa todos os componentes do hardware do - computador, então torna esses componentes - disponíveis como uma árvore de arquivos para o - software e transforma uma CPU individual em uma - máquina multitarefa capaz de executar dezenas de - aplicativos aparentemente ao mesmo tempo -

-
-

- System.map-5.16.9 -

-
-

- Uma lista de endereços e símbolos; ele mapeia os - pontos de entrada e endereços de todas as funções e - estruturas de dados no kernel -

-
-
-
-
-
-
-
-
-

- 10.4. Usando o GRUB para - Configurar o Processo de Inicialização -

-
-
-
-
-

- Nota -

-

- Se seu sistema tiver suporte UEFI e você desejar inicializar - o LFS com UEFI, [então] você deveria pular esta página, e - configurar o GRUB com suporte UEFI usando as instruções - fornecidas na - página do BLFS. -

-
-
-

- 10.4.1. Introdução -

-
-

- Atenção -

-

- Configurar o GRUB incorretamente pode tornar seu sistema - inoperável sem um dispositivo de inicialização alternativo, - como um CD-ROM ou unidade USB inicializável. Esta seção não - é exigida para inicializar seu sistema LFS. Você talvez - apenas queira modificar seu carregador de inicialização - atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. -

-
-

- Certifique-se de que um disco de inicialização de emergência - esteja pronto para resgatar o computador se o - computador se tornar inutilizável (não inicializável). Se - você ainda não tem um dispositivo de inicialização, [então] - você pode criar um. Para que o procedimento abaixo funcione, - você precisa saltar para a frente para o BLFS e instalar - xorriso - oriundo do pacote - libisoburn. -

-
cd /tmp
-grub-mkrescue --output=grub-img.iso
-xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
-
-
-

- 10.4.2. Convenções de Nomenclatura do GRUB -

-

- O GRUB usa estrutura de nomenclatura própria dele para - unidades e partições na forma de (hdn,m), onde n é o número da unidade rígida e - m é o número da - partição. O número da unidade rígida começa do zero, porém o - número da partição inicia do um para partições normais e - cinco para partições estendidas. Observe que isso é diferente - de versões anteriores onde ambos os números começavam do - zero. Por exemplo, a partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com o Linux, - GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em - hdc, [então] aquela segunda - unidade rígida ainda seria (hd1). -

-
-
-

- 10.4.3. Definindo a Configuração -

-

- O GRUB funciona escrevendo dados para a primeira trilha - física do disco rígido. Essa área não é parte de nenhum - sistema de arquivos. Os aplicativos lá acessam módulos do - GRUB na partição de inicialização. O local padrão é - /boot/grub/. -

-

- O local da partição de inicialização é uma escolha da(o) - usuária(o) que afeta a configuração. Uma recomendação é ter - uma partição pequena (tamanho sugerido é 200 MB) separada - somente para informação de inicialização. Dessa forma, cada - construção, seja LFS ou alguma distribuição comercial, pode - acessar os mesmos arquivos de inicialização e o acesso pode - ser feito a partir de qualquer sistema inicializado. Se você - escolher fazer isso, [então] você precisará montar a partição - separada, mover todos os arquivos no diretório /boot atual (por exemplo, o kernel linux - que você recém construiu na seção anterior) para a nova - partição. Você precisará então desmontar a partição e - remontar ela como /boot. Se - você fizer isso, [então] tenha certeza de atualizar - /etc/fstab. -

-

- Usar a partição lfs atual também funcionará, porém a - configuração para múltiplos sistemas é mais complicada. -

-

- Usando a informação acima, determine o designador apropriado - para a partição raiz (ou partição de inicialização, se uma - separada for usada). Para o exemplo seguinte, é assumido que - a partição raiz (ou inicialização separada) é sda2. -

-

- Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: -

-
-

- Atenção -

-

- O seguinte comando sobrescreverá o carregador de - inicialização atual. Não execute o comando de isso não for - desejado, por exemplo, se usar um gerenciador de - inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -

-
-
grub-install /dev/sda
-
-

- Nota -

-

- Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install - tentará instalar arquivos para o alvo x86_64-efi, porém aqueles - arquivos não foram instalados no Capítulo 8. - Se esse for o caso, [então] adicione --target i386-pc ao comando acima. -

-
-
-
-

- 10.4.4. Criando o - Arquivo de Configuração do GRUB -

-

- Gere o /boot/grub/grub.cfg: -

-
cat > /boot/grub/grub.cfg << "EOF"
-# Begin /boot/grub/grub.cfg
-set default=0
-set timeout=5
-
-insmod ext2
-set root=(hd0,2)
-
-menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1" {
-        linux   /boot/vmlinuz-5.16.9-lfs-11.1 root=/dev/sda2 ro
-}
-EOF
-
-

- Nota -

-

- A partir da perspectiva do GRUB, os arquivos do kernel são - relativos à partição usada. Se você usou uma partição /boot - separada, [então] remova /boot da linha linux acima. Você também - precisará mudar a linha set - root para apontar para a partição de - inicialização. -

-
-

- O GRUB é um aplicativo extremamente poderoso e ele fornece um - tremendo número de opções para inicializar a partir de uma - ampla variedade de dispositivos, sistemas operacionais e - tipos de partição. Existem também muitas opções para - personalização, tais como telas splash gráficas; reprodução - de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. -

-
-

- Cuidado -

-

- Existe um comando, grub-mkconfig, que pode escrever um - arquivo de configuração automaticamente. Ele usa um - conjunto de scripts em /etc/grub.d/ e destruirá quaisquer - personalizações que você fizer. Esses scripts são - projetados primariamente para distribuições não fonte e não - são recomendados para o LFS. Se você instalar uma - distribuição do Linux comercial, [então] existe uma boa - chance de que esse aplicativo será executado. Tenha certeza - de produzir uma cópia de segurança do seu arquivo grub.cfg. -

-
-
-
-
-
-
-
-
-

- Capítulo 11. O Fim -

-
-
-
-
-
-
-
-

- 11.1. O Fim -

-
-
-
-

- Muito bem! O novo sistema LFS está instalado! Nós desejamos a - você muito sucesso com seu novo e brilhante sistema Linux - construído sob medida. -

-

- Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse arquivo, é muito - fácil para você (e para nós se você precisar pedir por ajuda em - algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -

-
echo 11.1 > /etc/lfs-release
-

- Dois arquivos descrevendo o sistema instalado talvez sejam - usados por pacotes que podem ser instalados no sistema - posteriormente, ou em forma de binário ou construindo eles. -

-

- O primeiro deles mostra a situação do seu novo sistema com - respeito ao Linux Standards Base (LSB). Para criar esse - arquivo, execute: -

-
cat > /etc/lsb-release << "EOF"
-DISTRIB_ID="Linux From Scratch"
-DISTRIB_RELEASE="11.1"
-DISTRIB_CODENAME="<seu nome aqui>"
-DISTRIB_DESCRIPTION="Linux From Scratch"
-EOF
-

- O segundo deles contém aproximadamente a mesma informação, e é - usado pelo systemd e alguns ambientes de área de trabalho - gráficos. Para criar esse arquivo, execute: -

-
cat > /etc/os-release << "EOF"
-NAME="Linux From Scratch"
-VERSION="11.1"
-ID=lfs
-PRETTY_NAME="Linux From Scratch 11.1"
-VERSION_CODENAME="<seu nome aqui>"
-EOF
-

- Tenha certeza de colocar algum tipo de personalização para os - campos 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o - sistema unicamente seu. -

-
-
-
-
-
-

- 11.2. Seja Contado -

-
-
-
-

- Agora que você terminou o livro, você quer ser contada(o) como - uma(m) usuária(o) do LFS? Vá para https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - e registre-se como uma(m) usuária(o) do LFS fornecendo seu nome - e a primeira versão do LFS que você usou. -

-

- Vamos reinicializar no LFS agora. -

-
-
-
-
-
-

- 11.3. Reinicializando o - Sistema -

-
-
-
-

- Agora que todo o software foi instalado, é hora de - reinicializar seu computador. Entretanto, você deveria estar - ciente de umas poucas coisas. O sistema que você criou neste - livro é bastante mínimo, e provavelmente não terá a - funcionalidade que você precisaria para ser capaz de seguir em - frente. Instalando uns poucos pacotes extras a partir do livro - BLFS enquanto ainda em seu ambiente chroot atual, você pode - deixar-se em uma posição muito melhor para continuar tão logo - você reinicialize em sua nova instalação do LFS. Aqui estão - algumas sugestões: -

-
-
    -
  • -

    - Um navegador de modo de texto como o - Lynx permitirá que você facilmente visualize o livro - BLFS em um terminal virtual, enquanto constrói pacotes em - outro. -

    -
  • -
  • -

    - O pacote - make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema - verifique certificados SSL fornecidos por servidores - remotos (por exemplo, um sítio da web usando o HTTPS). -

    -
  • -
  • -

    - O pacote - GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. -

    -
  • -
  • -

    - Se você estiver em uma situação onde configuração de IP - estático não atende suas exigências de rede, [então] - instalar um pacote como - dhcpcd ou a porção cliente do - dhcp talvez seja útil. -

    -
  • -
  • -

    - Instalar - sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os - pacotes resultantes em seu novo sistema. -

    -
  • -
  • -

    - Se você quiser acessar seu novo sistema a partir de um - sistema remoto dentro de um ambiente GUI confortável, - [então] instale - openssh. -

    -
  • -
  • -

    - Para tornar a obtenção de arquivos por meio da Internet - mais fácil, instale - wget. -

    -
  • -
  • -

    - Para se conectar a um ponto de acesso sem fios para rede, - instale - wpa_supplicant. -

    -
  • -
  • -

    - Finalmente, uma revisão dos seguintes arquivos de - configuração também é apropriada neste ponto. -

    -
    -
      -
    • -

      - /etc/bashrc -

      -
    • -
    • -

      - /etc/dircolors -

      -
    • -
    • -

      - /etc/fstab -

      -
    • -
    • -

      - /etc/hosts -

      -
    • -
    • -

      - /etc/inputrc -

      -
    • -
    • -

      - /etc/profile -

      -
    • -
    • -

      - /etc/resolv.conf -

      -
    • -
    • -

      - /etc/vimrc -

      -
    • -
    • -

      - /root/.bash_profile -

      -
    • -
    • -

      - /root/.bashrc -

      -
    • -
    • -

      - /etc/sysconfig/ifconfig.eth0 -

      -
    • -
    -
    -
  • -
-
-

- Agora que nós dissemos isso, vamos em frente para inicializar - nossa brilhante e nova instalação do LFS pela primeira vez! - Primeiro saia do ambiente chroot: -

-
logout
-

- Então desmonte os sistemas de arquivos virtuais: -

-
umount -v $LFS/dev/pts
-umount -v $LFS/dev
-umount -v $LFS/run
-umount -v $LFS/proc
-umount -v $LFS/sys
-

- Se múltiplas partições foram criadas, [então] desmonte as - outras partições antes de desmontar a principal, como isto: -

-
umount -v $LFS/usr
-umount -v $LFS/home
-umount -v $LFS
-

- Desmonte o próprio sistema de arquivos do LFS: -

-
umount -v $LFS
-

- Agora, reinicialize o sistema com: -

-
shutdown -r now
-

- Assumindo que o carregador de inicialização GRUB foi - configurado como destacado anteriormente, o menu está - configurado para inicializar o LFS - 11.1 automaticamente. -

-

- Quando a reinicialização estiver completa, o sistema LFS estará - pronto para uso e mais software talvez seja adicionado para - suprir suas necessidades. -

-
-
-
-
-
-

- 11.4. E agora? -

-
-
-
-

- Obrigado por ler este livro LFS. Nós esperamos que você tenha - achado este livro útil e tenha aprendido mais sobre o processo - de criação do sistema. -

-

- Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: E - depois? Para responder a essa pergunta, - nós compilamos uma lista de recursos para você. -

-
-
    -
  • -

    - Manutenção -

    -

    - Notificações de defeitos e segurança são relatadas - regularmente para todo software. Uma vez que um sistema - LFS é compilado a partir do fonte, cabe a você se manter - a par de tais relatórios. Existem vários recursos online - que rastreiam tais relatórios, alguns dos quais estão - mostrados abaixo: -

    -
    -
      -
    • -

      - CERT (Computer Emergency - Response Team) -

      -

      - O CERT tem uma lista de discussão que publica - alertas de segurança a respeito de vários sistemas - operacionais e aplicativos. Informação de - assinatura está disponível em http://www.us-cert.gov/cas/signup.html. -

      -
    • -
    • -

      - Bugtraq -

      -

      - Bugtraq é uma lista de discussão de segurança de - computador de divulgação completa. Ela publica - problemas de segurança descobertos recentemente, e - ocasionalmente consertos potenciais para eles. - Informação de assinatura está disponível em - http://www.securityfocus.com/archive. -

      -
    • -
    -
    -
  • -
  • -

    - Beyond Linux From Scratch -

    -

    - O livro Beyond Linux From Scratch cobre procedimentos de - instalação para uma ampla gama de software além do escopo - do Livro LFS. O projeto BLFS está localizado em https://www.linuxfromscratch.org/blfs/view/11.1/. -

    -
  • -
  • -

    - LFS Hints -

    -

    - As Dicas do LFS são uma coleção de documentos - educacionais submetidos por voluntários na comunidade do - LFS. As dicas estão disponíveis em - https://www.linuxfromscratch.org/hints/downloads/files/. -

    -
  • -
  • -

    - Listas de discussão -

    -

    - Existem várias listas de discussão do LFS que você talvez - assine se você estiver necessitada(o) de ajuda; quiser se - manter atualizada(o) com os mais recentes - desenvolvimentos; quiser contribuir para o projeto; e - mais. Veja-se Capítulo 1 - - Listas de Discussão para mais informação. -

    -
  • -
  • -

    - The Linux Documentation Project -

    -

    - O objetivo do The Linux Documentation Project (TLDP) é o - de colaborar em todos os problemas de documentação do - Linux. O TLDP apresenta uma grande coleção de HOWTOs, - guias e páginas de manual. Ele está localizado em - http://www.tldp.org/. -

    -
  • -
-
-
-
-
-
-
-
-
-

- Parte V. Anexos -

-
-
-
-
-
-
-
-

- Apêndice A. Siglas e Termos -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ABI -

-
-

- Application Binary Interface -

-
-

- ALFS -

-
-

- Automated Linux From Scratch -

-
-

- API -

-
-

- Application Programming Interface -

-
-

- ASCII -

-
-

- American Standard Code for Information Interchange -

-
-

- BIOS -

-
-

- Basic Input/Output System -

-
-

- BLFS -

-
-

- Beyond Linux From Scratch -

-
-

- BSD -

-
-

- Berkeley Software Distribution -

-
-

- chroot -

-
-

- change root -

-
-

- CMOS -

-
-

- Complementary Metal Oxide Semiconductor -

-
-

- COS -

-
-

- Class Of Service -

-
-

- CPU -

-
-

- Central Processing Unit -

-
-

- CRC -

-
-

- Cyclic Redundancy Check -

-
-

- CVS -

-
-

- Concurrent Versions System -

-
-

- DHCP -

-
-

- Dynamic Host Configuration Protocol -

-
-

- DNS -

-
-

- Domain Name Service -

-
-

- EGA -

-
-

- Enhanced Graphics Adapter -

-
-

- ELF -

-
-

- Executable and Linkable Format -

-
-

- EOF -

-
-

- End of File -

-
-

- EQN -

-
-

- equation -

-
-

- ext2 -

-
-

- second extended file system -

-
-

- ext3 -

-
-

- third extended file system -

-
-

- ext4 -

-
-

- fourth extended file system -

-
-

- FAQ -

-
-

- Frequently Asked Questions -

-
-

- FHS -

-
-

- Filesystem Hierarchy Standard -

-
-

- FIFO -

-
-

- First-In, First Out -

-
-

- FQDN -

-
-

- Fully Qualified Domain Name -

-
-

- FTP -

-
-

- File Transfer Protocol -

-
-

- GB -

-
-

- Gigabytes -

-
-

- GCC -

-
-

- GNU Compiler Collection -

-
-

- GID -

-
-

- Group Identifier -

-
-

- GMT -

-
-

- Greenwich Mean Time -

-
-

- HTML -

-
-

- Hypertext Markup Language -

-
-

- IDE -

-
-

- Integrated Drive Electronics -

-
-

- IEEE -

-
-

- Institute of Electrical and Electronic Engineers -

-
-

- IO -

-
-

- Input/Output -

-
-

- IP -

-
-

- Internet Protocol -

-
-

- IPC -

-
-

- Inter-Process Communication -

-
-

- IRC -

-
-

- Internet Relay Chat -

-
-

- ISO -

-
-

- International Organization for Standardization -

-
-

- ISP -

-
-

- Internet Service Provider -

-
-

- KB -

-
-

- Kilobytes -

-
-

- LED -

-
-

- Light Emitting Diode -

-
-

- LFS -

-
-

- Linux From Scratch -

-
-

- LSB -

-
-

- Linux Standard Base -

-
-

- MB -

-
-

- Megabytes -

-
-

- MBR -

-
-

- Master Boot Record -

-
-

- MD5 -

-
-

- Message Digest 5 -

-
-

- NIC -

-
-

- Network Interface Card -

-
-

- NLS -

-
-

- Native Language Support -

-
-

- NNTP -

-
-

- Network News Transport Protocol -

-
-

- NPTL -

-
-

- Native POSIX Threading Library -

-
-

- OSS -

-
-

- Open Sound System -

-
-

- PCH -

-
-

- Pre-Compiled Headers -

-
-

- PCRE -

-
-

- Perl Compatible Regular Expression -

-
-

- PID -

-
-

- Process Identifier -

-
-

- PTY -

-
-

- pseudo terminal -

-
-

- QOS -

-
-

- Quality Of Service -

-
-

- RAM -

-
-

- Random Access Memory -

-
-

- RPC -

-
-

- Remote Procedure Call -

-
-

- RTC -

-
-

- Real Time Clock -

-
-

- SBU -

-
-

- Standard Build Unit -

-
-

- SCO -

-
-

- The Santa Cruz Operation -

-
-

- SHA1 -

-
-

- Secure-Hash Algorithm 1 -

-
-

- TLDP -

-
-

- The Linux Documentation Project -

-
-

- TFTP -

-
-

- Trivial File Transfer Protocol -

-
-

- TLS -

-
-

- Thread-Local Storage -

-
-

- UID -

-
-

- User Identifier -

-
-

- umask -

-
-

- user file-creation mask -

-
-

- USB -

-
-

- Universal Serial Bus -

-
-

- UTC -

-
-

- Coordinated Universal Time -

-
-

- UUID -

-
-

- Universally Unique Identifier -

-
-

- VC -

-
-

- Virtual Console -

-
-

- VGA -

-
-

- Video Graphics Array -

-
-

- VT -

-
-

- Virtual Terminal -

-
-
-
-
-
-
-
-

- Apêndice B. Reconhecimentos -

-
-
-
-

- Nós gostaríamos de agradecer às seguintes pessoas e organizações - por suas contribuições para o Projeto Linux From Scratch. -

-
-
    -
  • -

    - Gerard Beekmans - <gerard AT linuxfromscratch D0T org> – Criador do LFS -

    -
  • -
  • -

    - Bruce Dubbs - <bdubbs AT linuxfromscratch D0T org> – Editor-chefe do - LFS -

    -
  • -
  • -

    - Jim - Gifford <jim AT linuxfromscratch D0T org> – - Colíder do Projeto CLFS -

    -
  • -
  • -

    - Pierre Labastie - <pierre AT linuxfromscratch D0T org> – Editor do BLFS - e Líder do ALFS -

    -
  • -
  • -

    - DJ - Lucas <dj AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Ken - Moffat <ken AT linuxfromscratch D0T org> – Editor - do BLFS -

    -
  • -
  • -

    - Incontáveis outras pessoas nas várias listas de discussão - do LFS e BLFS que ajudaram a tornar este livro possível - dando suas sugestões; testando o livro; e submetendo - relatórios de defeitos; instruções; e suas experiências com - a instalação de vários pacotes. -

    -
  • -
-
-

- Tradutoras(es) -

-
-
    -
  • -

    - Manuel - Canales Esparcia <macana AT macana-es D0T com> – - Projeto de tradução do LFS para espanhol -

    -
  • -
  • -

    - Johan Lenglet - <johan AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês até 2008 -

    -
  • -
  • -

    - Jean-Philippe - Mengual <jmengual AT linuxfromscratch D0T org> – - Projeto de tradução do LFS para francês 2008-2016 -

    -
  • -
  • -

    - Julien Lepiller - <jlepiller AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês 2017-presente -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para português -

    -
  • -
  • -

    - Thomas - Reitelbach <tr AT erdfunkstelle D0T de> – Projeto - de tradução do LFS para alemão -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
  • -

    - Elena Shevcova - <helen AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
-
-

- Mantenedoras(es) de Espelhos -

-

- Espelhos da América do Norte -

-
-
    -
  • -

    - Scott - Kveton <scott AT osuosl D0T org> – espelho - lfs.oregonstate.edu -

    -
  • -
  • -

    - William - Astle <lost AT l-w D0T net> – espelho - ca.linuxfromscratch.org -

    -
  • -
  • -

    - Eujon Sellers - <jpolen@rackspace.com> – espelho - lfs.introspeed.com -

    -
  • -
  • -

    - Justin - Knierim <tim@idge.net> – espelho - lfs-matrix.net -

    -
  • -
-
-

- Espelhos da América do Sul -

-
- -
-

- Espelhos Europeus -

-
-
    -
  • -

    - Guido - Passet <guido AT primerelay D0T net> – espelho - nl.linuxfromscratch.org -

    -
  • -
  • -

    - Bastiaan - Jacques <baafie AT planet D0T nl> – espelho - lfs.pagefault.net -

    -
  • -
  • -

    - Sven - Cranshoff <sven D0T cranshoff AT lineo D0T be> – - espelho lfs.lineo.be -

    -
  • -
  • -

    - Scarlet Belgium – espelho lfs.scarlet.be -

    -
  • -
  • -

    - Sebastian - Faulborn <info AT aliensoft D0T org> – espelho - lfs.aliensoft.org -

    -
  • -
  • -

    - Stuart - Fox <stuart AT dontuse D0T ms> – espelho - lfs.dontuse.ms -

    -
  • -
  • -

    - Ralf - Uhlemann <admin AT realhost D0T de> – espelho - lfs.oss-mirror.org -

    -
  • -
  • -

    - Antonin Sprinzl - <Antonin D0T Sprinzl AT tuwien D0T ac D0T at> – espelho - at.linuxfromscratch.org -

    -
  • -
  • -

    - Fredrik Danerklint - <fredan-lfs AT fredan D0T org> – espelho - se.linuxfromscratch.org -

    -
  • -
  • -

    - Franck - <franck AT linuxpourtous D0T com> – espelho - lfs.linuxpourtous.com -

    -
  • -
  • -

    - Philippe - Baque <baque AT cict D0T fr> – espelho lfs.cict.fr -

    -
  • -
  • -

    - Vitaly - Chekasin <gyouja AT pilgrims D0T ru> – espelho - lfs.pilgrims.ru -

    -
  • -
  • -

    - Benjamin - Heil <kontakt AT wankoo D0T org> – espelho - lfs.wankoo.org -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – espelho - linuxfromscratch.org.ru -

    -
  • -
-
-

- Espelhos Asiáticos -

-
-
    -
  • -

    - Satit - Phermsawang <satit AT wbac D0T ac D0T th> – espelho - lfs.phayoune.org -

    -
  • -
  • -

    - Shizunet - Co.,Ltd. <info AT shizu-net D0T jp> – espelho - lfs.mirror.shizu-net.jp -

    -
  • -
  • -

    - Init - World <http://www.initworld.com/> – espelho - lfs.initworld.com -

    -
  • -
-
-

- Espelhos da Austrália -

-
-
    -
  • -

    - Jason - Andrade <jason AT dstc D0T edu D0T au> – espelho - au.linuxfromscratch.org -

    -
  • -
-
-

- Ex-membros da Equipe do Projeto -

-
-
    -
  • -

    - Christine - Barczak <theladyskye AT linuxfromscratch D0T org> - – Editor do Livro LFS -

    -
  • -
  • -

    - Archaic <archaic@linuxfromscratch.org> – - Escritor/Editor Técnico do LFS (Dicas e Patches); Líder do - Projeto HLFS; Editor do BLFS; Mantenedor do Projeto Dicas e - Patches -

    -
  • -
  • -

    - Matthew Burgess - <matthew AT linuxfromscratch D0T org> – Líder de - Projeto do LFS; Escritor/Editor Técnico do LFS -

    -
  • -
  • -

    - Nathan Coulson - <nathan AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Timothy Bauscher -

    -
  • -
  • -

    - Robert Briggs -

    -
  • -
  • -

    - Ian Chilton -

    -
  • -
  • -

    - Jeroen Coumans - <jeroen AT linuxfromscratch D0T org> – Desenvolvedor - de Sítio da Web; Mantenedor de FAQ -

    -
  • -
  • -

    - Manuel Canales - Esparcia <manuel AT linuxfromscratch D0T org> – - Mantenedor de XML e XSL do LFS/BLFS/HLFS -

    -
  • -
  • -

    - Alex Groenewoud – Escritor Técnico do LFS -

    -
  • -
  • -

    - Marc Heerdink -

    -
  • -
  • -

    - Jeremy Huntwork - <jhuntwork AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor de LiveCD do LFS -

    -
  • -
  • -

    - Bryan Kadzban - <bryan AT linuxfromscratch D0T org> – Escritor Técnico - do LFS -

    -
  • -
  • -

    - Mark Hymers -

    -
  • -
  • -

    - Seth W. Klein – Mantenedor do FAQ -

    -
  • -
  • -

    - Nicholas Leippe - <nicholas AT linuxfromscratch D0T org> – Mantenedor da - Wiki -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Infraestrutura de Sítio Web -

    -
  • -
  • -

    - Randy McMurchy - <randy AT linuxfromscratch D0T org> – Líder de Projeto - do BLFS; Editor do LFS -

    -
  • -
  • -

    - Dan Nicholson - <dnicholson AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Alexander E. - Patrakov <alexander AT linuxfromscratch D0T org> – - Escritor Técnico do LFS; Editor de Internacionalização do - LFS; Mantenedor de Live CD do LFS -

    -
  • -
  • -

    - Simon Perreault -

    -
  • -
  • -

    - Scot Mc Pherson - <scot AT linuxfromscratch D0T org> – Mantenedor do - Gateway NNTP do LFS -

    -
  • -
  • -

    - Douglas R. Reno - <renodr AT linuxfromscratch D0T org> – Editor do - Systemd -

    -
  • -
  • -

    - Ryan Oliver - <ryan AT linuxfromscratch D0T org> – Colíder de - Projeto do CLFS -

    -
  • -
  • -

    - Greg - Schafer <gschafer AT zip D0T com D0T au> – Escritor - Técnico do LFS e Arquiteto do Método de Construção de - Habilitação de 64 bits de Próxima Geração -

    -
  • -
  • -

    - Jesse Tie-Ten-Quee – Escritor Técnico do LFS -

    -
  • -
  • -

    - James Robertson - <jwrober AT linuxfromscratch D0T org> – Mantenedor do - Bugzilla -

    -
  • -
  • -

    - Tushar Teredesai - <tushar AT linuxfromscratch D0T org> – Editor do Livro - BLFS; Líder de Projeto de Dicas e Patches -

    -
  • -
  • -

    - Jeremy Utley - <jeremy AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Zack - Winkles <zwinkles AT gmail D0T com> – Escritor - Técnico do LFS -

    -
  • -
-
-
-
-
-
-
-

- Apêndice C. Dependências -

-
-
-
-

- Cada pacote construído no LFS depende de um ou mais outros - pacotes para construir e instalar adequadamente. Alguns pacotes - até participam em dependências circulares, isto é, o primeiro - pacote depende do segundo o qual, na sequência, depende do - primeiro. Por causa dessas dependências, a ordem na qual pacotes - são construídos no LFS é muito importante. O propósito desta - página é o de documentar as dependências de cada pacote - construído no LFS. -

-

- Para cada pacote que é construído, existem três, e as vezes até - cinco tipos de dependências listadas abaixo. A primeira lista que - outros pacotes necessitam estar disponíveis para compilar e - instalar o pacote em questão. A segunda lista os pacotes que - precisam estar disponíveis quando quaisquer aplicativos ou - bibliotecas oriundos do pacote forem usados em tempo de execução. - A terceira lista que pacotes, em adição àqueles na primeira - lista, necessitam estar disponíveis para executar as suítes de - teste. A quarta lista de dependências são pacotes que exigem que - esse pacote esteja construído e instalado no local final dele - antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente - caminhos para binários dentro dos scripts deles. Se não for - construído em uma certa ordem, [então] isso poderia resultar em - caminhos como /tools/bin/[binário] sendo colocados dentro de - scripts instalados para o sistema final. Isso obviamente não é - desejável. -

-

- A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) - usuária(o). Esses pacotes talvez tenham dependências obrigatórias - ou opcionais adicionais deles próprios. Para essas dependências, - a prática recomendada é a de instalá-las depois de completar o - livro LFS e então voltar e reconstruir o pacote LFS. Em muitos - casos, a reinstalação é endereçada no BLFS. -

-

- Acl -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Gettext, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Attr e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Sed, Tar e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Attr -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Acl e Libcap -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Autoconf -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Grep, M4, Make, Perl, - Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils, GCC e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake -
-
-
-
- -
-
- Dependências opcionais: - - Emacs -
-
-
-

- Automake -

-
- -
-
- Instalação depende de: - Autoconf, Bash, Coreutils, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Binutils, Bison, Bzip2, DejaGNU, - Diffutils, Expect, Findutils, Flex, GCC, Gettext, Gzip, - Libtool e Tar -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Bash -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, - Readline, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg -
-
-
-

- Bc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Binutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - File, Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Elfutils -
-
-
-

- Bison -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Findutils e Flex -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kbd e Tar -
-
-
-
- -
-
- Dependências opcionais: - - Doxygen -
-
-
-

- Bzip2 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Make e Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Check -

-
- -
-
- Instalação depende de: - Gawk, GCC, Grep, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Gawk -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Coreutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Libcap, Make, OpenSSL, Patch, - Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, E2fsprogs, Findutils, Shadow - e Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, Diffutils, Eudev, - Findutils e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Expect.pm e IO::Tty -
-
-
-

- DejaGNU -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Diffutils, Expect, - GCC, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Expect e Bash -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Diffutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- E2fsprogs -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Gzip, Make, Sed, Texinfo e - Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Procps-ng e Psmisc -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Eudev -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Gperf, Make, Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Kmod, Xz, - Util-linux e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expat -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python e - XML::Parser -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expect -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Patch, Sed e Tcl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Tk -
-
-
-

- File -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed, Xz e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Bzip2, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Findutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Flex -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - M4 -
-
-
-
- -
-
- Suíte de teste depende de: - Bison e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Binutils, IProute2, Kbd, - Kmod e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gawk -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Make, MPFR, Patch, Readline, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Mpfr -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- GCC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, - MPC, MPFR, Patch, Perl, Sed, Tar, Texinfo e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Binutils, - Glibc, Mpc e Python -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - GNAT e ISL -
-
-
-

- GDBM -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gettext -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Bash, Gcc e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Perl e Tcl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake e Bison -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Glibc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API - do Linux, Make, Perl, Python, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - File -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- GMP -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: MPFR e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gperf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Grep -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - - PCRE e - libsigsegv -
-
-
-

- Groff -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Gawk, - GCC, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB e Perl -
-
-
-
- -
-
- Dependências opcionais: - - ghostscript e - Uchardet -
-
-
-

- GRUB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, - Texinfo e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GCC, Gettext, - Glibc, Xz e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gzip -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Less -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Iana-Etc -

-
- -
-
- Instalação depende de: - Coreutils -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Perl -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Inetutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed, Texinfo e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc, Ncurses - e Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Tar -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Intltool -

-
- -
-
- Instalação depende de: - Bash, Gawk, Glibc, Make, Perl, Sed e - XML::Parser -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Glibc, Grep, Perl e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- IProute2 -

-
- -
-
- Instalação depende de: - Bash, Bison, Coreutils, Flex, GCC, - Glibc, Make, Libcap, Libelf, Cabeçalhos da API do Linux e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Glibc, Libcap, Libelf e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB e - iptables -
-
-
-

- Jinja2 -

-
- -
-
- Instalação depende de: - MarkupSafe e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: MarkupSafe e - Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kbd -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Check, - Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kmod -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Less -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gzip -
-
-
-
- -
-
- Dependências opcionais: - - PCRE -
-
-
-

- Libcap -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Glibc, Perl, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Shadow -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM -
-
-
-

- Libelf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libffi -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGnu -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libpipeline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Check -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libtool -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Binutils, Coreutils, File, GCC, Glibc, Grep, Make e - Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Automake e Findutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Linux -

-
- -
-
- Instalação depende de: - Bash, Bc, Binutils, Coreutils, - Diffutils, Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, - Make, Ncurses, OpenSSL, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - cpio -
-
-
-

- Cabeçalhos da API do Linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Findutils, - GCC, Glibc, Grep, Gzip, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- M4 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf e Bison -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- Make -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Guile -
-
-
-

- Man-DB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, Flex, - GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, - Libpipeline, Make, Sed e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GDBM, Groff, - Glibc, Gzip, Less, Libpipeline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Man-Pages -

-
- -
-
- Instalação depende de: - Bash, Coreutils e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MarkupSafe -

-
- -
-
- Instalação depende de: - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Jinja2 -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Meson -

-
- -
-
- Instalação depende de: - Ninja e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, GMP e - MPFR -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPFR -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e GMP -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gawk e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ncurses -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, GRUB, Inetutils, - Less, Procps-ng, Psmisc, Readline, Texinfo, Util-linux e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ninja -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC e - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Meson -
-
-
-
- -
-
- Dependências opcionais: - - Asciidoc, - Doxygen, - Emacs e re2c -
-
-
-

- OpenSSL -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Make e - Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Kmod e - Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Patch -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Patch -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Ed -
-
-
-

- Perl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - GDBM, Glibc, Grep, Groff, Make, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GDBM e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Iana-Etc, Less e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB -
-
-
-

- Pkg-config -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Popt e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kmod -
-
-
-
- -
-
- Dependências opcionais: - - Glib2 -
-
-
-

- Procps-ng -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Ncurses -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Psmisc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Python -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Gdbm, Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, - Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Bzip2, Expat, Gdbm, - Glibc, Libffi, Ncurses, OpenSSL e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - GDB e Valgrind -
-
-
-
- -
-
- Precisa ser instalado antes - de: Ninja -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB, - libnsl, - SQLite e - Tk -
-
-
-

- Readline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash e Gawk -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Sed -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: E2fsprogs, File, Libtool e - Shadow -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Shadow -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, - Libcap, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils -
-
-
-
- -
-
- Dependências opcionais: - - CrackLib e - Linux-PAM -
-
-
-

- Sysklogd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Systemd -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, - Libcap, Meson, Sed, Util-linux e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Libcap e Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
- -

- Sysvinit -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tar -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Bison, - Coreutils, GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Bzip2, - Glibc, Gzip e Xz -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Diffutils, Findutils, Gawk e - Gzip -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tcl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Texinfo -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Util-linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Eudev, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, - Make, Ncurses, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Libcap, - Ncurses, Readline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM e - smartmontools -
-
-
-

- Vim -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Python, Ncurses e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg, - GTK+2, LessTif, - Ruby e - GPM -
-
-
-

- XML::Parser -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Glibc, Make e Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Expat, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Intltool -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Xz -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev, File, GRUB, Kmod e - Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zlib -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File, Kmod, Perl e - Util-linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zstd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Gzip, - Make e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC e Systemd -
-
-
-
- -
-
- Dependências opcionais: - LZ4 -
-
-
-
-
-
-
-
-

- Apêndice D. Scripts de inicialização e - configuração do sistema versão-20210608 -

-
-
-
-

- Os scripts neste anexo estão listados pelo diretório onde eles - normalmente residem. A ordem é /etc/rc.d/init.d; /etc/sysconfig; /etc/sysconfig/network-devices; e /etc/sysconfig/network-devices/services. Dentro - de cada seção, os arquivos estão listados na ordem em que eles - normalmente são chamados. -

-
-
-
-
-

- D.1. /etc/rc.d/init.d/rc -

-
-
-
-

- O script rc é o primeiro script - chamado pelo init e inicia o - processo de inicialização. -

-
#!/bin/bash
-########################################################################
-# Begin rc
-#
-# Description : Main Run Level Control Script
-#
-# Authors     : Gerard Beekmans  - gerard AT linuxfromscratch D0T org
-#             : DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-
-print_error_msg()
-{
-   log_failure_msg
-   # $i is set when called
-   MSG="FAILURE:\n\nYou should not be reading this error message.\n\n"
-   MSG="${MSG}It means that an unforeseen error took place in\n"
-   MSG="${MSG}${i},\n"
-   MSG="${MSG}which exited with a return value of ${error_value}.\n"
-
-   MSG="${MSG}If you're able to track this error down to a bug in one of\n"
-   MSG="${MSG}the files provided by the ${DISTRO_MINI} book,\n"
-   MSG="${MSG}please be so kind to inform us at ${DISTRO_CONTACT}.\n"
-   log_failure_msg "${MSG}"
-
-   log_info_msg "Press Enter to continue..."
-   wait_for_user
-}
-
-check_script_status()
-{
-   # $i is set when called
-   if [ ! -f ${i} ]; then
-      log_warning_msg "${i} is not a valid symlink."
-      SCRIPT_STAT="1"
-   fi
-
-   if [ ! -x ${i} ]; then
-      log_warning_msg "${i} is not executable, skipping."
-      SCRIPT_STAT="1"
-   fi
-}
-
-run()
-{
-   if [ -z $interactive ]; then
-      ${1} ${2}
-      return $?
-   fi
-
-   while true; do
-      read -p "Run ${1} ${2} (Yes/no/continue)? " -n 1 runit
-      echo
-
-      case ${runit} in
-         c | C)
-            interactive=""
-            ${i} ${2}
-            ret=${?}
-            break;
-            ;;
-
-         n | N)
-            return 0
-            ;;
-
-         y | Y)
-            ${i} ${2}
-            ret=${?}
-            break
-            ;;
-      esac
-   done
-
-   return $ret
-}
-
-# Read any local settings/overrides
-[ -r /etc/sysconfig/rc.site ] && source /etc/sysconfig/rc.site
-
-DISTRO=${DISTRO:-"Linux From Scratch"}
-DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@linuxfromscratch.org (Registration required)"}
-DISTRO_MINI=${DISTRO_MINI:-"LFS"}
-IPROMPT=${IPROMPT:-"no"}
-
-# These 3 signals will not cause our script to exit
-trap "" INT QUIT TSTP
-
-[ "${1}" != "" ] && runlevel=${1}
-
-if [ "${runlevel}" == "" ]; then
-   echo "Usage: ${0} <runlevel>" >&2
-   exit 1
-fi
-
-previous=${PREVLEVEL}
-[ "${previous}" == "" ] && previous=N
-
-if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then
-   log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n"
-   exit 1
-fi
-
-if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; then IPROMPT="no"; fi
-
-# Note: In ${LOGLEVEL:-7}, it is ':' 'dash' '7', not minus 7
-if [ "$runlevel" == "S" ]; then
-   [ -r /etc/sysconfig/console ] && source /etc/sysconfig/console
-   dmesg -n "${LOGLEVEL:-7}"
-fi
-
-if [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; then
-   # The total length of the distro welcome string, without escape codes
-   wlen=${wlen:-$(echo "Welcome to ${DISTRO}" | wc -c )}
-   welcome_message=${welcome_message:-"Welcome to ${INFO}${DISTRO}${NORMAL}"}
-
-   # The total length of the interactive string, without escape codes
-   ilen=${ilen:-$(echo "Press 'I' to enter interactive startup" | wc -c )}
-   i_message=${i_message:-"Press '${FAILURE}I${NORMAL}' to enter interactive startup"}
-
-
-   # dcol and icol are spaces before the message to center the message
-   # on screen. itime is the amount of wait time for the user to press a key
-   wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 ))
-   icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 ))
-   itime=${itime:-"3"}
-
-   echo -e "\n\n"
-   echo -e "\\033[${wcol}G${welcome_message}"
-   echo -e "\\033[${icol}G${i_message}${NORMAL}"
-   echo ""
-   read -t "${itime}" -n 1 interactive 2>&1 > /dev/null
-fi
-
-# Make lower case
-[ "${interactive}" == "I" ] && interactive="i"
-[ "${interactive}" != "i" ] && interactive=""
-
-# Read the state file if it exists from runlevel S
-[ -r /run/interactive ] && source /run/interactive
-
-# Attempt to stop all services started by the previous runlevel,
-# and killed in this runlevel
-if [ "${previous}" != "N" ]; then
-   for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null)
-   do
-      check_script_status
-      if [ "${SCRIPT_STAT}" == "1" ]; then
-         SCRIPT_STAT="0"
-         continue
-      fi
-
-      suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]}
-      prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
-      sysinit_start=/etc/rc.d/rcS.d/S[0-9][0-9]$suffix
-
-      if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then
-         if [ ! -f ${prev_start} -a  ! -f ${sysinit_start} ]; then
-            MSG="WARNING:\n\n${i} can't be "
-            MSG="${MSG}executed because it was not "
-            MSG="${MSG}not started in the previous "
-            MSG="${MSG}runlevel (${previous})."
-            log_warning_msg "$MSG"
-            continue
-         fi
-      fi
-
-      run ${i} stop
-      error_value=${?}
-
-      if [ "${error_value}" != "0" ]; then print_error_msg; fi
-   done
-fi
-
-if [ "${previous}" == "N" ]; then export IN_BOOT=1; fi
-
-if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; then
-   touch /fastboot
-fi
-
-
-# Start all functions in this runlevel
-for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null)
-do
-   if [ "${previous}" != "N" ]; then
-      suffix=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]}
-      stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-9]$suffix
-      prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
-
-      [ -f ${prev_start} -a ! -f ${stop} ] && continue
-   fi
-
-   check_script_status
-      if [ "${SCRIPT_STAT}" == "1" ]; then
-         SCRIPT_STAT="0"
-         continue
-      fi
-
-   case ${runlevel} in
-      0|6)
-         run ${i} stop
-         ;;
-      *)
-         run ${i} start
-         ;;
-   esac
-
-   error_value=${?}
-
-   if [ "${error_value}" != "0" ]; then print_error_msg; fi
-done
-
-# Store interactive variable on switch from runlevel S and remove if not
-if [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; then
-    echo "interactive=\"i\"" > /run/interactive
-else
-    rm -f /run/interactive 2> /dev/null
-fi
-
-# Copy the boot log on initial boot only
-if [ "${previous}" == "N" -a  "${runlevel}" != "S" ]; then
-   cat $BOOTLOG >> /var/log/boot.log
-
-   # Mark the end of boot
-   echo "--------" >> /var/log/boot.log
-
-   # Remove the temporary file
-   rm -f $BOOTLOG 2> /dev/null
-fi
-
-# End rc
-
-
-
-
-
-
-

- D.2. /lib/lsb/init-functions -

-
-
-
-
#!/bin/sh
-########################################################################
-#
-# Begin /lib/lsb/init-funtions
-#
-# Description : Run Level Control Functions
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#             : DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-# Notes       : With code based on Matthias Benkmann's simpleinit-msb
-#               http://winterdrache.de/linux/newboot/index.html
-#
-#               The file should be located in /lib/lsb
-#
-########################################################################
-
-## Environmental setup
-# Setup default values for environment
-umask 022
-export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
-
-## Set color commands, used via echo
-# Please consult `man console_codes for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font.  This does
-# not affect framebuffer consoles
-
-NORMAL="\\033[0;39m"         # Standard console grey
-SUCCESS="\\033[1;32m"        # Success is green
-WARNING="\\033[1;33m"        # Warnings are yellow
-FAILURE="\\033[1;31m"        # Failures are red
-INFO="\\033[1;36m"           # Information is light cyan
-BRACKET="\\033[1;34m"        # Brackets are blue
-
-# Use a colored prefix
-BMPREFIX="      "
-SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
-FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-SKIP_PREFIX="${INFO}  S   ${NORMAL}"
-
-SUCCESS_SUFFIX="${BRACKET}[${SUCCESS}  OK  ${BRACKET}]${NORMAL}"
-FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMAL}"
-WARNING_SUFFIX="${BRACKET}[${WARNING} WARN ${BRACKET}]${NORMAL}"
-SKIP_SUFFIX="${BRACKET}[${INFO} SKIP ${BRACKET}]${NORMAL}"
-
-BOOTLOG=/run/bootlog
-KILLDELAY=3
-SCRIPT_STAT="0"
-
-# Set any user specified environment variables e.g. HEADLESS
-[ -r /etc/sysconfig/rc.site ]  && . /etc/sysconfig/rc.site
-
-## Screen Dimensions
-# Find current screen size
-if [ -z "${COLUMNS}" ]; then
-   COLUMNS=$(stty size)
-   COLUMNS=${COLUMNS##* }
-fi
-
-# When using remote connections, such as a serial port, stty size returns 0
-if [ "${COLUMNS}" = "0" ]; then
-   COLUMNS=80
-fi
-
-## Measurements for positioning result messages
-COL=$((${COLUMNS} - 8))
-WCOL=$((${COL} - 2))
-
-## Set Cursor Position Commands, used via echo
-SET_COL="\\033[${COL}G"      # at the $COL char
-SET_WCOL="\\033[${WCOL}G"    # at the $WCOL char
-CURS_UP="\\033[1A\\033[0G"   # Up one line, at the 0'th char
-CURS_ZERO="\\033[0G"
-
-################################################################################
-# start_daemon()                                                               #
-# Usage: start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args...]      #
-#                                                                              #
-# Purpose: This runs the specified program as a daemon                         #
-#                                                                              #
-# Inputs: -f: (force) run the program even if it is already running.           #
-#         -n nicelevel: specify a nice level. See 'man nice(1)'.               #
-#         -p pidfile: use the specified file to determine PIDs.                #
-#         pathname: the complete path to the specified program                 #
-#         args: additional arguments passed to the program (pathname)          #
-#                                                                              #
-# Return values (as defined by LSB exit codes):                                #
-#       0 - program is running or service is OK                                #
-#       1 - generic or unspecified error                                       #
-#       2 - invalid or excessive argument(s)                                   #
-#       5 - program is not installed                                           #
-################################################################################
-start_daemon()
-{
-    local force=""
-    local nice="0"
-    local pidfile=""
-    local pidlist=""
-    local retval=""
-
-    # Process arguments
-    while true
-    do
-        case "${1}" in
-
-            -f)
-                force="1"
-                shift 1
-                ;;
-
-            -n)
-                nice="${2}"
-                shift 2
-                ;;
-
-            -p)
-                pidfile="${2}"
-                shift 2
-                ;;
-
-            -*)
-                return 2
-                ;;
-
-            *)
-                program="${1}"
-                break
-                ;;
-        esac
-    done
-
-    # Check for a valid program
-    if [ ! -e "${program}" ]; then return 5; fi
-
-    # Execute
-    if [ -z "${force}" ]; then
-        if [ -z "${pidfile}" ]; then
-            # Determine the pid by discovery
-            pidlist=`pidofproc "${1}"`
-            retval="${?}"
-        else
-            # The PID file contains the needed PIDs
-            # Note that by LSB requirement, the path must be given to pidofproc,
-            # however, it is not used by the current implementation or standard.
-            pidlist=`pidofproc -p "${pidfile}" "${1}"`
-            retval="${?}"
-        fi
-
-        # Return a value ONLY
-        # It is the init script's (or distribution's functions) responsibilty
-        # to log messages!
-        case "${retval}" in
-
-            0)
-                # Program is already running correctly, this is a
-                # successful start.
-                return 0
-                ;;
-
-            1)
-                # Program is not running, but an invalid pid file exists
-                # remove the pid file and continue
-                rm -f "${pidfile}"
-                ;;
-
-            3)
-                # Program is not running and no pidfile exists
-                # do nothing here, let start_deamon continue.
-                ;;
-
-            *)
-                # Others as returned by status values shall not be interpreted
-                # and returned as an unspecified error.
-                return 1
-                ;;
-        esac
-    fi
-
-    # Do the start!
-    nice -n "${nice}" "${@}"
-}
-
-################################################################################
-# killproc()                                                                   #
-# Usage: killproc [-p pidfile] pathname [signal]                               #
-#                                                                              #
-# Purpose: Send control signals to running processes                           #
-#                                                                              #
-# Inputs: -p pidfile, uses the specified pidfile                               #
-#         pathname, pathname to the specified program                          #
-#         signal, send this signal to pathname                                 #
-#                                                                              #
-# Return values (as defined by LSB exit codes):                                #
-#       0 - program (pathname) has stopped/is already stopped or a             #
-#           running program has been sent specified signal and stopped         #
-#           successfully                                                       #
-#       1 - generic or unspecified error                                       #
-#       2 - invalid or excessive argument(s)                                   #
-#       5 - program is not installed                                           #
-#       7 - program is not running and a signal was supplied                   #
-################################################################################
-killproc()
-{
-    local pidfile
-    local program
-    local prefix
-    local progname
-    local signal="-TERM"
-    local fallback="-KILL"
-    local nosig
-    local pidlist
-    local retval
-    local pid
-    local delay="30"
-    local piddead
-    local dtime
-
-    # Process arguments
-    while true; do
-        case "${1}" in
-            -p)
-                pidfile="${2}"
-                shift 2
-                ;;
-
-             *)
-                 program="${1}"
-                 if [ -n "${2}" ]; then
-                     signal="${2}"
-                     fallback=""
-                 else
-                     nosig=1
-                 fi
-
-                 # Error on additional arguments
-                 if [ -n "${3}" ]; then
-                     return 2
-                 else
-                     break
-                 fi
-                 ;;
-        esac
-    done
-
-    # Check for a valid program
-    if [ ! -e "${program}" ]; then return 5; fi
-
-    # Check for a valid signal
-    check_signal "${signal}"
-    if [ "${?}" -ne "0" ]; then return 2; fi
-
-    # Get a list of pids
-    if [ -z "${pidfile}" ]; then
-        # determine the pid by discovery
-        pidlist=`pidofproc "${1}"`
-        retval="${?}"
-    else
-        # The PID file contains the needed PIDs
-        # Note that by LSB requirement, the path must be given to pidofproc,
-        # however, it is not used by the current implementation or standard.
-        pidlist=`pidofproc -p "${pidfile}" "${1}"`
-        retval="${?}"
-    fi
-
-    # Return a value ONLY
-    # It is the init script's (or distribution's functions) responsibilty
-    # to log messages!
-    case "${retval}" in
-
-        0)
-            # Program is running correctly
-            # Do nothing here, let killproc continue.
-            ;;
-
-        1)
-            # Program is not running, but an invalid pid file exists
-            # Remove the pid file.
-
-            progname=${program##*/}
-
-            if [[ -e "/run/${progname}.pid" ]]; then
-                pidfile="/run/${progname}.pid"
-                rm -f "${pidfile}"
-            fi
-
-            # This is only a success if no signal was passed.
-            if [ -n "${nosig}" ]; then
-                return 0
-            else
-                return 7
-            fi
-            ;;
-
-        3)
-            # Program is not running and no pidfile exists
-            # This is only a success if no signal was passed.
-            if [ -n "${nosig}" ]; then
-                return 0
-            else
-                return 7
-            fi
-            ;;
-
-        *)
-            # Others as returned by status values shall not be interpreted
-            # and returned as an unspecified error.
-            return 1
-            ;;
-    esac
-
-    # Perform different actions for exit signals and control signals
-    check_sig_type "${signal}"
-
-    if [ "${?}" -eq "0" ]; then # Signal is used to terminate the program
-
-        # Account for empty pidlist (pid file still exists and no
-        # signal was given)
-        if [ "${pidlist}" != "" ]; then
-
-            # Kill the list of pids
-            for pid in ${pidlist}; do
-
-                kill -0 "${pid}" 2> /dev/null
-
-                if [ "${?}" -ne "0" ]; then
-                    # Process is dead, continue to next and assume all is well
-                    continue
-                else
-                    kill "${signal}" "${pid}" 2> /dev/null
-
-                    # Wait up to ${delay}/10 seconds to for "${pid}" to
-                    # terminate in 10ths of a second
-
-                    while [ "${delay}" -ne "0" ]; do
-                        kill -0 "${pid}" 2> /dev/null || piddead="1"
-                        if [ "${piddead}" = "1" ]; then break; fi
-                        sleep 0.1
-                        delay="$(( ${delay} - 1 ))"
-                    done
-
-                    # If a fallback is set, and program is still running, then
-                    # use the fallback
-                    if [ -n "${fallback}" -a "${piddead}" != "1" ]; then
-                        kill "${fallback}" "${pid}" 2> /dev/null
-                        sleep 1
-                        # Check again, and fail if still running
-                        kill -0 "${pid}" 2> /dev/null && return 1
-                    fi
-                fi
-            done
-        fi
-
-        # Check for and remove stale PID files.
-        if [ -z "${pidfile}" ]; then
-            # Find the basename of $program
-            prefix=`echo "${program}" | sed 's/[^/]*$//'`
-            progname=`echo "${program}" | sed "s@${prefix}@@"`
-
-            if [ -e "/run/${progname}.pid" ]; then
-                rm -f "/run/${progname}.pid" 2> /dev/null
-            fi
-        else
-            if [ -e "${pidfile}" ]; then rm -f "${pidfile}" 2> /dev/null; fi
-        fi
-
-    # For signals that do not expect a program to exit, simply
-    # let kill do its job, and evaluate kill's return for value
-
-    else # check_sig_type - signal is not used to terminate program
-        for pid in ${pidlist}; do
-            kill "${signal}" "${pid}"
-            if [ "${?}" -ne "0" ]; then return 1; fi
-        done
-    fi
-}
-
-################################################################################
-# pidofproc()                                                                  #
-# Usage: pidofproc [-p pidfile] pathname                                       #
-#                                                                              #
-# Purpose: This function returns one or more pid(s) for a particular daemon    #
-#                                                                              #
-# Inputs: -p pidfile, use the specified pidfile instead of pidof               #
-#         pathname, path to the specified program                              #
-#                                                                              #
-# Return values (as defined by LSB status codes):                              #
-#       0 - Success (PIDs to stdout)                                           #
-#       1 - Program is dead, PID file still exists (remaining PIDs output)     #
-#       3 - Program is not running (no output)                                 #
-################################################################################
-pidofproc()
-{
-    local pidfile
-    local program
-    local prefix
-    local progname
-    local pidlist
-    local lpids
-    local exitstatus="0"
-
-    # Process arguments
-    while true; do
-        case "${1}" in
-
-            -p)
-                pidfile="${2}"
-                shift 2
-                ;;
-
-            *)
-                program="${1}"
-                if [ -n "${2}" ]; then
-                    # Too many arguments
-                    # Since this is status, return unknown
-                    return 4
-                else
-                    break
-                fi
-                ;;
-        esac
-    done
-
-    # If a PID file is not specified, try and find one.
-    if [ -z "${pidfile}" ]; then
-        # Get the program's basename
-        prefix=`echo "${program}" | sed 's/[^/]*$//'`
-
-        if [ -z "${prefix}" ]; then
-           progname="${program}"
-        else
-           progname=`echo "${program}" | sed "s@${prefix}@@"`
-        fi
-
-        # If a PID file exists with that name, assume that is it.
-        if [ -e "/run/${progname}.pid" ]; then
-            pidfile="/run/${progname}.pid"
-        fi
-    fi
-
-    # If a PID file is set and exists, use it.
-    if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
-
-        # Use the value in the first line of the pidfile
-        pidlist=`/bin/head -n1 "${pidfile}"`
-        # This can optionally be written as 'sed 1q' to repalce 'head -n1'
-        # should LFS move /bin/head to /usr/bin/head
-    else
-        # Use pidof
-        pidlist=`pidof "${program}"`
-    fi
-
-    # Figure out if all listed PIDs are running.
-    for pid in ${pidlist}; do
-        kill -0 ${pid} 2> /dev/null
-
-        if [ "${?}" -eq "0" ]; then
-            lpids="${lpids}${pid} "
-        else
-            exitstatus="1"
-        fi
-    done
-
-    if [ -z "${lpids}" -a ! -f "${pidfile}" ]; then
-        return 3
-    else
-        echo "${lpids}"
-        return "${exitstatus}"
-    fi
-}
-
-################################################################################
-# statusproc()                                                                 #
-# Usage: statusproc [-p pidfile] pathname                                      #
-#                                                                              #
-# Purpose: This function prints the status of a particular daemon to stdout    #
-#                                                                              #
-# Inputs: -p pidfile, use the specified pidfile instead of pidof               #
-#         pathname, path to the specified program                              #
-#                                                                              #
-# Return values:                                                               #
-#       0 - Status printed                                                     #
-#       1 - Input error. The daemon to check was not specified.                #
-################################################################################
-statusproc()
-{
-   local pidfile
-   local pidlist
-
-   if [ "${#}" = "0" ]; then
-      echo "Usage: statusproc [-p pidfle] {program}"
-      exit 1
-   fi
-
-   # Process arguments
-   while true; do
-       case "${1}" in
-
-           -p)
-               pidfile="${2}"
-               shift 2
-               ;;
-
-           *)
-               if [ -n "${2}" ]; then
-                   echo "Too many arguments"
-                   return 1
-               else
-                   break
-               fi
-               ;;
-       esac
-   done
-
-   if [ -n "${pidfile}" ]; then
-      pidlist=`pidofproc -p "${pidfile}" $@`
-   else
-      pidlist=`pidofproc $@`
-   fi
-
-   # Trim trailing blanks
-   pidlist=`echo "${pidlist}" | sed -r 's/ +$//'`
-
-   base="${1##*/}"
-
-   if [ -n "${pidlist}" ]; then
-      /bin/echo -e "${INFO}${base} is running with Process" \
-         "ID(s) ${pidlist}.${NORMAL}"
-   else
-      if [ -n "${base}" -a -e "/run/${base}.pid" ]; then
-         /bin/echo -e "${WARNING}${1} is not running but" \
-            "/run/${base}.pid exists.${NORMAL}"
-      else
-         if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
-            /bin/echo -e "${WARNING}${1} is not running" \
-               "but ${pidfile} exists.${NORMAL}"
-         else
-            /bin/echo -e "${INFO}${1} is not running.${NORMAL}"
-         fi
-      fi
-   fi
-}
-
-################################################################################
-# timespec()                                                                   #
-#                                                                              #
-# Purpose: An internal utility function to format a timestamp                  #
-#          a boot log file.  Sets the STAMP variable.                          #
-#                                                                              #
-# Return value: Not used                                                       #
-################################################################################
-timespec()
-{
-   STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) "
-   return 0
-}
-
-################################################################################
-# log_success_msg()                                                            #
-# Usage: log_success_msg ["message"]                                           #
-#                                                                              #
-# Purpose: Print a successful status message to the screen and                 #
-#          a boot log file.                                                    #
-#                                                                              #
-# Inputs: $@ - Message                                                         #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_success_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-
-    timespec
-    /bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_success_msg2()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
-    echo " OK" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# log_failure_msg()                                                            #
-# Usage: log_failure_msg ["message"]                                           #
-#                                                                              #
-# Purpose: Print a failure status message to the screen and                    #
-#          a boot log file.                                                    #
-#                                                                              #
-# Inputs: $@ - Message                                                         #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_failure_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
-
-    # Strip non-printable characters from log file
-
-    timespec
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    /bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_failure_msg2()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
-
-    echo "FAIL" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# log_warning_msg()                                                            #
-# Usage: log_warning_msg ["message"]                                           #
-#                                                                              #
-# Purpose: Print a warning status message to the screen and                    #
-#          a boot log file.                                                    #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_warning_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    timespec
-    /bin/echo -e "${STAMP} ${logmessage} WARN" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_skip_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-    /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    /bin/echo "SKIP" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# log_info_msg()                                                               #
-# Usage: log_info_msg message                                                  #
-#                                                                              #
-# Purpose: Print an information message to the screen and                      #
-#          a boot log file.  Does not print a trailing newline character.      #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-log_info_msg()
-{
-    /bin/echo -n -e "${BMPREFIX}${@}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    timespec
-    /bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG}
-
-    return 0
-}
-
-log_info_msg2()
-{
-    /bin/echo -n -e "${@}"
-
-    # Strip non-printable characters from log file
-    logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-    /bin/echo -n -e "${logmessage}" >> ${BOOTLOG}
-
-    return 0
-}
-
-################################################################################
-# evaluate_retval()                                                            #
-# Usage: Evaluate a return value and print success or failyure as appropriate  #
-#                                                                              #
-# Purpose: Convenience function to terminate an info message                   #
-#                                                                              #
-# Return values: Not used                                                      #
-################################################################################
-evaluate_retval()
-{
-   local error_value="${?}"
-
-   if [ ${error_value} = 0 ]; then
-      log_success_msg2
-   else
-      log_failure_msg2
-   fi
-}
-
-################################################################################
-# check_signal()                                                               #
-# Usage: check_signal [ -{signal} ]                                            #
-#                                                                              #
-# Purpose: Check for a valid signal.  This is not defined by any LSB draft,    #
-#          however, it is required to check the signals to determine if the    #
-#          signals chosen are invalid arguments to the other functions.        #
-#                                                                              #
-# Inputs: Accepts a single string value in the form of -{signal}               #
-#                                                                              #
-# Return values:                                                               #
-#       0 - Success (signal is valid                                           #
-#       1 - Signal is not valid                                                #
-################################################################################
-check_signal()
-{
-    local valsig
-
-    # Add error handling for invalid signals
-    valsig=" -ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2"
-    valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN"
-    valsig="${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP"
-    valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 -4 -5 -6 -8 -9"
-    valsig="${valsig} -11 -13 -14 -15 "
-
-    echo "${valsig}" | grep -- " ${1} " > /dev/null
-
-    if [ "${?}" -eq "0" ]; then
-        return 0
-    else
-        return 1
-    fi
-}
-
-################################################################################
-# check_sig_type()                                                             #
-# Usage: check_signal [ -{signal} | {signal} ]                                 #
-#                                                                              #
-# Purpose: Check if signal is a program termination signal or a control signal #
-#          This is not defined by any LSB draft, however, it is required to    #
-#          check the signals to determine if they are intended to end a        #
-#          program or simply to control it.                                    #
-#                                                                              #
-# Inputs: Accepts a single string value in the form or -{signal} or {signal}   #
-#                                                                              #
-# Return values:                                                               #
-#       0 - Signal is used for program termination                             #
-#       1 - Signal is used for program control                                 #
-################################################################################
-check_sig_type()
-{
-    local valsig
-
-    # The list of termination signals (limited to generally used items)
-    valsig=" -ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15 "
-
-    echo "${valsig}" | grep -- " ${1} " > /dev/null
-
-    if [ "${?}" -eq "0" ]; then
-        return 0
-    else
-        return 1
-    fi
-}
-
-################################################################################
-# wait_for_user()                                                              #
-#                                                                              #
-# Purpose: Wait for the user to respond if not a headless system               #
-#                                                                              #
-################################################################################
-wait_for_user()
-{
-   # Wait for the user by default
-   [ "${HEADLESS=0}" = "0" ] && read ENTER
-   return 0
-}
-
-################################################################################
-# is_true()                                                                    #
-#                                                                              #
-# Purpose: Utility to test if a variable is true | yes | 1                     #
-#                                                                              #
-################################################################################
-is_true()
-{
-   [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] ||  [ "$1" = "y" ] ||
-   [ "$1" = "t" ]
-}
-
-# End /lib/lsb/init-functions
-
-
-
-
-
-
-

- D.3. /etc/rc.d/init.d/mountvirtfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin mountvirtfs
-#
-# Description : Mount proc, sysfs, and run
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            mountvirtfs
-# Required-Start:      $first
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Mounts /sys and /proc virtual (kernel) filesystems.
-#                      Mounts /run (tmpfs) and /dev (devtmpfs).
-# Description:         Mounts /sys and /proc virtual (kernel) filesystems.
-#                      Mounts /run (tmpfs) and /dev (devtmpfs).
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      # Make sure /run is available before logging any messages
-      if ! mountpoint /run >/dev/null; then
-         mount /run || failed=1
-      fi
-
-      mkdir -p /run/lock /run/shm
-      chmod 1777 /run/shm /run/lock
-
-      log_info_msg "Mounting virtual file systems: ${INFO}/run"
-
-      if ! mountpoint /proc >/dev/null; then
-         log_info_msg2 " ${INFO}/proc"
-         mount -o nosuid,noexec,nodev /proc || failed=1
-      fi
-
-      if ! mountpoint /sys >/dev/null; then
-         log_info_msg2 " ${INFO}/sys"
-         mount -o nosuid,noexec,nodev /sys || failed=1
-      fi
-
-      if ! mountpoint /dev >/dev/null; then
-         log_info_msg2 " ${INFO}/dev"
-         mount -o mode=0755,nosuid /dev  || failed=1
-      fi
-
-      ln -sfn /run/shm /dev/shm
-
-      (exit ${failed})
-      evaluate_retval
-      exit $failed
-      ;;
-
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End mountvirtfs
-
-
-
-
-
-
-

- D.4. /etc/rc.d/init.d/modules -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin modules
-#
-# Description : Module auto-loading script
-#
-# Authors     : Zack Winkles
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            modules
-# Required-Start:      mountvirtfs
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Loads required modules.
-# Description:         Loads modules listed in /etc/sysconfig/modules.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-# Assure that the kernel has module support.
-[ -e /proc/modules ] || exit 0
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      # Exit if there's no modules file or there are no
-      # valid entries
-      [ -r /etc/sysconfig/modules ]             || exit 0
-      egrep -qv '^($|#)' /etc/sysconfig/modules || exit 0
-
-      log_info_msg "Loading modules:"
-
-      # Only try to load modules if the user has actually given us
-      # some modules to load.
-
-      while read module args; do
-
-         # Ignore comments and blank lines.
-         case "$module" in
-            ""|"#"*) continue ;;
-         esac
-
-         # Attempt to load the module, passing any arguments provided.
-         modprobe ${module} ${args} >/dev/null
-
-         # Print the module name if successful, otherwise take note.
-         if [ $? -eq 0 ]; then
-            log_info_msg2 " ${module}"
-         else
-            failedmod="${failedmod} ${module}"
-         fi
-      done < /etc/sysconfig/modules
-
-      # Print a message about successfully loaded modules on the correct line.
-      log_success_msg2
-
-      # Print a failure message with a list of any modules that
-      # may have failed to load.
-      if [ -n "${failedmod}" ]; then
-         log_failure_msg "Failed to load modules:${failedmod}"
-         exit 1
-      fi
-      ;;
-
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End modules
-
-
-
-
-
-
-

- D.5. /etc/rc.d/init.d/udev -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin udev
-#
-# Description : Udev cold-plugging script
-#
-# Authors     : Zack Winkles, Alexander E. Patrakov
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            udev $time
-# Required-Start:      localnet
-# Should-Start:        modules
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Populates /dev with device nodes.
-# Description:         Mounts a tempfs on /dev and starts the udevd daemon.
-#                      Device nodes are created as defined by udev.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Populating /dev with device nodes... "
-      if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
-         log_failure_msg2
-         msg="FAILURE:\n\nUnable to create "
-         msg="${msg}devices without a SysFS filesystem\n\n"
-         msg="${msg}After you press Enter, this system "
-         msg="${msg}will be halted and powered off.\n\n"
-         log_info_msg "$msg"
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      fi
-
-      # Start the udev daemon to continually watch for, and act on,
-      # uevents
-      /sbin/udevd --daemon
-
-      # Now traverse /sys in order to "coldplug" devices that have
-      # already been discovered
-      /sbin/udevadm trigger --action=add    --type=subsystems
-      /sbin/udevadm trigger --action=add    --type=devices
-      /sbin/udevadm trigger --action=change --type=devices
-
-      # Now wait for udevd to process the uevents we triggered
-      if ! is_true "$OMIT_UDEV_SETTLE"; then
-         /sbin/udevadm settle
-      fi
-
-      # If any LVM based partitions are on the system, ensure they
-      # are activated so they can be used.
-      if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi
-
-      log_success_msg2
-      ;;
-
-   *)
-      echo "Usage ${0} {start}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End udev
-
-
-
-
-
-
-

- D.6. /etc/rc.d/init.d/swap -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin swap
-#
-# Description : Swap Control Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            swap
-# Required-Start:      udev
-# Should-Start:        modules
-# Required-Stop:       localnet
-# Should-Stop:         $local_fs
-# Default-Start:       S
-# Default-Stop:        0 6
-# Short-Description:   Mounts and unmounts swap partitions.
-# Description:         Mounts and unmounts swap partitions defined in
-#                      /etc/fstab.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Activating all swap files/partitions..."
-      swapon -a
-      evaluate_retval
-      ;;
-
-   stop)
-      log_info_msg "Deactivating all swap files/partitions..."
-      swapoff -a
-      evaluate_retval
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   status)
-      log_success_msg "Retrieving swap status."
-      swapon -s
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End swap
-
-
-
-
-
-
-

- D.7. /etc/rc.d/init.d/setclock -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin setclock
-#
-# Description : Setting Linux Clock
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:
-# Required-Start:
-# Should-Start:        modules
-# Required-Stop:
-# Should-Stop:         $syslog
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Stores and restores time from the hardware clock
-# Description:         On boot, system time is obtained from hwclock.  The
-#                      hardware clock can also be set on shutdown.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-[ -r /etc/sysconfig/clock ] && . /etc/sysconfig/clock
-
-
-case "${UTC}" in
-   yes|true|1)
-      CLOCKPARAMS="${CLOCKPARAMS} --utc"
-      ;;
-
-   no|false|0)
-      CLOCKPARAMS="${CLOCKPARAMS} --localtime"
-      ;;
-
-esac
-
-case ${1} in
-   start)
-      hwclock --hctosys ${CLOCKPARAMS} >/dev/null
-      ;;
-
-   stop)
-      log_info_msg "Setting hardware clock..."
-      hwclock --systohc ${CLOCKPARAMS} >/dev/null
-      evaluate_retval
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop}"
-      exit 1
-      ;;
-
-esac
-
-exit 0
-
-
-
-
-
-
-

- D.8. /etc/rc.d/init.d/checkfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin checkfs
-#
-# Description : File System Check
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               A. Luebke - luebke@users.sourceforge.net
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-# Based on checkfs script from LFS-3.1 and earlier.
-#
-# From man fsck
-# 0    - No errors
-# 1    - File system errors corrected
-# 2    - System should be rebooted
-# 4    - File system errors left uncorrected
-# 8    - Operational error
-# 16   - Usage or syntax error
-# 32   - Fsck canceled by user request
-# 128  - Shared library error
-#
-#########################################################################
-
-### BEGIN INIT INFO
-# Provides:            checkfs
-# Required-Start:      udev swap
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Checks local filesystems before mounting.
-# Description:         Checks local filesystmes before mounting.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      if [ -f /fastboot ]; then
-         msg="/fastboot found, will omit "
-         msg="${msg} file system checks as requested.\n"
-         log_info_msg "${msg}"
-         exit 0
-      fi
-
-      log_info_msg "Mounting root file system in read-only mode... "
-      mount -n -o remount,ro / >/dev/null
-
-      if [ ${?} != 0 ]; then
-         log_failure_msg2
-         msg="\n\nCannot check root "
-         msg="${msg}filesystem because it could not be mounted "
-         msg="${msg}in read-only mode.\n\n"
-         msg="${msg}After you press Enter, this system will be "
-         msg="${msg}halted and powered off.\n\n"
-         log_failure_msg "${msg}"
-
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      else
-         log_success_msg2
-      fi
-
-      if [ -f /forcefsck ]; then
-         msg="/forcefsck found, forcing file"
-         msg="${msg} system checks as requested."
-         log_success_msg "$msg"
-         options="-f"
-      else
-         options=""
-      fi
-
-      log_info_msg "Checking file systems..."
-      # Note: -a option used to be -p; but this fails e.g. on fsck.minix
-      if is_true "$VERBOSE_FSCK"; then
-        fsck ${options} -a -A -C -T
-      else
-        fsck ${options} -a -A -C -T >/dev/null
-      fi
-
-      error_value=${?}
-
-      if [ "${error_value}" = 0 ]; then
-         log_success_msg2
-      fi
-
-      if [ "${error_value}" = 1 ]; then
-         msg="\nWARNING:\n\nFile system errors "
-         msg="${msg}were found and have been corrected.\n"
-         msg="${msg}      You may want to double-check that "
-         msg="${msg}everything was fixed properly."
-         log_warning_msg "$msg"
-      fi
-
-      if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then
-         msg="\nWARNING:\n\nFile system errors "
-         msg="${msg}were found and have been been "
-         msg="${msg}corrected, but the nature of the "
-         msg="${msg}errors require this system to be rebooted.\n\n"
-         msg="${msg}After you press enter, "
-         msg="${msg}this system will be rebooted\n\n"
-         log_failure_msg "$msg"
-
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         reboot -f
-      fi
-
-      if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then
-         msg="\nFAILURE:\n\nFile system errors "
-         msg="${msg}were encountered that could not be "
-         msg="${msg}fixed automatically.\nThis system "
-         msg="${msg}cannot continue to boot and will "
-         msg="${msg}therefore be halted until those "
-         msg="${msg}errors are fixed manually by a "
-         msg="${msg}System Administrator.\n\n"
-         msg="${msg}After you press Enter, this system will be "
-         msg="${msg}halted and powered off.\n\n"
-         log_failure_msg "$msg"
-
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      fi
-
-      if [ "${error_value}" -ge 16 ]; then
-         msg="FAILURE:\n\nUnexpected failure "
-         msg="${msg}running fsck.  Exited with error "
-         msg="${msg} code: ${error_value}.\n"
-         log_info_msg $msg
-         exit ${error_value}
-      fi
-
-      exit 0
-      ;;
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End checkfs
-
-
-
-
-
-
-

- D.9. /etc/rc.d/init.d/mountfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin mountfs
-#
-# Description : File System Mount Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            $local_fs
-# Required-Start:      udev checkfs
-# Should-Start:        modules
-# Required-Stop:       localnet
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:        0 6
-# Short-Description:   Mounts/unmounts local filesystems defined in /etc/fstab.
-# Description:         Remounts root filesystem read/write and mounts all
-#                      remaining local filesystems defined in /etc/fstab on
-#                      start.  Remounts root filesystem read-only and unmounts
-#                      remaining filesystems on stop.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Remounting root file system in read-write mode..."
-      mount --options remount,rw / >/dev/null
-      evaluate_retval
-
-      # Remove fsck-related file system watermarks.
-      rm -f /fastboot /forcefsck
-
-      # Make sure /dev/pts exists
-      mkdir -p /dev/pts
-
-      # This will mount all filesystems that do not have _netdev in
-      # their option list.  _netdev denotes a network filesystem.
-
-      log_info_msg "Mounting remaining file systems..."
-      failed=0
-      mount --all --test-opts no_netdev >/dev/null || failed=1
-      evaluate_retval
-      exit $failed
-      ;;
-
-   stop)
-      # Don't unmount virtual file systems like /run
-      log_info_msg "Unmounting all other currently mounted file systems..."
-      # Ensure any loop devies are removed
-      losetup -D
-      umount --all --detach-loop --read-only \
-             --types notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts >/dev/null
-      evaluate_retval
-
-      # Make sure / is mounted read only (umount bug)
-      mount --options remount,ro /
-
-      # Make all LVM volume groups unavailable, if appropriate
-      # This fails if swap or / are on an LVM partition
-      #if [ -x /sbin/vgchange ]; then /sbin/vgchange -an > /dev/null; fi
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop}"
-      exit 1
-      ;;
-esac
-
-# End mountfs
-
-
-
-
-
-
-

- D.10. /etc/rc.d/init.d/udev_retry -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin udev_retry
-#
-# Description : Udev cold-plugging script (retry)
-#
-# Authors     : Alexander E. Patrakov
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#               Bryan Kadzban -
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            udev_retry
-# Required-Start:      udev
-# Should-Start:        $local_fs cleanfs
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Replays failed uevents and creates additional devices.
-# Description:         Replays any failed uevents that were skipped due to
-#                      slow hardware initialization, and creates those needed
-#                      device nodes
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Retrying failed uevents, if any..."
-
-      # As of udev-186, the --run option is no longer valid
-      #rundir=$(/sbin/udevadm info --run)
-      rundir=/run/udev
-      # From Debian: "copy the rules generated before / was mounted
-      # read-write":
-
-      for file in ${rundir}/tmp-rules--*; do
-         dest=${file##*tmp-rules--}
-         [ "$dest" = '*' ] && break
-         cat $file >> /etc/udev/rules.d/$dest
-         rm -f $file
-      done
-
-      # Re-trigger the uevents that may have failed,
-      # in hope they will succeed now
-      /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
-      while read line ; do
-         for subsystem in $line ; do
-            /sbin/udevadm trigger --subsystem-match=$subsystem --action=add
-         done
-      done
-
-      # Now wait for udevd to process the uevents we triggered
-      if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then
-         /sbin/udevadm settle
-      fi
-
-      evaluate_retval
-      ;;
-
-   *)
-      echo "Usage ${0} {start}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End udev_retry
-
-
-
-
-
-
-

- D.11. /etc/rc.d/init.d/cleanfs -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin cleanfs
-#
-# Description : Clean file system
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            cleanfs
-# Required-Start:      $local_fs
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Cleans temporary directories early in the boot process.
-# Description:         Cleans temporary directories /run, /var/lock, and
-#                      optionally, /tmp.  cleanfs also creates /run/utmp
-#                      and any files defined in /etc/sysconfig/createfiles.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-# Function to create files/directory on boot.
-create_files()
-{
-   # Input to file descriptor 9 and output to stdin (redirection)
-   exec 9>&0 < /etc/sysconfig/createfiles
-
-   while read name type perm usr grp dtype maj min junk
-   do
-      # Ignore comments and blank lines.
-      case "${name}" in
-         ""|\#*) continue ;;
-      esac
-
-      # Ignore existing files.
-      if [ ! -e "${name}" ]; then
-         # Create stuff based on its type.
-         case "${type}" in
-            dir)
-               mkdir "${name}"
-               ;;
-            file)
-               :> "${name}"
-               ;;
-            dev)
-               case "${dtype}" in
-                  char)
-                     mknod "${name}" c ${maj} ${min}
-                     ;;
-                  block)
-                     mknod "${name}" b ${maj} ${min}
-                     ;;
-                  pipe)
-                     mknod "${name}" p
-                     ;;
-                  *)
-                     log_warning_msg "\nUnknown device type: ${dtype}"
-                     ;;
-               esac
-               ;;
-            *)
-               log_warning_msg "\nUnknown type: ${type}"
-               continue
-               ;;
-         esac
-
-         # Set up the permissions, too.
-         chown ${usr}:${grp} "${name}"
-         chmod ${perm} "${name}"
-      fi
-   done
-
-   # Close file descriptor 9 (end redirection)
-   exec 0>&9 9>&-
-   return 0
-}
-
-case "${1}" in
-   start)
-      log_info_msg "Cleaning file systems:"
-
-      if [ "${SKIPTMPCLEAN}" = "" ]; then
-         log_info_msg2 " /tmp"
-         cd /tmp &&
-         find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1
-      fi
-
-      > /run/utmp
-
-      if grep -q '^utmp:' /etc/group ; then
-         chmod 664 /run/utmp
-         chgrp utmp /run/utmp
-      fi
-
-      (exit ${failed})
-      evaluate_retval
-
-      if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then
-         log_info_msg "Creating files and directories... "
-         create_files      # Always returns 0
-         evaluate_retval
-      fi
-
-      exit $failed
-      ;;
-   *)
-      echo "Usage: ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End cleanfs
-
-
-
-
-
-
-

- D.12. /etc/rc.d/init.d/console -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin console
-#
-# Description : Sets keymap and screen font
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               Alexander E. Patrakov
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            console
-# Required-Start:      $local_fs
-# Should-Start:        udev_retry
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Sets up a localised console.
-# Description:         Sets up fonts and language settings for the user's
-#                      local as defined by /etc/sysconfig/console.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-# Native English speakers probably don't have /etc/sysconfig/console at all
-[ -r /etc/sysconfig/console ] && . /etc/sysconfig/console
-
-is_true()
-{
-   [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ]
-}
-
-failed=0
-
-case "${1}" in
-   start)
-      # See if we need to do anything
-      if [ -z "${KEYMAP}"         ] && [ -z "${KEYMAP_CORRECTIONS}" ] &&
-         [ -z "${FONT}"           ] && [ -z "${LEGACY_CHARSET}"     ] &&
-         ! is_true "${UNICODE}"; then
-         exit 0
-      fi
-
-      # There should be no bogus failures below this line!
-      log_info_msg "Setting up Linux console..."
-
-      # Figure out if a framebuffer console is used
-      [ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0
-
-      # Figure out the command to set the console into the
-      # desired mode
-      is_true "${UNICODE}" &&
-         MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" ||
-         MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a"
-
-      # On framebuffer consoles, font has to be set for each vt in
-      # UTF-8 mode. This doesn't hurt in non-UTF-8 mode also.
-
-      ! is_true "${use_fb}" || [ -z "${FONT}" ] ||
-         MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}"
-
-      # Apply that command to all consoles mentioned in
-      # /etc/inittab. Important: in the UTF-8 mode this should
-      # happen before setfont, otherwise a kernel bug will
-      # show up and the unicode map of the font will not be
-      # used.
-
-      for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab |
-         grep -o '\btty[[:digit:]]*\b'`
-      do
-         openvt -f -w -c ${TTY#tty} -- \
-            /bin/sh -c "${MODE_COMMAND}" || failed=1
-      done
-
-      # Set the font (if not already set above) and the keymap
-      [ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || failed=1
-
-      [ -z "${KEYMAP}" ] ||
-         loadkeys ${KEYMAP} >/dev/null 2>&1 ||
-         failed=1
-
-      [ -z "${KEYMAP_CORRECTIONS}" ] ||
-         loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 ||
-         failed=1
-
-      # Convert the keymap from $LEGACY_CHARSET to UTF-8
-      [ -z "$LEGACY_CHARSET" ] ||
-         dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&1 ||
-         failed=1
-
-      # If any of the commands above failed, the trap at the
-      # top would set $failed to 1
-      ( exit $failed )
-      evaluate_retval
-
-      exit $failed
-      ;;
-
-   *)
-      echo "Usage:  ${0} {start}"
-      exit 1
-      ;;
-esac
-
-# End console
-
-
-
-
-
-
-

- D.13. /etc/rc.d/init.d/localnet -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin localnet
-#
-# Description : Loopback device
-#
-# Authors     : Gerard Beekmans  - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            localnet
-# Required-Start:      mountvirtfs
-# Should-Start:        modules
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:        0 6
-# Short-Description:   Starts the local network.
-# Description:         Sets the hostname of the machine and starts the
-#                      loopback interface.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
-[ -r /etc/hostname ] && HOSTNAME=`cat /etc/hostname`
-
-case "${1}" in
-   start)
-      log_info_msg "Bringing up the loopback interface..."
-      ip addr add 127.0.0.1/8 label lo dev lo
-      ip link set lo up
-      evaluate_retval
-
-      log_info_msg "Setting hostname to ${HOSTNAME}..."
-      hostname ${HOSTNAME}
-      evaluate_retval
-      ;;
-
-   stop)
-      log_info_msg "Bringing down the loopback interface..."
-      ip link set lo down
-      evaluate_retval
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   status)
-      echo "Hostname is: $(hostname)"
-      ip link show lo
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End localnet
-
-
-
-
-
-
-

- D.14. /etc/rc.d/init.d/sysctl -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin sysctl
-#
-# Description : File uses /etc/sysctl.conf to set kernel runtime
-#               parameters
-#
-# Authors     : Nathan Coulson (nathan AT linuxfromscratch D0T org)
-#               Matthew Burgress (matthew AT linuxfromscratch D0T org)
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            sysctl
-# Required-Start:      mountvirtfs
-# Should-Start:        console
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       S
-# Default-Stop:
-# Short-Description:   Makes changes to the proc filesystem
-# Description:         Makes changes to the proc filesystem as defined in
-#                      /etc/sysctl.conf.  See 'man sysctl(8)'.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      if [ -f "/etc/sysctl.conf" ]; then
-         log_info_msg "Setting kernel runtime parameters..."
-         sysctl -q -p
-         evaluate_retval
-      fi
-      ;;
-
-   status)
-      sysctl -a
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End sysctl
-
-
-
-
-
-
-

- D.15. /etc/rc.d/init.d/sysklogd -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin sysklogd
-#
-# Description : Sysklogd loader
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            $syslog
-# Required-Start:      $first localnet
-# Should-Start:
-# Required-Stop:       $local_fs
-# Should-Stop:         sendsignals
-# Default-Start:       3 4 5
-# Default-Stop:        0 1 2 6
-# Short-Description:   Starts kernel and system log daemons.
-# Description:         Starts kernel and system log daemons.
-#                      /etc/fstab.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-# Note: sysklogd is not started in runlevel 2 due to possible
-# remote logging configurations
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Starting system log daemon..."
-      parms=${SYSKLOGD_PARMS-'-m 0'}
-      start_daemon /sbin/syslogd $parms
-      evaluate_retval
-
-      log_info_msg "Starting kernel log daemon..."
-      start_daemon /sbin/klogd
-      evaluate_retval
-      ;;
-
-   stop)
-      log_info_msg "Stopping kernel log daemon..."
-      killproc /sbin/klogd
-      evaluate_retval
-
-      log_info_msg "Stopping system log daemon..."
-      killproc /sbin/syslogd
-      evaluate_retval
-      ;;
-
-   reload)
-      log_info_msg "Reloading system log daemon config file..."
-      pid=`pidofproc syslogd`
-      kill -HUP "${pid}"
-      evaluate_retval
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   status)
-      statusproc /sbin/syslogd
-      statusproc klogd
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|reload|restart|status}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End sysklogd
-
-
-
-
-
-
-

- D.16. /etc/rc.d/init.d/network -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin network
-#
-# Description : Network Control Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            $network
-# Required-Start:      $local_fs localnet swap
-# Should-Start:        $syslog firewalld iptables nftables
-# Required-Stop:       $local_fs localnet swap
-# Should-Stop:         $syslog firewalld iptables nftables
-# Default-Start:       3 4 5
-# Default-Stop:        0 1 2 6
-# Short-Description:   Starts and configures network interfaces.
-# Description:         Starts and configures network interfaces.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-case "${1}" in
-   start)
-      # Start all network interfaces
-      for file in /etc/sysconfig/ifconfig.*
-      do
-         interface=${file##*/ifconfig.}
-
-         # Skip if $file is * (because nothing was found)
-         if [ "${interface}" = "*" ]; then continue; fi
-
-         /sbin/ifup ${interface}
-      done
-      ;;
-
-   stop)
-      # Unmount any network mounted file systems
-       umount --all --force --types nfs,cifs,nfs4
-
-      # Reverse list
-      net_files=""
-      for file in  /etc/sysconfig/ifconfig.*
-      do
-         net_files="${file} ${net_files}"
-      done
-
-      # Stop all network interfaces
-      for file in ${net_files}
-      do
-         interface=${file##*/ifconfig.}
-
-         # Skip if $file is * (because nothing was found)
-         if [ "${interface}" = "*" ]; then continue; fi
-
-         # See if interface exists
-         if [ ! -e /sys/class/net/$interface ]; then continue; fi
-
-         # Is interface UP?
-         ip link show $interface 2>/dev/null | grep -q "state UP"
-         if [ $? -ne 0 ];  then continue; fi
-
-         /sbin/ifdown ${interface}
-      done
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End network
-
-
-
-
-
-
-

- D.17. - /etc/rc.d/init.d/sendsignals -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin sendsignals
-#
-# Description : Sendsignals Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            sendsignals
-# Required-Start:
-# Should-Start:
-# Required-Stop:       $local_fs swap localnet
-# Should-Stop:
-# Default-Start:
-# Default-Stop:        0 6
-# Short-Description:   Attempts to kill remaining processes.
-# Description:         Attempts to kill remaining processes.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   stop)
-      omit=$(pidof mdmon)
-      [ -n "$omit" ] && omit="-o $omit"
-
-      log_info_msg "Sending all processes the TERM signal..."
-      killall5 -15 $omit
-      error_value=${?}
-
-      sleep ${KILLDELAY}
-
-      if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
-         log_success_msg
-      else
-         log_failure_msg
-      fi
-
-      log_info_msg "Sending all processes the KILL signal..."
-      killall5 -9 $omit
-      error_value=${?}
-
-      sleep ${KILLDELAY}
-
-      if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
-         log_success_msg
-      else
-         log_failure_msg
-      fi
-      ;;
-
-   *)
-      echo "Usage: ${0} {stop}"
-      exit 1
-      ;;
-
-esac
-
-exit 0
-
-# End sendsignals
-
-
-
-
-
-
-

- D.18. /etc/rc.d/init.d/reboot -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin reboot
-#
-# Description : Reboot Scripts
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            reboot
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       6
-# Default-Stop:
-# Short-Description:   Reboots the system.
-# Description:         Reboots the System.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   stop)
-      log_info_msg "Restarting system..."
-      reboot -d -f -i
-      ;;
-
-   *)
-      echo "Usage: ${0} {stop}"
-      exit 1
-      ;;
-
-esac
-
-# End reboot
-
-
-
-
-
-
-

- D.19. /etc/rc.d/init.d/halt -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin halt
-#
-# Description : Halt Script
-#
-# Authors     : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            halt
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:       0
-# Default-Stop:
-# Short-Description:   Halts the system.
-# Description:         Halts the System.
-# X-LFS-Provided-By:   LFS
-### END INIT INFO
-
-case "${1}" in
-   stop)
-      halt -d -f -i -p
-      ;;
-
-   *)
-      echo "Usage: {stop}"
-      exit 1
-      ;;
-esac
-
-# End halt
-
-
-
-
-
-
-

- D.20. /etc/rc.d/init.d/template -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin scriptname
-#
-# Description :
-#
-# Authors     :
-#
-# Version     : LFS x.x
-#
-# Notes       :
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:            template
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:
-# Default-Stop:
-# Short-Description:
-# Description:
-# X-LFS-Provided-By:
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
-   start)
-      log_info_msg "Starting..."
-      start_daemon fully_qualified_path
-      ;;
-
-   stop)
-      log_info_msg "Stopping..."
-      killproc fully_qualified_path
-      ;;
-
-   restart)
-      ${0} stop
-      sleep 1
-      ${0} start
-      ;;
-
-   *)
-      echo "Usage: ${0} {start|stop|restart}"
-      exit 1
-      ;;
-esac
-
-exit 0
-
-# End scriptname
-
-
-
-
-
-
-

- D.21. /etc/sysconfig/modules -

-
-
-
-
########################################################################
-# Begin /etc/sysconfig/modules
-#
-# Description : Module auto-loading configuration
-#
-# Authors     :
-#
-# Version     : 00.00
-#
-# Notes       : The syntax of this file is as follows:
-#          <module> [<arg1> <arg2> ...]
-#
-# Each module should be on its own line, and any options that you want
-# passed to the module should follow it.  The line deliminator is either
-# a space or a tab.
-########################################################################
-
-# End /etc/sysconfig/modules
-
-
-
-
-
-
-

- D.22. /etc/sysconfig/createfiles -

-
-
-
-
########################################################################
-# Begin /etc/sysconfig/createfiles
-#
-# Description : Createfiles script config file
-#
-# Authors     :
-#
-# Version     : 00.00
-#
-# Notes       : The syntax of this file is as follows:
-#         if type is equal to "file" or "dir"
-#          <filename> <type> <permissions> <user> <group>
-#         if type is equal to "dev"
-#          <filename> <type> <permissions> <user> <group> <devtype>
-#             <major> <minor>
-#
-#         <filename> is the name of the file which is to be created
-#         <type> is either file, dir, or dev.
-#               file creates a new file
-#               dir creates a new directory
-#               dev creates a new device
-#         <devtype> is either block, char or pipe
-#               block creates a block device
-#               char creates a character deivce
-#               pipe creates a pipe, this will ignore the <major> and
-#           <minor> fields
-#         <major> and <minor> are the major and minor numbers used for
-#     the device.
-########################################################################
-
-# End /etc/sysconfig/createfiles
-
-
-
-
-
-
-

- D.23. - /etc/sysconfig/udev-retry -

-
-
-
-
########################################################################
-# Begin /etc/sysconfig/udev_retry
-#
-# Description : udev_retry script configuration
-#
-# Authors     :
-#
-# Version     : 00.00
-#
-# Notes       : Each subsystem that may need to be re-triggered after mountfs
-#               runs should be listed in this file.  Probable subsystems to be
-#               listed here are rtc (due to /var/lib/hwclock/adjtime) and sound
-#               (due to both /var/lib/alsa/asound.state and /usr/sbin/alsactl).
-#               Entries are whitespace-separated.
-########################################################################
-
-rtc
-
-# End /etc/sysconfig/udev_retry
-
-
-
-
-
-
-

- D.24. /sbin/ifup -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin /sbin/ifup
-#
-# Description : Interface Up
-#
-# Authors     : Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.7
-#
-# Notes       : The IFCONFIG variable is passed to the SERVICE script
-#               in the /lib/services directory, to indicate what file the
-#               service should source to get interface specifications.
-#
-########################################################################
-
-up()
-{
-  log_info_msg "Bringing up the ${1} interface..."
-
-  if ip link show $1 > /dev/null 2>&1; then
-     link_status=`ip link show $1`
-
-     if [ -n "${link_status}" ]; then
-        if ! echo "${link_status}" | grep -q UP; then
-           ip link set $1 up
-        fi
-     fi
-
-  else
-     log_failure_msg "Interface ${IFACE} doesn't exist."
-     exit 1
-  fi
-
-  evaluate_retval
-}
-
-RELEASE="7.7"
-
-USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
-VERSTR="LFS ifup, version ${RELEASE}"
-
-while [ $# -gt 0 ]; do
-   case "$1" in
-      --help | -h)     help="y"; break ;;
-
-      --version | -V)  echo "${VERSTR}"; exit 0 ;;
-
-      -*)              echo "ifup: ${1}: invalid option" >&2
-                       echo "${USAGE}" >& 2
-                       exit 2 ;;
-
-      *)               break ;;
-   esac
-done
-
-if [ -n "$help" ]; then
-   echo "${VERSTR}"
-   echo "${USAGE}"
-   echo
-   cat << HERE_EOF
-ifup is used to bring up a network interface.  The interface
-parameter, e.g. eth0 or eth0:2, must match the trailing part of the
-interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
-
-HERE_EOF
-   exit 0
-fi
-
-file=/etc/sysconfig/ifconfig.${1}
-
-# Skip backup files
-[ "${file}" = "${file%""~""}" ] || exit 0
-
-. /lib/lsb/init-functions
-
-if [ ! -r "${file}" ]; then
-   log_failure_msg "Unable to bring up ${1} interface! ${file} is missing or cannot be accessed."
-   exit 1
-fi
-
-.  $file
-
-if [ "$IFACE" = "" ]; then
-   log_failure_msg "Unable to bring up ${1} interface! ${file} does not define an interface [IFACE]."
-   exit 1
-fi
-
-# Do not process this service if started by boot, and ONBOOT
-# is not set to yes
-if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
-   exit 0
-fi
-
-# Bring up the interface
-if [ "$VIRTINT" != "yes" ]; then
-   up ${IFACE}
-fi
-
-for S in ${SERVICE}; do
-  if [ ! -x "/lib/services/${S}" ]; then
-    MSG="\nUnable to process ${file}.  Either "
-    MSG="${MSG}the SERVICE '${S} was not present "
-    MSG="${MSG}or cannot be executed."
-    log_failure_msg "$MSG"
-    exit 1
-  fi
-done
-
-if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
-
-# Create/configure the interface
-for S in ${SERVICE}; do
-  IFCONFIG=${file} /lib/services/${S} ${IFACE} up
-done
-
-# Set link up virtual interfaces
-if [ "${VIRTINT}" == "yes" ]; then
-   up ${IFACE}
-fi
-
-# Bring up any additional interface components
-for I in $INTERFACE_COMPONENTS; do up $I; done
-
-# Set MTU if requested. Check if MTU has a "good" value.
-if test -n "${MTU}"; then
-   if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; then
-      for I in $IFACE $INTERFACE_COMPONENTS; do
-         ip link set dev $I mtu $MTU;
-      done
-   else
-      log_info_msg2 "Invalid MTU $MTU"
-   fi
-fi
-
-# Set the route default gateway if requested
-if [ -n "${GATEWAY}" ]; then
-   if ip route | grep -q default; then
-      log_warning_msg "Gateway already setup; skipping."
-   else
-      log_info_msg "Adding default gateway ${GATEWAY} to the ${IFACE} interface..."
-      ip route add default via ${GATEWAY} dev ${IFACE}
-      evaluate_retval
-   fi
-fi
-
-# End /sbin/ifup
-
-
-
-
-
-
-

- D.25. /sbin/ifdown -

-
-
-
-
#!/bin/bash
-########################################################################
-# Begin /sbin/ifdown
-#
-# Description : Interface Down
-#
-# Authors     : Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-# Notes       : the IFCONFIG variable is passed to the scripts found
-#               in the /lib/services directory, to indicate what file the
-#               service should source to get interface specifications.
-#
-########################################################################
-
-RELEASE="7.0"
-
-USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
-VERSTR="LFS ifdown, version ${RELEASE}"
-
-while [ $# -gt 0 ]; do
-   case "$1" in
-      --help | -h)     help="y"; break ;;
-
-      --version | -V)  echo "${VERSTR}"; exit 0 ;;
-
-      -*)              echo "ifup: ${1}: invalid option" >&2
-                       echo "${USAGE}" >& 2
-                       exit 2 ;;
-
-      *)               break ;;
-   esac
-done
-
-if [ -n "$help" ]; then
-   echo "${VERSTR}"
-   echo "${USAGE}"
-   echo
-   cat << HERE_EOF
-ifdown is used to bring down a network interface.  The interface
-parameter, e.g. eth0 or eth0:2, must match the trailing part of the
-interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
-
-HERE_EOF
-   exit 0
-fi
-
-file=/etc/sysconfig/ifconfig.${1}
-
-# Skip backup files
-[ "${file}" = "${file%""~""}" ] || exit 0
-
-. /lib/lsb/init-functions
-
-if [ ! -r "${file}" ]; then
-   log_warning_msg "${file} is missing or cannot be accessed."
-   exit 1
-fi
-
-. ${file}
-
-if [ "$IFACE" = "" ]; then
-   log_failure_msg "${file} does not define an interface [IFACE]."
-   exit 1
-fi
-
-# We only need to first service to bring down the interface
-S=`echo ${SERVICE} | cut -f1 -d" "`
-
-if ip link show ${IFACE} > /dev/null 2>&1; then
-   if [ -n "${S}" -a -x "/lib/services/${S}" ]; then
-     IFCONFIG=${file} /lib/services/${S} ${IFACE} down
-   else
-     MSG="Unable to process ${file}.  Either "
-     MSG="${MSG}the SERVICE variable was not set "
-     MSG="${MSG}or the specified service cannot be executed."
-     log_failure_msg "$MSG"
-     exit 1
-  fi
-else
-   log_warning_msg "Interface ${1} doesn't exist."
-fi
-
-# Leave the interface up if there are additional interfaces in the device
-link_status=`ip link show ${IFACE} 2>/dev/null`
-
-if [ -n "${link_status}" ]; then
-   if [ "$(echo "${link_status}" | grep UP)" != "" ]; then
-      if [ "$(ip addr show ${IFACE} | grep 'inet ')" == ""  ]; then
-         log_info_msg "Bringing down the ${IFACE} interface..."
-         ip link set ${IFACE} down
-         evaluate_retval
-      fi
-   fi
-fi
-
-# End /sbin/ifdown
-
-
-
-
-
-
-

- D.26. /lib/services/ipv4-static -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin /lib/services/ipv4-static
-#
-# Description : IPV4 Static Boot Script
-#
-# Authors     : Nathan Coulson - nathan AT linuxfromscratch D0T org
-#               Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-. ${IFCONFIG}
-
-if [ -z "${IP}" ]; then
-   log_failure_msg "\nIP variable missing from ${IFCONFIG}, cannot continue."
-   exit 1
-fi
-
-if [ -z "${PREFIX}" -a -z "${PEER}" ]; then
-   log_warning_msg "\nPREFIX variable missing from ${IFCONFIG}, assuming 24."
-   PREFIX=24
-   args="${args} ${IP}/${PREFIX}"
-
-elif [ -n "${PREFIX}" -a -n "${PEER}" ]; then
-   log_failure_msg "\nPREFIX and PEER both specified in ${IFCONFIG}, cannot continue."
-   exit 1
-
-elif [ -n "${PREFIX}" ]; then
-   args="${args} ${IP}/${PREFIX}"
-
-elif [ -n "${PEER}" ]; then
-   args="${args} ${IP} peer ${PEER}"
-fi
-
-if [ -n "${LABEL}" ]; then
-   args="${args} label ${LABEL}"
-fi
-
-if [ -n "${BROADCAST}" ]; then
-   args="${args} broadcast ${BROADCAST}"
-fi
-
-case "${2}" in
-   up)
-      if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" = "" ]; then
-         log_info_msg "Adding IPv4 address ${IP} to the ${1} interface..."
-         ip addr add ${args} dev ${1}
-         evaluate_retval
-      else
-         log_warning_msg "Cannot add IPv4 address ${IP} to ${1}.  Already present."
-      fi
-   ;;
-
-   down)
-      if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" != "" ]; then
-         log_info_msg "Removing IPv4 address ${IP} from the ${1} interface..."
-         ip addr del ${args} dev ${1}
-         evaluate_retval
-      fi
-
-      if [ -n "${GATEWAY}" ]; then
-         # Only remove the gateway if there are no remaining ipv4 addresses
-         if [ "$(ip addr show ${1} 2>/dev/null | grep 'inet ')" != "" ]; then
-            log_info_msg "Removing default gateway..."
-            ip route del default
-            evaluate_retval
-         fi
-      fi
-   ;;
-
-   *)
-      echo "Usage: ${0} [interface] {up|down}"
-      exit 1
-   ;;
-esac
-
-# End /lib/services/ipv4-static
-
-
-
-
-
-
-

- D.27. - /lib/services/ipv4-static-route -

-
-
-
-
#!/bin/sh
-########################################################################
-# Begin /lib/services/ipv4-static-route
-#
-# Description : IPV4 Static Route Script
-#
-# Authors     : Kevin P. Fleming - kpfleming@linuxfromscratch.org
-#               DJ Lucas - dj AT linuxfromscratch D0T org
-# Update      : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version     : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-. ${IFCONFIG}
-
-case "${TYPE}" in
-   ("" | "network")
-      need_ip=1
-      need_gateway=1
-   ;;
-
-   ("default")
-      need_gateway=1
-      args="${args} default"
-      desc="default"
-   ;;
-
-   ("host")
-      need_ip=1
-   ;;
-
-   ("unreachable")
-      need_ip=1
-      args="${args} unreachable"
-      desc="unreachable "
-   ;;
-
-   (*)
-      log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue."
-      exit 1
-   ;;
-esac
-
-if [ -n "${GATEWAY}" ]; then
-   MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n"
-   log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue"
-   exit 1
-fi
-
-if [ -n "${need_ip}" ]; then
-   if [ -z "${IP}" ]; then
-      log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue."
-      exit 1
-   fi
-
-   if [ -z "${PREFIX}" ]; then
-      log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
-      exit 1
-   fi
-
-   args="${args} ${IP}/${PREFIX}"
-   desc="${desc}${IP}/${PREFIX}"
-fi
-
-if [ -n "${need_gateway}" ]; then
-   if [ -z "${STATIC_GATEWAY}" ]; then
-      log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot continue."
-      exit 1
-   fi
-   args="${args} via ${STATIC_GATEWAY}"
-fi
-
-if [ -n "${SOURCE}" ]; then
-        args="${args} src ${SOURCE}"
-fi
-
-case "${2}" in
-   up)
-      log_info_msg "Adding '${desc}' route to the ${1} interface..."
-      ip route add ${args} dev ${1}
-      evaluate_retval
-   ;;
-
-   down)
-      log_info_msg "Removing '${desc}' route from the ${1} interface..."
-      ip route del ${args} dev ${1}
-      evaluate_retval
-   ;;
-
-   *)
-      echo "Usage: ${0} [interface] {up|down}"
-      exit 1
-   ;;
-esac
-
-# End /lib/services/ipv4-static-route
-
-
-
-
-
-
-
-

- Apêndice E. Regras de configuração do - Udev -

-
-
-
-

- As regras neste anexo estão listadas por conveniência. A - instalação normalmente é feita via instruções na Seção 8.69, - “Eudev-3.2.11”. -

-
-
-
-
-

- E.1. 55-lfs.rules -

-
-
-
-
# /etc/udev/rules.d/55-lfs.rules: Rule definitions for LFS.
-
-# Core kernel devices
-
-# This causes the system clock to be set as soon as /dev/rtc becomes available.
-SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
-KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
-
-# Comms devices
-
-KERNEL=="ippp[0-9]*",       GROUP="dialout"
-KERNEL=="isdn[0-9]*",       GROUP="dialout"
-KERNEL=="isdnctrl[0-9]*",   GROUP="dialout"
-KERNEL=="dcbri[0-9]*",      GROUP="dialout"
-
-
-
-
-
-
-
-

- Apêndice F. Licenças do LFS -

-
-
-
-

- Este livro [escrito originalmente em inglês] está licenciado sob - a licença da Creative Commons - Attribution-NonCommercial-ShareAlike 2.0. -

-

- A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob - a Licença de Documentação Livre GNU, versão 1.3 ou qualquer - versão posterior publicada pela Free Software Foundation. -

-

- As instruções de computador tem permissão para serem extraídas a - partir do livro sob a Licença do MIT. -

-
-
-
-
-

- F.1. Licença da Creative Commons -

-
-
-
-

- Creative Commons Legal Code -

-

- Atribuição - Uso não-Comercial - Compartilhamento pela mesma - licença 2.0 -

-
-

- Importante -

-

- A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE - ADVOCACIA E NÃO PRESTA SERVIÇOS JURÍDICOS. A DISTRIBUIÇÃO - DESTA LICENÇA NÃO ESTABELECE QUALQUER RELAÇÃO ADVOCATÍCIA. O - CREATIVE COMMONS DISPONIBILIZA ESTA INFORMAÇÃO "NO ESTADO EM - QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ QUALQUER - GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU - USO. -

-
-

- Licença -

-

- A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO - COM OS TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU - "LICENÇA"). A OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS - LEIS APLICÁVEIS. QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB - ESTA LICENÇA OU PELA LEGISLAÇÃO AUTORAL É PROIBIDO. -

-

- AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ - ACEITA E CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O - LICENCIANTE CONCEDE A VOCÊ OS DIREITOS AQUI CONTIDOS EM - CONTRAPARTIDA À SUA ACEITAÇÃO DESTES TERMOS E CONDIÇÕES. -

-
-
    -
  1. -

    - Definições -

    -
    -
      -
    1. -

      - "Obra Coletiva" significa uma obra, tal como uma - edição periódica, antologia ou enciclopédia, na - qual a Obra em sua totalidade e de forma - inalterada, em conjunto com um número de outras - contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um - trabalho coletivo. Uma obra que constitua uma Obra - Coletiva não será considerada Obra Derivada - (conforme definido abaixo) para os propósitos desta - licença. -

      -
    2. -
    3. -

      - "Obra Derivada" significa uma obra baseada sobre a - Obra ou sobre a Obra e outras obras pré-existentes, - tal como uma tradução, arranjo musical, - dramatização, romantização, versão de filme, - gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual - a Obra possa ser refeita, transformada ou adaptada, - com a exceção de que uma obra que constitua uma - Obra Coletiva não será considerada Obra Derivada - para fins desta licença. Para evitar dúvidas, - quando a Obra for uma composição musical ou - gravação de som, a sincronização da Obra em relação - cronometrada com uma imagem em movimento - (“synching”) será considerada uma Obra - Derivada para os propósitos desta licença. -

      -
    4. -
    5. -

      - "Licenciante" significa a pessoa física ou a - jurídica que oferece a Obra sob os termos desta - licença. -

      -
    6. -
    7. -

      - "Autor Original" significa a pessoa física ou - jurídica que criou a Obra. -

      -
    8. -
    9. -

      - "Obra" significa a obra autoral, passível de - proteção pelo direito autoral, oferecida sob os - termos desta licença. -

      -
    10. -
    11. -

      - "Você" significa a pessoa física ou jurídica - exercendo direitos sob esta Licença que não tenha - previamente violado os termos desta Licença com - relação à Obra, ou que tenha recebido permissão - expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. -

      -
    12. -
    13. -

      - "Elementos da Licença" significa os principais - atributos da licença correspondente, conforme - escolhidos pelo licenciante e indicados no título - desta licença: Atribuição, Compartilhamento pela - Mesma Licença. -

      -
    14. -
    -
    -
  2. -
  3. -

    - Direitos de Uso Legítimo. Nada nesta licença deve ser - interpretado de modo a reduzir, limitar ou restringir - quaisquer direitos relativos ao uso legítimo, ou outras - limitações sobre os direitos exclusivos do titular de - direitos autorais sob a legislação autoral ou quaisquer - outras leis aplicáveis. -

    -
  4. -
  5. -

    - Concessão da Licença. O Licenciante concede a Você uma - licença de abrangência mundial, sem royalties, - não-exclusiva, perpétua (pela duração do direito autoral - aplicável), sujeita aos termos e condições desta Licença, - para exercer os direitos sobre a Obra definidos abaixo: -

    -
    -
      -
    1. -

      - reproduzir a Obra, incorporar a Obra em uma ou mais - Obras Coletivas e reproduzir a Obra quando - incorporada em Obra Coletiva; -

      -
    2. -
    3. -

      - criar e reproduzir Obras Derivadas; -

      -
    4. -
    5. -

      - distribuir cópias ou gravações da Obra, exibir - publicamente, executar publicamente e executar - publicamente por meio de uma transmissão de áudio - digital a Obra, inclusive quando incorporada em - Obras Coletivas; -

      -
    6. -
    7. -

      - distribuir cópias ou gravações de Obras Derivadas, - exibir publicamente, executar publicamente e - executar publicamente por meio de uma transmissão - digital de áudio Obras Derivadas. -

      -
    8. -
    -
    -

    - Os direitos acima podem ser exercidos em todas as mídias - e formatos, independente de serem conhecidos agora ou - concebidos posteriormente. Os direitos acima incluem o - direito de fazer modificações que forem tecnicamente - necessárias para exercer os direitos em outras mídias, - meios e formatos. Todos os direitos não concedidos - expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos - nas Seções 4(e) e 4(f). -

    -
  6. -
  7. -

    - Restrições. A licença concedida na Seção 3 acima está - expressamente sujeita e limitada aos seguintes termos: -

    -
    -
      -
    1. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra apenas sob os termos desta Licença, - e Você deve incluir uma cópia desta licença, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta Licença, com cada - cópia ou gravação da Obra que Você distribuir, - exibir publicamente, executar publicamente, ou - executar publicamente por meios digitais. Você não - poderá oferecer ou impor quaisquer termos sobre a - Obra que alterem ou restrinjam os termos desta - Licença ou o exercício dos direitos aqui concedidos - aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as - informações que se referem a esta Licença e à - exclusão de garantias. Você não pode distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com - qualquer medida tecnológica que controle o acesso - ou o uso da Obra de maneira inconsistente com os - termos deste Acordo de Licença. O disposto acima se - aplica à Obra enquanto incorporada em uma Obra - Coletiva, mas isto não requer que a Obra Coletiva, - à parte da Obra em si, esteja sujeita aos termos - desta Licença. Se Você criar uma Obra Coletiva, em - havendo notificação de qualquer Licenciante, Você - deve, na medida do razoável, remover da Obra - Coletiva qualquer referência a este Licenciante ou - Autor Original, conforme solicitado. Se você criar - uma Obra Derivada, em havendo notificação de - qualquer Licenciante, Você deve, na medida do - razoável, remover da Obra Derivada qualquer - referência a este Licenciante ou ao Autor Original, - conforme solicitado. -

      -
    2. -
    3. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais uma Obra Derivada somente sob os termos - desta Licença, ou de uma versão posterior desta - licença com os mesmos Elementos da Licença desta - licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos - Elementos da Licença desta Licença (por exemplo, - Atribuição, Uso Não Comercial, Compartilhamento - pela Mesma Licença Japão). Você deve incluir uma - cópia desta licença ou de outra licença - especificada na sentença anterior, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta licença ou de outra - licença especificada na sentença anterior, com cada - cópia ou gravação de cada Obra Derivada que Você - distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra Derivada que alterem - ou restrinjam os termos desta Licença ou o - exercício dos direitos aqui concedidos aos - destinatários, e Você deverá manter intactas todas - as informações que se refiram a esta Licença e à - exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra - Derivada com qualquer medida tecnológica que - controle o acesso ou o uso da Obra de maneira - inconsistente com os termos deste Acordo de - Licença. O disposto acima se aplica à Obra Derivada - quando incorporada em uma Obra Coletiva, mas isto - não requer que a Obra Coletiva, à parte da Obra em - si, esteja sujeita aos termos desta Licença. -

      -
    4. -
    5. -

      - Você não poderá exercer nenhum dos direitos acima - concedidos a Você na Seção 3 de qualquer maneira - que seja predominantemente intencionada ou - direcionada à obtenção de vantagem comercial ou - compensação monetária privada. A troca da Obra por - outros materiais protegidos por direito autoral - através de compartilhamento digital de arquivos ou - de outras formas não deverá ser considerada como - intencionada ou direcionada à obtenção de vantagens - comerciais ou compensação monetária privada, desde - que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas - por direito de autor. -

      -
    6. -
    7. -

      - Se Você distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra ou qualquer Obra Derivada ou Obra - Coletiva, Você deve manter intactas todas as - informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável - com relação ao meio ou mídia que Você está - utilizando, através da veiculação do nome (ou - pseudônimo, se for o caso) do Autor Original, se - fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de - Recursos (URI) que o Licenciante especificar para - estar associado à Obra, se houver, exceto se o URI - não se referir ao aviso de direitos autorais ou à - informação sobre o regime de licenciamento da Obra; - e no caso de Obra Derivada, crédito identificando o - uso da Obra na Obra Derivada (exemplo: "Tradução - Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal - crédito pode ser implementado de qualquer forma - razoável; entretanto, no caso de Obra Derivada ou - Obra Coletiva, este crédito aparecerá no mínimo - onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto - este outro crédito de autoria comparável. -

      -
    8. -
    9. -

      - De modo a tornar claras estas disposições, quando - uma Obra for uma composição musical: -

      -
      -
        -
      1. -

        - Royalties e execução pública. O Licenciante - reserva o seu direito exclusivo de coletar, - seja individualmente ou através de entidades - coletoras de direitos de execução (por - exemplo, ECAD, ASCAP, BMI, SESAC), o valor - dos seus direitos autorais pela execução - pública da obra ou execução pública digital - (por exemplo, webcasting) da Obra se esta - execução for predominantemente intencionada - ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. -

        -
      2. -
      3. -

        - Royalties e Direitos fonomecânicos. O - Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através - de uma entidade designada como seu agente - (por exemplo, a agência Harry Fox), royalties - relativos a quaisquer gravações que Você - criar da Obra (por exemplo, uma versão - “cover”) e distribuir, conforme - as disposições aplicáveis de direito autoral, - se a distribuição feita por Você de versão - “cover” for predominantemente - intencionada ou direcionada à obtenção de - vantagem comercial ou compensação monetária - privada. -

        -
      4. -
      -
      -
    10. -
    11. -

      - Direitos de Execução Digital pela Internet - (Webcasting) e royalties. De modo a evitar dúvidas, - quando a Obra for uma gravação de som, o - Licenciante reserva o seu direito exclusivo de - coletar, seja individualmente ou através de - entidades coletoras de direitos de execução (por - exemplo, SoundExchange ou ECAD), royalties e - direitos autorais pela execução digital pública - (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a - execução digital pública feita por Você for - predominantemente intencionada ou direcionada à - obtenção de vantagem comercial ou compensação - monetária privada. -

      -
    12. -
    -
    -
  8. -
  9. -

    - Declarações, Garantias e Exoneração -

    -

    - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO - PELAS PARTES POR ESCRITO, O LICENCIANTE OFERECE A OBRA - “NO ESTADO EM QUE SE ENCONTRA” (AS IS) E NÃO - PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES DE QUALQUER - ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÍCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, - INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A - TITULARIDADE DA OBRA, ADEQUAÇÃO PARA QUAISQUER - PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU INEXISTÊNCIA DE - QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA OU - AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS - IMPLÍCITAS, ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. -

    -
  10. -
  11. -

    - Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA - PELA LEI APLICÁVEL, EM NENHUMA CIRCUNSTÂNCIA O - LICENCIANTE SERÁ RESPONSÁVEL PARA COM VOCÊ POR QUAISQUER - DANOS, ESPECIAIS, INCIDENTAIS, CONSEQUENCIAIS, PUNITIVOS - OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU DO USO DA OBRA, - MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. -

    -
  12. -
  13. -

    - Terminação -

    -
    -
      -
    1. -

      - Esta Licença e os direitos aqui concedidos - terminarão automaticamente no caso de qualquer - violação dos termos desta Licença por Você. Pessoas - físicas ou jurídicas que tenham recebido Obras - Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças - terminadas desde que tais pessoas físicas ou - jurídicas permaneçam em total cumprimento com essas - licenças. As Seções 1, 2, 5, 6, 7 e 8 subsistirão a - qualquer terminação desta Licença. -

      -
    2. -
    3. -

      - Sujeito aos termos e condições dispostos acima, a - licença aqui concedida é perpétua (pela duração do - direito autoral aplicável à Obra). Não obstante o - disposto acima, o Licenciante reserva-se o direito - de difundir a Obra sob termos diferentes de licença - ou de cessar a distribuição da Obra a qualquer - momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta - Licença (ou de qualquer outra licença que tenha - sido concedida sob os termos desta Licença, ou que - deva ser concedida sob os termos desta Licença) e - esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. -

      -
    4. -
    -
    -
  14. -
  15. -

    - Outras Disposições -

    -
    -
      -
    1. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais a Obra ou uma Obra - Coletiva, o Licenciante oferece ao destinatário uma - licença da Obra nos mesmos termos e condições que a - licença concedida a Você sob esta Licença. -

      -
    2. -
    3. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais uma Obra Derivada, - o Licenciante oferece ao destinatário uma licença à - Obra original nos mesmos termos e condições que - foram concedidos a Você sob esta Licença. -

      -
    4. -
    5. -

      - Se qualquer disposição desta Licença for tida como - inválida ou não-executável sob a lei aplicável, - isto não afetará a validade ou a possibilidade de - execução do restante dos termos desta Licença e, - sem a necessidade de qualquer ação adicional das - partes deste acordo, tal disposição será reformada - na mínima extensão necessária para tal disposição - tornar-se válida e executável. -

      -
    6. -
    7. -

      - Nenhum termo ou disposição desta Licença será - considerado renunciado e nenhuma violação será - considerada consentida, a não ser que tal renúncia - ou consentimento seja feito por escrito e assinado - pela parte que será afetada por tal renúncia ou - consentimento. -

      -
    8. -
    9. -

      - Esta Licença representa o acordo integral entre as - partes com respeito à Obra aqui licenciada. Não há - entendimentos, acordos ou declarações relativas à - Obra que não estejam especificadas aqui. O - Licenciante não será obrigado por nenhuma - disposição adicional que possa aparecer em - quaisquer comunicações provenientes de Você. Esta - Licença não pode ser modificada sem o mútuo acordo, - por escrito, entre o Licenciante e Você. -

      -
    10. -
    -
    -
  16. -
-
-
-

- Importante -

-

- O Creative Commons não é uma parte desta Licença e não presta - qualquer garantia relacionada à Obra. O Creative Commons não - será responsável perante Você ou qualquer outra parte por - quaisquer danos, incluindo, sem limitação, danos gerais, - especiais, incidentais ou consequentes, originados com - relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se - identificado como o Licenciante, ele deverá ter todos os - direitos e obrigações do Licenciante. -

-

- Exceto para o propósito delimitado de indicar ao público que - a Obra é licenciada sob a CCPL (Licença Pública Creative - Commons), nenhuma parte deverá utilizar a marca "Creative - Commons" ou qualquer outra marca ou logo relacionado ao - Creative Commons sem consentimento prévio e por escrito do - Creative Commons. Qualquer uso permitido deverá ser de acordo - com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de - outro modo disponibilizadas periodicamente mediante - solicitação. -

-

- O Creative Commons pode ser contactado pelo endereço: - http://creativecommons.org/. -

-
-
-
-
-
-
-

- F.2. A Licença do MIT -

-
-
-
-

- Direitos autorais © 1999-2022 Gerard Beekmans -

-

- Permissão é aqui concedida, gratuitamente, para qualquer pessoa - que obtenha uma cópia deste software e arquivos de documentação - associados (o "Software"), para lidar com o Software sem - restrição, incluindo, sem limitação, os direitos para usar, - copiar, modificar, mesclar, publicar, distribuir, sublicenciar, - e (ou) vender cópias do Software, e para permitir para as - pessoas para quem o Software é fornecido para fazer o mesmo, - sujeito às seguintes condições: -

-

- O aviso de direitos autorais acima e este aviso de permissão - deveria ser incluído em todas as cópias ou porções substanciais - do Software. -

-

- O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE - ENCONTRA”, SEM GARANTIAS DE QUALQUER ESPÉCIE, EXPLÍCITAS - OU IMPLÍCITAS, INCLUINDO, PORÉM NÃO LIMITADA A, AS GARANTIAS DE - COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR E - NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES - DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER - ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE - CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO - SOFTWARE. -

-
-
-
-
-
-

- F.3. A Licença de Documentação Livre GNU -

-
-
-
-

- Direitos autorais © 1999-2022 Jamenson Espindula -

-

- Versão 1.3, 03 de novembro de 2008 -

-

- Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ -

-

- A qualquer pessoa é permitido copiar e distribuir cópias - literais deste documento de licença, porém modificá-lo não é - permitido. -

-
-
    -
  1. -

    - PREÂMBULO -

    -

    - O propósito desta licença é tornar um manual, livro de - texto, ou outro documento funcional e útil livre no - sentido da liberdade: para assegurar a qualquer pessoa a - liberdade efetiva para copiar e redistribuí-lo, com ou - sem modificações, ambos comercialmente ou não - comercialmente. Secundariamente, esta Licença preserva - para o autor e editor uma maneira de obter crédito pelos - seus trabalhos, ao mesmo tempo não sendo considerado - responsável por modificações feitas por outros. Esta - Licença é uma espécie de “copyleft” - (“esquerdos autorais”), o que significa que - trabalhos derivados do documento devem necessariamente - eles mesmos serem livres no mesmo sentido. Ela - complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software - livre. Nós projetamos esta Licença para utilizá-la para - manuais para software livre, porque software livre - precisa de documentação livre: um programa livre deveria - vir com manuais provendo as mesmas liberdades que o - software provê. Porém esta Licença não é limitada a - manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de - assunto ou se o trabalho textual for publicado como um - livro impresso. Nós recomendamos esta Licença - principalmente para trabalhos cujo propósito seja - instrução ou referência. -

    -
  2. -
  3. -

    - APLICABILIDADE E DEFINIÇÕES -

    -

    - Esta Licença se aplica a qualquer manual ou outro - trabalho, em qualquer meio, que contenha um aviso - colocado pelo detentor dos direitos autorais dizendo que - ele pode ser distribuído sob os termos desta Licença. Tal - aviso concede uma licença mundial, livre de patente, - ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documento”, - abaixo, se refere a quaisquer desses manuais ou - trabalhos. Qualquer membro do publico é um titular da - licença, e é mencionado como “você”. Você - aceita a licença se você copiar, modificar ou distribuir - o trabalho em uma forma que exija permissão sob lei de - direitos autorais. Uma “Versão Modificada” do - Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, - ou com modificações e/ou traduzido em outra língua. Uma - “Seção Secundária” é um apêndice nomeado ou - uma seção pré-textual do Documento que lida - exclusivamente com o relacionamento dos editores ou - autores do Documento para com o assunto global do - Documento (ou com questões relacionadas) e não contém - nada que possa se conformar diretamente com aquele - assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode - explanar nada acerca de cálculos matemáticos). O - relacionamento poderia ser uma questão de conexão - histórica com o assunto ou com questões relacionadas, ou - de posicionamento legal, comercial, filosófico, ético ou - político respeitante a eles. As “Seções - Invariantes” são certas Seções Secundárias cujos - títulos são projetados, como sendo aqueles de Seções - Invariantes, no aviso que diz que o Documento é publicado - sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está - autorizada a ser designada como Invariante. O Documento - pode conter zero Seções Invariantes. Se o Documento não - identifica quaisquer Seções Invariantes, então não existe - nenhuma. Os “Textos de Capa” são certas - passagens curtas de texto que são listadas, como Textos - de Primeira Capa ou Textos de Quarta-Capa, no aviso que - diz que o Documento é publicado sob esta Licença. Um - Texto de Primeira Capa pode ter no máximo cinco (05) - palavras, e um Texto de Quarta Capa pode ter no máximo - vinte e cinco (25) palavras. Uma cópia - “Transparente” do Documento significa uma - cópia legível por máquina, representada em um formato - cuja especificação está disponível para o público em - geral, que é adequada para revisar o documento - diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura - genéricos ou (para desenhos) algum editor de desenho - disponível amplamente, e que seja adequado para entrada a - formatadores de texto ou para tradução automática a uma - variedade de formatos próprios para entrada a - formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de - marcação, ou ausência de linguagem de marcação, tenha - sido organizada para frustrar ou desencorajar - modificações subsequentes por leitores, não é - Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. - Uma cópia que não é “Transparente” é chamada - “Opaca”. Exemplos de formatos adequados para - cópias Transparentes incluem ASCII puro sem marcações; - formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; - HTML simples conformante com o padrão; PostScript ou PDF - projetado para modificação humana. Exemplos de formatos - transparantes de imagens incluem PNG, XCF e JPG. Formatos - opacos incluem formatos proprietários que podem ser lidos - e editados somente por processadores proprietários de - palavra; SGML ou XML para os quais o DTD e/ou as - ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou - PDF produzidos por alguns processadores de palavra apenas - para propósitos de saída. A “Página de - Título” significa, para um livro impresso, a - própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o - material que esta Licença exige para aparecer na página - de título. Para trabalhos em formatos que não tenham - qualquer página de título como tal, “Página de - Título” significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o - início do corpo do texto. O “editor” - significa qualquer pessoa ou entidade que distribui - cópias do Documento ao público. Uma seção - “Intitulada XYZ” significa uma subunidade - nomeada do Documento cujo título ou é precisamente XYZ ou - contém XYZ entre parênteses seguinte ao texto que traduz - XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como - “Agradecimentos”; “Dedicatórias”; - “Patrocínios”; ou “Histórico”). - “Preservar o Título” de tal seção quando você - modificar o Documento significa que ele permanece uma - seção “Intitulada XYZ” de acordo com essa - definição. O Documento pode incluir Declarações de - Garantia próximas ao aviso que declara que esta Licença - se aplica ao Documento. Essas Declarações de Garantia são - consideradas como inclusas por referência nesta Licença, - porém somente com relação à negação de garantias: - qualquer outra implicação que essas Declarações de - Garantia possam ter é inválida e não tem efeito sobre o - significado desta Licença. -

    -
  4. -
  5. -

    - CÓPIA LITERAL -

    -

    - Você pode copiar e distribuir o Documento em qualquer - meio, ambos comercialmente e não comercialmente, contanto - que esta Licença, os avisos de direitos autorais, e o - aviso de licença dizendo que esta Licença se aplica ao - Documento estejam reproduzidas em todas as cópias, e que - você não adiciona quaisquer outras condições, quaisquer - que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou - distribuir. Entretanto, você pode aceitar remuneração em - troca das cópias. Se você distribui um número de cópias - grande o suficiente, você deve necessariamente também - seguir as condições na seção três (3). Você também pode - ceder cópias, sob as mesmas condições declaradas acima, e - você pode publicamente exibir cópias. -

    -
  6. -
  7. -

    - CÓPIAS EM QUANTIDADE -

    -

    - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número - maior que cem (100), e o aviso de licença do Documento - exigir Textos de Capa, você deve necessariamente encartar - as cópias em capas que transportem, claramente e - legivelmente, todos estes Textos de Capa: Textos de - Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente - também claramente e legivelmente identificar você como o - editor dessas cópias. A capa frontal deve necessariamente - apresentar o título completo com todas as palavras do - título igualmente proeminentes e visíveis. Você pode - adicionar outros materiais nas capas adicionalmente. As - cópias com modificações limitadas às capas, tanto quanto - preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em - relação a outros aspectos. Se os textos exigidos para - ambas as capas forem muito volumosos para caber - legivelmente, você deveria colocar os primeiros listados - (tantos quantos caibam razoavelmente) na capa atual, e - continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em - número maior que cem (100), você deve necessariamente ou - incluir uma cópia Transparente, legível por máquina, - junto com cada cópia Opaca, ou declarar, na ou com cada - cópia Opaca, uma localização de rede de computador, a - partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de - padrão público, uma cópia Transparente completa do - Documento, livre do material adicionado. Se você se - utilizar da última opção, você deve necessariamente - adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, - para se assegurar que essa cópia Transparente permanecerá - então acessível na localização declarada até pelo menos - um ano após a última vez que você distribuiu uma cópia - Opaca (diretamente ou por intermédio dos seus agentes ou - varejistas) daquela edição ao público. É pedido, mas não - exigido, que você contate os autores do Documento bem - antes de redistribuir qualquer número grande de cópias, - para dá-los a oportunidade de lhe fornecer uma versão - atualizada do Documento. -

    -
  8. -
  9. -

    - MODIFICAÇÕES -

    -

    - Você pode copiar e distribuir uma Versão Modificada do - Documento sob as condições das seções dois (2) e três (3) - acima, contanto que você publique a Versão Modificada - precisamente sob esta Licença, com a Versão Modificada - preenchendo a função do Documento, portanto licenciando a - distribuição e modificação da Versão Modificada a quem - quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: -

    -
    -
      -
    1. -

      - Utilize na Página de Título (e nas capas, se - existentes) um título distinto daquele do - Documento, e daqueles das versões prévias (as quais - deveriam, se existiu alguma, serem listadas na - seção Histórico do Documento). Você pode utilizar o - mesmo título que uma versão prévia, se o editor - original daquela versão conceder permissão. -

      -
    2. -
    3. -

      - Liste na Página de Título, como autores, uma ou - mais pessoas ou entidades responsáveis pela autoria - das modificações na Versão Modificada, junto com ao - menos cinco dos autores principais do Documento - (todos os autores principais, se tiver menos que - cinco), a menos que eles liberem você dessa - exigência. -

      -
    4. -
    5. -

      - Declare na Página de Título o nome do editor da - Versão Modificada, como o editor. -

      -
    6. -
    7. -

      - Preserve todos os avisos de direitos autorais do - Documento. -

      -
    8. -
    9. -

      - Adicione um aviso apropriado de direitos autorais - para suas modificações, adjacente aos outros avisos - de direitos autorais. -

      -
    10. -
    11. -

      - Inclua, imediatamente após os avisos de direitos - autorais, um aviso de licença concedendo ao público - permissão para utilizar a Versão Modificada sob os - termos desta Licença, na forma mostrada no Adendo - abaixo. -

      -
    12. -
    13. -

      - Preserve, naquele aviso de licença, as listas - completas de Seções Invariantes e Textos de Capa - exigidos dados no aviso de licença do Documento. -

      -
    14. -
    15. -

      - Inclua uma cópia inalterada desta Licença. -

      -
    16. -
    17. -

      - Preserve a seção intitulada - “Histórico”, Preserve seu Título, e - adicione a ele um item declarando ao menos o - título, ano, novos autores, e editor da Versão - Modificada, conforme dado na Página de Título. Se - não existir uma seção intitulada - “Histórico” no Documento, crie uma - declarando o título, ano, autores, e editor do - Documento, conforme dado em sua Página de Título, - então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. -

      -
    18. -
    19. -

      - Preserve a localização de rede, se existente, dada - no Documento para acesso público a uma cópia - Transparente do Documento, e da mesma forma as - localizações de rede dadas no Documento para - versões prévias nas quais foi baseado. Essas podem - ser colocadas na seção “Histórico”. - Você pode omitir uma localização de rede para um - trabalho que foi publicado nos últimos quatro anos - anteriores à publicação do próprio do Documento, ou - se o editor original da versão à qual a localização - de rede se refere conceder permissão. -

      -
    20. -
    21. -

      - Para cada seção Intitulada - “Agradecimentos” ou - “Dedicatórias”, Preserve o Título da - seção, e preserve na seção toda a substância e - tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. -

      -
    22. -
    23. -

      - Preserve todas as Seções Invariantes do Documento, - inalteradas em seus textos e em seus títulos. Os - números de Seção ou o equivalente não são - considerados parte dos títulos de seção. -

      -
    24. -
    25. -

      - Delete quaisquer seções Intituladas - “Patrocínios”. Tal seção não pode ser - incluída na Versão Modificada. -

      -
    26. -
    27. -

      - Não reintitule qualquer seção existente para - Intitulada “Patrocínios” ou para - conflitar no título com qualquer Seção Invariante. -

      -
    28. -
    29. -

      - Preserve quaisquer Declarações de Garantia. -

      -
    30. -
    -
    -

    - Se a Versão Modificada incluir novas seções pré textuais - ou apêndices que se qualifiquem como Seções Secundárias e - não contenham material copiado a partir do Documento, - você pode, a sua escolha, designar algumas ou todas essas - seções como Invariantes. Para fazer isso, adicione seus - títulos à lista das Seções Invariantes no aviso de - licença da Versão Modificada. Esses títulos devem - necessariamente serem distintos de quaisquer outros - títulos de seções. Você pode adicionar uma seção - Intitulada “Patrocínios”, contanto que ela - não contenha nada além de patrocínios da sua Versão - Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi - aprovado por uma organização como a definição - autorizativa de um padrão. Você pode adicionar uma - passagem de até cinco palavras, como um Texto de Primeira - Capa, e uma passagem de até vinte e cinco palavras, como - um Texto de Quarta Capa, ao final da lista dos Textos de - Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer - uma entidade. Se o Documento já inclui um texto de capa - para a mesma capa, previamente adicionado por você ou por - acordo feito pela mesma entidade pela qual você está - atuando, você não pode adicionar outro; porém você pode - substituir o antigo, na permissão explícita do editor - prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão - para utilizar seus nomes para publicidade para ou para - afirmar ou implicar patrocínio de qualquer Versão - Modificada. -

    -
  10. -
  11. -

    - COMBINANDO DOCUMENTOS -

    -

    - Você pode combinar o Documento com outros documentos - publicados sob esta Licença, sob os termos definidos na - seção quatro (4) acima para versões modificadas, contanto - que você inclua na combinação todas as Seções Invariantes - de todos os documentos originais, não modificados, e - listá-los todos como Seções Invariantes do seu trabalho - combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado - precisa conter somente uma cópia desta Licença, e - múltiplas Seções Invariantes idênticas podem ser - substituídas por uma cópia única. Se existirem múltiplas - Seções Invariantes com o mesmo nome, mas conteúdos - diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do - autor ou editor original daquela seção se conhecido, ou, - do contrário, um número único. Faça o mesmo ajuste aos - títulos da seção na lista de Seções Invariantes no aviso - de licença do trabalho combinado. Na combinação, você - deve necessariamente combinar quaisquer seções - Intituladas “Histórico” nos vários documentos - originais, formando uma seção Intitulada - “Histórico”; de mesma maneira, combine - quaisquer seções Intituladas - “Agradecimentos”, e quaisquer seções - Intituladas “Dedicatórias”. Você deve - necessariamente deletar todas as seções Intituladas - “Patrocínios”. -

    -
  12. -
  13. -

    - COLEÇÕES DE DOCUMENTOS -

    -

    - Você pode produzir uma coleção consistente do Documento e - outros documentos publicados sob esta Licença, e - substitua as cópias individuais desta Licença nos vários - documentos por uma cópia única que esteja incluída na - coleção, contanto que você siga as regras desta Licença - para cópias literais de cada um dos documentos em todos - os outros aspectos. Você pode extrair um documento único - de tal coleção, e distribuí-lo individualmente sob esta - Licença, contanto que você insira uma cópia desta Licença - no documento extraído, e siga esta Licença em todos os - outros aspectos relativos à cópias literais daquele - documento. -

    -
  14. -
  15. -

    - AGREGAÇÃO COM TRABALHOS INDEPENDENTES -

    -

    - Uma compilação do Documento ou seus derivados com outros - documentos separados e independentes ou trabalhos, dentro - ou junto a volume de armazenamento ou meio de - distribuição, é chamado em “agregado” se os - direitos autorais resultantes da compilação não forem - utilizados para limitar os direitos legais dos usuários - da compilação além do que os trabalhos individuais - permitem. Quando o Documento for incluído em um agregado, - esta Licença não se aplica aos outros trabalhos no - agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa - da seção três (3) for aplicável a essas cópias do - Documento, então se o Documento for menor que a metade do - agregado inteiro, os Textos de Capa do Documento podem - ser colocados em capas que encartem o Documento dentro do - agregado, ou o equivalente eletrônico de capas se o - Documento estiver em formato eletrônico. Do contrário, - eles devem necessariamente aparecer nas capas impressas - que encartem o agregado inteiro. -

    -
  16. -
  17. -

    - TRADUÇÃO -

    -

    - Tradução é considerada um tipo de modificação, de forma - que você pode distribuir traduções do Documento sob os - termos da seção quatro (4). A substituição de Seções - Invariantes por traduções exige permissão especial de - seus detentores dos direitos autorais, porém você pode - incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas - Seções Invariantes. Você pode incluir uma tradução desta - Licença, e todos os avisos de licença no Documento, e - quaisquer Declarações de Garantia, contanto que você - inclua também a versão original em Inglês desta Licença e - as versões originais daqueles avisos e declarações. No - caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a - versão original prevalecerá. Se uma seção no Documento - for Intitulada “Agradecimentos”, - “Dedicatórias”, ou “Histórico”, a - exigência (seção 4) de Preservar seu Título (seção 1) - tipicamente exigirá a modificação do título atual. -

    -
  18. -
  19. -

    - FINALIZAÇÃO -

    -

    - Você não pode copiar, modificar, sublicenciar, ou - distribuir o Documento, exceto conforme expressamente - provido sob esta Licença. Qualquer tentativa clandestina - de copiar, modificar, sublicenciar, ou distribuir o - Documento é inválida, e automaticamente finalizará seus - direitos sob esta Licença. Entretanto, se você cessar - todas as violações a esta Licença, então a sua licença - oriunda de um detentor de direitos autorais em particular - está restabelecida (a) provisoriamente, a menos e até que - o detentor dos direitos autorais explicita e finalmente - cancele sua licença; e (b) permanentemente, se o detentor - dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) - dias após a cessação. Além disso, a sua licença oriunda - de um detentor de direitos autorais em particular está - restabelecida permanentemente se o detentor dos direitos - autorais notificar você sobre a violação por algum meio - razoável, essa for a primeira vez que você recebeu um - aviso de violação desta Licença (para qualquer trabalho) - oriunda daquele detentor de direitos autorais, e você - sanar a violação antes de decorridos trinta (30) dias - após o seu recebimento do aviso. A finalização dos seus - direitos sob esta seção não finaliza as licenças de - varejistas que tenham recebido cópias ou direitos de você - sob esta Licença. Se os seus direitos tiverem sido - finalizados e não permanentemente restabelecidos, o - recebimento de uma cópia de algum ou de tudo do mesmo - material não concede a você direitos de utilizá-lo. -

    -
  20. -
  21. -

    - REVISÕES FUTURAS DESTA LICENÇA -

    -

    - A Free Software Foundation pode publicar novas, revisadas - versões da Licença de Documentação Livre GNU de tempos em - tempos. Tais novas versões serão similares na essência à - presente versão, porém podem diferir em detalhes para - abarcar novos problemas ou assuntos. Veja-se - http://www.gnu.org/copyleft/. Para cada versão da Licença - é dado um número distintivo de versão. Se o Documento - especifica que uma versão numerada em particular desta - Licença “ou qualquer versão posterior” se - aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão - posterior que tenha sido publicada (não como um rascunho) - pela Free Software Foundation. Se o Documento não - especifica um número de versão desta Licença, você pode - escolher qualquer versão já publicada (não como um - rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões - futuras desta Licença podem ser utilizadas, essa - declaração pública do procurador de aceitação de uma - versão permanentemente autoriza você a escolher aquela - versão para o Documento. -

    -
  22. -
  23. -

    - RELICENCIAMENTO -

    -

    - “Sítio de Colaboração Massiva Multi autor” - (ou “Sítio MMC”) significa qualquer servidor - da Rede Mundial de Computadores que publica trabalhos - sujeitos a direitos autorais e também provê facilidades - proeminentes para qualquer pessoa editar esses trabalhos. - Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva - Multi autor” (ou “MMC”) contida no - sítio significa qualquer conjunto de trabalhos sujeitos a - direitos autorais assim publicados no sítio MMC. - “CC-BY-SA” significa a licença Creative - Commons Attribution-Share Alike 3.0 publicada pela - Creative Commons Corporation, uma corporação sem fins - lucrativos com seu domicílio empresarial situado em São - Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais - dessa licença publicadas pela mesma organização. - “Incorporar” significa publicar ou republicar - um Documento, no todo ou em parte, como parte de outro - Documento. Um MMC é “elegível para - relicenciamento” se ele for licenciado sob esta - Licença, e se todos os trabalhos que foram primeiro - publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em - parte, no MMC, (1) não tinham textos de capa ou seções - invariantes; e (2) estavam assim incorporados antes de 01 - de novembro de 2008. O operador de um Sítio MMC pode - republicar um MMC contido no sítio sob CC-BY-SA, no mesmo - sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. -

    -
  24. -
-
-

- ADENDO: Como utilizar esta Licença para seus documentos -

-

- Para utilizar esta Licença em um documento que você escreveu, - inclua uma cópia da Licença no documento e coloque os seguintes - avisos de direitos autorais e licença pouco depois da página de - título: -

-

-
-  Direitos autorais (C) ano  seu nome.
-  Permissão é concedida para copiar, distribuir e/ou modificar este
-  documento sob os termos da Licença de Documentação Livre GNU, Versão
-  1.3 ou qualquer versão posterior publicada pela Free Software
-  Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem
-  Textos de Quarta Capa.   Uma cópia da licença está inclusa na seção
-  intitulada ``Licença de Documentação Livre GNU''.
-
-  
-

- Se você tiver Seções Invariantes, Textos de Primeira Capa e - Textos de Quarta Capa, substitua a linha ``sem ... Capa'' por - isto: -

-

-
-  com as Seções Invariantes sendo liste seus títulos, com os
-  Textos de Primeira Capa sendo lista, e com os Textos de Quarta
-  Capa sendo lista.
-
-  
-

- Se você tiver Seções Invariantes sem Textos de Capa, ou alguma - outra combinação dos três, mescle essas duas alternativas para - adequar a situação. -

-

- Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em - paralelo, sob sua escolha de licença de software livre, tal - como a Licença Pública Geral GNU, para permitir seu uso em - software livre. -

-
-
-
-
-
-
-
-

- Índice Remissivo -

-
-
-
-
-

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -
-
-
- - diff --git a/LFS-BOOK-11.1-NOCHUNKS-pt_br.txt b/LFS-BOOK-11.1-NOCHUNKS-pt_br.txt deleted file mode 100644 index c8710f2dfc..0000000000 --- a/LFS-BOOK-11.1-NOCHUNKS-pt_br.txt +++ /dev/null @@ -1,24673 +0,0 @@ -Linux From Scratch - -Versão 11.1 - -Publicado 1º de março de 2022 - -Criado por Gerard Beekmans - -Editor-chefe: Bruce Dubbs - - Copyright © 1999-2022 Gerard Beekmans - - Direitos autorais © 1999-2022, Gerard Beekmans - - Todos os direitos reservados. - - Este livro é licenciado sob uma [1]Creative Commons License. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a [2]MIT License. - - Linux® é uma marca comercial registrada do Linus Torvalds. - __________________________________________________________________ - -Ãndice - - * Prefácio - + [3]Introdução - + [4]Audiência - + [5]Arquiteturas Alvo do LFS - + [6]Pré-requisitos - + [7]LFS e Padrões - + [8]Justificativa para os pacotes no Livro - + [9]Tipografia - + [10]Estrutura - + [11]Errata e Avisos de Segurança - * I. Introdução - + 1. Introdução - o [12]Como Construir um Sistema LFS - o [13]O que há de novo desde o último lançamento - o [14]Registro de Mudanças - o [15]Recursos - o [16]Ajuda - * II. Preparando para a Construção - + 2. Preparando o Sistema Anfitrião - o [17]Introdução - o [18]Exigências do Sistema Anfitrião - o [19]Construindo LFS em Estágios - o [20]Criando uma Nova Partição - o [21]Criando um Sistema de Arquivos na Partição - o [22]Configurando a Variável $LFS - o [23]Montando a Nova Partição - + 3. Pacotes e Patches - o [24]Introdução - o [25]Todos os Pacotes - o [26]Patches Necessários - + 4. Preparações Finais - o [27]Introdução - o [28]Criando um layout limitado de diretório em sistema de - arquivos de LFS - o [29]Adicionando a(o) Usuária(o) LFS - o [30]Configurando o Ambiente - o [31]Sobre UPCs - o [32]Sobre as Suítes de Teste - * III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e - Ferramentas Temporárias - + Material Preliminar Importante - o [33]Introdução - o [34]Notas Técnicas do Conjunto de Ferramentas - o [35]Instruções Gerais de Compilação - + 5. Compilando um Conjunto de Ferramentas Cruzado - o [36]Introdução - o [37]Binutils-2.38 - Passagem 1 - o [38]GCC-11.2.0 - Passagem 1 - o [39]Cabeçalhos da API do Linux-5.16.9 - o [40]Glibc-2.35 - o [41]Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - + 6. Compilando Cruzadamente Ferramentas Temporárias - o [42]Introdução - o [43]M4-1.4.19 - o [44]Ncurses-6.3 - o [45]Bash-5.1.16 - o [46]Coreutils-9.0 - o [47]Diffutils-3.8 - o [48]File-5.41 - o [49]Findutils-4.9.0 - o [50]Gawk-5.1.1 - o [51]Grep-3.7 - o [52]Gzip-1.11 - o [53]Make-4.3 - o [54]Patch-2.7.6 - o [55]Sed-4.8 - o [56]Tar-1.34 - o [57]Xz-5.2.5 - o [58]Binutils-2.38 - Passagem 2 - o [59]GCC-11.2.0 - Passagem 2 - + 7. Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais - o [60]Introdução - o [61]Mudando Propriedade - o [62]Preparando Sistemas de Arquivos Virtuais de Kernel - o [63]Entrando no Ambiente Chroot - o [64]Criando Diretórios - o [65]Criando Arquivos Essenciais e Links Simbólicos - o [66]Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - o [67]Gettext-0.21 - o [68]Bison-3.8.2 - o [69]Perl-5.34.0 - o [70]Python-3.10.2 - o [71]Texinfo-6.8 - o [72]Util-linux-2.37.4 - o [73]Limpando e Salvando o Sistema Temporário - * IV. Construindo o Sistema LFS - + 8. Instalando Aplicativos Básicos de Sistema - o [74]Introdução - o [75]Gerenciamento de Pacote - o [76]Man-pages-5.13 - o [77]Iana-Etc-20220207 - o [78]Glibc-2.35 - o [79]Zlib-1.2.11 - o [80]Bzip2-1.0.8 - o [81]Xz-5.2.5 - o [82]Zstd-1.5.2 - o [83]File-5.41 - o [84]Readline-8.1.2 - o [85]M4-1.4.19 - o [86]Bc-5.2.2 - o [87]Flex-2.6.4 - o [88]Tcl-8.6.12 - o [89]Expect-5.45.4 - o [90]DejaGNU-1.6.3 - o [91]Binutils-2.38 - o [92]GMP-6.2.1 - o [93]MPFR-4.1.0 - o [94]MPC-1.2.1 - o [95]Attr-2.5.1 - o [96]Acl-2.3.1 - o [97]Libcap-2.63 - o [98]Shadow-4.11.1 - o [99]GCC-11.2.0 - o [100]Pkg-config-0.29.2 - o [101]Ncurses-6.3 - o [102]Sed-4.8 - o [103]Psmisc-23.4 - o [104]Gettext-0.21 - o [105]Bison-3.8.2 - o [106]Grep-3.7 - o [107]Bash-5.1.16 - o [108]Libtool-2.4.6 - o [109]GDBM-1.23 - o [110]Gperf-3.1 - o [111]Expat-2.4.6 - o [112]Inetutils-2.2 - o [113]Less-590 - o [114]Perl-5.34.0 - o [115]XML::Parser-2.46 - o [116]Intltool-0.51.0 - o [117]Autoconf-2.71 - o [118]Automake-1.16.5 - o [119]OpenSSL-3.0.1 - o [120]Kmod-29 - o [121]Libelf oriundo de Elfutils-0.186 - o [122]Libffi-3.4.2 - o [123]Python-3.10.2 - o [124]Ninja-1.10.2 - o [125]Meson-0.61.1 - o [126]Coreutils-9.0 - o [127]Check-0.15.2 - o [128]Diffutils-3.8 - o [129]Gawk-5.1.1 - o [130]Findutils-4.9.0 - o [131]Groff-1.22.4 - o [132]GRUB-2.06 - o [133]Gzip-1.11 - o [134]IPRoute2-5.16.0 - o [135]Kbd-2.4.0 - o [136]Libpipeline-1.5.5 - o [137]Make-4.3 - o [138]Patch-2.7.6 - o [139]Tar-1.34 - o [140]Texinfo-6.8 - o [141]Vim-8.2.4383 - o [142]Eudev-3.2.11 - o [143]Man-DB-2.10.1 - o [144]Procps-ng-3.3.17 - o [145]Util-linux-2.37.4 - o [146]E2fsprogs-1.46.5 - o [147]Sysklogd-1.5.1 - o [148]Sysvinit-3.01 - o [149]Acerca dos Símbolos de Depuração - o [150]Despojando - o [151]Limpando - + 9. Configuração do Sistema - o [152]Introdução - o [153]LFS-Bootscripts-20210608 - o [154]Visão Geral do Manuseio de Dispositivos e Módulos - o [155]Gerenciando Dispositivos - o [156]Configuração de Rede Geral - o [157]Uso e Configuração do Script de Inicialização do - System V - o [158]Os Arquivos de Inicialização de Shell do Bash - o [159]Criando o Arquivo /etc/inputrc - o [160]Criando o Arquivo /etc/shells - + 10. Tornando o Sistema LFS Inicializável - o [161]Introdução - o [162]Criando o Arquivo /etc/fstab - o [163]Linux-5.16.9 - o [164]Usando o GRUB para Configurar o Processo de - Inicialização - + 11. O Fim - o [165]O Fim - o [166]Seja Contado - o [167]Reinicializando o Sistema - o [168]E agora? - * V. Anexos - + [169]A. Siglas e Termos - + [170]B. Reconhecimentos - + [171]C. Dependências - + [172]D. Scripts de inicialização e configuração do sistema - versão-20210608 - o [173]/etc/rc.d/init.d/rc - o [174]/lib/lsb/init-functions - o [175]/etc/rc.d/init.d/mountvirtfs - o [176]/etc/rc.d/init.d/modules - o [177]/etc/rc.d/init.d/udev - o [178]/etc/rc.d/init.d/swap - o [179]/etc/rc.d/init.d/setclock - o [180]/etc/rc.d/init.d/checkfs - o [181]/etc/rc.d/init.d/mountfs - o [182]/etc/rc.d/init.d/udev_retry - o [183]/etc/rc.d/init.d/cleanfs - o [184]/etc/rc.d/init.d/console - o [185]/etc/rc.d/init.d/localnet - o [186]/etc/rc.d/init.d/sysctl - o [187]/etc/rc.d/init.d/sysklogd - o [188]/etc/rc.d/init.d/network - o [189]/etc/rc.d/init.d/sendsignals - o [190]/etc/rc.d/init.d/reboot - o [191]/etc/rc.d/init.d/halt - o [192]/etc/rc.d/init.d/template - o [193]/etc/sysconfig/modules - o [194]/etc/sysconfig/createfiles - o [195]/etc/sysconfig/udev-retry - o [196]/sbin/ifup - o [197]/sbin/ifdown - o [198]/lib/services/ipv4-static - o [199]/lib/services/ipv4-static-route - + [200]E. Regras de configuração do Udev - o [201]55-lfs.rules - + [202]F. Licenças do LFS - o [203]Licença da Creative Commons - o [204]A Licença do MIT - o [205]A Licença de Documentação Livre GNU - * [206]Ãndice Remissivo - -Prefácio - -Introdução - - Minha jornada para aprender e entender melhor Linux começou em meados - de 1998. Eu havia acabado de instalar minha primeira distribuição Linux - e rapidamente fiquei intrigado com todo o conceito e filosofia por trás - do Linux. - - Há sempre várias maneiras de se completar uma tarefa. O mesmo pode ser - dito sobre distribuições Linux. Muitas surgiram ao longo dos anos. - Algumas ainda existem, outras se transformaram em outra distribuição, e - ainda há outras que ficaram relegadas às nossas memórias. Todas elas - executam as tarefas de maneira diferente para se adequar às - necessidades de seus respectivos públicos-alvo. Devido ao fato de haver - tantas maneiras de se executar uma tarefa, eu comecei a perceber que eu - não tinha que me limitar à implementação de outra pessoa. Antes de - descobrir o Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era o que - era, não importando se você gostasse ou não. Com Linux, o conceito de - escolha começou a emergir. Se você não gostou de alguma coisa, você - seria livre, até encorajado, a mudá-la. - - Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. Não era - mais uma questão de certo ou errado. O problema havia se transformado - em uma questão de gosto pessoal. Com todas aquelas opções disponíveis, - tornou-se aparente que não haveria um sistema que seria perfeito para - mim. Então eu me propus a criar meu próprio sistema Linux que estaria - totalmente em conformidade com minhas preferências pessoais. - - Para realmente fazer meu próprio sistema, eu resolvi compilar tudo a - partir do código fonte em vez de usar pacotes pré-compilados. Esse - sistema Linux “perfeito†teria a força de vários sistemas sem suas - fraquezas visíveis. A princípio, a ideia era bastante amedrontadora. - Mas eu me mantive comprometido à ideia de que esse sistema poderia ser - construído. - - Após lidar com questões como dependências recíprocas e erros durante a - compilação, eu finalmente construí um sistema Linux customizado. O - sistema era totalmente operacional e perfeitamente utilizável como - qualquer outro sistema Linux disponível na época. Mas era minha própria - criação. Montar um sistema desses foi muito gratificante. A única coisa - que poderia ser melhor seria se eu mesmo tivesse escrito cada programa. - Essa foi a melhor coisa que se seguiu. - - Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema Linux - customizado não serviria apenas para as necessidades específicas dos - usuários, mas também como uma oportunidade ideal para programadores e - administradores elevarem suas (existentes) habilidades com Linux. Como - resultado desse interesse amplo, o Projeto Linux From Scratch nasceu. - - Este livro Linux From Scratch é o núcleo do projeto. O livro provê a - base e as instruções necessárias para você modelar e construir seu - próprio sistema. Mesmo este livro disponibilizando instruções que - resultarão em um sistema que funciona corretamente, você é livre para - alterar as instruções para adaptá-las às suas necessidades, o que é, em - parte, uma importante parte deste projeto. Você permanece no controle; - nós só damos uma mão para ajudá-lo a começar sua própria jornada. - - Eu sinceramente espero que você se divirta trabalhando no seu próprio - Linux From Scratch e aproveite os benefícios de ter um sistema - verdadeiramente seu. - - -- - Gerard Beekmans - gerard AT linuxfromscratch D0T org - -Audiência - - Existem muitas razões pelas quais você desejaria ler este livro. Uma - das questões que muitas pessoas levantam é “por que ir ao longo de toda - a dificuldade de construir manualmente um sistema Linux desde o zero - quando você pode simplesmente baixar e instalar um existente?†- - Uma importante razão para a existência deste projeto é para te ajudar a - aprender como um sistema Linux funciona de dentro para fora. Construir - um sistema LFS ajuda a demonstrar o que torna o Linux de interesse, e - como as coisas funcionam juntas e dependem umas das outras. Uma das - melhores coisas que essa experiência de aprendizado pode prover é a - habilidade de personalizar um sistema Linux para se ajustar às suas [de - quem construir] próprias necessidades únicas. - - Outro benefício chave de LFS é que ele te permite ter mais controle - sobre o sistema sem confiar na implementação Linux de ninguém. Com LFS, - você está no banco do motorista e dita cada aspecto do sistema. - - LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão usados ou - entendidos. Esses programas desperdiçam recursos. Você talvez argumente - que, com os discos rígidos e CPUs de hoje, tais recursos não mais são - uma consideração. As vezes, entretanto, você ainda está restrito por - considerações de tamanho se nenhuma outra coisa. Pense acerca de CDs - inicializáveis, mídias USB e sistemas embarcados. Essas são áreas onde - LFS pode ser benéfico. - - Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de segurança - desejadas. Não mais é necessário aguardar que outra pessoa compile os - pacotes binários para consertar uma brecha de segurança. A menos que - você examine a correção e a implemente você mesma(o), você não tem - garantias de que o novo pacote binário foi construído corretamente e - adequadamente conserta o problema. - - A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não estiver - afim de construir seu próprio sistema Linux desde o zero, então você - talvez nunca se beneficie das informações neste livro. - - Existem muito mais boas razões para construir seu próprio sistema LFS - para listá-las todas aqui. No final, educação é, de longe, a mais - poderosa das razões. Conforme você continue em sua experiência LFS, - você descobrirá o poder que informação e conhecimento verdadeiramente - trazem. - -Arquiteturas Alvo do LFS - - A principal arquitetura alvo do LFS são os processadores AMD/Intel x86 - (32 bits) e x86_64 (64 bits). Por outro lado, as instruções neste livro - também são conhecidas por funcionar, com algumas modificações, com os - processadores Power PC e ARM. Para construir um sistema que utiliza uma - dessas CPUs, o principal pré-requisito, em adição àqueles que estão nas - próximas páginas, é uma distribuição Linux existente, como uma - instalação LFS prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra - distribuição que abranja a arquitetura que você tem. Note também que - uma distribuição de 32-bits pode ser instalada e usada como um sistema - hospedeiro em um computador AMD/Intel de 64-bits. - - Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma construção - de LFS-9.1 de teste em um sistema baseado em CPU Core i7-4790, usando - quatro núcleos, as seguintes estatísticas foram verificadas: -Arquitetura Tempo de Construção Tamanho de Construção -32-bit 239.9 minutos 3.6 GB -64-bit 233.2 minutos 4.4 GB - - Como você pode ver, no mesmo hardware, a construção de 64-bit é apenas - 3% mais rápida e é 22% maior que a construção de 32-bit. Se você - planeja usar LFS como um servidor LAMP, ou como um firewall, então uma - CPU de 32-bits talvez seja largamente suficiente. Por outro lado, - vários pacotes em BLFS atualmente precisam de mais que 4GB de RAM para - serem construídos e (ou) para executarem, de forma que se você planeja - usar LFS como um desktop, então os autores de LFS recomendam construir - em um sistema 64-bits. - - A construção de 64-bit padrão que é resultante do LFS é considerado um - sistema 64-bit “puroâ€. Ou seja, ele suporta apenas executáveis 64-bit. - Construir um sistema “multi-lib†[de múltiplas bibliotecas] exige a - compilação de muitos aplicativos duas vezes, uma vez para um sistema de - 32-bit e outra vez para um sistema de 64-bit. Isso não é diretamente - suportado em LFS, pois interferiria no objetivo educacional de prover - as instruções necessárias para um sistema Linux base estrito. Alguns - editores de LFS/BLFS mantém uma bifurcação de LFS para multilib, que é - acessível em - [207]https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. - -Pré-requisitos - - Construir um sistema LFS não é uma tarefa simples. Essa tarefa exige um - certo nível de conhecimento de administração de sistemas Unix para - resolver problemas e corretamente executar os comandos listados. Em - particular, no mínimo, você já deveria ter a habilidade de usar linha - de comando (shell) para copiar ou mover arquivos e diretórios, listar - diretórios e conteúdos de arquivos, e navegar entre os diretórios. - Também é de se esperar que você tenha um conhecimento razoável sobre - como usar e instalar software [em um sistema] Linux. - - Devido ao fato do livro LFS assumir que você tem pelo menos esse nível - básico de habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão respondidas - ou serão remetidas à lista de itens essenciais de pré-leitura. - - Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: - * Software-Building-HOWTO - [208]http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - Esse é um guia compreensivo de como construir e instalar pacotes de - software Unix “genéricos†no Linux. Embora tenha sido escrito há - algum tempo, esse guia ainda fornece um bom resumo das técnicas - básicas necessárias para construir e instalar programas. - * Beginner's Guide to Installing from Source - [209]http://moi.vonos.net/linux/beginners-installing-from-source/ - Esse guia fornece um bom sumário de habilidades básicas e de - técnicas necessárias para construir software a partir do código - fonte. - -LFS e Padrões - - A estrutura do LFS segue os padrões Linux tão rigorosamente quanto - possível. Os principais padrões são: - * [210]POSIX.1-2008. - * [211]Filesystem Hierarchy Standard (FHS) Version 3.0 - * [212]Linux Standard Base (LSB) Version 5.0 (2015) - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em adição - às exigências genéricas, há as exigências específicas de cada - arquitetura. Existem também duas áreas para uso experimental: Gtk3 - e Graphics. LFS tenta ficar de acordo com as arquiteturas - discutidas na sessão anterior. - -Nota - Muitas pessoas não concordam com os requisitos do LSB. O principal - propósito de definir tais requisitos é o de garantir que softwares - proprietários possam ser instalados e executados adequadamente em - um sistema que respeite o referido padrão. Sendo o LFS baseado em - código fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns dos pacotes - especificados pelo LSB. - - Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes adicionais - que estão além do escopo do LFS. Esses pacotes adicionais tem - instruções para instalação no BLFS. - -Pacotes disponibilizados pelo LFS que são necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, Grep, - Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, - Util-linux, Zlib - - LSB Desktop: - - Nenhum - - LSB Runtime Languages: - - Perl, Python - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Pacotes disponibilizados pelo BLFS necessários para satisfazer os requisitos -do LSB - - LSB Core: - - At, Batch (uma parte de At), Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, - PAM, Pax, Sendmail (ou Postfix ou Exim), time - - LSB Desktop: - - Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, Gdk-pixbuf, - Glib2, GTK+2, Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg - - LSB Runtime Languages: - - Libxml2, Libxslt - - LSB Imaging: - - CUPS, Cups-filters, Ghostscript, SANE - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - GTK+3 - -Pacotes não suportados pelo LFS ou BLFS necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Nenhum - - LSB Desktop: - - Qt4 (mas Qt5 é fornecido) - - LSB Runtime Languages: - - Nenhum - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Justificativa para os pacotes no Livro - - Como declarado anteriormente, a finalidade do [projeto] LFS é a de - construir um sistema em nível de fundação completo e utilizável. Isso - inclui todos os pacotes necessários para replicá-lo ao tempo que - disponibiliza uma base relativamente pequena sobre a qual a(o) - usuária(o) pode personalizar um sistema mais completo baseado nas - escolhas da(o) usuária(o). Isso não significa que o LFS é o menor - sistema possível. Vários pacotes importantes estão inclusos que não são - estritamente necessários. As listas abaixo documentam a justificativa - para cada pacote no livro. - * Acl - Esse pacote contém utilitários para administrar Listas de Controle - de Acesso, as quais são usadas para definir direitos de acesso - discricionariamente mais finamente refinados para arquivos e para - diretórios. - * Attr - Esse pacote contém aplicativos para a administração de atributos - estendidos sobre objetos do sistema de arquivos. - * Autoconf - Esse pacote contém aplicativos para produzir shell scripts que - podem configurar automaticamente o código fonte a partir de um - modelo do desenvolvedor. É geralmente necessário para reconstruir - um pacote após atualizações para os procedimentos de construção. - * Automake - Esse pacote contém aplicativos para gerar arquivos Make a partir de - um modelo. É geralmente necessário para reconstruir um pacote após - atualizações para os procedimentos de construção. - * Bash - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. Foi - escolhido em vez de outros pacotes de shell pelo seu uso comum e - extensas capacidades que transcendem as funções básicas do shell. - * Bc - Esse pacote disponibiliza uma linguagem de processamento numérico - com precisão arbitrária. Ele satisfaz requisitos necessários quando - da construção do Kernel do Linux. - * Binutils - Esse pacote contém um linker, um assembler e outras ferramentas - para manipular arquivos objeto. Os aplicativos nesse pacote são - necessários para compilar a maioria dos pacotes em um sistema LFS e - além. - * Bison - Esse pacote contém a versão GNU do yacc (Yet Another Compiler - Compiler) necessário para construir vários outros aplicativos no - LFS. - * Bzip2 - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. É necessário para descomprimir muitos pacotes do LFS. - * Check - Esse pacote contém um conjunto de ferramentas de teste para outros - aplicativos. - * Coreutils - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. Esses - aplicativos são necessários para o gerenciamento de arquivos por - linha de comando, e são necessários para os procedimentos de - instalação de cada pacote em LFS. - * DejaGNU - Esse pacote contém um sistema para testar outros aplicativos. - * Diffutils - Esse pacote contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. Esses aplicativos podem ser usados para - criar correções, e também são usados em muitos procedimentos de - construção dos pacotes. - * E2fsprogs - Esse pacote contém os utilitários para manipular os sistemas de - arquivos ext2, ext3 e ext4. Esses são os sistemas de arquivos mais - comuns e amplamente testados que o Linux suporta. - * Eudev - Esse pacote é um gerenciador de dispositivo. Ele controla - dinamicamente o dono, permissões, nomes, e links simbólicos de - dispositivos no diretório /dev conforme dispositivos são - adicionados ou removidos do sistema. - * Expat - Esse pacote contém uma biblioteca relativamente pequena de análise - de XML. Ela é exigida pelo módulo de Perl XML::Parser. - * Expect - Esse pacote contém um aplicativo para execução de scripts de - diálogos com outros aplicativos interativos. É comumente usado para - testar outros pacotes. - * File - Esse pacote contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. Uns poucos pacotes precisam dele em seus - scripts de construção. - * Findutils - Esse pacote contém aplicativos para encontrar arquivos em um - sistema de arquivos. É usado em muitos scripts de construção dos - pacotes. - * Flex - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo lex - (lexical analyzer). É necessário para construir vários pacotes do - LFS. - * Gawk - Esse pacote contém aplicativos para manipular arquivos de texto. É - a versão GNU do awk (Aho-Weinberg-Kernighan). É usado em muitos - outros scripts de construção dos pacotes. - * GCC - Esse pacote é o Gnu Compiler Collection. Ele contém os compiladores - C e C++ assim como vários outros não construídos por LFS. - * GDBM - Esse pacote contém a biblioteca GNU Database Manager. É usado por - um outro pacote do LFS, Man-DB. - * Gettext - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. - * Glibc - Esse pacote contém a biblioteca C principal. Aplicativos Linux não - funcionarão sem ela. - * GMP - Esse pacote contém bibliotecas matemáticas que fornecem funções - úteis para aritmética de precisão arbitrária. É necessário para - compilar GCC. - * Gperf - Esse pacote contém um aplicativo que gera uma função perfeita de - hash a partir de uma chave configurada. Ele é exigido por Eudev. - * Grep - Esse pacote contém aplicativos para procurar dentro de arquivos. - Esses aplicativos são usados pela maioria dos scripts de construção - dos pacotes. - * Groff - Esse pacote contém aplicativos para processamento e formatação de - texto. Uma função importante desses aplicativos é a de formatar - páginas de manual. - * GRUB - Esse pacote é o Grand Unified Boot Loader. Ele é um dos vários - gerenciadores de inicialização disponíveis, mas é o mais flexível. - * Gzip - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele é necessário para descomprimir muitos pacotes em LFS. - * Iana-etc - Esse pacote fornece dados para serviços e protocolos de rede. Ele é - necessário para habilitar suporte a rede adequado. - * Inetutils - Esse pacote contém aplicativos para administração básica de rede. - * Intltool - Esse pacote contém ferramentas para a extração de sequências de - caracteres traduzíveis a partir de arquivos fonte. - * IProute2 - Esse pacote contém aplicativos para redes IPv4 e IPv6 básicas e - avançadas. Ele foi escolhido em vez de outros pacotes comuns de - ferramentas de rede (net-tools) pelo seu suporte a IPv6. - * Kbd - Esse pacote contém arquivos de tabelas chave, utilitários de - teclados que não são estadunidenses, e um número de fontes de - console. - * Kmod - Esse pacote contém aplicativos necessários para administrar os - módulos de kernel do Linux. - * Less - Esse pacote contém um visualizador de textos muito bom que permite - rolar para cima ou para baixo quando se visualiza um arquivo. Ele - também é usado pelo Man-DB para visualizar páginas de manual. - * Libcap - Esse pacote implementa as interfaces do espaço de usuário para as - capacidades POSIX 1003.1e disponíveis em kernels Linux. - * Libelf - O projeto elfutils fornece bibliotecas e ferramentas para dados de - arquivos ELF e DWARF. A maior parte dos utilitários nesse pacote - está disponível em outros pacotes, porém a biblioteca é necessária - para construir o kernel Linux usando a configuração padrão (e mais - eficiente). - * Libffi - Esse pacote implementa uma interface de programação portável, de - alto nível, para várias convenções de chamada. Alguns aplicativos - talvez não saibam, ao tempo da compilação, quais argumentos são - para serem passados para uma função. Por exemplo, um interpretador - talvez possa ser informado, ao tempo de execução, acerca do número - e dos tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma ponte a - partir do aplicativo interpretador para o código compilado. - * Libpipeline - O pacote Libpipeline contém uma biblioteca para manipular pipelines - de subprocessos de uma maneira flexível e conveniente. Ele é - exigido pelo pacote Man-DB. - * Libtool - Esse pacote contém o script GNU de suporte a bibliotecas genéricas. - Ele esconde a complexidade do uso de bibliotecas compartilhadas em - uma interface consistente e portável. Ele é necessário para as - ferramentas de testes em outros pacotes do LFS. - * Linux Kernel - Esse pacote é o Sistema Operacional. Ele é o Linux no ambiente - GNU/Linux. - * M4 - Esse pacote contém um processador geral de macro de texto, útil - como uma ferramenta de construção para outros aplicativos. - * Make - Esse pacote contém um aplicativo para direcionar a construção de - pacotes. Ele é exigido por quase todos os pacotes em LFS. - * Man-DB - Esse pacote contém aplicativos para encontrar e visualizar páginas - de manual. Ele foi escolhido em vez do pacote man devido a - capacidades superiores de internacionalização. Ele faz as vezes do - aplicativo man. - * Man-pages - Esse pacote contém o conteúdo atual das páginas de manual básicas - do Linux. - * Meson - Esse pacote fornece uma ferramenta de software para automatizar a - construção de software. A finalidade principal para Meson é a de - minimizar a quantidade de tempo que desenvolvedores de software - precisam investir configurando o sistema de construção deles. Ele é - exigido para construir Systemd, bem como muitos pacotes BLFS. - * MPC - Esse pacote contém funções para a aritmética de números complexos. - Ele é exigido por GCC. - * MPFR - Esse pacote contém funções para aritmética de precisão múltipla. - Ele é exigido por GCC. - * Ninja - Esse pacote contém um sistema pequeno de construção com um foco em - velocidade. Ele é desenhado para ter os arquivos de entrada dele - gerados por um sistema de construção de alto nível, e para executar - construções o mais rápido possível. Esse pacote é exigido por - Meson. - * Ncurses - Esse pacote contém bibliotecas para manipulação independente de - terminal de telas de carácter. Ele é frequentemente usado para - fornecer controle de cursor para um sistema com menus. Ele é - necessitado por um número de pacotes em LFS. - * Openssl - Esse pacote fornece ferramentas e bibliotecas de gerenciamento - relacionadas a criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, incluindo o kernel Linux. - * Patch - Esse pacote contém um aplicativo para modificar ou criar arquivos - aplicando um arquivo patch tipicamente criado pelo aplicativo diff. - Ele é necessitado pelo procedimento de construção para vários - pacotes LFS. - * Perl - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e ferramentas de - teste de vários pacotes do LFS. - * Pkg-config - Esse pacote fornece um aplicativo que retorna metadados acerca de - uma biblioteca ou pacote instalado. - * Procps-NG - Esse pacote contém aplicativos para monitorar processos. Esses - aplicativos são úteis para administração de sistema, e são também - usados pelos scripts de inicialização do LFS. - * Psmisc - Esse pacote contém aplicativos para mostrar informações acerca de - processos em execução. Esses aplicativos são úteis para - administração de sistema. - * Python 3 - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. - * Readline - Esse pacote é um conjunto de bibliotecas que oferecem capacidades - de edição e de histórico de linha de comando. Ele é usado por Bash. - * Sed - Esse pacote permite a edição de texto sem abri-lo em um editor de - texto. Ele também é necessitado pela maioria dos scripts de - configuração dos pacotes do LFS. - * Shadow - Esse pacote contém aplicativos para manipulação de senhas de uma - maneira segura. - * Sysklogd - Esse pacote contém aplicativos para registro de mensagens do - sistema, tais como aqueles enviadas pelo kernel ou por processos - deamons quando eventos não-usuais acontecem. - * Sysvinit - Esse pacote fornece o aplicativo init, o qual é o pai de todos os - outros processos no sistema Linux. - * Tar - Esse pacote fornece capacidades de empacotamento e de extração de - virtualmente todos os pacotes usados em LFS. - * Tcl - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. - * Texinfo - Esse pacote contém aplicativos para leitura, escrita e conversão de - páginas info. Ele é usado nos procedimentos de instalação de muitos - pacotes LFS. - * Util-linux - Esse pacote contém uma variedade de aplicativos utilitários. Entre - eles estão utilitários para manipulação de sistemas de arquivos, - consoles, partições e mensagens. - * Vim - Esse pacote contém um editor. Ele foi escolhido por causa da - compatibilidade com o clássico editor vi e o seu número gigante de - capacidades poderosas. Um editor é uma escolha muito pessoal para - muitas(os) usuárias(os) e qualquer outro editor poderia ser - substituído se assim desejar. - * XML::Parser - Esse pacote é um módulo Perl que interage com Expat. - * XZ Utils - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele fornece a maior compressão geralmente disponível e é - útil para descomprimir pacotes nos formatos XZ ou LZMA. - * Zlib - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - * Zstd - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. Ele fornece taxas altas de compressão e um - intervalo muito amplo de intercâmbios entre compressão / - velocidade. - -Tipografia - - Para fazer as coisas mais fáceis de serem seguidas, existem algumas - convenções tipográficas usadas neste livro. Esta sessão contém alguns - exemplos da formatação tipográfica encontrada ao longo de Linux From - Scratch. -./configure --prefix=/usr - - Essa forma de texto é desenhada para ser digitada do jeito que está, a - menos que seja dito o contrário no texto que a envolve. É também usada - na sessão de explicação para identificar quais dos comandos estão sendo - referenciados. - - Em alguns casos, uma linha lógica é estendida em duas ou mais linhas - físicas com uma barra invertida no final da linha. -CC="gcc -B/usr/bin/" ../binutils-2.18/configure \ - --prefix=/tools --disable-nls --disable-werror - - Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir' - - Essa forma de texto (largura fixa) mostra a saída em tela, geralmente - como resultado de um comando executado. Esse formato é também utilizado - para mostrar nomes de arquivos, como /etc/ld.so.conf. - - Emphasis - - Essa forma de texto é usada para vários propósitos neste livro. Seu - propósito principal é o de enfatizar pontos ou itens importantes. - - [213]https://www.linuxfromscratch.org/ - - Esse formato é usado para hiperlinks tanto dentro da comunidade LFS e - para páginas externas. Isso inclui HOWTOs, locais de downloads e - páginas da Internet. -cat > $LFS/etc/group << "EOF" -root:x:0: -bin:x:1: -...... -EOF - - Esse formato é usado quando da criação de arquivos de configuração. O - primeiro comando diz para o sistema criar o arquivo $LFS/etc/group a - partir do que seja digitado nas linhas seguintes até encontrar a - sequência “End Of File†(EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. - - - - Esse formato é usado para encapsular texto que não deve ser digitado - como visto ou para operações de “copiar-colarâ€. - - [OPTIONAL TEXT] - - Esse formato é usado para encapsular texto que é opcional. - - passwd(5) - - Esse formato é usado para referir-se a uma página de manual específica - (man). O número entre parênteses indica uma seção específica dentro dos - manuais. Por exemplo, passwd tem duas páginas de manual. Conforme as - instruções de instalação do LFS, essas duas páginas de manual estarão - localizadas em /usr/share/man/man1/passwd.1 e - /usr/share/man/man5/passwd.5. Quando o livro usa passwd(5) ele está se - referindo especificamente a /usr/share/man/man5/passwd.5. man passwd - exibirá a primeira página de manual que corresponde a “passwdâ€, a qual - será /usr/share/man/man1/passwd.1. Para esse exemplo, você precisará - executar man 5 passwd para ler a página sendo especificada. Perceba que - a maioria das páginas de manual não tem nomes duplicados de páginas em - diferentes seções. Portanto, man geralmente é - suficiente. - -Estrutura - - Este livro é dividido nas seguintes partes. - -Parte I – Introdução - - A Parte I explica algumas notas importantes sobre como proceder com a - instalação do LFS. Essa seção também fornece metainformação sobre o - livro. - -Parte II – Preparando para a Construção - - A Parte II descreve como se preparar para o processo de construção - —criando uma partição, baixando os pacotes, e compilando as ferramentas - temporárias. - -Parte III – Construindo o Conjunto Cruzado de Ferramentas do LFS e -Ferramentas Temporárias - - A Parte III fornece instruções para a construção das ferramentas - necessárias para a construção do sistema LFS final. - -Parte IV - Construindo o Sistema LFS - - A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, configurando os - scripts de inicialização e instalando o kernel. O sistema Linux - resultante é a base sobre a qual outros aplicativos podem ser - construídos para expandir o sistema conforme desejado. No final deste - livro, há uma lista de referência de fácil uso listando todos os - aplicativos, bibliotecas e arquivos importantes que foram instalados. - -Parte V - Apêndices - - A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, uma - listagem dos scripts de inicialização do LFS, licenças para a - distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. - -Errata e Avisos de Segurança - - Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro LFS ter - sido lançado. Para checar se versões de pacotes ou instruções neste - lançamento de LFS necessitam de quaisquer modificações para acomodar - vulnerabilidades de segurança ou outras correções de defeitos, por - favor visite [214]https://www.linuxfromscratch.org/lfs/errata/11.1/ - antes de continuar com a sua construção. Você deveria tomar nota de - quaisquer mudanças mostradas e aplicá-las às seções relevantes do livro - conforme você progride com a construção do sistema LFS. - - Adicionalmente, os editores de Linux From Scratch mantém uma lista de - vulnerabilidades de segurança descobertas depois que um livro foi - lançado. Para checar se existem quaisquer vulnerabilidades ativas de - segurança, por favor visite - [215]https://www.linuxfromscratch.org/lfs/advisories/ antes de proceder - com sua construção. Você deveria tomar nota de quaisquer conselhos e - executar os passos para corrigir quaisquer vulnerabilidades de - segurança conforme você progride com a construção do sistema LFS. - -Parte I. Introdução - -Capítulo 1. Introdução - -1.1. Como Construir um Sistema LFS - - O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). Esse - sistema Linux existente (o anfitrião) será usado como ponto de partida - para fornecer os aplicativos necessários, incluindo um compilador, um - vinculador, e um interpretador de comandos, para construir o novo - sistema. Selecione a opção “desenvolvimento†durante a instalação da - distribuição para estar apto a acessar essas ferramentas. - - Como uma alternativa a instalar uma distribuição separada em sua - máquina, você talvez deseje usar um LiveCD de uma distribuição - comercial. - - [216]Capítulo 2 deste livro descreve como criar uma nova partição Linux - nativa e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. [217]Capítulo 3 explica quais pacotes e - patches precisam ser baixados para construir um sistema LFS e como eles - devem ser armazenados no novo sistema de arquivos. [218]Capítulo 4 - discute a configuração de um ambiente de trabalho apropriado. Por - favor, leia o [219]Capítulo 4 cuidadosamente, uma vez que ele explica - vários assuntos importantes sobre os quais você deve estar ciente antes - de começar seu trabalho ao longo do [220]Capítulo 5 e além. - - [221]Capítulo 5, explica a instalação do conjunto inicial de - ferramentas, (binutils, gcc, e glibc) usando técnicas de compilação - cruzada para isolar as novas ferramentas das do sistema anfitrião. - - [222]Capítulo 6 te mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto cruzado de ferramentas. - - [223]Capítulo 7 então entra em um ambiente "chroot" e usa as - ferramentas previamente construídas para construir as ferramentas - adicionais necessárias para construir e para testar o sistema final. - - Esse esforço para isolar o sistema novo do sistema anfitrião talvez - pareça excessivo. Uma explicação técnica completa sobre o porquê isso é - feito é fornecida em [224]Notas Técnicas do Conjunto de Ferramentas. - - Em [225]Capítulo 8, o sistema LFS completo é construído. Outra vantagem - fornecida pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. Enquanto - espera por compilações de pacotes completarem, você pode continuar - usando seu computador normalmente. - - Para finalizar a instalação, a configuração básica do sistema é - concluída em [226]Capítulo 9, e o kernel e carregador de inicialização - são configurados em [227]Capítulo 10. [228]Capítulo 11 contém - informação sobre como continuar a experiência LFS além deste livro. - Após os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. - - Esse é o processo em poucas palavras. Informação detalhada sobre cada - passo é discutida nos capítulos seguintes e nas descrições dos pacotes. - Itens que talvez pareçam complicados serão esclarecidos, e tudo ficará - em seu devido lugar conforme você embarcar na aventura do LFS. - -1.2. O que há de novo desde o último lançamento - - Nesta versão de LFS, houve uma grande reorganização do livro usando - técnicas que evitam a modificação do sistema anfitrião e fornecem um - seguimento mais estrito do processo de construção. - - Abaixo está uma lista das atualizações de pacotes feitas desde o - lançamento anterior do livro. - - Atualizado para: - * Automake-1.16.5 - * Bash-5.1.16 - * Bc-5.2.2 - * Binutils-2.38 - * Bison-3.8.2 - * Coreutils-9.0 - * E2fsprogs-1.46.5 - * Eudev-3.2.11 - * Expat-2.4.6 - * File-5.41 - * Findutils-4.9.0 - * Gawk-5.1.1 - * GDBM-1.23 - * Glibc-2.35 - * Gzip-1.11 - * IANA-Etc-20220207 - * Inetutils-2.2 - * IPRoute2-5.16.0 - * Libcap-2.63 - * Libelf-0.186 (de: elfutils) - * Libpipeline-1.5.5 - * Linux-5.16.9 - * Man-DB-2.10.1 - * Meson-0.61.1 - * Ncurses-6.3 - * Openssl-3.0.1 - * Python-3.10.2 - * Readline-8.1.2 - * Shadow-4.11.1 - * SysVinit-3.01 - * Tcl-8.6.12 - * Tzdata-2021e - * Util-Linux-2.37.4 - * Vim-8.2.4383 - * Zstd-1.5.2 - - Adicionado: - * binutils-2.38-lto_fix-1.patch - * coreutils-9.0-chmod_fix-1.patch - * file-5.40-upstream_fixes-1.patch - * shadow-4.10-useradd_segfault-1.patch - * sysvinit-3.01-consolidated-1.patch - -1.3. Registro de Mudanças - - Esta é a versão 11.1 do livro Linux From Scratch, datada de 1º de março - de 2022. Se este livro estiver com mais de seis meses, então uma versão - nova e melhor provavelmente já está disponível. Para descobrir, por - favor verifique um dos sites via - [229]https://www.linuxfromscratch.org/mirrors.html. - - Abaixo está uma lista das mudanças feitas desde o lançamento anterior - do livro. - - Entradas de Registro de Mudanças: - * 2022-03-01 - + [bdubbs] - LFS-11.1 lançado. - * 2022-02-23 - + [bdubbs] - Atualização para expat-2.4.6 (correção de - segurança). Corrige [230]#5011. - * 2022-02-15 - + [bdubbs] - LFS-11.1-rc1 lançado. - + [bdubbs] - Adicionar binutils-2.38 LTO patch. Corrige - [231]#5011. - + [bdubbs] - Atualização para util-linux-2.37.4. Corrige - [232]#5010. - + [bdubbs] - Atualização para man-db-2.10.1. Corrige [233]#5009. - + [bdubbs] - Atualização para linux-5.16.9. Corrige [234]#5008. - + [bdubbs] - Atualização para vim-8.2.4383 (Atualização de - Segurança). Endereça [235]#4500. - + [bdubbs] - Atualização para iana-etc-20220207. Endereça - [236]#5006. - * 2022-02-10 - + [xry111] - Contorna um problema que causa os binários se - vincularem a bibliotecas da distribuição anfitriã para a - passagem dois de binutils. Agora é desnecessário construir - zlib em capítulo 6. - * 2022-02-09 - + [bdubbs] - Atualização para bc-5.2.2. Corrige [237]#5004. - + [bdubbs] - Atualização para linux-5.16.8. Corrige [238]#5005. - + [bdubbs] - Atualização para binutils-2.38. Exige a adição de - zlib para Capítulo 6. Corrige [239]#5007. - * 2022-02-04 - + [xry111] - Remove diretivas bash +h em chroot. Corrige - [240]#4998. - + [xry111] - Atualização para man-db-2.10.0. Corrige [241]#5002. - + [xry111] - Move OpenSSL para antes de Kmod e habilita OpenSSL - para construção de Kmod. - + [xry111] - Atualização para gdbm-1.23. Corrige [242]#5000. - + [xry111] - Atualização para tcl-8.6.12. Corrige [243]#5001. - + [thomas] - Remove sed das instruções glibc em capítulo 8. Foi - submetida ao desenvolvedor. - * 2022-02-03 - + [bdubbs] - Adicionado patch chmod do coreutils-9.0. Corrige - [244]#4992. - + [bdubbs] - Atualização para glibc-2.35. Corrige [245]#4999. - + [bdubbs] - Atualização para linux-5.16.5. Corrige [246]#4996. - + [bdubbs] - Atualização para findutils-4.9.0. Corrige - [247]#4995. - + [bdubbs] - Atualização para expat-2.4.4. Corrige [248]#4993. - + [bdubbs] - Atualização para iana-etc-20220128. Corrige - [249]#4994. - * 2022-01-29 - + [bdubbs] - Atualização para linux-5.16.4. Corrige [250]#4991. - * 2022-01-27 - + [bdubbs] - Atualização para vim-8.2.4236. Endereça [251]#4500. - + [bdubbs] - Atualização para zstd-1.5.2. Corrige [252]#4988. - + [bdubbs] - Atualização para util-linux-2.37.3 (correção de - segurança). Corrige [253]#4989. - + [bdubbs] - Atualização para Python-3.10.2. Corrige [254]#4987. - + [bdubbs] - Atualização para linux-5.16.2. Corrige [255]#4979. - + [bdubbs] - Atualização para libcap-2.63. Corrige [256]#4990. - + [bdubbs] - Atualização para iproute2-5.16.0. Corrige - [257]#4982. - + [bdubbs] - Atualização para iana-etc-20220120. Corrige - [258]#4975. - * 2022-01-20 - + [bdubbs] - Atualização para expat-2.4.3 (correções de - segurança). Corrige [259]#4984. - + [pierre] - Atualização para meson-0.61.1. Corrige [260]#4985. - * 2022-01-17 - + [thomas] - Adicionada uma correção de um erro de digitação - para o patch de meson-0.61.0. - * 2022-01-15 - + [bdubbs] - Atualização para shadow-4.11.1. Corrige [261]#4976. - + [bdubbs] - Atualização para readline-8.1.2. Corrige - [262]#4980. - + [bdubbs] - Atualização para meson-0.61.0. Corrige [263]#4983. - + [bdubbs] - Atualização para libpipeline-1.5.5. Corrige - [264]#4977. - + [bdubbs] - Atualização para bash-5.1.16. Corrige [265]#4978. - * 2022-01-01 - + [bdubbs] - Atualização para e2fsprogs-1.46.5. Corrige - [266]#4974. - + [bdubbs] - Atualização para zstd-1.5.1. Corrige [267]#4972. - + [bdubbs] - Atualização para expat-2.4.2. Corrige [268]#4970. - + [bdubbs] - Atualização para shadow-4.10. Corrige [269]#4969. - + [bdubbs] - Atualização para sysvinit-3.01. Corrige [270]#4968. - + [bdubbs] - Atualização para linux-5.15.12. Corrige [271]#4967. - + [bdubbs] - Atualização para iana-etc-20211224. Corrige - [272]#4962. - + [bdubbs] - Atualização para openssl-3.0.1. Corrige [273]#4922. - + [bdubbs] - Atualização para eudev-3.2.11. Corrige [274]#4914. - * 2021-12-30 - + [renodr] - Atualização para meson-0.60.3. Corrige [275]#4973. - * 2021-12-15 - + [bdubbs] - Atualização para python3-3.10.1. Corrige - [276]#4963. - + [bdubbs] - Atualização para openssl-1.1.1m. Corrige - [277]#4966. - + [bdubbs] - Atualização para linux-5.15.7. Corrige [278]#4964. - + [bdubbs] - Atualização para libcap-2.62. Corrige [279]#4965. - * 2021-12-14 - + [thomas] - Permite a construção de findutils em sistemas de 32 - bits. Commits aplicados a partir da branch multilib por - [pierre]. - * 2021-12-01 - + [bdubbs] - Atualização para vim-8.2.3704. Endereça [280]#4500. - + [bdubbs] - Atualização para iana-etc-20211124. Corrige - [281]#4957. - + [bdubbs] - Atualização para bc-5.2.1. Corrige [282]#4959. - + [bdubbs] - Atualização para meson-0.60.2. Corrige [283]#4960. - + [bdubbs] - Atualização para linux-5.15.5. Corrige [284]#4956. - * 2021-11-15 - + [bdubbs] - Atualização para iana-etc-20211112. Corrige - [285]#4955. - + [bdubbs] - Atualização para elfutils-0.186. Corrige - [286]#4954. - + [bdubbs] - Atualização para bc-5.2.0. Corrige [287]#4952. - + [bdubbs] - Atualização para ncurses-6.3. Corrige [288]#4951. - + [bdubbs] - Atualização para libpipeline-1.5.4. Corrige - [289]#4950. - + [bdubbs] - Atualização para meson-0.60.1. Corrige [290]#4949. - + [bdubbs] - Atualização para iproute2-5.15.0. Corrige - [291]#4948. - + [bdubbs] - Atualização para linux-5.15.2. Corrige [292]#4947. - * 2021-11-01 - + [bdubbs] - Atualização para gawk-5.1.1. Corrige [293]#4946. - + [bdubbs] - Atualização para meson-0.60.0. Corrige [294]#4945. - + [bdubbs] - Atualização para libcap-2.60. Corrige [295]#4944. - + [bdubbs] - Atualização para gdbm-1.22. Corrige [296]#4943. - + [bdubbs] - Atualização para file-5.41. Corrige [297]#4942. - + [bdubbs] - Atualização para linux-5.14.15. Corrige [298]#4941. - + [bdubbs] - Atualização para iana-etc-20211025. Corrige - [299]#4940. - + [bdubbs] - Atualização para tzdata-2021e. Corrige [300]#4939. - * 2021-10-15 - + [bdubbs] - Atualização para vim-8.2.3508. Endereça [301]#4500. - + [bdubbs] - Atualização para tzdata-2021c. Corrige [302]#4934. - + [bdubbs] - Atualização para Python-3.10.0. Corrige [303]#4938. - + [bdubbs] - Atualização para Jinja2-3.0.2. Corrige [304]#4937. - + [bdubbs] - Atualização para linux-5.14.12. Corrige [305]#4932. - + [bdubbs] - Atualização para iana-etc-20211004. Corrige - [306]#4933. - + [bdubbs] - Atualização para bc-5.1.1. Corrige [307]#4936. - + [bdubbs] - Atualização para automake-1.16.5. Corrige - [308]#4935. - * 2021-10-01 - + [bdubbs] - Atualização para vim-8.2.3458. Endereça [309]#4500. - + [bdubbs] - Atualização para iana-etc-20210924. Endereça - [310]#4722. - + [bdubbs] - Atualização para tzdata-2021b. Corrige [311]#4929. - + [bdubbs] - Atualização para sysvinit-3.0.0. Corrige - [312]#4927. - + [bdubbs] - Atualização para meson-0.59.2. Corrige [313]#4931. - + [bdubbs] - Atualização para linux-5.14.8. Corrige [314]#4925. - + [bdubbs] - Atualização para libcap-2.59. Corrige [315]#4926. - + [bdubbs] - Atualização para coreutils-9.0. Corrige [316]#4928. - + [bdubbs] - Atualização para bison-3.8.2. Corrige [317]#4930. - * 2021-09-15 - + [bdubbs] - Garante que as instruções de documentação de tcl - estão presentes. Corrige [318]#4923. - + [bdubbs] - Atualização para Python3-3.9.7. Corrige [319]#4916. - + [bdubbs] - Atualização para linux-5.14.3. Corrige [320]#4913. - + [bdubbs] - Atualização para libcap-2.57. Corrige [321]#4912. - + [bdubbs] - Atualização para iproute2-5.14.0. Corrige - [322]#4917. - + [bdubbs] - Atualização para inetutils-2.2. Corrige [323]#4918. - + [bdubbs] - Atualização para gzip-1.11. Corrige [324]#4920. - + [bdubbs] - Atualização para gdbm-1.21. Corrige [325]#4919. - + [bdubbs] - Atualização para bison-3.8.1. Corrige [326]#4921. - + [bdubbs] - Atualização para bc-5.0.2. Corrige [327]#4905. - * 2021-09-08 - + [renodr] - Corrige regressões em File que resultam em detecção - inapropriada de texto e arquivos XZ. - * 2021-09-06 - + [bdubbs] - Esclarecimentos de texto na seção cópia de - segurança/restauração de Capítulo 7. Grato a Kevin Buckley - pelo patch. - * 2021-09-01 - + [bdubbs] - LFS-11.0 lançado. - -1.4. Recursos - -1.4.1. Perguntas Frequentes - - Se durante a construção do sistema LFS você encontrar quaisquer erros, - tiver quaisquer perguntas, ou entender que há um erro de digitação no - livro, então, por favor, comece consultando as Perguntas Feitas - Frequentemente (FAQ) que estão localizadas em - [328]https://www.linuxfromscratch.org/faq/. - -1.4.2. Listas de Correio Eletrônico - - O servidor linuxfromscratch.org hospeda um número de listas de - discussão usadas para o desenvolvimento do projeto LFS. Essas listas - incluem as principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, então o - próximo passo seria procurar nas listas de discussão em - [329]https://www.linuxfromscratch.org/search.html. - - Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - [330]https://www.linuxfromscratch.org/mail.html. - -1.4.3. IRC - - Vários membros da comunidade LFS oferecem assistência no Internet Relay - Chat (IRC). Antes de usar esse suporte, por favor certifique-se de que - sua pergunta já não foi respondida no FAQ do LFS ou nos arquivos das - listas de discussão. Você pode encontrar a rede IRC em irc.libera.chat. - O canal de suporte é chamado de #lfs-support. - -1.4.4. Sítios Espelho - - O projeto LFS tem um número de espelhos mundo afora para fazer com que - o acesso ao site do projeto e o download dos pacotes exigidos seja mais - conveniente. Por favor visite o site do LFS em - [331]https://www.linuxfromscratch.org/mirrors.html para uma lista dos - espelhos atuais. - -1.4.5. Informação de Contato - - Por favor, direcione todas as suas questões e comentários para uma das - listas de discussão (veja acima). - -1.5. Ajuda - - Se um problema ou uma pergunta for encontrado durante o trabalho com - este livro, então, por favor, verifique a página de Perguntas - Frequentes em [332]https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua pergunta não - estiver respondida nessa página, então, por favor, tente encontrar a - origem do problema. A dica seguinte te dará alguma orientação com - relação à resolução de problemas: - [333]https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. - - Se você não puder achar seu problema listado nas Perguntas Frequentes, - então procure nas listas de discussão em - [334]https://www.linuxfromscratch.org/search.html. - - Nós também temos uma comunidade LFS maravilhosa que está disposta a - oferecer assistência por meio das listas de discussão e IRC (veja a - seção [335]Seção 1.4, “Recursos†deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem ser - facilmente respondidas indo para as Perguntas Frequentes e procurando - nas listas de discussão primeiro. Então, para que nós possamos oferecer - a melhor assistência possível, você precisa fazer alguma pesquisa por - conta própria primeiro. Isso nos permite focar nas necessidades menos - usuais de suporte. Se suas buscas não produzirem uma solução, então, - por favor, inclua todas as informações relevantes (mencionadas abaixo) - no seu pedido de ajuda. - -1.5.1. Coisas a Mencionar - - Além de uma breve explanação do problema sendo vivenciado, as coisas - essenciais a incluir em qualquer pedido de ajuda são: - * A versão do livro sendo usado (neste caso 11.1) - * A distribuição anfitriã e versão sendo usada para criar LFS - * A saída do script [336]Exigências do Sistema Anfitrião - * O pacote ou seção onde o problema foi encontrado - * A mensagem de erro exata ou o sintoma sendo recebido - * Nota se você se desviou do livro afinal - -Nota - - Desviar-se deste livro não significa que nós não vamos te ajudar. - Afinal de contas, LFS é acerca de preferência pessoal. Ser sincero - sobre quaisquer mudanças nos procedimentos estabelecidos nos ajuda a - avaliar e determinar possíveis causas do seu problema. - -1.5.2. Problemas de Script de Configuração - - Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse arquivo talvez contenha erros encontrados - durante [a execução de] configure os quais não foram exibidos na tela. - Inclua as linhas relevantes se você precisar pedir ajuda. - -1.5.3. Problemas de Compilação - - Tanto a saída da tela quando o conteúdo de vários arquivos são úteis - para determinar a causa de problemas de compilação. A saída da tela do - script configure e do make executado podem ser úteis. Não é necessário - incluir toda a saída, mas inclua informações relevantes suficientes. - Abaixo está um exemplo do tipo de informação a incluir a partir da - saída de tela do make: -gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\" --DLOCALEDIR=\"/mnt/lfs/usr/share/locale\" --DLIBDIR=\"/mnt/lfs/usr/lib\" --DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I. --g -O2 -c getopt1.c -gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o -expand.o file.o function.o getopt.o implicit.o job.o main.o -misc.o read.o remake.o rule.o signame.o variable.o vpath.o -default.o remote-stub.o version.o opt1.o --lutil job.o: In function `load_too_high': -/lfs/tmp/make-3.79.1/job.c:1565: undefined reference -to `getloadavg' -collect2: ld returned 1 exit status -make[2]: *** [make] Error 1 -make[2]: Leaving directory `/lfs/tmp/make-3.79.1' -make[1]: *** [all-recursive] Error 1 -make[1]: Leaving directory `/lfs/tmp/make-3.79.1' -make: *** [all-recursive-am] Error 2 - - Nesse caso, muitas pessoas incluiriam apenas a seção final: -make [2]: *** [make] Error 1 - - Essa não é informação suficiente para diagnosticar adequadamente o - problema, pois essa linha apenas mostra que algo deu errado, não o quê - deu errado. A seção inteira, como no exemplo acima, é o que deveria ser - salva, porque ela inclui o comando que foi executado e a(s) - mensagem(ns) de erro associada(s). - - Um artigo excelente sobre como pedir ajuda na Internet está disponível - em [337]http://catb.org/~esr/faqs/smart-questions.html. Leia e siga as - dicas nesse documento para aumentar a possibilidade receber a ajuda que - você precisa. - -Parte II. Preparando para a Construção - -Capítulo 2. Preparando o Sistema Anfitrião - -2.1. Introdução - - Neste capítulo, as ferramentas do anfitrião necessárias para construção - de LFS são verificadas e, se necessário, instaladas. Então uma partição - que hospedará o sistema LFS é preparada. Nós criaremos a própria - partição, criaremos um sistema de arquivos nela, e a montaremos. - -2.2. Exigências do Sistema Anfitrião - - Seu sistema anfitrião deveria ter o software seguinte com as versões - mínimas indicadas. Isso não deveria ser um problema para a maioria das - distribuições Linux modernas. Também, perceba que muitas distribuições - colocarão cabeçalhos de aplicativos dentro de pacotes separados, - frequentemente na forma de “-devel†ou - “-devâ€. Certifique-se de instalá-los se sua distribuição - os fornecer. - - Versões anteriores dos pacotes de software listados talvez funcionem, - porém não foram testados. - * Bash-3.2 (/bin/sh deveria ser um link simbólico ou real para bash) - * Binutils-2.13.1 (Versões maiores que 2.38 não são recomendadas dado - que elas não foram testadas) - * Bison-2.7 (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) - * Coreutils-6.9 - * Diffutils-2.8.1 - * Findutils-4.2.31 - * Gawk-4.0.1 (/usr/bin/awk deveria ser um link para gawk) - * GCC-4.8 incluindo o compilador C++, g++ (Versões maiores que 11.2.0 - não são recomendadas dado que elas não foram testadas). As - bibliotecas C e C++ padrão (com cabeçalhos) também devem estar - presentes, de forma que o compilador C++ possa construir - aplicativos hospedados - * Grep-2.5.1a - * Gzip-1.3.12 - * Linux Kernel-3.2 - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de glibc em - [338]Capítulo 5 e [339]Capítulo 8, por recomendação dos - desenvolvedores. Ela também é exigida por udev. - Se o kernel do anfitrião for anterior a 3.2, então você precisará - substituir o kernel com uma versão mais atualizada. Existem duas - maneiras de você fazer isso. Primeira, veja se seu fornecedor Linux - fornece um pacote de kernel 3.2 ou mais atual. Se sim, então você - talvez deseje instalá-lo. Se seu fornecedor não oferecer um pacote - de kernel aceitável, ou você preferisse não instalá-lo, então você - mesmo pode compilar um kernel. Instruções para a compilação de - kernel e configuração de carregador de inicialização (presumindo - que o anfitrião usa GRUB) estão localizadas em [340]Capítulo 10. - * M4-1.4.10 - * Make-4.0 - * Patch-2.5.4 - * Perl-5.8.8 - * Python-3.4 - * Sed-4.1.5 - * Tar-1.22 - * Texinfo-4.7 - * Xz-5.0.0 - -Importante - - Perceba que os links simbólicos mencionados acima são exigidos para - construir um sistema LFS usando as instruções contidas neste livro. - Links simbólicos que apontem para outro software (tais como dash, mawk, - etc.) talvez funcionem, porém não são testados ou suportados pela - equipe de desenvolvimento de LFS, e talvez exijam ou desvio das - instruções ou correções adicionais para alguns pacotes. - - Para ver se seu sistema anfitrião tem todas as versões apropriadas, e a - habilidade de compilar aplicativos, execute o seguinte: -cat > version-check.sh << "EOF" -#!/bin/bash -# Script simples para listar números de versão de ferramentas críticas de desenv -olvimento -export LC_ALL=C -bash --version | head -n1 | cut -d" " -f2-4 -MYSH=$(readlink -f /bin/sh) -echo "/bin/sh -> $MYSH" -echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash" -unset MYSH - -echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- -bison --version | head -n1 - -if [ -h /usr/bin/yacc ]; then - echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; -elif [ -x /usr/bin/yacc ]; then - echo yacc is `/usr/bin/yacc --version | head -n1` -else - echo "yacc não encontrado" -fi - -echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 -diff --version | head -n1 -find --version | head -n1 -gawk --version | head -n1 - -if [ -h /usr/bin/awk ]; then - echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; -elif [ -x /usr/bin/awk ]; then - echo awk é `/usr/bin/awk --version | head -n1` -else - echo "awk não encontrado" -fi - -gcc --version | head -n1 -g++ --version | head -n1 -grep --version | head -n1 -gzip --version | head -n1 -cat /proc/version -m4 --version | head -n1 -make --version | head -n1 -patch --version | head -n1 -echo Perl `perl -V:version` -python3 --version -sed --version | head -n1 -tar --version | head -n1 -makeinfo --version | head -n1 # versão texinfo -xz --version | head -n1 - -echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c -if [ -x dummy ] - then echo "g++ compilação OK"; - else echo "g++ compilação falhou"; fi -rm -f dummy.c dummy -EOF - -bash version-check.sh - -2.3. Construindo LFS em Estágios - - LFS está desenhado para ser construído em uma sessão. Isto é, as - instruções assumem que o sistema não será desligado durante o processo. - Isso não significa que o sistema tenha que estar pronto de uma só vez. - O problema é que certos procedimentos tem que ser realizados outra vez - após uma inicialização se retomando LFS em pontos diferentes. - -2.3.1. Capítulos 1–4 - - Esses capítulos são realizados no sistema anfitrião. Quando da - reinicialização, seja cuidadosa(o) com o seguinte: - * Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 - precisam ter a variável de ambiente LFS configurada PARA A(O) - USUÃRIA(O) ROOT. - -2.3.2. Capítulos 5–6 - - * A partição /mnt/lfs deve estar montada. - * Esses dois capítulos devem ser feitos como a(o) usuária(o) lfs. Um - su - lfs precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco de instalar - pacotes no sistema anfitrião, e potencialmente torná-lo - inutilizável. - * Os procedimentos em [341]Instruções Gerais de Compilação são - críticos. Se existir qualquer dúvida acerca da instalação de um - pacote, então certifique-se de que qualquer arquivo tar - descomprimido previamente foi removido, então extraia novamente os - arquivos do pacote, e complete todas as instruções nessa seção. - -2.3.3. Capítulos 7–10 - - * A partição /mnt/lfs deve estar montada. - * Umas poucas operações, de “Mudando Dono†até “Entrando no Ambiente - Chroot†devem ser feitas como a(o) usuária(o) root, com a variável - de ambiente LFS configurada para a(o) usuária(o) root. - * Quando entrar em chroot, a variável de ambiente LFS deve estar - configurada para root. A variável LFS não mais é usada - posteriormente. - * Os sistemas virtuais de arquivo devem estar montados. Isso pode ser - feito antes ou depois de entrar em chroot mudando para um terminal - virtual do anfitrião e, como root, executando os comandos em - [342]Seção 7.3.2, “Montando e Povoando /dev†e [343]Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de Kernelâ€. - -2.4. Criando uma Nova Partição - - Como a maior parte dos outros sistemas operacionais, LFS geralmente é - instalado em uma partição dedicada. A abordagem recomendada para - construir um sistema LFS é a de usar uma partição disponível vazia ou, - se você tiver espaço suficiente não particionado, criar uma. - - Um sistema mínimo exige uma partição com cerca de dez (10) gigabytes - (GB). Isso é suficiente para armazenar todos os arquivos tar dos - códigos fontes e compilar os pacotes. Entretanto, se o sistema LFS for - concebido para ser o sistema Linux principal, então aplicativos - adicionais provavelmente serão instalados os quais exigirão espaço - adicional. Uma partição de trinta (30) GB é um tamanho razoável para - permitir o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço livre - suficiente de armazenamento temporário. Adicionalmente, a compilação de - pacotes pode exigir muito espaço de disco que será recuperado após o - pacote ser instalado. - - Como nem sempre existe Memória de Acesso Aleatório (RAM) suficiente - disponível para processos de compilação, é uma boa ideia usar uma - pequena partição de disco como espaço de swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória disponível - para processos ativos. A partição de swap para um sistema LFS pode ser - a mesma que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. - - Inicie um aplicativo de particionamento de disco como cfdisk ou fdisk - com uma opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador - primário de disco. Crie uma partição nativa Linux e uma partição swap, - se necessária. Por favor, recorra a cfdisk(8) ou fdisk(8) se você ainda - não sabe como usar os aplicativos. - -Nota - - Para usuários experientes, outros esquemas de partição são possíveis. O - novo sistema LFS pode estar em um vetor de software [344]RAID ou um - volume lógico [345]LVM. Entretanto, algumas dessas opções exigem um - [346]initramfs, o que é um tópico avançado. Essas metodologias de - particionamento não são recomendadas para usuárias(os) de LFS pela - primeira vez. - - Lembre-se da designação da nova partição (por exemplo, sda5). Este - livro se referirá a essa como a partição LFS. Lembre-se também da - designação da partição swap. Esses nomes serão necessários - posteriormente para o arquivo /etc/fstab. - -2.4.1. Outros Problemas de Partição - - Pedidos de ajuda com relação a particionamento de disco frequentemente - são enviados à lista de discussão do LFS. Esse é um assunto altamente - subjetivo. O padrão para a maioria das distribuições é o de usar todo o - disco com a exceção de uma pequena partição swap. Isso não é ideal para - LFS por várias razões. Isso reduz flexibilidade; torna o - compartilhamento de dados entre múltiplas distribuições ou construções - LFS mais difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de estruturas - de sistema de arquivo. - -2.4.1.1. A Partição Raiz - - Uma partição raiz de LFS (não confundir com o diretório /root) de vinte - (20) gigabytes é uma boa escolha para a maior parte dos sistemas. Ela - fornece espaço suficiente para construir LFS e a maior parte de BLFS, - mas é pequena o suficiente de forma que múltiplas partições podem ser - criadas facilmente para experimentação. - -2.4.1.2. A Partição Swap - - A maioria das distribuições automaticamente cria uma partição swap. - Geralmente o tamanho recomendado da partição swap é o de cerca de o - dobro da quantidade de RAM física, entretanto isso raramente é - necessário. Se espaço de disco for limitado, então mantenha a partição - swap com dois (2) gigabytes e monitore a quantidade de troca de disco. - - Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição swap antes - de desligar a máquina. Nesse caso o tamanho da partição swap deveria - ser pelo menos tão grande quanto a RAM instalada do sistema. - - O uso de swap nunca é bom. Para discos rígidos mecânicos você - geralmente pode dizer se um sistema está usando swap simplesmente - monitorando a atividade de disco e observando como o sistema reage a - comandos. Para um drive SSD você não estará apta(o) a monitorar swap, - porém você pode dizer quanto espaço de swap está sendo usado via - aplicativos top ou free. O uso de um drive SSD para uma partição swap - deveria ser evitado se possível. A primeira reação em caso de uso de - swap deveria ser verificar se existe um comando irracional como tentar - editar um arquivo de cinco gigabytes. Se o uso de swap se tornar uma - ocorrência recorrente, então a melhor solução é a de comprar mais RAM - para seu sistema. - -2.4.1.3. A Partição de Bios Grub - - Se o disco de inicialização tiver sido particionado com a Tabela de - Partição GUID (GPT), então uma partição pequena, tipicamente um (1) MB, - deve ser criada se ela já não existir. Essa partição não é formatada, - porém deve estar disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será rotulada - 'BIOS Boot' se usar fdisk ou terá um código de EF02 se usar gdisk. - -Nota - - A Partição de Bios Grub deve estar no drive que o BIOS usa para - inicializar o sistema. Esse não é necessariamente o mesmo drive onde a - partição raiz de LFS está localizada. Discos em um sistema talvez usem - tipos diferentes de tabela de partição. A exigência para essa partição - depende apenas do tipo de tabela de partição do disco de inicialização. - -2.4.1.4. Partições de Conveniência - - Existem várias outras partições que não são exigidas, porém deveriam - ser consideradas ao se projetar um layout de disco. A lista seguinte - não é abrangente, mas é entendida como um guia. - * /boot – Altamente recomendada. Use essa partição para armazenar - kernels e outras informações de inicialização. Para minimizar - potenciais problemas de inicialização com discos maiores, torne - essa a primeira partição física no seu primeiro controlador de - disco. Um tamanho de partição de duzentos (200) megabytes é - bastante adequado. - * /home – Altamente recomendada. Compartilhe seu diretório home e - personalizações de usuário entre múltiplas distribuições ou - construções LFS. O tamanho geralmente é bastante grande e depende - do espaço de disco disponível. - * /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para seus - homólogos em /usr. Assim /usr contém todos os binários necessários - para o sistema executar. Para LFS, uma partição separada para /usr - normalmente não é necessária. Se você precisar dela de qualquer - maneira, então você deveria tornar uma partição grande o suficiente - para acomodar todos os aplicativos e bibliotecas no sistema. A - partição raiz pode ser bem pequena (talvez apenas um gigabyte) - nessa configuração, de forma que ela seja adequada para um "thin - client" ou estação de trabalho sem disco (onde /usr é montado a - partir de um servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será necessário para - inicializar um sistema com partição /usr separada. - * /opt – Esse diretório é mais útil para BLFS onde múltiplas - instalações de pacotes grandes como Gnome ou KDE podem ser - instalados sem embutir os arquivos na hierarquia /usr. Se usado, 5 - a 10 gigabytes geralmente é adequado. - * /tmp – Um diretório /tmp separado é raro, mas útil ao se configurar - um "thin client". Essa partição, se usada, geralmente não precisará - exceder alguns gigabytes. - * /usr/src – Essa partição é muito útil para disponibilizar uma - localização para armazenar os arquivos fontes de BLFS e - compartilhá-los entre construções LFS. Ela também pode ser usada - como uma localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite muito espaço. - - Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser especificada no - /etc/fstab. Detalhes sobre como especificar partições serão discutidos - em [347]Seção 10.2, “Criando o Arquivo /etc/fstabâ€. - -2.5. Criando um Sistema de Arquivos na Partição - - Agora que uma partição em branco foi configurada, o sistema de arquivos - pode ser criado. LFS pode usar qualquer sistema de arquivos reconhecido - pelo kernel Linux, mas os tipos mais comuns são ext3 e ext4. A escolha - do sistema de arquivos pode ser complexa e depende das características - dos arquivos e o tamanho da partição. Por exemplo: - - ext2 - é adequado para partições pequenas que são atualizadas com pouca - frequência tais como /boot. - - ext3 - é uma atualização do ext2 que inclui journal para ajudar a - recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. - - ext4 - é a versão mais nova da família de sistema de arquivos ext de - tipos de partição. Ela fornece várias capacidades novas - incluindo marcas temporais em nano segundos, criação e uso de - arquivos muito grandes (16 TB), e melhoramentos de velocidade. - - Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, JFS, e - XFS são úteis para propósitos especializados. Mais informação sobre - esses sistemas de arquivos pode ser encontrada em - [348]http://en.wikipedia.org/wiki/Comparison_of_file_systems. - - LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. Para - criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -mkfs -v -t ext4 /dev/ - - Substitua com o nome da partição LFS. - - Se você está usando uma partição swap existente, então não há - necessidade de formatá-la. Se uma nova partição swap foi criada, então - ela precisará ser inicializada com este comando: -mkswap /dev/ - - Substitua com o nome da partição swap. - -2.6. Configurando a Variável $LFS - - Ao longo deste livro, a variável de ambiente LFS será usada muitas - vezes. Você deveria se assegurar de que essa variável sempre está - definida no decorrer do processo de construção de LFS. Ela deveria ser - configurada para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS em uma - partição separada, então esse diretório será o ponto de montagem para a - partição. Escolha uma localização de diretório e configure a variável - com o seguinte comando: -export LFS=/mnt/lfs - - Ter essa variável configurada é benéfico naqueles comandos tais como - mkdir -v $LFS/tools os quais podem ser digitados literalmente. O - interpretador de comandos automaticamente substituirá “$LFS†com - “/mnt/lfs†(ou para o que a variável foi configurada) quando ele - processar a linha de comando. - -Cuidado - - Não se esqueça de verificar se LFS está configurada quando você deixar - e entrar novamente no ambiente atual de trabalho (como quando fizer um - su para root ou outra(o) usuária(o)). Verifique se a variável LFS está - configurada apropriadamente com: -echo $LFS - - Tenha certeza de que a saída mostra o caminho para sua localização de - construção do sistema LFS, a qual é /mnt/lfs se o exemplo fornecido foi - seguido. Se a saída estiver incorreta, então use o comando dado - anteriormente nesta página para configurar $LFS para o nome correto de - diretório. - -Nota - - Uma maneira de assegurar que a variável LFS sempre está configurada é - editar o arquivo .bash_profile tanto em seu diretório home pessoal - quanto em /root/.bash_profile e inserir o comando export acima. - Adicionalmente, o interpretador de comandos especificado no arquivo - /etc/passwd para todas(os) as(os) usuárias(os) que precisam da variável - LFS precisa ser bash para assegurar que o arquivo /root/.bash_profile é - incorporado como parte do processo de login. - - Outra consideração é o método que é usado para logar no sistema - anfitrião. Se logando por intermédio de um gerenciador gráfico de tela, - então o .bash_profile da(o) usuária(o) normalmente não é usado quando - um terminal virtual é iniciado. Nesse caso, adicione o comando export - ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções de .bashrc - em uma invocação não interativa de bash. Certifique-se de adicionar o - comando export antes do teste para uso não interativo. - -2.7. Montando a Nova Partição - - Agora que um sistema de arquivos foi criado, a partição precisa se - tornar acessível. Para fazer isso, a partição precisa ser montada em um - ponto de montagem escolhido. Para os propósitos deste livro, assume-se - que o sistema de arquivos está montado sob o diretório especificado - pela variável de ambiente LFS conforme descrito na seção anterior. - - Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS - - Substitua com a designação da partição LFS. - - Se estiver usando múltiplas partições para LFS (por exemplo, uma para / - e outra para /home), então monte-as usando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS -mkdir -v $LFS/home -mount -v -t ext4 /dev/ $LFS/home - - Substitua e com os nomes apropriados das partições. - - Assegure-se de que essa nova partição não está montada com permissões - que são muito restritivas (tais como as opções nosuid ou nodev). - Execute o comando mount sem quaisquer parâmetros para ver quais opções - estão configuradas para a partição LFS montada. Se nosuid e (ou) nodev - estiverem configuradas, então a partição precisará ser remontada. - -Atenção - - As instruções acima assumem que você não estará reiniciando seu - computador no decorrer do processo LFS. Se você desligar seu sistema, - então você precisará remontar a partição LFS a cada vez que você - reiniciar o processo de construção ou modificar seu arquivo /etc/fstab - do sistema anfitrião para remontá-la automaticamente após - inicialização. Por exemplo: -/dev/ /mnt/lfs ext4 defaults 1 1 - - Se você usa partições adicionais opcionais, então certifique-se de - adicioná-las também. - - Se você estiver usando uma partição swap, então assegure-se de que ela - está habilitada usando o comando swapon: -/sbin/swapon -v /dev/ - - Substitua com o nome da partição swap. - - Agora que existe um lugar estabelecido para trabalhar, é tempo de - baixar os pacotes. - -Capítulo 3. Pacotes e Patches - -3.1. Introdução - - Este capítulo inclui uma lista de pacotes que precisam ser baixados - para construir um sistema Linux básico. Os números de versão listados - correspondem a versões dos aplicativos que são conhecidos por - funcionar, e este livro é baseado no uso deles. Nós recomendamos - veementemente contra o uso de versões diferentes, pois os comandos de - construção para uma versão talvez não funcionem com uma versão - diferente, a menos que a versão diferente seja especificada por uma - errata de LFS ou conselho de segurança. As versões mais novas de pacote - talvez também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de desenvolvimento do - livro. - - Para alguns pacotes, o tarball de lançamento e o tarball instantâneo de - repositório (Git ou SVN) para este lançamento talvez seja publicado com - nome semelhante de arquivo. Um tarball de lançamento contém arquivos - generalizados (por exemplo, o script configure gerado por autoconf), em - adição aos conteúdos do correspondente instantâneo de repositório. O - livro usa tarballs de lançamento quando possível. Usar um instantâneo - de repositório em vez de um tarball de lançamento especificado pelo - livro causará problemas. - - Localizações de downloads nem sempre podem estar acessíveis. Se uma - localização de download mudou desde que este livro foi publicado, então - o Google ([349]http://www.google.com/) fornece um motor de busca útil - para a maioria dos pacotes. Se essa busca for mal sucedida, então tente - um dos meios alternativos de download em - [350]https://www.linuxfromscratch.org/lfs/mirrors.html#files. - - Pacotes e patches baixados precisarão ser armazenados em algum lugar - que esteja convenientemente disponível durante a construção inteira. Um - diretório de trabalho também é exigido para desempacotar os fontes e - construí-los. $LFS/sources pode ser usado tanto como o lugar para - armazenar os tarballs e patches quanto como diretório de trabalho. - Usando esse diretório, os elementos exigidos estarão localizados na - partição LFS e estarão disponíveis durante todos os estágios do - processo de construção. - - Para criar esse diretório, execute o seguinte comando, como usuária(o) - root, antes de começar a sessão de download: -mkdir -v $LFS/sources - - Torne esse diretório gravável e "sticky". “Sticky†significa que mesmo - se múltiplas(os) usuárias(os) tenham permissão de escrita, só a(o) - dona(o) de um arquivo pode deletar o arquivo dentro de um diretório - sticky. O seguinte comando habilitará os modos escrita e sticky: -chmod -v a+wt $LFS/sources - - Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: - * Os arquivos podem ser baixados individualmente conforme descrito - nas próximas duas seções. - * Para versões estáveis do livro, um tarball de todos os arquivos - necessários pode ser baixado a partir de um dos espelhos de - arquivos de LFS listados em - [351]https://www.linuxfromscratch.org/mirrors.html#files. - * Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. - - Para baixar todos os pacotes e patches usando [352]lista-wget como uma - entrada para o comando wget, use: -wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources - -Nota - - O arquivo lista-wget mencionado acima recupera todos os pacotes para as - versões sysV e systemd de LFS. Existe um total de cinco pacotes - pequenos adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é específico para o livro atual. - - Adicionalmente, começando com LFS-7.0, existe um arquivo separado, - [353]md5sums, que pode ser usado para verificar se todos os pacotes - corretos estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -pushd $LFS/sources - md5sum -c md5sums -popd - - Essa verificação pode ser usada após recuperar os arquivos necessários - com qualquer dos métodos listados acima. - -3.2. Todos os Pacotes - - Baixe ou de outra forma obtenha os seguintes pacotes: - - Acl (2.3.1) - 348 KB: - Home page: [354]https://savannah.nongnu.org/projects/acl - - Download: - [355]https://download.savannah.gnu.org/releases/acl/acl-2.3.1.ta - r.xz - - MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 - - Attr (2.5.1) - 456 KB: - Home page: [356]https://savannah.nongnu.org/projects/attr - - Download: - [357]https://download.savannah.gnu.org/releases/attr/attr-2.5.1. - tar.gz - - MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 - - Autoconf (2.71) - 1,263 KB: - Home page: [358]https://www.gnu.org/software/autoconf/ - - Download: - [359]https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - - MD5 sum: 12cfa1687ffa2606337efe1a64416106 - - Automake (1.16.5) - 1,565 KB: - Home page: [360]https://www.gnu.org/software/automake/ - - Download: - [361]https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - - MD5 sum: 4017e96f89fca45ca946f1c5db6be714 - - SHA256 sum: - 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d - - Bash (5.1.16) - 10,277 KB: - Home page: [362]https://www.gnu.org/software/bash/ - - Download: [363]https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - - MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e - - Bc (5.2.2) - 428 KB: - Home page: [364]https://git.yzena.com/gavin/bc - - Download: - [365]https://github.com/gavinhoward/bc/releases/download/5.2.2/b - c-5.2.2.tar.xz - - MD5 sum: 632344cdb052af0e06087bd3b0034126 - - Binutils (2.38) - 23,098 KB: - Home page: [366]https://www.gnu.org/software/binutils/ - - Download: - [367]https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - - MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 - - Bison (3.8.2) - 2,752 KB: - Home page: [368]https://www.gnu.org/software/bison/ - - Download: [369]https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - - MD5 sum: c28f119f405a2304ff0a7ccdcc629713 - - Bzip2 (1.0.8) - 792 KB: - Download: - [370]https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - - MD5 sum: 67e051268d0c475ea773822f7500d0e5 - - Check (0.15.2) - 760 KB: - Home page: [371]https://libcheck.github.io/check - - Download: - [372]https://github.com/libcheck/check/releases/download/0.15.2/ - check-0.15.2.tar.gz - - MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 - - Coreutils (9.0) - 5,482 KB: - Home page: [373]https://www.gnu.org/software/coreutils/ - - Download: - [374]https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - - MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 - - DejaGNU (1.6.3) - 608 KB: - Home page: [375]https://www.gnu.org/software/dejagnu/ - - Download: - [376]https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - - MD5 sum: 68c5208c58236eba447d7d6d1326b821 - - Diffutils (3.8) - 1,548 KB: - Home page: [377]https://www.gnu.org/software/diffutils/ - - Download: - [378]https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - - MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc - - E2fsprogs (1.46.5) - 9,307 KB: - Home page: [379]http://e2fsprogs.sourceforge.net/ - - Download: - [380]https://downloads.sourceforge.net/project/e2fsprogs/e2fspro - gs/v1.46.5/e2fsprogs-1.46.5.tar.gz - - MD5 sum: 3da91854c960ad8a819b48b2a404eb43 - - Elfutils (0.186) - 9,015 KB: - Home page: [381]https://sourceware.org/elfutils/ - - Download: - [382]https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.ta - r.bz2 - - MD5 sum: 2c095e31e35d6be7b3718477b6d52702 - - Eudev (3.2.11) - 2,075 KB: - Download: - [383]https://github.com/eudev-project/eudev/releases/download/v3 - .2.11/eudev-3.2.11.tar.gz - - MD5 sum: 417ba948335736d4d81874fba47a30f7 - - Expat (2.4.6) - 444 KB: - Home page: [384]https://libexpat.github.io/ - - Download: - [385]https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.x - z - - MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 - -Nota - - A(O) Desenvolvedora(or) talvez remova tarballs dos lançamentos - específicos de Expat quando esses lançamentos contenham uma - vulnerabilidade de segurança. Você deveria se referir a - [386]Avisos de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você talvez baixe - a versão vulnerável a partir de um espelho, porém isso não é - recomendado. - - Expect (5.45.4) - 618 KB: - Home page: [387]https://core.tcl.tk/expect/ - - Download: - [388]https://prdownloads.sourceforge.net/expect/expect5.45.4.tar - .gz - - MD5 sum: 00fce8de158422f5ccd2666512329bd2 - - File (5.41) - 1040 KB: - Home page: [389]https://www.darwinsys.com/file/ - - Download: [390]https://astron.com/pub/file/file-5.41.tar.gz - - MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b - - Findutils (4.9.0) - 1,999 KB: - Home page: [391]https://www.gnu.org/software/findutils/ - - Download: - [392]https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - - MD5 sum: 4a4a547e888a944b2f3af31d789a1137 - - Flex (2.6.4) - 1,386 KB: - Home page: [393]https://github.com/westes/flex - - Download: - [394]https://github.com/westes/flex/releases/download/v2.6.4/fle - x-2.6.4.tar.gz - - MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d - - Gawk (5.1.1) - 3,075 KB: - Home page: [395]https://www.gnu.org/software/gawk/ - - Download: [396]https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - - MD5 sum: 83650aa943ff2fd519b2abedf8506ace - - GCC (11.2.0) - 78,996 KB: - Home page: [397]https://gcc.gnu.org/ - - Download: - [398]https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - - MD5 sum: 31c86f2ced76acac66992eeedce2fce2 - - SHA256 sum: - d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b - - GDBM (1.23) - 1,092 KB: - Home page: [399]https://www.gnu.org/software/gdbm/ - - Download: [400]https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - - MD5 sum: 8551961e36bf8c70b7500d255d3658ec - - Gettext (0.21) - 9,487 KB: - Home page: [401]https://www.gnu.org/software/gettext/ - - Download: - [402]https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - - MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 - - Glibc (2.35) - 17,741 KB: - Home page: [403]https://www.gnu.org/software/libc/ - - Download: [404]https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - - MD5 sum: dd571c67d85d89d7f60b854a4e207423 - - GMP (6.2.1) - 1,980 KB: - Home page: [405]https://www.gnu.org/software/gmp/ - - Download: [406]https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - - MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b - - Gperf (3.1) - 1,188 KB: - Home page: [407]https://www.gnu.org/software/gperf/ - - Download: [408]https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - - MD5 sum: 9e251c0a618ad0824b51117d5d9db87e - - Grep (3.7) - 1,603 KB: - Home page: [409]https://www.gnu.org/software/grep/ - - Download: [410]https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - - MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf - - Groff (1.22.4) - 4,044 KB: - Home page: [411]https://www.gnu.org/software/groff/ - - Download: [412]https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - - MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f - - GRUB (2.06) - 6,428 KB: - Home page: [413]https://www.gnu.org/software/grub/ - - Download: [414]https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - - MD5 sum: cf0fd928b1e5479c8108ee52cb114363 - - Gzip (1.11) - 786 KB: - Home page: [415]https://www.gnu.org/software/gzip/ - - Download: [416]https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - - MD5 sum: d1e93996dba00cab0caa7903cd01d454 - - Iana-Etc (20220207) - 580 KB: - Home page: [417]https://www.iana.org/protocols - - Download: - [418]https://github.com/Mic92/iana-etc/releases/download/2022020 - 7/iana-etc-20220207.tar.gz - - MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f - - Inetutils (2.2) - 1,494 KB: - Home page: [419]https://www.gnu.org/software/inetutils/ - - Download: - [420]https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - - MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 - - SHA256 sum: - 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 - - Intltool (0.51.0) - 159 KB: - Home page: [421]https://freedesktop.org/wiki/Software/intltool - - Download: - [422]https://launchpad.net/intltool/trunk/0.51.0/+download/intlt - ool-0.51.0.tar.gz - - MD5 sum: 12e517cac2b57a0121cda351570f1e63 - - IPRoute2 (5.16.0) - 843 KB: - Home page: - [423]https://www.kernel.org/pub/linux/utils/net/iproute2/ - - Download: - [424]https://www.kernel.org/pub/linux/utils/net/iproute2/iproute - 2-5.16.0.tar.xz - - MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb - - Kbd (2.4.0) - 1,095 KB: - Home page: [425]https://kbd-project.org/ - - Download: - [426]https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - - MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 - - Kmod (29) - 548 KB: - Download: - [427]https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29. - tar.xz - - MD5 sum: e81e63acd80697d001c8d85c1acb38a0 - - Less (590) - 348 KB: - Home page: [428]https://www.greenwoodsoftware.com/less/ - - Download: - [429]https://www.greenwoodsoftware.com/less/less-590.tar.gz - - MD5 sum: f029087448357812fba450091a1172ab - - LFS-Bootscripts (20210608) - 32 KB: - Download: - [430]https://www.linuxfromscratch.org/lfs/downloads/11.1/lfs-boo - tscripts-20210608.tar.xz - - MD5 sum: 0f51a074cc4faaff93b3c80e9ab27b0c - - Libcap (2.63) - 171 KB: - Home page: [431]https://sites.google.com/site/fullycapable/ - - Download: - [432]https://www.kernel.org/pub/linux/libs/security/linux-privs/ - libcap2/libcap-2.63.tar.xz - - MD5 sum: 18410cec436f827e698ee9ea16ada9b7 - - Libffi (3.4.2) - 1,320 KB: - Home page: [433]https://sourceware.org/libffi/ - - Download: - [434]https://github.com/libffi/libffi/releases/download/v3.4.2/l - ibffi-3.4.2.tar.gz - - MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 - - Libpipeline (1.5.5) - 934 KB: - Home page: [435]http://libpipeline.nongnu.org/ - - Download: - [436]https://download.savannah.gnu.org/releases/libpipeline/libp - ipeline-1.5.5.tar.gz - - MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 - - Libtool (2.4.6) - 951 KB: - Home page: [437]https://www.gnu.org/software/libtool/ - - Download: - [438]https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - - MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 - - Linux (5.16.9) - 124,577 KB: - Home page: [439]https://www.kernel.org/ - - Download: - [440]https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.t - ar.xz - - MD5 sum: 4d6a704bf3e249ef6189b6f17457084b - -Nota - - O kernel Linux é atualizado com relativa frequência, muitas - vezes devido às descobertas de vulnerabilidades de segurança. A - versão estável de kernel mais atual disponível pode ser usada, a - menos que a página de errata diga o contrário. - - Para usuárias(os) com largura de banda de velocidade limitada ou - cara que desejem atualizar o kernel Linux, uma versão básica do - pacote e patches pode ser baixada separadamente. Isso talvez - economize algum tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. - - M4 (1.4.19) - 1,617 KB: - Home page: [441]https://www.gnu.org/software/m4/ - - Download: [442]https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - - MD5 sum: 0d90823e1426f1da2fd872df0311298d - - Make (4.3) - 2,263 KB: - Home page: [443]https://www.gnu.org/software/make/ - - Download: [444]https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - - MD5 sum: fc7a67ea86ace13195b0bce683fd4469 - - Man-DB (2.10.1) - 1,847 KB: - Home page: [445]https://www.nongnu.org/man-db/ - - Download: - [446]https://download.savannah.gnu.org/releases/man-db/man-db-2. - 10.1.tar.xz - - MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 - - Man-pages (5.13) - 1,752 KB: - Home page: [447]https://www.kernel.org/doc/man-pages/ - - Download: - [448]https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5 - .13.tar.xz - - MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 - - Meson (0.61.1) - 1,963 KB: - Home page: [449]https://mesonbuild.com - - Download: - [450]https://github.com/mesonbuild/meson/releases/download/0.61. - 1/meson-0.61.1.tar.gz - - MD5 sum: 8ed66d5537275df3defffb66d1fb897f - - MPC (1.2.1) - 820 KB: - Home page: [451]http://www.multiprecision.org/ - - Download: [452]https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - - MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 - - MPFR (4.1.0) - 1,490 KB: - Home page: [453]https://www.mpfr.org/ - - Download: [454]https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - - MD5 sum: bdd3d5efba9c17da8d83a35ec552baef - - Ncurses (6.3) - 3,500 KB: - Home page: [455]https://www.gnu.org/software/ncurses/ - - Download: - [456]https://invisible-mirror.net/archives/ncurses/ncurses-6.3.t - ar.gz - - MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe - - Ninja (1.10.2) - 209 KB: - Home page: [457]https://ninja-build.org/ - - Download: - [458]https://github.com/ninja-build/ninja/archive/v1.10.2/ninja- - 1.10.2.tar.gz - - MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 - - OpenSSL (3.0.1) - 14,660 KB: - Home page: [459]https://www.openssl.org/ - - Download: - [460]https://www.openssl.org/source/openssl-3.0.1.tar.gz - - MD5 sum: 7d07e849d77d276891edd579a8832bb3 - - Patch (2.7.6) - 766 KB: - Home page: [461]https://savannah.gnu.org/projects/patch/ - - Download: [462]https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - - MD5 sum: 78ad9937e4caadcba1526ef1853730d5 - - Perl (5.34.0) - 12,580 KB: - Home page: [463]https://www.perl.org/ - - Download: [464]https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - - MD5 sum: df7ecb0653440b26dc951ad9dbfab517 - - Pkg-config (0.29.2) - 1,970 KB: - Home page: - [465]https://www.freedesktop.org/wiki/Software/pkg-config - - Download: - [466]https://pkg-config.freedesktop.org/releases/pkg-config-0.29 - .2.tar.gz - - MD5 sum: f6e931e319531b736fadc017f470e68a - - Procps (3.3.17) - 985 KB: - Home page: [467]https://sourceforge.net/projects/procps-ng - - Download: - [468]https://sourceforge.net/projects/procps-ng/files/Production - /procps-ng-3.3.17.tar.xz - - MD5 sum: d60613e88c2f442ebd462b5a75313d56 - - Psmisc (23.4) - 362 KB: - Home page: [469]https://gitlab.com/psmisc/psmisc - - Download: - [470]https://sourceforge.net/projects/psmisc/files/psmisc/psmisc - -23.4.tar.xz - - MD5 sum: 8114cd4489b95308efe2509c3a406bbf - - Python (3.10.2) - 18,341 KB: - Home page: [471]https://www.python.org/ - - Download: - [472]https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar. - xz - - MD5 sum: 14e8c22458ed7779a1957b26cde01db9 - - Documentação de Python (3.10.2) - 7,102 KB: - Download: - [473]https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2- - docs-html.tar.bz2 - - MD5 sum: ffa52f0017baf72df9d32dec785fd6ab - - Readline (8.1.2) - 2,923 KB: - Home page: - [474]https://tiswww.case.edu/php/chet/readline/rltop.html - - Download: - [475]https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - - MD5 sum: 12819fa739a78a6172400f399ab34f81 - - Sed (4.8) - 1,317 KB: - Home page: [476]https://www.gnu.org/software/sed/ - - Download: [477]https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - - MD5 sum: 6d906edfdb3202304059233f51f9a71d - - Shadow (4.11.1) - 1,618 KB: - Home page: [478]https://shadow-maint.github.io/shadow/ - - Download: - [479]https://github.com/shadow-maint/shadow/releases/download/v4 - .11.1/shadow-4.11.1.tar.xz - - MD5 sum: 5a95ec069aa91508167d02fecafaa912 - - Sysklogd (1.5.1) - 88 KB: - Home page: [480]https://www.infodrom.org/projects/sysklogd/ - - Download: - [481]https://www.infodrom.org/projects/sysklogd/download/sysklog - d-1.5.1.tar.gz - - MD5 sum: c70599ab0d037fde724f7210c2c8d7f8 - - Sysvinit (3.01) - 124 KB: - Home page: [482]https://savannah.nongnu.org/projects/sysvinit - - Download: - [483]https://download.savannah.gnu.org/releases/sysvinit/sysvini - t-3.01.tar.xz - - MD5 sum: dc14f92af715bcfa33cc25341730452e - - Tar (1.34) - 2,174 KB: - Home page: [484]https://www.gnu.org/software/tar/ - - Download: [485]https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - - MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf - - Tcl (8.6.12) - 10,112 KB: - Home page: [486]http://tcl.sourceforge.net/ - - Download: - [487]https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - - MD5 sum: 87ea890821d2221f2ab5157bc5eb885f - - Documentação de Tcl (8.6.12) - 1,176 KB: - Download: - [488]https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - - MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a - - Texinfo (6.8) - 4,848 KB: - Home page: [489]https://www.gnu.org/software/texinfo/ - - Download: - [490]https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - - MD5 sum: a91b404e30561a5df803e6eb3a53be71 - - Dados de Zona de Tempo (2021e) - 413 KB: - Home page: [491]https://www.iana.org/time-zones - - Download: - [492]https://www.iana.org/time-zones/repository/releases/tzdata2 - 021e.tar.gz - - MD5 sum: 4fdfad906ebc85fef30221c10964cce9 - - Udev-lfs Tarball (udev-lfs-20171102) - 11 KB: - Download: - [493]https://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.t - ar.xz - - MD5 sum: 27cd82f9a61422e186b9d6759ddf1634 - - Util-linux (2.37.4) - 5,971 KB: - Home page: - [494]https://git.kernel.org/pub/scm/utils/util-linux/util-linux. - git/ - - Download: - [495]https://www.kernel.org/pub/linux/utils/util-linux/v2.37/uti - l-linux-2.37.4.tar.xz - - MD5 sum: 755919e658c349cad9e1c7c771742d48 - - Vim (8.2.4383) - 15,622 KB: - Home page: [496]https://www.vim.org - - Download: - [497]https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - - MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 - -Nota - - A versão de vim muda diariamente. Para conseguir a versão mais - atual, vá para [498]https://github.com/vim/vim/tags. - - XML::Parser (2.46) - 249 KB: - Home page: [499]https://github.com/chorny/XML-Parser - - Download: - [500]https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser- - 2.46.tar.gz - - MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 - - Xz Utils (5.2.5) - 1,122 KB: - Home page: [501]https://tukaani.org/xz - - Download: [502]https://tukaani.org/xz/xz-5.2.5.tar.xz - - MD5 sum: aa1621ec7013a19abab52a8aff04fe5b - - Zlib (1.2.11) - 457 KB: - Home page: [503]https://www.zlib.net/ - - Download: [504]https://zlib.net/zlib-1.2.11.tar.xz - - MD5 sum: 85adef240c5f370b308da8c938951a68 - - Zstd (1.5.2) - 1,892 KB: - Home page: [505]https://facebook.github.io/zstd/ - - Download: - [506]https://github.com/facebook/zstd/releases/download/v1.5.2/z - std-1.5.2.tar.gz - - MD5 sum: 072b10f71f5820c24761a65f31f43e73 - - Tamanho total desses pacotes: cerca de 446 MB - -3.3. Patches Necessários - - Em adição aos pacotes, vários patches também são exigidos. Esses - patches corrigem quaisquer erros nos pacotes que deveriam ser - consertados pela(o) Mantenedora(or). Os patches também fazem pequenas - modificações para tornar os pacotes mais fáceis de se trabalhar. Os - seguintes patches serão necessários para construir um sistema LFS: - - Binutils LTO Fix Patch - 3.5 KB: - Download: - [507]https://www.linuxfromscratch.org/patches/lfs/11.1/binutils- - 2.38-lto_fix-1.patch - - MD5 sum: 3df11b6123d5bbdb0fc83862a003827a - - Patch de Documentação de Bzip2 - 1.6 KB: - Download: - [508]https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0 - .8-install_docs-1.patch - - MD5 sum: 6a5ac7e89b791aae556de0f745916f7f - - Patch de Correções de Internacionalização de Coreutils - 166 KB: - Download: - [509]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-i18n-1.patch - - MD5 sum: 1eeba2736dfea013509f9975365e4e32 - - Patch de Correção de Chmod de Coreutils - 3.8 KB: - Download: - [510]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-chmod_fix-1.patch - - MD5 sum: 4709df88e68279e6ef357aa819ba5b1a - - Glibc FHS Patch - 2.8 KB: - Download: - [511]https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.3 - 5-fhs-1.patch - - MD5 sum: 9a5997c3452909b1769918c759eff8a2 - - Patch de Correção de Backspace/Delete de Kbd - 12 KB: - Download: - [512]https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0 - -backspace-1.patch - - MD5 sum: f75cca16a38da6caa7d52151f7136895 - - Patch de Correção de Desenvolvedora(or) de Perl - 1.6 KB: - Download: - [513]https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34 - .0-upstream_fixes-1.patch - - MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 - - Patch Consolidado de Sysvinit - 2.4 KB: - Download: - [514]https://www.linuxfromscratch.org/patches/lfs/11.1/sysvinit- - 3.01-consolidated-1.patch - - MD5 sum: 4900322141d493e74020c9cf437b2cdc - - Tamanho total desses patches: cerca de 193.7 KB - - Em adição aos patches exigidos acima, existe um número de patches - opcionais criados pela comunidade LFS. Esses patches opcionais - solucionam problemas menores ou habilitam funcionalidade que não está - habilitada por padrão. Sinta-se à vontade para examinar o banco de - dados de patches localizado em - [515]https://www.linuxfromscratch.org/patches/downloads/ e adquirir - quaisquer patches adicionais para atender às necessidades do seu - sistema. - -Capítulo 4. Preparações Finais - -4.1. Introdução - - Neste capítulo, nós realizaremos umas poucas tarefas adicionais para - preparar para construção o sistema temporário. Nós criaremos um - conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) para - reduzir risco; e criaremos um ambiente apropriado de construção para - aquela(e) usuária(o). Nós também explicaremos a unidade de tempo que - usamos para medir quanto tempo pacotes de LFS levam para construir, ou - “SBUsâ€, e daremos alguma informação acerca de suítes de teste de - pacote. - -4.2. Criando um layout limitado de diretório em sistema de arquivos de LFS - - A primeira tarefa realizada na partição LFS é a de criar uma hierarquia - limitada de diretório de forma que aplicativos compilados em - [516]Capítulo 6 (bem como glibc e libstdc++ em [517]Capítulo 5) possam - ser instalados no local final deles. Isso é necessário de maneira que - aqueles aplicativos temporários sejam sobrescritos quando - reconstruí-los em [518]Capítulo 8. - - Crie o layout exigido de diretório executando o seguinte como root: -mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} - -for i in bin lib sbin; do - ln -sv usr/$i $LFS/$i -done - -case $(uname -m) in - x86_64) mkdir -pv $LFS/lib64 ;; -esac - - Aplicativos em [519]Capítulo 6 serão compilados com um compilador - cruzado (mais detalhes na seção [520]Notas Técnicas do Conjunto de - Ferramentas). Com a finalidade de separar esse compilador cruzado de - outros aplicativos, ele será instalado em um diretório especial. Crie - esse diretório com: -mkdir -pv $LFS/tools - -4.3. Adicionando a(o) Usuária(o) LFS - - Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos próximos - dois capítulos são construídos como uma(m) usuária(o) sem privilégios. - Você poderia usar seu próprio nome de usuária(o), mas para facilitar a - configuração de um ambiente de trabalho limpo, crie uma(m) nova(o) - usuária(o) chamada(o) lfs como um membro de um novo grupo (também - chamado lfs) e use essa(e) usuária(o) durante o processo de instalação. - Como root, emita os seguintes comandos para adicionar a(o) nova(o) - usuária(o): -groupadd lfs -useradd -s /bin/bash -g lfs -m -k /dev/null lfs - - O significado das opções de linha de comando: - - -s /bin/bash - Isso torna bash o interpretador de comandos padrão para a(o) - usuária(o) lfs. - - -g lfs - Essa opção adiciona usuária(o) lfs ao grupo lfs. - - -m - Isso cria um diretório home para lfs. - - -k /dev/null - Esse parâmetro previne possível cópia de arquivos a partir de um - diretório esqueleto (padrão é /etc/skel) mudando a localização - de entrada para o dispositivo especial null. - - lfs - Esse é o nome atual para a(o) usuária(o) criada(o). - - Para se logar como lfs (em oposição a mudar para a(o) usuária(o) lfs - quando logada(o) como root, que não exige que a(o) usuária(o) lfs tenha - uma senha), dê a lfs uma senha: -passwd lfs - - Conceda a lfs acesso total a todos os diretórios sob $LFS tornando lfs - a(o) dona(o) do diretório: -chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -v lfs $LFS/lib64 ;; -esac - - Se um diretório de trabalho separado foi criado como sugerido, então dê - à(ao) usuária(o) lfs a propriedade desse diretório: -chown -v lfs $LFS/sources - -Nota - - Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs para o - segundo plano. Se o prompt "lfs:~$" não aparecer imediatamente, então - emitir o comando fg corrigirá o problema. - - Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um - console virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -su - lfs - - O “-†instrui su a iniciar um shell de login em vez de um shell de - não-login. A diferença entre esses dois tipos de shells pode ser - encontrada em detalhes em bash(1) e info bash. - -4.4. Configurando o Ambiente - - Configure um bom ambiente de trabalho criando dois novos arquivos de - inicialização para o shell bash. Enquanto logada(o) como usuária(o) - lfs, emita o seguinte comando para criar um novo .bash_profile: -cat > ~/.bash_profile << "EOF" -exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash -EOF - - Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um - shell de login que lê o /etc/profile do anfitrião (provavelmente - contendo algumas configurações e variáveis de ambiente) e então - .bash_profile. O comando exec env -i.../bin/bash no arquivo - .bash_profile substitui o shell em execução por um novo com um ambiente - completamente vazio, exceto pelas variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e potencialmente - danosa oriunda do sistema anfitrião vaze para o ambiente de construção. - A técnica usada aqui alcança o objetivo de assegurar um ambiente limpo. - - A nova instância do shell é um shell de não-login, que não lê, e - executa, o conteúdo dos arquivos /etc/profile ou .bash_profile, porém, - ao invés, lê, e executa, o arquivo .bashrc. Crie o arquivo .bashrc - agora: -cat > ~/.bashrc << "EOF" -set +h -umask 022 -LFS=/mnt/lfs -LC_ALL=POSIX -LFS_TGT=$(uname -m)-lfs-linux-gnu -PATH=/usr/bin -if [ ! -L /bin ]; then PATH=/bin:$PATH; fi -PATH=$LFS/tools/bin:$PATH -CONFIG_SITE=$LFS/usr/share/config.site -export LFS LC_ALL LFS_TGT PATH CONFIG_SITE -EOF - - O significado das configurações em .bashrc - - set +h - O comando set +h desliga a função hash do bash. “Hashing†- geralmente é uma característica útil—bash usa uma tabela hash - para lembrar o caminho completo de arquivos executáveis para - evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser usadas - tão logo sejam instaladas. Desativando a função hash, o shell - sempre vai procurar no PATH quando um aplicativo estiver para - ser executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo aplicativo - fornecida pela distribuição anfitriã, em /usr/bin ou /bin. - - umask 022 - Configurar a máscara de criação de arquivos da(o) usuária(o) - (umask) para 022 garante que recém criados arquivos e diretórios - são graváveis somente por suas(eus) donas(os), mas são legíveis - e executáveis por qualquer pessoa (assumindo que os modos padrão - são usados pelas chamadas de sistema open(2), novos arquivos - terminarão com modo de permissão 644 e diretórios com modo 755). - - LFS=/mnt/lfs - A variável LFS deveria ser configurada para o ponto de montagem - escolhido. - - LC_ALL=POSIX - A variável LC_ALL controla a localização de certos aplicativos, - fazendo suas mensagens seguirem as convenções de um país - especificado. Configurar LC_ALL para “POSIX†ou “C†(as duas são - equivalentes) garante que tudo vai funcionar como esperado - dentro do ambiente chroot. - - LFS_TGT=(uname -m)-lfs-linux-gnu - A variável LFS_TGT configura uma não padrão, porém compatível - descrição de máquina para uso quando da construção do nosso - compilador cruzado e vinculador e quando da compilação cruzada - do nosso conjunto de ferramentas temporárias. Mais informação - está contida em [521]Notas Técnicas do Conjunto de Ferramentas. - - PATH=/usr/bin - Muitas distribuições modernas de Linux mesclaram /bin e - /usr/bin. Quando esse for o caso, a variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - [522]Capítulo 6. Quando esse não for o caso, a seguinte linha - adiciona /bin ao caminho. - - if [ ! -L /bin ]; then PATH=/bin:$PATH; fi - Se /bin não for um link simbólico, então ele tem de ser - adicionado à variável PATH. - - PATH=$LFS/tools/bin:$PATH - Ao se colocar $LFS/tools/bin a frente do PATH padrão, o - compilador cruzado instalado no início de [523]Capítulo 5 é - imediatamente pego pelo shell após sua instalação. Isso, - combinado com a desativação do hashing, limita o risco de que o - compilador originário do anfitrião seja usado em vez do - compilador cruzado. - - CONFIG_SITE=$LFS/usr/share/config.site - Em [524]Capítulo 5 e [525]Capítulo 6, se essa variável não - estiver configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial contaminação - oriunda do anfitrião. - - export ... - Ao tempo que os comandos acima configuraram algumas variáveis, - com a finalidade de torná-las visíveis dentro de quaisquer - sub-shells, nós as exportamos. - -Importante - - Muitas distribuições comerciais adicionam uma instância não documentada - de /etc/bash.bashrc à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) lfs de formas que - podem afetar a construção de pacotes LFS críticos. Para assegurar que o - ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se presente, mova-o para fora do caminho. Como a(o) - usuária(o) root, execute: -[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE - - Após o uso da(o) usuária(o) lfs for finalizado no início de - [526]Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). - - Perceba que o pacote Bash de LFS que nós construiremos em - [527]Seção 8.34, “Bash-5.1.16†não é configurado para carregar ou - executar /etc/bash.bashrc, de modo que esse arquivo é inútil em um - sistema LFS completo. - - Finalmente, para ter o ambiente totalmente preparado para construção - das ferramentas temporárias, carregue o recém criado perfil de - usuária(o): -source ~/.bash_profile - -4.5. Sobre UPCs - - Muitas pessoas gostariam de saber de antemão aproximadamente quanto - tempo leva para compilar e instalar cada pacote. Devido a Linux From - Scratch poder ser construído em muitos sistemas, é impossível fornecer - estimativas de tempo precisas. O maior pacote (Glibc) levará - aproximadamente vinte (20) minutos em sistemas mais rápidos, mas - poderia levar até três (03) dias em sistemas mais lentos! Em vez de - fornecer tempos atuais, a medida Unidade Padrão de Construção (UPC) - será usada. - - A medida UPC funciona como segue. O primeiro pacote a ser compilado - neste livro é binutils em [528]Capítulo 5. O tempo necessário para - compilar esse pacote é que será referenciado como a Unidade Padrão de - Construção ou UPC. Todos os outros tempos de compilação serão expressos - relativamente a esse tempo. - - Por exemplo, considere um pacote cujo tempo de compilação é quatro e - meio (4,5) UPCs. Isso significa que, se um sistema precisou de dez (10) - minutos para compilar e instalar a primeira passagem de binutils, então - será necessário aproximadamente quarenta e cinco (45) minutos para - construir esse pacote de exemplo. Felizmente, a maioria dos tempos de - construção é menor que o tempo para binutils. - - Em geral, UPCs não são totalmente precisas, pois dependem de muitos - fatores, incluindo a versão de GCC do sistema anfitrião. Elas são - fornecidas aqui para dar uma estimativa de quanto tempo pode levar para - instalar um pacote, mas os números podem variar tanto quanto dúzias de - minutos em alguns casos. - -Nota - - Para muitos sistemas modernos com múltiplos processadores (ou cores) o - tempo de compilação para um pacote pode ser reduzido realizando um - “parallel makeâ€, seja configurando uma variável de ambiente; ou dizendo - para o aplicativo make quantos processadores estão disponíveis. Por - exemplo, uma CPU Intel i5-6500 pode suportar quatro processos - simultâneos com: -export MAKEFLAGS='-j4' - - ou somente construindo com: -make -j4 - - Quando múltiplos processadores são usados dessa maneira, as unidades - UPC no livro irão variar ainda mais do que normalmente aconteceria. Em - alguns casos, o passo make simplesmente falhará. Analisar a saída dos - processos de construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um problema - com um passo de construção, então retorne para uma construção de - processador único para analisar adequadamente as mensagens de erro. - -4.6. Sobre as Suítes de Teste - - A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte de - teste para um pacote recém construído é uma boa ideia, pois pode - fornecer uma “verificação de sanidade†indicando que tudo compilou - corretamente. Uma suíte de teste que executa seu conjunto de - verificações geralmente prova que o pacote está funcionando como a(o) - desenvolvedora(r) pretendia. Entretanto isso não garante que o pacote - está totalmente livre de defeitos. - - Algumas suítes de teste são mais importantes que outras. Por exemplo, - as suítes de teste para o conjunto de ferramentas central—GCC, - binutils, e glibc—são de máxima importância devido a seu papel central - em um sistema que funcione adequadamente. As suítes de teste para GCC e - glibc podem levar bastante tempo para completarem, especialmente em uma - máquina lenta, mas são fortemente recomendadas. - -Nota - - Executar as suítes de teste em [529]Capítulo 5 e [530]Capítulo 6 é - impossível, dado que os aplicativos são compilados com um compilador - cruzado, de forma que não se supõe que sejam aptos a executar no - anfitrião de construção. - - Um problema comum com a execução de suítes de teste para binutils e GCC - é ficar sem pseudo terminais (PTYs). Isso pode resultar em um alto - número de testes com falhas. Isso pode acontecer por muitas razões, mas - a causa mais provável é que o sistema anfitrião não tem o sistema de - arquivos devpts configurado corretamente. Esse problema é discutido em - maiores detalhes em - [531]https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. - - Algumas vezes suítes de testes de pacotes falharão, mas por razões as - quais as(os) desenvolvedoras(es) estão cientes e consideraram - não-críticas. Consulte os registros localizados em - [532]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ para - verificar quando essas falhas são esperadas ou não. Esse site é válido - para todos os testes ao longo deste livro. - -Parte III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e -Ferramentas Temporárias - -Material Preliminar Importante - -Introdução - - Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar esse - conjunto de ferramentas cruzado para construir vários utilitários de - uma forma que os isola da distribuição anfitriã; terceiro, entrar no - ambiente chroot, o qual melhora ainda mais o isolamento do anfitrião, e - construir as ferramentas restantes necessárias para construir o sistema - final. - -Importante - - Com esta parte inicia o trabalho real de construir um novo sistema. - Exige muito cuidado em assegurar que as instruções sejam seguidas - exatamente conforme o livro as mostra. Você deveria tentar entender o - que elas fazem, e qualquer que seja sua ânsia para finalizar sua - construção, você deveria evitar digitá-las cegamente como mostrado, mas - ler documentação quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as para um - arquivo, usando o utilitário tee. Isso permite um melhor diagnóstico se - algo der errado. - - A próxima seção dá uma introdução técnica ao processo de construção, - enquanto que a seguinte contém instruções gerais muito importantes. - -Notas Técnicas do Conjunto de Ferramentas - - Esta seção explana algumas das razões e detalhes técnicos por trás do - método completo de construção. Não é essencial entender imediatamente - tudo nesta seção. A maior parte desta informação ficará mais clara após - executar uma construção atual. Esta seção pode e deve ser consultada a - qualquer momento durante o processo. - - O objetivo geral do [533]Capítulo 5 e do [534]Capítulo 6 é o de - produzir uma área temporária que contém um conjunto reconhecidamente - bom de ferramentas que pode ser isolado do sistema anfitrião. Usando-se - chroot, os comandos nos capítulos subsequentes estarão confinados - naquele ambiente, assegurando uma construção limpa e livre de problemas - do sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior valor - educacional ao mesmo tempo. - - O processo de construção é baseado no processo de compilação cruzada. A - compilação cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela que é - usada para a construção. Isso não é estritamente necessário para LFS, - dado que a máquina onde o novo sistema executará é a mesma usada para a - construção. Porém, a compilação cruzada tem a grande vantagem de que - tudo o que é compilado cruzadamente não pode depender do ambiente do - anfitrião. - -Acerca da Compilação Cruzada - -Nota - - O livro LFS não é, e não contém, um tutorial geral para construir um - conjunto de ferramentas cruzado (ou nativo). Não use os comandos no - livro para um conjunto de ferramentas cruzado o qual será usado para - algum outro propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. - - Compilação cruzada envolve alguns conceitos que merecem uma seção por - si próprios. Apesar que esta seção pode ser omitida em uma primeira - leitura, retornar até ela mais tarde será benéfico para o seu completo - entendimento do processo. - - Permita-nos primeiro definir alguns termos usados nesse contexto - - build - é a máquina onde nós construímos aplicativos. Note que essa - máquina é referenciada como sendo a “anfitriã†em outras seções. - - host - é a máquina/sistema onde os aplicativos construídos executarão. - Note que esse uso de “host†não é o mesmo que o uso em outras - seções. - - target - é usado apenas para compiladores. Ele é a máquina para a qual o - compilador produz código. Ele pode ser diferente de ambos build - e host. - - Como um exemplo, permita-nos imaginar o seguinte cenário (as vezes - rotulado de “Cruzado Canadenseâ€): nós podemos ter um compilador somente - em uma máquina lenta, vamos rotulá-la de “máquina Aâ€, e o compilador de - “ccAâ€. Nós também podemos ter uma máquina rápida (B), porém sem - compilador, e nós eventualmente desejamos produzir código para outra - máquina lenta (C). Para construir um compilador para a máquina “Câ€, nós - teríamos três estágios: - Estágio Build Host Target Ação - 1 A A B construir compilador cruzado cc1 usando ccA na máquina A - 2 A B C construir compilador cruzado cc2 usando cc1 na máquina A - 3 B C C construir compilador ccC usando cc2 na máquina B - - Então, todos os outros programas necessários para a máquina C podem ser - compilados usando cc2 na rápida máquina B. Note que a menos que B possa - executar aplicativos produzidos por C, não existe maneira de testar os - aplicativos construídos até que a própria máquina C esteja em execução. - Por exemplo, para testar ccC, nós eventualmente desejamos adicionar um - quarto estágio: - Estágio Build Host Target Ação - 4 C C C reconstruir e testar ccC usando o próprio na máquina C - - No exemplo acima, somente cc1 e cc2 são compiladores cruzados, isto é, - eles produzem código para uma máquina diferente daquela na qual estão - sendo executados. Tais compiladores são rotulados de compiladores - nativos. - -Implementação de Compilação Cruzada para LFS - -Nota - - Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um leitor atento - eventualmente questionará porque um “trio†rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes de - componente eram suficientes para designar uma máquina inequivocamente, - porém com novas máquinas e sistemas aparecendo, isso se provou - insuficiente. A palavra “trio†subsistiu. Uma maneira simples de - determinar seu trio de máquina é executar o script config.guess que vem - com o fonte para muitos pacotes. Desempacote os fontes do pacote - “binutils†e execute o script: ./config.guess e observe a saída. Por - exemplo, para um processador Intel de 32-bits, a saída será - i686-pc-linux-gnu. Em um sistema de 64-bits, a saída será - x86_64-pc-linux-gnu. - - Esteja também ciente do nome do vinculador dinâmico da plataforma, - frequentemente rotulado de carregador dinâmico (não confundir com o - vinculador padrão ld o qual é parte do pacote “binutilsâ€). O vinculador - dinâmico provido por Glibc encontra e carrega as bibliotecas - compartilhadas necessárias para um aplicativo, prepara o aplicativo - para execução, e então o executa. O nome do vinculador dinâmico para - uma máquina Intel de 32-bits é ld-linux.so.2 e é ld-linux-x86-64.so.2 - para sistemas 64-bits. Uma maneira infalível de determinar o nome do - vinculador dinâmico é inspecionar uma biblioteca aleatória do sistema - anfitrião executando: readelf -l | grep interpreter e - observando a saída. A referência oficial cobrindo todas as plataformas - está no arquivo shlib-versions na raiz da árvore do fonte do Glibc. - - Para falsificar uma compilação cruzada em LFS, o nome do trio do - anfitrião é ligeiramente ajustado modificando-se o campo "vendor" na - variável LFS_TGT. Nós também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado para - informá-los onde encontrar os necessários arquivos do anfitrião. Isso - assegura que nenhum dos outros aplicativos construídos em - [535]Capítulo 6 pode se vincular a bibliotecas na máquina de - construção. Somente dois estágios são obrigatórios, e mais um para - testes: - Estágio Build Host Target Ação - 1 pc pc lfs construir compilador cruzado cc1 usando cc-pc em pc - 2 pc lfs lfs construir compilador cc-lfs usando cc1 em pc - 3 lfs lfs lfs reconstruir e testar cc-lfs usando o próprio em lfs - - Na tabela acima, “em pc†significa que os comandos são executados em - uma máquina usando a distribuição já instalada. “Em lfs†significa que - os comandos são executados dentro de um ambiente enjaulado. - - Agora, existe mais acerca de compilação cruzada: a linguagem C não é - apenas um compilador, mas também define uma biblioteca padrão. Neste - livro, a biblioteca GNU C, rotulada de “glibcâ€, é usada. Essa - biblioteca deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma biblioteca - interna implementando complexas instruções não disponíveis no conjunto - de instruções do montador. Essa biblioteca interna é rotulada de - “libgccâ€, e deve ser vinculada à biblioteca “glibc†para ser - completamente funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à “glibcâ€. A solução para - esse problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades tais como - camadas e manipulação de exceções, então construir glibc usando esse - compilador degradado (o próprio glibc não degradado), então construir - libstdc++. Porém, nessa última biblioteca faltarão as mesmas - funcionalidades que libgcc. - - Esse não é o fim da história: a conclusão do parágrafo precedente é a - de que cc1 é incapaz de construir uma libstdc++ completamente - funcional, porém esse é o único compilador disponível para construir as - bibliotecas C/C++ durante o estágio 2! Certamente, o compilador - construído durante o estágio 2, cc-lfs, seria capaz de construir - aquelas bibliotecas, porém (1) o sistema de construção do GCC não sabe - que está utilizável em pc; e (2) usá-lo em pc estaria sob o risco de - vinculamento às bibliotecas de pc, dado que cc-lfs é um compilador - nativo. Assim, nós temos de construir libstdc++ mais tarde, em jaula. - -Outros detalhes procedurais - - O compilador cruzado será instalado em um diretório $LFS/tools - separado, dado que ele não será parte do sistema final. - - Binutils é instalado primeiro, pois a execução de configure de ambos - GCC e Glibc executa vários testes de características no montador e no - vinculador para determinar quais características de software habilitar - ou desabilitar. Isso é mais importante do que, inicialmente, alguém - possa perceber. Um GCC ou Glibc configurado incorretamente pode - resultar em um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do final da - construção de uma distribuição inteira. Uma falha de teste de suíte - normalmente destacará tal erro antes que muito mais trabalho adicional - seja realizado. - - O Binutils instala o montador e o vinculador dele em dois locais, - $LFS/tools/bin e $LFS/tools/$LFS_TGT/bin. As ferramentas em uma - localização são rigidamente vinculadas à outra. Uma faceta importante - do vinculador é a ordem de procura de biblioteca dele. Informações - detalhadas podem ser obtidas de ld passando a flag --verbose. Por - exemplo, $LFS_TGT-ld --verbose | grep SEARCH exibirá os caminhos atuais - de procura e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela compilação de um aplicativo fictício e passagem do - modificador --verbose ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c - -Wl,--verbose 2>&1 | grep succeeded exibirá todos os arquivos abertos - com sucesso durante o vinculamento. - - O próximo pacote instalado é o GCC. Um exemplo do que pode ser visto - durante a execução dele de configure é: -checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as -checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld - - Isso é importante pelas razões mencionadas acima. Também demonstra que - o script de configuração do GCC não busca os diretórios do PATH para - encontrar quais ferramentas usar. Entretanto, durante a operação atual - do próprio gcc, os mesmos caminhos de busca não são necessariamente - usados. Para descobrir qual vinculador padrão gcc usará, execute: - $LFS_TGT-gcc -print-prog-name=ld. - - Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v durante a compilação de um aplicativo fictício. Por - exemplo, gcc -v dummy.c exibirá informação detalhada acerca do - preprocessador, compilação e estágios da montagem, incluindo os - caminhos de busca incluídos do gcc e a ordem deles. - - Os próximos instalados são os cabeçalhos sanitizados da API do Linux. - Eles permitem a interface da biblioteca C padrão (Glibc) com - características que o kernel Linux proverá. - - O próximo pacote instalado é Glibc. As considerações mais importantes - para a construção do Glibc são o compilador, ferramentas binárias e os - cabeçalhos do kernel. O compilador geralmente não é um problema dado - que Glibc sempre usará o compilador relacionado ao parâmetro --host - passado ao script de configuração dele; por exemplo, em nosso caso, o - compilador será $LFS_TGT-gcc. As ferramentas binárias e os cabeçalhos - do kernel podem ser um bocado mais complicados. Dessa maneira, nós não - nos arriscamos e usamos os modificadores de configuração disponíveis - para forçar as seleções corretas. Após a execução de configure, - verifique o conteúdo do arquivo config.make no diretório build para - todos os detalhes importantes. Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar quais ferramentas binárias são - usadas e o uso das flags -nostdinc e -isystem para controlar o caminho - de busca incluído do compilador. Esses itens destacam um importante - aspecto do pacote Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões de - conjuntos de ferramentas. - - Como dito acima, a biblioteca C++ padrão é compilada depois, seguida em - [536]Capítulo 6 por todos os aplicativos que necessitam deles próprios - para serem construídos. O passo de instalação de todos aqueles pacotes - usa os aplicativos instalados no sistema de arquivos do LFS. - - Ao final do [537]Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação DESTDIR - como os outros programas, então a segunda passagem de GCC é construída, - omitindo libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, CC_FOR_TARGET - termina como cc quando o host for o mesmo que o target, porém for - diferente do sistema de construção. Essa é a razão pela qual - CC_FOR_TARGET=$LFS_TGT-gcc é colocado explicitamente nas opções de - configuração. - - Uma vez dentro do ambiente chroot no [538]Capítulo 7, a primeira tarefa - é instalar libstdc++. Então instalações temporárias de programas - necessários para a operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de ferramentas - está autocontido e auto-hospedado. No [539]Capítulo 8, as versões - finais de todos os pacotes necessários para um sistema completamente - funcional são construídos, testados e instalados. - -Instruções Gerais de Compilação - - Quando da construção de pacotes existem várias suposições feitas dentro - das instruções: - * Vários dos pacotes recebem patches antes da compilação, mas apenas - quando o patch é necessário para evitar um problema. Um patch - frequentemente é necessário tanto neste quanto nos seguintes - capítulos, mas algumas vezes em apenas uma localização. Portanto, - não se preocupe se as instruções para um patch baixado pareçam - estar faltando. Mensagens de alerta acerca de offset ou fuzz também - talvez sejam encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi aplicado - com sucesso. - * Durante a compilação da maior parte dos pacotes, existirão vários - alertas que rolarão na tela. Esses são normais e seguramente podem - ser ignorados. Esses alertas são o que parecem—alertas acerca de - uso de sintaxe C ou C++ obsoleta, mas não inválida. Padrões C mudam - com ampla frequência, e alguns pacotes ainda usam o padrão antigo. - Isso não é um problema, mas gera o alerta. - * Verifique uma última vez que a variável de ambiente LFS está - configurada adequadamente: -echo $LFS - Certifique-se de que a saída mostra o caminho para o ponto de - montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. - * Finalmente, dois itens importantes devem ser enfatizados: - -Importante - As instruções de construção assumem que as [540]Exigências do - Sistema Anfitrião, incluindo links simbólicos, foram configuradas - adequadamente: - + bash é o shell em uso. - + sh é um link simbólico para bash. - + /usr/bin/awk é um link simbólico para gawk. - + /usr/bin/yacc é um link simbólico para bison ou um script - pequeno que executa bison. - -Importante - Para reenfatizar o processo de construção: - 1. Coloque todos os pacotes e patches em um diretório que estará - acessível a partir do ambiente chroot, tal como - /mnt/lfs/sources/. - 2. Mude para o diretório dos fontes. - 3. Para cada pacote: - 1. Usando o aplicativo tar, extraia o pacote para ser - construído. Em [541]Capítulo 5 e [542]Capítulo 6, - certifique-se de que você seja a(o) usuária(o) lfs quando - extrair o pacote. - Todos os métodos para obter a árvore de código fonte - sendo construído em-posição, exceto extrair o tarball de - pacote, não são suportados. Notadamente, usar cp -R para - copiar a árvore de código fonte para outro lugar pode - destruir links e marcas temporais na árvore de fontes e - causar falha de construção. - 2. Mude para o diretório criado quando o pacote foi - extraído. - 3. Siga as instruções do livro para construir o pacote. - 4. Mude de volta para o diretório de fontes. - 5. Delete o diretório de fonte extraído a menos que - instruído o contrário. - -Capítulo 5. Compilando um Conjunto de Ferramentas Cruzado - -5.1. Introdução - - Este capítulo mostra como construir um compilador cruzado e suas - ferramentas associadas. Apesar de aqui a compilação cruzada ser - falseada, os princípios são os mesmos que aqueles para um conjunto de - ferramentas cruzado real. - - Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para mantê-los separados dos arquivos instalados - nos capítulos seguintes. As bibliotecas, por outro lado, são instaladas - em seus locais finais, dado que elas pertencem ao sistema que queremos - construir. - -5.2. Binutils-2.38 - Passagem 1 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1 UPC - Espaço em disco exigido: 620 MB - -5.2.1. Instalação de Binutils Cruzado - -Nota - - Volte e releia as notas na seção intitulada [543]Instruções Gerais de - Compilação. Entender as notas rotuladas como importante pode salvar - você de um monte de problemas depois. - - É importante que Binutils seja o primeiro pacote compilado, pois ambos - Glibc e GCC realizam vários testes sobre o vinculador e montador - disponíveis para determinar quais de suas próprias características - habilitar. - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - -Nota - - Com a finalidade de que os valores de UPC listados no resto do livro - sejam de qualquer uso, meça o tempo que leva para construir este pacote - desde a configuração até e incluindo a primeira instalação. Para fazer - isso facilmente, encapsule os comandos em um time desta forma: time { - ../configure ... && make && make install; }. - - Agora prepare Binutils para compilação: -../configure --prefix=$LFS/tools \ - --with-sysroot=$LFS \ - --target=$LFS_TGT \ - --disable-nls \ - --disable-werror - - O significado das opções do configure: - - --prefix=$LFS/tools - Isso diz para o script configure para preparar para instalar os - aplicativos de binutils no diretório $LFS/tools. - - --with-sysroot=$LFS - Para compilação cruzada, isso diz ao sistema de construção para - procurar em $LFS pelas bibliotecas alvo de sistema conforme - necessário. - - --target=$LFS_TGT - Por causa da descrição de máquina na variável LFS_TGT ser - ligeiramente diferente do valor retornado pelo script - config.guess, essa chave dirá ao script configure para ajustar o - sistema de construção do binutils para construir um vinculador - cruzado. - - --disable-nls - Isso desabilita internacionalização, uma vez que i18n não é - necessária para as ferramentas temporárias. - - --disable-werror - Isso evita que a construção pare no caso de existirem alertas - originários do compilador do anfitrião. - - Continue compilando o pacote: -make - - Instale o pacote: -make install - - Detalhes deste pacote estão localizados em [544]Seção 8.18.2, “Conteúdo - de Binutils.†- -5.3. GCC-11.2.0 - Passagem 1 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -5.3.1. Instalação de GCC Cruzado - - GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses pacotes talvez - não estejam incluídos na sua distribuição anfitriã, eles serão - construídos com GCC. Desempacote cada pacote dentro do diretório de - fonte de GCC e renomeie os diretórios resultantes de forma que os - procedimentos de construção de GCC automaticamente os usarão: - -Nota - - Existem mal-entendidos frequentes sobre este capítulo. Os procedimentos - são os mesmos que todos os outros capítulos explicados anteriormente - ([545]Instruções de construção de pacote). Primeiro extraia o tarball - de gcc a partir do diretório de fontes e então mude para o diretório - criado. Somente então deveria você prosseguir com as instruções abaixo. -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Em anfitriões x86_64, configure o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure \ - --target=$LFS_TGT \ - --prefix=$LFS/tools \ - --with-glibc-version=2.35 \ - --with-sysroot=$LFS \ - --with-newlib \ - --without-headers \ - --enable-initfini-array \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - --disable-decimal-float \ - --disable-threads \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das opções de configure: - - --with-glibc-version=2.35 - Essa opção especifica a versão de glibc a qual será usada no - alvo. Ela não é relevante para a libc da distro anfitriã, pois - tudo compilado por gcc passagem 1 executará no ambiente chroot, - o qual é isolado de libc da distro anfitriã. - - --with-newlib - Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc esteja - definida quando da construção de libgcc. Isso evita a compilação - de qualquer código que exija suporte de libc. - - --without-headers - Quando da criação de um compilador cruzado completo, GCC exige - cabeçalhos padrão compatíveis com o sistema alvo. Para nossos - propósitos esses cabeçalhos não serão necessários. Essa chave - evita que GCC procure por eles. - - --enable-initfini-array - Essa chave força o uso de algumas estruturas internas de dados - que são necessárias, porém não podem ser detectadas quando da - construção de um compilador cruzado. - - --disable-shared - Essa chave força GCC a vincular suas bibliotecas internas - estaticamente. Nós precisamos disso, pois as bibliotecas - compartilhadas exigem glibc, que ainda não está instalado no - sistema alvo. - - --disable-multilib - Em x86_64, LFS não suporta uma configuração multilib. Essa chave - é inofensiva para x86. - - --disable-decimal-float, --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, --disable-libssp, - --disable-libvtv, --disable-libstdcxx - Essas chaves desabilitam suporte para a extensão de ponto - flutuante decimal, threading, libatomic, libgomp, libquadmath, - libssp, libvtv, e a biblioteca padrão C++ respectivamente. Essas - características falharão na compilação quando da construção de - um compilador cruzado e não são necessárias para a tarefa de - compilar cruzadamente a libc temporária. - - --enable-languages=c,c++ - Essa opção garante que apenas os compiladores C e C++ sejam - construídos. Essas são as únicas linguagens necessárias agora. - - Compile GCC executando: -make - - Instale o pacote: -make install - - Essa construção de GCC instalou um par de cabeçalhos internos de - sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema correspondente, nesse caso, - $LFS/usr/include/limits.h. Entretanto, ao tempo dessa construção de - GCC, $LFS/usr/include/limits.h não existe, de forma que o cabeçalho - interno recém instalado é um arquivo parcial, autocontido, e não inclui - as características estendidas do cabeçalho de sistema. Isso é adequado - para a construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho interno - usando um comando que é idêntico ao que o sistema de construção de GCC - faz em circunstâncias normais: -cd .. -cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ - `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits -.h - - Detalhes acerca deste pacote estão localizados em [546]Seção 8.26.2, - “Conteúdo de GCC.†- -5.4. Cabeçalhos da API do Linux-5.16.9 - - Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem a API do - kernel para uso por Glibc. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 1,2 GB - -5.4.1. Instalação dos Cabeçalhos da API do Linux - - O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em LFS) usar. - Isso é feito por meio de sanitizar vários arquivos de cabeçalho C que - são incluídos no tarball de fonte de kernel Linux. - - Certifique-se de que não existem arquivos obsoletos embutidos no - pacote: -make mrproper - - Agora extraia os cabeçalhos de kernel visíveis ao usuário a partir do - fonte. O alvo recomendado de make “headers_install†não pode ser usado, - pois ele exige rsync, que talvez não esteja disponível. Os cabeçalhos - são primeiro colocados em ./usr, então copiados para a localização - necessária. -make headers -find usr/include -name '.*' -delete -rm usr/include/Makefile -cp -rv usr/include $LFS/usr - -5.4.2. Conteúdo dos Cabeçalhos da API do Linux - - Cabeçalhos instalados: /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, /usr/include/mtd/*.h, - /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h - Diretórios instalados: /usr/include/asm, /usr/include/asm-generic, - /usr/include/drm, /usr/include/linux, /usr/include/misc, - /usr/include/mtd, /usr/include/rdma, /usr/include/scsi, - /usr/include/sound, /usr/include/video, and /usr/include/xen - -Descrições Curtas - - /usr/include/asm/*.h - - Os Cabeçalhos API ASM Linux - - /usr/include/asm-generic/*.h - - Os Cabeçalhos Genéricos API ASM Linux - - /usr/include/drm/*.h - - Os Cabeçalhos API DRM Linux - - /usr/include/linux/*.h - - Os Cabeçalhos Linux API Linux - - /usr/include/misc/*.h - - Os Cabeçalhos Miscelâneas API Linux - - /usr/include/mtd/*.h - - Os Cabeçalhos API MTD Linux - - /usr/include/rdma/*.h - - Os Cabeçalhos API RDMA Linux - - /usr/include/scsi/*.h - - Os Cabeçalhos API SCSI Linux - - /usr/include/sound/*.h - - Os Cabeçalhos de Som API Linux - - /usr/include/video/*.h - - Os Cabeçalhos de Vídeo API Linux - - /usr/include/xen/*.h - - Os Cabeçalhos Xen API Linux - -5.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 818 MB - -5.5.1. Instalação de Glibc - - Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de compatibilidade - exigido para a operação adequada do carregador dinâmico de biblioteca: -case $(uname -m) in - i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 - ;; - x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64 - ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3 - ;; -esac - -Nota - - O comando acima está correto. O comando ln tem umas poucas versões - sintáticas, de forma que tenha certeza de verificar info coreutils ln e - ln(1) antes de relatar o que você talvez pense que seja um erro. - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - A seguir, prepare Glibc para compilação: -../configure \ - --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(../scripts/config.guess) \ - --enable-kernel=3.2 \ - --with-headers=$LFS/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --host=$LFS_TGT, --build=$(../scripts/config.guess) - O efeito combinado dessas chaves é o de que o sistema de - construção do Glibc se autoconfigura para ser compilado - cruzadamente, usando o vinculador cruzado e compilador cruzado - em $LFS/tools. - - --enable-kernel=3.2 - Isso diz a Glibc para compilar a biblioteca com suporte para - kernels Linux 3.2 e posteriores. Contornos para kernels antigos - não estão habilitados. - - --with-headers=$LFS/usr/include - Isso diz a Glibc para compilar a si mesmo com os cabeçalhos - recentemente instalados no diretório $LFS/usr/include, de forma - que ele saiba exatamente quais características o kernel tem e - possa otimizar-se adequadamente. - - libc_cv_slibdir=/usr/lib - Isso garante que a biblioteca seja instalada em /usr/lib em vez - do padrão /lib64 em máquinas de 64 bits. - - Durante este estágio o seguinte alerta pode aparecer: - -configure: WARNING: -*** These auxiliary programs are missing or -*** incompatible versions: msgfmt -*** some features will be disabled. -*** Check the INSTALL file for required versions. - - O aplicativo msgfmt faltando ou incompatível geralmente é inofensivo. - Esse aplicativo msgfmt é parte do pacote Gettext que a distribuição - anfitriã deveria fornecer. - -Nota - - Tem havido relatos de que esse pacote talvez falhe quando da construção - como um "parallel make". Se isso ocorrer, então reexecute o comando - make com uma opção "-j1". - - Compile o pacote: -make - - Instale o pacote: - -Atenção - - Se LFS não estiver adequadamente configurada, e a despeito das - recomendações, você estiver construindo como root, então o próximo - comando instalará a recém construída glibc em seu sistema anfitrião, o - que possivelmente o tornará inutilizável. Portanto, verifique duas - vezes se o ambiente está corretamente configurado, antes de executar o - seguinte comando. -make DESTDIR=$LFS install - - O significado da opção make install: - - DESTDIR=$LFS - A variável DESTDIR de make é usada por quase todos os pacotes - para definir a localização onde o pacote deveria ser instalado. - Se ela não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós especificamos que o pacote seja instalado em - $LFS, que se tornará a raiz após [547]Seção 7.4, “Entrando no - Ambiente Chrootâ€. - - Corrija caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd - -Cuidado - - Neste ponto, é imperativo parar e certificar-se de que as funções - básicas (compilar e lincar) do novo conjunto de ferramentas estão - funcionando como esperado. Para realizar uma verificação de sanidade, - execute os seguintes comandos: -echo 'int main(){}' > dummy.c -$LFS_TGT-gcc dummy.c -readelf -l a.out | grep '/ld-linux' - - Se tudo estiver funcionando corretamente, então não deveriam existir - quaisquer erros, e a saída do último comando será na forma: -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Note que para máquinas de 32 bits, o nome do interpretador será - /lib/ld-linux.so.2. - - Se a saída não for mostrada como acima ou não existir saída nenhuma, - então alguma coisa está errada. Investigue e retrace os passos para - encontrar onde está o problema e corrija-o. Esse problema deve ser - resolvido antes de continuar. - - Uma vez que tudo esteja bem, limpe os arquivos de teste: -rm -v dummy.c a.out - -Nota - - Construir pacotes no próximo capítulo servirá como uma verificação - adicional de que o conjunto de ferramentas foi construído - adequadamente. Se algum pacote, especialmente binutils-passagem 2 ou - gcc-passagem 2, falhar na construção, então isso é uma indicação de que - alguma coisa deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. - - Agora que nosso conjunto de ferramentas cruzadas está completa, - finalize a instalação do cabeçalho limits.h. Para fazer isso, execute - um utilitário fornecido pelas(os) desenvolvedoras(os) de GCC: -$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders - - Detalhes acerca deste pacote estão localizados em [548]Seção 8.5.3, - “Conteúdo de Glibc.†- -5.6. Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - - Libstdc++ é a biblioteca padrão C++. Ela é necessária para compilar - código C++ (parte de GCC é escrito em C++), porém nós tivemos que adiar - sua instalação quando construímos [549]gcc-pass1, pois ela depende de - glibc, que ainda não estava disponível no diretório alvo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 818 MB - -5.6.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - --host=$LFS_TGT \ - --build=$(../config.guess) \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --disable-libstdcxx-pch \ - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - - O significado das opções de configure: - - --host=... - Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em /usr/bin. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - Isso especifica o diretório de instalação para arquivos include. - Por causa de libstdc++ ser a biblioteca padrão C++ para LFS, - esse diretório deveria coincidir com a localização onde o - compilador C++ ($LFS_TGT-g++) procuraria pelos arquivos include - C++ padrão. Em uma construção normal, essa informação é - automaticamente passada para as opções configure de libstdc++ a - partir do diretório de nível de topo. Em nosso caso, essa - informação deve ser explicitamente dada. O compilador C++ - precederá o caminho raiz de sistema $LFS (especificado quando da - construção de GCC passagem 1) para o caminho de pesquisa de - arquivo include, de forma que ele atualmente pesquisará em - $LFS/tools/$LFS_TGT/include/c++/11.2.0. A combinação da variável - DESTDIR (no comando make install abaixo) e essa chave garante - instalar os cabeçalhos lá. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [550]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 6. Compilando Cruzadamente Ferramentas Temporárias - -6.1. Introdução - - Este capítulo mostra como compilar cruzadamente utilitários básicos - usando o recém construído conjunto de ferramentas cruzadas. Esses - utilitários são instalados no local final deles, porém ainda não podem - ser usados. Tarefas básicas ainda dependem das ferramentas do - anfitrião. Apesar disso, as bibliotecas instaladas são usadas quando da - vinculação. - - O uso dos utilitários será possível no próximo capítulo após entrada no - ambiente “chrootâ€. Porém, todos os pacotes construídos no presente - capítulo precisam ser construídos antes que façamos isso. Dessa forma - nós ainda não podemos ficar independentes do sistema anfitrião. - - Uma vez mais, permita-nos relembrar que a configuração inapropriada de - LFS junto com a construção como root, talvez torne seu computador - inutilizável. Este capítulo inteiro precisa ser feito como usuária(o) - lfs, com o ambiente conforme descrito em [551]Seção 4.4, “Configurando - o Ambienteâ€. - -6.2. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 31 MB - -6.2.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [552]Seção 8.12.2, - “Conteúdo de M4.†- -6.3. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 50 MB - -6.3.1. Instalação de Ncurses - - Primeiro, assegure que gawk é encontrado primeiro durante a - configuração: -sed -i s/mawk// configure - - Então, execute os seguintes comandos para construir o aplicativo “tic†- no anfitrião de construção: -mkdir build -pushd build - ../configure - make -C include - make -C progs tic -popd - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(./config.guess) \ - --mandir=/usr/share/man \ - --with-manpage-format=normal \ - --with-shared \ - --without-debug \ - --without-ada \ - --without-normal \ - --disable-stripping \ - --enable-widec - - O significado das novas opções de configure: - - --with-manpage-format=normal - Isso evita que Ncurses instale páginas comprimidas de manual, o - que talvez aconteceu se a própria distribuição anfitriã tiver - páginas comprimidas de manual. - - --without-ada - Isso assegura que Ncurses não construa suporte para o compilador - Ada, o qual talvez esteja presente no anfitrião, porém não - estará disponível até que nós entremos no ambiente chroot. - - --disable-stripping - Essa chave impede o sistema de construção de despojar os - aplicativos usando o aplicativo strip oriundo do anfitrião. O - uso de ferramentas de anfitrião em aplicativo compilado - cruzadamente pode causar falha. - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install -echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - - O significado das opções de install: - - TIC_PATH=$(pwd)/build/progs/tic - Nós precisamos passar o caminho do recém construído tic apto - para executar na máquina de construção, de forma que a base de - dados de terminal possa ser criada sem erros. - - echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - A biblioteca libncurses.so é necessária para uns poucos pacotes - que nós construiremos breve. Nós criamos esse pequeno script - vinculador, pois isso é o que é feito em [553]Capítulo 8. - - Detalhes acerca deste pacote estão localizados em [554]Seção 8.28.2, - “Conteúdo de Ncurses.†- -6.4. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 64 MB - -6.4.1. Instalação de Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --build=$(support/config.guess) \ - --host=$LFS_TGT \ - --without-bash-malloc - - O significado das opções de configure: - - --without-bash-malloc - Essa opção desliga o uso da função de alocação de memória do - Bash (malloc) a qual é conhecida por causar falhas de - segmentação. Ao se desligar essa opção, Bash usará as funções - malloc originárias de Glibc que são mais estáveis. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Faça um link para os aplicativos que usam sh para um shell: -ln -sv bash $LFS/bin/sh - - Detalhes acerca deste pacote estão localizados em [555]Seção 8.34.2, - “Conteúdo do Bash.†- -6.5. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 158 MB - -6.5.1. Instalação de Coreutils - - Prepare Coreutils para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --enable-install-program=hostname \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - --enable-install-program=hostname - Isso habilita o binário hostname para ser construído e instalado - – ele é desabilitado por padrão, porém é exigido pela suíte de - teste de Perl. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Mova aplicativos para seus locais finais esperados. Apesar de isso não - ser necessário neste ambiente temporário, nós precisamos fazer isso, - pois alguns aplicativos codificam rigidamente locais de executável: -mv -v $LFS/usr/bin/chroot $LFS/usr/sbin -mkdir -pv $LFS/usr/share/man/man8 -mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8 - - Detalhes acerca deste pacote estão localizados em [556]Seção 8.53.2, - “Conteúdo do Coreutils.†- -6.6. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 27 MB - -6.6.1. Instalação de Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [557]Seção 8.55.2, - “Conteúdo do Diffutils.†- -6.7. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 32 MB - -6.7.1. Instalação de File - - O comando file no anfitrião de construção precisa ser da mesma versão - que aquele que nós estamos construindo com a finalidade de criar o - arquivo de assinatura. Execute os seguintes comandos para construí-lo: -mkdir build -pushd build - ../configure --disable-bzlib \ - --disable-libseccomp \ - --disable-xzlib \ - --disable-zlib - make -popd - - O significado da nova opção de configure: - - --disable-* - O script de configuração tenta usar alguns pacotes originários - da distribuição anfitriã se os arquivos de biblioteca - correspondentes existirem. Isso talvez cause falha de compilação - se um arquivo de biblioteca existir, porém os arquivos de - cabeçalhos correspondentes não. Essas opções impedem o uso - dessas capacidades desnecessárias a partir do anfitrião. - - Prepare File para compilação: -./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) - - Compile o pacote: -make FILE_COMPILE=$(pwd)/build/src/file - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [558]Seção 8.10.2, - “Conteúdo de File.†- -6.8. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 42 MB - -6.8.1. Instalação de Findutils - - Prepare Findutils para compilação: -./configure --prefix=/usr \ - --localstatedir=/var/lib/locate \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [559]Seção 8.57.2, - “Conteúdo do Findutils.†- -6.9. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 45 MB - -6.9.1. Instalação de Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [560]Seção 8.56.2, - “Conteúdo do Gawk.†- -6.10. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 26 MB - -6.10.1. Instalação de Grep - - Prepare Grep para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [561]Seção 8.33.2, - “Conteúdo do Grep.†- -6.11. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 11 MB - -6.11.1. Instalação de Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [562]Seção 8.60.2, - “Conteúdo do Gzip.†- -6.12. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.12.1. Instalação de Make - - Prepare Make para compilação: -./configure --prefix=/usr \ - --without-guile \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - O significado da nova opção de configure: - - --without-guile - Apesar de nós estarmos compilando cruzadamente, configure tenta - usar guile a partir do anfitrião de construção se encontrá-lo. - Isso provoca falha de compilação, de forma que essa chave impede - o uso de guile. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [563]Seção 8.64.2, - “Conteúdo do Make.†- -6.13. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -6.13.1. Instalação de Patch - - Prepare Patch para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [564]Seção 8.65.2, - “Conteúdo do Patch.†- -6.14. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -6.14.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [565]Seção 8.29.2, - “Conteúdo do Sed.†- -6.15. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 38 MB - -6.15.1. Instalação de Tar - - Prepare Tar para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [566]Seção 8.66.2, - “Conteúdo do Tar.†- -6.16. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.16.1. Instalação de Xz - - Prepare Xz para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [567]Seção 8.8.2, - “Conteúdo de Xz.†- -6.17. Binutils-2.38 - Passagem 2 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1,3 UPC - Espaço em disco exigido: 520 MB - -6.17.1. Instalação de Binutils - - Binutils entrega uma cópia desatualizada de libtool no tarball. Ela - carece de suporte de raiz de sistema de forma que os binários - produzidos serão erroneamente vinculados à bibliotecas originárias da - distribuição anfitriã. Contorne esse problema: -sed '6009s/$add_dir//' -i ltmain.sh - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure \ - --prefix=/usr \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --disable-nls \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd - - O significado das novas opções de configure: - - --enable-shared - Constrói libbfd como uma biblioteca compartilhada. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [568]Seção 8.18.2, - “Conteúdo de Binutils.†- -6.18. GCC-11.2.0 - Passagem 2 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -6.18.1. Instalação de GCC - - Como na primeira construção de GCC, os pacotes GMP, MPFR, e MPC são - exigidos. Desempacote os tarballs e mova-os para os nomes de diretório - exigidos: -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Se construindo em x86_64, então mude o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 - ;; -esac - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Crie um link simbólico que permite que libgcc seja construída com - suporte posix de camadas: -mkdir -pv $LFS_TGT/libgcc -ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h - - Antes de iniciar a construção de GCC, lembre-se de desconfigurar - quaisquer variáveis de ambiente que substituam os sinalizadores de - otimização padrão. - - Agora prepare GCC para compilação: -../configure \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --prefix=/usr \ - CC_FOR_TARGET=$LFS_TGT-gcc \ - --with-build-sysroot=$LFS \ - --enable-initfini-array \ - --disable-nls \ - --disable-multilib \ - --disable-decimal-float \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das novas opções de configure: - - -with-build-sysroot=$LFS - Normalmente, usar --host garante que um compilador cruzado seja - usado para construir GCC, e que o compilador sabe que tem que - procurar por cabeçalhos e bibliotecas em $LFS. Porém, o sistema - de construção de GCC usa outras ferramentas, que não estão - cientes dessa localização. Essa chave é necessária para que elas - busquem os arquivos necessários em $LFS, e não no anfitrião. - - --enable-initfini-array - Essa opção é automaticamente habilitada quando da construção de - um compilador nativo com um compilador nativo em x86. Porém, - aqui, nós construímos com um compilador cruzado, de forma que - nós precisamos explicitamente configurar essa opção. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Como um toque final, crie um link simbólico utilitário. Muitos - aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em todos os tipos - de sistemas UNIX onde o compilador C de GNU nem sempre está instalado. - Executar cc deixa a(o) administradora(r) de sistema livre para decidir - qual compilador C instalar: -ln -sv gcc $LFS/usr/bin/cc - - Detalhes acerca deste pacote estão localizados em [569]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 7. Entrando em Chroot e Construindo Ferramentas Temporárias -Adicionais - -7.1. Introdução - - Este capítulo mostra como construir os últimos bits que faltam no - sistema temporário: as ferramentas necessárias para o maquinário de - construção de vários pacotes. Agora que todas as dependências - circulares foram resolvidas, um ambiente “chrootâ€, completamente - isolado do sistema operacional anfitrião (exceto pelo kernel em - execução), pode ser usado para a construção. - - Para operação adequada do ambiente isolado, alguma comunicação com o - kernel em execução precisa ser estabelecida. Isso é feito por meio dos - assim chamados Sistemas de Arquivos Virtuais de Kernel, que precisam - ser montados quando da entrada no ambiente chroot. Você talvez queira - verificar que eles estejam montados emitindo findmnt. - - Até [570]Seção 7.4, “Entrando no Ambiente Chrootâ€, os comandos precisam - ser executados como root, com a variável LFS configurada. Após a - entrada em chroot, todos os comandos são executados como root, por - sorte sem acesso ao OS do computador no qual que você construiu LFS. - Seja cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. - -7.2. Mudando Propriedade - -Nota - - Os comandos no resto deste livro precisam ser realizados enquanto - logada(o) como usuária(o) root e não mais como usuária(o) lfs. Também, - verifique duplamente que $LFS está configurada no ambiente do root. - - Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade - da(o) usuária(o) lfs, uma(m) usuária(o) que existe somente no sistema - anfitrião. Se os diretórios e arquivos sob $LFS forem mantidos como - estão, então eles serão de propriedade de um ID de usuária(o) sem uma - conta correspondente. Isso é perigoso, pois uma conta de usuária(o) - criada posteriormente poderia receber esse mesmo ID de usuária(o) e se - tornaria proprietária(o) de todos os arquivos sob $LFS, dessa forma - expondo esses arquivos a possível manipulação maliciosa. - - Para endereçar esse problema, mude a propriedade dos diretórios $LFS/* - para usuária(o) root executando o seguinte comando: -chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -R root:root $LFS/lib64 ;; -esac - -7.3. Preparando Sistemas de Arquivos Virtuais de Kernel - - Vários sistemas de arquivos exportados pelo kernel são usados para - comunicar para e oriunda do próprio kernel. Esses sistemas de arquivos - são virtuais uma vez que nenhum espaço de disco é usado por eles. O - conteúdo dos sistemas de arquivos reside em memória. - - Comece criando diretórios nos quais os sistemas de arquivos serão - montados: -mkdir -pv $LFS/{dev,proc,sys,run} - -7.3.1. Criando Nós de Dispositivos Iniciais - - Quando o kernel inicializa o sistema, ele exige a presença de alguns - nós de dispositivos, em particular os dispositivos console e null. Os - nós de dispositivos precisam ser criados no disco rígido de modo que - eles estejam disponíveis antes que o kernel povoe /dev), e - adicionalmente quando Linux é iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -mknod -m 600 $LFS/dev/console c 5 1 -mknod -m 666 $LFS/dev/null c 1 3 - -7.3.2. Montando e Povoando /dev - - O método recomendado de povoar o diretório /dev com dispositivos é - montar um sistema de arquivos virtuais (tal como tmpfs) no diretório - /dev, e permitir que os dispositivos sejam criados dinamicamente - naquele sistema de arquivos virtuais conforme eles sejam detectados ou - acessados. Criação de dispositivos é geralmente feita durante o - processo de inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário montar e povoar - /dev manualmente. Isso é conseguido montando com bind o diretório /dev - do sistema anfitrião. Uma montagem com bind é um tipo especial de - montagem que permite que você crie um espelho de um diretório ou ponto - de montagem para alguma outra localização. Use o seguinte comando para - conseguir isso: -mount -v --bind /dev $LFS/dev - -7.3.3. Montando Sistemas de Arquivos Virtuais de Kernel - - Agora monte os restantes sistemas de arquivos virtuais de kernel: -mount -v --bind /dev/pts $LFS/dev/pts -mount -vt proc proc $LFS/proc -mount -vt sysfs sysfs $LFS/sys -mount -vt tmpfs tmpfs $LFS/run - - Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi montado acima então, nesse caso, apenas um - diretório precisa ser criado. -if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS/$(readlink $LFS/dev/shm) -fi - -7.4. Entrando no Ambiente Chroot - - Agora que todos os pacotes que são exigidos para construir o resto das - ferramentas necessárias estão no sistema, é hora de entrar no ambiente - chroot para finalizar a instalação das restantes ferramentas - temporárias. Esse ambiente estará em uso também para a instalação do - sistema final. Como usuária(o) root, execute o seguinte comando para - entrar no ambiente que é, neste momento, povoado apenas com as - ferramentas temporárias: -chroot "$LFS" /usr/bin/env -i \ - HOME=/root \ - TERM="$TERM" \ - PS1='(lfs chroot) \u:\w\$ ' \ - PATH=/usr/bin:/usr/sbin \ - /bin/bash --login - - A opção -i dada para o comando env limpará todas as variáveis do - ambiente chroot. Depois disso, apenas as variáveis HOME, TERM, PS1, e - PATH são configuradas novamente. A construção TERM=$TERM configurará a - variável TERM dentro de chroot para o mesmo valor que fora de chroot. - Essa variável é necessária para aplicativos como vim e less operarem - adequadamente. Se outras variáveis forem desejadas, tais como CFLAGS ou - CXXFLAGS, então esse é um bom lugar para configurá-las novamente. - - Deste ponto em diante, não mais há necessidade de usar a variável LFS, - pois todo o trabalho estará restrito ao sistema de arquivos de LFS. - Isso acontece pois o shell Bash é informado que $LFS agora é o - diretório raiz (/). - - Perceba que /tools/bin não está no PATH. Isso significa que o conjunto - de ferramentas cruzadas não mais será usado no ambiente chroot. - - Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi criado. - -Nota - - É importante que todos os comandos até o final deste capítulo e nos - capítulos seguintes sejam executados de dentro do ambiente chroot. Se - você deixar esse ambiente por qualquer razão (reiniciar, por exemplo), - então certifique-se que os sistemas de arquivos virtuais de kernel - estejam montados como explicado em [571]Seção 7.3.2, “Montando e - Povoando /dev†e [572]Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel†e entre no chroot novamente antes de continuar a - instalação. - -7.5. Criando Diretórios - - É tempo de criar a estrutura completa no sistema de arquivos LFS. - - Crie alguns diretórios de nível de raiz que não estão no conjunto - limitado exigido nos capítulos anteriores emitindo o seguinte comando: - -Nota - - Alguns dos diretórios abaixo já foram criados anteriormente com - instruções explícitas ou quando da instalação de alguns pacotes. Elas - estão repetidas abaixo para completude. -mkdir -pv /{boot,home,mnt,opt,srv} - - Crie o conjunto exigido de subdiretórios abaixo do nível de raiz - emitindo os seguintes comandos: -mkdir -pv /etc/{opt,sysconfig} -mkdir -pv /lib/firmware -mkdir -pv /media/{floppy,cdrom} -mkdir -pv /usr/{,local/}{include,src} -mkdir -pv /usr/local/{bin,lib,sbin} -mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} -mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} -mkdir -pv /usr/{,local/}share/man/man{1..8} -mkdir -pv /var/{cache,local,log,mail,opt,spool} -mkdir -pv /var/lib/{color,misc,locate} - -ln -sfv /run /var/run -ln -sfv /run/lock /var/lock - -install -dv -m 0750 /root -install -dv -m 1777 /tmp /var/tmp - - Diretórios são, por padrão, criados com modo de permissão 755, mas isso - não é desejável para todos os diretórios. Nos comandos acima, duas - mudanças são feitas—uma para o diretório home da(o) usuária(o) root, e - outra para os diretórios para arquivos temporários. - - A primeira mudança de modo assegura que nem qualquer pessoa possa - entrar no diretório /root—o mesmo que uma(m) usuária(o) normal faria - com o diretório home dela ou dele. A segunda mudança de modo garante - que qualquer usuária(o) possa escrever nos diretórios /tmp e /var/tmp, - mas não possa remover deles os arquivos de outras(os) usuárias(os). - Essa última é proibida pelo assim chamado “sticky bitâ€, o bit mais alto - (1) na máscara de bits 1777. - -7.5.1. Nota de conformidade FHS - - A árvore de diretório é baseada no Padrão de Hierarquia de Sistema de - Arquivos (Filesystem Hierarchy Standard - FHS) (disponível em - [573]https://refspecs.linuxfoundation.org/fhs.shtml). O FHS também - especifica a existência opcional de alguns diretórios tais como - /usr/local/games e /usr/share/games. Nós criamos apenas os diretórios - que são necessários. Entretanto, sinta-se livre para criar esses - diretórios. - -7.6. Criando Arquivos Essenciais e Links Simbólicos - - Historicamente, o Linux mantém uma lista dos sistemas de arquivos - montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de arquivos - /proc. Para satisfazer utilitários que esperam a presença de /etc/mtab, - crie o seguinte link simbólico: -ln -sv /proc/self/mounts /etc/mtab - - Crie um arquivo /etc/hosts básico para ser referenciado em algumas - suítes de teste, e em um dos arquivos de configuração do Perl também: -cat > /etc/hosts << EOF -127.0.0.1 localhost $(hostname) -::1 localhost -EOF - - Para que a(o) usuária(o) root seja capaz de logar e para que o nome - “root†seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e /etc/group. - - Crie o arquivo /etc/passwd executando o seguinte comando: -cat > /etc/passwd << "EOF" -root:x:0:0:root:/root:/bin/bash -bin:x:1:1:bin:/dev/null:/usr/bin/false -daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false -messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false -uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false -nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false -EOF - - A senha atual para root será configurada mais tarde. - - Crie o arquivo /etc/group executando o seguinte comando: -cat > /etc/group << "EOF" -root:x:0: -bin:x:1:daemon -sys:x:2: -kmem:x:3: -tape:x:4: -tty:x:5: -daemon:x:6: -floppy:x:7: -disk:x:8: -lp:x:9: -dialout:x:10: -audio:x:11: -video:x:12: -utmp:x:13: -usb:x:14: -cdrom:x:15: -adm:x:16: -messagebus:x:18: -input:x:24: -mail:x:34: -kvm:x:61: -uuidd:x:80: -wheel:x:97: -nogroup:x:99: -users:x:999: -EOF - - Os grupos criados não são parte de qualquer padrão—eles são grupos - decididos em parte pelas exigências da configuração de Udev no Capítulo - 9, e em parte pelas convenções comuns empregadas por um número de - distribuições Linux existentes. Em adição, algumas suítes de teste - dependem de usuárias(os) ou grupos específicos. A Base Padrão Linux - (Linux Standard Base - LSB, disponível em - [574]http://refspecs.linuxfoundation.org/lsb.shtml) apenas recomenda - que, além do grupo root com um ID de Grupo (GID) de 0, um grupo bin com - um GID de 1 esteja presente. Todos os outros nomes de grupo e GIDs - podem ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de GID, - mas sim usam o nome do grupo. - - Alguns testes em [575]Capítulo 8 precisam de uma(m) usuária(o) regular. - Nós adicionamos essa(e) usuária(o) aqui e deletamos essa conta ao final - daquele capítulo. -echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd -echo "tester:x:101:" >> /etc/group -install -o tester -d /home/tester - - Para remover o prompt “I have no name!â€, inicie um novo shell. Uma vez - que os arquivos /etc/passwd e /etc/group foram criados, resolução de - nome de usuária(o) e nome de grupo agora funcionará: -exec /usr/bin/bash --login - - Os aplicativos login, agetty, e init (e outros) usam um número de - arquivos de log para registrar informação tais como quem esteve - logada(o) no sistema e quando. Entretanto, esses aplicativos não - escreverão nos arquivos de log se eles já não existirem. Inicialize os - arquivos de log e dê a eles permissões adequadas: -touch /var/log/{btmp,lastlog,faillog,wtmp} -chgrp -v utmp /var/log/lastlog -chmod -v 664 /var/log/lastlog -chmod -v 600 /var/log/btmp - - O arquivo /var/log/wtmp registra todos os logins e logouts. O arquivo - /var/log/lastlog registra quando cada usuária(o) logou pela última vez. - O arquivo /var/log/faillog registra tentativas de login falhas. O - arquivo /var/log/btmp registra tentativas de login inválidas. - -Nota - - O arquivo /run/utmp registra as(os) usuárias(os) que estão atualmente - logadas(os). Esse arquivo é criado dinamicamente nos scripts de - inicialização. - -7.7. Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - - Quando da construção de [576]gcc-pass2 nós tivemos que adiar a - instalação da biblioteca padrão C++, pois nenhum compilador adequado - estava disponível para compilá-la. Nós não poderíamos usar o compilador - construído naquela seção, por causa de que ele é um compilador nativo e - não deveria ser usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 1,1 GB - -7.7.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um link que existe quando da construção de libstdc++ na árvore de - gcc: -ln -s gthr-posix.h libgcc/gthr-default.h - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --host=$(uname -m)-lfs-linux-gnu \ - --disable-libstdcxx-pch - - O significado das opções de configure: - - CXXFLAGS="-g -O2 -D_GNU_SOURCE" - Esses sinalizadores são passados pelo Makefile de nível de topo - quando da feitura de uma construção completa de GCC. - - --host=$(uname -m)-lfs-linux-gnu - Nós temos que imitar o que teria acontecido se esse pacote fosse - construído como parte de uma construção completa de compilador. - Essa chave teria sido passada para configure pelo maquinário de - construção do GCC. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make install - - Detalhes acerca deste pacote estão localizados em [577]Seção 8.26.2, - “Conteúdo de GCC.†- -7.8. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 280 MB - -7.8.1. Instalação de Gettext - - Para nosso conjunto temporário de ferramentas, nós apenas precisamos - instalar três aplicativos originários de Gettext. - - Prepare Gettext para compilação: -./configure --disable-shared - - O significado da opção de configure: - - --disable-shared - Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não existe - necessidade de construí-las. - - Compile o pacote: -make - - Instale os aplicativos msgfmt, msgmerge, e xgettext: -cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin - - Detalhes acerca deste pacote estão localizados em [578]Seção 8.31.2, - “Conteúdo do Gettext.†- -7.9. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 50 MB - -7.9.1. Instalação de Bison - - Prepare Bison para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bison-3.8.2 - - O significado da nova opção de configure: - - --docdir=/usr/share/doc/bison-3.8.2 - Isso diz ao sistema de construção para instalar documentação de - bison em um diretório versionado. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [579]Seção 8.32.2, - “Conteúdo do Bison.†- -7.10. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 272 MB - -7.10.1. Instalação de Perl - - Prepare Perl para compilação: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl - - O significado das novas opções de Configure: - - -des - Essa é uma combinação de três opções: -d usa padrões para todos - os itens; -e assegura completamento de todas as tarefas; -s - silencia saída não essencial. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [580]Seção 8.41.2, - “Conteúdo do Perl.†- -7.11. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 1,2 UPC - Espaço em disco exigido: 359 MB - -7.11.1. Instalação de Python - -Nota - - Existem dois arquivos de pacotes cujos nomes se iniciam com “pythonâ€. - Aquele a se extrair a partir dele é Python-3.10.2.tar.xz (perceba a - primeira letra maiúscula). - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --without-ensurepip - - O significado da opção de configure: - - --enable-shared - Essa chave impede instalação de bibliotecas estáticas. - - --without-ensurepip - Essa chave desabilita o instalador de pacote de Python, o qual - não é necessário neste estágio. - - Compile o pacote: -make - -Nota - - Alguns módulos de Python 3 não podem ser construídos agora, por causa - de que as dependências não estão instaladas ainda. O sistema de - construção ainda tenta construí-las, entretanto, de forma que a - compilação de alguns arquivos falhará e a mensagem de compilador talvez - pareça indicar “fatal errorâ€. A mensagem deveria ser ignorada. Apenas - tenha certeza de que o comando de nível de topo make não tenha falhado. - Os módulos opcionais não são necessários agora e eles serão construídos - em [581]Capítulo 8. - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [582]Seção 8.50.2, - “Conteúdo do Python 3.†- -7.12. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 109 MB - -7.12.1. Instalação de Texinfo - - Primeiro, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [583]Seção 8.67.2, - “Conteúdo do Texinfo.†- -7.13. Util-linux-2.37.4 - - O pacote Util-linux contém diversos aplicativos utilitários. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 129 MB - -7.13.1. Instalação de Util-linux - - O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual - diretório /etc como a localização para o arquivo adjtime. Crie esse - diretório com: -mkdir -pv /var/lib/hwclock - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --libdir=/usr/lib \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - runstatedir=/run - - O significado das opções de configure: - - ADJTIME_PATH=/var/lib/hwclock/adjtime - Isso configura a localização do arquivo gravando informação - acerca do relógio de hardware de acordo com o FHS. Isso não é - estritamente necessário para essa ferramenta temporária, porém - impede a criação de um arquivo em outra localização, o qual não - seria sobrescrito ou removido quando da construção do pacote - util-linux final. - - --libdir=/usr/lib - Essa chave assegura que os links simbólicos .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. - - --disable-* - Essas chaves evitam avisos acerca de componentes de construção - que exigem pacotes que não estão no LFS ou ainda não estão - instalados. - - --without-python - Essa chave desabilita o uso de Python. Ela evita tentar - construir ligações desnecessárias. - - runstatedir=/run - Essa chave configura corretamente a localização do soquete usado - por uuidd e libuuid. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [584]Seção 8.72.2, - “Conteúdo do Util-linux.†- -7.14. Limpando e Salvando o Sistema Temporário - -7.14.1. Limpando - - Primeiro, remova a documentação atualmente instalada para evitar que - ela termine no sistema final, e para salvar cerca de 35 MB: -rm -rf /usr/share/{info,man,doc}/* - - Segundo, os arquivos .la de libtool somente são úteis quando vinculados - com bibliotecas estáticas. Eles são desnecessários e potencialmente - danosos quando do uso de bibliotecas compartilhadas dinâmicas, - especialmente quando do uso de sistemas de construção não autotools. - Enquanto ainda no chroot, remova aqueles arquivos agora: -find /usr/{lib,libexec} -name \*.la -delete - - O tamanho atual de sistema é agora de cerca de 3 GB, entretanto o - diretório /tools não mais é necessário. Ele usa cerca de 1 GB de espaço - de disco. Delete ele agora: -rm -rf /tools - -7.14.2. Cópia de segurança - - Neste ponto os aplicativos e bibliotecas essenciais foram criados e seu - sistema LFS atual está em um bom estado. Seu sistema pode agora ser - copiado para posterior reuso. Em caso de falhas fatais nos capítulos - subsequentes, frequentemente acontece que remover tudo e começar de - novo (mais cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, também. - Para evitar desperdiçar tempo extra para refazer tudo o que foi - construído com sucesso, criar uma cópia de segurança do sistema LFS - atual talvez se prove útil. - -Nota - - Todos os passos restantes nesta seção são opcionais. Apesar disso, tão - logo você comece a instalar pacotes em [585]Capítulo 8, os arquivos - temporários serão sobrescritos. Assim, talvez seja uma boa ideia fazer - uma cópia de segurança do sistema atual conforme descrito abaixo. - - Os passos seguintes são realizados a partir do lado de fora do ambiente - chroot. Isso significa, você tem de deixar o ambiente chroot primeiro - antes de continuar. A razão para isso é para conseguir acesso a locais - do sistema de arquivos do lado de fora do ambiente chroot para - armazenar/ler o arquivamento de cópia de segurança o qual não deveria - ser colocado dentro da hierarquia de $LFS por razões de segurança. - - Se você decidiu fazer uma cópia de segurança, então deixe o ambiente - chroot: -exit - -Importante - - Todas as instruções seguintes são executadas por root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você vai - executar, uma vez que erros aqui podem modificar seu sistema anfitrião. - Esteja ciente de que a variável de ambiente LFS está configurada para - usuária(o) lfs por padrão, mas talvez não esteja configurada para root. - - Sempre que comandos forem ser executados por root, tenha certeza de que - você configurou LFS. - - Isso foi discutido em [586]Seção 2.6, “Configurando a Variável $LFSâ€. - - Antes de fazer uma cópia de segurança, desmonte os sistemas de arquivos - virtuais: -umount $LFS/dev/pts -umount $LFS/{sys,proc,run,dev} - - Tenha certeza de que tem pelo menos 1 GB de espaço de disco livre (os - tarballs de fonte serão incluídos no arquivamento de cópia de - segurança) no sistema de arquivos contendo diretório onde você criar o - arquivamento de cópia de segurança. - - Note que as instruções abaixo especificam o diretório home da(o) - usuária(o) root do sistema anfitrião, o qual tipicamente é encontrado - no sistema de arquivos raiz. - - Substitua $HOME por um diretório da sua escolha se você não quiser ter - a cópia de segurança armazenada no diretório home de root. - - Crie o arquivamento de cópia de segurança executando o seguinte - comando: - -Nota - - Por causa de que o arquivamento de cópia de segurança é comprimido, - dura um tempo relativamente longo (mais de 10 minutos) mesmo em um - sistema razoavelmente rápido. -cd $LFS -tar -cJpf $HOME/lfs-temp-tools-11.1.tar.xz . - -Nota - - Se continuar para o capítulo 8, então não se esqueça de entrar - novamente no ambiente chroot conforme explanado na caixa “Importante†- abaixo. - -7.14.3. Restauro - - No caso de alguns erros tiverem sido feitos e você precisar começar de - novo, você pode usar essa cópia de segurança para restaurar o sistema e - economizar algum tempo de recuperação. Desde que os fontes estão - localizados sob $LFS, eles são incluídos no arquivamento de cópia de - segurança também, de forma que eles não precisam ser baixados - novamente. Após verificar que $LFS está configurada adequadamente, - restaure a cópia de segurança executando os seguintes comandos: - -Atenção - - Os seguintes comandos são extremamente perigosos. Se você executar rm - -rf ./* como a(o) usuária(o) root e você não mudar para o diretório - $LFS ou a variável de ambiente LFS não estiver configurada para a(o) - usuária(o) root, então isso destruirá seu sistema anfitrião inteiro. - VOCÊ ESTà AVISADA(O). -cd $LFS -rm -rf ./* -tar -xpf $HOME/lfs-temp-tools-11.1.tar.xz - - Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. - -Importante - - Se você deixou o ambiente chroot para criar uma cópia de segurança ou - reiniciar a construção usando um restauro, então lembre-se de verificar - se os sistemas de arquivos virtuais ainda estão montados (findmnt | - grep $LFS). Se eles não estiverem montados, então remonte-os agora - conforme descrito em [587]Seção 7.3, “Preparando Sistemas de Arquivos - Virtuais de Kernel†e entre novamente no ambiente chroot (veja - [588]Seção 7.4, “Entrando no Ambiente Chrootâ€) antes de continuar. - -Parte IV. Construindo o Sistema LFS - -Capítulo 8. Instalando Aplicativos Básicos de Sistema - -8.1. Introdução - - Neste capítulo, nós começamos a construir o sistema LFS pra valer. - - A instalação desse software é simples. Embora em muitos casos as - instruções de instalação pudessem ser mais curtas e mais genéricas, nós - optamos por fornecer as instruções completas para cada pacote para - minimizar as possibilidades de erros. A chave para aprender o que faz - um sistema Linux funcionar é saber para que cada pacote é usado e - porque você (ou o sistema) talvez precise dele. - - Nós não recomendamos usar otimizações. Elas podem fazer com que um - aplicativo execute ligeiramente mais rápido, mas elas também talvez - causem dificuldades de compilação e problemas quando executar o - aplicativo. Se um pacote se recusar a compilar quando usar otimização, - então tente compilá-lo sem otimização e veja se isso conserta o - problema. Mesmo se o pacote compilar quando usar otimização, existe o - risco de que ele talvez tenha sido compilado incorretamente devido às - complexas interações entre o código e ferramentas de construção. Note - também que as opções -march e -mtune usando valores não especificados - no livro não foram testadas. Isso talvez cause problemas com os pacotes - do conjunto de ferramentas (Binutils, GCC e Glibc). Os pequenos ganhos - potenciais alcançados usando otimizações de compilador frequentemente - são superados pelos riscos. Construtoras(es) de primeira vez de LFS são - encorajadas(os) a construir sem otimizações personalizadas. O sistema - subsequente ainda executará muito rápido e será estável ao mesmo tempo. - - Antes das instruções de instalação, cada página de instalação fornece - informação acerca do pacote, incluindo uma descrição concisa do que ele - contém, aproximadamente quando tempo levará para construir, e quanto - espaço de disco é exigido durante esse processo de construção. Seguindo - as instruções de instalação, existe uma lista de aplicativos e - bibliotecas (juntamente com breves descrições) que o pacote instala. - -Nota - - Os valores de UPC e espaço de disco exigido incluem dados de suíte de - teste para todos os pacotes aplicáveis em [589]Capítulo 8. Os valores - de UPC foram calculados usando um núcleo sozinho de CPU (-j1) para - todas as operações. - -8.1.1. Acerca de bibliotecas - - Em geral, as(os) editoras(es) de LFS desencorajam construir e instalar - bibliotecas estáticas. O propósito original para a maioria das - bibliotecas estáticas tem sido tornado obsoleto em um sistema moderno - Linux. Além disso, vincular uma biblioteca estática a um aplicativo - pode ser prejudicial. Se uma atualização para a biblioteca for - necessária para remover um problema de segurança, então todos os - aplicativos que usam a biblioteca estática precisarão ser vinculados de - novo à nova biblioteca. Como o uso de bibliotecas estáticas nem sempre - é óbvio, os aplicativos relevantes (e os procedimentos necessários para - fazer a vinculação) talvez nem mesmo sejam conhecidos. - - Nos procedimentos neste capítulo, nós removemos ou desabilitamos a - instalação da maioria das bibliotecas estáticas. Usualmente isso é - feito passando-se uma opção --disable-static para configure. Em outros - casos, meios alternativos são necessários. Em uns poucos casos, - especialmente glibc e gcc, o uso de bibliotecas estáticas permanece - essencial para o processo geral de construção de pacote. - - Para uma discussão mais completa acerca de bibliotecas, veja-se a - discussão [590]Bibliotecas: Estática ou compartilhada? no livro BLFS. - -8.2. Gerenciamento de Pacote - - Gerenciamento de Pacote é uma adição frequentemente solicitada ao Livro - LFS. Um Gerenciador de Pacote permite monitorar a instalação de - arquivos tornando fácil remover e atualizar pacotes. Assim como os - arquivos binários e bibliotecas, um gerenciador de pacote lidará com a - instalação de arquivos de configuração. Antes que você comece a - questionar, NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um resumo - acerca das técnicas mais populares e como elas funcionam. O gerenciador - de pacote perfeito para você talvez esteja entre essas técnicas ou - talvez seja uma combinação de duas ou mais dessas técnicas. Esta seção - menciona brevemente problemas que talvez surjam quando da atualização - de pacotes. - - Algumas razões porque nenhum gerenciador de pacote é mencionado em LFS - ou BLFS incluem: - * Lidar com gerenciamento de pacote retira o foco das finalidades - desses livros—ensinar como um sistema Linux é construído. - * Existem múltiplas soluções para gerenciamento de pacote, cada uma - tendo seus pontos fortes e fracos. Incluir uma que satisfaça todas - as audiências é difícil. - - Existem algumas dicas escritas no tópico acerca de gerenciamento de - pacote. Visite o [591]Hints Project e veja se uma delas se adéqua às - suas necessidades. - -8.2.1. Problemas de Atualização - - Um Gerenciador de Pacote torna fácil atualizar para versões mais novas - quando elas são liberadas. Geralmente as instruções nos livros LFS e - BLFS podem ser usadas para atualizar para versões mais novas. Aqui - estão alguns pontos que você deveria estar ciente quando da atualização - de pacotes, especialmente em um sistema em execução. - * Se o kernel Linux precisar ser atualizado (por exemplo, de 5.10.17 - para 5.10.18 ou 5.11.1), então nada mais precisa ser reconstruído. - O sistema seguirá funcionando bem graças à borda bem definida entre - kernel e espaço de usuária(o). Especificamente, os cabeçalhos de - API de Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você precisará - reiniciar seu sistema para usar o kernel atualizado. - * Se os cabeçalhos de API de Linux ou Glibc precisarem ser - atualizados para uma versão mais nova, (por exemplo, de glibc-2.31 - para glibc-2.32), então é mais seguro reconstruir LFS. Ainda que - você talvez seja capaz de reconstruir todos os pacotes na ordem de - dependência deles, nós não recomendamos isso. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e se o nome da biblioteca mudar, então quaisquer pacotes - dinamicamente vinculados à biblioteca precisam ser recompilados com - a finalidade de vincular à biblioteca mais nova. (Note que não - existe correlação entre a versão de pacote e o nome da biblioteca). - Por exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala uma - biblioteca compartilhada com nome libfoo.so.2. Nesse caso, - quaisquer pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser recompilados para vincular à libfoo.so.2 - com a finalidade de usar a nova versão de biblioteca. Você não - deveria remover as bibliotecas anteriores a menos que todos os - pacotes dependentes sejam recompilados. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém o número de versão do - arquivo de biblioteca decrescer (por exemplo, o nome da biblioteca - é mantido como libfoo.so.1, porém o nome do arquivo de biblioteca é - modificado de libfoo.so.1.25 para libfoo.so.1.24), então você - deveria remover o arquivo de biblioteca originário da versão - previamente instalada (libfoo.so.1.25 no caso). Ou, uma execução de - ldconfig (por você mesmo usando uma linha de comando, ou pela - instalação de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar para o antigo arquivo de biblioteca, pois - ele aparenta ter uma versão “mais novaâ€, uma vez que seu número de - versão é mais largo. Essa situação talvez aconteceu se você teve - que desatualizar um pacote, ou o pacote muda repentinamente o - esquema de versionamento de arquivos de biblioteca. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém um problema severo - (especialmente, uma vulnerabilidade de segurança) for corrigido, - então todos os aplicativos em execução vinculados à biblioteca - compartilhada deveriam ser reiniciados. O seguinte comando, - executado como root após atualização, listará o que está usando as - versões antigas daquelas bibliotecas (substitua libfoo com o nome - da biblioteca): -grep -l -e 'libfoo.*deleted' /proc/*/maps | - tr -cd 0-9\\n | xargs -r ps u - Se OpenSSH estiver sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa reiniciar o - serviço sshd, então deslogar-se, logar-se novamente, e reexecutar - aquele comando para confirmar que nada ainda está usando as - bibliotecas deletadas. - * Se um binário ou uma biblioteca compartilhada for sobrescrito, - então os processos usando o código ou dados no binário ou - biblioteca talvez quebrem. A maneira correta para atualizar um - binário ou uma biblioteca compartilhada sem causar quebra ao - processo é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por Coreutils já implementou - isso e a maioria dos pacotes usa ele para instalar binários e - bibliotecas. Isso significa que você não estaria encrencada(o) por - esse problema a maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em BLFS) - apenas sobrescreve o arquivo se ele existir e causa uma quebra, de - forma que é mais seguro salvar seu trabalho e fechar processos em - execução desnecessários antes de atualizar um pacote. - -8.2.2. Técnicas de Gerenciamento de Pacote - - As seguintes são algumas técnicas comuns de gerenciamento de pacote. - Antes de se decidir acerca de um gerenciador de pacote, pesquise sobre - as várias técnicas, particularmente os pontos fracos do esquema em - particular. - -8.2.2.1. Está Tudo na Minha Cabeça! - - Sim, isso é uma técnica de gerenciamento de pacote. Algumas pessoas não - encontram a necessidade para um gerenciador de pacote, pois elas - conhecem os pacotes intimamente e sabem quais arquivos estão instalados - por cada pacote. Algumas(ns) usuárias(os) também não precisam de - qualquer gerenciamento de pacote, pois elas(es) planejam reconstruir o - sistema inteiro quando um pacote for mudado. - -8.2.2.2. Instalação em Diretórios Separados - - Esse é um gerenciamento de pacote simplista que não necessita de - qualquer pacote extra para gerenciar as instalações. Cada pacote é - instalado em um diretório separado. Por exemplo, o pacote foo-1.1 é - instalado em /usr/pkg/foo-1.1 e um link simbólico é feito de - /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de uma nova - versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova versão. - - Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, - INFOPATH e CPPFLAGS precisam ser expandidas para incluir /usr/pkg/foo. - Para mais que uns poucos pacotes, esse esquema se torna ingerenciável. - -8.2.2.3. Gerenciamento de Pacote Estilo Link Simbólico - - Essa é uma variação da técnica de gerenciamento de pacote anterior. - Cada pacote é instalado similar ao esquema anterior. Mas, em vez de - fazer o link simbólico, cada arquivo é simbolicamente vinculado à - hierarquia /usr. Isso remove a necessidade de expandir as variáveis de - ambiente. Ainda que os links simbólicos possam ser criados pela(o) - usuária(o) para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos populares inclui - Stow, Epkg, Graft, e Depot. - - A instalação precisa ser falseada, de modo que o pacote pense que está - instalado em /usr, ainda que, na realidade, ele esteja instalado na - hierarquia /usr/pkg. Instalar dessa maneira geralmente não é uma tarefa - trivial. Por exemplo, considere que você está instalando um pacote - libfoo-1.1. As seguintes instruções talvez não instalem adequadamente o - pacote: -./configure --prefix=/usr/pkg/libfoo/1.1 -make -make install - - A instalação funcionará, mas os pacotes dependentes talvez não se - vinculem à libfoo conforme você esperaria. Se você compilar um pacote - que vincula à libfoo, então você talvez note que ele está vinculado a - /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em vez de /usr/lib/libfoo.so.1 como - você esperaria. A abordagem correta é usar a estratégia DESTDIR para - falsear a instalação do pacote. Essa abordagem funciona como se segue: -./configure --prefix=/usr -make -make DESTDIR=/usr/pkg/libfoo/1.1 install - - A maioria dos pacotes suporta essa abordagem, mas existem alguns que - não. Para os pacotes não conformes, você talvez ou precise instalar - manualmente o pacote, ou você talvez ache que é mais fácil instalar - alguns pacotes problemáticos em /opt. - -8.2.2.4. Baseado em Marca Temporal - - Nessa técnica, um arquivo é marcado temporalmente antes da instalação - do pacote. Após a instalação, um simples uso do comando find com as - opções apropriadas pode gerar um registro de todos os arquivos - instalados após o arquivo de marca temporal ser criado. Um gerenciador - de pacote escrito com essa abordagem é instalação-registro. - - Ainda que esse esquema tenha a vantagem de ser simples, ele tem duas - desvantagens. Se, durante a instalação, os arquivos forem instalados - com qualquer marca temporal outra que a hora atual, então aqueles - arquivos não serão rastreados pelo gerenciador de pacote. Além disso, - esse esquema pode ser usado apenas quando um pacote for instalado de - cada vez. Os registros não são confiáveis se dois pacotes estão sendo - instalados em dois consoles. - -8.2.2.5. Scripts de Rastreamento de Instalação - - Nessa abordagem, os comandos que os scripts de instalação realizam são - gravados. Existem duas técnicas que se pode usar: - - A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da instalação. Durante a - instalação, essa biblioteca rastreia os pacotes que estão sendo - instalados anexando-se a vários executáveis tais como cp, install, mv e - rastreando as chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis precisam ser - dinamicamente vinculados sem o bit suid ou sgid. Pré-carregar a - biblioteca talvez cause alguns efeitos colaterais indesejados durante a - instalação. Portanto, aconselha-se que se realize alguns testes para - garantir que o gerenciador de pacote não quebre nada e registre todos - os arquivos adequados. - - A segunda técnica é usar strace, que registra todas as chamadas de - sistema feitas durante a execução dos scripts de instalação. - -8.2.2.6. Criando Arquivamentos de Pacote - - Nesse esquema, a instalação do pacote é falseada em uma árvore separada - como descrito no gerenciamento de pacote estilo Link Simbólico. Após a - instalação, um arquivamento de pacote é criado usando os arquivos - instalados. Esse arquivamento é então usado para instalar o pacote - tanto na máquina local quanto pode até ser usado para instalar o pacote - em outras máquinas. - - Essa abordagem é usada pela maioria dos gerenciadores de pacote - encontrados nas distribuições comerciais. Exemplos de gerenciadores de - pacote que seguem essa abordagem são RPM (o qual, incidentalmente, é - exigido pela [592]Linux Standard Base Specification), pkg-utils, apt do - Debian, e sistema Portage do Gentoo. Uma dica descrevendo como adotar - esse estilo de gerenciamento de pacote para sistemas LFS está - localizada em - [593]https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.tx - t. - - Criação de arquivos pacote que incluem informação de dependência é - complexa e está além do escopo de LFS. - - Slackware usa um sistema baseado em tar para arquivamentos de pacote. - Esse sistema intencionalmente não manuseia dependências de pacote como - gerenciadores de pacote mais complexos fazem. Para detalhes de - gerenciamento de pacote Slackware, veja - [594]http://www.slackbook.org/html/package-management.html. - -8.2.2.7. Gerenciamento Baseado em Usuária(o) - - Esse esquema, único para LFS, foi concebido por Matthias Benkmann, e - está disponível a partir do [595]Hints Project. Nesse esquema, cada - pacote é instalado como uma(m) usuária(o) separada(o) nos locais - padrão. Arquivos pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e deficiências dessa - abordagem são muito complexas para serem descritas nesta seção. Para os - detalhes, por favor veja a dica em - [596]https://www.linuxfromscratch.org/hints/downloads/files/more_contro - l_and_pkg_man.txt. - -8.2.3. Implantando LFS em Múltiplos Sistemas - - Uma das vantagens de um sistema LFS é a de que não existem arquivos que - dependam da posição de arquivos em um sistema de disco. Clonar uma - construção LFS para outro computador com a mesma arquitetura que a do - sistema base é tão simples quanto usar tar na partição LFS que contém o - diretório raiz (cerca de 250MB descomprimido para uma construção base - LFS), copiando aquele arquivo via transferência de rede ou CD-ROM para - o novo sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: /etc/hosts, - /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, /etc/ld.so.conf, - /etc/sysconfig/rc.site, /etc/sysconfig/network, e - /etc/sysconfig/ifconfig.eth0. - - Um kernel personalizado talvez seja necessário ser construído para o - novo sistema dependendo das diferenças entre hardware de sistema e a - configuração original do kernel. - -Nota - - Tem havido alguns relatos de problemas quando da cópia entre - arquiteturas similares, porém não idênticas. Por exemplo, o conjunto de - instrução para um sistema Intel não é idêntico com um processador AMD, - e versões posteriores de alguns processadores talvez tenham instruções - que estão indisponíveis em versões anteriores. - - Finalmente, o novo sistema tem de ser tornado inicializável via - [597]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.3. Man-pages-5.13 - - O pacote Man-pages contém mais que 2.200 páginas de manual. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 33 MB - -8.3.1. Instalação de Man-pages - - Instale Man-pages executando: -make prefix=/usr install - -8.3.2. Conteúdo de Man-pages - - Arquivos instalados: várias páginas de manual - -Breves Descrições - - man pages - - Descreve funções da linguagem de programação C, arquivos importantes de - dispositivo e arquivos significantes de configuração - -8.4. Iana-Etc-20220207 - - O pacote Iana-Etc fornece dados para serviços e protocolos de rede. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,7 MB - -8.4.1. Instalação de Iana-Etc - - Para esse pacote, nós apenas precisamos copiar os arquivos para o - lugar: -cp services protocols /etc - -8.4.2. Conteúdo de Iana-Etc - - Arquivos instalados: /etc/protocols e /etc/services - -Breves Descrições - - /etc/protocols - - Descreve os vários protocolos DARPA de Internet que estão disponíveis a - partir do subsistema TCP/IP - - /etc/services - - Fornece um mapeamento entre nomes textuais amigáveis para serviços de - internet e seus números de porta atribuídos e tipos de protocolos não - expostos - -8.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 24 UPC - Espaço em disco exigido: 2,8 GB - -8.5.1. Instalação de Glibc - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - Prepare Glibc para compilação: -../configure --prefix=/usr \ - --disable-werror \ - --enable-kernel=3.2 \ - --enable-stack-protector=strong \ - --with-headers=/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --disable-werror - Essa opção desabilita a opção -Werror passada para GCC. Isso é - necessário para a execução da suíte de teste. - - --enable-kernel=3.2 - Essa opção diz ao sistema de construção que este glibc talvez - seja usado com kernels tão antigos quanto 3.2. Isso significa - que a geração de contornos no caso de uma chamada de sistema - introduzida em uma versão posterior não pode ser usada. - - --enable-stack-protector=strong - Essa opção aumenta a segurança de sistema adicionando código - extra para verificar estouros de buffer, tais como ataques de - esmagamento de pilha. - - --with-headers=/usr/include - Essa opção diz ao sistema de construção onde encontrar os - cabeçalhos de API de kernel. - - libc_cv_slibdir=/usr/lib - Essa variável configura a biblioteca correta para todos os - sistemas. Nós não queremos que lib64 seja usada. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para Glibc é considerada crítica. Não - pule sob qualquer circunstância. - - Geralmente uns poucos testes não passam. As falhas de teste listadas - abaixo são usualmente seguras ignorar. -make check - - Você talvez veja algumas falhas de teste. A suíte de teste de Glibc é - de alguma forma dependente do sistema anfitrião. Umas poucas falhas - saídas de mais que 4.200 testes geralmente podem ignoradas. Esta é uma - lista dos problemas mais comuns vistos para versões recentes de LFS: - * io/tst-lchmod é conhecido por falhar no ambiente chroot de LFS. - * misc/tst-ttyname é conhecido por falhar no ambiente chroot de LFS. - * O teste nss/tst-nss-files-hosts-multi é conhecido por falhar se o - sistema não tiver endereços IP não loopback. - - Mesmo sendo uma mensagem inofensiva, o estágio de instalação de Glibc - reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta - com: -touch /etc/ld.so.conf - - Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile - - Instale o pacote: -make install - - Conserte caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd - - Instale o arquivo de configuração e diretório de tempo de execução para - nscd: -cp -v ../nscd/nscd.conf /etc/nscd.conf -mkdir -pv /var/cache/nscd - - Em seguida, instale os locales que podem fazer o sistema responder em - um idioma diferente. Nenhum dos locales é exigido, mas se algum deles - estiver faltando, então as suítes de teste de futuros pacotes pulariam - casos de teste importantes. - - Locales individuais podem ser instalados usando o aplicativo localedef. - Por exemplo, o segundo comando localedef abaixo combina a definição de - locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales necessário - para a cobertura ótima de testes: -mkdir -pv /usr/lib/locale -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i el_GR -f ISO-8859-7 el_GR -localedef -i en_GB -f ISO-8859-1 en_GB -localedef -i en_GB -f UTF-8 en_GB.UTF-8 -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i es_ES -f ISO-8859-15 es_ES@euro -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fa_IR -f UTF-8 fa_IR -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro -localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 -localedef -i is_IS -f ISO-8859-1 is_IS -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i it_IT -f ISO-8859-15 it_IT@euro -localedef -i it_IT -f UTF-8 it_IT.UTF-8 -localedef -i ja_JP -f EUC-JP ja_JP -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true -localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 -localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro -localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R -localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 -localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 -localedef -i zh_CN -f GB18030 zh_CN.GB18030 -localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS -localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 - - Em adição, instale o locale para seu próprio país, idioma e conjunto de - caracteres. - - Alternativamente, instale todos os locales listados no arquivo - glibc-2.35/localedata/SUPPORTED (inclui cada locale listado acima e - muitos mais) de uma vez com o seguinte comando consumidor de tempo: -make localedata/install-locales - - Então, use o comando localedef para criar e instalar locales não - listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são necessários - para alguns testes posteriormente neste capítulo: -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true - -Nota - - Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de tempo de - execução. Se essa capacidade for necessária, então as instruções para - instalar libidn2 estão na [598]página libidn2 de BLFS. - -8.5.2. Configurando Glibc - -8.5.2.1. Adicionando nsswitch.conf - - O arquivo /etc/nsswitch.conf precisa ser criado, pois os padrões de - Glibc não funcionam bem em um ambiente em rede. - - Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -cat > /etc/nsswitch.conf << "EOF" -# Begin /etc/nsswitch.conf - -passwd: files -group: files -shadow: files - -hosts: files dns -networks: files - -protocols: files -services: files -ethers: files -rpc: files - -# End /etc/nsswitch.conf -EOF - -8.5.2.2. Adicionando dados de fuso horário - - Instale e configure os dados de fuso horário com o seguinte: -tar -xf ../../tzdata2021e.tar.gz - -ZONEINFO=/usr/share/zoneinfo -mkdir -pv $ZONEINFO/{posix,right} - -for tz in etcetera southamerica northamerica europe africa antarctica \ - asia australasia backward; do - zic -L /dev/null -d $ZONEINFO ${tz} - zic -L /dev/null -d $ZONEINFO/posix ${tz} - zic -L leapseconds -d $ZONEINFO/right ${tz} -done - -cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO -zic -d $ZONEINFO -p America/New_York -unset ZONEINFO - - O significado dos comandos zic: - - zic -L /dev/null ... - Isso cria fusos horários posix sem quaisquer segundos bissextos. - É convencional colocá-los em ambos zoneinfo e zoneinfo/posix. É - necessário colocar os fusos horários POSIX em zoneinfo, do - contrário várias suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não pretende nunca - atualizar os fusos horários, você poderia economizar 1,9 MB não - usando o diretório posix, mas alguns aplicativos ou suítes de - teste poderiam produzir algumas falhas. - - zic -L leapseconds ... - Isso cria fusos horários corretos, incluindo segundos bissextos. - Em um sistema embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, ou se importa com a - hora correta, você poderia economizar 1,9 MB omitindo o - diretório right. - - zic ... -p ... - Isso cria o arquivo posixrules. Nós usamos New York, pois POSIX - exige que as regras de horário de verão estejam de acordo com - regras dos Estados Unidos da América do Norte. - - Uma maneira para determinar o fuso horário local é executando o - seguinte script: -tzselect - - Depois de responder à umas poucas perguntas sobre a localização, o - script retornará o nome do fuso horário (por exemplo, - America/Edmonton). Existem também alguns outros possíveis fusos - horários listados em /usr/share/zoneinfo, tais como Canada/Eastern ou - EST5EDT que não são identificados pelo script, mas podem ser usados. - - Então crie o arquivo /etc/localtime executando: -ln -sfv /usr/share/zoneinfo/ /etc/localtime - - Substitua com o nome do fuso horário selecionado (por exemplo, - Canada/Eastern). - -8.5.2.3. Configurando o Carregador Dinâmico - - Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em /lib - e /usr/lib por bibliotecas dinâmicas que são necessárias para - aplicativos assim que são executados. Entretanto, se existirem - bibliotecas em outros diretórios diferentes de /lib e /usr/lib, então - esses precisam ser adicionados ao arquivo /etc/ld.so.conf para a - finalidade de que o carregador dinâmico encontre elas. Dois diretórios - que são comumente conhecidos por conterem bibliotecas adicionais são - /usr/local/lib e /opt/lib, então adicione esses diretórios ao caminho - de busca do carregador dinâmico. - - Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -cat > /etc/ld.so.conf << "EOF" -# Begin /etc/ld.so.conf -/usr/local/lib -/opt/lib - -EOF - - Se desejado, o carregador dinâmico também pode pesquisar um diretório e - incluir o conteúdo de arquivos encontrados lá. Geralmente os arquivos - nesse diretório include são uma linha especificando o caminho de - biblioteca desejado. Para adicionar essa capacidade, execute os - seguintes comandos: -cat >> /etc/ld.so.conf << "EOF" -# Add an include directory -include /etc/ld.so.conf.d/*.conf - -EOF -mkdir -pv /etc/ld.so.conf.d - -8.5.3. Conteúdo de Glibc - - Aplicativos instalados: gencat, getconf, getent, iconv, iconvconfig, - ldconfig, ldd, lddlibc4, ld.so (link simbólico para - ld-linux-x86-64.so.2 ou ld-linux.so.2), locale, localedef, makedb, - mtrace, nscd, pcprofiledump, pldd, sln, sotruss, sprof, tzselect, - xtrace, zdump, e zic - Bibliotecas instaladas: ld-linux-x86-64.so.2, ld-linux.so.2, - libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so}, libc_nonshared.a, - libc_malloc_debug.so, libcrypt.{a,so}, libdl.{a,so.2}, libg.a, - libm.{a,so}, libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, - libpcprofile.so, libpthread.{a,so.0}, libresolv.{a,so}, librt.{a,so.1}, - libthread_db.so, e libutil.{a,so.1} - Diretórios instalados: /usr/include/arpa, /usr/include/bits, - /usr/include/gnu, /usr/include/net, /usr/include/netash, - /usr/include/netatalk, /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, /usr/include/netiucv, - /usr/include/netpacket, /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, /usr/include/rpc, - /usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale, - /usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo, - /var/cache/nscd, e /var/lib/nss_db - -Descrições Curtas - - gencat - - Gera catálogos de mensagem - - getconf - - Exibe os valores de configuração de sistema para variáveis específicas - do sistema de arquivos - - getent - - Obtém entradas a partir de uma base de dados administrativa - - iconv - - Realiza conversão de conjuntos de caracteres - - iconvconfig - - Cria arquivos de configuração de módulos de carregamento rápido de - iconv - - ldconfig - - Configura as ligações de tempo de execução do vinculador dinâmico - - ldd - - Reporta quis bibliotecas compartilhadas são exigidas por cada dado - aplicativo ou biblioteca compartilhada - - lddlibc4 - - Auxilia ldd com arquivos objeto. Isso não existe em arquiteturas mais - novas como x86_64 - - locale - - Imprime várias informações sobre o locale atual - - localedef - - Compila especificações de locale - - makedb - - Cria um banco de dados simples a partir de uma entrada textual - - mtrace - - Lê e interpreta um arquivo de rastreamento de memória e exibe um resumo - em formato legível por humanos - - nscd - - Um daemon que fornece um cache para as solicitações de serviço de nomes - mais comuns - - pcprofiledump - - Despeja informação gerada pelos perfis do PC - - pldd - - Lista objetos dinâmicos compartilhados usados por processos em execução - - sln - - Um aplicativo ln vinculado estaticamente - - sotruss - - Rastreia chamadas de procedimentos de bibliotecas compartilhadas de um - comando especificado - - sprof - - Lê e exibe dados de perfil de objetos compartilhados - - tzselect - - Pergunta ao usuário sobre a localização do sistema e reporta a - correspondente descrição de fuso horário - - xtrace - - Rastreia a execução de um aplicativo exibindo a função atualmente - executada - - zdump - - O despejador de fuso horário - - zic - - O compilador de fuso horário - - ld-*.so - - O aplicativo ajudador para executáveis de bibliotecas compartilhadas - - libBrokenLocale - - Usado internamente por Glibc como um hack grosseiro para executar - aplicativos quebrados (por exemplo, alguns aplicativos Motif). Veja - comentários em glibc-2.35/locale/broken_cur_max.c para mais informação - - libanl - - Uma biblioteca assíncrona de pesquisa de nomes - - libc - - A biblioteca C principal - - libc_malloc_debug - - Liga verificação de alocação de memória quando pré-carregada - - libcrypt - - A biblioteca de criptografia - - libdl - - Biblioteca fictícia que não contém funções. Anteriormente era a - biblioteca de interface do vinculador dinâmico, cujas funções agora - estão em libc - - libg - - Biblioteca fictícia que não contém funções. Anteriormente era uma - biblioteca de tempo de execução para g++ - - libm - - A biblioteca matemática - - libmvec - - A biblioteca de vetor matemático, vinculada conforme necessária quando - libm for usada - - libmcheck - - Liga verificação de alocação de memória quando quando vinculada para - - libmemusage - - Usado por memusage para ajudar a coletar informação sobre o uso de - memória de um aplicativo - - libnsl - - A biblioteca de serviços de rede, agora obsoleta - - libnss_* - - Os módulos de Name Service Switch, contendo funções para resolução de - nomes de hosts, nomes de usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por libc conforme a configuração - em /etc/nsswitch.conf - - libpcprofile - - Pode ser pré-carregada para PC perfilar um executável - - libpthread - - Biblioteca fictícia que não contém funções. Anteriormente continha - funções fornecendo a maior parte das interfaces especificadas pela - Extensão POSIX.1b de Tempo Real, agora as funções estão em libc - - libresolv - - Contém funções para criação, envio e interpretação de pacotes para os - servidores de nomes de domínio de Internet - - librt - - Contém funções fornecendo a maior parte das interfaces especificadas - pela Extensão POSIX.1b de Tempo Real - - libthread_db - - Contém funções úteis para construir depuradores para aplicativos de - múltiplas camadas - - libutil - - Biblioteca fictícia que não contém funções. Anteriormente continha - código para funções “standard†usadas em muitos utilitários Unix. Essas - funções agora estão em libc - -8.6. Zlib-1.2.11 - - O pacote Zlib contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,0 MB - -8.6.1. Instalação de Zlib - - Prepare Zlib para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libz.a - -8.6.2. Conteúdo de Zlib - - Bibliotecas instaladas: libz.so - -Descrições Curtas - - libz - - Contém funções de compressão e descompressão usadas por alguns - aplicativos - -8.7. Bzip2-1.0.8 - - O pacote Bzip2 contém aplicativos para comprimir e descomprimir - arquivos. Comprimir arquivos de texto com bzip2 gera uma muito melhor - percentagem de compressão que com o tradicional gzip. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,2 MB - -8.7.1. Instalação de Bzip2 - - Aplique um patch que instalará a documentação para esse pacote: -patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch - - O seguinte comando garante que a instalação de links simbólicos sejam - relativos: -sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile - - Garanta que as páginas de manual sejam instaladas na localização - correta: -sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile - - Prepare Bzip2 para compilação com: -make -f Makefile-libbz2_so -make clean - - O significado do parâmetro de make: - - -f Makefile-libbz2_so - Isso causará Bzip2 ser construído usando um arquivo Makefile - diferente, nesse caso o arquivo Makefile-libbz2_so, o qual cria - uma biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. - - Compile e teste o pacote: -make - - Instale os aplicativos: -make PREFIX=/usr install - - Instale a biblioteca compartilhada: -cp -av libbz2.so.* /usr/lib -ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so - - Instale o binário compartilhado bzip2 no diretório /usr/bin, e - substitua duas cópias de bzip2 com links simbólicos: -cp -v bzip2-shared /usr/bin/bzip2 -for i in /usr/bin/{bzcat,bunzip2}; do - ln -sfv bzip2 $i -done - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libbz2.a - -8.7.2. Conteúdo de Bzip2 - - Aplicativos instalados: bunzip2 (link para bzip2), bzcat (link para - bzip2), bzcmp (link para bzdiff), bzdiff, bzegrep (link para bzgrep), - bzfgrep (link para bzgrep), bzgrep, bzip2, bzip2recover, bzless (link - para bzmore), e bzmore - Bibliotecas instaladas: libbz2.so - Diretórios instalados: /usr/share/doc/bzip2-1.0.8 - -Descrições Curtas - - bunzip2 - - Descomprime arquivos compactados com bzip - - bzcat - - Descomprime para a saída padrão - - bzcmp - - Executa cmp em arquivos compactados com bzip - - bzdiff - - Executa diff em arquivos compactados com bzip - - bzegrep - - Executa egrep em arquivos compactados com bzip - - bzfgrep - - Executa fgrep em arquivos compactados com bzip - - bzgrep - - Executa grep em arquivos compactados com bzip - - bzip2 - - Comprime arquivos usando o algoritmo de compressão de texto de - classificação de blocos Burrows-Wheeler com codificação Huffman; a taxa - de compressão é melhor que aquela obtida por compressores mais - convencionais usando algoritmos “Lempel-Zivâ€, como gzip - - bzip2recover - - Tenta recuperar dados a partir de arquivos danificados comprimidos com - bzip - - bzless - - Executa less em arquivos compactados com bzip - - bzmore - - Executa more em arquivos compactados com bzip - - libbz2 - - A biblioteca que implementa compressão de dados de classificação de - blocos sem perdas, usando o algoritmo Burrows-Wheeler - -8.8. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.8.1. Instalação de Xz - - Prepare Xz para compilação com: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.8.2. Conteúdo de Xz - - Aplicativos instalados: lzcat (link para xz), lzcmp (link para xzdiff), - lzdiff (link para xzdiff), lzegrep (link para xzgrep), lzfgrep (link - para xzgrep), lzgrep (link para xzgrep), lzless (link para xzless), - lzma (link para xz), lzmadec, lzmainfo, lzmore (link para xzmore), - unlzma (link para xz), unxz (link para xz), xz, xzcat (link para xz), - xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep (link para xzgrep), - xzfgrep (link para xzgrep), xzgrep, xzless, e xzmore - Bibliotecas instaladas: liblzma.so - Diretórios instalados: /usr/include/lzma e /usr/share/doc/xz-5.2.5 - -Descrições Curtas - - lzcat - - Descomprime para a saída padrão - - lzcmp - - Executa cmp em arquivos comprimidos LZMA - - lzdiff - - Executa diff em arquivos comprimidos LZMA - - lzegrep - - Executa egrep em arquivos comprimidos LZMA - - lzfgrep - - Executa fgrep em arquivos comprimidos LZMA - - lzgrep - - Executa grep em arquivos comprimidos LZMA - - lzless - - Executa less em arquivos comprimidos LZMA - - lzma - - Comprime ou descomprime arquivos usando o formato LZMA - - lzmadec - - Um decodificador pequeno e rápido para arquivos comprimidos LZMA - - lzmainfo - - Exibe informação armazenada no cabeçalho de arquivo comprimido com LZMA - - lzmore - - Executa more em arquivos comprimidos LZMA - - unlzma - - Descomprime arquivos usando o formato LZMA - - unxz - - Descomprime arquivos usando o formato XZ - - xz - - Comprime ou descomprime arquivos usando o formato XZ - - xzcat - - Descomprime para a saída padrão - - xzcmp - - Executa cmp em arquivos comprimidos XZ - - xzdec - - Um decodificador pequeno e rápido para arquivos comprimidos XZ - - xzdiff - - Executa diff em arquivos comprimidos XZ - - xzegrep - - Executa egrep em arquivos comprimidos XZ - - xzfgrep - - Executa fgrep em arquivos comprimidos XZ - - xzgrep - - Executa grep em arquivos comprimidos XZ - - xzless - - Executa less em arquivos comprimidos XZ - - xzmore - - Executa more em arquivos comprimidos XZ - - liblzma - - A biblioteca que implementa compressão de dados de classificação de - blocos, sem perdas, usando o algoritmo de cadeia Lempel-Ziv-Markov - -8.9. Zstd-1.5.2 - - Zstandard é um algoritmo de tempo real de compressão, fornecendo taxas - altas de compressão. Ele oferece um intervalo muito amplo de - combinações de compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 55 MB - -8.9.1. Instalação de Zstd - - Compile o pacote: -make - -Nota - - Na saída de teste existem muitos lugares que indicam 'failed'. Essas - são esperadas e apenas 'FAIL' é uma falha atual de teste. Não deveriam - existir falhas de teste. - - Para testar os resultados, execute: -make check - - Instale o pacote: -make prefix=/usr install - - Remova a biblioteca estática: -rm -v /usr/lib/libzstd.a - -8.9.2. Conteúdo de Zstd - - Aplicativos instalados: zstd, zstdcat (link para zstd), zstdgrep, - zstdless, zstdmt (link para zstd), e unzstd (link para zstd) - Bibliotecas instaladas: libzstd.so - -Descrições Curtas - - zstd - - Comprime ou descomprime arquivos usando o formato ZSTD - - zstdgrep - - Executa grep em arquivos comprimidos ZSTD - - zstdless - - Executa less em arquivos comprimidos ZSTD - - libzstd - - A biblioteca que implementa compressão de dados sem perdas, usando o - algoritmo ZSTD - -8.10. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.10.1. Instalação de File - - Prepare File para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.10.2. Conteúdo de File - - Aplicativos instalados: file - Bibliotecas instaladas: libmagic.so - -Descrições Curtas - - file - - Tenta classificar cada arquivo dado; ele faz isso realizando vários - testes—testes de sistema de arquivos, testes de números mágicos, e - testes de idioma - - libmagic - - Contém rotinas para reconhecimento de números mágicos, usado pelo - aplicativo file - -8.11. Readline-8.1.2 - - O pacote Readline é um conjunto de bibliotecas que oferecem edição de - linha de comando e capacidades de histórico. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.11.1. Instalação de Readline - - Reinstalar Readline causará as bibliotecas antigas serem movidas para - .old. Mesmo que isso normalmente não seja um problema, em - alguns casos isso pode deflagrar um defeito de vinculação em ldconfig. - Isso pode ser evitado executando os seguintes dois seds: -sed -i '/MV.*old/d' Makefile.in -sed -i '/{OLDSUFF}/c:' support/shlib-install - - Prepare Readline para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-curses \ - --docdir=/usr/share/doc/readline-8.1.2 - - O significado da opção de configure: - - --with-curses - Essa opção diz a Readline que ela pode encontrar as funções de - biblioteca de termcap na biblioteca curses, em vez de uma - biblioteca termcap separada. Ela permite a geração de um arquivo - readline.pc correto. - - Compile o pacote: -make SHLIB_LIBS="-lncursesw" - - O significado da opção de make: - - SHLIB_LIBS="-lncursesw" - Essa opção força Readline a vincular com a biblioteca - libncursesw. - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make SHLIB_LIBS="-lncursesw" install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 - -8.11.2. Conteúdo de Readline - - Bibliotecas instaladas: libhistory.so e libreadline.so - Diretórios instalados: /usr/include/readline e - /usr/share/doc/readline-8.1.2 - -Descrições Curtas - - libhistory - - Fornece uma consistente interface de usuária(o) para recordar linhas de - histórico - - libreadline - - Fornece um conjunto de comandos para manipular texto digitado em uma - sessão interativa de um aplicativo - -8.12. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 49 MB - -8.12.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.12.2. Conteúdo de M4 - - Aplicativo instalado: m4 - -Descrições Curtas - - m4 - - Copia os arquivos dados enquanto expande as macros que eles contém. - Essas macros são ou nativas ou definidas pela(o) usuária(o) e podem - receber qualquer número de argumentos. Além de executar expansão de - macro, m4 tem funções nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, manipular texto, - recursão, etc. O aplicativo m4 pode ser usado ou como um front-end para - um compilador ou como um processador de macro independente - -8.13. Bc-5.2.2 - - O pacote Bc contém uma linguagem de processamento numérica de precisão - arbitrária. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,1 MB - -8.13.1. Instalação de Bc - - Prepare Bc para compilação: -CC=gcc ./configure --prefix=/usr -G -O3 - - O significado das opções de configure: - - CC=gcc - Esse parâmetro especifica o compilador a usar. - - -O3 - Especifica a optimização a usar. - - -G - Omite partes da suíte de teste que não funcionariam sem um GNU - bc presente. - - Compile o pacote: -make - - Para testar bc, execute: -make test - - Instale o pacote: -make install - -8.13.2. Conteúdo de Bc - - Aplicativos instalados: bc e dc - -Descrições Curtas - - bc - - Uma calculadora de linha de comando - - dc - - Uma calculadora de linha de comando de entrada polonesa - reversa - -8.14. Flex-2.6.4 - - O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 32 MB - -8.14.1. Instalação de Flex - - Prepare Flex para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/flex-2.6.4 \ - --disable-static - - Compile o pacote: -make - - Para testar os resultados (cerca de 0,5 UPC), execute: -make check - - Instale o pacote: -make install - - Uns poucos aplicativos não sabem acerca de flex ainda e tentam executar - seu predecessor, lex. Para suportar esses aplicativos, crie um link - simbólico chamado lex que executa flex em modo de emulação lex: -ln -sv flex /usr/bin/lex - -8.14.2. Conteúdo de Flex - - Aplicativos instalados: flex, flex++ (link para flex), e lex (link para - flex) - Bibliotecas instaladas: libfl.so - Diretórios instalados: /usr/share/doc/flex-2.6.4 - -Descrições Curtas - - flex - - Uma ferramenta para gerar aplicativos que reconhecem padrões em texto; - ele permite, para a versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver um aplicativo - especializado - - flex++ - - Uma extensão de flex, é usada para gerar código e classes C++. É um - link simbólico para flex - - lex - - Um link simbólico que executa flex em modo de emulação lex - - libfl - - A biblioteca flex - -8.15. Tcl-8.6.12 - - O pacote Tcl contém a Tool Command Language, uma linguagem de script - robusta de propósito geral. O pacote Expect é escrito na linguagem Tcl. - Tempo aproximado de construção: 3,4 UPC - Espaço em disco exigido: 87 MB - -8.15.1. Instalação de Tcl - - Esse pacote e os próximos dois (Expect e DejaGNU) são instalados para - suportar a execução das suítes de teste para binutils e GCC e outros - pacotes. Instalar três pacotes para propósitos de teste talvez pareça - excessivo, mas é muito assegurador, se não essencial, saber que as - ferramentas mais importantes estão funcionando adequadamente. - - Primeiro, desempacote a documentação executando o seguinte comando: -tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1 - - Prepare Tcl para compilação: -SRCDIR=$(pwd) -cd unix -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - - O significado das opções de configure: - - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - A construção $() é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada em uma - máquina de 32 bits, e é --enable-64bit se executada em uma - máquina de 64 bits. - - Construa o pacote: -make - -sed -e "s|$SRCDIR/unix|/usr/lib|" \ - -e "s|$SRCDIR|/usr/include|" \ - -i tclConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|" \ - -i pkgs/tdbc1.1.3/tdbcConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|" \ - -i pkgs/itcl4.2.2/itclConfig.sh - -unset SRCDIR - - As várias instruções “sed†após o comando “make†removem referências ao - diretório de construção dos arquivos de configuração e as substituem - com o diretório de instalação. Isso não é obrigatório para o restante - de LFS, porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - - Torne as bibliotecas instaladas graváveis de modo que símbolos de - depuração possam ser removidos posteriormente: -chmod -v u+w /usr/lib/libtcl8.6.so - - Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige elas. -make install-private-headers - - Agora faça um necessário link simbólico: -ln -sfv tclsh8.6 /usr/bin/tclsh - - Renomeie uma página de manual que conflita com uma página de manual de - Perl: -mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 - - Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -mkdir -v -p /usr/share/doc/tcl-8.6.12 -cp -v -r ../html/* /usr/share/doc/tcl-8.6.12 - -8.15.2. Conteúdo de Tcl - - Aplicativos instalados: tclsh (link to tclsh8.6) e tclsh8.6 - Bibliotecas instaladas: libtcl8.6.so e libtclstub8.6.a - -Descrições Curtas - - tclsh8.6 - - O shell de comando de Tcl - - tclsh - - Um link para tclsh8.6 - - libtcl8.6.so - - A biblioteca Tcl - - libtclstub8.6.a - - A biblioteca Stub de Tcl - -8.16. Expect-5.45.4 - - O pacote Expect contém ferramentas para automatizar, via diálogos com - script, aplicativos interativos tais como telnet, ftp, passwd, fsck, - rlogin, e tip. Expect também é útil para testar esses mesmos - aplicativos bem como facilitar todos os tipos de tarefas que são - proibitivamente difíceis com qualquer outra coisa. A estrutura - subjacente de DejaGnu é escrita em Expect. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 3,9 MB - -8.16.1. Instalação de Expect - - Prepare Expect para compilação: -./configure --prefix=/usr \ - --with-tcl=/usr/lib \ - --enable-shared \ - --mandir=/usr/share/man \ - --with-tclinclude=/usr/include - - O significado das opções de configure: - - --with-tcl=/usr/lib - Esse parâmetro é necessário para dizer a configure onde o script - tclConfig.sh está localizado. - - --with-tclinclude=/usr/include - Isso explicitamente diz a Expect onde encontrar os cabeçalhos - internos de Tcl. - - Construa o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install -ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib - -8.16.2. Conteúdo de Expect - - Aplicativo instalado: expect - Biblioteca instalada: libexpect5.45.4.so - -Descrições Curtas - - expect - - Comunica-se com outros aplicativos interativos de acordo com um script - - libexpect-5.45.4.so - - Contém funções que permitem a Expect ser usado como uma extensão Tcl ou - ser usado diretamente a partir de C ou C++ (sem Tcl) - -8.17. DejaGNU-1.6.3 - - O pacote DejaGnu contém uma estrutura subjacente para executar suítes - de teste em ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command Language). - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,9 MB - -8.17.1. Instalação de DejaGNU - - A(O) desenvolvedora(r) recomenda construir DejaGNU em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare DejaGNU para compilação: -../configure --prefix=/usr -makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi -makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi - - Construa e instale o pacote: -make install -install -v -dm755 /usr/share/doc/dejagnu-1.6.3 -install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 - - Para testar os resultados, execute: -make check - -8.17.2. Conteúdo de DejaGNU - - Aplicativos instalados: dejagnu e runtest - -Descrições Curtas - - dejagnu - - Iniciador de comando auxiliar DejaGNU - - runtest - - Um script encapsulador que localiza o shell expect adequado e, em - seguida, executa o DejaGNU - -8.18. Binutils-2.38 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 6,1 UPC - Espaço em disco exigido: 4,6 GB - -8.18.1. Instalação de Binutils - - Verifique se os Pseudo Terminais (PTYs) estão funcionando adequadamente - dentro do ambiente chroot executando um teste simples: -expect -c "spawn ls" - - Esse comando deveria retornar o seguinte: -spawn ls - - Se, ao invés, a saída incluir a mensagem abaixo, então o ambiente não - está configurado para operação adequada de PTY. Esse problema precisa - ser resolvido antes de executar as suítes de teste para Binutils e GCC: -The system has no more ptys. -Ask your system administrator to create more. - - A(O) desenvolvedora(r) fez um conjunto curto de comandos para fixar um - problema quando do uso de binutils para construir alguns pacotes BLFS - com Link Time Optimization (LTO) habilitado. Aplique ele agora: -patch -Np1 -i ../binutils-2.38-lto_fix-1.patch - - Agora, faça um conserto identificado pela(o) desenvolvedora(r) que - afeta a construção alguns pacotes: -sed -e '/R_386_TLS_LE /i \ || (TYPE) == R_386_TLS_IE \\' \ - -i ./bfd/elfxx-x86.h - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure --prefix=/usr \ - --enable-gold \ - --enable-ld=default \ - --enable-plugins \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd \ - --with-system-zlib - - O significado dos parâmetros de configure: - - --enable-gold - Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). - - --enable-ld=default - Constrói o vinculador bfd original e instala ele como ambos ld - (o vinculador padrão) e ld.bfd. - - --enable-plugins - Habilita suporte de plugin para o vinculador. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - --with-system-zlib - Usa a biblioteca zlib instalada em vez de construir a versão - incluída. - - Compile o pacote: -make tooldir=/usr - - O significado do parâmetro de make: - - tooldir=/usr - Normalmente, o tooldir (o diretório onde os executáveis estarão - ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por exemplo, máquinas x86_64 - expandiriam isso para /usr/x86_64-pc-linux-gnu. Por causa que - este é um sistema personalizado, esse diretório alvo específico - em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar cruzadamente (por - exemplo, compilar um pacote em uma máquina Intel que gera código - que pode ser executado em máquinas PowerPC). - -Importante - - A suíte de teste para Binutils nesta seção é considerada crítica. Não - pule sob quaisquer circunstâncias. - - Teste os resultados: -make -k check - - Instale o pacote: -make tooldir=/usr install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a - -8.18.2. Conteúdo de Binutils - - Aplicativos instalados: addr2line, ar, as, c++filt, dwp, elfedit, - gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, - size, strings, e strip - Bibliotecas instaladas: libbfd.so, libctf.so, libctf-nobfd.so, e - libopcodes.so - Diretório instalado: /usr/lib/ldscripts - -Descrições Curtas - - addr2line - - Traduz endereços de aplicativos para nomes de arquivo e números de - linha; dado um endereço e o nome de um executável, ele usa a informação - de depuração no executável para determinar qual arquivo fonte e número - de linha estão associados ao endereço - - ar - - Cria, modifica e extrai a partir de arquivamentos - - as - - Um montador que monta a saída de gcc para dentro de arquivos objeto - - c++filt - - Usado pelo vinculador para desmembrar símbolos C++ e Java e para - impedir que funções sobrecarregadas entrem em conflito - - dwp - - O utilitário de empacotamento DWARF - - elfedit - - Atualiza o cabeçalho ELF de arquivos ELF - - gprof - - Exibe dados do perfil de gráfico de chamada - - ld - - Um vinculador que combina um número de objetos e arquivos de - arquivamento em um arquivo, realocando seus dados e vinculando - referências de símbolos - - ld.gold - - Uma versão reduzida de ld que suporta apenas o formato de arquivo de - objeto elf - - ld.bfd - - Hard link para ld - - nm - - Lista os símbolos que ocorrem em um dado arquivo de objeto - - objcopy - - Traduz um tipo de arquivo de objeto em outro - - objdump - - Exibe informação sobre o dado arquivo de objeto, com opções controlando - a informação particular a ser exibida; a informação mostrada é útil - para programadores que estão trabalhando nas ferramentas de compilação - - ranlib - - Gera um índice do conteúdo de um arquivamento e o armazena no - arquivamento; o índice lista todos os símbolos definidos pelos membros - do arquivamento que são arquivos de objeto realocáveis - - readelf - - Exibe informação sobre binários de tipo ELF - - size - - Lista os tamanhos de seção e o tamanho total para os arquivos de objeto - dados - - strings - - Exibe, para cada arquivo dado, as sequências de caracteres imprimíveis - que são de, no mínimo, o tamanho especificado (padronizado para - quatro); para arquivos de objeto, ele imprime, por padrão, apenas as - sequências de caracteres a partir das seções de inicialização e - carregamento enquanto que para outros tipos de arquivos, ele escaneia o - arquivo inteiro - - strip - - Descarta símbolos de arquivos de objeto - - libbfd - - A biblioteca de Descritor de Arquivo Binário - - libctf - - A biblioteca de suporte de depuração Compat ANSI-C Type Format - - libctf-nobfd - - Uma variante de libctf que não usa funcionalidade de libbfd - - libopcodes - - Uma biblioteca para lidar com opcodes—as versões de “texto legível†de - instruções para o processador; é usado para construir utilitários como - objdump - -8.19. GMP-6.2.1 - - O pacote GMP contém bibliotecas matemáticas. Essas tem funções úteis - para aritmética de precisão arbitrária. - Tempo aproximado de construção: 1,0 UPC - Espaço em disco exigido: 52 MB - -8.19.1. Instalação de GMP - -Nota - - Se você estiver construindo para x86 de 32 bits, mas tem uma CPU capaz - de executar código de 64 bits e você especificou CFLAGS no ambiente, - então o script configure tentará configurar para 64 bits e falhará. - Impeça isso invocando o comando de configure abaixo com -ABI=32 ./configure ... - -Nota - - As configurações padrão de GMP produzem bibliotecas otimizadas para o - processador anfitrião. Se bibliotecas adequadas para processadores - menos capazes que a CPU do anfitrião forem desejadas, então bibliotecas - genéricas podem ser criadas executando o seguinte: -cp -v configfsf.guess config.guess -cp -v configfsf.sub config.sub - - Prepare GMP para compilação: -./configure --prefix=/usr \ - --enable-cxx \ - --disable-static \ - --docdir=/usr/share/doc/gmp-6.2.1 - - O significado das novas opções de configure: - - --enable-cxx - Esse parâmetro habilita suporte a C++ - - --docdir=/usr/share/doc/gmp-6.2.1 - Essa variável especifica o lugar correto para a documentação. - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para GMP nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados: -make check 2>&1 | tee gmp-check-log - -Cuidado - - O código em gmp é altamente otimizado para o processador onde ele é - construído. Ocasionalmente, o código que detecta o processador - identifica errado as capacidades de sistema e existirão erros nos - testes ou outros aplicativos que usam as bibliotecas de gmp com a - mensagem "Illegal instruction". Nesse caso, gmp deveria ser - reconfigurado com a opção --build=x86_64-pc-linux-gnu e reconstruído. - - Certifique-se de que todos os 197 testes na suíte de teste passaram. - Verifique os resultados executando o seguinte comando: -awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log - - Instale o pacote e a documentação dele: -make install -make install-html - -8.19.2. Conteúdo de GMP - - Bibliotecas instaladas: libgmp.so e libgmpxx.so - Diretório instalado: /usr/share/doc/gmp-6.2.1 - -Descrições Curtas - - libgmp - - Contém funções matemáticas de precisão - - libgmpxx - - Contém funções matemáticas de precisão C++ - -8.20. MPFR-4.1.0 - - O pacote MPFR contém funções para matemática de precisão múltipla. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 38 MB - -8.20.1. Instalação de MPFR - - Prepare MPFR para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-thread-safe \ - --docdir=/usr/share/doc/mpfr-4.1.0 - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para MPFR nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados e certifique-se de que todos os testes passaram: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.20.2. Conteúdo de MPFR - - Biblioteca instalada: libmpfr.so - Diretório instalado: /usr/share/doc/mpfr-4.1.0 - -Descrições Curtas - - libmpfr - - Contém funções matemáticas de precisão múltipla - -8.21. MPC-1.2.1 - - O pacote MPC contém uma biblioteca para a aritmética de números - complexos com precisão arbitrariamente alta e arredondamento correto de - resultado. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 21 MB - -8.21.1. Instalação de MPC - - Prepare MPC para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/mpc-1.2.1 - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.21.2. Conteúdo de MPC - - Biblioteca instalada: libmpc.so - Diretório instalado: /usr/share/doc/mpc-1.2.1 - -Descrições Curtas - - libmpc - - Contém funções matemáticas complexas - -8.22. Attr-2.5.1 - - O pacote attr contém utilitários para administrar os atributos - estendidos sobre objetos de sistema de arquivos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,1 MB - -8.22.1. Instalação de Attr - - Prepare Attr para compilação: -./configure --prefix=/usr \ - --disable-static \ - --sysconfdir=/etc \ - --docdir=/usr/share/doc/attr-2.5.1 - - Compile o pacote: -make - - Os testes precisam ser executados sobre um sistema de arquivos que - suporte atributos estendidos, tais como os sistemas de arquivos ext2, - ext3 ou ext4. Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.22.2. Conteúdo de Attr - - Aplicativos instalados: attr, getfattr, e setfattr - Biblioteca instalada: libattr.so - Diretórios instalados: /usr/include/attr e /usr/share/doc/attr-2.5.1 - -Descrições Curtas - - attr - - Estende atributos sobre objetos de sistemas de arquivos - - getfattr - - Obtém os atributos estendidos de objetos de sistemas de arquivos - - setfattr - - Configura os atributos estendidos de objetos de sistemas de arquivos - - libattr - - Contém as funções de biblioteca para manipular atributos estendidos - -8.23. Acl-2.3.1 - - O pacote Acl contém utilitários para administrar Listas de Controle de - Acesso, as quais são usadas para definir direitos de acesso - discricionários mais refinados para arquivos e diretórios. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 6,1 MB - -8.23.1. Instalação de Acl - - Prepare Acl para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/acl-2.3.1 - - Compile o pacote: -make - - Os testes de Acl precisam ser executados sobre um sistema de arquivos - que suporte controles de acesso, após Coreutils ter sido construído com - as bibliotecas de Acl. Se desejado, retorne a esse pacote e execute - make check após Coreutils ter sido construído posteriormente neste - capítulo. - - Instale o pacote: -make install - -8.23.2. Conteúdo de Acl - - Aplicativos instalados: chacl, getfacl, e setfacl - Biblioteca instalada: libacl.so - Diretórios instalados: /usr/include/acl e /usr/share/doc/acl-2.3.1 - -Descrições Curtas - - chacl - - Muda a lista de controle de acesso de um arquivo ou diretório - - getfacl - - Obtém listas de controle de acesso de arquivo - - setfacl - - Configura listas de controle de acesso de arquivo - - libacl - - Contém as funções de biblioteca para manipular Listas de Controle de - Acesso - -8.24. Libcap-2.63 - - O pacote Libcap implementa as interfaces de espaço de usuária(o) para - as capacidades POSIX 1003.1e disponíveis em kernels Linux. Essas - capacidades são um particionamento de todo o poderoso privilégio de - root em um conjunto de privilégios distintos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,7 MB - -8.24.1. Instalação de Libcap - - Impeça bibliotecas estáticas de serem instaladas: -sed -i '/install -m.*STA/d' libcap/Makefile - - Compile o pacote: -make prefix=/usr lib=lib - - O significado da opção de make: - - lib=lib - Esse parâmetro configura o diretório de biblioteca para /usr/lib - em vez de /usr/lib64 em x86_64. Ele não tem efeito em x86. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make prefix=/usr lib=lib install - -8.24.2. Conteúdo de Libcap - - Aplicativos instalados: capsh, getcap, getpcaps, e setcap - Bibliotecas instaladas: libcap.so e libpsx.so - -Descrições Curtas - - capsh - - Um encapsulador de shell para explorar e restringir suporte de - capacidade - - getcap - - Examina capacidades de arquivo - - getpcaps - - Exibe as capacidades sobre o(s) processo(s) consultado(s) - - setcap - - Configura capacidades de arquivo - - libcap - - Contém as funções de biblioteca para manipular capacidades POSIX - 1003.1e - - libpsx - - Contém funções para suportar semântica POSIX para chamadas de sistema - associadas com a biblioteca pthread - -8.25. Shadow-4.11.1 - - O pacote Shadow contém aplicativos para manipular senhas de uma maneira - segura. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 49 MB - -8.25.1. Instalação de Shadow - -Nota - - Se você gostaria de reforçar o uso de senhas fortes, então recorra a - [599]https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.h - tml para instalar CrackLib antes de construir Shadow. Então adicione - --with-libcrack ao comando configure abaixo. - - Desabilite a instalação do aplicativo groups e suas páginas de manual, - uma vez que Coreutils fornece uma versão melhor. Também, impeça a - instalação de páginas de manual que já foram instaladas em - [600]Seção 8.3, “Man-pages-5.13â€: -sed -i 's/groups$(EXEEXT) //' src/Makefile.in -find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; -find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; -find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; - - Em vez de usar o método padrão crypt, use o método mais seguro SHA-512 - de encriptação de senha, o qual também permite senhas maiores que oito - (08) caracteres. É também necessário mudar a localização obsoleta - /var/spool/mail para caixas de correio de usuária(o) que Shadow usa por - padrão pela localização /var/mail usada atualmente. E, livre-se de /bin - e /sbin a partir de PATH, uma vez que eles são simples links simbólicos - para seus homônimos em /usr. - -Nota - - Se /bin e (ou) /sbin forem preferidos para serem deixados em PATH por - alguma razão, então modifique PATH em .bashrc após LFS ser construído. -sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \ - -e 's:/var/spool/mail:/var/mail:' \ - -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ - -i etc/login.defs - -Nota - - Se você escolher construir Shadow com suporte CrackLib, então execute o - seguinte: -sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs - - Prepare Shadow para compilação: -touch /usr/bin/passwd -./configure --sysconfdir=/etc \ - --disable-static \ - --with-group-name-max-length=32 - - O significado da opção de configure: - - touch /usr/bin/passwd - O arquivo /usr/bin/passwd precisa existir, pois a localização - dele é codificada rigidamente em alguns aplicativos, e se ele - não existir, então a localização padrão não é correta. - - --with-group-name-max-length=32 - O nome de usuária(o) máximo é trinta e dois (32) caracteres. - Torne o nome de grupo máximo o mesmo. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make exec_prefix=/usr install -make -C man install-man - -8.25.2. Configurando Shadow - - Esse pacote contém utilitários para adicionar, modificar, e deletar - usuárias(os) e grupos; configura e modifica suas senhas; e realiza - outras tarefas administrativas. Para uma explanação completa do que - password shadowing significa, veja o arquivo doc/HOWTO dentro da árvore - desempacotada de fonte. Se usar suporte Shadow, então tenha na mente - que aplicativos que necessitem verificar senhas (gerenciadores de tela, - aplicativos de FTP, daemons pop3, etc.) precisam ser conformes com - Shadow. Isto é, eles precisam ser capazes de trabalhar com senhas - ocultas. - - Para habilitar senhas ocultas, execute o seguinte comando: -pwconv - - Para habilitar senhas ocultas de grupo, execute: -grpconv - - A configuração padrão de Shadow para o utilitário useradd tem umas - poucas ressalvas que precisam de alguma explanação. Primeiro, a ação - padrão para o utilitário useradd é a de criar a(o) usuária(o) e um - grupo de mesmo nome que a(o) usuária(o). Por padrão os números de ID de - usuária(o) (UID) e ID de grupo (GID) iniciarão com 1000. Isso significa - que se você não passar parâmetros para useradd, então cada usuária(o) - será uma(m) membro de um grupo único no sistema. Se esse comportamento - for indesejável, então você precisará passar um parâmetro de -g ou -N - para useradd ou mudar a configuração de USERGROUPS_ENAB em - /etc/login.defs. Veja-se useradd(8) para mais informação. - - Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa ser criado e adaptado para atender às suas - necessidades particulares. Crie ele com: -mkdir -p /etc/default -useradd -D --gid 999 - - Explanações de Parâmetro de /etc/default/useradd - - GROUP=999 - Esse parâmetro configura o início dos números de grupo usado no - arquivo /etc/group. O valor particular 999 vem do parâmetro - --gid acima. Você pode modificá-lo para qualquer coisa que - deseje. Note que useradd nunca reusará um UID ou GID. Se o - número identificado nesse parâmetro for usado, então ele usará o - próximo número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na primeira - vez que você usar useradd sem o parâmetro -g, então você - receberá uma mensagem exibida no terminal que diz: useradd: - unknown GID 999, apesar de a conta estar criada corretamente. - Esse é o motivo pelo qual nós criamos o grupo users com esse ID - de grupo em [601]Seção 7.6, “Criando Arquivos Essenciais e Links - Simbólicosâ€. - - CREATE_MAIL_SPOOL=yes - Esse parâmetro faz com que useradd crie um arquivo de caixa de - correio para a(o) usuária(o) recém criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo mail com - permissões 0660. Se você preferisse que esses arquivos de caixa - de correio não fossem criados por useradd, então execute o - seguinte comando: - -sed -i '/MAIL/s/yes/no/' /etc/default/useradd - -8.25.3. Configurando a senha de root - - Escolha uma senha para a(o) usuária(o) root e configure ela executando: -passwd root - -8.25.4. Conteúdo de Shadow - - Aplicativos instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, - faillog, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, - grpck, grpconv, grpunconv, lastlog, login, logoutd, newgidmap, newgrp, - newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (link - para newgrp), su, useradd, userdel, usermod, vigr (link para vipw), e - vipw - Biblioteca instalada: libsubid.so - Diretório instalado: /etc/default - -Descrições Curtas - - chage - - Usado para alterar o número de dias máximo entre mudanças obrigatórias - de senha - - chfn - - Usado para alterar um nome completo da(o) usuária(o) e outra informação - - chgpasswd - - Usado para atualizar senhas de grupo em modo de lote - - chpasswd - - Usado para atualizar senhas de usuárias(os) em modo de lote - - chsh - - Usado para alterar um shell de login padrão da(o) usuária(o) - - expiry - - Verifica e reforça a política atual de expiração de senha - - faillog - - É Usado para examinar o registro de falhas de login, configurar um - número máximo de falhas antes que uma conta seja bloqueada, ou zerar a - contagem de falhas - - getsubids - - É usado para listar os intervalos subordinados de id para uma(m) - usuária(o) - - gpasswd - - É usado para adicionar e deletar membros e administradoras(es) para - grupos - - groupadd - - Cria um grupo com o nome dado - - groupdel - - Deleta o grupo com o nome dado - - groupmems - - Permite que uma(m) usuária(o) administre sua própria lista de membros - de grupo sem a exigência de privilégios de superusuária(o) - - groupmod - - É usado para modificar o nome ou GID do grupo dado - - grpck - - Verifica a integridade dos arquivos de grupo /etc/group e /etc/gshadow - - grpconv - - Cria ou atualiza o arquivo de grupo de sombra a partir do arquivo de - grupo normal - - grpunconv - - Atualiza /etc/group a partir de /etc/gshadow e então deleta o último - - lastlog - - Reporta o login mais recente de todas(os) as(os) usuárias(os) ou de - uma(m) usuária(o) dada(o) - - login - - É usado pelo sistema para permitir usuárias(os) logar - - logoutd - - É um daemon usado para reforçar restrições sobre horário de logon e - portas - - newgidmap - - É usado para configurar o mapeamento gid de um espaço de nome de - usuária(o) - - newgrp - - É usado para modificar o GID atual durante uma sessão de login - - newuidmap - - É usado para configurar o mapeamento uid de um espaço de nome de - usuária(o) - - newusers - - É usado para criar ou atualizar uma série inteira de contas de - usuárias(os) - - nologin - - Exibe uma mensagem que uma conta não está disponível; projetado para - ser usado como o shell padrão para contas que foram desabilitadas - - passwd - - É usado para modificar a senha para uma conta de usuária(o) ou grupo - - pwck - - Verifica a integridade dos arquivos de senha /etc/passwd e /etc/shadow - - pwconv - - Cria ou atualiza o arquivo de senha de sombra a partir do arquivo de - senha normal - - pwunconv - - Atualiza /etc/passwd a partir de /etc/shadow e então deleta o último - - sg - - Executa um comando dado enquanto o GID da(o) usuária(o) está - configurado para aquele do grupo dado - - su - - Executa um shell com IDs de usuária(o) e grupo substitutos - - useradd - - Cria uma(m) usuária(o) nova(o) com o nome dado, ou atualiza a - informação padrão de nova(o) usuária(o) - - userdel - - Deleta a conta de usuária(o) dada - - usermod - - É usado para modificar o nome de login da(o) usuária(o) dada(o), - Identificação de Usuária(o) (UID), shell, grupo inicial, diretório - home, etc. - - vigr - - Edita os arquivos /etc/group ou /etc/gshadow - - vipw - - Edita os arquivos /etc/passwd ou /etc/shadow - - libsubid - - Biblioteca para processar intervalos subordinados de id para - usuárias(os) - -8.26. GCC-11.2.0 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 153 UPC (com os testes) - Espaço em disco exigido: 4,3 GB - -8.26.1. Instalação de GCC - - Primeiramente, conserte um problema que quebra libasan.a quando da - construção desse pacote com Glibc-2.34 ou posterior: -sed -e '/static.*SIGSTKSZ/d' \ - -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ - -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp - - Se construir em x86_64, então mude o nome de diretório padrão para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure --prefix=/usr \ - LD=ld \ - --enable-languages=c,c++ \ - --disable-multilib \ - --disable-bootstrap \ - --with-system-zlib - - Note que para outras linguagens de programação, existem alguns - pré-requisitos que ainda não estão disponíveis. Veja-se a [602]página - de GCC do Livro BLFS para instruções sobre como construir todas as - linguagens suportadas do GCC. - - O significado dos novos parâmetros de configure: - - LD=ld - Esse parâmetro induz o script configure a usar o ld instalado - pelo binutils construído anteriormente neste capítulo, em vez da - versão construída cruzadamente a qual de outra maneira seria - usada. - - --with-system-zlib - Essa chave diz a GCC para vincular à cópia instalada de sistema - da biblioteca zlib, em vez de sua própria cópia interna. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para GCC é considerada importante, porém - ela toma um tempo longo. Construtoras(es) de primeira vez são - encorajadas(os) a não pular ela. O tempo para executar os testes pode - ser reduzido significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. - - Um conjunto de testes na suíte de teste de GCC é conhecida por esgotar - a pilha padrão, então aumente o tamanho de pilha antes de executar os - testes: -ulimit -s 32768 - - Teste os resultados como uma(m) usuária(o) não privilegiada(o), porém - não pare aos erros: -chown -Rv tester . -su tester -c "PATH=$PATH make -k check" - - Para receber um sumário dos resultados de suíte de teste, execute: -../contrib/test_summary - - Para apenas os sumários, entube a saída por grep -A7 Summ. - - Resultados podem ser comparados com aqueles localizados em - [603]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ e - [604]https://gcc.gnu.org/ml/gcc-testresults/. - - Oito testes relacionados ao analisador são conhecidos por falhar. - - Um teste chamado asan_test.C é conhecido por falhar. - - Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. - - Em libstdc++, um teste de numeração de pontuação e seis testes - relacionados a get_time são conhecidos por falhar. Essas são todas por - causa das definições de locale em glibc que mudaram, porém libstdc++ - atualmente não suporta essas mudanças. - - Umas poucas falhas inesperadas não podem ser evitadas sempre. As(Os) - desenvolvedoras(es) de GCC geralmente estão cientes desses problemas, - mas ainda não os resolveram. A menos que os resultados de teste sejam - amplamente diferentes daqueles na URL acima, é seguro continuar. - - Instale o pacote e remova um diretório desnecessário: -make install -rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/ - - O diretório de construção de GCC é de propriedade de tester agora e a - propriedade do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e grupo root: -chown -v -R root:root \ - /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed} - - Crie um link simbólico exigido por [605]FHS por razões "históricas". -ln -svr /usr/bin/cpp /usr/lib - - Adicione um link simbólico de compatibilidade para habilitar a - construção de aplicativos com Link Time Optimization (LTO): -ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \ - /usr/lib/bfd-plugins/ - - Agora que nosso conjunto de ferramentas final está no lugar, é - importante certificar-se novamente de que compilação e vinculação - funcionarão como esperado. Nós fazemos isso realizando algumas - verificações de sanidade: -echo 'int main(){}' > dummy.c -cc dummy.c -v -Wl,--verbose &> dummy.log -readelf -l a.out | grep ': /lib' - - Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de vinculador - dinâmico): -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Agora tenha certeza de que nós estamos configurados para usar os - arquivos de iniciação corretos: -grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log - - A saída do último comando deveria ser: -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded - - Dependendo da arquitetura de sua máquina, o acima talvez difira - levemente. A diferença será o nome do diretório depois de /usr/lib/gcc. - A coisa importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório /usr/lib. - - Verifique que o compilador está procurando pelos arquivos de cabeçalho - corretos: -grep -B4 '^ /usr/include' dummy.log - - Esse comando deveria retornar a seguinte saída: -#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include - /usr/local/include - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed - /usr/include - - Novamente, o diretório nomeado após seu triplet alvo talvez seja - diferente do que o acima, dependendo da arquitetura de seu sistema. - - Em seguida, verifique que o novo vinculador está sendo usado com os - caminhos de procura corretos: -grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' - - Referências a caminhos que tem componentes com '-linux-gnu' deveriam - ser ignoradas, porém, do contrário, a saída do último comando deveria - ser: -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64") -SEARCH_DIR("/usr/local/lib64") -SEARCH_DIR("/lib64") -SEARCH_DIR("/usr/lib64") -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Um sistema de 32 bits talvez veja uns poucos diretórios diferentes. Por - exemplo, aqui está a saída originária de uma máquina i686: -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") -SEARCH_DIR("/usr/local/lib32") -SEARCH_DIR("/lib32") -SEARCH_DIR("/usr/lib32") -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Em seguida, tenha certeza de que nós estamos usando a libc correta: -grep "/lib.*/libc.so.6 " dummy.log - - A saída do último comando deveria ser: -attempt to open /usr/lib/libc.so.6 succeeded - - Tenha certeza de que GCC está usando o vinculador dinâmico correto: -grep found dummy.log - - A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2 - - Se a saída não aparecer como mostrado acima ou não for recebida de - jeito nenhum, então alguma coisa está seriamente errada. Investigue e - retrace os passos para encontrar onde está o problema e corrija o - mesmo. Quaisquer problemas precisão ser resolvidos antes de continuar - com o processo. - - Uma vez que tudo esteja funcionando corretamente, limpe os arquivos de - teste: -rm -v dummy.c a.out dummy.log - - Finalmente, mova um arquivo mal colocado: -mkdir -pv /usr/share/gdb/auto-load/usr/lib -mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib - -8.26.2. Conteúdo de GCC - - Aplicativos instalados: c++, cc (link para gcc), cpp, g++, gcc, gcc-ar, - gcc-nm, gcc-ranlib, gcov, gcov-dump, gcov-tool, e lto-dump - Bibliotecas instaladas: libasan.{a,so}, libatomic.{a,so}, libcc1.so, - libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so}, - libitm.{a,so}, liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, - libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} - Diretórios instalados: /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 - -Descrições Curtas - - c++ - - O compilador C++ - - cc - - O compilador C - - cpp - - O preprocessador C; é usado pelo compilador para expandir as - declarações #include, #define e similares nos arquivos fonte - - g++ - - O compilador C++ - - gcc - - O compilador C - - gcc-ar - - Um encapsulador em torno de ar que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-nm - - Um encapsulador em torno de nm que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-ranlib - - Um encapsulador em torno de ranlib que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcov - - Uma ferramenta de teste de cobertura; usada para analisar aplicativos - para determinar onde as otimizações terão mais efeito - - gcov-dump - - Ferramenta de despejo de perfil offline gcda e gcno - - gcov-tool - - Ferramenta de processamento de perfil offline gcda - - lto-dump - - Ferramenta para despejar arquivos objeto produzidos por GCC com LTO - habilitado - - libasan - - A biblioteca de tempo de execução do Address Sanitizer - - libatomic - - Biblioteca de tempo de execução atômica interna do GCC - - libcc1 - - A biblioteca de pré-processamento C - - libgcc - - Contém suporte de tempo de execução para gcc - - libgcov - - Essa biblioteca é vinculada a um aplicativo quando GCC for instruído a - habilitar criação de perfil - - libgomp - - Implementação GNU da API OpenMP para programação paralela de memória - compartilhada multiplataforma em C/C++ e Fortran - - libitm - - A biblioteca de memória transacional GNU - - liblsan - - A biblioteca de tempo de execução do Leak Sanitizer - - liblto_plugin - - Plugin LTO do GCC permite ao binutils processar arquivos objeto - produzidos por GCC com LTO habilitado - - libquadmath - - API da Biblioteca Matemática de Precisão Quádrupla GCC - - libssp - - Contém rotinas que suportam a funcionalidade de proteção contra - esmagamento de pilha do GCC - - libstdc++ - - A biblioteca C++ padrão - - libstdc++fs - - Biblioteca de Sistema de Arquivos ISO/IEC TS 18822:2015 - - libsupc++ - - Fornece rotinas de suporte para a linguagem de programação C++ - - libtsan - - A biblioteca de tempo de execução do Thread Sanitizer - - libubsan - - A biblioteca de tempo de execução do Undefined Behavior Sanitizer - -8.27. Pkg-config-0.29.2 - - O pacote pkg-config contém uma ferramenta para passar o caminho include - e (ou) caminhos de biblioteca para ferramentas de construção durante as - fases configure e make de instalações de pacote. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 29 MB - -8.27.1. Instalação de Pkg-config - - Prepare Pkg-config para compilação: -./configure --prefix=/usr \ - --with-internal-glib \ - --disable-host-tool \ - --docdir=/usr/share/doc/pkg-config-0.29.2 - - O significado das novas opções de configure: - - --with-internal-glib - Isso permitirá que pkg-config use a versão interna dele de Glib, - pois uma versão externa não está disponível em LFS. - - --disable-host-tool - Essa opção desabilita a criação de um indesejado hard link para - o aplicativo pkg-config. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.27.2. Conteúdo de Pkg-config - - Aplicativo instalado: pkg-config - Diretório instalado: /usr/share/doc/pkg-config-0.29.2 - -Descrições Curtas - - pkg-config - - Retorna meta informação para a biblioteca ou pacote especificada - -8.28. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 45 MB - -8.28.1. Instalação de Ncurses - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --with-shared \ - --without-debug \ - --without-normal \ - --enable-pc-files \ - --enable-widec \ - --with-pkg-config-libdir=/usr/lib/pkgconfig - - O significado das novas opções de configure: - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --enable-pc-files - Essa chave gera e instala arquivos .pc para pkg-config. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Esse pacote tem uma suíte de teste, entretanto ela só pode ser - executada após o pacote ter sido instalado. Os testes residem no - diretório test/. Veja-se o arquivo README naquele diretório para - maiores detalhes. - - A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. - Isso talvez quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com DESTDIR, e - substitua o arquivo de biblioteca corretamente usando comando install. - Um arquivamento estático inútil que não é manejado por configure também - é removido: -make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib -rm -v dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a} -cp -av dest/* / - - Muitos aplicativos ainda esperam que o vinculador seja capaz de - encontrar bibliotecas Ncurses de caracteres não largos. Ajuste tais - aplicativos para vincularem com bibliotecas de caracteres largos por - meio de links simbólicos e scripts de vinculador: -for lib in ncurses form panel menu ; do - rm -vf /usr/lib/lib${lib}.so - echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so - ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc -done - - Finalmente, certifique-se de que aplicativos antigos que procuram por - -lcurses em tempo de construção ainda sejam construíveis: -rm -vf /usr/lib/libcursesw.so -echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so -ln -sfv libncurses.so /usr/lib/libcurses.so - - Se desejado, então instale a documentação do Ncurses: -mkdir -pv /usr/share/doc/ncurses-6.3 -cp -v -R doc/* /usr/share/doc/ncurses-6.3 - -Nota - - As instruções acima não criam bibliotecas Ncurses de caracteres não - largos, uma vez que nenhum pacote instalado por compilação a partir de - fontes se vincularia a elas em tempo de execução. Entretanto, os únicos - aplicativos somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você precisa ter - tais bibliotecas, por causa de algum aplicativo somente binário ou para - estar conforme com LSB, então construa o pacote novamente com os - seguintes comandos: -make distclean -./configure --prefix=/usr \ - --with-shared \ - --without-normal \ - --without-debug \ - --without-cxx-binding \ - --with-abi-version=5 -make sources libs -cp -av lib/lib*.so.5* /usr/lib - -8.28.2. Conteúdo de Ncurses - - Aplicativos instalados: captoinfo (link para tic), clear, infocmp, - infotocap (link para tic), ncursesw6-config, reset (link para tset), - tabs, tic, toe, tput, e tset - Bibliotecas instaladas: libcursesw.so (link simbólico e script de - vinculador para libncursesw.so), libformw.so, libmenuw.so, - libncursesw.so, libpanelw.so, e homônimos delas de caractere não largo - sem "w" nos nomes de biblioteca. - Diretórios instalados: /usr/share/tabset, /usr/share/terminfo, e - /usr/share/doc/ncurses-6.3 - -Descrições Curtas - - captoinfo - - Converte uma descrição termcap em uma descrição terminfo - - clear - - Limpa a tela, se possível - - infocmp - - Compara ou imprime descrições terminfo - - infotocap - - Converte uma descrição terminfo em uma descrição termcap - - ncursesw6-config - - Fornece informação de configuração para ncurses - - reset - - Reinicializa um terminal para valores padrão dele - - tabs - - Limpa e configura paradas de tabulação em um terminal - - tic - - O compilador de descrição de entrada terminfo que traduz um arquivo - terminfo do formato fonte para o formato binário necessário para as - rotinas de biblioteca ncurses [Um arquivo terminfo contém informação - sobre as capacidades de um certo terminal]. - - toe - - Lista todos os tipos de terminal disponíveis, dando o nome primário e - descrição para cada - - tput - - Torna os valores de capacidades dependentes de terminal disponíveis - para o shell; também pode ser usado para reconfigurar ou inicializar um - terminal ou reportar o nome longo dele - - tset - - Pode ser usado para inicializar terminais - - libcursesw - - Um link para libncursesw - - libncursesw - - Contém funções para exibir texto em muitas formas complexas em uma tela - de terminal; um bom exemplo do uso dessas funções é o menu exibido - durante o make menuconfig do kernel - - libformw - - Contém funções para implementar formulários - - libmenuw - - Contém funções para implementar menus - - libpanelw - - Contém funções para implementar painéis - -8.29. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 31 MB - -8.29.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote e documentação dele: -make install -install -d -m755 /usr/share/doc/sed-4.8 -install -m644 doc/sed.html /usr/share/doc/sed-4.8 - -8.29.2. Conteúdo do Sed - - Aplicativo instalado: sed - Diretório instalado: /usr/share/doc/sed-4.8 - -Descrições Curtas - - sed - - Filtra e transforma arquivos de texto em uma passagem única - -8.30. Psmisc-23.4 - - O pacote Psmisc contém aplicativos para mostrar informação sobre - processos em execução. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,6 MB - -8.30.1. Instalação do Psmisc - - Prepare Psmisc para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.30.2. Conteúdo do Psmisc - - Aplicativos instalados: fuser, killall, peekfd, prtstat, pslog, pstree, - e pstree.x11 (link para pstree) - -Descrições Curtas - - fuser - - Reporta os IDs de Processos (PIDs) de processos que usam os arquivos ou - sistemas de arquivos dados - - killall - - Mata processos pelo nome; envia um sinal para todos os processos - executando quaisquer dos comandos dados - - peekfd - - Dê uma olhada nos descritores de arquivo de um processo em execução, - dado seu PID - - prtstat - - Imprime informação sobre um processo - - pslog - - Reporta o caminho atual de registros de um processo - - pstree - - Exibe processos em execução como uma árvore - - pstree.x11 - - O mesmo que pstree, exceto que ele espera por confirmação antes de sair - -8.31. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 2,7 UPC - Espaço em disco exigido: 233 MB - -8.31.1. Instalação do Gettext - - Prepare Gettext para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/gettext-0.21 - - Compile o pacote: -make - - Para testar os resultados (isso toma um tempo longo, em torno de 3 - UPCs), execute: -make check - - Instale o pacote: -make install -chmod -v 0755 /usr/lib/preloadable_libintl.so - -8.31.2. Conteúdo do Gettext - - Aplicativos instalados: autopoint, envsubst, gettext, gettext.sh, - gettextize, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, - msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, - msguniq, ngettext, recode-sr-latin, e xgettext - Bibliotecas instaladas: libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so - Diretórios instalados: /usr/lib/gettext, /usr/share/doc/gettext-0.21, - /usr/share/gettext, e /usr/share/gettext-0.19.8 - -Descrições Curtas - - autopoint - - Copia arquivos de infraestrutura padrão do Gettext para um pacote fonte - - envsubst - - Substitui variáveis de ambiente em sequências de caracteres de formato - de shell - - gettext - - Traduz uma mensagem de idioma natural para o idioma da(o) usuária(o) - procurando a tradução em um catálogo de mensagens - - gettext.sh - - Primariamente serve como uma biblioteca de função de shell para gettext - - gettextize - - Copia todos os arquivos Gettext padrão para o diretório de nível - superior fornecido de um pacote para começar a internacionalizá-lo - - msgattrib - - Filtra as mensagens de um catálogo de tradução de acordo com os - atributos delas e manipula os atributos - - msgcat - - Concatena e funde os arquivos .po fornecidos - - msgcmp - - Compara dois arquivos .po para verificar se ambos contém o mesmo - conjunto de sequências de caracteres de msgid - - msgcomm - - Encontra as mensagens que são comuns aos arquivos .po fornecidos - - msgconv - - Converte um catálogo de tradução para uma codificação de caracteres - diferente - - msgen - - Cria um catálogo de tradução em inglês - - msgexec - - Aplica um comando a todas as traduções de um catálogo de tradução - - msgfilter - - Aplica um filtro a todas as traduções de um catálogo de tradução - - msgfmt - - Gera um catálogo de mensagem binária a partir de um catálogo de - tradução - - msggrep - - Extrai todas as mensagens de um catálogo de tradução que correspondem a - um determinado padrão ou pertencem a alguns arquivos fonte fornecidos - - msginit - - Cria um novo arquivo .po, inicializando a meta informação com valores - oriundos do ambiente da(o) usuária(o) - - msgmerge - - Combina duas traduções cruas em um arquivo único - - msgunfmt - - Descompila um catálogo de mensagem binário em um texto de tradução cru - - msguniq - - Unifica traduções duplicadas em um catálogo de tradução - - ngettext - - Exibe traduções no idioma nativo de uma mensagem textual cuja forma - gramatical depende de um número - - recode-sr-latin - - Recodifica texto sérvio do cirílico para alfabeto latino - - xgettext - - Extrai as linhas de mensagem traduzíveis dos arquivos fonte fornecidos - para fazer o primeiro modelo de tradução - - libasprintf - - define a classe autosprintf, que torna as rotinas de saída formatada em - C utilizáveis em aplicativos C++, para uso com as sequências de - caracteres e os fluxos - - libgettextlib - - uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libgettextpo - - Usado para escrever aplicativos especializados que processam arquivos - .po; essa biblioteca é usada quando os aplicativos padrão fornecidos - com Gettext (tais como msgcomm, msgcmp, msgattrib, e msgen) não são - suficientes - - libgettextsrc - - Uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libtextstyle - - Biblioteca de estilo de texto - - preloadable_libintl - - Uma biblioteca, destinada a ser usada por LD_PRELOAD que auxilia - libintl no registro de mensagens não traduzidas - -8.32. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 6,3 UPC - Espaço em disco exigido: 53 MB - -8.32.1. Instalação do Bison - - Prepare Bison para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 - - Compile o pacote: -make - - Para testar os resultados (cerca de 5,5 UPCs), execute: -make check - - Instale o pacote: -make install - -8.32.2. Conteúdo do Bison - - Aplicativos instalados: bison e yacc - Biblioteca instalada: liby.a - Diretório instalado: /usr/share/bison - -Descrições Curtas - - bison - - Gera, a partir de uma série de regras, um aplicativo para analisar a - estrutura de arquivos de texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) - - yacc - - Um encapsulador para bison, destinado a aplicativos que ainda chamam - yacc em vez de bison; ele chama bison com a opção -y - - liby - - A biblioteca Yacc contendo implementações de funções compatíveis com - Yacc yyerror e main; essa biblioteca normalmente não é muito útil, mas - POSIX a exige - -8.33. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 36 MB - -8.33.1. Instalação do Grep - - Prepare Grep para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.33.2. Conteúdo do Grep - - Aplicativos instalados: egrep, fgrep, e grep - -Descrições Curtas - - egrep - - Imprime linhas que correspondem a uma expressão regular estendida - - fgrep - - Imprime linhas que correspondem a uma lista de sequências de caracteres - fixas - - grep - - Imprime linhas que correspondem a expressão regular básica - -8.34. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 50 MB - -8.34.1. Instalação do Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bash-5.1.16 \ - --without-bash-malloc \ - --with-installed-readline - - O significado da nova opção de configure: - - --with-installed-readline - Essa opção diz a Bash para usar a biblioteca readline que já - está instalada no sistema em vez de usar sua própria versão de - readline. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Para preparar os testes, garanta que a(o) usuária(o) tester pode - escrever na árvore de fontes: -chown -Rv tester . - - A suíte de teste do pacote é desenhada para ser executada como uma(m) - usuária(o) não root que é proprietária(o) do terminal conectado à - entrada padrão. Para satisfazer a exigência, crie um novo pseudo - terminal usando Expect e execute os testes como a(o) usuária (o) - tester: -su -s /usr/bin/expect tester << EOF -set timeout -1 -spawn make tests -expect eof -lassign [wait] _ _ _ value -exit $value -EOF - - Instale o pacote: -make install - - Execute o aplicativo recém compilado bash (substituindo o que está - sendo executado atualmente): -exec /usr/bin/bash --login - -8.34.2. Conteúdo do Bash - - Aplicativos instalados: bash, bashbug, e sh (link para bash) - Diretórios instalados: /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 - -Descrições Curtas - - bash - - Um interpretador de comandos vastamente utilizado; ele realiza muitos - tipos de expansões e substituições sobre uma dada linha de comando - antes de executá-la, portanto fazendo desse interpretador uma - ferramenta poderosa - - bashbug - - Um script de shell para ajudar a(o) usuária(o) a compor e enviar - relatórios de defeitos formatados padrão concernentes a bash - - sh - - Um link simbólico para o aplicativo bash; quando invocado como sh, bash - tenta imitar o comportamento de inicialização de versões históricas do - sh o mais próximo possível, enquanto também conformando com o padrão - POSIX - -8.35. Libtool-2.4.6 - - O pacote Libtool contém o script de suporte à biblioteca genérica GNU. - Ele esconde a complexidade de usar bibliotecas compartilhadas em uma - interface consistente e portável. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 43 MB - -8.35.1. Instalação do Libtool - - Prepare Libtool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para libtool pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Cinco testes são conhecidos por falharem dentro do ambiente de - construção LFS devido a uma dependência circular, porém todos os testes - passam se verificados novamente após automake ser instalado. - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libltdl.a - -8.35.2. Conteúdo do Libtool - - Aplicativos instalados: libtool e libtoolize - Biblioteca instalada: libltdl.so - Diretórios instalados: /usr/include/libltdl e /usr/share/libtool - -Descrições Curtas - - libtool - - Fornece serviços generalizados de suporte à construção de bibliotecas - - libtoolize - - Fornece uma maneira padrão de adicionar suporte libtool a um pacote - - libltdl - - Esconde as várias dificuldades do dlopening de bibliotecas - -8.36. GDBM-1.23 - - O pacote GDBM contém o GNU Database Manager. Ele é uma biblioteca de - funções de banco de dados que usa hash extensível e funciona semelhante - ao dbm UNIX padrão. A biblioteca fornece primitivos para armazenar - pares de chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 13 MB - -8.36.1. Instalação do GDBM - - Prepare GDBM para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-libgdbm-compat - - O significado da opção de configure: - - --enable-libgdbm-compat - Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS talvez - exijam as rotinas DBM mais antigas que ela fornece. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.36.2. Conteúdo do GDBM - - Aplicativos instalados: gdbm_dump, gdbm_load, e gdbmtool - Bibliotecas instaladas: libgdbm.so e libgdbm_compat.so - -Descrições Curtas - - gdbm_dump - - Despeja um banco de dados GDBM para um arquivo - - gdbm_load - - Recria um banco de dados GDBM a partir de um arquivo de despejo - - gdbmtool - - Testa e modifica um banco de dados GDBM - - libgdbm - - Contém funções para manipular um banco de dados com hash - - libgdbm_compat - - Biblioteca de compatibilidade contendo funções DBM mais antigas - -8.37. Gperf-3.1 - - Gperf gera uma função de hash perfeita a partir de um conjunto de - chaves. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,0 MB - -8.37.1. Instalação do Gperf - - Prepare Gperf para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1 - - Compile o pacote: -make - - Os testes são conhecidos por falharem se executar múltiplos testes - simultâneos (opção -j maior que 1). Para testar os resultados, execute: -make -j1 check - - Instale o pacote: -make install - -8.37.2. Conteúdo do Gperf - - Aplicativo instalado: gperf - Diretório instalado: /usr/share/doc/gperf-3.1 - -Descrições Curtas - - gperf - - Gera um hash perfeito a partir de um conjunto de chaves - -8.38. Expat-2.4.6 - - O pacote Expat contém uma biblioteca C orientada a fluxo para analisar - XML. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.38.1. Instalação do Expat - - Prepare Expat para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/expat-2.4.6 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6 - -8.38.2. Conteúdo do Expat - - Aplicativo instalado: xmlwf - Biblioteca instalada: libexpat.so - Diretório instalado: /usr/share/doc/expat-2.4.6 - -Descrições Curtas - - xmlwf - - É um utilitário não validador para verificar se documentos XML estão - bem formados ou não - - libexpat - - Contém funções de API para analisar XML - -8.39. Inetutils-2.2 - - O pacote Inetutils contém aplicativos para redes básicas. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 30 MB - -8.39.1. Instalação do Inetutils - - Prepare Inetutils para compilação: -./configure --prefix=/usr \ - --bindir=/usr/bin \ - --localstatedir=/var \ - --disable-logger \ - --disable-whois \ - --disable-rcp \ - --disable-rexec \ - --disable-rlogin \ - --disable-rsh \ - --disable-servers - - O significado das opções de configure: - - --disable-logger - Essa opção impede que o Inetutils instale o aplicativo logger, o - qual é usado por scripts para passar mensagens para o System Log - Daemon. Não instale isso, pois o Util-linux instala uma versão - mais recente. - - --disable-whois - Essa opção desabilita a construção do cliente whois do - Inetutils, o qual está desatualizado. Instruções para um cliente - whois melhor estão no livro BLFS. - - --disable-r* - Esses parâmetros desabilitam a construção de aplicativos - obsoletos que não deveriam ser usados devido a problemas de - segurança. As funções fornecidas por esses aplicativos podem ser - fornecidas pelo pacote openssh no livro BLFS. - - --disable-servers - Isso desabilita a instalação dos vários servidores de rede - incluídos como parte do pacote Inetutils. Esses servidores são - considerados inadequados em um sistema LFS básico. Alguns são - inseguros por natureza e só são considerados seguros em redes - confiáveis. Observe que substituições melhores estão disponíveis - para muitos desses servidores. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Mova um aplicativo para o local adequado: -mv -v /usr/{,s}bin/ifconfig - -8.39.2. Conteúdo do Inetutils - - Aplicativos instalados: dnsdomainname, ftp, ifconfig, hostname, ping, - ping6, talk, telnet, tftp, e traceroute - -Descrições Curtas - - dnsdomainname - - Mostra o nome de domínio DNS do sistema - - ftp - - É o aplicativo de protocolo de transferência de arquivos - - hostname - - Relata ou configura o nome do dispositivo - - ifconfig - - Gerencia interfaces de rede - - ping - - Envia pacotes de solicitação de echo e informa quanto tempo as - respostas demoram - - ping6 - - Uma versão do ping para redes IPv6 - - talk - - É usado para conversar com outra(o) usuária(o) - - telnet - - Uma interface para o protocolo TELNET - - tftp - - Um aplicativo de transferência de arquivos trivial - - traceroute - - Rastreia a rota que seus pacotes fazem a partir do dispositivo em que - você está trabalhando para outro dispositivo em uma rede, mostrando - todos os saltos intermediários (gateways) ao longo do caminho - -8.40. Less-590 - - O pacote Less contém um visualizador de arquivos de texto. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,2 MB - -8.40.1. Instalação do Less - - Prepare Less para compilação: -./configure --prefix=/usr --sysconfdir=/etc - - O significado das opções de configure: - - --sysconfdir=/etc - Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos arquivos de configuração. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.40.2. Conteúdo do Less - - Aplicativos instalados: less, lessecho e lesskey - -Descrições Curtas - - less - - Um visualizador de arquivos ou paginador; ele exibe o conteúdo do - arquivo dado, permitindo que a(o) usuária(o) role, encontre sequências - de caracteres e pule para marcas - - lessecho - - Necessário para expandir metacaracteres, tais como * e ?, em nomes de - arquivos em sistemas Unix - - lesskey - - Usado para especificar os atalhos de tecla para less - -8.41. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 9,3 UPC - Espaço em disco exigido: 226 MB - -8.41.1. Instalação do Perl - - Primeiro, aplique uma correção que conserta um problema destacado por - versões recentes do gdbm: -patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch - - Essa versão do Perl agora constrói os módulos Compress::Raw::Zlib e - Compress::Raw::BZip2. Por padrão, Perl usará uma cópia interna dos - fontes para a construção. Execute o seguinte comando de modo que Perl - usará as bibliotecas instaladas no sistema: -export BUILD_ZLIB=False -export BUILD_BZIP2=0 - - Para ter controle completo sobre a maneira como Perl é configurado, - você pode remover as opções “-des†do comando seguinte e escolher - manualmente a maneira como esse pacote é construído. Alternativamente, - use o comando exatamente como está abaixo para usar os padrões que o - Perl detecta automaticamente: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \ - -Dman1dir=/usr/share/man/man1 \ - -Dman3dir=/usr/share/man/man3 \ - -Dpager="/usr/bin/less -isR" \ - -Duseshrplib \ - -Dusethreads - - O significado das opções de configure: - - -Dvendorprefix=/usr - Isso garante que perl saiba como dizer aos pacotes onde eles - deveriam instalar módulos perl deles. - - -Dpager="/usr/bin/less -isR" - Isso garante que less seja usado em vez de more. - - -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 - Uma vez que o Groff ainda não está instalado, Configure pensa - que nós não queremos páginas de manual para o Perl. Emitir esses - parâmetros substitui essa decisão. - - -Duseshrplib - Constrói uma libperl compartilhada necessária para alguns - módulos perl. - - -Dusethreads - Constrói perl com suporte para camadas. - - -Dprivlib,-Darchlib,-Dsitelib,... - Essas configurações definem onde o Perl está procurando módulos - instalados. As(Os) editoras(es) de LFS optaram por colocá-los em - uma estrutura de diretórios baseada na versão Major.Minor do - Perl (5.34), a qual permite atualizar o Perl para níveis de - Patch mais recentes (5.34.0) sem a necessidade de reinstalar - todos os módulos novamente. - - Compile o pacote: -make - - Para testar os resultados (aproximadamente 11 UPCs), execute: -make test - - Instale o pacote e limpe: -make install -unset BUILD_ZLIB BUILD_BZIP2 - -8.41.2. Conteúdo do Perl - - Aplicativos instalados: corelist, cpan, enc2xs, encguess, h2ph, h2xs, - instmodsh, json_pp, libnetcfg, perl, perl5.34.0 (hard link para perl), - perlbug, perldoc, perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, - prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp e zipdetails - Bibliotecas instaladas: Muitas, as quais não podem ser todas listadas - aqui - Diretório instalado: /usr/lib/perl5 - -Descrições Curtas - - corelist - - Um frontend de linha de comando para Module::CoreList - - cpan - - Interage com o Comprehensive Perl Archive Network (CPAN) a partir da - linha de comando - - enc2xs - - Constrói uma extensão Perl para o módulo Encode a partir tanto de - Mapeamentos de Caracteres Unicode quanto de Arquivos de Codificação Tcl - - encguess - - Advinha o tipo de codificação de um ou vários arquivos - - h2ph - - Converte arquivos de cabeçalho C .h para arquivos de cabeçalho Perl .ph - - h2xs - - Converte arquivos de cabeçalho C .h para extensões Perl - - instmodsh - - Script de shell para examinar módulos Perl instalados, e pode criar um - tarball a partir de um módulo instalado - - json_pp - - Converte dados entre certos formatos de entrada e saída - - libnetcfg - - Pode ser usado para configurar o módulo Perl libnet - - perl - - Combina algumas das melhores características do C, sed, awk e sh em uma - linguagem canivete suíço única - - perl5.34.0 - - Um hard link para perl - - perlbug - - Usado para gerar relatórios de defeitos sobre o Perl, ou módulos que - vem como ele, e enviá-los por correio - - perldoc - - Exibe uma parte da documentação em formato de pod que está incorporada - na árvore de instalação do Perl ou em um script Perl - - perlivp - - O Procedimento de Verificação de Instalação do Perl; pode ser usado - para verificar se o Perl e suas bibliotecas foram instalados - corretamente - - perlthanks - - Usado para gerar mensagens de agradecimento para enviar para as(os) - desenvolvedoras(es) Perl - - piconv - - Uma versão Perl do conversor de codificação de caracteres iconv - - pl2pm - - Uma ferramenta rudimentar para converter arquivos Perl4 .pl para - módulos Perl5 .pm - - pod2html - - Converte arquivos do formato pod para o formato HTML - - pod2man - - Converte dados pod para entrada formatada *roff - - pod2text - - Converte dados pod para texto ASCII formatado - - pod2usage - - Imprime mensagens de uso a partir de documentos pod incorporados em - arquivos - - podchecker - - Verifica a sintaxe de arquivos de documentação no formato pod - - podselect - - Exibe seções selecionadas de documentação pod - - prove - - Ferramenta de linha de comando para executar testes contra o módulo - Test::Harness - - ptar - - Um aplicativo similar ao tar escrito em Perl - - ptardiff - - Um aplicativo Perl que compara um arquivamento extraído com um não - extraído - - ptargrep - - Um aplicativo Perl que aplica correspondência de padrão ao conteúdo de - arquivos em um arquivamento tar - - shasum - - Imprime ou verifica somas de verificação SHA - - splain - - É usado para forçar diagnósticos de aviso detalhados em Perl - - xsubpp - - Converte código Perl XS em código C - - zipdetails - - Exibe detalhes sobre a estrutura interna de um arquivo Zip - -8.42. XML::Parser-2.46 - - O módulo XML::Parser é uma interface Perl para o analisador de XML do - James Clark, Expat. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,4 MB - -8.42.1. Instalação do XML::Parser - - Prepare XML::Parser para compilação: -perl Makefile.PL - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - -8.42.2. Conteúdo do XML::Parser - - Módulo instalado: Expat.so - -Descrições Curtas - - Expat - - Fornece a interface Perl Expat - -8.43. Intltool-0.51.0 - - O Intltool é uma ferramenta de internacionalização usada para extrair - sequências de caracteres traduzíveis a partir de arquivos fonte. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 1,5 MB - -8.43.1. Instalação do Intltool - - Primeiro, conserte um aviso que é causado por perl-5.22 e posteriores: -sed -i 's:\\\${:\\\$\\{:' intltool-update.in - -Nota - - A expressão regular acima parece incomum por causa de todas as contra - barras. O que ela faz é adicionar uma contra barra antes do carácter - abre chave na sequência '\${' resultando em '\$\{'. - - Prepare Intltool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install -install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO - -8.43.2. Conteúdo do Intltool - - Aplicativos instalados: intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize - Diretórios instalados: /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool - -Descrições Curtas - - intltoolize - - Prepara um pacote para usar intltool - - intltool-extract - - Gera arquivos de cabeçalho que podem ser lidos por gettext - - intltool-merge - - Mescla sequência de caracteres traduzidos em vários tipos de arquivos - - intltool-prepare - - Atualiza arquivos pot e mescla eles com arquivos de tradução - - intltool-update - - Atualiza os arquivos de modelo po e mescla eles com as traduções - -8.44. Autoconf-2.71 - - O pacote Autoconf contém aplicativos para produzir scripts de shell que - podem configurar automaticamente código fonte. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 6,8 UPC com - os testes) - Espaço em disco exigido: 24 MB - -8.44.1. Instalação do Autoconf - - Prepare Autoconf para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para autoconf pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Instale o pacote: -make install - -8.44.2. Conteúdo do Autoconf - - Aplicativos instalados: autoconf, autoheader, autom4te, autoreconf, - autoscan, autoupdate e ifnames - Diretório instalado: /usr/share/autoconf - -Descrições Curtas - - autoconf - - Produz scripts de shell que configuram automaticamente pacotes de - código fonte de aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que ele produz são - independentes—executá-los não exige o aplicativo autoconf - - autoheader - - Uma ferramenta para criar arquivos de modelo de declarações #define de - C para configure usar - - autom4te - - Um encapsulador para o processador de macro M4 - - autoreconf - - Automaticamente executa autoconf, autoheader, aclocal, automake, - gettextize e libtoolize na ordem correta para economizar tempo quando - mudanças são feitas para arquivos de modelo autoconf e automake - - autoscan - - Ajuda a criar um arquivo configure.in para um pacote de aplicativos; - ele examina os arquivos fonte em uma árvore de diretórios, procurando - neles por problemas de portabilidade comuns, e cria um arquivo - configure.scan que serve como um arquivo configure.in preliminar para o - pacote - - autoupdate - - Modifica um arquivo configure.in que ainda chama macros autoconf por - seus nomes antigos para usar os nomes de macro atuais - - ifnames - - Ajuda ao escrever arquivos configure.in para um pacote de aplicativos; - ele imprime os identificadores que o pacote usa em condicionais de - preprocessador C [Se um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a determinar o que - configure precisa checar. Ele também pode preencher lacunas em um - arquivo configure.in gerado por autoscan]. - -8.45. Automake-1.16.5 - - O pacote Automake contém aplicativos para gerar Makefiles para uso com - Autoconf. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 8,3 UPC com - os testes) - Espaço em disco exigido: 115 MB - -8.45.1. Instalação do Automake - - Prepare Automake para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5 - - Compile o pacote: -make - - Usar a opção de make -j4 acelera os testes, mesmo em sistemas com - apenas um processador, devido a atrasos internos em testes individuais. - Para testar os resultados, execute: -make -j4 check - - O teste t/subobj.sh é conhecido por falhar. - - Instale o pacote: -make install - -8.45.2. Conteúdo do Automake - - Aplicativos instalados: aclocal, aclocal-1.16 (hard link com aclocal), - automake e automake-1.16 (hard link com automake) - Diretórios instalados: /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e /usr/share/doc/automake-1.16.5 - -Descrições Curtas - - aclocal - - Gera arquivos aclocal.m4 baseados no conteúdo dos arquivos configure.in - - aclocal-1.16 - - Um hard link para aclocal - - automake - - Uma ferramenta para gerar automaticamente arquivos Makefile.in a partir - de arquivos Makefile.am [Para criar todos os arquivos Makefile.in para - um pacote, execute esse aplicativo no diretório superior. Escaneando o - arquivo configure.in, ele automaticamente encontra cada arquivo - Makefile.am apropriado e gera o arquivo Makefile.in correspondente]. - - automake-1.16 - - Um hard link para automake - -8.46. OpenSSL-3.0.1 - - O pacote OpenSSL contém ferramentas de gerenciamento e bibliotecas - relacionadas à criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, tais como OpenSSH, aplicativos de - correio eletrônico e navegadores de rede (para acessar sítios HTTPS). - Tempo aproximado de construção: 5,4 UPC - Espaço em disco exigido: 474 MB - -8.46.1. Instalação do OpenSSL - - Prepare OpenSSL para compilação: -./config --prefix=/usr \ - --openssldir=/etc/ssl \ - --libdir=lib \ - shared \ - zlib-dynamic - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes de - configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, então ele pode - seguramente ser ignorado. - - Instale o pacote: -sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile -make MANSUFFIX=ssl install - - Adicione a versão ao nome de diretório de documentação, para ser - consistente com outros pacotes: -mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1 - - Se desejado, instale alguma documentação adicional: -cp -vfr doc/* /usr/share/doc/openssl-3.0.1 - -Nota - - Você deveria atualizar OpenSSL quando uma versão nova que conserta - vulnerabilidades for anunciada. Os lançamentos ocorrem em séries, com - uma letra para cada lançamento após o lançamento inicial (por exemplo, - 1.1.1, 1.1.1a, 1.1.1b, etc). Por causa de que LFS instala somente as - bibliotecas compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na - mesma série. - - Entretanto, quaisquer aplicativos em execução vinculados àquelas - bibliotecas precisam ser parados e reiniciados. Leia-se as entradas - relacionadas em [606]Seção 8.2.1, “Problemas de Atualização†para - detalhes. - -8.46.2. Conteúdo do OpenSSL - - Aplicativos instalados: c_rehash e openssl - Bibliotecas instaladas: libcrypto.so e libssl.so - Diretórios instalados: /etc/ssl, /usr/include/openssl, /usr/lib/engines - e /usr/share/doc/openssl-3.0.1 - -Descrições Curtas - - c_rehash - - é um script Perl que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash deles - - openssl - - é uma ferramenta de linha de comando para usar as várias funções - criptográficas da biblioteca de criptografia do OpenSSL a partir do - shell. Ela pode ser usada para várias funções que estão documentadas em - man 1 openssl - - libcrypto.so - - implementa um intervalo amplo de algoritmos criptográficos usados em - vários padrões da Internet. Os serviços fornecidos por essa biblioteca - são usados pelas implementações OpenSSL do SSL, TLS e S/MIME e eles - também tem sido usados para implementar OpenSSH, OpenPGP e outros - padrões criptográficos - - libssl.so - - implementa o protocolo Transport Layer Security (TLS v1). Ela fornece - uma API rica, documentação sobre a qual pode ser encontrada executando - man 3 ssl - -8.47. Kmod-29 - - O pacote Kmod contém bibliotecas e utilitários para carregar módulos de - kernel - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.47.1. Instalação do Kmod - - Prepare Kmod para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --with-openssl \ - --with-xz \ - --with-zstd \ - --with-zlib - - O significado das opções de configure: - - --with-openssl - Essa opção habilita Kmod a lidar com assinaturas PKCS7 para - módulos de kernel. - - --with-xz, --with-zlib, e --with-zstd - Essas opções habilitam Kmod a lidar com módulos de kernel - comprimidos. - - Compile o pacote: -make - - A suíte de teste desse pacote exige cabeçalhos de kernel crus (não os - cabeçalhos de kernel “sanitizados†instalados anteriormente), os quais - estão além do escopo do LFS. - - Instale o pacote e crie links simbólicos para compatibilidade com - Module-Init-Tools (o pacote que anteriormente lidava com módulos de - kernel do Linux): -make install - -for target in depmod insmod modinfo modprobe rmmod; do - ln -sfv ../bin/kmod /usr/sbin/$target -done - -ln -sfv kmod /usr/bin/lsmod - -8.47.2. Conteúdo do Kmod - - Aplicativos instalados: depmod (link para kmod), insmod (link para - kmod), kmod, lsmod (link para kmod), modinfo (link para kmod), modprobe - (link para kmod) e rmmod (link para kmod) - Biblioteca instalada: libkmod.so - -Descrições Curtas - - depmod - - Cria um arquivo de dependência baseado nos símbolos que ele encontra no - conjunto existente de módulos; esse arquivo de dependência é usado por - modprobe para carregar automaticamente os módulos exigidos - - insmod - - Instala um módulo carregável no kernel em execução - - kmod - - Carrega e descarrega módulos de kernel - - lsmod - - Lista módulos atualmente carregados - - modinfo - - Examina um arquivo objeto associado com um módulo de kernel e exibe - qualquer informação que ele possa coletar - - modprobe - - Usa um arquivo de dependência, criado por depmod, para carregar - automaticamente módulos relevantes - - rmmod - - Descarrega módulos a partir do kernel em execução - - libkmod - - Essa biblioteca é usada por outros aplicativos para carregar e - descarregar módulos de kernel - -8.48. Libelf oriundo de Elfutils-0.186 - - Libelf é uma biblioteca para lidar com arquivos ELF (Executable and - Linkable Format). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 116 MB - -8.48.1. Instalação do Libelf - - Libelf é parte do pacote elfutils-0.186. Use o elfutils-0.186.tar.bz2 - como o tarball fonte. - - Prepare Libelf para compilação: -./configure --prefix=/usr \ - --disable-debuginfod \ - --enable-libdebuginfod=dummy - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale apenas Libelf: -make -C libelf install -install -vm644 config/libelf.pc /usr/lib/pkgconfig -rm /usr/lib/libelf.a - -8.48.2. Conteúdo do Libelf - - Biblioteca instalada: libelf.so (link simbólico) e libelf-0.186.so - Diretório instalado: /usr/include/elfutils - -Descrições Curtas - - libelf - - Contém funções de API para lidar com arquivos objeto ELF - -8.49. Libffi-3.4.2 - - A biblioteca Libffi fornece uma interface de programação portável e de - alto nível para várias convenções de chamada. Isso permite a uma(m) - programadora(r) chamar qualquer função especificada por uma descrição - de interface de chamada em tempo de execução. - Tempo aproximado de construção: 1,9 UPC - Espaço em disco exigido: 10 MB - -8.49.1. Instalação do Libffi - -Nota - - Semelhante a GMP, libffi constrói com otimizações específicas para o - processador em uso. Se construir para outro sistema, então exporte - CFLAGS e CXXFLAGS para especificar uma construção genérica para sua - arquitetura. Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. - - Prepare libffi para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-gcc-arch=native \ - --disable-exec-static-tramp - - O significado da opção de configure: - - --with-gcc-arch=native - Garante que GCC otimiza para o sistema atual. Se isso não for - especificado, então o sistema é presumido e o código gerado - talvez não esteja correto para alguns sistemas. Se o código - gerado será copiado de um sistema nativo para um sistema menos - capaz, então use o sistema menos capaz como um parâmetro. Para - detalhes acerca de tipos de sistema alternativos, veja-se - [607]as opções de x86 no manual do GCC. - - --disable-exec-static-tramp - Desabilita o suporte de trampolim estático. Ele é uma nova - característica de segurança em libffi, porém alguns pacotes BLFS - (notadamente GJS e gobject-introspection) não foram adaptados - para ele. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.49.2. Conteúdo do Libffi - - Biblioteca instalada: libffi.so - -Descrições Curtas - - libffi - - contém as funções da API da interface de função estrangeira - -8.50. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 275 MB - -8.50.1. Instalação do Python 3 - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --with-system-ffi \ - --with-ensurepip=yes \ - --enable-optimizations - - O significado das opções de configure: - - --with-system-expat - Essa chave habilita vinculação contra a versão de sistema do - Expat. - - --with-system-ffi - Essa chave habilita vinculação contra a versão de sistema de - libffi. - - --with-ensurepip=yes - Essa chave habilita construir os aplicativos de empacotamento - pip e setuptools. - - --enable-optimizations - Essa chave habilita otimizações estáveis, porém onerosas. - - Compile o pacote: -make - - Executar os testes neste ponto não é recomendado. Os testes são - conhecidos por travar indefinidamente dentro de um ambiente LFS - parcial. Se desejado, então os testes podem ser reexecutados ao final - deste capítulo ou quando Python 3 for reinstalado em BLFS. Para - executar os testes de qualquer maneira, emita make test. - - Instale o pacote: -make install - - Se desejado, então instale a documentação pré-formatada: -install -v -dm755 /usr/share/doc/python-3.10.2/html - -tar --strip-components=1 \ - --no-same-owner \ - --no-same-permissions \ - -C /usr/share/doc/python-3.10.2/html \ - -xvf ../python-3.10.2-docs-html.tar.bz2 - - O significado dos comandos de instalação de documentação: - - --no-same-owner e --no-same-permissions - Garanta que os arquivos instalados tenham a propriedade e as - permissões corretas. Sem essas opções, usar tar instalará os - arquivos de pacote com os valores da(o) criadora(r) upstream. - -8.50.2. Conteúdo do Python 3 - - Aplicativos instalados: 2to3, idle3, pip3, pydoc3, python3 e - python3-config - Bibliotecas instaladas: libpython3.10.so e libpython3.so - Diretórios instalados: /usr/include/python3.10, /usr/lib/python3 e - /usr/share/doc/python-3.10.2 - -Descrições Curtas - - 2to3 - - é um aplicativo Python que lê código fonte Python 2.x e aplica uma - série de consertos para transformá-lo em código Python 3.x válido - - idle3 - - é um script encapsulador que abre um editor GUI ciente de Python. Para - esse script executar, você precisa ter instalado Tk antes do Python, de - forma que o módulo Tkinter Python seja construído - - pip3 - - O instalador de pacote para Python. Você pode usar pip para instalar - pacotes originários do Python Package Index e outros índices - - pydoc3 - - é a ferramenta de documentação Python - - python3 - - é uma linguagem de programação orientada a objeto, interativa e - interpretada - -8.51. Ninja-1.10.2 - - Ninja é um sistema de construção pequeno com um foco em velocidade. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 64 MB - -Dica - - Esta seção não é estritamente exigida para LFS se não usar systemd. Por - outro lado, ninja associado a meson fazem uma combinação de sistema de - construção poderosa, o qual é esperado que seja usado mais e mais - frequentemente. Ele é exigido por muitos pacotes no [608]livro BLFS. - -8.51.1. Instalação do Ninja - - Quando executado, ninja normalmente executa um número máximo de - processos em paralelo. Por padrão, esse é o número de núcleos no - sistema mais dois. Em alguns casos, isso pode superaquecer uma CPU ou - deixar o sistema sem memória. Se executar a partir da linha de comando, - então passar um parâmetro -jN limitará o número de processos paralelos, - porém alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. - - Usar o procedimento opcional abaixo permite que uma(m) usuária(o) - limite o número de processos paralelos via uma variável de ambiente, - NINJAJOBS. Por exemplo, configurar: -export NINJAJOBS=4 - - limitará ninja a quatro processos paralelos. - - Se desejado, então adicione a capacidade de usar a variável de ambiente - NINJAJOBS executando: -sed -i '/int Guess/a \ - int j = 0;\ - char* jobs = getenv( "NINJAJOBS" );\ - if ( jobs != NULL ) j = atoi( jobs );\ - if ( j > 0 ) return j;\ -' src/ninja.cc - - Construa Ninja com: -python3 configure.py --bootstrap - - O significado da opção de construção: - - --bootstrap - Esse parâmetro força ninja a reconstruir ele próprio para o - sistema atual. - - Para testar os resultados, execute: -./ninja ninja_test -./ninja_test --gtest_filter=-SubprocessTest.SetWithLots - - Instale o pacote: -install -vm755 ninja /usr/bin/ -install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninj -a -install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja - -8.51.2. Conteúdo do Ninja - - Aplicativo instalado: ninja - -Descrições Curtas - - ninja - - é o sistema de construção Ninja - -8.52. Meson-0.61.1 - - Meson é um sistema de construção de código fonte aberto destinado para - ser ambos extremamente rápido e tão amigável à(ao) usuária(o) quanto - possível. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 41 MB - -Dica - - Esta seção não é estritamente exigida para LFS se não usar systemd. Por - outro lado, meson/ninja é um sistema de construção poderoso, o qual é - esperado que seja usado mais e mais frequentemente. Ele é exigido por - muitos pacotes no [609]livro BLFS. - -8.52.1. Instalação do Meson - - Compile Meson com o seguinte comando: -python3 setup.py build - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -python3 setup.py install --root=dest -cp -rv dest/* / -install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/com -pletions/meson -install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/ -_meson - - O significado dos parâmetros de install: - - --root=dest - Por padrão, python3 setup.py install instala vários arquivos - (tais como páginas de manual) em Python Eggs. Com um local raiz - especificado, setup.py instala esses arquivos na hierarquia - padrão. Então a hierarquia pode apenas ser copiada para o local - padrão. - -8.52.2. Conteúdo do Meson - - Aplicativo instalado: meson - Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info e - /usr/lib/python3.10/site-packages/mesonbuild - -Descrições Curtas - - meson - - Um sistema de construção de alta produtividade - -8.53. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 2,6 UPC - Espaço em disco exigido: 153 MB - -8.53.1. Instalação do Coreutils - - POSIX exige que aplicativos originários do Coreutils reconheçam limites - de carácter corretamente mesmo em locales multibyte. A seguinte - correção conserta essa não-conformidade e outros defeitos relacionados - à internacionalização. -patch -Np1 -i ../coreutils-9.0-i18n-1.patch - -Nota - - No passado, muitos defeitos foram encontrados nessa correção. Quando - reportar novos defeitos para as(os) mantenedoras(es) do Coreutils, por - favor verifique primeiro se eles são reproduzíveis sem essa correção. - - Agora, conserte um problema com valores de retorno de chmod: -patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch - - Agora prepare Coreutils para compilação: -autoreconf -fiv -FORCE_UNSAFE_CONFIGURE=1 ./configure \ - --prefix=/usr \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - autoreconf - A correção para internacionalização modificou o sistema de - construção do pacote, então os arquivos de configuração tem de - ser regenerados. - - FORCE_UNSAFE_CONFIGURE=1 - Essa variável de ambiente permite que o pacote seja construído - como a(o) usuária(o) root. - - --enable-no-install-program=kill,uptime - O propósito dessa chave é o de impedir que o Coreutils instale - binários que serão instalados por outros pacotes posteriormente. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Agora a suíte de teste está pronta para ser executada. Primeiro, - execute os testes que são destinados a serem executados como usuária(o) - root: -make NON_ROOT_USERNAME=tester check-root - - Nós vamos executar o resto dos testes como a(o) usuária(o) tester. - Certos testes exigem que a(o) usuária(o) seja um membro de mais que um - grupo. Para que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -echo "dummy:x:102:tester" >> /etc/group - - Conserte algumas das permissões de modo que a(o) usuária(o) não-root - possa compilar e executar os testes: -chown -Rv tester . - - Agora execute os testes: -su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" - - O teste test-getlogin é conhecido por falhar dentro do ambiente chroot - do LFS. - - Remova o grupo temporário: -sed -i '/dummy/d' /etc/group - - Instale o pacote: -make install - - Mova aplicativos para os locais especificados pelo FHS: -mv -v /usr/bin/chroot /usr/sbin -mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 - -8.53.2. Conteúdo do Coreutils - - Aplicativos instalados: [, b2sum, base32, base64, basename, basenc, - cat, chcon, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, - date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, - factor, false, fmt, fold, groups, head, hostid, id, install, join, - link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, - nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, - printf, ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq, sha1sum, - sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, - split, stat, stdbuf, stty, sum, sync, tac, tail, tee, test, timeout, - touch, tr, true, truncate, tsort, tty, uname, unexpand, uniq, unlink, - users, vdir, wc, who, whoami e yes - Biblioteca instalada: libstdbuf.so (em /usr/libexec/coreutils) - Diretório instalado: /usr/libexec/coreutils - -Descrições Curtas - - [ - - É um comando atual, /usr/bin/[, que é um sinônimo para o comando test - - base32 - - Codifica e decodifica dados de acordo com a especificação base32 (RFC - 4648) - - base64 - - Codifica e decodifica dados de acordo com a especificação base64 (RFC - 4648) - - b2sum - - Imprime ou verifica somas de verificação BLAKE2 (512 bits) - - basename - - Remove qualquer caminho e um dado sufixo de um nome de arquivo - - basenc - - Codifica ou decodifica dados usando vários algoritmos - - cat - - Concatena arquivos para saída padrão - - chcon - - Muda contexto de segurança para arquivos e diretórios - - chgrp - - Muda a propriedade do grupo de arquivos e diretórios - - chmod - - Muda as permissões de cada arquivo para o modo dado; o modo pode ser ou - uma representação simbólica das mudanças a fazer ou um número octal - representando as novas permissões - - chown - - Muda a propriedade da(o) usuária(o) e (ou) grupo de arquivos e dos - diretórios - - chroot - - Executa um comando com o diretório especificado como o diretório / - - cksum - - Imprime a soma de verificação Cyclic Redundancy Check (CRC) e as - contagens de bytes de cada arquivo especificado - - comm - - Compara dois arquivos ordenados, exibindo em três colunas as linhas que - são únicas e as linhas que são comuns - - cp - - Copia arquivos - - csplit - - Divide um dado arquivo em vários novos arquivos, separando-os de acordo - com padrões dados ou números de linha e exibindo a contagem de bytes de - cada novo arquivo - - cut - - Imprime seções de linhas, selecionando as partes de acordo com campos - ou posições dados - - date - - Exibe a hora atual no formato dado, ou configura a data do sistema - - dd - - Copia um arquivo usando o tamanho de bloco e contagem dados, enquanto - opcionalmente realiza conversões sobre ele - - df - - Reporta a quantidade de espaço de disco disponível (e usada) em todos - os sistemas de arquivos montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados - - dir - - Lista o conteúdo de cada diretório dado (o mesmo que o comando ls) - - dircolors - - Gera comandos para configurar a variável de ambiente LS_COLOR para - mudar o esquema de cores usado por ls - - dirname - - Remove o sufixo que não é diretório de um nome de arquivo - - du - - Relata a quantidade de espaço de disco usado pelo diretório atual, por - cada diretório dado (incluindo todos subdiretórios) ou por cada um dos - arquivos dados - - echo - - Exibe as sequências de caracteres dadas - - env - - Executa um comando em um ambiente modificado - - expand - - Converte tabulação para espaços - - expr - - Avalia expressões - - factor - - Imprime os fatores primos de todos os números inteiros especificados - - false - - Não faz nada, sem sucesso; sempre sai com um código de status indicando - falha - - fmt - - Reformata os parágrafos nos arquivos dados - - fold - - Quebra as linhas nos arquivos dados - - groups - - Relata relacionamentos de membro de grupo de uma(m) usuária(o) - - head - - Imprime as primeiras dez linhas (ou o número de linhas dado) de cada - arquivo dado - - hostid - - Relata o número identificador (em hexadecimal) do dispositivo - - id - - Relata o efetivo ID de usuária(o), ID de grupo, e os relacionamentos de - membro de grupo da(o) usuária(o) atual ou usuária(o) especificada(o) - - install - - Copia arquivos enquanto configura seus modos de permissão e, se - possível, seus proprietário e grupo - - join - - Junta as linhas que tem idênticos campos de junção a partir de dois - arquivos separados - - link - - Cria um hard link com o nome dado para um arquivo - - ln - - Faz hard links ou soft (simbólico) links entre arquivos - - logname - - Relata o nome de login da(o) usuária(o) atual - - ls - - Lista o conteúdo de cada diretório dado - - md5sum - - Relata ou verifica somas de verificação Message Digest 5 (MD5) - - mkdir - - Cria diretórios com os nomes dados - - mkfifo - - Cria First-In, First-Outs (FIFOs), um "pipe nomeado" na linguagem UNIX, - com os nomes dados - - mknod - - Cria nós de dispositivo com os nomes dados; um nó de dispositivo é um - arquivo especial de caractere, um arquivo especial de bloco ou um FIFO - - mktemp - - Cria arquivos temporários de uma maneira segura; é usado em scripts - - mv - - Move ou renomeia arquivos ou diretórios - - nice - - Executa um aplicativo com prioridade de agendamento modificada - - nl - - Numera as linhas a partir dos arquivos dados - - nohup - - Executa um comando imune a interrupções, com sua saída redirecionada - para um arquivo de registro - - nproc - - Imprime o número de unidades de processamento disponíveis para um - processo - - numfmt - - Converte números para ou de sequências de caracteres legíveis por - humanos - - od - - Despeja arquivos em octal e outros formatos - - paste - - Mescla os arquivos dados, unindo linhas sequencialmente correspondentes - lado a lado, separadas por caracteres de tabulação - - pathchk - - Verifica se nomes de arquivos são válidos ou portáveis - - pinky - - É um cliente de dedo leve; ele relata algumas informações sobre as(os) - usuárias(os) dadas(os) - - pr - - Pagina e coluna arquivos para impressão - - printenv - - Imprime o ambiente - - printf - - Imprime os argumentos dados de acordo com o formato dado, muito - parecido com a função printf do C - - ptx - - Produz um índice permutado a partir do conteúdo dos arquivos dados, com - cada palavra-chave no contexto dela - - pwd - - Relata o nome do diretório de trabalho atual - - readlink - - Relata o valor do link simbólico dado - - realpath - - Imprime o caminho resolvido - - rm - - Remove arquivos ou diretórios - - rmdir - - Remove diretórios se eles estiverem vazios - - runcon - - Executa um comando com contexto de segurança especificado - - seq - - Imprime uma sequência de números dentro de um dado intervalo e com um - dado incremento - - sha1sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm 1 - (SHA1) 160 bits - - sha224sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 224 bits - - sha256sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 256 bits - - sha384sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 384 bits - - sha512sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 512 bits - - shred - - Sobrescreve os arquivos dados repetidamente com padrões complexos, - tornando difícil recuperar os dados - - shuf - - Embaralha linhas do texto - - sleep - - Pausa pelo período de tempo dado - - sort - - Ordena as linhas a partir dos arquivos dados - - split - - Divide o arquivo dado em pedaços, por tamanho ou por número de linhas - - stat - - Exibe a situação de arquivo ou sistema de arquivos - - stdbuf - - Executa comandos com operações de buffer alteradas para fluxos padrão - deles - - stty - - Configura ou relata configurações de linha de terminal - - sum - - Imprime soma de verificação e contagens de blocos para cada arquivo - dado - - sync - - Libera buffers do sistema de arquivos; isso força blocos modificados - para o disco e atualiza o super bloco - - tac - - Concatena os arquivos dados em ordem reversa - - tail - - Imprime as últimas dez linhas (ou o número dado de linhas) de cada - arquivo dado - - tee - - Lê a partir da entrada padrão enquanto escreve tanto para saída padrão - quanto para os arquivos dados - - test - - Compara valores e verifica tipos de arquivos - - timeout - - Executa um comando com um limite de tempo - - touch - - Muda marcas temporais de arquivo, definindo os horários de acesso e - modificação dos arquivos dados para o horário atual; arquivos que não - existem são criados com tamanho zero - - tr - - Traduz, comprime e deleta os caracteres dados a partir da entrada - padrão - - true - - Não faz nada, com sucesso; sempre sai com um código de status indicando - sucesso - - truncate - - Comprime ou expande um arquivo para o tamanho especificado - - tsort - - Realiza uma ordenação topológica; ele escreve uma lista completamente - ordenada de acordo com a ordenação parcial em um arquivo dado - - tty - - Relata o nome de arquivo do terminal conectado à entrada padrão - - uname - - Relata informação de sistema - - unexpand - - Converte espaços para tabulação - - uniq - - Descarta todas, exceto uma das sucessivas linhas idênticas - - unlink - - Remove o arquivo dado - - users - - Relata os nomes das(os) usuárias(os) atualmente logados - - vdir - - É o mesmo que ls -l - - wc - - Relata o número de linhas, palavras e bytes para cada arquivo dado, - assim como uma linha de total quando mais que um arquivo for dado - - who - - Relata quem está logado - - whoami - - Relata o nome de usuária(o) associado com o ID de usuária(o) efetivo - atual - - yes - - Repetidamente retorna “y†ou uma sequência de caracteres dada até que - seja terminado - - libstdbuf - - Biblioteca usada por stdbuf - -8.54. Check-0.15.2 - - Check é uma estrutura de teste de unidade para C. - Tempo aproximado de construção: 0,1 UPC (cerca de 3,8 UPC com os - testes) - Espaço em disco exigido: 12 MB - -8.54.1. Instalação do Check - - Prepare Check para compilação: -./configure --prefix=/usr --disable-static - - Construa o pacote: -make - - Compilação agora está completa. Para executar a suíte de teste do - Check, execute o seguinte comando: -make check - - Instale o pacote: -make docdir=/usr/share/doc/check-0.15.2 install - -8.54.2. Conteúdo do Check - - Aplicativo instalado: checkmk - Biblioteca instalada: libcheck.so - -Descrições Curtas - - checkmk - - Script awk para gerar testes de unidade C para uso com a estrutura de - teste de unidade do Check - - libcheck.{a,so} - - Contém funções que permitem que Check seja chamado a partir de um - aplicativo de teste - -8.55. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 34 MB - -8.55.1. Instalação do Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.55.2. Conteúdo do Diffutils - - Aplicativos instalados: cmp, diff, diff3 e sdiff - -Descrições Curtas - - cmp - - Compara dois arquivos e relata se ou em quais bytes eles diferem - - diff - - Compara dois arquivos ou diretórios e relata quais linhas nos arquivos - diferem - - diff3 - - Compara três arquivos linha por linha - - sdiff - - Mescla dois arquivos e interativamente exibe os resultados - -8.56. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 43 MB - -8.56.1. Instalação do Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/gawk-5.1.1 -cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1 - -8.56.2. Conteúdo do Gawk - - Aplicativos instalados: awk (link para gawk), gawk e awk-5.1.1 - Bibliotecas instaladas: filefuncs.so, fnmatch.so, fork.so, inplace.so, - intdiv.so, ordchr.so, readdir.so, readfile.so, revoutput.so, - revtwoway.so, rwarray.so e time.so (todas em /usr/lib/gawk) - Diretórios instalados: /usr/lib/gawk, /usr/libexec/awk, /usr/share/awk - e /usr/share/doc/gawk-5.1.1 - -Descrições Curtas - - awk - - Um link para gawk - - gawk - - Um aplicativo para manipular arquivos de texto; é a implementação GNU - do awk - - gawk-5.1.1 - - Um hard link para gawk - -8.57. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 51 MB - -8.57.1. Instalação do Findutils - - Prepare Findutils para compilação: -case $(uname -m) in - i?86) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/ -lib/locate ;; - x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; -esac - - O significado das opções de configure: - - TIME_32_BIT_OK=yes - Essa configuração é necessária para construir em um sistema de - 32 bits. - - --localstatedir - Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é conforme com FHS. - - Compile o pacote: -make - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote: -make install - -8.57.2. Conteúdo do Findutils - - Aplicativos instalados: find, locate, updatedb e xargs - Diretório instalado: /var/lib/locate - -Descrições Curtas - - find - - Pesquisa em árvores de diretórios dadas por arquivos correspondendo a - critérios especificados - - locate - - Pesquisa em um banco de dados de nomes de arquivo e relata os nomes que - contém uma sequência de caracteres dada ou correspondem a um padrão - dado - - updatedb - - Atualiza o banco de dados locate; ele escaneia o sistema de arquivos - inteiro (incluindo outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca cada nome de arquivo - que ele encontrar no banco de dados - - xargs - - Pode ser usado para aplicar um comando dado a uma lista de arquivos - -8.58. Groff-1.22.4 - - O pacote Groff contém aplicativos para processar e formatar texto. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 88 MB - -8.58.1. Instalação do Groff - - Groff espera que a variável de ambiente PAGE contenha o tamanho de - papel padrão. Para usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado durante a - compilação, ele pode ser substituído posteriormente ecoando ou “A4†ou - “letter†para o arquivo /etc/papersize. - - Prepare Groff para compilação: -PAGE= ./configure --prefix=/usr - - Esse pacote não suporta construção paralela. Compile o pacote: -make -j1 - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.58.2. Conteúdo do Groff - - Aplicativos instalados: addftinfo, afmtodit, chem, eqn, eqn2graph, - gdiffmk, glilypond, gperl, gpinyin, grap2graph, grn, grodvi, groff, - groffer, grog, grolbp, grolj4, gropdf, grops, grotty, hpftodit, - indxbib, lkbib, lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, refer, roff2dvi, - roff2html, roff2pdf, roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit - e troff - Diretórios instalados: /usr/lib/groff, /usr/share/doc/groff-1.22.4 e - /usr/share/groff - -Descrições Curtas - - addftinfo - - Lê um arquivo de fonte troff e adiciona algumas informações de métrica - de fonte adicionais que são usadas pelo sistema groff - - afmtodit - - Cria um arquivo de fonte para uso com groff e grops - - chem - - Preprocessador Groff para produzir diagramas de estrutura química - - eqn - - Compila descrições de equações embutidas em arquivos de entrada troff - em comandos que são entendidos por troff - - eqn2graph - - Converte uma EQN (equação) troff em uma imagem recortada - - gdiffmk - - Marca diferenças entre arquivos groff/nroff/troff - - glilypond - - Transforma partituras escritas na linguagem lilypond na linguagem groff - - gperl - - Preprocessador para groff, permitindo adição do código perl em arquivos - groff - - gpinyin - - Preprocessador para groff, permitindo adição do idioma semelhante a - Chinês Europeu Pinyin em arquivos groff - - grap2graph - - Converte um diagrama grap em uma imagem de bitmap recortada - - grn - - Um preprocessador groff para arquivos gremlin - - grodvi - - Um controlador para groff que produz formato dvi do TeX - - groff - - Um frontal para o sistema de formatação de documentos groff; - normalmente, ele executa o aplicativo troff e um pós-processador - apropriado para o dispositivo selecionado - - groffer - - Exibe arquivos groff e páginas de manual em terminais X e tty - - grog - - Lê arquivos e advinha quais das opções groff -e, -man, -me, -mm, -ms, - -p, -s e -t são exigidas para imprimir arquivos, e relata o comando - groff incluindo aquelas opções - - grolbp - - É um controlador groff para impressoras Canon CAPSL (impressoras a - laser séries LBP-4 e LBP-8) - - grolj4 - - É um controlador para groff que produz saída no formato PCL5 adequado - para uma impressora HP LaserJet 4 - - gropdf - - Traduz a saída do GNU troff para PDF - - grops - - Traduz a saída do GNU troff para PostScript - - grotty - - Traduz a saída do GNU troff em uma forma adequada para dispositivos - semelhantes a máquina de escrever - - hpftodit - - Cria um arquivo de fonte para uso com groff -Tlj4 a partir de um - arquivo de métrica de fonte rotulada HP - - indxbib - - Cria um índice invertido para os bancos de dados bibliográficos com um - arquivo especificado para uso com refer, lookbib e lkbib - - lkbib - - Pesquisa em bancos de dados bibliográficos por referências que - contenham chaves especificadas e relata quaisquer referências - encontradas - - lookbib - - Imprime um prompt na saída de erro padrão (a não ser que a entrada - padrão não seja um terminal); lê uma linha contendo um conjunto de - palavras chave a partir da entrada padrão; pesquisa em bancos de dados - bibliográficos, em um arquivo especificado, por referências contendo - aquelas palavras chave; imprime quaisquer referências encontradas na - saída padrão; e repete esse processo até o final da entrada - - mmroff - - Um preprocessador simples para groff - - neqn - - Formata equações para saída American Standard Code for Information - Interchange (ASCII) - - nroff - - Um script que emula o comando nroff usando groff - - pdfmom - - É um encapsulador em torno de groff que facilita a produção de - documentos PDF a partir de arquivos formatados com as macros mom - - pdfroff - - Cria documentos pdf usando groff - - pfbtops - - Traduz uma fonte PostScript em formato .pfb para ASCII - - pic - - Compila descrições de imagens embutidas em arquivos de entrada troff ou - TeX em comandos entendidos por TeX ou troff - - pic2graph - - Converte um diagrama PIC em uma imagem recortada - - post-grohtml - - Traduz a saída do GNU troff para HTML - - preconv - - Converte codificação de arquivos de entrada em alguma coisa que o GNU - troff entende - - pre-grohtml - - Traduz a saída do GNU troff para HTML - - refer - - Copia o conteúdo de um arquivo para a saída padrão, exceto aquelas - linhas entre .[ e .] que são interpretadas como citações, e linhas - entre .R1 e .R2 que são interpretadas como comandos para como citações - são para serem processadas - - roff2dvi - - Transforma arquivos roff para o formato DVI - - roff2html - - Transforma arquivos roff para o formato HTML - - roff2pdf - - Transforma arquivos roff em PDFs - - roff2ps - - Transforma arquivos roff em arquivos ps - - roff2text - - Transforma arquivos roff em arquivos de texto - - roff2x - - Transforma arquivos roff em outros formatos - - soelim - - Lê arquivos e substitui linhas da forma .so arquivo pelo conteúdo do - arquivo mencionado - - tbl - - Compila descrições de tabelas embutidas em arquivos de entrada troff em - comandos que são entendidos por troff - - tfmtodit - - Cria um arquivo fonte para uso com groff -Tdvi - - troff - - É altamente compatível com o troff do Unix; ele usualmente deveria ser - invocado usando o comando groff, o qual também executará - preprocessadores e pós-processadores na ordem apropriada e com as - opções apropriadas - -8.59. GRUB-2.06 - - O pacote GRUB contém o GRand Unified Bootloader. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 158 MB - -8.59.1. Instalação do GRUB - -Nota - - Se seu sistema tem suporte UEFI e você deseja inicializar LFS com UEFI, - então você pode pular esse pacote em LFS, e instalar GRUB com suporte - UEFI (e as dependências dele) seguindo [610]a página BLFS ao final - deste capítulo. - - Prepare GRUB para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --disable-efiemu \ - --disable-werror - - O significado das novas opções de configure: - - --disable-werror - Isso permite que a construção complete com avisos introduzidos - por mais recentes versões do Flex. - - --disable-efiemu - Essa opção minimiza o que é construído desabilitando uma - característica e aplicativos de teste não necessários para o - LFS. - - Compile o pacote: -make - - A suíte de teste para esse pacote não é recomendada. A maioria dos - testes depende de pacotes que não estão disponíveis no limitado - ambiente do LFS. Para executar os testes mesmo assim, execute make - check. - - Instale o pacote: -make install -mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions - - Usar GRUB para tornar seu sistema LFS inicializável será discutido em - [611]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.59.2. Conteúdo do GRUB - - Aplicativos instalados: grub-bios-setup, grub-editenv, grub-file, - grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, - grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, - grub-mkstandalone, grub-ofpathname, grub-probe, grub-reboot, - grub-render-label, grub-script-check, grub-set-default, - grub-sparc64-setup e grub-syslinux2cfg - Diretórios instalados: /usr/lib/grub, /etc/grub.d, /usr/share/grub e - /boot/grub (quando grub-install for primeiro executado) - -Descrições Curtas - - grub-bios-setup - - É um aplicativo auxiliar para grub-install - - grub-editenv - - Uma ferramenta para editar o bloco ambiente - - grub-file - - Verifica se FILE é do tipo especificado - - grub-fstest - - Ferramenta para depurar o controlador de sistema de arquivos - - grub-glue-efi - - Processa imagens EFI ia32 e amd64 e cola elas de acordo com formato - Apple - - grub-install - - Instala o GRUB no seu controlador - - grub-kbdcomp - - Script que converte um esquema xkb em um reconhecido por GRUB - - grub-macbless - - Bênção estilo Mac sobre arquivos HFS ou HFS+ - - grub-menulst2cfg - - Converte um menu.lst do GRUB Legacy em um grub.cfg para uso com GRUB 2 - - grub-mkconfig - - Gera um arquivo de configuração grub - - grub-mkimage - - Faz uma imagem inicializável do GRUB - - grub-mklayout - - Gera um arquivo de esquema de teclado do GRUB - - grub-mknetdir - - Prepara um diretório de inicialização de rede GRUB - - grub-mkpasswd-pbkdf2 - - Gera uma senha PBKDF2 encriptada para uso no menu de inicialização - - grub-mkrelpath - - Faz um caminho de sistema relativo à raiz dele - - grub-mkrescue - - Faz uma imagem inicializável do GRUB adequada para um disquete ou - CDROM/DVD - - grub-mkstandalone - - Gera uma imagem independente - - grub-ofpathname - - É um programa auxiliar que imprime o caminho de um dispositivo GRUB - - grub-probe - - Sonda informação de dispositivo para um caminho ou dispositivo dado - - grub-reboot - - Configura a entrada de inicialização padrão para o GRUB para a próxima - inicialização apenas - - grub-render-label - - Renderiza .disk_label da Apple para Macs da Apple - - grub-script-check - - Verifica script de configuração do GRUB para erros de sintaxe - - grub-set-default - - Configura a entrada de inicialização padrão para o GRUB - - grub-sparc64-setup - - É um programa auxiliar para grub-setup - - grub-syslinux2cfg - - Transforma um arquivo de configuração syslinux no formato grub.cfg - -8.60. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -8.60.1. Instalação do Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.60.2. Conteúdo do Gzip - - Aplicativos instalados: gunzip, gzexe, gzip, uncompress (hard link com - gunzip), zcat, zcmp, zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore - e znew - -Descrições Curtas - - gunzip - - Descomprime arquivos gzipados - - gzexe - - Cria arquivos executáveis auto-descomprimíveis - - gzip - - Comprime os arquivos dados usando codificação Lempel-Ziv (LZ77) - - uncompress - - Descomprime arquivos comprimidos - - zcat - - Descomprime os arquivos gzipados dados para a saída padrão - - zcmp - - Executa cmp em arquivos gzipados - - zdiff - - Executa diff em arquivos gzipados - - zegrep - - Executa egrep em arquivos gzipados - - zfgrep - - Executa fgrep em arquivos gzipados - - zforce - - Força uma extensão .gz em todos os arquivos dados que são arquivos - gzipados, de modo que o gzip não comprimirá eles novamente; isso pode - ser útil quando nomes de arquivo foram truncados durante uma - transferência de arquivo - - zgrep - - Executa grep em arquivos gzipados - - zless - - Executa less em arquivos gzipados - - zmore - - Executa more em arquivos gzipados - - znew - - Recomprime arquivos oriundos do formato compress para formato gzip—.Z - para .gz - -8.61. IPRoute2-5.16.0 - - O pacote IPRoute2 contém aplicativos para redes baseadas em IPV4 - básicas e avançadas. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.61.1. Instalação do IPRoute2 - - O aplicativo arpd incluído nesse pacote não será construído dado que - ele é dependente do Berkeley DB, o qual não é instalado em LFS. - Entretanto, um diretório para arpd e uma página de manual ainda serão - instalados. Impeça isso executando os comandos abaixo. Se o binário - arpd for necessário, então instruções para compilar o Berkeley DB podem - ser encontradas no Livro BLFS em - [612]https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html. -sed -i /ARPD/d Makefile -rm -fv man/man8/arpd.8 - - Compile o pacote: -make - - Esse pacote não tem uma suíte de teste funcional. - - Instale o pacote: -make SBINDIR=/usr/sbin install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/iproute2-5.16.0 -cp -v COPYING README* /usr/share/doc/iproute2-5.16.0 - -8.61.2. Conteúdo do IPRoute2 - - Aplicativos instalados: bridge, ctstat (link para lnstat), genl, ifcfg, - ifstat, ip, lnstat, nstat, routef, routel, rtacct, rtmon, rtpr, rtstat - (link para lnstat), ss e tc - Diretórios instalados: /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 - -Descrições Curtas - - bridge - - Configura pontes de redes - - ctstat - - Utilitário de situação de conexão - - genl - - Frontal utilitário de link de rede genérico - - ifcfg - - Um encapsulador de script de shell para o comando ip [Note que ele - exige os aplicativos arping e rdisk originários do pacote iputils - encontrado em [613]http://www.skbuff.net/iputils/] - - ifstat - - Mostra as estatísticas de interface, incluindo a quantidade de pacotes - transmitidos e recebidos pela interface - - ip - - O executável principal. Ele tem várias funções: - - ip link permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças - - ip addr permite usuárias(os) olharem para endereços e propriedades - deles, adicionarem novos endereços e deletarem antigos - - ip neighbor permite usuárias(os) olharem para vínculos de vizinho e - propriedades deles, adicionarem novas entradas de vizinho e deletarem - as antigas - - ip rule permite usuárias(os) olharem para políticas de roteamento e - mudar elas - - ip route permite usuárias(os) olharem para a tabela de roteamento e - mudar regras de tabela de roteamento - - ip tunnel permite usuárias(os) olharem para os tuneis IP e propriedades - deles, e mudar elas - - ip maddr permite usuárias(os) olharem para os endereços multicast e - propriedades deles, e mudar elas - - ip mroute permite usuárias(os) configurarem, mudarem ou deletarem o - roteamento multicast - - ip monitor permite usuárias(os) continuamente monitorarem o estado de - dispositivos, endereços e rotas - - lnstat - - Fornece estatísticas de rede do Linux; ele é uma substituição difundida - e mais completa de características para o antigo aplicativo rtstat - - nstat - - Mostra estatísticas de rede - - routef - - Um componente do ip route. Isso é para esvaziar as tabelas de - roteamento - - routel - - Um componente do ip route. Isso é para listar as tabelas de roteamento - - rtacct - - Exibe o conteúdo de /proc/net/rt_acct - - rtmon - - Utilitário de monitoramento de rota - - rtpr - - Converte a saída de ip -o de volta em um formato legível - - rtstat - - Utilitário de situação de rota - - ss - - Similar ao comando netstat; exibe conexões ativas - - tc - - Executável de Controle de Tráfego; isso é para implementações de - Quality Of Service (QOS) e Class Of Service (COS) - - tc qdisc permite usuárias(os) configurarem a disciplina de - enfileiramento - - tc class permite usuárias(os) configurarem classes baseadas no - agendamento de disciplina de enfileiramento - - tc estimator permite usuárias(os) estimarem o fluxo de rede dentro de - uma rede - - tc filter permite usuárias(os) configurarem a filtragem de pacote - QOS/COS - - tc policy permite usuárias(os) configurarem as políticas de QOS/COS - -8.62. Kbd-2.4.0 - - O pacote Kbd contém arquivos de tabelas de teclas, fontes de console e - utilitários de teclado. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 33 MB - -8.62.1. Instalação do Kbd - - O comportamento das teclas backspace e delete não é consistente ao - longo dos mapas de teclas no pacote Kbd. A seguinte correção conserta - esse problema para mapas de tecla i386: -patch -Np1 -i ../kbd-2.4.0-backspace-1.patch - - Após corrigir, a tecla backspace gera o carácter com código 127 e a - tecla delete gera uma sequência bem conhecida de escape. - - Remova o aplicativo redundante resizecons (ele exige que a defunta - svgalib forneça os arquivos de modo de vídeo - para uso normal setfont - dimensiona o console adequadamente) juntamente com a página de manual - dele. -sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure -sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in - - Prepare Kbd para compilação: -./configure --prefix=/usr --disable-vlock - - O significado da opção de configure: - - --disable-vlock - Essa opção evita que o utilitário vlock seja construído, pois - ele exige a biblioteca PAM, que não está disponível no ambiente - chroot. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -Nota - - Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd não fornece - um mapa de tecla útil onde o regular mapa de tecla “by†supõe a - codificação ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla funcionais - separadamente. - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/kbd-2.4.0 -cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0 - -8.62.2. Conteúdo do Kbd - - Aplicativos instalados: chvt, deallocvt, dumpkeys, fgconsole, - getkeycodes, kbdinfo, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, - openvt, psfaddtable (link para psfxtable), psfgettable (link para - psfxtable), psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, showconsolefont, showkey, - unicode_start e unicode_stop - Diretórios instalados: /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, /usr/share/doc/kbd-2.4.0 e - /usr/share/unimaps - -Descrições Curtas - - chvt - - Muda o terminal virtual de primeiro plano - - deallocvt - - Desaloca terminais virtuais não usados - - dumpkeys - - Despeja as tabelas de tradução de teclado - - fgconsole - - Imprime o número do terminal virtual ativo - - getkeycodes - - Imprime a tabela de mapeamento de código de escaneamento para código de - tecla do kernel - - kbdinfo - - Obtém informação sobre a situação de um console - - kbd_mode - - Relata ou configura o modo de teclado - - kbdrate - - Configura as taxas de repetição e atraso de teclado - - loadkeys - - Carrega as tabelas de tradução de teclado - - loadunimap - - Carrega a tabela de mapeamento unicode para fonte do kernel - - mapscrn - - Um aplicativo obsoleto que costumava carregar uma tabela de mapeamento - de caractere de saída definida pela(o) usuária(o) para dentro do - controlador de console; isso é feito agora por setfont - - openvt - - Inicia um aplicativo em um novo terminal virtual (VT) - - psfaddtable - - Adiciona uma tabela de carácter Unicode para uma fonte de console - - psfgettable - - Extrai a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfstriptable - - Remove a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfxtable - - Lida com tabelas de carácter Unicode para fontes de console - - setfont - - Muda as fontes Enhanced Graphic Adapter (EGA) e Video Graphics Array - (VGA) no console - - setkeycodes - - Carrega entradas de tabela de mapeamento de código de escaneamento para - código de tecla do kernel; isso é útil se existirem teclas incomuns no - teclado - - setleds - - Configura os sinalizadores de teclado e Light Emitting Diodes (LEDs) - - setmetamode - - Define o manuseio de meta tecla de teclado - - setvtrgb - - Configura o mapa de cor de console em todos os terminais virtuais - - showconsolefont - - Exibe a fonte de tela de console EGA/VGA atual - - showkey - - Relata os códigos de escaneamento, códigos de tecla e códigos ASCII das - teclas pressionadas no teclado - - unicode_start - - Põe o teclado e console em modo UNICODE [Não use esse aplicativo a - menos que seu arquivo de mapa de tecla esteja na codificação - ISO-8859-1. Para outras codificações, esse utilitário produz resultados - incorretos.] - - unicode_stop - - Reverte teclado e console do modo UNICODE - -8.63. Libpipeline-1.5.5 - - O pacote Libpipeline contém uma biblioteca para manipular pipelines de - subprocessos em uma maneira flexível e conveniente. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 9,7 MB - -8.63.1. Instalação do Libpipeline - - Prepare Libpipeline para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.63.2. Conteúdo do Libpipeline - - Biblioteca instalada: libpipeline.so - -Descrições Curtas - - libpipeline - - Essa biblioteca é usada para seguramente construir pipelines entre - subprocessos - -8.64. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 13 MB - -8.64.1. Instalação do Make - - Prepare Make para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.64.2. Conteúdo do Make - - Aplicativo instalado: make - -Descrições Curtas - - make - - Automaticamente determina quais partes de um pacote precisam ser - (re)compiladas e então emite os comandos relevantes - -8.65. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 12 MB - -8.65.1. Instalação do Patch - - Prepare Patch para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.65.2. Conteúdo do Patch - - Aplicativo instalado: patch - -Descrições Curtas - - patch - - Modifica arquivos de acordo com um arquivo de correção (Um arquivo de - correção normalmente é uma listagem de diferenças criada com o - aplicativo diff. Aplicando essas diferenças aos arquivos originais, - patch cria as versões corrigidas.) - -8.66. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 1,7 UPC - Espaço em disco exigido: 40 MB - -8.66.1. Instalação do Tar - - Prepare Tar para compilação: -FORCE_UNSAFE_CONFIGURE=1 \ -./configure --prefix=/usr - - O significado da opção de configure: - - FORCE_UNSAFE_CONFIGURE=1 - Isso força o teste para mknod ser executado como root. - Geralmente é considerado perigoso executar esse teste como a(o) - usuária(o) root, porém como ele está sendo executado em um - sistema que foi apenas parcialmente construído, substituir ele - está OK. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Um teste, capabilities: binary store/restore, é conhecido por falhar se - ele for executado (LFS carece de selinux), porém será pulado se o - kernel do anfitrião não suportar atributos estendidos no sistema de - arquivos usado para construir LFS. - - Instale o pacote: -make install -make -C doc install-html docdir=/usr/share/doc/tar-1.34 - -8.66.2. Conteúdo do Tar - - Aplicativo instalado: tar - Diretório instalado: /usr/share/doc/tar-1.34 - -Descrições Curtas - - tar - - Cria, extrai arquivos originários de, e lista o conteúdo de - arquivamentos, também conhecidos como tarballs - -8.67. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 112 MB - -8.67.1. Instalação do Texinfo - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Novamente, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Opcionalmente, instale os componentes pertencentes a uma instalação de - TeX: -make TEXMF=/usr/share/texmf install-tex - - O significado do parâmetro de make: - - TEXMF=/usr/share/texmf - A variável de arquivo make TEXMF mantém o local da raiz da - árvore do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. - - O sistema de documentação Info usa um arquivo de texto simples para - manter a lista de entradas de menu dele. O arquivo está localizado em - /usr/share/info/dir. Infelizmente, devido a problemas ocasionais nos - arquivos Make de vários pacotes, ele pode as vezes sair de sincronia - com as páginas info instaladas no sistema. Se o arquivo - /usr/share/info/dir alguma vez precisar ser recriado, então os - seguintes comandos opcionais realizarão a tarefa: -pushd /usr/share/info - rm -v dir - for f in * - do install-info $f dir 2>/dev/null - done -popd - -8.67.2. Conteúdo do Texinfo - - Aplicativos instalados: info, install-info, makeinfo (link para - texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf e - texindex - Bibliotecas instaladas: MiscXS.so, Parsetexi.so e XSParagraph.so (todas - em /usr/lib/texinfo) - Diretórios instalados: /usr/share/texinfo e /usr/lib/texinfo - -Descrições Curtas - - info - - Usado para ler páginas info as quais são similares a páginas de manual, - porém frequentemente vão muito mais fundo que somente explanar todas as - opções de linha de comando disponíveis [Por exemplo, compare man bison - e info bison] - - install-info - - Usado para instalar páginas info; ele atualiza entradas no arquivo de - índice info - - makeinfo - - Traduz os documentos fonte do Texinfo dados para páginas info, texto - simples ou HTML - - pdftexi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - pod2texi - - Converte Pod para formato Texinfo - - texi2any - - Traduz documentação fonte do Texinfo para vários outros formatos - - texi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo - independente de dispositivo que pode ser impresso - - texi2pdf - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - texindex - - Usado para ordenar arquivos de índice do Texinfo - -8.68. Vim-8.2.4383 - - O pacote Vim contém um editor de texto poderoso. - Tempo aproximado de construção: 2,4 UPC - Espaço em disco exigido: 206 MB - -Alternativas ao Vim - - Se você preferir outro editor—como Emacs, Joe ou Nano—por favor - consulte - [614]https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/editors.ht - ml para instruções de instalação sugeridas. - -8.68.1. Instalação do Vim - - Primeiro, mude o local padrão do arquivo de configuração vimrc para - /etc: -echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h - - Prepare vim para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para preparar os testes, garanta que usuária(o) tester pode escrever na - árvore de fonte: -chown -Rv tester . - - Agora execute os testes como usuária(o) tester: -su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log - - A suíte de teste emite muitos dados binários para a tela. Isso pode - causar problemas com as configurações do terminal atual. O problema - pode ser evitado redirecionando a saída para um arquivo de registro - conforme mostrado acima. Um teste bem sucedido resultará nas palavras - "ALL DONE" no arquivo de registro ao completar. - - Instale o pacote: -make install - - Muitas(os) usuárias(os) estão acostumadas(os) a usar vi em vez de vim. - Para permitir a execução do vim quando usuárias(os) habitualmente - digitarem vi, crie um link simbólico para ambos o binário e a página de - manual nos idiomas fornecidos: -ln -sv vim /usr/bin/vi -for L in /usr/share/man/{,*/}man1/vim.1; do - ln -sv vim.1 $(dirname $L)/vi.1 -done - - Por padrão, a documentação do vim é instalada em /usr/share/vim. O - seguinte link simbólico permite que a documentação seja acessada via - /usr/share/doc/vim-8.2.4383, tornando ela consistente com o local da - documentação para outros pacotes: -ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383 - - Se um X Window System vier a ser instalado no sistema LFS, então talvez - seja necessário recompilar vim após instalar X. O Vim vem com uma - versão GUI do editor que exige o X e algumas bibliotecas adicionais - para ser instalada. Para mais informações sobre esse processo, consulte - a documentação de vim e a página de instalação de vim no livro BLFS em - [615]https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/vim.html. - -8.68.2. Configurando Vim - - Por padrão, vim executa em modo incompatível com vi. Isso talvez seja - novo para usuárias(os) que usaram outros editores no passado. A - configuração “nocompatible†está incluída abaixo para destacar o fato - de que um novo comportamento está sendo usado. Ela também lembra - àquelas(es) que mudariam para o modo “compatible†que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é necessário, - pois ela muda outras configurações, e substituições precisam vir após - essa configuração. Crie um arquivo de configuração vim padrão - executando o seguinte: -cat > /etc/vimrc << "EOF" -" Begin /etc/vimrc - -" Ensure defaults are set before customizing settings, not after -source $VIMRUNTIME/defaults.vim -let skip_defaults_vim=1 - -set nocompatible -set backspace=2 -set mouse= -syntax on -if (&term == "xterm") || (&term == "putty") - set background=dark -endif - -" End /etc/vimrc -EOF - - A configuração set nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. Remova o - “no†para manter o comportamento vi antigo. A configuração set - backspace=2 permite retroceder sobre quebras de linha, auto recuos e o - início de uma inserção. O parâmetro syntax on habilita o destaque de - sintaxe do vim. A configuração set mouse= habilita adequada colagem de - texto com o mouse quando trabalhar em chroot ou por meio de uma conexão - remota. Finalmente, a declaração if com a configuração set - background=dark corrige a suposição do vim sobre a cor de segundo plano - de alguns emuladores de terminal. Isso dá ao destaque um esquema de - cores melhor para uso no segundo plano preto desses aplicativos. - - Documentação para outras opções disponíveis pode ser obtida executando - o seguinte comando: -vim -c ':options' - -Nota - - Por padrão, vim instala apenas arquivos de soletrar para o idioma - inglês. Para instalar arquivos de soletrar para seu idioma preferido, - baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e - codificação de caracter a partir de - [616]ftp://ftp.vim.org/pub/vim/runtime/spell/ e salve-os em - /usr/share/vim/vim82/spell/. - - Para usar esses arquivos de soletrar, alguma configuração em /etc/vimrc - é necessária, por exemplo: -set spelllang=en,ru -set spell - - Para mais informação, veja o arquivo README apropriado localizado na - URL acima. - -8.68.3. Conteúdo do Vim - - Aplicativos instalados: ex (link para vim), rview (link para vim), rvim - (link para vim), vi (link para vim), view (link para vim), vim, vimdiff - (link para vim), vimtutor e xxd - Diretório instalado: /usr/share/vim - -Descrições Curtas - - ex - - Inicia vim em modo ex - - rview - - É uma versão restrita do view; nenhum comando de shell pode ser - iniciado e view não pode ser suspenso - - rvim - - É uma versão restrita do vim; nenhum comando de shell pode ser iniciado - e vim não pode ser suspenso - - vi - - Link para vim - - view - - Inicia vim em modo somente leitura - - vim - - É o editor - - vimdiff - - Edita duas ou três versões de um arquivo com vim e exibe diferenças - - vimtutor - - Ensina as teclas básicas e comandos do vim - - xxd - - Cria um despejo hexadecimal do arquivo dado; ele também pode fazer o - reverso, de forma que ele pode ser usado para correção de binário - -8.69. Eudev-3.2.11 - - O pacote Eudev contém aplicativos para criação dinâmica de nós de - dispositivo. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 83 MB - -8.69.1. Instalação do Eudev - - Prepare Eudev para compilação: -./configure --prefix=/usr \ - --bindir=/usr/sbin \ - --sysconfdir=/etc \ - --enable-manpages \ - --disable-static - - Compile o pacote: -make - - Crie alguns diretórios agora que são necessários para testes, porém - também serão usados como uma parte da instalação: -mkdir -pv /usr/lib/udev/rules.d -mkdir -pv /etc/udev/rules.d - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Instale algumas regras personalizadas e arquivos de suporte úteis em um - ambiente LFS: -tar -xvf ../udev-lfs-20171102.tar.xz -make -f udev-lfs-20171102/Makefile.lfs install - -8.69.2. Configurando Eudev - - Informação acerca de dispositivos de hardware é mantida nos diretórios - /etc/udev/hwdb.d e /usr/lib/udev/hwdb.d. Eudev precisa que a informação - seja compilada em um banco de dados binário /etc/udev/hwdb.bin. Crie o - banco de dados inicial: -udevadm hwdb --update - - Esse comando precisa ser executado cada vez que a informação de - hardware for atualizada. - -8.69.3. Conteúdo do Eudev - - Aplicativos instalados: udevadm e udevd - Biblioteca instalada: libudev.so - Diretórios instalados: /etc/udev, /usr/lib/udev e - /usr/share/doc/udev-udev-lfs-20171102 - -Descrições Curtas - - udevadm - - Ferramenta de administração udev genérica: controla o daemon udevd, - fornece informação a partir do banco de dados do Udev, monitora - uevents, aguarda que uevents terminem, testa configuração do Udev e - deflagra uevents para um dispositivo dado - - udevd - - Um daemon que ouve uevents no soquete de link de rede, cria - dispositivos e executa os aplicativos externos configurados em resposta - a esses uevents - - libudev - - Uma interface de biblioteca para informação de dispositivo do udev - - /etc/udev - - Contém arquivos de configuração do Udev, permissões de dispositivo e - regras para nomear dispositivo - -8.70. Man-DB-2.10.1 - - O pacote Man-DB contém aplicativos para encontrar e visualizar páginas - de manual. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 39 MB - -8.70.1. Instalação do Man-DB - - Prepare Man-DB para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/man-db-2.10.1 \ - --sysconfdir=/etc \ - --disable-setuid \ - --enable-cache-owner=bin \ - --with-browser=/usr/bin/lynx \ - --with-vgrind=/usr/bin/vgrind \ - --with-grap=/usr/bin/grap \ - --with-systemdtmpfilesdir= \ - --with-systemdsystemunitdir= - - O significado das opções de configure: - - --disable-setuid - Isso desabilita fazer o aplicativo man configurar uid para - usuária(o) man. - - --enable-cache-owner=bin - Isso torna os arquivos de cache de sistema de propriedade da(o) - usuária(o) bin. - - --with-... - Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador de rede baseado em texto - (veja-se BLFS para instruções de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e grap é útil para - tipografar gráficos em documentos do Groff. Os aplicativos - vgrind e grap normalmente não são necessários para visualizar - páginas de manual. Eles não são parte do LFS ou BLFS, mas você - deveria ser capaz de instalá-los após terminar o LFS se você - desejar fazer isso. - - --with-systemd... - Esses parâmetros impedem a instalação de diretórios e arquivos - do systemd desnecessários. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.70.2. Páginas de Manual não inglesas no LFS - - A seguinte tabela mostra o conjunto de caracteres no qual Man-DB supõe - que as páginas de manual instaladas sob /usr/share/man/ estarão - codificadas. Em adição a isto, o Man-DB determina corretamente se - páginas de manual instaladas naquele diretório estão codificadas com - UTF-8. - - Tabela 8.1. Codificação de caracteres esperada das páginas de manual de - 8-bit legadas - Idioma (código) Codificação Idioma (código) Codificação - Dinamarquês (da) ISO-8859-1 Croata (hr) ISO-8859-2 - Alemão (de) ISO-8859-1 Húngaro (hu) ISO-8859-2 - Inglês (en) ISO-8859-1 Japonês (ja) EUC-JP - Espanhol (es) ISO-8859-1 Coreano (ko) EUC-KR - Estoniano (et) ISO-8859-1 Lituano (lt) ISO-8859-13 - Finlandês (fi) ISO-8859-1 Letão (lv) ISO-8859-13 - Francês (fr) ISO-8859-1 Macedônio (mk) ISO-8859-5 - Irlandês (ga) ISO-8859-1 Polonês (pl) ISO-8859-2 - Galego (gl) ISO-8859-1 Romeno (ro) ISO-8859-2 - Indonésio (id) ISO-8859-1 Russo (ru) KOI8-R - Islandês (is) ISO-8859-1 Eslovaco (sk) ISO-8859-2 - Italiano (it) ISO-8859-1 Esloveno (sl) ISO-8859-2 - Bokmal norueguês (nb) ISO-8859-1 Latim sérvio (sr@latin) ISO-8859-2 - Holandês (nl) ISO-8859-1 Sérvio (sr) ISO-8859-5 - Nynorsk norueguês (nn) ISO-8859-1 Turco (tr) ISO-8859-9 - Norueguês (no) ISO-8859-1 Ucraniano (uk) KOI8-U - Português (pt) ISO-8859-1 Vietnamita (vi) TCVN5712-1 - Sueco (sv) ISO-8859-1 Chinês simplificado (zh_CN) GBK - Bielorrusso (be) CP1251 Chinês simplificado, Singapura (zh_SG) GBK - Búlgaro (bg) CP1251 Chinês tradicional, Hong Kong (zh_HK) BIG5HKSCS - Tcheco (cs) ISO-8859-2 Chinês tradicional (zh_TW) BIG5 - Grego (el) ISO-8859-7 - -Nota - - Páginas de manual em idiomas que não estão na lista não são suportadas. - -8.70.3. Conteúdo do Man-DB - - Aplicativos instalados: accessdb, apropos (link para whatis), catman, - lexgrog, man, man-recode, mandb, manpath e whatis - Bibliotecas instaladas: libman.so e libmandb.so (ambas em - /usr/lib/man-db) - Diretórios instalados: /usr/lib/man-db, /usr/libexec/man-db e - /usr/share/doc/man-db-2.10.1 - -Descrições Curtas - - accessdb - - Despeja o conteúdo do banco de dados whatis em formato legível por - humanos - - apropos - - Pesquisa no banco de dados whatis e exibe as descrições curtas dos - comandos de sistema que contém uma sequência de caracteres dada - - catman - - Cria ou atualiza páginas de manual pré-formatadas - - lexgrog - - Exibe informação de sumário em uma linha sobre uma página de manual - dada - - man - - Formata e exibe a página de manual solicitada - - man-recode - - Converte páginas de manual para outra codificação - - mandb - - Cria ou atualiza o banco de dados whatis - - manpath - - Exibe o conteúdo de $MANPATH ou (se $MANPATH não estiver configurada) - um caminho de busca adequado baseado nas configurações em man.conf e no - ambiente da(o) usuária(o) - - whatis - - Pesquisa no banco de dados whatis e exibe as descrições curtas de - comandos do sistema que contém a palavra chave dada como uma palavra - separada - - libman - - Contém suporte em tempo de execução para o man - - libmandb - - Contém suporte em tempo de execução para o man - -8.71. Procps-ng-3.3.17 - - O pacote Procps-ng contém aplicativos para monitorar processos. - -Nota - - Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 19 MB - -8.71.1. Instalação do Procps-ng - - Prepare procps-ng para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/procps-ng-3.3.17 \ - --disable-static \ - --disable-kill - - O significado da opção de configure: - - --disable-kill - Essa chave desabilita a construção do comando kill que será - instalado pelo pacote util-linux. - - Compile o pacote: -make - - Para executar a suíte de teste, execute: -make check - - Cinco testes relacionados a pkill são conhecidos por falhar devido a um - problema com testes que não foram atualizados. - - Instale o pacote: -make install - -8.71.2. Conteúdo do Procps-ng - - Aplicativos instalados: free, pgrep, pidof, pkill, pmap, ps, pwdx, - slabtop, sysctl, tload, top, uptime, vmstat, w e watch - Biblioteca instalada: libprocps.so - Diretórios instalados: /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 - -Descrições Curtas - - free - - Relata a quantidade de memória livre e usada (ambas memória física e - swap) no sistema - - pgrep - - Procura por processos baseado nos nomes deles e outros atributos - - pidof - - Relata os PIDs dos aplicativos dados - - pkill - - Sinaliza processos baseado nos nomes deles e outros atributos - - pmap - - Relata o mapeamento de memória do processo dado - - ps - - Lista os processos em execução atualmente - - pwait - - Aguarda que um processo termine antes de executar. - - pwdx - - Relata o diretório de trabalho atual de um processo - - slabtop - - Exibe informações detalhadas de cache de slab do kernel em tempo real - - sysctl - - Modifica parâmetros do kernel em tempo de execução - - tload - - Imprime um gráfico da média de carga de sistema atual - - top - - Exibe uma lista dos processos com maior uso de CPU; ele fornece uma - visão contínua da atividade do processador em tempo real - - uptime - - Relata há quanto tempo o sistema está executando, quantas(os) - usuárias(os) estão logadas(os) e as médias de carga de sistema - - vmstat - - Relata estatísticas de memória virtual, dando informações sobre - processos, memória, paginação, Entrada/Saída (E/S) de bloco, traps e - atividade da CPU - - w - - Mostra quais usuárias(os) estão logadas(os) atualmente, onde e desde - quando - - watch - - Executa um comando dado repetidamente, exibindo a primeira tela cheia - da saída dele; isso permite que uma(m) usuária(o) observe a mudança de - saída ao longo do tempo - - libprocps - - Contém as funções usadas pela maioria dos aplicativos nesse pacote - -8.72. Util-linux-2.37.4 - - O pacote Util-linux contém aplicativos utilitários diversos. Entre eles - estão utilitários para lidar com sistemas de arquivos, consoles, - partições e mensagens. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 261 MB - -8.72.1. Instalação do Util-linux - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --bindir=/usr/bin \ - --libdir=/usr/lib \ - --sbindir=/usr/sbin \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - --without-systemd \ - --without-systemdsystemunitdir - - As opções --disable e --without impedem avisos acerca de construir - componentes que exigem pacotes ausentes em LFS ou estão inconsistentes - com aplicativos instalados por outros pacotes. - - Compile o pacote: -make - - Se desejado, execute a suíte de teste como uma(m) usuária(o) não root: - -Atenção - - Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao - seu sistema. Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente e precisa - ser construída como um módulo. Construí-lo dentro do kernel impedirá a - inicialização. Para cobertura completa, outros pacotes do BLFS precisam - ser instalados. Se desejado, esse teste pode ser executado após - reiniciar no sistema LFS completo e executar: -bash tests/run.sh --srcdir=$PWD --builddir=$PWD - -Nota - - Existe um teste que falha no ambiente chroot e causa os testes travarem - para sempre. O problema não ocorre do lado de fora do ambiente chroot. - Para contornar o problema, delete o teste: -rm tests/ts/lsns/ioctl_ns - -chown -Rv tester . -su tester -c "make -k check" - - Instale o pacote: -make install - -8.72.2. Conteúdo do Util-linux - - Aplicativos instalados: addpart, agetty, blkdiscard, blkid, blkzone, - blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, - column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdisk, fincore, - findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, - fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, - irqtop, isosize, kill, last, lastb (link para last), ldattach, linux32, - linux64, logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lslocks, - lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, - pivot_root, prlimit, readprofile, rename, renice, resizepart, rev, - rfkill, rtcwake, script, scriptlive, scriptreplay, setarch, setsid, - setterm, sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, uname26, unshare, - utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, - x86_64 e zramctl - Bibliotecas instaladas: libblkid.so, libfdisk.so, libmount.so, - libsmartcols.so e libuuid.so - Diretórios instalados: /usr/include/blkid, /usr/include/libfdisk, - /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e /var/lib/hwclock - -Descrições Curtas - - addpart - - Informa o kernel Linux de novas partições - - agetty - - Abre uma porta tty, solicita um nome de login e então invoca o - aplicativo login - - blkdiscard - - Descarta setores em um dispositivo - - blkid - - Um utilitário de linha de comando para localizar e imprimir atributos - de dispositivo de bloco - - blkzone - - Executa comando de zona no dispositivo de bloco dado - - blockdev - - Permite usuárias(os) chamar ioctls de dispositivo de bloco a partir da - linha de comando - - cal - - Exibe um calendário simples - - cfdisk - - Manipula a tabela de partição do dispositivo dado - - chcpu - - Modifica o estado de CPUs - - chmem - - Configura memória - - choom - - Exibe e ajusta a pontuação de matador de OOM - - chrt - - Manipula atributos de tempo real de um processo - - col - - Filtra feeds de linha reversa - - colcrt - - Filtra saída nroff para terminais que não tem algumas capacidades, tais - como overstriking e half-lines - - colrm - - Filtra as colunas dadas - - column - - Formata um arquivo dado em colunas múltiplas - - ctrlaltdel - - Configura a função da combinação de teclas Ctrl+Alt+Del para uma - reconfiguração hard ou soft - - delpart - - Pede ao kernel Linux para remover uma partição - - dmesg - - Despeja as mensagens de inicialização do kernel - - eject - - Ejeta mídia removível - - fallocate - - Pré-aloca espaço para um arquivo - - fdisk - - Manipula a tabela de partição do dispositivo dado - - fincore - - Conta páginas de conteúdo de arquivo em núcleo - - findfs - - Encontra um sistema de arquivos pelo rótulo ou Universally Unique - Identifier (UUID) - - findmnt - - É uma interface de linha de comando para a biblioteca libmount para - funcionar com mountinfo, fstab e arquivos mtab - - flock - - Adquire uma trava de arquivo e então executa um comando com a trava - mantida - - fsck - - É usado para verificar, e opcionalmente reparar, sistemas de arquivos - - fsck.cramfs - - Realiza uma verificação de consistência no sistema de arquivos Cramfs - no dispositivo dado - - fsck.minix - - Realiza uma verificação de consistência no sistema de arquivos Minix no - dispositivo dado - - fsfreeze - - É um encapsulador muito simples em torno de operações de controlador de - kernel de ioctl de FIFREEZE/FITHAW - - fstrim - - Descarta blocos não usados em um sistema de arquivos montado - - getopt - - Analisa opções na linha de comando dada - - hexdump - - Despeja o arquivo dado em hexadecimal ou em outro formato dado - - hwclock - - Lê ou configura o relógio de hardware do sistema, também chamado de - Real-Time Clock (RTC) ou relógio do Basic Input-Output System (BIOS) - - i386 - - Um link simbólico para setarch - - ionice - - Obtém ou configura a classe de agendamento de io e prioridade para um - aplicativo - - ipcmk - - Cria vários recursos IPC - - ipcrm - - Remove o recurso de Inter-Process Communication (IPC) dado - - ipcs - - Fornece informação de situação de IPC - - irqtop - - Exibe informação de contador de interrupção do kernel em visão estilo - top(1) - - isosize - - Relata o tamanho de um sistema de arquivos iso9660 - - kill - - Envia sinais para processos - - last - - Mostra quais usuárias(os) derradeiramente logaram-se (e deslogaram-se), - pesquisando de volta ao longo do arquivo /var/log/wtmp; ele também - mostra inicializações de sistema, desligamentos e mudanças de nível de - execução - - lastb - - Exibe as tentativas de login falhas, conforme registrado em - /var/log/btmp - - ldattach - - Anexa uma disciplina de linha à uma linha serial - - linux32 - - Um link simbólico para setarch - - linux64 - - Um link simbólico para setarch - - logger - - Adiciona a mensagem dada ao registro do sistema - - look - - Exibe linhas que começam com a sequência de caracteres dada - - losetup - - Configura e controla dispositivos de loop - - lsblk - - Lista informações sobre todos ou dispositivos de bloco selecionados em - um formato semelhante a árvore - - lscpu - - Imprime informação de arquitetura da CPU - - lsipc - - Imprime informação acerca de facilidades de IPC empregadas atualmente - no sistema - - lsirq - - Exibe informação de contador de interrupção do kernel - - lslocks - - Lista travas locais de sistema - - lslogins - - Lista informação acerca de contas de usuárias(os), grupos e sistema - - lsmem - - Lista os intervalos de memória disponível com a situação online deles - - lsns - - Lista espaços de nome - - mcookie - - Gera cookies mágicos (números hexadecimais aleatórios de 128 bits) para - o xauth - - mesg - - Controla se outras(os) usuárias(os) podem enviar mensagens para o - terminal da(o) usuária(o) atual - - mkfs - - Constrói um sistema de arquivos em um dispositivo (geralmente uma - partição de disco rígido) - - mkfs.bfs - - Cria um sistema de arquivos Santa Cruz Operations (SCO) bfs - - mkfs.cramfs - - Cria um sistema de arquivos cramfs - - mkfs.minix - - Cria um sistema de arquivos Minix - - mkswap - - Inicializa dispositivo ou arquivo dado para ser usado como uma área de - troca - - more - - Um filtro para paginar ao longo de texto uma tela de cada vez - - mount - - Anexa o sistema de arquivos no dispositivo dado a um diretório - especificado na árvore do sistema de arquivos - - mountpoint - - Verifica se o diretório é um ponto de montagem - - namei - - Mostra os links simbólicos nos nomes de caminho dados - - nsenter - - Executa um aplicativo com espaços de nome de outros processos - - partx - - Informa ao kernel sobre a presença e numeração de partições no disco - - pivot_root - - Torna o sistema de arquivos dado o novo sistema de arquivos raiz do - processo atual - - prlimit - - Obtém e configura um limite de recursos do processo - - readprofile - - Lê informação de perfil do kernel - - rename - - Renomeia os arquivos dados, substituindo uma sequência de caracteres - dada por outra - - renice - - Altera a prioridade de processos em execução - - resizepart - - Pede ao kernel Linux para redimensionar uma partição - - rev - - Inverte as linhas de um arquivo dado - - rkfill - - Ferramenta para habilitar e desabilitar dispositivos sem fios - - rtcwake - - Usado para entrar em um estado de suspensão do sistema até o horário de - ativação especificado - - script - - Cria um texto datilografado de uma sessão de terminal - - scriptlive - - Reexecuta textos datilografados de sessão usando informação de tempo - - scriptreplay - - Reproduz textos datilografados usando informações de tempo - - setarch - - Muda a arquitetura relatada em um novo ambiente de aplicativo e - configura sinalizadores de personalidade - - setsid - - Executa o aplicativo dado em uma nova sessão - - setterm - - Configura atributos do terminal - - sfdisk - - Um manipulador de tabela de partição de disco - - sulogin - - Permite root se logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) - - swaplabel - - Permite modificar o UUID e rótulo da área de troca - - swapoff - - Desabilita dispositivos e arquivos para paginação e troca - - swapon - - Habilita dispositivos e arquivos para paginação e troca e lista os - dispositivos e arquivos atualmente em uso - - switch_root - - Alterna para outro sistema de arquivos como a raiz da árvore de - montagem - - taskset - - Recupera ou configura uma afinidade de CPU do processo - - uclampset - - Manipula os atributos de fixação de utilização do sistema ou um - processo - - ul - - Um filtro para traduzir sublinhados em sequências de escape indicando - sublinhamento para o terminal em uso - - umount - - Desconecta um sistema de arquivos da árvore de arquivos do sistema - - uname26 - - Um link simbólico para setarch - - unshare - - Executa um aplicativo com alguns espaços de nome não compartilhados - oriundos do pai - - utmpdump - - Exibe o conteúdo do arquivo de login dado em um formato mais amigável - para a(o) usuária(o) - - uuidd - - Um daemon usado pela biblioteca UUID para gerar UUIDs baseados em - horário em uma forma segura e garantidamente única - - uuidgen - - Cria novos UUIDs. Cada novo UUID pode razoavelmente ser considerado - único entre todos os UUIDs criados, no sistema local e em outros - sistemas, no passado e no futuro - - uuidparse - - Um utilitário para analisar identificadores únicos - - wall - - Exibe o conteúdo de um arquivo ou, por padrão, a entrada padrão dele, - nos terminais de todas(os) as(os) usuárias(os) logadas(os) atualmente - - wdctl - - Mostra a situação de vigilante de hardware - - whereis - - Relata o local do binário, fonte e página de manual para o comando dado - - wipefs - - Limpa uma assinatura de sistema de arquivos a partir de um dispositivo - - x86_64 - - Um link simbólico para setarch - - zramctl - - Um aplicativo para configurar e controlar dispositivos zram (disco ram - comprimido) - - libblkid - - Contém rotinas para identificação de dispositivo e extração de token - - libfdisk - - Contém rotinas para manipular tabelas de partição - - libmount - - Contém rotinas para montagem e desmontagem de dispositivo de bloco - - libsmartcols - - Contém rotinas para auxiliar a saída de tela em forma de tabela - - libuuid - - Contém rotinas para gerar identificadores únicos para objetos que - talvez sejam acessíveis além do sistema local - -8.73. E2fsprogs-1.46.5 - - O pacote e2fsprogs contém os utilitários para lidar com o sistema de - arquivos ext2. Ele também suporta os sistemas de arquivos de registro - em diário ext3 e ext4. - Tempo aproximado de construção: 4,4 UPC em um disco giratório, 1,3 UPC - em um SSD - Espaço em disco exigido: 93 MB - -8.73.1. Instalação do E2fsprogs - - A documentação do e2fsprogs recomenda que o pacote seja construído em - um subdiretório da árvore do fonte: -mkdir -v build -cd build - - Prepare e2fsprogs para compilação: -../configure --prefix=/usr \ - --sysconfdir=/etc \ - --enable-elf-shlibs \ - --disable-libblkid \ - --disable-libuuid \ - --disable-uuidd \ - --disable-fsck - - O significado das opções de configure: - - --enable-elf-shlibs - Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. - - --disable-* - Isso evita que e2fsprogs construa e instale as bibliotecas - libuuid e libblkid, o daemon uuidd, e o encapsulador fsck, uma - vez que o util-linux instala versões mais recentes. - - Compile o pacote: -make - - Para executar os testes, execute: -make check - - Um teste, u_direct_io, é conhecido por falhar em alguns sistemas. - - Instale o pacote: -make install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a - - Esse pacote instala um arquivo gzipado .info, mas não atualiza o - arquivo do sistema dir. Descompacte esse arquivo e então atualize o - arquivo do sistema dir usando os seguintes comandos: -gunzip -v /usr/share/info/libext2fs.info.gz -install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info - - Se desejado, crie e instale alguma documentação adicional executando os - seguintes comandos: -makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo -install -v -m644 doc/com_err.info /usr/share/info -install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info - -8.73.2. Conteúdo do E2fsprogs - - Aplicativos instalados: badblocks, chattr, compile_et, debugfs, - dumpe2fs, e2freefrag, e2fsck, e2image, e2label, e2mmpstatus, e2scrub, - e2scrub_all, e2undo, e4crypt, e4defrag, filefrag, fsck.ext2, fsck.ext3, - fsck.ext4, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs - Bibliotecas instaladas: libcom_err.so, libe2p.so, libext2fs.so e - libss.so - Diretórios instalados: /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, /usr/share/et - e /usr/share/ss - -Descrições Curtas - - badblocks - - Pesquisa em um dispositivo (geralmente uma partição de disco) por - blocos defeituosos - - chattr - - Muda os atributos de arquivos em um sistema de arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em diário - dos sistemas de arquivos ext2 - - compile_et - - Um compilador de tabela de erro; ele converte uma tabela de nomes de - códigos de erros e mensagens em um arquivo fonte C adequado para uso - com a biblioteca com_err - - debugfs - - Um depurador de sistema de arquivo; ele pode ser usado para examinar e - mudar o estado de um sistema de arquivos ext2 - - dumpe2fs - - Imprime informação de superblocos e grupo de blocos para o sistema de - arquivos presente em um dispositivo dado - - e2freefrag - - Relata informação de fragmentação de espaço livre - - e2fsck - - É usado para verificar, e opcionalmente reparar sistemas de arquivos - ext2 e sistemas de arquivos ext3 - - e2image - - É usado para salvar dados críticos de sistema de arquivos ext2 para um - arquivo - - e2label - - Exibe ou muda o rótulo de sistema de arquivos no sistema de arquivos - ext2 presente em um dispositivo dado - - e2mmpstatus - - Verifica situação de MMP de um sistema de arquivos ext4 - - e2scrub - - Verifica o conteúdo de um sistema de arquivos ext[234] montado - - e2scrub_all - - Verifica todos os sistemas de arquivos ext[234] montados para erros - - e2undo - - Reexecuta o registro de desfazer undo_log para um sistema de arquivos - ext2/ext3/ext4 encontrado em um dispositivo [Isso pode ser usado para - desfazer uma operação falha por um aplicativo do e2fsprogs] - - e4crypt - - Utilitário de encriptação de sistema de arquivos ext4 - - e4defrag - - Desfragmentador online para sistemas de arquivo ext4 - - filefrag - - Relatórios sobre quão fragmentado um arquivo específico pode estar - - fsck.ext2 - - Por padrão verifica sistemas de arquivo ext2 e é um hard link para - e2fsck - - fsck.ext3 - - Por padrão verifica sistemas de arquivo ext3 e é um hard link para - e2fsck - - fsck.ext4 - - Por padrão verifica sistemas de arquivo ext4 e é um hard link para - e2fsck - - logsave - - Salva a saída de um comando em um arquivo de registro - - lsattr - - Lista os atributos de arquivos em um segundo sistema de arquivos - estendido - - mk_cmds - - Converte uma tabela de nomes de comando e mensagens de ajuda em um - arquivo fonte C adequado para uso com a biblioteca de subsistema libss - - mke2fs - - Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado - - mkfs.ext2 - - Por padrão cria sistemas de arquivos ext2 e é um hard link para mke2fs - - mkfs.ext3 - - Por padrão cria sistemas de arquivos ext3 e é um hard link para mke2fs - - mkfs.ext4 - - Por padrão cria sistemas de arquivos ext4 e é um hard link para mke2fs - - mklost+found - - Usado para criar um diretório lost+found em um sistema de arquivos - ext2; ele pré-aloca blocos de disco para esse diretório para facilitar - a tarefa do e2fsck - - resize2fs - - Pode ser usado para alargar ou estreitar um sistema de arquivos ext2 - - tune2fs - - Ajusta parâmetros ajustáveis de sistema de arquivos em um sistema de - arquivos ext2 - - libcom_err - - A rotina comum de exibição de erro - - libe2p - - Usado por dumpe2fs, chattr e lsattr - - libext2fs - - Contém rotinas para habilitar aplicativos de nível de usuária(o) para - lidar com um sistema de arquivos ext2 - - libss - - Usado por debugfs - -8.74. Sysklogd-1.5.1 - - O pacote sysklogd contém aplicativos para registrar mensagens de - sistema, tais como aquelas dadas pelo kernel quando coisas incomuns - acontecem. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 0,6 MB - -8.74.1. Instalação do Sysklogd - - Primeiro, conserte problemas que causam uma falha de segmentação sob - certas condições em klogd e conserte uma construção obsoleta de - aplicativo: -sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c -sed -i 's/union wait/int/' syslogd.c - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make BINDIR=/sbin install - -8.74.2. Configurando Sysklogd - - Crie um novo arquivo /etc/syslog.conf executando o seguinte: -cat > /etc/syslog.conf << "EOF" -# Begin /etc/syslog.conf - -auth,authpriv.* -/var/log/auth.log -*.*;auth,authpriv.none -/var/log/sys.log -daemon.* -/var/log/daemon.log -kern.* -/var/log/kern.log -mail.* -/var/log/mail.log -user.* -/var/log/user.log -*.emerg * - -# End /etc/syslog.conf -EOF - -8.74.3. Conteúdo do Sysklogd - - Aplicativos instalados: klogd e syslogd - -Descrições Curtas - - klogd - - Um daemon de sistema para interceptar e registrar mensagens do kernel - - syslogd - - Registra as mensagens que aplicativos do sistema oferecem para registro - [Cada mensagem registrada contém pelo menos uma marca de data e um nome - de dispositivo, e normalmente o nome do aplicativo também, mas isso - depende do quão confiável o daemon de registro é dito ser] - -8.75. Sysvinit-3.01 - - O pacote Sysvinit contém aplicativos para controlar a inicialização, - execução e desligamento do sistema. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 1,4 MB - -8.75.1. Instalação do Sysvinit - - Primeiro, aplique uma correção que remove vários aplicativos instalados - por outros pacotes, esclarece uma mensagem, e conserta um aviso de - compilador: -patch -Np1 -i ../sysvinit-3.01-consolidated-1.patch - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.75.2. Conteúdo do Sysvinit - - Aplicativos instalados: bootlogd, fstab-decode, halt, init, killall5, - poweroff (link para halt), reboot (link para halt), runlevel, shutdown - e telinit (link para init) - -Descrições Curtas - - bootlogd - - Registra mensagens de inicialização para um arquivo de registro - - fstab-decode - - Executa um comando com argumentos codificados para fstab - - halt - - Normalmente invoca shutdown com a opção -h, exceto quando já em nível - de execução 0, então ele diz ao kernel para parar o sistema; ele anota - no arquivo /var/log/wtmp que o sistema está sendo desligado - - init - - O primeiro processo a ser iniciado quando o kernel inicializou o - hardware e que assume o processo de inicialização e inicia todos os - processos especificados no arquivo de configuração dele - - killall5 - - Envia um sinal para todos os processos, exceto os processos na própria - sessão dele, de modo que ele não matará o shell pai dele - - poweroff - - Diz ao kernel para parar o sistema e desligar o computador (veja halt) - - reboot - - Diz ao kernel para reinicializar o sistema (veja halt) - - runlevel - - Relata o nível de execução anterior e o atual, conforme anotado no - último registro de nível de execução em /run/utmp - - shutdown - - Desliga o sistema de maneira segura, sinalizando todos os processos e - notificando todas(os) as(os) usuárias(os) logadas(os) - - telinit - - Diz ao init para qual nível de execução mudar - -8.76. Acerca dos Símbolos de Depuração - - A maioria dos aplicativos e bibliotecas é, por padrão, compilada com - símbolos de depuração incluídos (com opção -g do gcc). Isso significa - que quando depurar um aplicativo ou biblioteca que foi compilado com - informação de depuração, o depurador pode fornecer não apenas endereços - de memória, mas também os nomes das rotinas e variáveis. - - Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um exemplo da - quantidade de espaço que esses símbolos ocupam: - * Um binário bash com símbolos de depuração: 1200 KB - * Um binário bash sem símbolos de depuração: 480 KB - * Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de - depuração: 87 MB - * Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB - - Tamanhos talvez variem dependendo de qual compilador e biblioteca C - foram usados, mas quando comparar aplicativos com e sem símbolos de - depuração, a diferença geralmente será um fator entre dois e cinco. - - Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco pode ser - recuperado removendo esses símbolos. A próxima seção mostra como - remover todos os símbolos de depuração dos aplicativos e bibliotecas. - -8.77. Despojando - - Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for uma(m) - programadora(r) e não planeja fazer qualquer depuração nos aplicativos - do sistema, então o tamanho do sistema pode ser reduzido em cerca de 2 - GB removendo os símbolos de depuração de binários e bibliotecas. Isso - não causa nenhum inconveniente além de não mais poder depurar os - aplicativos completamente. - - A maioria das pessoas que usam os comandos mencionados abaixo não - experimenta quaisquer dificuldades. Entretanto, é fácil cometer um erro - de digitação e tornar o novo sistema inutilizável, de forma que, antes - de executar os comandos strip, é uma boa ideia produzir uma cópia de - segurança do sistema LFS no estado atual dele. - - Os símbolos de depuração para bibliotecas selecionadas estão colocados - em arquivos separados. Essa informação de depuração é necessária se - executar testes de regressão que usam [617]valgrind ou [618]gdb - posteriormente em BLFS. - - Observe que strip sobrescreverá o arquivo de binário ou biblioteca que - ele está processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. Para - evitar isso, nós copiaremos algumas bibliotecas e binários para /tmp, - despojaremos elas lá, e instalaremos elas de volta com o comando - install. Leia a entrada relacionada em [619]Seção 8.2.1, “Problemas de - Atualização†para a justificativa para usar o comando install aqui. - -Nota - - O nome do carregador de ELF é ld-linux-x86-64.so.2 em sistemas de 64 - bits e ld-linux.so.2 em sistemas de 32 bits. A construção abaixo - seleciona o nome correto para a arquitetura atual. -save_usrlib="$(cd /usr/lib; ls ld-linux*) - libc.so.6 - libthread_db.so.1 - libquadmath.so.0.0.0 - libstdc++.so.6.0.29 - libitm.so.1.0.0 - libatomic.so.1.2.0" - -cd /usr/lib - -for LIB in $save_usrlib; do - objcopy --only-keep-debug $LIB $LIB.dbg - cp $LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -online_usrbin="bash find strip" -online_usrlib="libbfd-2.38.so - libhistory.so.8.1 - libncursesw.so.6.3 - libm.so.6 - libreadline.so.8.1 - libz.so.1.2.11 - $(cd /usr/lib; find libnss*.so* -type f)" - -for BIN in $online_usrbin; do - cp /usr/bin/$BIN /tmp/$BIN - strip --strip-unneeded /tmp/$BIN - install -vm755 /tmp/$BIN /usr/bin - rm /tmp/$BIN -done - -for LIB in $online_usrlib; do - cp /usr/lib/$LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ - $(find /usr/lib -type f -name \*.a) \ - $(find /usr/{bin,sbin,libexec} -type f); do - case "$online_usrbin $online_usrlib $save_usrlib" in - *$(basename $i)* ) - ;; - * ) strip --strip-unneeded $i - ;; - esac -done - -unset BIN LIB save_usrlib online_usrbin online_usrlib - - Um número grande de arquivos serão relatados como tendo o formato de - arquivo deles não reconhecido. Esses avisos podem ser seguramente - ignorados. Eles indicam que aqueles arquivos são scripts em vez de - binários. - -8.78. Limpando - - Finalmente, limpe alguns arquivos extra deixados pela execução de - testes: -rm -rf /tmp/* - - Existem também muitos arquivos instalados nos diretórios /usr/lib e - /usr/libexec com uma extensão de nome de arquivo de .la. Esses são - arquivos "libtool archive". Como já dito, eles somente são úteis quando - vincular com bibliotecas estáticas. Eles são desnecessários, e - potencialmente danosos, quando se usar bibliotecas compartilhadas - dinâmicas, especialmente quando se usar também sistemas de construção - não autotools. Para remover eles, execute: -find /usr/lib /usr/libexec -name \*.la -delete - - Para mais informação acerca de arquivos libtool archive, veja a - [620]seção de BLFS "About Libtool Archive (.la) files". - - O compilador construído em [621]Capítulo 6 e [622]Capítulo 7 ainda está - instalado parcialmente e não é mais necessário. Remova ele com: -find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf - - Por fim, remova a conta de usuária(o) 'tester' temporária criada no - início do capítulo anterior. -userdel -r tester - -Capítulo 9. Configuração do Sistema - -9.1. Introdução - - Inicializar um sistema Linux envolve muitas tarefas. O processo precisa - montar ambos sistemas de arquivos virtual e real, inicializar - dispositivos, ativar a troca, verificar sistemas de arquivos para - integridade, montar quaisquer partições ou arquivos de troca, - configurar o relógio do sistema, ativar rede, iniciar quaisquer daemons - exigidos pelo sistema, e realizar quaisquer outras tarefas - personalizadas necessitadas pela(o) usuária(o). Esse processo precisa - estar organizado para garantir que as tarefas sejam realizadas na ordem - correta, porém, ao mesmo tempo, ser executado o mais rápido possível. - -9.1.1. System V - - System V é o processo de inicialização clássico que tem sido usado em - sistemas Unix e semelhantes a Unix, tais como Linux, desde cerca de - 1983. Ele consiste de um aplicativo pequeno, init, que configura - aplicativos básicos, tais como login (via getty), e executa um script. - Esse script, usualmente chamado de rc, controla a execução de um - conjunto de scripts adicionais que realizam as tarefas exigidas para - inicializar o sistema. - - O aplicativo init é controlado pelo arquivo /etc/inittab e está - organizado em níveis de execução que podem ser executados pela(o) - usuária(o): - - 0 — parar - 1 — Modo de usuária(o) única(o) - 2 — Multiusuária(o), sem rede - 3 — Modo de multiusuária(o) completo - 4 — Definível pela(o) usuária(o) - 5 — Modo de multiusuária(o) completo com gerenciador de tela - 6 — reinicializar - - O nível de execução padrão usual é 3 ou 5. - -Vantagens - - * Sistema estabelecido, bem compreendido. - * Fácil de personalizar. - -Desvantagens - - * Talvez seja mais lento inicializar. Um sistema LFS básico de - velocidade média toma de 8 a 12 segundos, onde o tempo de - inicialização é medido desde a primeira mensagem do kernel até o - prompt de login. A conectividade de rede tipicamente é estabelecida - cerca de 2 segundos após o prompt de login. - * Processamento em série de tarefas de inicialização. Isso está - relacionado ao ponto anterior. Um atraso em qualquer processo, tal - como uma verificação de sistema de arquivos, atrasará o processo de - inicialização inteiro. - * Não suporta diretamente características avançadas, como grupos de - controle (cgroups), e agendamento de compartilhamento justo por - usuária(o). - * Adicionar scripts exige decisões de sequenciamento estático, - manuais. - -9.2. LFS-Bootscripts-20210608 - - O pacote LFS-Bootscripts contém um conjunto de scripts para - iniciar/parar o sistema LFS na inicialização/desligamento. Os arquivos - de configuração e procedimentos necessários para personalizar o - processo de inicialização estão descritos nas seções seguintes. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 244 KB - -9.2.1. Instalação do LFS-Bootscripts - - Instale o pacote: -make install - -9.2.2. Conteúdo do LFS-Bootscripts - - Scripts instalados: checkfs, cleanfs, console, functions, halt, ifdown, - ifup, localnet, modules, mountfs, mountvirtfs, network, rc, reboot, - sendsignals, setclock, ipv4-static, swap, sysctl, sysklogd, template, - udev e udev_retry - Diretórios instalados: /etc/rc.d, /etc/init.d (link simbólico), - /etc/sysconfig, /lib/services e /lib/lsb (link simbólico) - -Descrições Curtas - - checkfs - - Verifica a integridade dos sistemas de arquivos antes que eles sejam - montados (com a exceção dos sistemas de arquivos baseados em diário e - rede) - - cleanfs - - Remove os arquivos que não deveriam ser preservados entre as - reinicializações, tais como aqueles em /run/ e /var/lock/; ele recria - /run/utmp e remove os arquivos possivelmente presentes /etc/nologin, - /fastboot e /forcefsck - - console - - Carrega a tabela de mapa de tecla correta para o esquema de teclado - desejado; ele também configura a fonte de tela - - functions - - Contém funções comuns, tais como de verificação de erro e situação, que - são usadas por diversos scripts de inicialização - - halt - - Para o sistema - - ifdown - - Para um dispositivo de rede - - ifup - - Inicializa um dispositivo de rede - - localnet - - Configura o nome de dispositivo do sistema e dispositivo de loopback - local - - modules - - Carrega módulos do kernel listados em /etc/sysconfig/modules, usando - argumentos que também são dados lá - - mountfs - - Monta todos os sistemas de arquivos, exceto os que estão marcados como - noauto ou são baseados em rede - - mountvirtfs - - Monta os sistemas de arquivos do kernel virtuais, tais como o proc - - network - - Configura as interfaces de rede, tais como placas de rede, e configura - o gateway padrão (onde aplicável) - - rc - - O script de controle de nível de execução mestre; ele é responsável por - executar todos os outros scripts de inicialização, um por um, em uma - sequência determinada pelo nome dos links simbólicos sendo processados - - reboot - - Reinicializa o sistema - - sendsignals - - Garante que cada processo seja terminado antes que o sistema - reinicialize ou pare - - setclock - - Reconfigura o relógio do kernel para hora local quando o relógio do - hardware não está configurado para hora UTC - - ipv4-static - - Fornece a funcionalidade necessária para atribuir um endereço Internet - Protocol (IP) estático para uma interface de rede - - swap - - Habilita e desabilita arquivos e partições de troca - - sysctl - - Carrega valores de configuração de sistema a partir do - /etc/sysctl.conf, se esse arquivo existir, para dentro do kernel em - execução - - sysklogd - - Inicia e para os daemons de registro do sistema e kernel - - template - - Um modelo para criar scripts de inicialização personalizados para - outros daemons - - udev - - Prepara o diretório /dev e inicia o Udev - - udev_retry - - Tenta novamente uevents do udev que falharam, e copia arquivos de - regras gerados de /run/udev para /etc/udev/rules.d se exigido - -9.3. Visão Geral do Manuseio de Dispositivos e Módulos - - No [623]Capítulo 8, nós instalamos o pacote udev quando eudev foi - construído. Antes de entrarmos em detalhes referentes a como isso - funciona, um histórico breve dos métodos anteriores de manuseio de - dispositivos é oportuno. - - Sistemas Linux em geral tradicionalmente usavam um método de criação de - dispositivo estático, pelo qual muitos nós de dispositivos eram criados - sob /dev (as vezes literalmente milhares de nós), independente de se os - dispositivos de hardware correspondentes atualmente existissem. Isso - tipicamente era feito via um script MAKEDEV, o qual contém um número de - chamadas ao aplicativo mknod com os números de dispositivo principal e - secundário relevantes para cada dispositivo possível que pudesse - existir no mundo. - - Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para eles. Como - esses nós de dispositivo serão criados a cada vez que o sistema - inicializar, eles serão armazenados em um sistema de arquivos devtmpfs - (um sistema de arquivos virtual que reside inteiramente na memória do - sistema). Nós de dispositivo não exigem muito espaço, de forma que a - memória que é usada é insignificante. - -9.3.1. Histórico - - Em fevereiro 2000, um novo sistema de arquivos chamado devfs foi - mesclado no kernel 2.3.46 e foi feito disponível durante as séries 2.4 - de kernels estáveis. Embora ele estivesse presente no próprio fonte do - kernel, esse método de criar dispositivos dinamicamente nunca recebeu - suporte decisivo das(os) desenvolvedoras(es) do kernel centrais. - - O problema principal com a abordagem adotada pelo devfs era a maneira - como ele lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, era talvez - o mais crítico. É aceito geralmente que, se nomes de dispositivo são - passíveis de serem configuráveis, então a política de nomenclatura de - dispositivo esteja a cargo de uma(m) administradora(r) do sistema, não - imposta sobre elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com - algumas condições que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou marcado - como obsoleto por um longo período – e foi finalmente removido do - kernel em junho de 2006. - - Com o desenvolvimento da árvore do kernel 2.5 instável, liberada - posteriormente como as séries 2.6 dos kernels estáveis, um novo sistema - de arquivos virtual chamado sysfs veio a existir. O trabalho do sysfs é - o de exportar uma visão da configuração de hardware do sistema para - processos de espaço de usuária(o). Com essa representação visível ao - espaço de usuária(o), a possibilidade de desenvolvimento de um - substituto de espaço de usuária(o) para o devfs tornou-se muito mais - realista. - -9.3.2. Implementação do Udev - -9.3.2.1. Sysfs - - O sistema de arquivos sysfs foi mencionado brevemente acima. Alguém - talvez questione como o sysfs sabe sobre os dispositivos presentes em - um sistema e quais números de dispositivo deveriam ser usados para - eles. Controladores que tenham sido compilados diretamente no kernel - registram os objetos deles com um sysfs (devtmpfs internamente) assim - que eles são detectados pelo kernel. Para controladores compilados como - módulos, esse registro acontecerá quando o módulo for carregado. Assim - que o sistema de arquivos sysfs for montado (em /sys), os dados os - quais os controladores registram com sysfs ficam disponíveis para os - processos de espaço de usuária(o) e para udevd para processamento - (incluindo modificações para nós de dispositivo). - -9.3.2.2. Criação de Nó de Dispositivo - - Arquivos de dispositivo são criados pelo kernel por meio do sistema de - arquivos devtmpfs. Qualquer controlador que deseje registrar um nó de - dispositivo usará o devtmpfs (via o núcleo do controlador) para - fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de - dispositivo inicialmente será criado com um nome, permissões e - proprietária(o) fixos. - - Pouco tempo depois, o kernel enviará um uevent para udevd. Baseado nas - regras especificadas nos arquivos dentro dos diretórios - /etc/udev/rules.d, /usr/lib/udev/rules.d e /run/udev/rules.d, udevd - criará links simbólicos adicionais para o nó de dispositivo, ou mudará - as permissões, proprietária(o), ou grupo deles, ou modificará a entrada - de banco de dados do udevd interna (nome) para aquele objeto. - - As regras nesses três diretórios são numeradas e todos os três - diretórios são mesclados. Se udevd não puder encontrar uma regra para o - dispositivo que ele está criando, então ele deixará as permissões e - propriedade no que devtmpfs usou inicialmente. - -9.3.2.3. Carregamento de Módulo - - Controladores de dispositivo compilados como módulos talvez tenham - apelidos construídos dentro deles. Apelidos são visíveis na saída do - aplicativo modinfo e geralmente estão relacionados aos identificadores - específicos ao barramento dos dispositivos suportados por um módulo. - Por exemplo, o controlador snd-fm801 suporta dispositivos PCI com ID de - fornecedor 0x1319 e ID de dispositivo 0x0801, e tem um apelido de - “pci:v00001319d00000801sv*sd*bc04sc01i*â€. Para a maioria dos - dispositivos, o controlador de barramento exporta o apelido do - controlador que lidaria com o dispositivo via sysfs. Por exemplo, o - arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias pode conter a - sequência de caracteres - “pci:v00001319d00000801sv00001319sd00001319bc04sc01i00â€. As regras - padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser - o mesmo que o conteúdo do arquivo modalias em sysfs), dessa forma - carregando todos os módulos cujos apelidos correspondem a essa - sequência de caracteres depois da expansão de carácter curinga. - - Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele estiver disponível. - Veja abaixo maneiras pelas quais o carregamento de controladores - indesejados pode ser evitado. - - O próprio kernel também é capaz de carregar módulos para protocolos de - rede, sistemas de arquivos e suporte NLS sob demanda. - -9.3.2.4. Lidando com Dispositivos Plugáveis a Quente/Dinâmicos - - Quando você conecta um dispositivo, como um tocador de MP3 Universal - Serial Bus (USB), o kernel reconhece que o dispositivo agora está - conectado e gera um uevent. Esse uevent é então tratado pelo udevd como - descrito acima. - -9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos - - Existem uns poucos possíveis problemas quando se trata de criar - automaticamente nós de dispositivos. - -9.3.3.1. Um módulo do kernel não é carregado automaticamente - - O Udev só carregará um módulo se ele tiver um apelido específico a - barramento e o controlador de barramento exportar adequadamente os - apelidos necessários para sysfs. Em outros casos, deve-se organizar o - carregamento de módulo por outros meios. Com o Linux-5.16.9, udev é - conhecido por carregar controladores escritos adequadamente para - dispositivos INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. - - Para determinar se o controlador de dispositivo que você exige tem o - suporte necessário para udev, execute modinfo com o nome de módulo como - o argumento. Agora tente localizar o diretório de dispositivo sob - /sys/bus e verifique se existe um arquivo modalias lá. - - Se o arquivo modalias existir em sysfs, então o controlador suporta o - dispositivo e pode falar com ele diretamente, mas não tem o apelido, - isso é um defeito no controlador. Carregue o controlador sem a ajuda do - udev e espere que o problema seja consertado posteriormente. - - Se não existir arquivo modalias no diretório relevante sob /sys/bus, - então isso significa que as(os) desenvolvedoras(es) do kernel ainda não - adicionaram suporte modalias para esse tipo de barramento. Com - Linux-5.16.9, esse é o caso com barramentos ISA. Espere que esse - problema seja consertado em versões do kernel posteriores. - - Udev não é planejado para carregar controladores “encapsuladoresâ€, tais - como snd-pcm-oss, e controladores não hardware, tais como loop, de - maneira alguma. - -9.3.3.2. Um módulo do kernel não é carregado automaticamente, e udev não é -planejado para carregar ele - - Se o módulo “encapsulador†apenas aprimora a funcionalidade fornecida - por algum outro módulo (por exemplo, snd-pcm-oss aprimora a - funcionalidade de snd-pcm tornando as placas de som disponíveis para - aplicações OSS), então configure modprobe para carregar o encapsulador - após o udev carregar o módulo encapsulado. Para fazer isso, adicione - uma linha “softdep†ao arquivo /etc/modprobe.d/.conf - correspondente. Por exemplo: -softdep snd-pcm post: snd-pcm-oss - - Observe que o comando “softdep†também permite dependências pre:, ou - uma mistura de ambas as dependências pre: e post:. Veja-se a página de - manual modprobe.d(5) para mais informação sobre a sintaxe e capacidades - “softdepâ€. - - Se o módulo em questão não é um encapsulador e é útil por ele próprio, - então configure o script de inicialização modules para carregar esse - módulo na inicialização do sistema. Para fazer isso, adicione o nome de - módulo ao arquivo /etc/sysconfig/modules em uma linha separada. Isso - funciona para módulos encapsuladores também, mas é abaixo do ideal - naquele caso. - -9.3.3.3. Udev carrega algum módulo indesejado - - Ou não construa o módulo, ou coloque-o na lista negra em um arquivo - /etc/modprobe.d/blacklist.conf como feito com o módulo forte no exemplo - abaixo: -blacklist forte - - Módulos em listas negras ainda podem ser carregados manualmente com o - comando explícito modprobe. - -9.3.3.4. Udev cria um dispositivo incorretamente, ou faz um link simbólico -errado - - Isso geralmente acontece se uma regra inesperadamente corresponder com - um dispositivo. Por exemplo, uma regra mal escrita pode corresponder - com ambos um disco SCSI (como desejado) e o dispositivo genérico SCSI - correspondente (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando udevadm - info. - -9.3.3.5. Regra do Udev funciona de forma não confiável - - Isso talvez seja outra manifestação do problema anterior. Se não, e sua - regra usar atributos do sysfs, então isso talvez seja um problema de - temporização do kernel, a ser consertado em kernels posteriores. Por - hora, você pode contornar ele criando uma regra que aguarda o atributo - do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules (crie esse arquivo se ele não - existir). Por favor notifique a lista LFS Development se você o fizer e - isso ajudar. - -9.3.3.6. Udev não cria um dispositivo - - O texto adicional assume que o driver está construído estaticamente - dentro do kernel ou já carregado como um módulo, e que você já - verificou que o udev não cria um dispositivo mal nomeado. - - Udev não tem informação necessária para criar um nó de dispositivo se - um controlador de kernel não exportar os dados dele para o sysfs. Isso - é mais comum com controladores terceirizados oriundos de fora da árvore - do kernel. Crie um nó de dispositivo estático em /usr/lib/udev/devices - com os números principal/secundário apropriados (veja o arquivo - devices.txt dentro da documentação do kernel ou a documentação - fornecida pela(o) fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. - -9.3.3.7. Ordem de nomenclatura de dispositivo muda aleatoriamente após -reinicializar - - Isso é devido ao fato de o udev, pelo projeto, lidar com uevents e - carregar módulos em paralelo, e assim em uma ordem imprevisível. Isso - nunca será “consertadoâ€. Você não deveria confiar que os nomes de - dispositivos do kernel sejam estáveis. Em vez disso, crie suas próprias - regras que fazem links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de série ou a - saída dos vários utilitários *_id instalados pelo udev. Veja-se a - [624]Seção 9.4, “Gerenciando Dispositivos†e [625]Seção 9.5, - “Configuração de Rede Geral†para exemplos. - -9.3.4. Leitura Útil - - Documentação útil adicional está disponível nos seguintes sítios: - * A Userspace Implementation of devfs - [626]http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-K - roah-Hartman-OLS2003.pdf - * The sysfs Filesystem - [627]http://www.kernel.org/pub/linux/kernel/people/mochel/doc/paper - s/ols-2005/mochel.pdf - -9.4. Gerenciando Dispositivos - -9.4.1. Dispositivos de Rede - - Udev, por padrão, nomeia dispositivos de rede de acordo com dados de - Firmware/BIOS ou características físicas como barramento, slot ou - endereço MAC. O propósito dessa convenção de nomenclatura é o de - garantir que dispositivos de rede sejam nomeados consistentemente e não - baseados no horário que a placa de rede foi descoberta. Por exemplo, em - um computador que tem duas placas de rede feitas por Intel e Realtek, a - placa de rede fabricada pela Intel talvez se torne eth0 e a placa - Realtek se torne eth1. Em alguns casos, após uma reinicialização as - placas poderiam ser renumeradas de maneira inversa. - - No novo esquema de nomenclatura, nomes de dispositivo de rede típicos - seriam então alguma coisa como enp5s0 ou wlp3s0. Se essa convenção de - nomenclatura não for desejada, então o esquema de nomenclatura - tradicional ou um esquema personalizado pode ser implementado. - -9.4.1.1. Desabilitando Nomenclatura Persistente na Linha de Comando do Kernel - - O esquema de nomenclatura tradicional usando eth0, eth1, etc., pode ser - restaurado adicionando-se net.ifnames=0 na linha de comando do kernel. - Isso é mais apropriado para aqueles sistemas que tem apenas um - dispositivo ethernet do mesmo tipo. Laptops frequentemente tem - múltiplas conexões ethernet que são nomeadas eth0 e wlan0 e são também - candidatas para esse método. A linha de comando é passada no arquivo de - configuração do GRUB. Veja-se [628]Seção 10.4.4, “Criando o Arquivo de - Configuração do GRUBâ€. - -9.4.1.2. Criando Regras do Udev Personalizadas - - O esquema de nomenclatura pode ser personalizado criando-se regras do - udev personalizadas. Um script foi incluído que gera as regras - iniciais. Gere essas regras executando: -bash /usr/lib/udev/init-net-rules.sh - - Agora, inspecione o arquivo /etc/udev/rules.d/70-persistent-net.rules, - para descobrir qual nome foi atribuído a qual dispositivo de rede: -cat /etc/udev/rules.d/70-persistent-net.rules - -Nota - - Em alguns casos tais como quando endereços MAC foram atribuídos para - uma placa de rede manualmente ou em um ambiente virtual como Qemu ou - Xen, o arquivo de regras de rede talvez não tenha sido gerado, pois - endereços não são atribuídos consistentemente. Nesses casos, esse - método não pode ser usado. - - O arquivo começa com um bloco de comentário seguido por duas linhas - para NIC. A primeira linha para cada NIC é uma descrição comentada - mostrando os IDs de hardware delas (por exemplo, fornecedor de PCI - delas e IDs de dispositivo, se ela for uma placa PCI), juntamente com o - controlador delas entre parênteses, se o controlador puder ser - encontrado. Nem o ID de hardware nem o controlador é usado para - determinar quais nomes dar para uma interface; essa informação é apenas - para referência. A segunda linha é a regra do udev que corresponde a - essa NIC e atualmente atribui a ela um nome. - - Todas as regras do udev são compostas de muitas chaves, separadas por - vírgulas e espaços em branco opcionais. Essas chaves da regra e uma - explanação de cada uma delas estão a seguir: - * SUBSYSTEM=="net" - Isso diz a udev para ignorar dispositivos que - não sejam placas de rede. - * ACTION=="add" - Isso diz a udev para ignorar essa regra para um - uevent que não seja um adicionar (uevents "remover" e "mudar" - também acontecem, porém não precisam renomear interfaces de rede). - * DRIVERS=="?*" - Isso existe de forma que udev ignorará - sub-interfaces VLAN ou bridge (pois essas sub-interfaces não tem - controladores). Essas sub-interfaces são puladas, pois o nome que - seria atribuído conflitaria com os dispositivos pais delas. - * ATTR{address} - O valor dessa chave é o endereço MAC da NIC. - * ATTR{type}=="1" - Isso garante que a regra corresponde apenas à - interface primária no caso de certos controladores sem fios os - quais criam múltiplas interfaces virtuais. As interfaces - secundárias são puladas pela mesma razão que sub-interfaces VLAN e - bridge são puladas: existiria um conflito de nome do contrário. - * NAME - O valor dessa chave é o nome que udev atribuirá para essa - interface. - - O valor de NAME é a parte importante. Assegure-se de que você sabe qual - nome foi atribuído para cada uma das suas placas de rede antes de - prosseguir, e tenha certeza de usar esse valor NAME quando criar seus - arquivos de configuração abaixo. - -9.4.2. Links Simbólicos de CD-ROM - - Alguns aplicativos que você talvez queira instalar posteriormente (por - exemplo, vários tocadores de mídia) esperam que os links simbólicos - /dev/cdrom e /dev/dvd existam, e apontem para um dispositivo de CD-ROM - ou DVD-ROM. Também, talvez seja conveniente colocar referências a esses - links simbólicos em /etc/fstab. Udev vem com um script que gerará - arquivos de regras para criar esses links simbólicos para você, - dependendo das capacidades de cada dispositivo, mas você precisa - decidir qual de dois modos de operação você deseja ter para o script - usar. - - Primeiro, o script pode operar em modo “por-caminho†(usado por padrão - para dispositivos USB e FireWire), onde as regras que ele cria dependem - do caminho físico para o dispositivo de CD ou DVD. Segundo, ele pode - operar em modo “por-id†(padrão para dispositivos IDE e SCSI), onde as - regras que ele cria dependem das sequências de caracteres de - identificação armazenadas no próprio dispositivo de CD ou DVD. O - caminho é determinado pelo script path_id do udev, e as sequências de - caracteres de identificação são lidas a partir do hardware pelos - aplicativos ata_id ou scsi_id dele, dependendo de qual tipo de - dispositivo você tenha. - - Existem vantagens para cada abordagem; a abordagem correta a usar - dependerá de que tipos de mudanças de dispositivo talvez aconteçam. Se - você espera o caminho físico para o dispositivo (isto é, as portas e - (ou) slots aos quais ele se conecta) mudar, por exemplo porque você - planeja mover a unidade para uma porta IDE diferente ou um conector USB - diferente, então você deveria usar o modo “por-idâ€. Por outro lado, se - você espera que a identificação do dispositivo mude, por exemplo porque - ele talvez morra, e você o substituiria por um dispositivo diferente - com as mesmas capacidades e que estaria plugado nos mesmos conectores, - então você deveria usar o modo “por-caminhoâ€. - - Se ambos os tipos de mudanças são possíveis com a sua unidade, então - escolha um modo baseado no tipo de mudança que você espera que aconteça - com maior frequência. - -Importante - - Dispositivos externos (por exemplo, uma unidade de CD conectada via - USB) não deveria usar persistência por caminho, porque cada vez que o - dispositivo for plugado em uma nova porta externa, o caminho físico - dele mudará. Todos os dispositivos conectados externamente terão esse - problema se você escrever regras do udev para reconhecê-los pelo - caminho físico deles; o problema não está limitado a unidades de CD e - DVD. - - Se você deseja ver os valores que os scripts do udev usarão, então para - o dispositivo de CD-ROM apropriado, encontre o diretório correspondente - sob /sys (por exemplo, isso pode ser /sys/block/hdd) e execute um - comando similar ao seguinte: -udevadm test /sys/block/hdd - - Olhe para as linhas contendo a saída de vários aplicativos *_id. O modo - “por-id†usará o valor ID_SERIAL se ele existir e não estiver vazio, do - contrário ele usará uma combinação de ID_MODEL e ID_REVISION. O modo - “por-caminho†usará o valor ID_PATH. - - Se o modo padrão não for adequado para a sua situação, então a seguinte - modificação pode ser feita para o arquivo - /etc/udev/rules.d/83-cdrom-symlinks.rules, como se segue (onde mode é - um de “por-id†ou “por-caminhoâ€): -sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \ - -i /etc/udev/rules.d/83-cdrom-symlinks.rules - - Observe que não é necessário criar os arquivos de regras ou links - simbólicos neste momento, porque você montou com bind o diretório do - sistema anfitrião /dev dentro do sistema LFS, e nós assumimos que os - links simbólicos existem no anfitrião. As regras e links simbólicos - serão criados na primeira vez que você inicializar seu sistema LFS. - - Entretanto, se você tiver múltiplos dispositivos de CD-ROM, então os - links simbólicos gerados naquele momento talvez apontem para - dispositivos diferentes dos que eles apontam em seu anfitrião, porque - os dispositivos não são descobertos em uma ordem previsível. As - atribuições criadas quando você inicializar o sistema LFS pela primeira - vez serão estáveis, de forma que isso é um problema apenas se você - precisar dos links simbólicos em ambos os sistemas para apontar para o - mesmo dispositivo. Se você precisar disso, então inspecione (e - possivelmente edite) o arquivo /etc/udev/rules.d/70-persistent-cd.rules - gerado após a inicialização, para ter certeza que os links simbólicos - atribuídos correspondem ao que você precisa. - -9.4.3. Lidando com dispositivos duplicados - - Como explicado na [629]Seção 9.3, “Visão Geral do Manuseio de - Dispositivos e Módulosâ€, a ordem na qual dispositivos com a mesma - função aparecem em /dev é essencialmente aleatória. Por exemplo, se - você tem uma câmera web USB e um sintonizador de TV, as vezes - /dev/video0 se refere à câmera e /dev/video1 se refere ao sintonizador, - e as vezes após uma reinicialização a ordem muda. Para todas as classes - de hardware, exceto placas de som e placas de rede, isso é consertável - criando regras do udev para links simbólicos persistentes - personalizados. O caso das placas de rede é abordado separadamente na - [630]Seção 9.5, “Configuração de Rede Geralâ€, e configuração de placa - de som pode ser encontrado em [631]BLFS. - - Para cada um dos seus dispositivos que é provável ter esse problema - (mesmo que o problema não exista em sua distribuição Linux atual), - encontre o diretório correspondente sob /sys/class ou /sys/block. Para - dispositivos de vídeo, isso talvez seja /sys/class/video4linux/videoX. - Descubra os atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números seriais - funcionam): -udevadm info -a -p /sys/class/video4linux/video0 - - Então escreva regras que criam os links simbólicos, por exemplo: -cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" - -# Persistent symlinks for webcam and tuner -KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="w -ebcam" -KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="t -vtuner" - -EOF - - O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se - referem aleatoriamente ao sintonizador e à câmera web (e, portanto, - nunca deveriam ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o dispositivo - correto. - -9.5. Configuração de Rede Geral - -9.5.1. Criando Arquivos de Configuração de Interface de Rede - - Quais interfaces são levantadas ou derrubadas pelo script de rede - usualmente depende dos arquivos em /etc/sysconfig/. Esse diretório - deveria conter um arquivo para cada interface a ser configurada, tal - como ifconfig.xyz, onde “xyz†deveria descrever a placa de rede. O nome - de interface (por exemplo, eth0) usualmente é apropriado. Dentro desse - arquivo estão atributos para essa interface, tais como endereço(s) IP - dela, máscaras de subrede, e por aí vai. É necessário que a base do - nome do arquivo seja ifconfig. - -Nota - - Se o procedimento na seção anterior não foi usado, udev atribuirá nomes - de interface de placa de rede baseados em características físicas do - sistema, tais como enp2s1. Se você não tem certeza qual é seu nome de - interface, então você sempre pode executar ip link ou ls /sys/class/net - após você ter inicializado seu sistema. - - Os nomes de interface dependem da implementação e configuração do - daemon udev em execução no sistema. O daemon udev para LFS (instalado - na [632]Seção 8.69, “Eudev-3.2.11â€) não executará até que o sistema LFS - seja inicializado. Assim, não é confiável determinar os nomes de - interface sendo usados no sistema LFS executando aqueles comandos na - distribuição anfitriã, mesmo que você esteja no ambiente chroot. - - O seguinte comando cria um arquivo modelo para o dispositivo eth0 com - um endereço de IP estático: -cd /etc/sysconfig/ -cat > ifconfig.eth0 << "EOF" -ONBOOT=yes -IFACE=eth0 -SERVICE=ipv4-static -IP=192.168.1.2 -GATEWAY=192.168.1.1 -PREFIX=24 -BROADCAST=192.168.1.255 -EOF - - Os valores em itálico precisam ser mudados em cada arquivo para - corresponder com a configuração adequada. - - Se a variável ONBOOT estiver configurada para “yesâ€, então o script de - rede do System V levantará a Network Interface Card (NIC) durante o - processo de inicialização do sistema. Se configurado para qualquer - coisa exceto “yesâ€, então a NIC será ignorada pelo script de rede e não - será levantada automaticamente. A interface pode ser manualmente - iniciada ou parada com os comandos ifup e ifdown. - - A variável IFACE define o nome de interface, por exemplo, eth0. Ela é - exigida para todos os arquivos de configuração de dispositivo de rede. - A extensão de nome de arquivo precisa corresponder a esse valor. - - A variável SERVICE define o método usado para obter o endereço de IP. O - pacote LFS-Bootscripts tem um formato de atribuição de IP modular, e - criar arquivos adicionais no diretório /lib/services/ permite outros - métodos de atribuição de IP. Isso é comumente usado para Dynamic Host - Configuration Protocol (DHCP), o qual é abordado no livro BLFS. - - A variável GATEWAY deveria conter o endereço de IP do gateway padrão, - se um estiver presente. Se não, então comente a variável inteiramente. - - A variável PREFIX contém o número de bits usados na subrede. Cada - octeto em um endereço de IP é 8 bits. Se a máscara de rede da subrede - for 255.255.255.0, então ela está usando os primeiros três octetos (24 - bits) para especificar o número de rede. Se a máscara de rede for - 255.255.255.240, então ela estaria usando os primeiros 28 bits. - Prefixos mais longos que 24 bits são comumente usados por Internet - Service Providers (ISPs) DSL e baseados em cabos. Nesse exemplo - (PREFIX=24), a máscara de rede é 255.255.255.0. Ajuste a variável - PREFIX de acordo com sua subrede específica. Se omitida, então o PREFIX - padrão é 24. - - Para mais informação veja-se a página de manual do ifup. - -9.5.2. Criando o Arquivo /etc/resolv.conf - - O sistema precisará de alguma forma de obter resolução de nome do - Domain Name Service (DNS) para resolver nomes de domínio da Internet - para endereços de IP, e vice versa. Isso é melhor alcançado colocando o - endereço de IP do servidor de DNS, disponível a partir do ISP ou - administradora(r) de rede, no /etc/resolv.conf. Crie o arquivo - executando o seguinte: -cat > /etc/resolv.conf << "EOF" -# Begin /etc/resolv.conf - -domain -nameserver -nameserver - -# End /etc/resolv.conf -EOF - - A declaração domain pode ser omitida ou substituída com uma declaração - search. Veja-se a página de manual para resolv.conf para mais detalhes. - - Substitua com o endereço de IP do DNS - mais apropriado para a configuração. Frequentemente existirá mais que - uma entrada (exigências demandam servidores secundários para capacidade - de substituto). Se você precisa ou quer apenas um servidor de DNS, - então remova a segunda linha nameserver do arquivo. O endereço de IP - também talvez seja um roteador na rede local. - -Nota - - Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; - e 2001:4860:4860::8888 e 2001:4860:4860::8844 para IPv6. - -9.5.3. Configurando o nome de dispositivo do sistema - - Durante o processo de inicialização, o arquivo /etc/hostname é usado - para estabelecer o nome de dispositivo do sistema. - - Crie o arquivo /etc/hostname e informe um nome de dispositivo - executando: -echo "" > /etc/hostname - - precisa ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa informação é - colocada no arquivo /etc/hosts. - -9.5.4. Personalizando o Arquivo /etc/hosts - - Decida acerca do endereço de IP, fully-qualified domain name (FQDN), e - possíveis apelidos para uso no arquivo /etc/hosts. A sintaxe é: -IP_address myhost.example.org aliases - - A menos que o computador seja para estar visível para a Internet (por - exemplo, existe um domínio registrado e um bloco válido de endereços de - IP atribuídos—a maioria das(os) usuárias(os) não tem isso), assegure-se - de que o endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -Private Network Address Range Normal Prefix -10.0.0.1 - 10.255.255.254 8 -172.x.0.1 - 172.x.255.254 16 -192.168.y.1 - 192.168.y.254 24 - - x pode ser qualquer número no intervalo 16-31. y pode ser qualquer - número no intervalo 0-255. - - Um endereço de IP privado válido poderia ser 192.168.1.1. Um FQDN - válido para esse IP poderia ser lfs.example.org. - - Mesmo se não se usar uma placa de rede, um FQDN válido ainda é exigido. - Isso é necessário para determinados aplicativos operarem corretamente. - - Crie o arquivo /etc/hosts executando: -cat > /etc/hosts << "EOF" -# Begin /etc/hosts - -127.0.0.1 localhost.localdomain localhost -127.0.1.1 -<192.168.1.1> [alias1] [alias2 ...] -::1 localhost ip6-localhost ip6-loopback -ff02::1 ip6-allnodes -ff02::2 ip6-allrouters - -# End /etc/hosts -EOF - - Os valores <192.168.1.1>, e precisam ser mudados para - usuárias(os) ou exigências específicas(os) (se atribuído um endereço de - IP por uma(m) administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s). - - A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a interface - de loopback IPv6. 127.0.1.1 é uma entrada de loopback reservada - especificamente para o FQDN. - -9.6. Uso e Configuração do Script de Inicialização do System V - -9.6.1. Como os Scripts de Inicialização do System V funcionam? - - O Linux usa um aparato de inicialização especial chamado SysVinit que é - baseado em um conceito de níveis de execução. Isso pode ser bem - diferente de um sistema para outro, de forma que não pode ser assumido - que, porque as coisas funcionam em uma distribuição do Linux em - particular, elas deveriam funcionar da mesma forma no LFS também. O LFS - tem sua própria maneira de fazer as coisas, mas ele respeita os padrões - geralmente aceitos. - - O SysVinit (o qual será referido como “init†daqui pra frente) funciona - usando um esquema de níveis de execução. Existem sete (numerados de 0 a - 6) níveis de execução (atualmente, existem mais níveis de execução, mas - eles são para casos especiais e geralmente não são usados. Veja-se - init(8) para mais detalhes), e cada um deles corresponde às ações que o - computador é suposto realizar quando ele inicia. O nível de execução - padrão é 3. Aqui estão as descrições dos diferentes níveis de execução - conforme eles estão implementados: - - 0: parar o computador - 1: Modo de usuária(o) única(o) - 2: Modo de multiusuária(o), sem rede - 3: Modo de multiusuária(o), com rede - 4: Reservado para personalização, do contrário faz o mesmo que 3 - 5: Mesmo que 4, ele é usado usualmente para login GUI (como o xdm do X - ou o kdm do KDE) - 6: reinicializar o computador - -9.6.2. Configurando o Sysvinit - - Durante a inicialização do kernel, o primeiro aplicativo que é - executado ou é especificado na linha de comando ou, por padrão, init. - Esse aplicativo lê o arquivo de inicialização /etc/inittab. Crie esse - arquivo com: -cat > /etc/inittab << "EOF" -# Begin /etc/inittab - -id:3:initdefault: - -si::sysinit:/etc/rc.d/init.d/rc S - -l0:0:wait:/etc/rc.d/init.d/rc 0 -l1:S1:wait:/etc/rc.d/init.d/rc 1 -l2:2:wait:/etc/rc.d/init.d/rc 2 -l3:3:wait:/etc/rc.d/init.d/rc 3 -l4:4:wait:/etc/rc.d/init.d/rc 4 -l5:5:wait:/etc/rc.d/init.d/rc 5 -l6:6:wait:/etc/rc.d/init.d/rc 6 - -ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now - -su:S016:once:/sbin/sulogin - -1:2345:respawn:/sbin/agetty --noclear tty1 9600 -2:2345:respawn:/sbin/agetty tty2 9600 -3:2345:respawn:/sbin/agetty tty3 9600 -4:2345:respawn:/sbin/agetty tty4 9600 -5:2345:respawn:/sbin/agetty tty5 9600 -6:2345:respawn:/sbin/agetty tty6 9600 - -# End /etc/inittab -EOF - - Uma explicação desse arquivo de inicialização está na página de manual - para inittab. Para o LFS, o comando chave que é executado é rc. O - arquivo de inicialização acima instruirá rc a executar todos os scripts - começando com um S no diretório /etc/rc.d/rcS.d seguido por todos os - scripts começando com um S no diretório /etc/rc.d/rc?.d onde o ponto de - interrogação é especificado pelo valor de initdefault. - - Como uma conveniência, o script rc lê uma biblioteca de funções em - /lib/lsb/init-functions. Essa biblioteca também lê um arquivo de - configuração opcional, /etc/sysconfig/rc.site. Quaisquer dos parâmetros - de arquivo de configuração do sistema descritos em seções subsequentes - podem ser alternativamente colocados nesse arquivo permitindo a - consolidação de todos os parâmetros do sistema nesse único arquivo. - - Como uma conveniência de depuração, o script de funções também registra - todas as saídas para /run/var/bootlog. Dado que o diretório /run é um - tmpfs, esse arquivo não é persistente ao longo de inicializações, - entretanto ele é adicionado ao arquivo mais permanente - /var/log/boot.log ao final do processo de inicialização. - -9.6.2.1. Mudando Níveis de Execução - - A mudança de níveis de execução é feita com init , onde - é o nível de execução alvo. Por exemplo, para reinicializar - o computador, uma(m) usuária(o) poderia emitir o comando init 6, o qual - é um apelido para o comando reboot. Da mesma forma, init 0 é um apelido - para o comando halt. - - Existe um número de diretórios sob /etc/rc.d que se parecem com rc?.d - (onde ? é o número do nível de execução) e rcsysinit.d, todos contendo - um número de links simbólicos. Alguns começam com um K, os outros - começam com um S, e todos eles tem dois números seguindo a letra - inicial. O K significa parar (kill) um serviço e o S significa iniciar - um serviço. Os números determinam a ordem na qual os scripts são - executados, de 00 a 99—quanto menor o número mais cedo ele se torna - executado. Quando init muda para outro nível de execução, os serviços - adequados são tanto iniciados quanto parados, dependendo do nível de - execução escolhido. - - Os scripts reais estão em /etc/rc.d/init.d. Eles fazem o trabalho - atual, e os links simbólicos todos apontam para eles. Os links K e os - links S apontam para o mesmo script em /etc/rc.d/init.d. Isso é porque - os scripts podem ser chamados com parâmetros diferentes como start, - stop, restart, reload e status. Quando um link K é encontrado, o script - apropriado é executado com o argumento stop. Quando um link S é - encontrado, o script apropriado é executado com o argumento start. - - Existe uma exceção para essa explicação. Os links que começam com um S - nos diretórios rc0.d e rc6.d não farão nada ser iniciado. Eles serão - chamados com o parâmetro stop para parar alguma coisa. A lógica por - trás disso é a de que quando uma(m) usuária(o) está para reiniciar ou - parar o sistema, nada precisa ser iniciado. O sistema precisa apenas - ser parado. - - Estas são descrições do que os argumentos fazem os scripts fazer: - - start - O serviço é iniciado. - - stop - O serviço é parado. - - restart - O serviço é parado e então iniciado novamente. - - reload - A configuração do serviço é atualizada. Isso é usado depois que - o arquivo de configuração de um serviço foi modificado, quando o - serviço não precisa ser reiniciado. - - status - Diz se o serviço está executando e com quais PIDs. - - Sinta-se livre para modificar a maneira como o processo de - inicialização funciona (afinal de contas, este é seu próprio sistema - LFS). Os arquivos dados aqui são um exemplo de como isso pode ser - feito. - -9.6.3. Scripts de Inicialização do Udev - - O script de iniciação /etc/rc.d/init.d/udev inicia o udevd, aciona - quaisquer dispositivos "coldplug" que já tenham sido criados pelo - kernel e aguarda por quaisquer regras para completar. O script também - desconfigura o manuseador do uevent do padrão do /sbin/hotplug. Isso é - feito, pois o kernel não mais precisa chamar um binário externo. Em vez - disso, o udevd escutará em um soquete de link de rede os uevents que o - kernel gera. - - O script de iniciação /etc/rc.d/init.d/udev_retry se ocupa de reacionar - eventos para subsistemas cujas regras talvez dependam de sistemas de - arquivos que não estão montados até que o script mountfs seja executado - (em particular, /usr e /var talvez causem isso). Esse script executa - após o script mountfs, de forma que aquelas regras (se reacionadas) - deveriam prosperar na segunda vez. Ele é configurado a partir do - arquivo /etc/sysconfig/udev_retry; quaisquer palavras nesse arquivo - outras que comentários são consideradas nomes de subsistema para - acionar ao tempo de re-tentativa. Para encontrar o subsistema de um - dispositivo, use udevadm info --attribute-walk , onde - é um caminho absoluto em /dev ou /sys, tais como /dev/sr0 - ou /sys/class/rtc. - - Para informação acerca de carregamento de módulo de kernel e udev, - veja-se [633]Seção 9.3.2.3, “Carregamento de Móduloâ€. - -9.6.4. Configurando o Relógio do Sistema - - O script setclock lê a hora a partir do relógio do hardware, também - conhecido como relógio do BIOS ou do Complementary Metal Oxide - Semiconductor (CMOS). Se o relógio do hardware estiver ajustado para - UTC, então esse script converterá a hora do relógio do hardware para a - hora local usando o arquivo /etc/localtime (o qual diz ao aplicativo - hwclock qual fuso horário usar). Não existe maneira de detectar se o - relógio do hardware está ou não configurado para UTC, de forma que isso - precisa ser configurado manualmente. - - O aplicativo setclock é executado via udev quando o kernel detecta a - capacidade do hardware em consequência da inicialização. Ele também - pode ser executado manualmente com o parâmetro pare para armazenar a - hora do sistema para o relógio CMOS. - - Se você não conseguir lembrar se o relógio do hardware está ou não - configurado para UTC, então descubra executando o comando hwclock - --localtime --show. Isso mostrará o que é a hora atual de acordo com o - relógio do hardware. Se essa hora corresponder à que o seu relógio diz, - então o relógio do hardware está configurado para hora local. Se a - saída originária do hwclock não for a hora local, então as chances são - as de que ele esteja configurado para hora UTC. Verifique isso - adicionando ou subtraindo a quantidade apropriada de horas para o fuso - horário à (da) hora mostrada pelo hwclock. Por exemplo, se você estiver - atualmente no fuso horário MST, o qual é conhecido também como GMT - -0700, então adicione sete horas à hora local. - - Mude o valor da variável UTC abaixo para um valor de 0 (zero) se o - relógio do hardware NÃO estiver configurado para hora UTC. - - Crie um novo arquivo /etc/sysconfig/clock executando o seguinte: -cat > /etc/sysconfig/clock << "EOF" -# Begin /etc/sysconfig/clock - -UTC=1 - -# Set this to any options you might need to give to hwclock, -# such as machine hardware clock type for Alphas. -CLOCKPARAMS= - -# End /etc/sysconfig/clock -EOF - - Uma boa dica que explica como lidar com hora no LFS está disponível em - [634]https://www.linuxfromscratch.org/hints/downloads/files/time.txt. - Ela explica problemas como fusos horários, UTC e a variável de ambiente - TZ. - -Nota - - Os parâmetros CLOCKPARAMS e UTC também talvez sejam configurados no - arquivo /etc/sysconfig/rc.site. - -9.6.5. Configurando o Console do Linux - - Esta seção discute como configurar o script de inicialização console - que configura o mapa de teclado, fonte do console e nível de registro - do kernel do console. Se caracteres não-ASCII (por exemplo, o sinal de - direitos autorais, o sinal da libra britânica e o símbolo do Euro) não - serão usados e o teclado for um dos Estados Unidos da América do Norte, - então muito desta seção pode ser saltada. Sem o arquivo de - configuração, (ou configurações equivalentes em rc.site), o script de - inicialização console não fará nada. - - O script console lê o arquivo /etc/sysconfig/console para informação de - configuração. Decida qual mapa de teclado e fonte de tela serão usados. - Vários HOWTOs específicos de idiomas também podem ajudar com isso, - veja-se [635]http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Se - ainda em dúvida, então olhe nos diretórios /usr/share/keymaps e - /usr/share/consolefonts para mapas de teclado válidos e fontes de tela. - Leiam-se as páginas de manual loadkeys(1) e setfont(8) para determinar - os argumentos corretos para esses aplicativos. - - O arquivo /etc/sysconfig/console deveria conter linhas da forma: - VARIÃVEL="valor". As seguintes variáveis são reconhecidas: - - LOGLEVEL - Essa variável especifica o nível de registro para mensagens do - kernel enviadas para o console como configurado por dmesg -n. - Níveis válidos são de "1" (sem mensagens) até "8". O nível - padrão é "7". - - KEYMAP - Essa variável especifica os argumentos para o aplicativo - loadkeys, tipicamente, o nome do mapa de teclado a carregar, por - exemplo, “itâ€. Se essa variável não estiver configurada, então o - script de inicialização não executará o aplicativo loadkeys, e o - mapa de teclado do kernel padrão será usado. Observe que uns - poucos mapas de teclado tem múltiplas versões com o mesmo nome - (cz e variantes dele em qwerty/ e qwertz/; es em olpc/ e - qwerty/; e trf em fgGIod/ e qwerty/). Nesses casos, o diretório - pai também deveria ser especificado (por exemplo, qwerty/es) - para garantir que o mapa de teclado adequado seja carregado. - - KEYMAP_CORRECTIONS - Essa (raramente usada) variável especifica os argumentos para a - segunda chamada ao aplicativo loadkeys. Isso é útil se o mapa de - teclado padrão não for completamente satisfatório e um pequeno - ajuste tenha que ser feito. Por exemplo, para incluir o símbolo - do Euro em um mapa de teclado que normalmente não o tem, - configure essa variável para “euro2â€. - - FONT - Essa variável especifica os argumentos para o aplicativo - setfont. Tipicamente, isso inclui o nome de fonte, “-mâ€, e o - nome do mapa de caracteres de aplicação a carregar. Por exemplo, - para carregar a fonte “lat1-16†juntamente com o mapa de - caracteres de aplicação “8859-1†(já que ele é apropriado nos - Estados Unidos da América do Norte), configure essa variável - para “lat1-16 -m 8859-1â€. Em modo UTF-8, o kernel usa o mapa de - caracteres de aplicação para conversão dos códigos de tecla de 8 - bits compostos no mapa de teclado para UTF-8, e assim o - argumento do parâmetro "-m" deveria ser configurado para a - codificação dos códigos de tecla compostos no mapa de teclado. - - UNICODE - Configure essa variável para “1â€, “yes†ou “true†para colocar o - console em modo UTF-8. Isso é útil em locales baseados em UTF-8 - e danoso de outra forma. - - LEGACY_CHARSET - Para muitos esquemas de teclado, não existe mapa de teclado - Unicode padrão no pacote Kbd. O script de inicialização console - converterá um mapa de teclado disponível para UTF-8 em tempo - real se essa variável estiver configurada para a codificação do - mapa de teclado não-UTF-8 disponível. - - Alguns exemplos: - * Para uma configuração não-Unicode, apenas as variáveis KEYMAP e - FONT são geralmente necessárias. Por exemplo, para uma configuração - em polonês, alguém usaria: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -KEYMAP="pl2" -FONT="lat2a-16 -m 8859-2" - -# End /etc/sysconfig/console -EOF - * Como mencionado acima, as vezes é necessário ajustar um mapa de - teclado padrão um pouco. O exemplo seguinte adiciona o símbolo do - Euro ao mapa de teclado alemão: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -KEYMAP="de-latin1" -KEYMAP_CORRECTIONS="euro2" -FONT="lat0-16 -m 8859-15" -UNICODE="1" - -# End /etc/sysconfig/console -EOF - * O seguinte é um exemplo habilitado para Unicode para búlgaro, onde - um mapa de teclado UTF-8 padrão existe: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -UNICODE="1" -KEYMAP="bg_bds-utf8" -FONT="LatArCyrHeb-16" - -# End /etc/sysconfig/console -EOF - * Devido ao uso de uma fonte LatArCyrHeb-16 de 512 glifos no exemplo - anterior, cores brilhantes não mais estão disponíveis no console do - Linux, a menos que uma parte da RAM usada para armazenamento - temporário de dados que estão esperando para serem enviados para um - dispositivo e que armazene o conteúdo de uma imagem pixel por pixel - seja usada. Se alguém quiser ter cores brilhantes sem uma parte da - RAM usada para armazenamento temporário de dados que estão - esperando para serem enviados para um dispositivo e que armazene o - conteúdo de uma imagem pixel por pixel e puder viver sem caracteres - que não pertencem a seu idioma, então ainda é possível usar uma - fonte de 256 glifos específica para o idioma, conforme ilustrado - abaixo: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -UNICODE="1" -KEYMAP="bg_bds-utf8" -FONT="cyr-sun16" - -# End /etc/sysconfig/console -EOF - * O seguinte exemplo ilustra conversão automática de mapa de teclado - de ISO-8859-15 para UTF-8 e habilitação de teclas mortas em modo - Unicode: -cat > /etc/sysconfig/console << "EOF" -# Begin /etc/sysconfig/console - -UNICODE="1" -KEYMAP="de-latin1" -KEYMAP_CORRECTIONS="euro2" -LEGACY_CHARSET="iso-8859-15" -FONT="LatArCyrHeb-16 -m 8859-15" - -# End /etc/sysconfig/console -EOF - * Alguns mapas de teclado tem teclas mortas (isto é, teclas que não - produzem um carácter por elas próprias, mas põem um acento no - carácter produzido pela próxima tecla) ou definem regras de - composição (tais como: “press Ctrl+. A E para obter Ɔno mapa de - teclado padrão). O Linux-5.16.9 interpreta teclas mortas e regras - de composição no mapa de teclado corretamente apenas quando os - caracteres fonte a serem compostos juntos não são multibyte. Essa - deficiência não afeta mapas de teclado para idiomas europeus, pois - lá acentos são adicionados a caracteres ASCII não acentuados, ou - dois caracteres ASCII são compostos juntos. Entretanto, em modo - UTF-8 isso é um problema; por exemplo, para o idioma grego, onde - alguém de vez em quando precisa colocar um acento na letra “alphaâ€. - A solução é ou evitar o uso de UTF-8, ou instalar o sistema de - janelas X que não tem essa limitação no manuseio de entradas dele. - * Para chinês, japonês, coreano e alguns outros idiomas, o console do - Linux não pode ser configurado para exibir os caracteres - necessários. Usuárias(os) que precisam de tais idiomas deveriam - instalar o Sistema de Janelas X, fontes que cobrem os intervalos de - caracteres necessários, e o método de entrada adequado (por - exemplo, SCIM, suporta uma ampla variedade de idiomas). - -Nota - - O arquivo /etc/sysconfig/console apenas controla a localização do - console de texto do Linux. Ele não tem nada a ver com configurar o - esquema de teclado adequado e fontes de terminal no Sistema de Janelas - X; com sessões do ssh; ou com um console serial. Em tais situações, as - limitações mencionadas nos últimos dois itens de lista acima não se - aplicam. - -9.6.6. Criando Arquivos na Inicialização - - De vez em quando, é desejável criar arquivos em tempo de inicialização. - Por exemplo, o diretório /tmp/.ICE-unix frequentemente é necessário. - Isso pode ser feito criando-se uma entrada no script de configuração - /etc/sysconfig/createfiles. O formato desse arquivo está embutido nos - comentários do arquivo de configuração padrão. - -9.6.7. Configurando o Script sysklogd - - O script sysklogd invoca o aplicativo syslogd como uma parte da - inicialização do System V. A opção -m 0 desliga a marca de carimbo de - tempo periódica que o syslogd escreve nos arquivos de registro a cada - 20 minutos por padrão. Se você quiser ligar essa marca de carimbo de - tempo periódica, então edite /etc/sysconfig/rc.site e defina a variável - SYSKLOGD_PARMS para o valor desejado. Por exemplo, para remover todos - os parâmetros, configure a variável para um valor nulo: -SYSKLOGD_PARMS= - - Veja-se man syslogd para mais opções. - -9.6.8. O Arquivo rc.site - - O arquivo opcional /etc/sysconfig/rc.site contém configurações que são - automaticamente configuradas para cada script de inicialização do - SystemV. Ele pode alternativamente configurar os valores especificados - nos arquivos hostname, console e clock no diretório /etc/sysconfig/. Se - as variáveis associadas estiverem presentes em ambos desses arquivos - separados e rc.site, então os valores nos arquivos específicos de - script tem precedência. - - rc.site também contém parâmetros que podem personalizar outros aspectos - do processo de inicialização. Configurar a variável IPROMPT habilitará - a execução seletiva de scripts de inicialização. Outras opções estão - descritas nos comentários de arquivo. A versão padrão do arquivo é como - se segue: -# rc.site -# Optional parameters for boot scripts. - -# Distro Information -# These values, if specified here, override the defaults -#DISTRO="Linux From Scratch" # The distro name -#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address -#DISTRO_MINI="LFS" # Short name used in filenames for distro config - -# Define custom colors used in messages printed to the screen - -# Please consult `man console_codes` for more information -# under the "ECMA-48 Set Graphics Rendition" section -# -# Warning: when switching from a 8bit to a 9bit font, -# the linux console will reinterpret the bold (1;) to -# the top 256 glyphs of the 9bit font. This does -# not affect framebuffer consoles - -# These values, if specified here, override the defaults -#BRACKET="\\033[1;34m" # Blue -#FAILURE="\\033[1;31m" # Red -#INFO="\\033[1;36m" # Cyan -#NORMAL="\\033[0;39m" # Grey -#SUCCESS="\\033[1;32m" # Green -#WARNING="\\033[1;33m" # Yellow - -# Use a colored prefix -# These values, if specified here, override the defaults -#BMPREFIX=" " -#SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} " -#FAILURE_PREFIX="${FAILURE}*****${NORMAL} " -#WARNING_PREFIX="${WARNING} *** ${NORMAL} " - -# Manually seet the right edge of message output (characters) -# Useful when resetting console font during boot to override -# automatic screen width detection -#COLUMNS=120 - -# Interactive startup -#IPROMPT="yes" # Whether to display the interactive boot prompt -#itime="3" # The amount of time (in seconds) to display the prompt - -# The total length of the distro welcome string, without escape codes -#wlen=$(echo "Welcome to ${DISTRO}" | wc -c ) -#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}" - -# The total length of the interactive string, without escape codes -#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c ) -#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup" - -# Set scripts to skip the file system check on reboot -#FASTBOOT=yes - -# Skip reading from the console -#HEADLESS=yes - -# Write out fsck progress if yes -#VERBOSE_FSCK=no - -# Speed up boot without waiting for settle in udev -#OMIT_UDEV_SETTLE=y - -# Speed up boot without waiting for settle in udev_retry -#OMIT_UDEV_RETRY_SETTLE=yes - -# Skip cleaning /tmp if yes -#SKIPTMPCLEAN=no - -# For setclock -#UTC=1 -#CLOCKPARAMS= - -# For consolelog (Note that the default, 7=debug, is noisy) -#LOGLEVEL=7 - -# For network -#HOSTNAME=mylfs - -# Delay between TERM and KILL signals at shutdown -#KILLDELAY=3 - -# Optional sysklogd parameters -#SYSKLOGD_PARMS="-m 0" - -# Console parameters -#UNICODE=1 -#KEYMAP="de-latin1" -#KEYMAP_CORRECTIONS="euro2" -#FONT="lat0-16 -m 8859-15" -#LEGACY_CHARSET= - - -9.6.8.1. Personalizando os Scripts de Inicialização e Desligamento - - Os scripts de inicialização do LFS inicializam e desligam um sistema de - uma maneira bastante eficiente, porém existem uns poucos ajustes que - você pode fazer no arquivo rc.site para aumentar a velocidade ainda - mais e ajustar mensagens de acordo com suas preferências. Para fazer - isso, ajuste as configurações no arquivo /etc/sysconfig/rc.site acima. - * Durante o script de inicialização udev, existe uma chamada para - udev settle que exige algum tempo para completar. Esse tempo talvez - ou talvez não seja exigido dependendo dos dispositivos presentes no - sistema. Se você tiver apenas partições simples e uma placa - ethernet, [então] o processo de inicialização provavelmente não - precisará esperar por esse comando. Para pular ele, configure a - variável OMIT_UDEV_SETTLE=y. - * O script de inicialização udev_retry também executa udev settle por - padrão. Esse comando é necessário por padrão somente se o diretório - /var for montado separadamente. Isso é porque o relógio precisa do - arquivo /var/lib/hwclock/adjtime. Outras personalizações talvez - também precisem esperar que o udev complete, porém em muitas - instalações ele não é necessário. Pule o comando configurando a - variável OMIT_UDEV_RETRY_SETTLE=y. - * Por padrão, as verificações do sistema de arquivos são silenciosas. - Isso pode parecer um atraso durante o processo de inicialização. - Para ligar a saída do fsck, configure a variável VERBOSE_FSCK=y. - * Quando reinicializar, você talvez queira pular a verificação do - sistema de arquivos, fsck, completamente. Para fazer isso, ou crie - o arquivo /fastboot ou reinicialize o sistema com o comando - /sbin/shutdown -f -r now. Por outro lado, você pode forçar que - todos os sistemas de arquivos sejam verificados criando /forcefsck - ou executando shutdown com o parâmetro -F em vez de -f. - Configurar a variável FASTBOOT=y desabilitará fsck durante o - processo de inicialização até que ela seja removida. Isso não é - recomendado em uma base permanente. - * Normalmente, todos os arquivos no diretório /tmp são deletados em - tempo de inicialização. Dependendo do número de arquivos ou - diretórios presentes, isso pode causar um atraso notável no - processo de inicialização. Para pular a remoção desses arquivos - configure a variável SKIPTMPCLEAN=y. - * Durante o desligamento, o aplicativo init envia um sinal TERM para - cada aplicativo que ele iniciou (por exemplo agetty), espera um - tempo configurado (padrão 3 segundos), e envia a cada processo um - sinal KILL e aguarda novamente. Esse processo é repetido no script - sendsignals para quaisquer processos que não sejam desligados pelos - scripts próprios deles. O atraso para init pode ser configurado - passando um parâmetro. Por exemplo para remover o atraso em init, - passe o parâmetro -t0 quando desligar ou reinicializar (por exemplo - /sbin/shutdown -t0 -r now). O atraso para o script sendsignals pode - ser pulado configurando o parâmetro KILLDELAY=0. - -9.7. Os Arquivos de Inicialização de Shell do Bash - - O aplicativo de shell /bin/bash (daqui por diante referenciado como “o - shellâ€) usa uma coleção de arquivos de inicialização para auxiliar a - criar um ambiente para executar dentro. Cada arquivo tem um uso - específico e talvez afete o login e ambientes interativos - diferentemente. Os arquivos no diretório /etc fornecem configurações - globais. Se um arquivo equivalente existir no diretório home, [então] - ele talvez substitua as configurações globais. - - Um shell de login interativo é iniciado após um login bem sucedido, - usando o /bin/login, lendo o arquivo /etc/passwd. Um shell de não-login - interativo é iniciado na linha de comando (por exemplo, - [prompt]$/bin/bash). Um shell não-interativo está geralmente presente - quando um script de shell está executando. Ele é não-interativo porque - ele está processando um script e não esperando pela entrada de - usuária(o) entre comandos. - - Para mais informação, veja-se info bash sob a seção Arquivos de - Inicialização do Bash e Shells Interativos. - - Os arquivos /etc/profile e ~/.bash_profile são lidos quando o shell é - invocado como um shell de login interativo. - - O /etc/profile de base abaixo configura algumas variáveis de ambiente - necessárias para o suporte ao idioma nativo. Configurá-las - adequadamente resulta em: - * A saída dos aplicativos traduzida para o idioma nativo - * Classificação correta dos caracteres em letras, dígitos e outras - classes. Isso é necessário para o bash aceitar adequadamente - caracteres não ASCII em linhas de comando em locales não ingleses - * A sequência de ordenação alfabética correta para o país - * Tamanho de papel padrão apropriado - * Formatação correta de valores monetário, hora e data - - Substitua abaixo com o código de duas letras para o idioma - desejado (por exemplo, “enâ€) e com o código de duas letras para o - país apropriado (por exemplo, “GBâ€). deveria ser substituído - com o mapa de caracteres canônico para seu locale escolhido. - Modificadores opcionais, tais como “@euroâ€, talvez também estejam - presentes. - - A lista de todos os locales suportados pela Glibc pode ser obtida - executando o seguinte comando: -locale -a - - Mapas de caracteres podem ter um número de apelidos, por exemplo, - “ISO-8859-1†também é referenciado como “iso8859-1†e “iso88591â€. - Alguns aplicativos não podem lidar com os vários sinônimos corretamente - (por exemplo, exigem que “UTF-8†seja escrito como “UTF-8â€, não - “utf8â€), de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde é a saída dada - por locale -a para seu locale preferido (“en_GB.iso88591†no nosso - exemplo). -LC_ALL= locale charmap - - Para o locale “en_GB.iso88591â€, o comando acima imprimirá: -ISO-8859-1 - - Isso resulta em uma configuração de locale final de “en_GB.ISO-8859-1â€. - É importante que o locale encontrado usando a heurística acima seja - testado antes que ele seja adicionado aos arquivos de inicialização do - Bash: -LC_ALL= locale language -LC_ALL= locale charmap -LC_ALL= locale int_curr_symbol -LC_ALL= locale int_prefix - - Os comandos acima deveriam imprimir o nome do idioma, a codificação de - caracteres usada pelo locale, a moeda local, e o prefixo para discar - antes do número de telefone para se alcançar o país. Se quaisquer dos - comandos acima falharem com uma mensagem similar àquela mostrada - abaixo, [então] isso significa que seu locale ou não foi instalado no - [636]Seção 8.5, “Glibc-2.35†ou não é suportado pela instalação padrão - da Glibc. -locale: Cannot set LC_* to default locale: No such file or directory - - Se isso acontecer, [então] você deveria instalar o locale desejado - usando o comando localedef, ou considere escolher um locale diferente. - As instruções posteriores assumem que não existem tais mensagens de - erro originárias da Glibc. - - Outros pacotes também podem funcionar incorretamente (mas talvez não - necessariamente exibam quaisquer mensagens de erro) se o nome do locale - não corresponder às expectativas deles. Nesses casos, investigar como - outras distribuições do Linux suportam seu locale poderia fornecer - alguma informação útil. - - Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/profile: -cat > /etc/profile << "EOF" -# Begin /etc/profile - -export LANG=_.<@modifiers> - -# End /etc/profile -EOF - - Os locales “C†(padrão) e “en_US.utf8†(aquele recomendado para - usuárias(os) do inglês dos Estados Unidos da América do Norte) são - diferentes. “C†usa o conjunto de caracteres de 7 bits US-ASCII, e - trata bytes com o bit alto configurado como caracteres inválidos. Esse - é o porquê, por exemplo, do comando ls substituir eles com pontos de - interrogação nesse locale. Também, uma tentativa de enviar correio com - tais caracteres a partir do Mutt ou Pine resulta em mensagens de não - conformidade com RFC sendo enviadas (o conjunto de caracteres no - correio de saída é indicado como “unknown 8-bitâ€). Então você pode usar - o locale “C†apenas se você tiver certeza de que nunca precisará de - caracteres de 8 bits. - - Locales baseados em UTF-8 não são bem suportados por alguns - aplicativos. Trabalho está em progresso para documentar e, se possível, - consertar tais problemas, veja-se - [637]https://www.linuxfromscratch.org/blfs/view/11.1/introduction/local - e-issues.html. - -9.8. Criando o Arquivo /etc/inputrc - - O arquivo inputrc é o arquivo de configuração para a biblioteca - readline, a qual fornece capacidades de edição enquanto a(o) usuária(o) - estiver digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é usada - pelo bash e maioria dos outros shells, bem como muitos outros - aplicativos. - - A maioria das pessoas não necessita de funcionalidade específica de - usuária(o), de forma que o comando abaixo cria um /etc/inputrc global - usado por qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), [então] - você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. - - Para mais informação sobre como editar o arquivo inputrc, veja-se info - bash sob a seção Readline Init File. info readline é também uma boa - fonte de informação. - - Abaixo está um inputrc global genérico junto com comentários para - explicar o que as várias opções fazem. Observe que comentários não - podem estar na mesma linha que comandos. Crie o arquivo usando o - seguinte comando: -cat > /etc/inputrc << "EOF" -# Begin /etc/inputrc -# Modified by Chris Lynn - -# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off - -# Enable 8bit input -set meta-flag On -set input-meta On - -# Turns off 8th bit stripping -set convert-meta Off - -# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the value -# contained in the 1st argument to the readline specific functions -"\eOd": backward-word -"\eOc": forward-word - -# for linux console -"\e[1~": beginning-of-line -"\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history -"\e[3~": delete-char -"\e[2~": quoted-insert - -# for xterm -"\eOH": beginning-of-line -"\eOF": end-of-line - -# for Konsole -"\e[H": beginning-of-line -"\e[F": end-of-line - -# End /etc/inputrc -EOF - -9.9. Criando o Arquivo /etc/shells - - O arquivo shells contém uma lista dos shells de login no sistema. Os - aplicativos usam esse arquivo para determinar quando um shell é válido. - Para cada shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). - - Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a própria - conta dela. Se o nome de comando não estiver listado, [então] a usuária - terá negada a habilidade de mudar shells. - - É uma exigência para aplicativos tais como GDM o qual não publiciza o - navegador de face se ele não puder encontrar /etc/shells, ou daemons do - FTP os quais tradicionalmente proíbem acesso a usuárias(os) com shells - não incluídos nesse arquivo. -cat > /etc/shells << "EOF" -# Begin /etc/shells - -/bin/sh -/bin/bash - -# End /etc/shells -EOF - -Capítulo 10. Tornando o Sistema LFS Inicializável - -10.1. Introdução - - É hora de tornar o sistema LFS inicializável. Este capítulo discute a - criação do arquivo /etc/fstab; construção de um kernel para o novo - sistema LFS; e instalação do carregador de inicialização GRUB, de modo - que o sistema LFS possa ser selecionado para iniciar durante a - inicialização. - -10.2. Criando o Arquivo /etc/fstab - - O arquivo /etc/fstab é usado por alguns aplicativos para determinar - onde sistemas de arquivos são para serem montados por padrão; em qual - ordem; e quais precisam ser verificados (para erros de integridade) - antes da montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -cat > /etc/fstab << "EOF" -# Begin /etc/fstab - -# file system mount-point type options dump fsck -# order - -/dev/ / defaults 1 1 -/dev/ swap swap pri=1 0 0 -proc /proc proc nosuid,noexec,nodev 0 0 -sysfs /sys sysfs nosuid,noexec,nodev 0 0 -devpts /dev/pts devpts gid=5,mode=620 0 0 -tmpfs /run tmpfs defaults 0 0 -devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 - -# End /etc/fstab -EOF - - Substitua ; ; e com os valores apropriados para o - sistema, por exemplo, sda2; sda5; e ext4. Para detalhes sobre os seis - campos nesse arquivo, veja-se man 5 fstab. - - Sistemas de arquivos com origem MS-DOS ou Windows (isto é, vfat, ntfs, - smbfs, cifs, iso9660, udf) precisam de uma opção especial, utf8, para a - finalidade de caracteres não ASCII nos nomes de arquivo serem - interpretados corretamente. Para locales não UTF-8, o valor de - iocharset deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o entenda. - Isso funciona se a definição de conjunto de caracteres relevante - (encontrada sob File systems -> Native Language Support quando da - configuração do kernel) tenha sido compilada no kernel ou construída - como um módulo. Entretanto, se o conjunto de caracteres do locale for - UTF-8, [então] a correspondente opção iocharset=utf8 tornaria o sistema - de arquivo sensível a maiúsculas e minúsculas. Para consertar isso, use - a opção especial utf8 em vez de iocharset=utf8, para locales UTF-8. A - opção “codepage†também é necessária para sistemas de arquivos vfat e - smbfs. Ela deveria ser configurada para o número da página de código - usada sob MS-DOS em seu país. Por exemplo, para montar controladores - flash USB, uma(m) usuária(o) do ru_RU.KOI8-R precisaria do seguinte na - porção de opções da linha mount dele em /etc/fstab: -noauto,user,quiet,showexec,codepage=866,iocharset=koi8r - - O correspondente fragmento das opções para usuárias(os) do ru_RU.UTF-8 - é: -noauto,user,quiet,showexec,codepage=866,utf8 - - Observe que usar iocharset é o padrão para iso8859-1 (a qual mantém o - sistema de arquivo insensível a maiúsculas e minúsculas), e a opção - utf8 diz ao kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. - - É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados de - “Default NLS Option†(CONFIG_NLS_DEFAULT); “Default Remote NLS Option†- (CONFIG_SMB_NLS_DEFAULT); “Default codepage for FAT†- (CONFIG_FAT_DEFAULT_CODEPAGE); e “Default iocharset for FAT†- (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira de especificar essas - configurações para o sistema de arquivos ntfs em tempo de compilação do - kernel. - - É possível tornar o sistema de arquivos ext3 confiável em casos de - falhas de eletricidade para alguns tipos de disco rígido. Para fazer - isso, adicione a opção de montagem barrier=1 para a entrada apropriada - em /etc/fstab. Para verificar se o controlador de disco suporta essa - opção, execute [638]hdparm no controlador de disco aplicável. Por - exemplo, se: -hdparm -I /dev/sda | grep NCQ - - retornar uma saída não vazia, [então] a opção é suportada. - - Nota: partições baseadas em Logical Volume Management (LVM) não podem - usar a opção barrier. - -10.3. Linux-5.16.9 - - O pacote Linux contém o kernel do Linux. - Tempo aproximado de construção: 1,5 - 130,0 UPC (tipicamente cerca de - 12 UPC) - Espaço em disco exigido: 1200 - 8800 MB (tipicamente cerca de 1700 MB) - -10.3.1. Instalação do kernel - - Construir o kernel envolve uns poucos passos—configuração; compilação; - e instalação. Leia o arquivo README na árvore do fonte do kernel para - métodos alternativos à maneira que este livro configura o kernel. - - Prepare para compilação executando o seguinte comando: -make mrproper - - Isso garante que a árvore do kernel esteja absolutamente limpa. O time - do kernel recomenda que esse comando seja executado antes de cada - compilação do kernel. Não confie que a árvore do fonte esteja limpa - após descompactar. - - Existem muitas maneiras de configurar as opções do kernel. Usualmente, - isso é feito por meio de uma interface controlada por menu, por - exemplo: -make menuconfig - - O significado das variáveis de ambiente do make opcionais: - - LANG= LC_ALL= - Isso estabelece a configuração do locale para aquela usada no - anfitrião. Isso talvez seja necessário para um adequado desenho - de linha da interface ncurses do menuconfig em um console de - texto linux UTF-8. - - Se usada, [então] assegure-se de substituir - pelo valor da variável $LANG oriunda do seu anfitrião. Você - pode, alternativamente, usar, em vez disso, o valor do anfitrião - de $LC_ALL ou $LC_CTYPE. - - make menuconfig - Isso lança uma interface controlada por menu ncurses. Para - outras (gráficas) interfaces, digite make help. - - Para informação geral sobre configuração do kernel, veja-se - [639]https://www.linuxfromscratch.org/hints/downloads/files/kernel-conf - iguration.txt. O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora do LFS em - [640]https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#ker - nel-config-index. Informação adicional sobre configurar e construir o - kernel pode ser encontrada em [641]http://www.kroah.com/lkn/ - -Nota - - Um bom ponto de partida para configurar a configuração do kernel é - executar make defconfig. Isso configurará a configuração base para um - bom estado que leve a sua atual arquitetura de sistema em conta. - - Assegure-se de habilitar/desabilitar/configurar as seguintes - características ou o sistema poderia não funcionar corretamente ou - inicializar de forma alguma: -General setup --> - < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADE -RS] -Device Drivers ---> - Graphics support ---> - Frame buffer Devices ---> - [*] Support for frame buffer devices ---- - Generic Driver Options ---> - [ ] Support for uevent helper [CONFIG_UEVENT_HELPER] - [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS] - - Existem muitas outras opções que talvez sejam desejadas, dependendo das - exigências para o sistema. Para uma lista das opções necessárias para - pacotes do BLFS, veja-se o [642]Ãndice BLFS das Configurações do Kernel - (https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel- - config-index). - -Nota - - Se seu hardware do anfitrião estiver usando UEFI e você desejar - inicializar o sistema LFS com ela, [então] você deveria ajustar alguma - configuração do kernel seguindo [643]a página do BLFS. - - A justificativa para os itens de configuração acima: - - Enable kernel headers through /sys/kernel/kheaders.tar.xz - Isso exigirá cpio ao se construir o kernel. cpio não é instalado - por LFS. - - Support for uevent helper - Ter essa opção configurada talvez interfira com o gerenciamento - de dispositivo quando se usar Udev/Eudev. - - Maintain a devtmpfs - Isso criará nós de dispositivos automatizados os quais são - povoados pelo kernel, mesmo sem o Udev executando. O Udev então - executa no topo disso, gerenciando permissões e adicionando - links simbólicos. Esse item de configuração é exigido para - todas(os) as(os) usuárias(os) do Udev/Eudev. - - Alternativamente, make oldconfig talvez seja mais apropriado em algumas - situações. Veja-se o arquivo README para mais informação. - - Se desejado, [então] pule a configuração do kernel copiando o arquivo - config do kernel, .config, a partir do sistema anfitrião (assumindo que - ele esteja disponível) para o diretório linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é melhor - explorar todos os menus de configuração e criar a configuração do - kernel a partir do zero. - - Compile a imagem do kernel e módulos: -make - - Se usar módulos do kernel, [então] a configuração do módulo em - /etc/modprobe.d talvez seja exigida. Informação pertinente à - configuração de módulos e kernel está localizada na [644]Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e Módulos†e na documentação - do kernel no diretório linux-5.16.9/Documentation. Também, - modprobe.d(5) talvez seja de interesse. - - A menos que o suporte de módulo tenha sido desabilitado na configuração - do kernel, instale os módulos com: -make modules_install - - Depois que a compilação do kernel estiver completa, passos adicionais - são exigidos para completar a instalação. Alguns arquivos precisam ser - copiados para o diretório /boot. - -Cuidado - - Se o sistema anfitrião tiver uma partição /boot separada, [então] os - arquivos copiados abaixo deveriam ir para lá. A maneira mais fácil de - fazer isso é vincular /boot no anfitrião (do lado de fora do chroot) à - /mnt/lfs/boot antes de prosseguir. Como a(o) usuária(o) root no sistema - anfitrião: -mount --bind /boot /mnt/lfs/boot - - O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser mudado para - se adequar ao seu gosto, porém o tronco do nome de arquivo deveria ser - vmlinuz para ser compatível com a configuração automática do processo - de inicialização descrito na próxima seção. O seguinte comando assume - uma arquitetura x86: -cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1 - - System.map é um arquivo de símbolo para o kernel. Ele mapeia os pontos - de entrada de função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em execução. - Ele é usado como um recurso quando se investigar problemas do kernel. - Emita o seguinte comando para instalar o arquivo de mapa: -cp -iv System.map /boot/System.map-5.16.9 - - O arquivo de configuração do kernel .config produzido pelo passo make - menuconfig acima contém todas as seleções de configuração para o kernel - que foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -cp -iv .config /boot/config-5.16.9 - - Instale a documentação para o kernel do Linux: -install -d /usr/share/doc/linux-5.16.9 -cp -r Documentation/* /usr/share/doc/linux-5.16.9 - - É importante observar que os arquivos no diretório do fonte do kernel - não são de propriedade da(o) root. Sempre que um pacote é desempacotado - como a(o) usuária(o) root (como nós fizemos dentro do chroot), os - arquivos tem os IDs de usuária(o) e grupo do que quer que fossem no - computador da(o) empacotadora(r). Isso geralmente não é um problema - para qualquer outro pacote ser instalado, pois a árvore do fonte é - removida depois da instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, existe uma - chance de que qualquer ID de usuária(o) que a(o) empacotadora(r) usou - será atribuído para alguém na máquina. Essa pessoa então teria acesso - de escrita ao fonte do kernel. - -Nota - - Em muitos casos, a configuração do kernel precisará ser atualizada para - pacotes que serão instalados posteriormente em BLFS. Diferente de - outros pacotes, não é necessário remover a árvore do fonte do kernel - depois que o recém construído kernel for instalado. - - Se a árvore do fonte do kernel será mantida, [então] execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os arquivos são - de propriedade da(o) usuária(o) root. - -Atenção - - Alguma documentação do kernel recomenda criar um link simbólico a - partir de /usr/src/linux apontando para o diretório do fonte do kernel. - Isso é específico para kernels anteriores à série 2.6 e precisa não ser - criado em um sistema LFS, uma vez que ele pode causar problemas para - pacotes que você talvez deseje construir tão logo seu sistema LFS base - esteja completo. - -Atenção - - Os cabeçalhos no diretório include do sistema (/usr/include) deveriam - sempre ser aqueles contra os quais a Glibc foi compilada, isto é, os - cabeçalhos sanitizados instalados na [645]Seção 5.4, “Cabeçalhos da API - do Linux-5.16.9â€. Portanto, eles nunca deveriam ser substituídos tanto - pelos cabeçalhos do kernel crus quanto por quaisquer outros cabeçalhos - sanitizados do kernel. - -10.3.2. Configurando a Ordem de Carregamento de Módulos do Linux - - Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma direção - específica. O aplicativo que carrega os módulos, modprobe ou insmod, - usa /etc/modprobe.d/usb.conf para esse propósito. Esse arquivo precisa - ser criado, de forma que, se os controladores do USB (ehci_hcd, - ohci_hcd e uhci_hcd) tiverem sido construídos como módulos, [então] - eles serão carregados na ordem correta; ehci_hcd precisa ser carregado - antes de ohci_hcd e uhci_hcd para evitar um aviso sendo produzido em - tempo de inicialização. - - Crie um novo arquivo /etc/modprobe.d/usb.conf executando o seguinte: -install -v -m755 -d /etc/modprobe.d -cat > /etc/modprobe.d/usb.conf << "EOF" -# Begin /etc/modprobe.d/usb.conf - -install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true -install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true - -# End /etc/modprobe.d/usb.conf -EOF - -10.3.3. Conteúdo do Linux - - Arquivos instalados: config-5.16.9, vmlinuz-5.16.9-lfs-11.1 e - System.map-5.16.9 - Diretórios instalados: /lib/modules e /usr/share/doc/linux-5.16.9 - -Descrições Curtas - - config-5.16.9 - - Contém todas as seleções de configuração para o kernel - - vmlinuz-5.16.9-lfs-11.1 - - O motor do sistema Linux. Quando se liga o computador, o kernel é a - primeira parte do sistema operacional que se torna carregada. Ele - detecta e inicializa todos os componentes do hardware do computador, - então torna esses componentes disponíveis como uma árvore de arquivos - para o software e transforma uma CPU individual em uma máquina - multitarefa capaz de executar dezenas de aplicativos aparentemente ao - mesmo tempo - - System.map-5.16.9 - - Uma lista de endereços e símbolos; ele mapeia os pontos de entrada e - endereços de todas as funções e estruturas de dados no kernel - -10.4. Usando o GRUB para Configurar o Processo de Inicialização - -Nota - - Se seu sistema tiver suporte UEFI e você desejar inicializar o LFS com - UEFI, [então] você deveria pular esta página, e configurar o GRUB com - suporte UEFI usando as instruções fornecidas na [646]página do BLFS. - -10.4.1. Introdução - -Atenção - - Configurar o GRUB incorretamente pode tornar seu sistema inoperável sem - um dispositivo de inicialização alternativo, como um CD-ROM ou unidade - USB inicializável. Esta seção não é exigida para inicializar seu - sistema LFS. Você talvez apenas queira modificar seu carregador de - inicialização atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. - - Certifique-se de que um disco de inicialização de emergência esteja - pronto para “resgatar†o computador se o computador se tornar - inutilizável (não inicializável). Se você ainda não tem um dispositivo - de inicialização, [então] você pode criar um. Para que o procedimento - abaixo funcione, você precisa saltar para a frente para o BLFS e - instalar xorriso oriundo do pacote [647]libisoburn. -cd /tmp -grub-mkrescue --output=grub-img.iso -xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso - -10.4.2. Convenções de Nomenclatura do GRUB - - O GRUB usa estrutura de nomenclatura própria dele para unidades e - partições na forma de (hdn,m), onde n é o número da unidade rígida e m - é o número da partição. O número da unidade rígida começa do zero, - porém o número da partição inicia do um para partições normais e cinco - para partições estendidas. Observe que isso é diferente de versões - anteriores onde ambos os números começavam do zero. Por exemplo, a - partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com - o Linux, GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em hdc, - [então] aquela segunda unidade rígida ainda seria (hd1). - -10.4.3. Definindo a Configuração - - O GRUB funciona escrevendo dados para a primeira trilha física do disco - rígido. Essa área não é parte de nenhum sistema de arquivos. Os - aplicativos lá acessam módulos do GRUB na partição de inicialização. O - local padrão é /boot/grub/. - - O local da partição de inicialização é uma escolha da(o) usuária(o) que - afeta a configuração. Uma recomendação é ter uma partição pequena - (tamanho sugerido é 200 MB) separada somente para informação de - inicialização. Dessa forma, cada construção, seja LFS ou alguma - distribuição comercial, pode acessar os mesmos arquivos de - inicialização e o acesso pode ser feito a partir de qualquer sistema - inicializado. Se você escolher fazer isso, [então] você precisará - montar a partição separada, mover todos os arquivos no diretório /boot - atual (por exemplo, o kernel linux que você recém construiu na seção - anterior) para a nova partição. Você precisará então desmontar a - partição e remontar ela como /boot. Se você fizer isso, [então] tenha - certeza de atualizar /etc/fstab. - - Usar a partição lfs atual também funcionará, porém a configuração para - múltiplos sistemas é mais complicada. - - Usando a informação acima, determine o designador apropriado para a - partição raiz (ou partição de inicialização, se uma separada for - usada). Para o exemplo seguinte, é assumido que a partição raiz (ou - inicialização separada) é sda2. - - Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: - -Atenção - - O seguinte comando sobrescreverá o carregador de inicialização atual. - Não execute o comando de isso não for desejado, por exemplo, se usar um - gerenciador de inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -grub-install /dev/sda - -Nota - - Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install tentará instalar arquivos para o alvo x86_64-efi, porém - aqueles arquivos não foram instalados no [648]Capítulo 8. Se esse for o - caso, [então] adicione --target i386-pc ao comando acima. - -10.4.4. Criando o Arquivo de Configuração do GRUB - - Gere o /boot/grub/grub.cfg: -cat > /boot/grub/grub.cfg << "EOF" -# Begin /boot/grub/grub.cfg -set default=0 -set timeout=5 - -insmod ext2 -set root=(hd0,2) - -menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1" { - linux /boot/vmlinuz-5.16.9-lfs-11.1 root=/dev/sda2 ro -} -EOF - -Nota - - A partir da perspectiva do GRUB, os arquivos do kernel são relativos à - partição usada. Se você usou uma partição /boot separada, [então] - remova /boot da linha linux acima. Você também precisará mudar a linha - set root para apontar para a partição de inicialização. - - O GRUB é um aplicativo extremamente poderoso e ele fornece um tremendo - número de opções para inicializar a partir de uma ampla variedade de - dispositivos, sistemas operacionais e tipos de partição. Existem também - muitas opções para personalização, tais como telas splash gráficas; - reprodução de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. - -Cuidado - - Existe um comando, grub-mkconfig, que pode escrever um arquivo de - configuração automaticamente. Ele usa um conjunto de scripts em - /etc/grub.d/ e destruirá quaisquer personalizações que você fizer. - Esses scripts são projetados primariamente para distribuições não fonte - e não são recomendados para o LFS. Se você instalar uma distribuição do - Linux comercial, [então] existe uma boa chance de que esse aplicativo - será executado. Tenha certeza de produzir uma cópia de segurança do seu - arquivo grub.cfg. - -Capítulo 11. O Fim - -11.1. O Fim - - Muito bem! O novo sistema LFS está instalado! Nós desejamos a você - muito sucesso com seu novo e brilhante sistema Linux construído sob - medida. - - Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse - arquivo, é muito fácil para você (e para nós se você precisar pedir por - ajuda em algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -echo 11.1 > /etc/lfs-release - - Dois arquivos descrevendo o sistema instalado talvez sejam usados por - pacotes que podem ser instalados no sistema posteriormente, ou em forma - de binário ou construindo eles. - - O primeiro deles mostra a situação do seu novo sistema com respeito ao - Linux Standards Base (LSB). Para criar esse arquivo, execute: -cat > /etc/lsb-release << "EOF" -DISTRIB_ID="Linux From Scratch" -DISTRIB_RELEASE="11.1" -DISTRIB_CODENAME="" -DISTRIB_DESCRIPTION="Linux From Scratch" -EOF - - O segundo deles contém aproximadamente a mesma informação, e é usado - pelo systemd e alguns ambientes de área de trabalho gráficos. Para - criar esse arquivo, execute: -cat > /etc/os-release << "EOF" -NAME="Linux From Scratch" -VERSION="11.1" -ID=lfs -PRETTY_NAME="Linux From Scratch 11.1" -VERSION_CODENAME="" -EOF - - Tenha certeza de colocar algum tipo de personalização para os campos - 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o sistema - unicamente seu. - -11.2. Seja Contado - - Agora que você terminou o livro, você quer ser contada(o) como uma(m) - usuária(o) do LFS? Vá para - [649]https://www.linuxfromscratch.org/cgi-bin/lfscounter.php e - registre-se como uma(m) usuária(o) do LFS fornecendo seu nome e a - primeira versão do LFS que você usou. - - Vamos reinicializar no LFS agora. - -11.3. Reinicializando o Sistema - - Agora que todo o software foi instalado, é hora de reinicializar seu - computador. Entretanto, você deveria estar ciente de umas poucas - coisas. O sistema que você criou neste livro é bastante mínimo, e - provavelmente não terá a funcionalidade que você precisaria para ser - capaz de seguir em frente. Instalando uns poucos pacotes extras a - partir do livro BLFS enquanto ainda em seu ambiente chroot atual, você - pode deixar-se em uma posição muito melhor para continuar tão logo você - reinicialize em sua nova instalação do LFS. Aqui estão algumas - sugestões: - * Um navegador de modo de texto como o [650]Lynx permitirá que você - facilmente visualize o livro BLFS em um terminal virtual, enquanto - constrói pacotes em outro. - * O pacote [651]make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema verifique - certificados SSL fornecidos por servidores remotos (por exemplo, um - sítio da web usando o HTTPS). - * O pacote [652]GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. - * Se você estiver em uma situação onde configuração de IP estático - não atende suas exigências de rede, [então] instalar um pacote como - [653]dhcpcd ou a porção cliente do [654]dhcp talvez seja útil. - * Instalar [655]sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os pacotes - resultantes em seu novo sistema. - * Se você quiser acessar seu novo sistema a partir de um sistema - remoto dentro de um ambiente GUI confortável, [então] instale - [656]openssh. - * Para tornar a obtenção de arquivos por meio da Internet mais fácil, - instale [657]wget. - * Para se conectar a um ponto de acesso sem fios para rede, instale - [658]wpa_supplicant. - * Finalmente, uma revisão dos seguintes arquivos de configuração - também é apropriada neste ponto. - + /etc/bashrc - + /etc/dircolors - + /etc/fstab - + /etc/hosts - + /etc/inputrc - + /etc/profile - + /etc/resolv.conf - + /etc/vimrc - + /root/.bash_profile - + /root/.bashrc - + /etc/sysconfig/ifconfig.eth0 - - Agora que nós dissemos isso, vamos em frente para inicializar nossa - brilhante e nova instalação do LFS pela primeira vez! Primeiro saia do - ambiente chroot: -logout - - Então desmonte os sistemas de arquivos virtuais: -umount -v $LFS/dev/pts -umount -v $LFS/dev -umount -v $LFS/run -umount -v $LFS/proc -umount -v $LFS/sys - - Se múltiplas partições foram criadas, [então] desmonte as outras - partições antes de desmontar a principal, como isto: -umount -v $LFS/usr -umount -v $LFS/home -umount -v $LFS - - Desmonte o próprio sistema de arquivos do LFS: -umount -v $LFS - - Agora, reinicialize o sistema com: -shutdown -r now - - Assumindo que o carregador de inicialização GRUB foi configurado como - destacado anteriormente, o menu está configurado para inicializar o LFS - 11.1 automaticamente. - - Quando a reinicialização estiver completa, o sistema LFS estará pronto - para uso e mais software talvez seja adicionado para suprir suas - necessidades. - -11.4. E agora? - - Obrigado por ler este livro LFS. Nós esperamos que você tenha achado - este livro útil e tenha aprendido mais sobre o processo de criação do - sistema. - - Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: “E depois?†Para responder a essa pergunta, nós compilamos - uma lista de recursos para você. - * Manutenção - Notificações de defeitos e segurança são relatadas regularmente - para todo software. Uma vez que um sistema LFS é compilado a partir - do fonte, cabe a você se manter a par de tais relatórios. Existem - vários recursos online que rastreiam tais relatórios, alguns dos - quais estão mostrados abaixo: - + [659]CERT (Computer Emergency Response Team) - O CERT tem uma lista de discussão que publica alertas de - segurança a respeito de vários sistemas operacionais e - aplicativos. Informação de assinatura está disponível em - [660]http://www.us-cert.gov/cas/signup.html. - + Bugtraq - Bugtraq é uma lista de discussão de segurança de computador de - divulgação completa. Ela publica problemas de segurança - descobertos recentemente, e ocasionalmente consertos - potenciais para eles. Informação de assinatura está disponível - em [661]http://www.securityfocus.com/archive. - * Beyond Linux From Scratch - O livro Beyond Linux From Scratch cobre procedimentos de instalação - para uma ampla gama de software além do escopo do Livro LFS. O - projeto BLFS está localizado em - [662]https://www.linuxfromscratch.org/blfs/view/11.1/. - * LFS Hints - As Dicas do LFS são uma coleção de documentos educacionais - submetidos por voluntários na comunidade do LFS. As dicas estão - disponíveis em - [663]https://www.linuxfromscratch.org/hints/downloads/files/. - * Listas de discussão - Existem várias listas de discussão do LFS que você talvez assine se - você estiver necessitada(o) de ajuda; quiser se manter - atualizada(o) com os mais recentes desenvolvimentos; quiser - contribuir para o projeto; e mais. Veja-se [664]Capítulo 1 - Listas - de Discussão para mais informação. - * The Linux Documentation Project - O objetivo do The Linux Documentation Project (TLDP) é o de - colaborar em todos os problemas de documentação do Linux. O TLDP - apresenta uma grande coleção de HOWTOs, guias e páginas de manual. - Ele está localizado em [665]http://www.tldp.org/. - -Parte V. Anexos - -Apêndice A. Siglas e Termos - - ABI - - Application Binary Interface - - ALFS - - Automated Linux From Scratch - - API - - Application Programming Interface - - ASCII - - American Standard Code for Information Interchange - - BIOS - - Basic Input/Output System - - BLFS - - Beyond Linux From Scratch - - BSD - - Berkeley Software Distribution - - chroot - - change root - - CMOS - - Complementary Metal Oxide Semiconductor - - COS - - Class Of Service - - CPU - - Central Processing Unit - - CRC - - Cyclic Redundancy Check - - CVS - - Concurrent Versions System - - DHCP - - Dynamic Host Configuration Protocol - - DNS - - Domain Name Service - - EGA - - Enhanced Graphics Adapter - - ELF - - Executable and Linkable Format - - EOF - - End of File - - EQN - - equation - - ext2 - - second extended file system - - ext3 - - third extended file system - - ext4 - - fourth extended file system - - FAQ - - Frequently Asked Questions - - FHS - - Filesystem Hierarchy Standard - - FIFO - - First-In, First Out - - FQDN - - Fully Qualified Domain Name - - FTP - - File Transfer Protocol - - GB - - Gigabytes - - GCC - - GNU Compiler Collection - - GID - - Group Identifier - - GMT - - Greenwich Mean Time - - HTML - - Hypertext Markup Language - - IDE - - Integrated Drive Electronics - - IEEE - - Institute of Electrical and Electronic Engineers - - IO - - Input/Output - - IP - - Internet Protocol - - IPC - - Inter-Process Communication - - IRC - - Internet Relay Chat - - ISO - - International Organization for Standardization - - ISP - - Internet Service Provider - - KB - - Kilobytes - - LED - - Light Emitting Diode - - LFS - - Linux From Scratch - - LSB - - Linux Standard Base - - MB - - Megabytes - - MBR - - Master Boot Record - - MD5 - - Message Digest 5 - - NIC - - Network Interface Card - - NLS - - Native Language Support - - NNTP - - Network News Transport Protocol - - NPTL - - Native POSIX Threading Library - - OSS - - Open Sound System - - PCH - - Pre-Compiled Headers - - PCRE - - Perl Compatible Regular Expression - - PID - - Process Identifier - - PTY - - pseudo terminal - - QOS - - Quality Of Service - - RAM - - Random Access Memory - - RPC - - Remote Procedure Call - - RTC - - Real Time Clock - - SBU - - Standard Build Unit - - SCO - - The Santa Cruz Operation - - SHA1 - - Secure-Hash Algorithm 1 - - TLDP - - The Linux Documentation Project - - TFTP - - Trivial File Transfer Protocol - - TLS - - Thread-Local Storage - - UID - - User Identifier - - umask - - user file-creation mask - - USB - - Universal Serial Bus - - UTC - - Coordinated Universal Time - - UUID - - Universally Unique Identifier - - VC - - Virtual Console - - VGA - - Video Graphics Array - - VT - - Virtual Terminal - -Apêndice B. Reconhecimentos - - Nós gostaríamos de agradecer às seguintes pessoas e organizações por - suas contribuições para o Projeto Linux From Scratch. - * [666]Gerard Beekmans – Criador - do LFS - * [667]Bruce Dubbs – - Editor-chefe do LFS - * [668]Jim Gifford – Colíder do - Projeto CLFS - * [669]Pierre Labastie – Editor - do BLFS e Líder do ALFS - * [670]DJ Lucas – Editor do LFS e - BLFS - * [671]Ken Moffat – Editor do BLFS - * Incontáveis outras pessoas nas várias listas de discussão do LFS e - BLFS que ajudaram a tornar este livro possível dando suas - sugestões; testando o livro; e submetendo relatórios de defeitos; - instruções; e suas experiências com a instalação de vários pacotes. - -Tradutoras(es) - - * [672]Manuel Canales Esparcia – - Projeto de tradução do LFS para espanhol - * [673]Johan Lenglet – Projeto de - tradução do LFS para francês até 2008 - * [674]Jean-Philippe Mengual – - Projeto de tradução do LFS para francês 2008-2016 - * [675]Julien Lepiller – - Projeto de tradução do LFS para francês 2017-presente - * [676]Anderson Lizardo – - Projeto de tradução do LFS para português - * [677]Thomas Reitelbach – Projeto de - tradução do LFS para alemão - * [678]Anton Maisak – - Projeto de tradução do LFS para russo - * [679]Elena Shevcova – - Projeto de tradução do LFS para russo - -Mantenedoras(es) de Espelhos - -Espelhos da América do Norte - - * [680]Scott Kveton – espelho - lfs.oregonstate.edu - * [681]William Astle – espelho - ca.linuxfromscratch.org - * [682]Eujon Sellers – espelho - lfs.introspeed.com - * [683]Justin Knierim – espelho lfs-matrix.net - -Espelhos da América do Sul - - * [684]Manuel Canales Esparcia – - espelho lfsmirror.lfs-es.info - * [685]Luis Falcon – espelho torredehanoi.org - -Espelhos Europeus - - * [686]Guido Passet – espelho - nl.linuxfromscratch.org - * [687]Bastiaan Jacques – espelho - lfs.pagefault.net - * [688]Sven Cranshoff – espelho - lfs.lineo.be - * Scarlet Belgium – espelho lfs.scarlet.be - * [689]Sebastian Faulborn – espelho - lfs.aliensoft.org - * [690]Stuart Fox – espelho lfs.dontuse.ms - * [691]Ralf Uhlemann – espelho - lfs.oss-mirror.org - * [692]Antonin Sprinzl - – espelho at.linuxfromscratch.org - * [693]Fredrik Danerklint – espelho - se.linuxfromscratch.org - * [694]Franck – espelho - lfs.linuxpourtous.com - * [695]Philippe Baque – espelho lfs.cict.fr - * [696]Vitaly Chekasin – espelho - lfs.pilgrims.ru - * [697]Benjamin Heil – espelho - lfs.wankoo.org - * [698]Anton Maisak – - espelho linuxfromscratch.org.ru - -Espelhos Asiáticos - - * [699]Satit Phermsawang – espelho - lfs.phayoune.org - * [700]Shizunet Co.,Ltd. – espelho - lfs.mirror.shizu-net.jp - * [701]Init World – espelho - lfs.initworld.com - -Espelhos da Austrália - - * [702]Jason Andrade – espelho - au.linuxfromscratch.org - -Ex-membros da Equipe do Projeto - - * [703]Christine Barczak – - Editor do Livro LFS - * Archaic – Escritor/Editor Técnico do - LFS (Dicas e Patches); Líder do Projeto HLFS; Editor do BLFS; - Mantenedor do Projeto Dicas e Patches - * [704]Matthew Burgess – Líder - de Projeto do LFS; Escritor/Editor Técnico do LFS - * [705]Nathan Coulson – - Mantenedor de Scripts de Inicialização do LFS - * Timothy Bauscher - * Robert Briggs - * Ian Chilton - * [706]Jeroen Coumans – - Desenvolvedor de Sítio da Web; Mantenedor de FAQ - * [707]Manuel Canales Esparcia – - Mantenedor de XML e XSL do LFS/BLFS/HLFS - * Alex Groenewoud – Escritor Técnico do LFS - * Marc Heerdink - * [708]Jeremy Huntwork – - Escritor Técnico do LFS; Mantenedor de LiveCD do LFS - * [709]Bryan Kadzban – Escritor - Técnico do LFS - * Mark Hymers - * Seth W. Klein – Mantenedor do FAQ - * [710]Nicholas Leippe – - Mantenedor da Wiki - * [711]Anderson Lizardo – - Mantenedor de Scripts de Infraestrutura de Sítio Web - * [712]Randy McMurchy – Líder de - Projeto do BLFS; Editor do LFS - * [713]Dan Nicholson – - Editor do LFS e BLFS - * [714]Alexander E. Patrakov - – Escritor Técnico do LFS; Editor de Internacionalização do LFS; - Mantenedor de Live CD do LFS - * Simon Perreault - * [715]Scot Mc Pherson – - Mantenedor do Gateway NNTP do LFS - * [716]Douglas R. Reno – Editor - do Systemd - * [717]Ryan Oliver – Colíder de - Projeto do CLFS - * [718]Greg Schafer – Escritor - Técnico do LFS e Arquiteto do Método de Construção de Habilitação - de 64 bits de Próxima Geração - * Jesse Tie-Ten-Quee – Escritor Técnico do LFS - * [719]James Robertson – - Mantenedor do Bugzilla - * [720]Tushar Teredesai – Editor - do Livro BLFS; Líder de Projeto de Dicas e Patches - * [721]Jeremy Utley – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de Scripts de - Inicialização do LFS - * [722]Zack Winkles – Escritor Técnico do - LFS - -Apêndice C. Dependências - - Cada pacote construído no LFS depende de um ou mais outros pacotes para - construir e instalar adequadamente. Alguns pacotes até participam em - dependências circulares, isto é, o primeiro pacote depende do segundo o - qual, na sequência, depende do primeiro. Por causa dessas dependências, - a ordem na qual pacotes são construídos no LFS é muito importante. O - propósito desta página é o de documentar as dependências de cada pacote - construído no LFS. - - Para cada pacote que é construído, existem três, e as vezes até cinco - tipos de dependências listadas abaixo. A primeira lista que outros - pacotes necessitam estar disponíveis para compilar e instalar o pacote - em questão. A segunda lista os pacotes que precisam estar disponíveis - quando quaisquer aplicativos ou bibliotecas oriundos do pacote forem - usados em tempo de execução. A terceira lista que pacotes, em adição - àqueles na primeira lista, necessitam estar disponíveis para executar - as suítes de teste. A quarta lista de dependências são pacotes que - exigem que esse pacote esteja construído e instalado no local final - dele antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente caminhos - para binários dentro dos scripts deles. Se não for construído em uma - certa ordem, [então] isso poderia resultar em caminhos como - /tools/bin/[binário] sendo colocados dentro de scripts instalados para - o sistema final. Isso obviamente não é desejável. - - A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) usuária(o). - Esses pacotes talvez tenham dependências obrigatórias ou opcionais - adicionais deles próprios. Para essas dependências, a prática - recomendada é a de instalá-las depois de completar o livro LFS e então - voltar e reconstruir o pacote LFS. Em muitos casos, a reinstalação é - endereçada no BLFS. - -Acl - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Attr e Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Coreutils, Sed, Tar e Vim - Dependências opcionais: Nenhuma - -Attr - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Acl e Libcap - Dependências opcionais: Nenhuma - -Autoconf - - Instalação depende de: Bash, Coreutils, Grep, M4, Make, Perl, Sed e - Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Make, Sed e - Texinfo - Suíte de teste depende de: Automake, Diffutils, Findutils, GCC e - Libtool - Precisa ser instalado antes de: Automake - Dependências opcionais: [723]Emacs - -Automake - - Instalação depende de: Autoconf, Bash, Coreutils, Gettext, Grep, M4, - Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Sed e Texinfo - Suíte de teste depende de: Binutils, Bison, Bzip2, DejaGNU, Diffutils, - Expect, Findutils, Flex, GCC, Gettext, Gzip, Libtool e Tar - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Bash - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [724]Xorg - -Bc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep e - Make - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Linux - Dependências opcionais: Nenhuma - -Binutils - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, File, - Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo e Zlib - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: DejaGNU e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [725]Elfutils - -Bison - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, Findutils e Flex - Precisa ser instalado antes de: Kbd e Tar - Dependências opcionais: [726]Doxygen - -Bzip2 - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File - Dependências opcionais: Nenhuma - -Check - - Instalação depende de: Gawk, GCC, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Gawk - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Coreutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Libcap, Make, OpenSSL, Patch, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, E2fsprogs, Findutils, Shadow e - Util-linux - Precisa ser instalado antes de: Bash, Diffutils, Eudev, Findutils e - Man-DB - Dependências opcionais: [727]Expect.pm e [728]IO::Tty - -DejaGNU - - Instalação depende de: Bash, Coreutils, Diffutils, Expect, GCC, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Expect e Bash - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Diffutils - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Gettext, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -E2fsprogs - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Gzip, Make, Sed, Texinfo e Util-linux - Exigido em tempo de execução: Glibc e Util-linux - Suíte de teste depende de: Procps-ng e Psmisc - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Eudev - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Gperf, Make, Sed e Util-linux - Exigido em tempo de execução: Glibc, Kmod, Xz, Util-linux e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Expat - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Python e XML::Parser - Dependências opcionais: Nenhuma - -Expect - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Patch, Sed e Tcl - Exigido em tempo de execução: Glibc e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [729]Tk - -File - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Bzip2, Xz e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [730]libseccomp - -Findutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: DejaGNU, Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Flex - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e M4 - Suíte de teste depende de: Bison e Gawk - Precisa ser instalado antes de: Binutils, IProute2, Kbd, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Gawk - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Make, MPFR, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e Mpfr - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [731]libsigsegv - -GCC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Findutils, - Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, - Sed, Tar, Texinfo e Zstd - Exigido em tempo de execução: Bash, Binutils, Glibc, Mpc e Python - Suíte de teste depende de: DejaGNU, Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [732]GNAT e [733]ISL - -GDBM - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Grep, - Make e Sed - Exigido em tempo de execução: Bash, Glibc e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gettext - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Sed e Texinfo - Exigido em tempo de execução: Acl, Bash, Gcc e Glibc - Suíte de teste depende de: Diffutils, Perl e Tcl - Precisa ser instalado antes de: Automake e Bison - Dependências opcionais: Nenhuma - -Glibc - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API do Linux, Make, Perl, - Python, Sed e Texinfo - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: File - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -GMP - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, M4, Make, Sed e Texinfo - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: MPFR e GCC - Dependências opcionais: Nenhuma - -Gperf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Grep - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Man-DB - Dependências opcionais: [734]PCRE e [735]libsigsegv - -Groff - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: GCC, Glibc e Perl - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Man-DB e Perl - Dependências opcionais: [736]ghostscript e [737]Uchardet - -GRUB - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Texinfo e Xz - Exigido em tempo de execução: Bash, GCC, Gettext, Glibc, Xz e Sed - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gzip - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils e Less - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Iana-Etc - - Instalação depende de: Coreutils - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Perl - Dependências opcionais: Nenhuma - -Inetutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Ncurses, Patch, Sed, Texinfo e Zlib - Exigido em tempo de execução: GCC, Glibc, Ncurses e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Tar - Dependências opcionais: Nenhuma - -Intltool - - Instalação depende de: Bash, Gawk, Glibc, Make, Perl, Sed e XML::Parser - Exigido em tempo de execução: Autoconf, Automake, Bash, Glibc, Grep, - Perl e Sed - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -IProute2 - - Instalação depende de: Bash, Bison, Coreutils, Flex, GCC, Glibc, Make, - Libcap, Libelf, Cabeçalhos da API do Linux e Zlib - Exigido em tempo de execução: Bash, Coreutils, Glibc, Libcap, Libelf e - Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [738]Berkeley DB e [739]iptables - -Jinja2 - - Instalação depende de: MarkupSafe e Python - Exigido em tempo de execução: MarkupSafe e Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -Kbd - - Instalação depende de: Bash, Binutils, Bison, Check, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, Patch e Sed - Exigido em tempo de execução: Bash, Coreutils e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Kmod - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Flex, GCC, - Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Xz e Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Eudev - Dependências opcionais: Nenhuma - -Less - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Gzip - Dependências opcionais: [740]PCRE - -Libcap - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Glibc, - Perl, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Shadow - Dependências opcionais: [741]Linux-PAM - -Libelf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Linux - Dependências opcionais: Nenhuma - -Libffi - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGnu - Precisa ser instalado antes de: Python - Dependências opcionais: Nenhuma - -Libpipeline - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Check - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Libtool - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Autoconf, Automake, Bash, Binutils, - Coreutils, File, GCC, Glibc, Grep, Make e Sed - Suíte de teste depende de: Autoconf, Automake e Findutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Linux - - Instalação depende de: Bash, Bc, Binutils, Coreutils, Diffutils, - Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, Make, Ncurses, - OpenSSL, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [742]cpio - -Cabeçalhos da API do Linux - - Instalação depende de: Bash, Binutils, Coreutils, Findutils, GCC, - Glibc, Grep, Gzip, Make, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -M4 - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Autoconf e Bison - Dependências opcionais: [743]libsigsegv - -Make - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl e Procps-ng - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [744]Guile - -Man-DB - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Flex, GCC, - GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, Libpipeline, Make, Sed e - Xz - Exigido em tempo de execução: Bash, GDBM, Groff, Glibc, Gzip, Less, - Libpipeline e Zlib - Suíte de teste depende de: Util-linux - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [745]libseccomp - -Man-Pages - - Instalação depende de: Bash, Coreutils e Make - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -MarkupSafe - - Instalação depende de: Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Jinja2 - Dependências opcionais: Nenhuma - -Meson - - Instalação depende de: Ninja e Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -MPC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo - Exigido em tempo de execução: Glibc, GMP e MPFR - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC - Dependências opcionais: Nenhuma - -MPFR - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc e GMP - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Gawk e GCC - Dependências opcionais: Nenhuma - -Ncurses - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Patch e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash, GRUB, Inetutils, Less, Procps-ng, - Psmisc, Readline, Texinfo, Util-linux e Vim - Dependências opcionais: Nenhuma - -Ninja - - Instalação depende de: Binutils, Coreutils, GCC e Python - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Meson - Dependências opcionais: [746]Asciidoc, [747]Doxygen, [748]Emacs e - [749]re2c - -OpenSSL - - Instalação depende de: Binutils, Coreutils, GCC, Make e Perl - Exigido em tempo de execução: Glibc e Perl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Coreutils, Kmod e Linux - Dependências opcionais: Nenhuma - -Patch - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make e Sed - Exigido em tempo de execução: Glibc e Patch - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [750]Ed - -Perl - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, GDBM, - Glibc, Grep, Groff, Make, Sed e Zlib - Exigido em tempo de execução: GDBM e Glibc - Suíte de teste depende de: Iana-Etc, Less e Procps-ng - Precisa ser instalado antes de: Autoconf - Dependências opcionais: [751]Berkeley DB - -Pkg-config - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Popt e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Kmod - Dependências opcionais: [752]Glib2 - -Procps-ng - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Ncurses - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGNU - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Psmisc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Python - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Gdbm, - Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, Sed e Util-linux - Exigido em tempo de execução: Bzip2, Expat, Gdbm, Glibc, Libffi, - Ncurses, OpenSSL e Zlib - Suíte de teste depende de: GDB e Valgrind - Precisa ser instalado antes de: Ninja - Dependências opcionais: [753]Berkeley DB, [754]libnsl, [755]SQLite e - [756]Tk - -Readline - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash e Gawk - Dependências opcionais: Nenhuma - -Sed - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr e Glibc - Suíte de teste depende de: Diffutils e Gawk - Precisa ser instalado antes de: E2fsprogs, File, Libtool e Shadow - Dependências opcionais: Nenhuma - -Shadow - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Coreutils - Dependências opcionais: [757]CrackLib e [758]Linux-PAM - -Sysklogd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Systemd - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Meson, Sed, - Util-linux e Zstd - Exigido em tempo de execução: Acl, Attr, Glibc, Libcap e Util-linux - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [759]btrfs-progs, [760]cURL, [761]cryptsetup, - [762]docbook-xml, [763]docbook-xsl-nons, [764]elfutils, [765]Git, - [766]gnu-efi, [767]GnuTLS, [768]iptables, [769]kexec-tools, - [770]libfido2, [771]libgcrypt, [772]libidn2, [773]Libmicrohttpd, - [774]libpwquality, [775]libseccomp, [776]libxkbcommon, [777]libxslt, - [778]Linux-PAM, [779]lxml, [780]LZ4, [781]make-ca, [782]p11-kit, - [783]PCRE2, [784]Polkit, [785]qemu, [786]qrencode, [787]quota-tools, - [788]rsync, [789]Sphinx, [790]tpm2-tss, [791]Valgrind e [792]zsh - -Sysvinit - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tar - - Instalação depende de: Acl, Attr, Bash, Binutils, Bison, Coreutils, - GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr, Bzip2, Glibc, Gzip e Xz - Suíte de teste depende de: Autoconf, Diffutils, Findutils, Gawk e Gzip - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tcl - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make e Sed - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Texinfo - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses, Patch e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Util-linux - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Eudev, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make, Ncurses, Sed - e Zlib - Exigido em tempo de execução: Glibc, Libcap, Ncurses, Readline e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [793]Linux-PAM e [794]smartmontools - -Vim - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Acl, Attr, Glibc, Python, Ncurses e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [795]Xorg, [796]GTK+2, [797]LessTif, [798]Ruby - e [799]GPM - -XML::Parser - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Glibc, - Make e Perl - Exigido em tempo de execução: Expat, Glibc e Perl - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Intltool - Dependências opcionais: Nenhuma - -Xz - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc - e Make - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Eudev, File, GRUB, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Zlib - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File, Kmod, Perl e Util-linux - Dependências opcionais: Nenhuma - -Zstd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Gzip, Make e Xz - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC e Systemd - Dependências opcionais: [800]LZ4 - -Apêndice D. Scripts de inicialização e configuração do sistema -versão-20210608 - - Os scripts neste anexo estão listados pelo diretório onde eles - normalmente residem. A ordem é /etc/rc.d/init.d; /etc/sysconfig; - /etc/sysconfig/network-devices; e - /etc/sysconfig/network-devices/services. Dentro de cada seção, os - arquivos estão listados na ordem em que eles normalmente são chamados. - -D.1. /etc/rc.d/init.d/rc - - O script rc é o primeiro script chamado pelo init e inicia o processo - de inicialização. -#!/bin/bash -######################################################################## -# Begin rc -# -# Description : Main Run Level Control Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# : DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -. /lib/lsb/init-functions - -print_error_msg() -{ - log_failure_msg - # $i is set when called - MSG="FAILURE:\n\nYou should not be reading this error message.\n\n" - MSG="${MSG}It means that an unforeseen error took place in\n" - MSG="${MSG}${i},\n" - MSG="${MSG}which exited with a return value of ${error_value}.\n" - - MSG="${MSG}If you're able to track this error down to a bug in one of\n" - MSG="${MSG}the files provided by the ${DISTRO_MINI} book,\n" - MSG="${MSG}please be so kind to inform us at ${DISTRO_CONTACT}.\n" - log_failure_msg "${MSG}" - - log_info_msg "Press Enter to continue..." - wait_for_user -} - -check_script_status() -{ - # $i is set when called - if [ ! -f ${i} ]; then - log_warning_msg "${i} is not a valid symlink." - SCRIPT_STAT="1" - fi - - if [ ! -x ${i} ]; then - log_warning_msg "${i} is not executable, skipping." - SCRIPT_STAT="1" - fi -} - -run() -{ - if [ -z $interactive ]; then - ${1} ${2} - return $? - fi - - while true; do - read -p "Run ${1} ${2} (Yes/no/continue)? " -n 1 runit - echo - - case ${runit} in - c | C) - interactive="" - ${i} ${2} - ret=${?} - break; - ;; - - n | N) - return 0 - ;; - - y | Y) - ${i} ${2} - ret=${?} - break - ;; - esac - done - - return $ret -} - -# Read any local settings/overrides -[ -r /etc/sysconfig/rc.site ] && source /etc/sysconfig/rc.site - -DISTRO=${DISTRO:-"Linux From Scratch"} -DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@linuxfromscratch.org (Registration req -uired)"} -DISTRO_MINI=${DISTRO_MINI:-"LFS"} -IPROMPT=${IPROMPT:-"no"} - -# These 3 signals will not cause our script to exit -trap "" INT QUIT TSTP - -[ "${1}" != "" ] && runlevel=${1} - -if [ "${runlevel}" == "" ]; then - echo "Usage: ${0} " >&2 - exit 1 -fi - -previous=${PREVLEVEL} -[ "${previous}" == "" ] && previous=N - -if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then - log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n" - exit 1 -fi - -if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; then IPROMPT="no"; fi - -# Note: In ${LOGLEVEL:-7}, it is ':' 'dash' '7', not minus 7 -if [ "$runlevel" == "S" ]; then - [ -r /etc/sysconfig/console ] && source /etc/sysconfig/console - dmesg -n "${LOGLEVEL:-7}" -fi - -if [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; then - # The total length of the distro welcome string, without escape codes - wlen=${wlen:-$(echo "Welcome to ${DISTRO}" | wc -c )} - welcome_message=${welcome_message:-"Welcome to ${INFO}${DISTRO}${NORMAL}"} - - # The total length of the interactive string, without escape codes - ilen=${ilen:-$(echo "Press 'I' to enter interactive startup" | wc -c )} - i_message=${i_message:-"Press '${FAILURE}I${NORMAL}' to enter interactive sta -rtup"} - - - # dcol and icol are spaces before the message to center the message - # on screen. itime is the amount of wait time for the user to press a key - wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 )) - icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 )) - itime=${itime:-"3"} - - echo -e "\n\n" - echo -e "\\033[${wcol}G${welcome_message}" - echo -e "\\033[${icol}G${i_message}${NORMAL}" - echo "" - read -t "${itime}" -n 1 interactive 2>&1 > /dev/null -fi - -# Make lower case -[ "${interactive}" == "I" ] && interactive="i" -[ "${interactive}" != "i" ] && interactive="" - -# Read the state file if it exists from runlevel S -[ -r /run/interactive ] && source /run/interactive - -# Attempt to stop all services started by the previous runlevel, -# and killed in this runlevel -if [ "${previous}" != "N" ]; then - for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null) - do - check_script_status - if [ "${SCRIPT_STAT}" == "1" ]; then - SCRIPT_STAT="0" - continue - fi - - suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]} - prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix - sysinit_start=/etc/rc.d/rcS.d/S[0-9][0-9]$suffix - - if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then - if [ ! -f ${prev_start} -a ! -f ${sysinit_start} ]; then - MSG="WARNING:\n\n${i} can't be " - MSG="${MSG}executed because it was not " - MSG="${MSG}not started in the previous " - MSG="${MSG}runlevel (${previous})." - log_warning_msg "$MSG" - continue - fi - fi - - run ${i} stop - error_value=${?} - - if [ "${error_value}" != "0" ]; then print_error_msg; fi - done -fi - -if [ "${previous}" == "N" ]; then export IN_BOOT=1; fi - -if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; then - touch /fastboot -fi - - -# Start all functions in this runlevel -for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null) -do - if [ "${previous}" != "N" ]; then - suffix=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]} - stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-9]$suffix - prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix - - [ -f ${prev_start} -a ! -f ${stop} ] && continue - fi - - check_script_status - if [ "${SCRIPT_STAT}" == "1" ]; then - SCRIPT_STAT="0" - continue - fi - - case ${runlevel} in - 0|6) - run ${i} stop - ;; - *) - run ${i} start - ;; - esac - - error_value=${?} - - if [ "${error_value}" != "0" ]; then print_error_msg; fi -done - -# Store interactive variable on switch from runlevel S and remove if not -if [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; then - echo "interactive=\"i\"" > /run/interactive -else - rm -f /run/interactive 2> /dev/null -fi - -# Copy the boot log on initial boot only -if [ "${previous}" == "N" -a "${runlevel}" != "S" ]; then - cat $BOOTLOG >> /var/log/boot.log - - # Mark the end of boot - echo "--------" >> /var/log/boot.log - - # Remove the temporary file - rm -f $BOOTLOG 2> /dev/null -fi - -# End rc - -D.2. /lib/lsb/init-functions - -#!/bin/sh -######################################################################## -# -# Begin /lib/lsb/init-funtions -# -# Description : Run Level Control Functions -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# : DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -# Notes : With code based on Matthias Benkmann's simpleinit-msb -# http://winterdrache.de/linux/newboot/index.html -# -# The file should be located in /lib/lsb -# -######################################################################## - -## Environmental setup -# Setup default values for environment -umask 022 -export PATH="/bin:/usr/bin:/sbin:/usr/sbin" - -## Set color commands, used via echo -# Please consult `man console_codes for more information -# under the "ECMA-48 Set Graphics Rendition" section -# -# Warning: when switching from a 8bit to a 9bit font, -# the linux console will reinterpret the bold (1;) to -# the top 256 glyphs of the 9bit font. This does -# not affect framebuffer consoles - -NORMAL="\\033[0;39m" # Standard console grey -SUCCESS="\\033[1;32m" # Success is green -WARNING="\\033[1;33m" # Warnings are yellow -FAILURE="\\033[1;31m" # Failures are red -INFO="\\033[1;36m" # Information is light cyan -BRACKET="\\033[1;34m" # Brackets are blue - -# Use a colored prefix -BMPREFIX=" " -SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} " -FAILURE_PREFIX="${FAILURE}*****${NORMAL} " -WARNING_PREFIX="${WARNING} *** ${NORMAL} " -SKIP_PREFIX="${INFO} S ${NORMAL}" - -SUCCESS_SUFFIX="${BRACKET}[${SUCCESS} OK ${BRACKET}]${NORMAL}" -FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMAL}" -WARNING_SUFFIX="${BRACKET}[${WARNING} WARN ${BRACKET}]${NORMAL}" -SKIP_SUFFIX="${BRACKET}[${INFO} SKIP ${BRACKET}]${NORMAL}" - -BOOTLOG=/run/bootlog -KILLDELAY=3 -SCRIPT_STAT="0" - -# Set any user specified environment variables e.g. HEADLESS -[ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site - -## Screen Dimensions -# Find current screen size -if [ -z "${COLUMNS}" ]; then - COLUMNS=$(stty size) - COLUMNS=${COLUMNS##* } -fi - -# When using remote connections, such as a serial port, stty size returns 0 -if [ "${COLUMNS}" = "0" ]; then - COLUMNS=80 -fi - -## Measurements for positioning result messages -COL=$((${COLUMNS} - 8)) -WCOL=$((${COL} - 2)) - -## Set Cursor Position Commands, used via echo -SET_COL="\\033[${COL}G" # at the $COL char -SET_WCOL="\\033[${WCOL}G" # at the $WCOL char -CURS_UP="\\033[1A\\033[0G" # Up one line, at the 0'th char -CURS_ZERO="\\033[0G" - -################################################################################ -# start_daemon() # -# Usage: start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args...] # -# # -# Purpose: This runs the specified program as a daemon # -# # -# Inputs: -f: (force) run the program even if it is already running. # -# -n nicelevel: specify a nice level. See 'man nice(1)'. # -# -p pidfile: use the specified file to determine PIDs. # -# pathname: the complete path to the specified program # -# args: additional arguments passed to the program (pathname) # -# # -# Return values (as defined by LSB exit codes): # -# 0 - program is running or service is OK # -# 1 - generic or unspecified error # -# 2 - invalid or excessive argument(s) # -# 5 - program is not installed # -################################################################################ -start_daemon() -{ - local force="" - local nice="0" - local pidfile="" - local pidlist="" - local retval="" - - # Process arguments - while true - do - case "${1}" in - - -f) - force="1" - shift 1 - ;; - - -n) - nice="${2}" - shift 2 - ;; - - -p) - pidfile="${2}" - shift 2 - ;; - - -*) - return 2 - ;; - - *) - program="${1}" - break - ;; - esac - done - - # Check for a valid program - if [ ! -e "${program}" ]; then return 5; fi - - # Execute - if [ -z "${force}" ]; then - if [ -z "${pidfile}" ]; then - # Determine the pid by discovery - pidlist=`pidofproc "${1}"` - retval="${?}" - else - # The PID file contains the needed PIDs - # Note that by LSB requirement, the path must be given to pidofproc, - # however, it is not used by the current implementation or standard. - pidlist=`pidofproc -p "${pidfile}" "${1}"` - retval="${?}" - fi - - # Return a value ONLY - # It is the init script's (or distribution's functions) responsibilty - # to log messages! - case "${retval}" in - - 0) - # Program is already running correctly, this is a - # successful start. - return 0 - ;; - - 1) - # Program is not running, but an invalid pid file exists - # remove the pid file and continue - rm -f "${pidfile}" - ;; - - 3) - # Program is not running and no pidfile exists - # do nothing here, let start_deamon continue. - ;; - - *) - # Others as returned by status values shall not be interpreted - # and returned as an unspecified error. - return 1 - ;; - esac - fi - - # Do the start! - nice -n "${nice}" "${@}" -} - -################################################################################ -# killproc() # -# Usage: killproc [-p pidfile] pathname [signal] # -# # -# Purpose: Send control signals to running processes # -# # -# Inputs: -p pidfile, uses the specified pidfile # -# pathname, pathname to the specified program # -# signal, send this signal to pathname # -# # -# Return values (as defined by LSB exit codes): # -# 0 - program (pathname) has stopped/is already stopped or a # -# running program has been sent specified signal and stopped # -# successfully # -# 1 - generic or unspecified error # -# 2 - invalid or excessive argument(s) # -# 5 - program is not installed # -# 7 - program is not running and a signal was supplied # -################################################################################ -killproc() -{ - local pidfile - local program - local prefix - local progname - local signal="-TERM" - local fallback="-KILL" - local nosig - local pidlist - local retval - local pid - local delay="30" - local piddead - local dtime - - # Process arguments - while true; do - case "${1}" in - -p) - pidfile="${2}" - shift 2 - ;; - - *) - program="${1}" - if [ -n "${2}" ]; then - signal="${2}" - fallback="" - else - nosig=1 - fi - - # Error on additional arguments - if [ -n "${3}" ]; then - return 2 - else - break - fi - ;; - esac - done - - # Check for a valid program - if [ ! -e "${program}" ]; then return 5; fi - - # Check for a valid signal - check_signal "${signal}" - if [ "${?}" -ne "0" ]; then return 2; fi - - # Get a list of pids - if [ -z "${pidfile}" ]; then - # determine the pid by discovery - pidlist=`pidofproc "${1}"` - retval="${?}" - else - # The PID file contains the needed PIDs - # Note that by LSB requirement, the path must be given to pidofproc, - # however, it is not used by the current implementation or standard. - pidlist=`pidofproc -p "${pidfile}" "${1}"` - retval="${?}" - fi - - # Return a value ONLY - # It is the init script's (or distribution's functions) responsibilty - # to log messages! - case "${retval}" in - - 0) - # Program is running correctly - # Do nothing here, let killproc continue. - ;; - - 1) - # Program is not running, but an invalid pid file exists - # Remove the pid file. - - progname=${program##*/} - - if [[ -e "/run/${progname}.pid" ]]; then - pidfile="/run/${progname}.pid" - rm -f "${pidfile}" - fi - - # This is only a success if no signal was passed. - if [ -n "${nosig}" ]; then - return 0 - else - return 7 - fi - ;; - - 3) - # Program is not running and no pidfile exists - # This is only a success if no signal was passed. - if [ -n "${nosig}" ]; then - return 0 - else - return 7 - fi - ;; - - *) - # Others as returned by status values shall not be interpreted - # and returned as an unspecified error. - return 1 - ;; - esac - - # Perform different actions for exit signals and control signals - check_sig_type "${signal}" - - if [ "${?}" -eq "0" ]; then # Signal is used to terminate the program - - # Account for empty pidlist (pid file still exists and no - # signal was given) - if [ "${pidlist}" != "" ]; then - - # Kill the list of pids - for pid in ${pidlist}; do - - kill -0 "${pid}" 2> /dev/null - - if [ "${?}" -ne "0" ]; then - # Process is dead, continue to next and assume all is well - continue - else - kill "${signal}" "${pid}" 2> /dev/null - - # Wait up to ${delay}/10 seconds to for "${pid}" to - # terminate in 10ths of a second - - while [ "${delay}" -ne "0" ]; do - kill -0 "${pid}" 2> /dev/null || piddead="1" - if [ "${piddead}" = "1" ]; then break; fi - sleep 0.1 - delay="$(( ${delay} - 1 ))" - done - - # If a fallback is set, and program is still running, then - # use the fallback - if [ -n "${fallback}" -a "${piddead}" != "1" ]; then - kill "${fallback}" "${pid}" 2> /dev/null - sleep 1 - # Check again, and fail if still running - kill -0 "${pid}" 2> /dev/null && return 1 - fi - fi - done - fi - - # Check for and remove stale PID files. - if [ -z "${pidfile}" ]; then - # Find the basename of $program - prefix=`echo "${program}" | sed 's/[^/]*$//'` - progname=`echo "${program}" | sed "s@${prefix}@@"` - - if [ -e "/run/${progname}.pid" ]; then - rm -f "/run/${progname}.pid" 2> /dev/null - fi - else - if [ -e "${pidfile}" ]; then rm -f "${pidfile}" 2> /dev/null; fi - fi - - # For signals that do not expect a program to exit, simply - # let kill do its job, and evaluate kill's return for value - - else # check_sig_type - signal is not used to terminate program - for pid in ${pidlist}; do - kill "${signal}" "${pid}" - if [ "${?}" -ne "0" ]; then return 1; fi - done - fi -} - -################################################################################ -# pidofproc() # -# Usage: pidofproc [-p pidfile] pathname # -# # -# Purpose: This function returns one or more pid(s) for a particular daemon # -# # -# Inputs: -p pidfile, use the specified pidfile instead of pidof # -# pathname, path to the specified program # -# # -# Return values (as defined by LSB status codes): # -# 0 - Success (PIDs to stdout) # -# 1 - Program is dead, PID file still exists (remaining PIDs output) # -# 3 - Program is not running (no output) # -################################################################################ -pidofproc() -{ - local pidfile - local program - local prefix - local progname - local pidlist - local lpids - local exitstatus="0" - - # Process arguments - while true; do - case "${1}" in - - -p) - pidfile="${2}" - shift 2 - ;; - - *) - program="${1}" - if [ -n "${2}" ]; then - # Too many arguments - # Since this is status, return unknown - return 4 - else - break - fi - ;; - esac - done - - # If a PID file is not specified, try and find one. - if [ -z "${pidfile}" ]; then - # Get the program's basename - prefix=`echo "${program}" | sed 's/[^/]*$//'` - - if [ -z "${prefix}" ]; then - progname="${program}" - else - progname=`echo "${program}" | sed "s@${prefix}@@"` - fi - - # If a PID file exists with that name, assume that is it. - if [ -e "/run/${progname}.pid" ]; then - pidfile="/run/${progname}.pid" - fi - fi - - # If a PID file is set and exists, use it. - if [ -n "${pidfile}" -a -e "${pidfile}" ]; then - - # Use the value in the first line of the pidfile - pidlist=`/bin/head -n1 "${pidfile}"` - # This can optionally be written as 'sed 1q' to repalce 'head -n1' - # should LFS move /bin/head to /usr/bin/head - else - # Use pidof - pidlist=`pidof "${program}"` - fi - - # Figure out if all listed PIDs are running. - for pid in ${pidlist}; do - kill -0 ${pid} 2> /dev/null - - if [ "${?}" -eq "0" ]; then - lpids="${lpids}${pid} " - else - exitstatus="1" - fi - done - - if [ -z "${lpids}" -a ! -f "${pidfile}" ]; then - return 3 - else - echo "${lpids}" - return "${exitstatus}" - fi -} - -################################################################################ -# statusproc() # -# Usage: statusproc [-p pidfile] pathname # -# # -# Purpose: This function prints the status of a particular daemon to stdout # -# # -# Inputs: -p pidfile, use the specified pidfile instead of pidof # -# pathname, path to the specified program # -# # -# Return values: # -# 0 - Status printed # -# 1 - Input error. The daemon to check was not specified. # -################################################################################ -statusproc() -{ - local pidfile - local pidlist - - if [ "${#}" = "0" ]; then - echo "Usage: statusproc [-p pidfle] {program}" - exit 1 - fi - - # Process arguments - while true; do - case "${1}" in - - -p) - pidfile="${2}" - shift 2 - ;; - - *) - if [ -n "${2}" ]; then - echo "Too many arguments" - return 1 - else - break - fi - ;; - esac - done - - if [ -n "${pidfile}" ]; then - pidlist=`pidofproc -p "${pidfile}" $@` - else - pidlist=`pidofproc $@` - fi - - # Trim trailing blanks - pidlist=`echo "${pidlist}" | sed -r 's/ +$//'` - - base="${1##*/}" - - if [ -n "${pidlist}" ]; then - /bin/echo -e "${INFO}${base} is running with Process" \ - "ID(s) ${pidlist}.${NORMAL}" - else - if [ -n "${base}" -a -e "/run/${base}.pid" ]; then - /bin/echo -e "${WARNING}${1} is not running but" \ - "/run/${base}.pid exists.${NORMAL}" - else - if [ -n "${pidfile}" -a -e "${pidfile}" ]; then - /bin/echo -e "${WARNING}${1} is not running" \ - "but ${pidfile} exists.${NORMAL}" - else - /bin/echo -e "${INFO}${1} is not running.${NORMAL}" - fi - fi - fi -} - -################################################################################ -# timespec() # -# # -# Purpose: An internal utility function to format a timestamp # -# a boot log file. Sets the STAMP variable. # -# # -# Return value: Not used # -################################################################################ -timespec() -{ - STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) " - return 0 -} - -################################################################################ -# log_success_msg() # -# Usage: log_success_msg ["message"] # -# # -# Purpose: Print a successful status message to the screen and # -# a boot log file. # -# # -# Inputs: $@ - Message # -# # -# Return values: Not used # -################################################################################ -log_success_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - - timespec - /bin/echo -e "${STAMP} ${logmessage} OK" >> ${BOOTLOG} - - return 0 -} - -log_success_msg2() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" - - echo " OK" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# log_failure_msg() # -# Usage: log_failure_msg ["message"] # -# # -# Purpose: Print a failure status message to the screen and # -# a boot log file. # -# # -# Inputs: $@ - Message # -# # -# Return values: Not used # -################################################################################ -log_failure_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" - - # Strip non-printable characters from log file - - timespec - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - /bin/echo -e "${STAMP} ${logmessage} FAIL" >> ${BOOTLOG} - - return 0 -} - -log_failure_msg2() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" - - echo "FAIL" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# log_warning_msg() # -# Usage: log_warning_msg ["message"] # -# # -# Purpose: Print a warning status message to the screen and # -# a boot log file. # -# # -# Return values: Not used # -################################################################################ -log_warning_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - timespec - /bin/echo -e "${STAMP} ${logmessage} WARN" >> ${BOOTLOG} - - return 0 -} - -log_skip_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - /bin/echo "SKIP" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# log_info_msg() # -# Usage: log_info_msg message # -# # -# Purpose: Print an information message to the screen and # -# a boot log file. Does not print a trailing newline character. # -# # -# Return values: Not used # -################################################################################ -log_info_msg() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - timespec - /bin/echo -n -e "${STAMP} ${logmessage}" >> ${BOOTLOG} - - return 0 -} - -log_info_msg2() -{ - /bin/echo -n -e "${@}" - - # Strip non-printable characters from log file - logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` - /bin/echo -n -e "${logmessage}" >> ${BOOTLOG} - - return 0 -} - -################################################################################ -# evaluate_retval() # -# Usage: Evaluate a return value and print success or failyure as appropriate # -# # -# Purpose: Convenience function to terminate an info message # -# # -# Return values: Not used # -################################################################################ -evaluate_retval() -{ - local error_value="${?}" - - if [ ${error_value} = 0 ]; then - log_success_msg2 - else - log_failure_msg2 - fi -} - -################################################################################ -# check_signal() # -# Usage: check_signal [ -{signal} ] # -# # -# Purpose: Check for a valid signal. This is not defined by any LSB draft, # -# however, it is required to check the signals to determine if the # -# signals chosen are invalid arguments to the other functions. # -# # -# Inputs: Accepts a single string value in the form of -{signal} # -# # -# Return values: # -# 0 - Success (signal is valid # -# 1 - Signal is not valid # -################################################################################ -check_signal() -{ - local valsig - - # Add error handling for invalid signals - valsig=" -ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2" - valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN" - valsig="${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP" - valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 -4 -5 -6 -8 -9" - valsig="${valsig} -11 -13 -14 -15 " - - echo "${valsig}" | grep -- " ${1} " > /dev/null - - if [ "${?}" -eq "0" ]; then - return 0 - else - return 1 - fi -} - -################################################################################ -# check_sig_type() # -# Usage: check_signal [ -{signal} | {signal} ] # -# # -# Purpose: Check if signal is a program termination signal or a control signal # -# This is not defined by any LSB draft, however, it is required to # -# check the signals to determine if they are intended to end a # -# program or simply to control it. # -# # -# Inputs: Accepts a single string value in the form or -{signal} or {signal} # -# # -# Return values: # -# 0 - Signal is used for program termination # -# 1 - Signal is used for program control # -################################################################################ -check_sig_type() -{ - local valsig - - # The list of termination signals (limited to generally used items) - valsig=" -ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15 " - - echo "${valsig}" | grep -- " ${1} " > /dev/null - - if [ "${?}" -eq "0" ]; then - return 0 - else - return 1 - fi -} - -################################################################################ -# wait_for_user() # -# # -# Purpose: Wait for the user to respond if not a headless system # -# # -################################################################################ -wait_for_user() -{ - # Wait for the user by default - [ "${HEADLESS=0}" = "0" ] && read ENTER - return 0 -} - -################################################################################ -# is_true() # -# # -# Purpose: Utility to test if a variable is true | yes | 1 # -# # -################################################################################ -is_true() -{ - [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] || [ "$1" = "y" ] || - [ "$1" = "t" ] -} - -# End /lib/lsb/init-functions - -D.3. /etc/rc.d/init.d/mountvirtfs - -#!/bin/sh -######################################################################## -# Begin mountvirtfs -# -# Description : Mount proc, sysfs, and run -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: mountvirtfs -# Required-Start: $first -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Mounts /sys and /proc virtual (kernel) filesystems. -# Mounts /run (tmpfs) and /dev (devtmpfs). -# Description: Mounts /sys and /proc virtual (kernel) filesystems. -# Mounts /run (tmpfs) and /dev (devtmpfs). -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - # Make sure /run is available before logging any messages - if ! mountpoint /run >/dev/null; then - mount /run || failed=1 - fi - - mkdir -p /run/lock /run/shm - chmod 1777 /run/shm /run/lock - - log_info_msg "Mounting virtual file systems: ${INFO}/run" - - if ! mountpoint /proc >/dev/null; then - log_info_msg2 " ${INFO}/proc" - mount -o nosuid,noexec,nodev /proc || failed=1 - fi - - if ! mountpoint /sys >/dev/null; then - log_info_msg2 " ${INFO}/sys" - mount -o nosuid,noexec,nodev /sys || failed=1 - fi - - if ! mountpoint /dev >/dev/null; then - log_info_msg2 " ${INFO}/dev" - mount -o mode=0755,nosuid /dev || failed=1 - fi - - ln -sfn /run/shm /dev/shm - - (exit ${failed}) - evaluate_retval - exit $failed - ;; - - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End mountvirtfs - -D.4. /etc/rc.d/init.d/modules - -#!/bin/sh -######################################################################## -# Begin modules -# -# Description : Module auto-loading script -# -# Authors : Zack Winkles -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: modules -# Required-Start: mountvirtfs -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Loads required modules. -# Description: Loads modules listed in /etc/sysconfig/modules. -# X-LFS-Provided-By: LFS -### END INIT INFO - -# Assure that the kernel has module support. -[ -e /proc/modules ] || exit 0 - -. /lib/lsb/init-functions - -case "${1}" in - start) - # Exit if there's no modules file or there are no - # valid entries - [ -r /etc/sysconfig/modules ] || exit 0 - egrep -qv '^($|#)' /etc/sysconfig/modules || exit 0 - - log_info_msg "Loading modules:" - - # Only try to load modules if the user has actually given us - # some modules to load. - - while read module args; do - - # Ignore comments and blank lines. - case "$module" in - ""|"#"*) continue ;; - esac - - # Attempt to load the module, passing any arguments provided. - modprobe ${module} ${args} >/dev/null - - # Print the module name if successful, otherwise take note. - if [ $? -eq 0 ]; then - log_info_msg2 " ${module}" - else - failedmod="${failedmod} ${module}" - fi - done < /etc/sysconfig/modules - - # Print a message about successfully loaded modules on the correct line. - log_success_msg2 - - # Print a failure message with a list of any modules that - # may have failed to load. - if [ -n "${failedmod}" ]; then - log_failure_msg "Failed to load modules:${failedmod}" - exit 1 - fi - ;; - - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End modules - -D.5. /etc/rc.d/init.d/udev - -#!/bin/sh -######################################################################## -# Begin udev -# -# Description : Udev cold-plugging script -# -# Authors : Zack Winkles, Alexander E. Patrakov -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: udev $time -# Required-Start: localnet -# Should-Start: modules -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Populates /dev with device nodes. -# Description: Mounts a tempfs on /dev and starts the udevd daemon. -# Device nodes are created as defined by udev. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Populating /dev with device nodes... " - if ! grep -q '[[:space:]]sysfs' /proc/mounts; then - log_failure_msg2 - msg="FAILURE:\n\nUnable to create " - msg="${msg}devices without a SysFS filesystem\n\n" - msg="${msg}After you press Enter, this system " - msg="${msg}will be halted and powered off.\n\n" - log_info_msg "$msg" - log_info_msg "Press Enter to continue..." - wait_for_user - /etc/rc.d/init.d/halt stop - fi - - # Start the udev daemon to continually watch for, and act on, - # uevents - /sbin/udevd --daemon - - # Now traverse /sys in order to "coldplug" devices that have - # already been discovered - /sbin/udevadm trigger --action=add --type=subsystems - /sbin/udevadm trigger --action=add --type=devices - /sbin/udevadm trigger --action=change --type=devices - - # Now wait for udevd to process the uevents we triggered - if ! is_true "$OMIT_UDEV_SETTLE"; then - /sbin/udevadm settle - fi - - # If any LVM based partitions are on the system, ensure they - # are activated so they can be used. - if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi - - log_success_msg2 - ;; - - *) - echo "Usage ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End udev - -D.6. /etc/rc.d/init.d/swap - -#!/bin/sh -######################################################################## -# Begin swap -# -# Description : Swap Control Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: swap -# Required-Start: udev -# Should-Start: modules -# Required-Stop: localnet -# Should-Stop: $local_fs -# Default-Start: S -# Default-Stop: 0 6 -# Short-Description: Mounts and unmounts swap partitions. -# Description: Mounts and unmounts swap partitions defined in -# /etc/fstab. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Activating all swap files/partitions..." - swapon -a - evaluate_retval - ;; - - stop) - log_info_msg "Deactivating all swap files/partitions..." - swapoff -a - evaluate_retval - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - log_success_msg "Retrieving swap status." - swapon -s - ;; - - *) - echo "Usage: ${0} {start|stop|restart|status}" - exit 1 - ;; -esac - -exit 0 - -# End swap - -D.7. /etc/rc.d/init.d/setclock - -#!/bin/sh -######################################################################## -# Begin setclock -# -# Description : Setting Linux Clock -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: -# Required-Start: -# Should-Start: modules -# Required-Stop: -# Should-Stop: $syslog -# Default-Start: S -# Default-Stop: -# Short-Description: Stores and restores time from the hardware clock -# Description: On boot, system time is obtained from hwclock. The -# hardware clock can also be set on shutdown. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -[ -r /etc/sysconfig/clock ] && . /etc/sysconfig/clock - - -case "${UTC}" in - yes|true|1) - CLOCKPARAMS="${CLOCKPARAMS} --utc" - ;; - - no|false|0) - CLOCKPARAMS="${CLOCKPARAMS} --localtime" - ;; - -esac - -case ${1} in - start) - hwclock --hctosys ${CLOCKPARAMS} >/dev/null - ;; - - stop) - log_info_msg "Setting hardware clock..." - hwclock --systohc ${CLOCKPARAMS} >/dev/null - evaluate_retval - ;; - - *) - echo "Usage: ${0} {start|stop}" - exit 1 - ;; - -esac - -exit 0 - -D.8. /etc/rc.d/init.d/checkfs - -#!/bin/sh -######################################################################## -# Begin checkfs -# -# Description : File System Check -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# A. Luebke - luebke@users.sourceforge.net -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -# Based on checkfs script from LFS-3.1 and earlier. -# -# From man fsck -# 0 - No errors -# 1 - File system errors corrected -# 2 - System should be rebooted -# 4 - File system errors left uncorrected -# 8 - Operational error -# 16 - Usage or syntax error -# 32 - Fsck canceled by user request -# 128 - Shared library error -# -######################################################################### - -### BEGIN INIT INFO -# Provides: checkfs -# Required-Start: udev swap -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Checks local filesystems before mounting. -# Description: Checks local filesystmes before mounting. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - if [ -f /fastboot ]; then - msg="/fastboot found, will omit " - msg="${msg} file system checks as requested.\n" - log_info_msg "${msg}" - exit 0 - fi - - log_info_msg "Mounting root file system in read-only mode... " - mount -n -o remount,ro / >/dev/null - - if [ ${?} != 0 ]; then - log_failure_msg2 - msg="\n\nCannot check root " - msg="${msg}filesystem because it could not be mounted " - msg="${msg}in read-only mode.\n\n" - msg="${msg}After you press Enter, this system will be " - msg="${msg}halted and powered off.\n\n" - log_failure_msg "${msg}" - - log_info_msg "Press Enter to continue..." - wait_for_user - /etc/rc.d/init.d/halt stop - else - log_success_msg2 - fi - - if [ -f /forcefsck ]; then - msg="/forcefsck found, forcing file" - msg="${msg} system checks as requested." - log_success_msg "$msg" - options="-f" - else - options="" - fi - - log_info_msg "Checking file systems..." - # Note: -a option used to be -p; but this fails e.g. on fsck.minix - if is_true "$VERBOSE_FSCK"; then - fsck ${options} -a -A -C -T - else - fsck ${options} -a -A -C -T >/dev/null - fi - - error_value=${?} - - if [ "${error_value}" = 0 ]; then - log_success_msg2 - fi - - if [ "${error_value}" = 1 ]; then - msg="\nWARNING:\n\nFile system errors " - msg="${msg}were found and have been corrected.\n" - msg="${msg} You may want to double-check that " - msg="${msg}everything was fixed properly." - log_warning_msg "$msg" - fi - - if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then - msg="\nWARNING:\n\nFile system errors " - msg="${msg}were found and have been been " - msg="${msg}corrected, but the nature of the " - msg="${msg}errors require this system to be rebooted.\n\n" - msg="${msg}After you press enter, " - msg="${msg}this system will be rebooted\n\n" - log_failure_msg "$msg" - - log_info_msg "Press Enter to continue..." - wait_for_user - reboot -f - fi - - if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then - msg="\nFAILURE:\n\nFile system errors " - msg="${msg}were encountered that could not be " - msg="${msg}fixed automatically.\nThis system " - msg="${msg}cannot continue to boot and will " - msg="${msg}therefore be halted until those " - msg="${msg}errors are fixed manually by a " - msg="${msg}System Administrator.\n\n" - msg="${msg}After you press Enter, this system will be " - msg="${msg}halted and powered off.\n\n" - log_failure_msg "$msg" - - log_info_msg "Press Enter to continue..." - wait_for_user - /etc/rc.d/init.d/halt stop - fi - - if [ "${error_value}" -ge 16 ]; then - msg="FAILURE:\n\nUnexpected failure " - msg="${msg}running fsck. Exited with error " - msg="${msg} code: ${error_value}.\n" - log_info_msg $msg - exit ${error_value} - fi - - exit 0 - ;; - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End checkfs - -D.9. /etc/rc.d/init.d/mountfs - -#!/bin/sh -######################################################################## -# Begin mountfs -# -# Description : File System Mount Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: $local_fs -# Required-Start: udev checkfs -# Should-Start: modules -# Required-Stop: localnet -# Should-Stop: -# Default-Start: S -# Default-Stop: 0 6 -# Short-Description: Mounts/unmounts local filesystems defined in /etc/fstab. -# Description: Remounts root filesystem read/write and mounts all -# remaining local filesystems defined in /etc/fstab on -# start. Remounts root filesystem read-only and unmounts -# remaining filesystems on stop. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Remounting root file system in read-write mode..." - mount --options remount,rw / >/dev/null - evaluate_retval - - # Remove fsck-related file system watermarks. - rm -f /fastboot /forcefsck - - # Make sure /dev/pts exists - mkdir -p /dev/pts - - # This will mount all filesystems that do not have _netdev in - # their option list. _netdev denotes a network filesystem. - - log_info_msg "Mounting remaining file systems..." - failed=0 - mount --all --test-opts no_netdev >/dev/null || failed=1 - evaluate_retval - exit $failed - ;; - - stop) - # Don't unmount virtual file systems like /run - log_info_msg "Unmounting all other currently mounted file systems..." - # Ensure any loop devies are removed - losetup -D - umount --all --detach-loop --read-only \ - --types notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts >/dev/null - evaluate_retval - - # Make sure / is mounted read only (umount bug) - mount --options remount,ro / - - # Make all LVM volume groups unavailable, if appropriate - # This fails if swap or / are on an LVM partition - #if [ -x /sbin/vgchange ]; then /sbin/vgchange -an > /dev/null; fi - ;; - - *) - echo "Usage: ${0} {start|stop}" - exit 1 - ;; -esac - -# End mountfs - -D.10. /etc/rc.d/init.d/udev_retry - -#!/bin/sh -######################################################################## -# Begin udev_retry -# -# Description : Udev cold-plugging script (retry) -# -# Authors : Alexander E. Patrakov -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# Bryan Kadzban - -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: udev_retry -# Required-Start: udev -# Should-Start: $local_fs cleanfs -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Replays failed uevents and creates additional devices. -# Description: Replays any failed uevents that were skipped due to -# slow hardware initialization, and creates those needed -# device nodes -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Retrying failed uevents, if any..." - - # As of udev-186, the --run option is no longer valid - #rundir=$(/sbin/udevadm info --run) - rundir=/run/udev - # From Debian: "copy the rules generated before / was mounted - # read-write": - - for file in ${rundir}/tmp-rules--*; do - dest=${file##*tmp-rules--} - [ "$dest" = '*' ] && break - cat $file >> /etc/udev/rules.d/$dest - rm -f $file - done - - # Re-trigger the uevents that may have failed, - # in hope they will succeed now - /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \ - while read line ; do - for subsystem in $line ; do - /sbin/udevadm trigger --subsystem-match=$subsystem --action=add - done - done - - # Now wait for udevd to process the uevents we triggered - if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then - /sbin/udevadm settle - fi - - evaluate_retval - ;; - - *) - echo "Usage ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End udev_retry - -D.11. /etc/rc.d/init.d/cleanfs - -#!/bin/sh -######################################################################## -# Begin cleanfs -# -# Description : Clean file system -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: cleanfs -# Required-Start: $local_fs -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Cleans temporary directories early in the boot process. -# Description: Cleans temporary directories /run, /var/lock, and -# optionally, /tmp. cleanfs also creates /run/utmp -# and any files defined in /etc/sysconfig/createfiles. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -# Function to create files/directory on boot. -create_files() -{ - # Input to file descriptor 9 and output to stdin (redirection) - exec 9>&0 < /etc/sysconfig/createfiles - - while read name type perm usr grp dtype maj min junk - do - # Ignore comments and blank lines. - case "${name}" in - ""|\#*) continue ;; - esac - - # Ignore existing files. - if [ ! -e "${name}" ]; then - # Create stuff based on its type. - case "${type}" in - dir) - mkdir "${name}" - ;; - file) - :> "${name}" - ;; - dev) - case "${dtype}" in - char) - mknod "${name}" c ${maj} ${min} - ;; - block) - mknod "${name}" b ${maj} ${min} - ;; - pipe) - mknod "${name}" p - ;; - *) - log_warning_msg "\nUnknown device type: ${dtype}" - ;; - esac - ;; - *) - log_warning_msg "\nUnknown type: ${type}" - continue - ;; - esac - - # Set up the permissions, too. - chown ${usr}:${grp} "${name}" - chmod ${perm} "${name}" - fi - done - - # Close file descriptor 9 (end redirection) - exec 0>&9 9>&- - return 0 -} - -case "${1}" in - start) - log_info_msg "Cleaning file systems:" - - if [ "${SKIPTMPCLEAN}" = "" ]; then - log_info_msg2 " /tmp" - cd /tmp && - find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1 - fi - - > /run/utmp - - if grep -q '^utmp:' /etc/group ; then - chmod 664 /run/utmp - chgrp utmp /run/utmp - fi - - (exit ${failed}) - evaluate_retval - - if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then - log_info_msg "Creating files and directories... " - create_files # Always returns 0 - evaluate_retval - fi - - exit $failed - ;; - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End cleanfs - -D.12. /etc/rc.d/init.d/console - -#!/bin/sh -######################################################################## -# Begin console -# -# Description : Sets keymap and screen font -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# Alexander E. Patrakov -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: console -# Required-Start: $local_fs -# Should-Start: udev_retry -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Sets up a localised console. -# Description: Sets up fonts and language settings for the user's -# local as defined by /etc/sysconfig/console. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -# Native English speakers probably don't have /etc/sysconfig/console at all -[ -r /etc/sysconfig/console ] && . /etc/sysconfig/console - -is_true() -{ - [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] -} - -failed=0 - -case "${1}" in - start) - # See if we need to do anything - if [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] && - [ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] && - ! is_true "${UNICODE}"; then - exit 0 - fi - - # There should be no bogus failures below this line! - log_info_msg "Setting up Linux console..." - - # Figure out if a framebuffer console is used - [ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0 - - # Figure out the command to set the console into the - # desired mode - is_true "${UNICODE}" && - MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" || - MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a" - - # On framebuffer consoles, font has to be set for each vt in - # UTF-8 mode. This doesn't hurt in non-UTF-8 mode also. - - ! is_true "${use_fb}" || [ -z "${FONT}" ] || - MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}" - - # Apply that command to all consoles mentioned in - # /etc/inittab. Important: in the UTF-8 mode this should - # happen before setfont, otherwise a kernel bug will - # show up and the unicode map of the font will not be - # used. - - for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | - grep -o '\btty[[:digit:]]*\b'` - do - openvt -f -w -c ${TTY#tty} -- \ - /bin/sh -c "${MODE_COMMAND}" || failed=1 - done - - # Set the font (if not already set above) and the keymap - [ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || failed=1 - - [ -z "${KEYMAP}" ] || - loadkeys ${KEYMAP} >/dev/null 2>&1 || - failed=1 - - [ -z "${KEYMAP_CORRECTIONS}" ] || - loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 || - failed=1 - - # Convert the keymap from $LEGACY_CHARSET to UTF-8 - [ -z "$LEGACY_CHARSET" ] || - dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&1 || - failed=1 - - # If any of the commands above failed, the trap at the - # top would set $failed to 1 - ( exit $failed ) - evaluate_retval - - exit $failed - ;; - - *) - echo "Usage: ${0} {start}" - exit 1 - ;; -esac - -# End console - -D.13. /etc/rc.d/init.d/localnet - -#!/bin/sh -######################################################################## -# Begin localnet -# -# Description : Loopback device -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: localnet -# Required-Start: mountvirtfs -# Should-Start: modules -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: 0 6 -# Short-Description: Starts the local network. -# Description: Sets the hostname of the machine and starts the -# loopback interface. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions -[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network -[ -r /etc/hostname ] && HOSTNAME=`cat /etc/hostname` - -case "${1}" in - start) - log_info_msg "Bringing up the loopback interface..." - ip addr add 127.0.0.1/8 label lo dev lo - ip link set lo up - evaluate_retval - - log_info_msg "Setting hostname to ${HOSTNAME}..." - hostname ${HOSTNAME} - evaluate_retval - ;; - - stop) - log_info_msg "Bringing down the loopback interface..." - ip link set lo down - evaluate_retval - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - echo "Hostname is: $(hostname)" - ip link show lo - ;; - - *) - echo "Usage: ${0} {start|stop|restart|status}" - exit 1 - ;; -esac - -exit 0 - -# End localnet - -D.14. /etc/rc.d/init.d/sysctl - -#!/bin/sh -######################################################################## -# Begin sysctl -# -# Description : File uses /etc/sysctl.conf to set kernel runtime -# parameters -# -# Authors : Nathan Coulson (nathan AT linuxfromscratch D0T org) -# Matthew Burgress (matthew AT linuxfromscratch D0T org) -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: sysctl -# Required-Start: mountvirtfs -# Should-Start: console -# Required-Stop: -# Should-Stop: -# Default-Start: S -# Default-Stop: -# Short-Description: Makes changes to the proc filesystem -# Description: Makes changes to the proc filesystem as defined in -# /etc/sysctl.conf. See 'man sysctl(8)'. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - if [ -f "/etc/sysctl.conf" ]; then - log_info_msg "Setting kernel runtime parameters..." - sysctl -q -p - evaluate_retval - fi - ;; - - status) - sysctl -a - ;; - - *) - echo "Usage: ${0} {start|status}" - exit 1 - ;; -esac - -exit 0 - -# End sysctl - -D.15. /etc/rc.d/init.d/sysklogd - -#!/bin/sh -######################################################################## -# Begin sysklogd -# -# Description : Sysklogd loader -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: $syslog -# Required-Start: $first localnet -# Should-Start: -# Required-Stop: $local_fs -# Should-Stop: sendsignals -# Default-Start: 3 4 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Starts kernel and system log daemons. -# Description: Starts kernel and system log daemons. -# /etc/fstab. -# X-LFS-Provided-By: LFS -### END INIT INFO - -# Note: sysklogd is not started in runlevel 2 due to possible -# remote logging configurations - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Starting system log daemon..." - parms=${SYSKLOGD_PARMS-'-m 0'} - start_daemon /sbin/syslogd $parms - evaluate_retval - - log_info_msg "Starting kernel log daemon..." - start_daemon /sbin/klogd - evaluate_retval - ;; - - stop) - log_info_msg "Stopping kernel log daemon..." - killproc /sbin/klogd - evaluate_retval - - log_info_msg "Stopping system log daemon..." - killproc /sbin/syslogd - evaluate_retval - ;; - - reload) - log_info_msg "Reloading system log daemon config file..." - pid=`pidofproc syslogd` - kill -HUP "${pid}" - evaluate_retval - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - statusproc /sbin/syslogd - statusproc klogd - ;; - - *) - echo "Usage: ${0} {start|stop|reload|restart|status}" - exit 1 - ;; -esac - -exit 0 - -# End sysklogd - -D.16. /etc/rc.d/init.d/network - -#!/bin/sh -######################################################################## -# Begin network -# -# Description : Network Control Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: $network -# Required-Start: $local_fs localnet swap -# Should-Start: $syslog firewalld iptables nftables -# Required-Stop: $local_fs localnet swap -# Should-Stop: $syslog firewalld iptables nftables -# Default-Start: 3 4 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Starts and configures network interfaces. -# Description: Starts and configures network interfaces. -# X-LFS-Provided-By: LFS -### END INIT INFO - -case "${1}" in - start) - # Start all network interfaces - for file in /etc/sysconfig/ifconfig.* - do - interface=${file##*/ifconfig.} - - # Skip if $file is * (because nothing was found) - if [ "${interface}" = "*" ]; then continue; fi - - /sbin/ifup ${interface} - done - ;; - - stop) - # Unmount any network mounted file systems - umount --all --force --types nfs,cifs,nfs4 - - # Reverse list - net_files="" - for file in /etc/sysconfig/ifconfig.* - do - net_files="${file} ${net_files}" - done - - # Stop all network interfaces - for file in ${net_files} - do - interface=${file##*/ifconfig.} - - # Skip if $file is * (because nothing was found) - if [ "${interface}" = "*" ]; then continue; fi - - # See if interface exists - if [ ! -e /sys/class/net/$interface ]; then continue; fi - - # Is interface UP? - ip link show $interface 2>/dev/null | grep -q "state UP" - if [ $? -ne 0 ]; then continue; fi - - /sbin/ifdown ${interface} - done - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - *) - echo "Usage: ${0} {start|stop|restart}" - exit 1 - ;; -esac - -exit 0 - -# End network - -D.17. /etc/rc.d/init.d/sendsignals - -#!/bin/sh -######################################################################## -# Begin sendsignals -# -# Description : Sendsignals Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: sendsignals -# Required-Start: -# Should-Start: -# Required-Stop: $local_fs swap localnet -# Should-Stop: -# Default-Start: -# Default-Stop: 0 6 -# Short-Description: Attempts to kill remaining processes. -# Description: Attempts to kill remaining processes. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - stop) - omit=$(pidof mdmon) - [ -n "$omit" ] && omit="-o $omit" - - log_info_msg "Sending all processes the TERM signal..." - killall5 -15 $omit - error_value=${?} - - sleep ${KILLDELAY} - - if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then - log_success_msg - else - log_failure_msg - fi - - log_info_msg "Sending all processes the KILL signal..." - killall5 -9 $omit - error_value=${?} - - sleep ${KILLDELAY} - - if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then - log_success_msg - else - log_failure_msg - fi - ;; - - *) - echo "Usage: ${0} {stop}" - exit 1 - ;; - -esac - -exit 0 - -# End sendsignals - -D.18. /etc/rc.d/init.d/reboot - -#!/bin/sh -######################################################################## -# Begin reboot -# -# Description : Reboot Scripts -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: reboot -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: 6 -# Default-Stop: -# Short-Description: Reboots the system. -# Description: Reboots the System. -# X-LFS-Provided-By: LFS -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - stop) - log_info_msg "Restarting system..." - reboot -d -f -i - ;; - - *) - echo "Usage: ${0} {stop}" - exit 1 - ;; - -esac - -# End reboot - -D.19. /etc/rc.d/init.d/halt - -#!/bin/sh -######################################################################## -# Begin halt -# -# Description : Halt Script -# -# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -### BEGIN INIT INFO -# Provides: halt -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: 0 -# Default-Stop: -# Short-Description: Halts the system. -# Description: Halts the System. -# X-LFS-Provided-By: LFS -### END INIT INFO - -case "${1}" in - stop) - halt -d -f -i -p - ;; - - *) - echo "Usage: {stop}" - exit 1 - ;; -esac - -# End halt - -D.20. /etc/rc.d/init.d/template - -#!/bin/sh -######################################################################## -# Begin scriptname -# -# Description : -# -# Authors : -# -# Version : LFS x.x -# -# Notes : -# -######################################################################## - -### BEGIN INIT INFO -# Provides: template -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: -# Default-Stop: -# Short-Description: -# Description: -# X-LFS-Provided-By: -### END INIT INFO - -. /lib/lsb/init-functions - -case "${1}" in - start) - log_info_msg "Starting..." - start_daemon fully_qualified_path - ;; - - stop) - log_info_msg "Stopping..." - killproc fully_qualified_path - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - *) - echo "Usage: ${0} {start|stop|restart}" - exit 1 - ;; -esac - -exit 0 - -# End scriptname - -D.21. /etc/sysconfig/modules - -######################################################################## -# Begin /etc/sysconfig/modules -# -# Description : Module auto-loading configuration -# -# Authors : -# -# Version : 00.00 -# -# Notes : The syntax of this file is as follows: -# [ ...] -# -# Each module should be on its own line, and any options that you want -# passed to the module should follow it. The line deliminator is either -# a space or a tab. -######################################################################## - -# End /etc/sysconfig/modules - -D.22. /etc/sysconfig/createfiles - -######################################################################## -# Begin /etc/sysconfig/createfiles -# -# Description : Createfiles script config file -# -# Authors : -# -# Version : 00.00 -# -# Notes : The syntax of this file is as follows: -# if type is equal to "file" or "dir" -# -# if type is equal to "dev" -# -# -# -# is the name of the file which is to be created -# is either file, dir, or dev. -# file creates a new file -# dir creates a new directory -# dev creates a new device -# is either block, char or pipe -# block creates a block device -# char creates a character deivce -# pipe creates a pipe, this will ignore the and -# fields -# and are the major and minor numbers used for -# the device. -######################################################################## - -# End /etc/sysconfig/createfiles - -D.23. /etc/sysconfig/udev-retry - -######################################################################## -# Begin /etc/sysconfig/udev_retry -# -# Description : udev_retry script configuration -# -# Authors : -# -# Version : 00.00 -# -# Notes : Each subsystem that may need to be re-triggered after mountfs -# runs should be listed in this file. Probable subsystems to be -# listed here are rtc (due to /var/lib/hwclock/adjtime) and sound -# (due to both /var/lib/alsa/asound.state and /usr/sbin/alsactl). -# Entries are whitespace-separated. -######################################################################## - -rtc - -# End /etc/sysconfig/udev_retry - -D.24. /sbin/ifup - -#!/bin/sh -######################################################################## -# Begin /sbin/ifup -# -# Description : Interface Up -# -# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# DJ Lucas - dj AT linuxfromscratch D0T org -# -# Version : LFS 7.7 -# -# Notes : The IFCONFIG variable is passed to the SERVICE script -# in the /lib/services directory, to indicate what file the -# service should source to get interface specifications. -# -######################################################################## - -up() -{ - log_info_msg "Bringing up the ${1} interface..." - - if ip link show $1 > /dev/null 2>&1; then - link_status=`ip link show $1` - - if [ -n "${link_status}" ]; then - if ! echo "${link_status}" | grep -q UP; then - ip link set $1 up - fi - fi - - else - log_failure_msg "Interface ${IFACE} doesn't exist." - exit 1 - fi - - evaluate_retval -} - -RELEASE="7.7" - -USAGE="Usage: $0 [ -hV ] [--help] [--version] interface" -VERSTR="LFS ifup, version ${RELEASE}" - -while [ $# -gt 0 ]; do - case "$1" in - --help | -h) help="y"; break ;; - - --version | -V) echo "${VERSTR}"; exit 0 ;; - - -*) echo "ifup: ${1}: invalid option" >&2 - echo "${USAGE}" >& 2 - exit 2 ;; - - *) break ;; - esac -done - -if [ -n "$help" ]; then - echo "${VERSTR}" - echo "${USAGE}" - echo - cat << HERE_EOF -ifup is used to bring up a network interface. The interface -parameter, e.g. eth0 or eth0:2, must match the trailing part of the -interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2. - -HERE_EOF - exit 0 -fi - -file=/etc/sysconfig/ifconfig.${1} - -# Skip backup files -[ "${file}" = "${file%""~""}" ] || exit 0 - -. /lib/lsb/init-functions - -if [ ! -r "${file}" ]; then - log_failure_msg "Unable to bring up ${1} interface! ${file} is missing or can -not be accessed." - exit 1 -fi - -. $file - -if [ "$IFACE" = "" ]; then - log_failure_msg "Unable to bring up ${1} interface! ${file} does not define a -n interface [IFACE]." - exit 1 -fi - -# Do not process this service if started by boot, and ONBOOT -# is not set to yes -if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then - exit 0 -fi - -# Bring up the interface -if [ "$VIRTINT" != "yes" ]; then - up ${IFACE} -fi - -for S in ${SERVICE}; do - if [ ! -x "/lib/services/${S}" ]; then - MSG="\nUnable to process ${file}. Either " - MSG="${MSG}the SERVICE '${S} was not present " - MSG="${MSG}or cannot be executed." - log_failure_msg "$MSG" - exit 1 - fi -done - -if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi - -# Create/configure the interface -for S in ${SERVICE}; do - IFCONFIG=${file} /lib/services/${S} ${IFACE} up -done - -# Set link up virtual interfaces -if [ "${VIRTINT}" == "yes" ]; then - up ${IFACE} -fi - -# Bring up any additional interface components -for I in $INTERFACE_COMPONENTS; do up $I; done - -# Set MTU if requested. Check if MTU has a "good" value. -if test -n "${MTU}"; then - if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; then - for I in $IFACE $INTERFACE_COMPONENTS; do - ip link set dev $I mtu $MTU; - done - else - log_info_msg2 "Invalid MTU $MTU" - fi -fi - -# Set the route default gateway if requested -if [ -n "${GATEWAY}" ]; then - if ip route | grep -q default; then - log_warning_msg "Gateway already setup; skipping." - else - log_info_msg "Adding default gateway ${GATEWAY} to the ${IFACE} interface. -.." - ip route add default via ${GATEWAY} dev ${IFACE} - evaluate_retval - fi -fi - -# End /sbin/ifup - -D.25. /sbin/ifdown - -#!/bin/bash -######################################################################## -# Begin /sbin/ifdown -# -# Description : Interface Down -# -# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -# Notes : the IFCONFIG variable is passed to the scripts found -# in the /lib/services directory, to indicate what file the -# service should source to get interface specifications. -# -######################################################################## - -RELEASE="7.0" - -USAGE="Usage: $0 [ -hV ] [--help] [--version] interface" -VERSTR="LFS ifdown, version ${RELEASE}" - -while [ $# -gt 0 ]; do - case "$1" in - --help | -h) help="y"; break ;; - - --version | -V) echo "${VERSTR}"; exit 0 ;; - - -*) echo "ifup: ${1}: invalid option" >&2 - echo "${USAGE}" >& 2 - exit 2 ;; - - *) break ;; - esac -done - -if [ -n "$help" ]; then - echo "${VERSTR}" - echo "${USAGE}" - echo - cat << HERE_EOF -ifdown is used to bring down a network interface. The interface -parameter, e.g. eth0 or eth0:2, must match the trailing part of the -interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2. - -HERE_EOF - exit 0 -fi - -file=/etc/sysconfig/ifconfig.${1} - -# Skip backup files -[ "${file}" = "${file%""~""}" ] || exit 0 - -. /lib/lsb/init-functions - -if [ ! -r "${file}" ]; then - log_warning_msg "${file} is missing or cannot be accessed." - exit 1 -fi - -. ${file} - -if [ "$IFACE" = "" ]; then - log_failure_msg "${file} does not define an interface [IFACE]." - exit 1 -fi - -# We only need to first service to bring down the interface -S=`echo ${SERVICE} | cut -f1 -d" "` - -if ip link show ${IFACE} > /dev/null 2>&1; then - if [ -n "${S}" -a -x "/lib/services/${S}" ]; then - IFCONFIG=${file} /lib/services/${S} ${IFACE} down - else - MSG="Unable to process ${file}. Either " - MSG="${MSG}the SERVICE variable was not set " - MSG="${MSG}or the specified service cannot be executed." - log_failure_msg "$MSG" - exit 1 - fi -else - log_warning_msg "Interface ${1} doesn't exist." -fi - -# Leave the interface up if there are additional interfaces in the device -link_status=`ip link show ${IFACE} 2>/dev/null` - -if [ -n "${link_status}" ]; then - if [ "$(echo "${link_status}" | grep UP)" != "" ]; then - if [ "$(ip addr show ${IFACE} | grep 'inet ')" == "" ]; then - log_info_msg "Bringing down the ${IFACE} interface..." - ip link set ${IFACE} down - evaluate_retval - fi - fi -fi - -# End /sbin/ifdown - -D.26. /lib/services/ipv4-static - -#!/bin/sh -######################################################################## -# Begin /lib/services/ipv4-static -# -# Description : IPV4 Static Boot Script -# -# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org -# Kevin P. Fleming - kpfleming@linuxfromscratch.org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -. /lib/lsb/init-functions -. ${IFCONFIG} - -if [ -z "${IP}" ]; then - log_failure_msg "\nIP variable missing from ${IFCONFIG}, cannot continue." - exit 1 -fi - -if [ -z "${PREFIX}" -a -z "${PEER}" ]; then - log_warning_msg "\nPREFIX variable missing from ${IFCONFIG}, assuming 24." - PREFIX=24 - args="${args} ${IP}/${PREFIX}" - -elif [ -n "${PREFIX}" -a -n "${PEER}" ]; then - log_failure_msg "\nPREFIX and PEER both specified in ${IFCONFIG}, cannot cont -inue." - exit 1 - -elif [ -n "${PREFIX}" ]; then - args="${args} ${IP}/${PREFIX}" - -elif [ -n "${PEER}" ]; then - args="${args} ${IP} peer ${PEER}" -fi - -if [ -n "${LABEL}" ]; then - args="${args} label ${LABEL}" -fi - -if [ -n "${BROADCAST}" ]; then - args="${args} broadcast ${BROADCAST}" -fi - -case "${2}" in - up) - if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" = "" ]; then - log_info_msg "Adding IPv4 address ${IP} to the ${1} interface..." - ip addr add ${args} dev ${1} - evaluate_retval - else - log_warning_msg "Cannot add IPv4 address ${IP} to ${1}. Already presen -t." - fi - ;; - - down) - if [ "$(ip addr show ${1} 2>/dev/null | grep ${IP}/)" != "" ]; then - log_info_msg "Removing IPv4 address ${IP} from the ${1} interface..." - ip addr del ${args} dev ${1} - evaluate_retval - fi - - if [ -n "${GATEWAY}" ]; then - # Only remove the gateway if there are no remaining ipv4 addresses - if [ "$(ip addr show ${1} 2>/dev/null | grep 'inet ')" != "" ]; then - log_info_msg "Removing default gateway..." - ip route del default - evaluate_retval - fi - fi - ;; - - *) - echo "Usage: ${0} [interface] {up|down}" - exit 1 - ;; -esac - -# End /lib/services/ipv4-static - -D.27. /lib/services/ipv4-static-route - -#!/bin/sh -######################################################################## -# Begin /lib/services/ipv4-static-route -# -# Description : IPV4 Static Route Script -# -# Authors : Kevin P. Fleming - kpfleming@linuxfromscratch.org -# DJ Lucas - dj AT linuxfromscratch D0T org -# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org -# -# Version : LFS 7.0 -# -######################################################################## - -. /lib/lsb/init-functions -. ${IFCONFIG} - -case "${TYPE}" in - ("" | "network") - need_ip=1 - need_gateway=1 - ;; - - ("default") - need_gateway=1 - args="${args} default" - desc="default" - ;; - - ("host") - need_ip=1 - ;; - - ("unreachable") - need_ip=1 - args="${args} unreachable" - desc="unreachable " - ;; - - (*) - log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot conti -nue." - exit 1 - ;; -esac - -if [ -n "${GATEWAY}" ]; then - MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n" - log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue" - exit 1 -fi - -if [ -n "${need_ip}" ]; then - if [ -z "${IP}" ]; then - log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue." - exit 1 - fi - - if [ -z "${PREFIX}" ]; then - log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue -." - exit 1 - fi - - args="${args} ${IP}/${PREFIX}" - desc="${desc}${IP}/${PREFIX}" -fi - -if [ -n "${need_gateway}" ]; then - if [ -z "${STATIC_GATEWAY}" ]; then - log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot -continue." - exit 1 - fi - args="${args} via ${STATIC_GATEWAY}" -fi - -if [ -n "${SOURCE}" ]; then - args="${args} src ${SOURCE}" -fi - -case "${2}" in - up) - log_info_msg "Adding '${desc}' route to the ${1} interface..." - ip route add ${args} dev ${1} - evaluate_retval - ;; - - down) - log_info_msg "Removing '${desc}' route from the ${1} interface..." - ip route del ${args} dev ${1} - evaluate_retval - ;; - - *) - echo "Usage: ${0} [interface] {up|down}" - exit 1 - ;; -esac - -# End /lib/services/ipv4-static-route - -Apêndice E. Regras de configuração do Udev - - As regras neste anexo estão listadas por conveniência. A instalação - normalmente é feita via instruções na [801]Seção 8.69, “Eudev-3.2.11â€. - -E.1. 55-lfs.rules - -# /etc/udev/rules.d/55-lfs.rules: Rule definitions for LFS. - -# Core kernel devices - -# This causes the system clock to be set as soon as /dev/rtc becomes available. -SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock st -art" -KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start -" - -# Comms devices - -KERNEL=="ippp[0-9]*", GROUP="dialout" -KERNEL=="isdn[0-9]*", GROUP="dialout" -KERNEL=="isdnctrl[0-9]*", GROUP="dialout" -KERNEL=="dcbri[0-9]*", GROUP="dialout" - -Apêndice F. Licenças do LFS - - Este livro [escrito originalmente em inglês] está licenciado sob a - licença da Creative Commons Attribution-NonCommercial-ShareAlike 2.0. - - A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob a - Licença de Documentação Livre GNU, versão 1.3 ou qualquer versão - posterior publicada pela Free Software Foundation. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a Licença do MIT. - -F.1. Licença da Creative Commons - - Creative Commons Legal Code - - Atribuição - Uso não-Comercial - Compartilhamento pela mesma licença - 2.0 - -Importante - - A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE ADVOCACIA E NÃO - PRESTA SERVIÇOS JURÃDICOS. A DISTRIBUIÇÃO DESTA LICENÇA NÃO ESTABELECE - QUALQUER RELAÇÃO ADVOCATÃCIA. O CREATIVE COMMONS DISPONIBILIZA ESTA - INFORMAÇÃO "NO ESTADO EM QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ - QUALQUER GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU USO. - - Licença - - A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO COM OS - TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU "LICENÇA"). A - OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS LEIS APLICÃVEIS. - QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB ESTA LICENÇA OU PELA - LEGISLAÇÃO AUTORAL É PROIBIDO. - - AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ ACEITA E - CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O LICENCIANTE CONCEDE - A VOCÊ OS DIREITOS AQUI CONTIDOS EM CONTRAPARTIDA À SUA ACEITAÇÃO - DESTES TERMOS E CONDIÇÕES. - 1. Definições - 1. "Obra Coletiva" significa uma obra, tal como uma edição - periódica, antologia ou enciclopédia, na qual a Obra em sua - totalidade e de forma inalterada, em conjunto com um número de - outras contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um trabalho coletivo. - Uma obra que constitua uma Obra Coletiva não será considerada - Obra Derivada (conforme definido abaixo) para os propósitos - desta licença. - 2. "Obra Derivada" significa uma obra baseada sobre a Obra ou - sobre a Obra e outras obras pré-existentes, tal como uma - tradução, arranjo musical, dramatização, romantização, versão - de filme, gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual a Obra - possa ser refeita, transformada ou adaptada, com a exceção de - que uma obra que constitua uma Obra Coletiva não será - considerada Obra Derivada para fins desta licença. Para evitar - dúvidas, quando a Obra for uma composição musical ou gravação - de som, a sincronização da Obra em relação cronometrada com - uma imagem em movimento (“synchingâ€) será considerada uma Obra - Derivada para os propósitos desta licença. - 3. "Licenciante" significa a pessoa física ou a jurídica que - oferece a Obra sob os termos desta licença. - 4. "Autor Original" significa a pessoa física ou jurídica que - criou a Obra. - 5. "Obra" significa a obra autoral, passível de proteção pelo - direito autoral, oferecida sob os termos desta licença. - 6. "Você" significa a pessoa física ou jurídica exercendo - direitos sob esta Licença que não tenha previamente violado os - termos desta Licença com relação à Obra, ou que tenha recebido - permissão expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. - 7. "Elementos da Licença" significa os principais atributos da - licença correspondente, conforme escolhidos pelo licenciante e - indicados no título desta licença: Atribuição, - Compartilhamento pela Mesma Licença. - 2. Direitos de Uso Legítimo. Nada nesta licença deve ser interpretado - de modo a reduzir, limitar ou restringir quaisquer direitos - relativos ao uso legítimo, ou outras limitações sobre os direitos - exclusivos do titular de direitos autorais sob a legislação autoral - ou quaisquer outras leis aplicáveis. - 3. Concessão da Licença. O Licenciante concede a Você uma licença de - abrangência mundial, sem royalties, não-exclusiva, perpétua (pela - duração do direito autoral aplicável), sujeita aos termos e - condições desta Licença, para exercer os direitos sobre a Obra - definidos abaixo: - 1. reproduzir a Obra, incorporar a Obra em uma ou mais Obras - Coletivas e reproduzir a Obra quando incorporada em Obra - Coletiva; - 2. criar e reproduzir Obras Derivadas; - 3. distribuir cópias ou gravações da Obra, exibir publicamente, - executar publicamente e executar publicamente por meio de uma - transmissão de áudio digital a Obra, inclusive quando - incorporada em Obras Coletivas; - 4. distribuir cópias ou gravações de Obras Derivadas, exibir - publicamente, executar publicamente e executar publicamente - por meio de uma transmissão digital de áudio Obras Derivadas. - Os direitos acima podem ser exercidos em todas as mídias e - formatos, independente de serem conhecidos agora ou concebidos - posteriormente. Os direitos acima incluem o direito de fazer - modificações que forem tecnicamente necessárias para exercer os - direitos em outras mídias, meios e formatos. Todos os direitos não - concedidos expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos nas Seções - 4(e) e 4(f). - 4. Restrições. A licença concedida na Seção 3 acima está expressamente - sujeita e limitada aos seguintes termos: - 1. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais a - Obra apenas sob os termos desta Licença, e Você deve incluir - uma cópia desta licença, ou o Identificador Uniformizado de - Recursos (Uniform Resource Identifier) para esta Licença, com - cada cópia ou gravação da Obra que Você distribuir, exibir - publicamente, executar publicamente, ou executar publicamente - por meios digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra que alterem ou restrinjam os - termos desta Licença ou o exercício dos direitos aqui - concedidos aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as informações que se - referem a esta Licença e à exclusão de garantias. Você não - pode distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra enquanto incorporada em uma - Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - Se Você criar uma Obra Coletiva, em havendo notificação de - qualquer Licenciante, Você deve, na medida do razoável, - remover da Obra Coletiva qualquer referência a este - Licenciante ou Autor Original, conforme solicitado. Se você - criar uma Obra Derivada, em havendo notificação de qualquer - Licenciante, Você deve, na medida do razoável, remover da Obra - Derivada qualquer referência a este Licenciante ou ao Autor - Original, conforme solicitado. - 2. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais uma - Obra Derivada somente sob os termos desta Licença, ou de uma - versão posterior desta licença com os mesmos Elementos da - Licença desta licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos Elementos - da Licença desta Licença (por exemplo, Atribuição, Uso Não - Comercial, Compartilhamento pela Mesma Licença Japão). Você - deve incluir uma cópia desta licença ou de outra licença - especificada na sentença anterior, ou o Identificador - Uniformizado de Recursos (Uniform Resource Identifier) para - esta licença ou de outra licença especificada na sentença - anterior, com cada cópia ou gravação de cada Obra Derivada que - Você distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais. Você não poderá - oferecer ou impor quaisquer termos sobre a Obra Derivada que - alterem ou restrinjam os termos desta Licença ou o exercício - dos direitos aqui concedidos aos destinatários, e Você deverá - manter intactas todas as informações que se refiram a esta - Licença e à exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou executar - publicamente por meios digitais a Obra Derivada com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra Derivada quando incorporada em - uma Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - 3. Você não poderá exercer nenhum dos direitos acima concedidos a - Você na Seção 3 de qualquer maneira que seja predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. A troca da Obra por outros - materiais protegidos por direito autoral através de - compartilhamento digital de arquivos ou de outras formas não - deverá ser considerada como intencionada ou direcionada à - obtenção de vantagens comerciais ou compensação monetária - privada, desde que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas por direito - de autor. - 4. Se Você distribuir, exibir publicamente, executar publicamente - ou executar publicamente por meios digitais a Obra ou qualquer - Obra Derivada ou Obra Coletiva, Você deve manter intactas - todas as informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável com relação - ao meio ou mídia que Você está utilizando, através da - veiculação do nome (ou pseudônimo, se for o caso) do Autor - Original, se fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de Recursos - (URI) que o Licenciante especificar para estar associado à - Obra, se houver, exceto se o URI não se referir ao aviso de - direitos autorais ou à informação sobre o regime de - licenciamento da Obra; e no caso de Obra Derivada, crédito - identificando o uso da Obra na Obra Derivada (exemplo: - "Tradução Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal crédito pode - ser implementado de qualquer forma razoável; entretanto, no - caso de Obra Derivada ou Obra Coletiva, este crédito aparecerá - no mínimo onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto este outro - crédito de autoria comparável. - 5. De modo a tornar claras estas disposições, quando uma Obra for - uma composição musical: - 1. Royalties e execução pública. O Licenciante reserva o seu - direito exclusivo de coletar, seja individualmente ou - através de entidades coletoras de direitos de execução - (por exemplo, ECAD, ASCAP, BMI, SESAC), o valor dos seus - direitos autorais pela execução pública da obra ou - execução pública digital (por exemplo, webcasting) da - Obra se esta execução for predominantemente intencionada - ou direcionada à obtenção de vantagem comercial ou - compensação monetária privada. - 2. Royalties e Direitos fonomecânicos. O Licenciante reserva - o seu direito exclusivo de coletar, seja individualmente - ou através de uma entidade designada como seu agente (por - exemplo, a agência Harry Fox), royalties relativos a - quaisquer gravações que Você criar da Obra (por exemplo, - uma versão “coverâ€) e distribuir, conforme as disposições - aplicáveis de direito autoral, se a distribuição feita - por Você de versão “cover†for predominantemente - intencionada ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. - 6. Direitos de Execução Digital pela Internet (Webcasting) e - royalties. De modo a evitar dúvidas, quando a Obra for uma - gravação de som, o Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através de entidades - coletoras de direitos de execução (por exemplo, SoundExchange - ou ECAD), royalties e direitos autorais pela execução digital - pública (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a execução - digital pública feita por Você for predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. - 5. Declarações, Garantias e Exoneração - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO PELAS PARTES - POR ESCRITO, O LICENCIANTE OFERECE A OBRA “NO ESTADO EM QUE SE - ENCONTRA†(AS IS) E NÃO PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES - DE QUALQUER ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÃCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, INCLUINDO, SEM - LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A TITULARIDADE DA OBRA, - ADEQUAÇÃO PARA QUAISQUER PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU - INEXISTÊNCIA DE QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA - OU AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS IMPLÃCITAS, - ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. - 6. Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA PELA LEI - APLICÃVEL, EM NENHUMA CIRCUNSTÂNCIA O LICENCIANTE SERà RESPONSÃVEL - PARA COM VOCÊ POR QUAISQUER DANOS, ESPECIAIS, INCIDENTAIS, - CONSEQUENCIAIS, PUNITIVOS OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU - DO USO DA OBRA, MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. - 7. Terminação - 1. Esta Licença e os direitos aqui concedidos terminarão - automaticamente no caso de qualquer violação dos termos desta - Licença por Você. Pessoas físicas ou jurídicas que tenham - recebido Obras Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças terminadas desde - que tais pessoas físicas ou jurídicas permaneçam em total - cumprimento com essas licenças. As Seções 1, 2, 5, 6, 7 e 8 - subsistirão a qualquer terminação desta Licença. - 2. Sujeito aos termos e condições dispostos acima, a licença aqui - concedida é perpétua (pela duração do direito autoral - aplicável à Obra). Não obstante o disposto acima, o - Licenciante reserva-se o direito de difundir a Obra sob termos - diferentes de licença ou de cessar a distribuição da Obra a - qualquer momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta Licença (ou de - qualquer outra licença que tenha sido concedida sob os termos - desta Licença, ou que deva ser concedida sob os termos desta - Licença) e esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. - 8. Outras Disposições - 1. Cada vez que Você distribuir ou executar publicamente por - meios digitais a Obra ou uma Obra Coletiva, o Licenciante - oferece ao destinatário uma licença da Obra nos mesmos termos - e condições que a licença concedida a Você sob esta Licença. - 2. Cada vez que Você distribuir ou executar publicamente por - meios digitais uma Obra Derivada, o Licenciante oferece ao - destinatário uma licença à Obra original nos mesmos termos e - condições que foram concedidos a Você sob esta Licença. - 3. Se qualquer disposição desta Licença for tida como inválida ou - não-executável sob a lei aplicável, isto não afetará a - validade ou a possibilidade de execução do restante dos termos - desta Licença e, sem a necessidade de qualquer ação adicional - das partes deste acordo, tal disposição será reformada na - mínima extensão necessária para tal disposição tornar-se - válida e executável. - 4. Nenhum termo ou disposição desta Licença será considerado - renunciado e nenhuma violação será considerada consentida, a - não ser que tal renúncia ou consentimento seja feito por - escrito e assinado pela parte que será afetada por tal - renúncia ou consentimento. - 5. Esta Licença representa o acordo integral entre as partes com - respeito à Obra aqui licenciada. Não há entendimentos, acordos - ou declarações relativas à Obra que não estejam especificadas - aqui. O Licenciante não será obrigado por nenhuma disposição - adicional que possa aparecer em quaisquer comunicações - provenientes de Você. Esta Licença não pode ser modificada sem - o mútuo acordo, por escrito, entre o Licenciante e Você. - -Importante - - O Creative Commons não é uma parte desta Licença e não presta qualquer - garantia relacionada à Obra. O Creative Commons não será responsável - perante Você ou qualquer outra parte por quaisquer danos, incluindo, - sem limitação, danos gerais, especiais, incidentais ou consequentes, - originados com relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se identificado - como o Licenciante, ele deverá ter todos os direitos e obrigações do - Licenciante. - - Exceto para o propósito delimitado de indicar ao público que a Obra é - licenciada sob a CCPL (Licença Pública Creative Commons), nenhuma parte - deverá utilizar a marca "Creative Commons" ou qualquer outra marca ou - logo relacionado ao Creative Commons sem consentimento prévio e por - escrito do Creative Commons. Qualquer uso permitido deverá ser de - acordo com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de outro - modo disponibilizadas periodicamente mediante solicitação. - - O Creative Commons pode ser contactado pelo endereço: - [802]http://creativecommons.org/. - -F.2. A Licença do MIT - - Direitos autorais © 1999-2022 Gerard Beekmans - - Permissão é aqui concedida, gratuitamente, para qualquer pessoa que - obtenha uma cópia deste software e arquivos de documentação associados - (o "Software"), para lidar com o Software sem restrição, incluindo, sem - limitação, os direitos para usar, copiar, modificar, mesclar, publicar, - distribuir, sublicenciar, e (ou) vender cópias do Software, e para - permitir para as pessoas para quem o Software é fornecido para fazer o - mesmo, sujeito às seguintes condições: - - O aviso de direitos autorais acima e este aviso de permissão deveria - ser incluído em todas as cópias ou porções substanciais do Software. - - O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE ENCONTRAâ€, SEM GARANTIAS DE - QUALQUER ESPÉCIE, EXPLÃCITAS OU IMPLÃCITAS, INCLUINDO, PORÉM NÃO - LIMITADA A, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM - PROPÓSITO PARTICULAR E NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS - AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÃVEIS POR - QUAISQUER ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO - DE CONTRATO, ATO ILÃCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE. - -F.3. A Licença de Documentação Livre GNU - - Direitos autorais © 1999-2022 Jamenson Espindula - - Versão 1.3, 03 de novembro de 2008 - - Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ - - A qualquer pessoa é permitido copiar e distribuir cópias literais deste - documento de licença, porém modificá-lo não é permitido. - 1. PREÂMBULO - O propósito desta licença é tornar um manual, livro de texto, ou - outro documento funcional e útil livre no sentido da liberdade: - para assegurar a qualquer pessoa a liberdade efetiva para copiar e - redistribuí-lo, com ou sem modificações, ambos comercialmente ou - não comercialmente. Secundariamente, esta Licença preserva para o - autor e editor uma maneira de obter crédito pelos seus trabalhos, - ao mesmo tempo não sendo considerado responsável por modificações - feitas por outros. Esta Licença é uma espécie de “copyleft†- (“esquerdos autoraisâ€), o que significa que trabalhos derivados do - documento devem necessariamente eles mesmos serem livres no mesmo - sentido. Ela complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software livre. Nós - projetamos esta Licença para utilizá-la para manuais para software - livre, porque software livre precisa de documentação livre: um - programa livre deveria vir com manuais provendo as mesmas - liberdades que o software provê. Porém esta Licença não é limitada - a manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de assunto ou se o - trabalho textual for publicado como um livro impresso. Nós - recomendamos esta Licença principalmente para trabalhos cujo - propósito seja instrução ou referência. - 2. APLICABILIDADE E DEFINIÇÕES - Esta Licença se aplica a qualquer manual ou outro trabalho, em - qualquer meio, que contenha um aviso colocado pelo detentor dos - direitos autorais dizendo que ele pode ser distribuído sob os - termos desta Licença. Tal aviso concede uma licença mundial, livre - de patente, ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documentoâ€, abaixo, se refere a - quaisquer desses manuais ou trabalhos. Qualquer membro do publico é - um titular da licença, e é mencionado como “vocêâ€. Você aceita a - licença se você copiar, modificar ou distribuir o trabalho em uma - forma que exija permissão sob lei de direitos autorais. Uma “Versão - Modificada†do Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, ou com - modificações e/ou traduzido em outra língua. Uma “Seção Secundária†- é um apêndice nomeado ou uma seção pré-textual do Documento que - lida exclusivamente com o relacionamento dos editores ou autores do - Documento para com o assunto global do Documento (ou com questões - relacionadas) e não contém nada que possa se conformar diretamente - com aquele assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode explanar - nada acerca de cálculos matemáticos). O relacionamento poderia ser - uma questão de conexão histórica com o assunto ou com questões - relacionadas, ou de posicionamento legal, comercial, filosófico, - ético ou político respeitante a eles. As “Seções Invariantes†são - certas Seções Secundárias cujos títulos são projetados, como sendo - aqueles de Seções Invariantes, no aviso que diz que o Documento é - publicado sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está autorizada a - ser designada como Invariante. O Documento pode conter zero Seções - Invariantes. Se o Documento não identifica quaisquer Seções - Invariantes, então não existe nenhuma. Os “Textos de Capa†são - certas passagens curtas de texto que são listadas, como Textos de - Primeira Capa ou Textos de Quarta-Capa, no aviso que diz que o - Documento é publicado sob esta Licença. Um Texto de Primeira Capa - pode ter no máximo cinco (05) palavras, e um Texto de Quarta Capa - pode ter no máximo vinte e cinco (25) palavras. Uma cópia - “Transparente†do Documento significa uma cópia legível por - máquina, representada em um formato cuja especificação está - disponível para o público em geral, que é adequada para revisar o - documento diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura genéricos ou - (para desenhos) algum editor de desenho disponível amplamente, e - que seja adequado para entrada a formatadores de texto ou para - tradução automática a uma variedade de formatos próprios para - entrada a formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de marcação, ou - ausência de linguagem de marcação, tenha sido organizada para - frustrar ou desencorajar modificações subsequentes por leitores, - não é Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. Uma cópia - que não é “Transparente†é chamada “Opacaâ€. Exemplos de formatos - adequados para cópias Transparentes incluem ASCII puro sem - marcações; formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; HTML simples - conformante com o padrão; PostScript ou PDF projetado para - modificação humana. Exemplos de formatos transparantes de imagens - incluem PNG, XCF e JPG. Formatos opacos incluem formatos - proprietários que podem ser lidos e editados somente por - processadores proprietários de palavra; SGML ou XML para os quais o - DTD e/ou as ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou PDF - produzidos por alguns processadores de palavra apenas para - propósitos de saída. A “Página de Título†significa, para um livro - impresso, a própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o material que - esta Licença exige para aparecer na página de título. Para - trabalhos em formatos que não tenham qualquer página de título como - tal, “Página de Título†significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o início do - corpo do texto. O “editor†significa qualquer pessoa ou entidade - que distribui cópias do Documento ao público. Uma seção “Intitulada - XYZ†significa uma subunidade nomeada do Documento cujo título ou é - precisamente XYZ ou contém XYZ entre parênteses seguinte ao texto - que traduz XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como “Agradecimentosâ€; - “Dedicatóriasâ€; “Patrocíniosâ€; ou “Históricoâ€). “Preservar o - Título†de tal seção quando você modificar o Documento significa - que ele permanece uma seção “Intitulada XYZ†de acordo com essa - definição. O Documento pode incluir Declarações de Garantia - próximas ao aviso que declara que esta Licença se aplica ao - Documento. Essas Declarações de Garantia são consideradas como - inclusas por referência nesta Licença, porém somente com relação à - negação de garantias: qualquer outra implicação que essas - Declarações de Garantia possam ter é inválida e não tem efeito - sobre o significado desta Licença. - 3. CÓPIA LITERAL - Você pode copiar e distribuir o Documento em qualquer meio, ambos - comercialmente e não comercialmente, contanto que esta Licença, os - avisos de direitos autorais, e o aviso de licença dizendo que esta - Licença se aplica ao Documento estejam reproduzidas em todas as - cópias, e que você não adiciona quaisquer outras condições, - quaisquer que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou distribuir. - Entretanto, você pode aceitar remuneração em troca das cópias. Se - você distribui um número de cópias grande o suficiente, você deve - necessariamente também seguir as condições na seção três (3). Você - também pode ceder cópias, sob as mesmas condições declaradas acima, - e você pode publicamente exibir cópias. - 4. CÓPIAS EM QUANTIDADE - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número maior que - cem (100), e o aviso de licença do Documento exigir Textos de Capa, - você deve necessariamente encartar as cópias em capas que - transportem, claramente e legivelmente, todos estes Textos de Capa: - Textos de Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente também - claramente e legivelmente identificar você como o editor dessas - cópias. A capa frontal deve necessariamente apresentar o título - completo com todas as palavras do título igualmente proeminentes e - visíveis. Você pode adicionar outros materiais nas capas - adicionalmente. As cópias com modificações limitadas às capas, - tanto quanto preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em relação a - outros aspectos. Se os textos exigidos para ambas as capas forem - muito volumosos para caber legivelmente, você deveria colocar os - primeiros listados (tantos quantos caibam razoavelmente) na capa - atual, e continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em número maior - que cem (100), você deve necessariamente ou incluir uma cópia - Transparente, legível por máquina, junto com cada cópia Opaca, ou - declarar, na ou com cada cópia Opaca, uma localização de rede de - computador, a partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de padrão - público, uma cópia Transparente completa do Documento, livre do - material adicionado. Se você se utilizar da última opção, você deve - necessariamente adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, para se - assegurar que essa cópia Transparente permanecerá então acessível - na localização declarada até pelo menos um ano após a última vez - que você distribuiu uma cópia Opaca (diretamente ou por intermédio - dos seus agentes ou varejistas) daquela edição ao público. É - pedido, mas não exigido, que você contate os autores do Documento - bem antes de redistribuir qualquer número grande de cópias, para - dá-los a oportunidade de lhe fornecer uma versão atualizada do - Documento. - 5. MODIFICAÇÕES - Você pode copiar e distribuir uma Versão Modificada do Documento - sob as condições das seções dois (2) e três (3) acima, contanto que - você publique a Versão Modificada precisamente sob esta Licença, - com a Versão Modificada preenchendo a função do Documento, portanto - licenciando a distribuição e modificação da Versão Modificada a - quem quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: - 1. Utilize na Página de Título (e nas capas, se existentes) um - título distinto daquele do Documento, e daqueles das versões - prévias (as quais deveriam, se existiu alguma, serem listadas - na seção Histórico do Documento). Você pode utilizar o mesmo - título que uma versão prévia, se o editor original daquela - versão conceder permissão. - 2. Liste na Página de Título, como autores, uma ou mais pessoas - ou entidades responsáveis pela autoria das modificações na - Versão Modificada, junto com ao menos cinco dos autores - principais do Documento (todos os autores principais, se tiver - menos que cinco), a menos que eles liberem você dessa - exigência. - 3. Declare na Página de Título o nome do editor da Versão - Modificada, como o editor. - 4. Preserve todos os avisos de direitos autorais do Documento. - 5. Adicione um aviso apropriado de direitos autorais para suas - modificações, adjacente aos outros avisos de direitos - autorais. - 6. Inclua, imediatamente após os avisos de direitos autorais, um - aviso de licença concedendo ao público permissão para utilizar - a Versão Modificada sob os termos desta Licença, na forma - mostrada no Adendo abaixo. - 7. Preserve, naquele aviso de licença, as listas completas de - Seções Invariantes e Textos de Capa exigidos dados no aviso de - licença do Documento. - 8. Inclua uma cópia inalterada desta Licença. - 9. Preserve a seção intitulada “Históricoâ€, Preserve seu Título, - e adicione a ele um item declarando ao menos o título, ano, - novos autores, e editor da Versão Modificada, conforme dado na - Página de Título. Se não existir uma seção intitulada - “Histórico†no Documento, crie uma declarando o título, ano, - autores, e editor do Documento, conforme dado em sua Página de - Título, então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. - 10. Preserve a localização de rede, se existente, dada no - Documento para acesso público a uma cópia Transparente do - Documento, e da mesma forma as localizações de rede dadas no - Documento para versões prévias nas quais foi baseado. Essas - podem ser colocadas na seção “Históricoâ€. Você pode omitir uma - localização de rede para um trabalho que foi publicado nos - últimos quatro anos anteriores à publicação do próprio do - Documento, ou se o editor original da versão à qual a - localização de rede se refere conceder permissão. - 11. Para cada seção Intitulada “Agradecimentos†ou “Dedicatóriasâ€, - Preserve o Título da seção, e preserve na seção toda a - substância e tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. - 12. Preserve todas as Seções Invariantes do Documento, inalteradas - em seus textos e em seus títulos. Os números de Seção ou o - equivalente não são considerados parte dos títulos de seção. - 13. Delete quaisquer seções Intituladas “Patrocíniosâ€. Tal seção - não pode ser incluída na Versão Modificada. - 14. Não reintitule qualquer seção existente para Intitulada - “Patrocínios†ou para conflitar no título com qualquer Seção - Invariante. - 15. Preserve quaisquer Declarações de Garantia. - Se a Versão Modificada incluir novas seções pré textuais ou - apêndices que se qualifiquem como Seções Secundárias e não - contenham material copiado a partir do Documento, você pode, a sua - escolha, designar algumas ou todas essas seções como Invariantes. - Para fazer isso, adicione seus títulos à lista das Seções - Invariantes no aviso de licença da Versão Modificada. Esses títulos - devem necessariamente serem distintos de quaisquer outros títulos - de seções. Você pode adicionar uma seção Intitulada “Patrocíniosâ€, - contanto que ela não contenha nada além de patrocínios da sua - Versão Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi aprovado - por uma organização como a definição autorizativa de um padrão. - Você pode adicionar uma passagem de até cinco palavras, como um - Texto de Primeira Capa, e uma passagem de até vinte e cinco - palavras, como um Texto de Quarta Capa, ao final da lista dos - Textos de Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer uma - entidade. Se o Documento já inclui um texto de capa para a mesma - capa, previamente adicionado por você ou por acordo feito pela - mesma entidade pela qual você está atuando, você não pode adicionar - outro; porém você pode substituir o antigo, na permissão explícita - do editor prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão para - utilizar seus nomes para publicidade para ou para afirmar ou - implicar patrocínio de qualquer Versão Modificada. - 6. COMBINANDO DOCUMENTOS - Você pode combinar o Documento com outros documentos publicados sob - esta Licença, sob os termos definidos na seção quatro (4) acima - para versões modificadas, contanto que você inclua na combinação - todas as Seções Invariantes de todos os documentos originais, não - modificados, e listá-los todos como Seções Invariantes do seu - trabalho combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado precisa - conter somente uma cópia desta Licença, e múltiplas Seções - Invariantes idênticas podem ser substituídas por uma cópia única. - Se existirem múltiplas Seções Invariantes com o mesmo nome, mas - conteúdos diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do autor ou - editor original daquela seção se conhecido, ou, do contrário, um - número único. Faça o mesmo ajuste aos títulos da seção na lista de - Seções Invariantes no aviso de licença do trabalho combinado. Na - combinação, você deve necessariamente combinar quaisquer seções - Intituladas “Histórico†nos vários documentos originais, formando - uma seção Intitulada “Históricoâ€; de mesma maneira, combine - quaisquer seções Intituladas “Agradecimentosâ€, e quaisquer seções - Intituladas “Dedicatóriasâ€. Você deve necessariamente deletar todas - as seções Intituladas “Patrocíniosâ€. - 7. COLEÇÕES DE DOCUMENTOS - Você pode produzir uma coleção consistente do Documento e outros - documentos publicados sob esta Licença, e substitua as cópias - individuais desta Licença nos vários documentos por uma cópia única - que esteja incluída na coleção, contanto que você siga as regras - desta Licença para cópias literais de cada um dos documentos em - todos os outros aspectos. Você pode extrair um documento único de - tal coleção, e distribuí-lo individualmente sob esta Licença, - contanto que você insira uma cópia desta Licença no documento - extraído, e siga esta Licença em todos os outros aspectos relativos - à cópias literais daquele documento. - 8. AGREGAÇÃO COM TRABALHOS INDEPENDENTES - Uma compilação do Documento ou seus derivados com outros documentos - separados e independentes ou trabalhos, dentro ou junto a volume de - armazenamento ou meio de distribuição, é chamado em “agregado†se - os direitos autorais resultantes da compilação não forem utilizados - para limitar os direitos legais dos usuários da compilação além do - que os trabalhos individuais permitem. Quando o Documento for - incluído em um agregado, esta Licença não se aplica aos outros - trabalhos no agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa da seção - três (3) for aplicável a essas cópias do Documento, então se o - Documento for menor que a metade do agregado inteiro, os Textos de - Capa do Documento podem ser colocados em capas que encartem o - Documento dentro do agregado, ou o equivalente eletrônico de capas - se o Documento estiver em formato eletrônico. Do contrário, eles - devem necessariamente aparecer nas capas impressas que encartem o - agregado inteiro. - 9. TRADUÇÃO - Tradução é considerada um tipo de modificação, de forma que você - pode distribuir traduções do Documento sob os termos da seção - quatro (4). A substituição de Seções Invariantes por traduções - exige permissão especial de seus detentores dos direitos autorais, - porém você pode incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas Seções - Invariantes. Você pode incluir uma tradução desta Licença, e todos - os avisos de licença no Documento, e quaisquer Declarações de - Garantia, contanto que você inclua também a versão original em - Inglês desta Licença e as versões originais daqueles avisos e - declarações. No caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a versão original - prevalecerá. Se uma seção no Documento for Intitulada - “Agradecimentosâ€, “Dedicatóriasâ€, ou “Históricoâ€, a exigência - (seção 4) de Preservar seu Título (seção 1) tipicamente exigirá a - modificação do título atual. - 10. FINALIZAÇÃO - Você não pode copiar, modificar, sublicenciar, ou distribuir o - Documento, exceto conforme expressamente provido sob esta Licença. - Qualquer tentativa clandestina de copiar, modificar, sublicenciar, - ou distribuir o Documento é inválida, e automaticamente finalizará - seus direitos sob esta Licença. Entretanto, se você cessar todas as - violações a esta Licença, então a sua licença oriunda de um - detentor de direitos autorais em particular está restabelecida (a) - provisoriamente, a menos e até que o detentor dos direitos autorais - explicita e finalmente cancele sua licença; e (b) permanentemente, - se o detentor dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) dias após - a cessação. Além disso, a sua licença oriunda de um detentor de - direitos autorais em particular está restabelecida permanentemente - se o detentor dos direitos autorais notificar você sobre a violação - por algum meio razoável, essa for a primeira vez que você recebeu - um aviso de violação desta Licença (para qualquer trabalho) oriunda - daquele detentor de direitos autorais, e você sanar a violação - antes de decorridos trinta (30) dias após o seu recebimento do - aviso. A finalização dos seus direitos sob esta seção não finaliza - as licenças de varejistas que tenham recebido cópias ou direitos de - você sob esta Licença. Se os seus direitos tiverem sido finalizados - e não permanentemente restabelecidos, o recebimento de uma cópia de - algum ou de tudo do mesmo material não concede a você direitos de - utilizá-lo. - 11. REVISÕES FUTURAS DESTA LICENÇA - A Free Software Foundation pode publicar novas, revisadas versões - da Licença de Documentação Livre GNU de tempos em tempos. Tais - novas versões serão similares na essência à presente versão, porém - podem diferir em detalhes para abarcar novos problemas ou assuntos. - Veja-se http://www.gnu.org/copyleft/. Para cada versão da Licença é - dado um número distintivo de versão. Se o Documento especifica que - uma versão numerada em particular desta Licença “ou qualquer versão - posterior†se aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão posterior - que tenha sido publicada (não como um rascunho) pela Free Software - Foundation. Se o Documento não especifica um número de versão desta - Licença, você pode escolher qualquer versão já publicada (não como - um rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões futuras - desta Licença podem ser utilizadas, essa declaração pública do - procurador de aceitação de uma versão permanentemente autoriza você - a escolher aquela versão para o Documento. - 12. RELICENCIAMENTO - “Sítio de Colaboração Massiva Multi autor†(ou “Sítio MMCâ€) - significa qualquer servidor da Rede Mundial de Computadores que - publica trabalhos sujeitos a direitos autorais e também provê - facilidades proeminentes para qualquer pessoa editar esses - trabalhos. Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva Multi autor†(ou - “MMCâ€) contida no sítio significa qualquer conjunto de trabalhos - sujeitos a direitos autorais assim publicados no sítio MMC. - “CC-BY-SA†significa a licença Creative Commons Attribution-Share - Alike 3.0 publicada pela Creative Commons Corporation, uma - corporação sem fins lucrativos com seu domicílio empresarial - situado em São Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais dessa licença - publicadas pela mesma organização. “Incorporar†significa publicar - ou republicar um Documento, no todo ou em parte, como parte de - outro Documento. Um MMC é “elegível para relicenciamento†se ele - for licenciado sob esta Licença, e se todos os trabalhos que foram - primeiro publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em parte, no MMC, - (1) não tinham textos de capa ou seções invariantes; e (2) estavam - assim incorporados antes de 01 de novembro de 2008. O operador de - um Sítio MMC pode republicar um MMC contido no sítio sob CC-BY-SA, - no mesmo sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. - - ADENDO: Como utilizar esta Licença para seus documentos - - Para utilizar esta Licença em um documento que você escreveu, inclua - uma cópia da Licença no documento e coloque os seguintes avisos de - direitos autorais e licença pouco depois da página de título: - - Direitos autorais (C) ano seu nome. - Permissão é concedida para copiar, distribuir e/ou modificar este - documento sob os termos da Licença de Documentação Livre GNU, Versão - 1.3 ou qualquer versão posterior publicada pela Free Software - Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem - Textos de Quarta Capa. Uma cópia da licença está inclusa na seção - intitulada ``Licença de Documentação Livre GNU''. - - - Se você tiver Seções Invariantes, Textos de Primeira Capa e Textos de - Quarta Capa, substitua a linha ``sem ... Capa'' por isto: - - com as Seções Invariantes sendo liste seus títulos, com os - Textos de Primeira Capa sendo lista, e com os Textos de Quarta - Capa sendo lista. - - - Se você tiver Seções Invariantes sem Textos de Capa, ou alguma outra - combinação dos três, mescle essas duas alternativas para adequar a - situação. - - Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em paralelo, sob - sua escolha de licença de software livre, tal como a Licença Pública - Geral GNU, para permitir seu uso em software livre. - -Ãndice Remissivo - - * Acl: [803]Acl-2.3.1 - * Attr: [804]Attr-2.5.1 - * Autoconf: [805]Autoconf-2.71 - * Automake: [806]Automake-1.16.5 - * Bash: [807]Bash-5.1.16 - + tools: [808]Bash-5.1.16 - * Bc: [809]Bc-5.2.2 - * Binutils: [810]Binutils-2.38 - + tools, pass 1: [811]Binutils-2.38 - Passagem 1 - + tools, pass 2: [812]Binutils-2.38 - Passagem 2 - * Bison: [813]Bison-3.8.2 - + tools: [814]Bison-3.8.2 - * Bootscripts: [815]LFS-Bootscripts-20210608 - + usage: [816]Uso e Configuração do Script de Inicialização do - System V - * Bzip2: [817]Bzip2-1.0.8 - * Check: [818]Check-0.15.2 - * Coreutils: [819]Coreutils-9.0 - + tools: [820]Coreutils-9.0 - * DejaGNU: [821]DejaGNU-1.6.3 - * Diffutils: [822]Diffutils-3.8 - + tools: [823]Diffutils-3.8 - * E2fsprogs: [824]E2fsprogs-1.46.5 - * Eudev: [825]Eudev-3.2.11 - + configuring: [826]Configurando Eudev - * Expat: [827]Expat-2.4.6 - * Expect: [828]Expect-5.45.4 - * File: [829]File-5.41 - + tools: [830]File-5.41 - * Findutils: [831]Findutils-4.9.0 - + tools: [832]Findutils-4.9.0 - * Flex: [833]Flex-2.6.4 - * Gawk: [834]Gawk-5.1.1 - + tools: [835]Gawk-5.1.1 - * GCC: [836]GCC-11.2.0 - + tools, libstdc++ pass 1: [837]Libstdc++ oriundo de GCC-11.2.0, - Passagem 1 - + tools, libstdc++ pass 2: [838]Libstdc++ oriundo de GCC-11.2.0, - Passagem 2 - + tools, pass 1: [839]GCC-11.2.0 - Passagem 1 - + tools, pass 2: [840]GCC-11.2.0 - Passagem 2 - * GDBM: [841]GDBM-1.23 - * Gettext: [842]Gettext-0.21 - + tools: [843]Gettext-0.21 - * Glibc: [844]Glibc-2.35 - + tools: [845]Glibc-2.35 - * GMP: [846]GMP-6.2.1 - * Gperf: [847]Gperf-3.1 - * Grep: [848]Grep-3.7 - + tools: [849]Grep-3.7 - * Groff: [850]Groff-1.22.4 - * GRUB: [851]GRUB-2.06 - * Gzip: [852]Gzip-1.11 - + tools: [853]Gzip-1.11 - * Iana-Etc: [854]Iana-Etc-20220207 - * Inetutils: [855]Inetutils-2.2 - * Intltool: [856]Intltool-0.51.0 - * IPRoute2: [857]IPRoute2-5.16.0 - * Kbd: [858]Kbd-2.4.0 - * Kmod: [859]Kmod-29 - * Less: [860]Less-590 - * Libcap: [861]Libcap-2.63 - * Libelf: [862]Libelf oriundo de Elfutils-0.186 - * libffi: [863]Libffi-3.4.2 - * Libpipeline: [864]Libpipeline-1.5.5 - * Libtool: [865]Libtool-2.4.6 - * Linux: [866]Linux-5.16.9 - + tools, API headers: [867]Cabeçalhos da API do Linux-5.16.9 - * M4: [868]M4-1.4.19 - + tools: [869]M4-1.4.19 - * Make: [870]Make-4.3 - + tools: [871]Make-4.3 - * Man-DB: [872]Man-DB-2.10.1 - * Man-pages: [873]Man-pages-5.13 - * Meson: [874]Meson-0.61.1 - * MPC: [875]MPC-1.2.1 - * MPFR: [876]MPFR-4.1.0 - * Ncurses: [877]Ncurses-6.3 - + tools: [878]Ncurses-6.3 - * Ninja: [879]Ninja-1.10.2 - * OpenSSL: [880]OpenSSL-3.0.1 - * Patch: [881]Patch-2.7.6 - + tools: [882]Patch-2.7.6 - * Perl: [883]Perl-5.34.0 - + tools: [884]Perl-5.34.0 - * Pkgconfig: [885]Pkg-config-0.29.2 - * Procps-ng: [886]Procps-ng-3.3.17 - * Psmisc: [887]Psmisc-23.4 - * Python: [888]Python-3.10.2 - + temporary: [889]Python-3.10.2 - * rc.site: [890]O Arquivo rc.site - * Readline: [891]Readline-8.1.2 - * Sed: [892]Sed-4.8 - + tools: [893]Sed-4.8 - * Shadow: [894]Shadow-4.11.1 - + configuring: [895]Configurando Shadow - * Sysklogd: [896]Sysklogd-1.5.1 - + configuring: [897]Configurando Sysklogd - * Sysvinit: [898]Sysvinit-3.01 - + configuring: [899]Configurando o Sysvinit - * Tar: [900]Tar-1.34 - + tools: [901]Tar-1.34 - * Tcl: [902]Tcl-8.6.12 - * Texinfo: [903]Texinfo-6.8 - + temporary: [904]Texinfo-6.8 - * Udev: - + usage: [905]Visão Geral do Manuseio de Dispositivos e Módulos - * Util-linux: [906]Util-linux-2.37.4 - + tools: [907]Util-linux-2.37.4 - * Vim: [908]Vim-8.2.4383 - * XML::Parser: [909]XML::Parser-2.46 - * Xz: [910]Xz-5.2.5 - + tools: [911]Xz-5.2.5 - * Zlib: [912]Zlib-1.2.11 - * zstd: [913]Zstd-1.5.2 - - * [: [914]Coreutils-9.0 -- - * 2to3: [915]Python-3.10.2 - * accessdb: [916]Man-DB-2.10.1 -- - * aclocal: [917]Automake-1.16.5 -- - * aclocal-1.16: [918]Automake-1.16.5 -- - * addftinfo: [919]Groff-1.22.4 -- - * addpart: [920]Util-linux-2.37.4 -- - * addr2line: [921]Binutils-2.38 -- - * afmtodit: [922]Groff-1.22.4 -- - * agetty: [923]Util-linux-2.37.4 -- - * apropos: [924]Man-DB-2.10.1 -- - * ar: [925]Binutils-2.38 -- - * as: [926]Binutils-2.38 -- - * attr: [927]Attr-2.5.1 -- - * autoconf: [928]Autoconf-2.71 -- - * autoheader: [929]Autoconf-2.71 -- - * autom4te: [930]Autoconf-2.71 -- - * automake: [931]Automake-1.16.5 -- - * automake-1.16: [932]Automake-1.16.5 -- - * autopoint: [933]Gettext-0.21 -- - * autoreconf: [934]Autoconf-2.71 -- - * autoscan: [935]Autoconf-2.71 -- - * autoupdate: [936]Autoconf-2.71 -- - * awk: [937]Gawk-5.1.1 -- - * b2sum: [938]Coreutils-9.0 -- - * badblocks: [939]E2fsprogs-1.46.5 -- - * base64: [940]Coreutils-9.0 -- - * basename: [941]Coreutils-9.0 -- - * basenc: [942]Coreutils-9.0 -- - * bash: [943]Bash-5.1.16 -- - * bashbug: [944]Bash-5.1.16 -- - * bc: [945]Bc-5.2.2 -- - * bison: [946]Bison-3.8.2 -- - * blkdiscard: [947]Util-linux-2.37.4 -- - * blkid: [948]Util-linux-2.37.4 -- - * blkzone: [949]Util-linux-2.37.4 -- - * blockdev: [950]Util-linux-2.37.4 -- - * bootlogd: [951]Sysvinit-3.01 -- - * bridge: [952]IPRoute2-5.16.0 -- - * bunzip2: [953]Bzip2-1.0.8 -- - * bzcat: [954]Bzip2-1.0.8 -- - * bzcmp: [955]Bzip2-1.0.8 -- - * bzdiff: [956]Bzip2-1.0.8 -- - * bzegrep: [957]Bzip2-1.0.8 -- - * bzfgrep: [958]Bzip2-1.0.8 -- - * bzgrep: [959]Bzip2-1.0.8 -- - * bzip2: [960]Bzip2-1.0.8 -- - * bzip2recover: [961]Bzip2-1.0.8 -- - * bzless: [962]Bzip2-1.0.8 -- - * bzmore: [963]Bzip2-1.0.8 -- - * c++: [964]GCC-11.2.0 -- - * c++filt: [965]Binutils-2.38 -- - * cal: [966]Util-linux-2.37.4 -- - * capsh: [967]Libcap-2.63 -- - * captoinfo: [968]Ncurses-6.3 -- - * cat: [969]Coreutils-9.0 -- - * catman: [970]Man-DB-2.10.1 -- - * cc: [971]GCC-11.2.0 -- - * cfdisk: [972]Util-linux-2.37.4 -- - * chacl: [973]Acl-2.3.1 -- - * chage: [974]Shadow-4.11.1 -- - * chattr: [975]E2fsprogs-1.46.5 -- - * chcon: [976]Coreutils-9.0 -- - * chcpu: [977]Util-linux-2.37.4 -- - * checkmk: [978]Check-0.15.2 -- - * chem: [979]Groff-1.22.4 -- - * chfn: [980]Shadow-4.11.1 -- - * chgpasswd: [981]Shadow-4.11.1 -- - * chgrp: [982]Coreutils-9.0 -- - * chmem: [983]Util-linux-2.37.4 -- - * chmod: [984]Coreutils-9.0 -- - * choom: [985]Util-linux-2.37.4 -- - * chown: [986]Coreutils-9.0 -- - * chpasswd: [987]Shadow-4.11.1 -- - * chroot: [988]Coreutils-9.0 -- - * chrt: [989]Util-linux-2.37.4 -- - * chsh: [990]Shadow-4.11.1 -- - * chvt: [991]Kbd-2.4.0 -- - * cksum: [992]Coreutils-9.0 -- - * clear: [993]Ncurses-6.3 -- - * cmp: [994]Diffutils-3.8 -- - * col: [995]Util-linux-2.37.4 -- - * colcrt: [996]Util-linux-2.37.4 -- - * colrm: [997]Util-linux-2.37.4 -- - * column: [998]Util-linux-2.37.4 -- - * comm: [999]Coreutils-9.0 -- - * compile_et: [1000]E2fsprogs-1.46.5 -- - * corelist: [1001]Perl-5.34.0 -- - * cp: [1002]Coreutils-9.0 -- - * cpan: [1003]Perl-5.34.0 -- - * cpp: [1004]GCC-11.2.0 -- - * csplit: [1005]Coreutils-9.0 -- - * ctrlaltdel: [1006]Util-linux-2.37.4 -- - * ctstat: [1007]IPRoute2-5.16.0 -- - * cut: [1008]Coreutils-9.0 -- - * c_rehash: [1009]OpenSSL-3.0.1 -- - * date: [1010]Coreutils-9.0 -- - * dc: [1011]Bc-5.2.2 -- - * dd: [1012]Coreutils-9.0 -- - * deallocvt: [1013]Kbd-2.4.0 -- - * debugfs: [1014]E2fsprogs-1.46.5 -- - * dejagnu: [1015]DejaGNU-1.6.3 -- - * delpart: [1016]Util-linux-2.37.4 -- - * depmod: [1017]Kmod-29 -- - * df: [1018]Coreutils-9.0 -- - * diff: [1019]Diffutils-3.8 -- - * diff3: [1020]Diffutils-3.8 -- - * dir: [1021]Coreutils-9.0 -- - * dircolors: [1022]Coreutils-9.0 -- - * dirname: [1023]Coreutils-9.0 -- - * dmesg: [1024]Util-linux-2.37.4 -- - * dnsdomainname: [1025]Inetutils-2.2 -- - * du: [1026]Coreutils-9.0 -- - * dumpe2fs: [1027]E2fsprogs-1.46.5 -- - * dumpkeys: [1028]Kbd-2.4.0 -- - * e2freefrag: [1029]E2fsprogs-1.46.5 -- - * e2fsck: [1030]E2fsprogs-1.46.5 -- - * e2image: [1031]E2fsprogs-1.46.5 -- - * e2label: [1032]E2fsprogs-1.46.5 -- - * e2mmpstatus: [1033]E2fsprogs-1.46.5 -- - * e2scrub: [1034]E2fsprogs-1.46.5 -- - * e2scrub_all: [1035]E2fsprogs-1.46.5 -- - * e2undo: [1036]E2fsprogs-1.46.5 -- - * e4crypt: [1037]E2fsprogs-1.46.5 -- - * e4defrag: [1038]E2fsprogs-1.46.5 -- - * echo: [1039]Coreutils-9.0 -- - * egrep: [1040]Grep-3.7 -- - * eject: [1041]Util-linux-2.37.4 -- - * elfedit: [1042]Binutils-2.38 -- - * enc2xs: [1043]Perl-5.34.0 -- - * encguess: [1044]Perl-5.34.0 -- - * env: [1045]Coreutils-9.0 -- - * envsubst: [1046]Gettext-0.21 -- - * eqn: [1047]Groff-1.22.4 -- - * eqn2graph: [1048]Groff-1.22.4 -- - * ex: [1049]Vim-8.2.4383 -- - * expand: [1050]Coreutils-9.0 -- - * expect: [1051]Expect-5.45.4 -- - * expiry: [1052]Shadow-4.11.1 -- - * expr: [1053]Coreutils-9.0 -- - * factor: [1054]Coreutils-9.0 -- - * faillog: [1055]Shadow-4.11.1 -- - * fallocate: [1056]Util-linux-2.37.4 -- - * false: [1057]Coreutils-9.0 -- - * fdisk: [1058]Util-linux-2.37.4 -- - * fgconsole: [1059]Kbd-2.4.0 -- - * fgrep: [1060]Grep-3.7 -- - * file: [1061]File-5.41 -- - * filefrag: [1062]E2fsprogs-1.46.5 -- - * fincore: [1063]Util-linux-2.37.4 -- - * find: [1064]Findutils-4.9.0 -- - * findfs: [1065]Util-linux-2.37.4 -- - * findmnt: [1066]Util-linux-2.37.4 -- - * flex: [1067]Flex-2.6.4 -- - * flex++: [1068]Flex-2.6.4 -- - * flock: [1069]Util-linux-2.37.4 -- - * fmt: [1070]Coreutils-9.0 -- - * fold: [1071]Coreutils-9.0 -- - * free: [1072]Procps-ng-3.3.17 -- - * fsck: [1073]Util-linux-2.37.4 -- - * fsck.cramfs: [1074]Util-linux-2.37.4 -- - * fsck.ext2: [1075]E2fsprogs-1.46.5 -- - * fsck.ext3: [1076]E2fsprogs-1.46.5 -- - * fsck.ext4: [1077]E2fsprogs-1.46.5 -- - * fsck.minix: [1078]Util-linux-2.37.4 -- - * fsfreeze: [1079]Util-linux-2.37.4 -- - * fstab-decode: [1080]Sysvinit-3.01 -- - * fstrim: [1081]Util-linux-2.37.4 -- - * ftp: [1082]Inetutils-2.2 -- - * fuser: [1083]Psmisc-23.4 -- - * g++: [1084]GCC-11.2.0 -- - * gawk: [1085]Gawk-5.1.1 -- - * gawk-5.1.1: [1086]Gawk-5.1.1 -- - * gcc: [1087]GCC-11.2.0 -- - * gc-ar: [1088]GCC-11.2.0 -- - * gc-nm: [1089]GCC-11.2.0 -- - * gc-ranlib: [1090]GCC-11.2.0 -- - * gcov: [1091]GCC-11.2.0 -- - * gcov-dump: [1092]GCC-11.2.0 -- - * gcov-tool: [1093]GCC-11.2.0 -- - * gdbmtool: [1094]GDBM-1.23 -- - * gdbm_dump: [1095]GDBM-1.23 -- - * gdbm_load: [1096]GDBM-1.23 -- - * gdiffmk: [1097]Groff-1.22.4 -- - * gencat: [1098]Glibc-2.35 -- - * genl: [1099]IPRoute2-5.16.0 -- - * getcap: [1100]Libcap-2.63 -- - * getconf: [1101]Glibc-2.35 -- - * getent: [1102]Glibc-2.35 -- - * getfacl: [1103]Acl-2.3.1 -- - * getfattr: [1104]Attr-2.5.1 -- - * getkeycodes: [1105]Kbd-2.4.0 -- - * getopt: [1106]Util-linux-2.37.4 -- - * getpcaps: [1107]Libcap-2.63 -- - * getsubids: [1108]Shadow-4.11.1 -- - * gettext: [1109]Gettext-0.21 -- - * gettext.sh: [1110]Gettext-0.21 -- - * gettextize: [1111]Gettext-0.21 -- - * glilypond: [1112]Groff-1.22.4 -- - * gpasswd: [1113]Shadow-4.11.1 -- - * gperf: [1114]Gperf-3.1 -- - * gperl: [1115]Groff-1.22.4 -- - * gpinyin: [1116]Groff-1.22.4 -- - * gprof: [1117]Binutils-2.38 -- - * grap2graph: [1118]Groff-1.22.4 -- - * grep: [1119]Grep-3.7 -- - * grn: [1120]Groff-1.22.4 -- - * grodvi: [1121]Groff-1.22.4 -- - * groff: [1122]Groff-1.22.4 -- - * groffer: [1123]Groff-1.22.4 -- - * grog: [1124]Groff-1.22.4 -- - * grolbp: [1125]Groff-1.22.4 -- - * grolj4: [1126]Groff-1.22.4 -- - * gropdf: [1127]Groff-1.22.4 -- - * grops: [1128]Groff-1.22.4 -- - * grotty: [1129]Groff-1.22.4 -- - * groupadd: [1130]Shadow-4.11.1 -- - * groupdel: [1131]Shadow-4.11.1 -- - * groupmems: [1132]Shadow-4.11.1 -- - * groupmod: [1133]Shadow-4.11.1 -- - * groups: [1134]Coreutils-9.0 -- - * grpck: [1135]Shadow-4.11.1 -- - * grpconv: [1136]Shadow-4.11.1 -- - * grpunconv: [1137]Shadow-4.11.1 -- - * grub-bios-setup: [1138]GRUB-2.06 -- - * grub-editenv: [1139]GRUB-2.06 -- - * grub-file: [1140]GRUB-2.06 -- - * grub-fstest: [1141]GRUB-2.06 -- - * grub-glue-efi: [1142]GRUB-2.06 -- - * grub-install: [1143]GRUB-2.06 -- - * grub-kbdcomp: [1144]GRUB-2.06 -- - * grub-macbless: [1145]GRUB-2.06 -- - * grub-menulst2cfg: [1146]GRUB-2.06 -- - * grub-mkconfig: [1147]GRUB-2.06 -- - * grub-mkimage: [1148]GRUB-2.06 -- - * grub-mklayout: [1149]GRUB-2.06 -- - * grub-mknetdir: [1150]GRUB-2.06 -- - * grub-mkpasswd-pbkdf2: [1151]GRUB-2.06 -- - * grub-mkrelpath: [1152]GRUB-2.06 -- - * grub-mkrescue: [1153]GRUB-2.06 -- - * grub-mkstandalone: [1154]GRUB-2.06 -- - * grub-ofpathname: [1155]GRUB-2.06 -- - * grub-probe: [1156]GRUB-2.06 -- - * grub-reboot: [1157]GRUB-2.06 -- - * grub-render-label: [1158]GRUB-2.06 -- - * grub-script-check: [1159]GRUB-2.06 -- - * grub-set-default: [1160]GRUB-2.06 -- - * grub-setup: [1161]GRUB-2.06 -- - * grub-syslinux2cfg: [1162]GRUB-2.06 -- - * gunzip: [1163]Gzip-1.11 -- - * gzexe: [1164]Gzip-1.11 -- - * gzip: [1165]Gzip-1.11 -- - * h2ph: [1166]Perl-5.34.0 -- - * h2xs: [1167]Perl-5.34.0 -- - * halt: [1168]Sysvinit-3.01 -- - * head: [1169]Coreutils-9.0 -- - * hexdump: [1170]Util-linux-2.37.4 -- - * hostid: [1171]Coreutils-9.0 -- - * hostname: [1172]Inetutils-2.2 -- - * hpftodit: [1173]Groff-1.22.4 -- - * hwclock: [1174]Util-linux-2.37.4 -- - * i386: [1175]Util-linux-2.37.4 -- - * iconv: [1176]Glibc-2.35 -- - * iconvconfig: [1177]Glibc-2.35 -- - * id: [1178]Coreutils-9.0 -- - * idle3: [1179]Python-3.10.2 - * ifcfg: [1180]IPRoute2-5.16.0 -- - * ifconfig: [1181]Inetutils-2.2 -- - * ifnames: [1182]Autoconf-2.71 -- - * ifstat: [1183]IPRoute2-5.16.0 -- - * indxbib: [1184]Groff-1.22.4 -- - * info: [1185]Texinfo-6.8 -- - * infocmp: [1186]Ncurses-6.3 -- - * infotocap: [1187]Ncurses-6.3 -- - * init: [1188]Sysvinit-3.01 -- - * insmod: [1189]Kmod-29 -- - * install: [1190]Coreutils-9.0 -- - * install-info: [1191]Texinfo-6.8 -- - * instmodsh: [1192]Perl-5.34.0 -- - * intltool-extract: [1193]Intltool-0.51.0 -- - * intltool-merge: [1194]Intltool-0.51.0 -- - * intltool-prepare: [1195]Intltool-0.51.0 -- - * intltool-update: [1196]Intltool-0.51.0 -- - * intltoolize: [1197]Intltool-0.51.0 -- - * ionice: [1198]Util-linux-2.37.4 -- - * ip: [1199]IPRoute2-5.16.0 -- - * ipcmk: [1200]Util-linux-2.37.4 -- - * ipcrm: [1201]Util-linux-2.37.4 -- - * ipcs: [1202]Util-linux-2.37.4 -- - * irqtop: [1203]Util-linux-2.37.4 -- - * isosize: [1204]Util-linux-2.37.4 -- - * join: [1205]Coreutils-9.0 -- - * json_pp: [1206]Perl-5.34.0 -- - * kbdinfo: [1207]Kbd-2.4.0 -- - * kbdrate: [1208]Kbd-2.4.0 -- - * kbd_mode: [1209]Kbd-2.4.0 -- - * kill: [1210]Util-linux-2.37.4 -- - * killall: [1211]Psmisc-23.4 -- - * killall5: [1212]Sysvinit-3.01 -- - * klogd: [1213]Sysklogd-1.5.1 -- - * kmod: [1214]Kmod-29 -- - * last: [1215]Util-linux-2.37.4 -- - * lastb: [1216]Util-linux-2.37.4 -- - * lastlog: [1217]Shadow-4.11.1 -- - * ld: [1218]Binutils-2.38 -- - * ld.bfd: [1219]Binutils-2.38 -- - * ld.gold: [1220]Binutils-2.38 -- - * ldattach: [1221]Util-linux-2.37.4 -- - * ldconfig: [1222]Glibc-2.35 -- - * ldd: [1223]Glibc-2.35 -- - * lddlibc4: [1224]Glibc-2.35 -- - * less: [1225]Less-590 -- - * lessecho: [1226]Less-590 -- - * lesskey: [1227]Less-590 -- - * lex: [1228]Flex-2.6.4 -- - * lexgrog: [1229]Man-DB-2.10.1 -- - * lfskernel-5.16.9: [1230]Linux-5.16.9 -- - * libasan: [1231]GCC-11.2.0 -- - * libatomic: [1232]GCC-11.2.0 -- - * libcc1: [1233]GCC-11.2.0 -- - * libnetcfg: [1234]Perl-5.34.0 -- - * libtool: [1235]Libtool-2.4.6 -- - * libtoolize: [1236]Libtool-2.4.6 -- - * link: [1237]Coreutils-9.0 -- - * linux32: [1238]Util-linux-2.37.4 -- - * linux64: [1239]Util-linux-2.37.4 -- - * lkbib: [1240]Groff-1.22.4 -- - * ln: [1241]Coreutils-9.0 -- - * lnstat: [1242]IPRoute2-5.16.0 -- - * loadkeys: [1243]Kbd-2.4.0 -- - * loadunimap: [1244]Kbd-2.4.0 -- - * locale: [1245]Glibc-2.35 -- - * localedef: [1246]Glibc-2.35 -- - * locate: [1247]Findutils-4.9.0 -- - * logger: [1248]Util-linux-2.37.4 -- - * login: [1249]Shadow-4.11.1 -- - * logname: [1250]Coreutils-9.0 -- - * logoutd: [1251]Shadow-4.11.1 -- - * logsave: [1252]E2fsprogs-1.46.5 -- - * look: [1253]Util-linux-2.37.4 -- - * lookbib: [1254]Groff-1.22.4 -- - * losetup: [1255]Util-linux-2.37.4 -- - * ls: [1256]Coreutils-9.0 -- - * lsattr: [1257]E2fsprogs-1.46.5 -- - * lsblk: [1258]Util-linux-2.37.4 -- - * lscpu: [1259]Util-linux-2.37.4 -- - * lsipc: [1260]Util-linux-2.37.4 -- - * lsirq: [1261]Util-linux-2.37.4 -- - * lslocks: [1262]Util-linux-2.37.4 -- - * lslogins: [1263]Util-linux-2.37.4 -- - * lsmem: [1264]Util-linux-2.37.4 -- - * lsmod: [1265]Kmod-29 -- - * lsns: [1266]Util-linux-2.37.4 -- - * lto-dump: [1267]GCC-11.2.0 -- - * lzcat: [1268]Xz-5.2.5 -- - * lzcmp: [1269]Xz-5.2.5 -- - * lzdiff: [1270]Xz-5.2.5 -- - * lzegrep: [1271]Xz-5.2.5 -- - * lzfgrep: [1272]Xz-5.2.5 -- - * lzgrep: [1273]Xz-5.2.5 -- - * lzless: [1274]Xz-5.2.5 -- - * lzma: [1275]Xz-5.2.5 -- - * lzmadec: [1276]Xz-5.2.5 -- - * lzmainfo: [1277]Xz-5.2.5 -- - * lzmore: [1278]Xz-5.2.5 -- - * m4: [1279]M4-1.4.19 -- - * make: [1280]Make-4.3 -- - * makedb: [1281]Glibc-2.35 -- - * makeinfo: [1282]Texinfo-6.8 -- - * man: [1283]Man-DB-2.10.1 -- - * man-recode: [1284]Man-DB-2.10.1 -- - * mandb: [1285]Man-DB-2.10.1 -- - * manpath: [1286]Man-DB-2.10.1 -- - * mapscrn: [1287]Kbd-2.4.0 -- - * mcookie: [1288]Util-linux-2.37.4 -- - * md5sum: [1289]Coreutils-9.0 -- - * mesg: [1290]Util-linux-2.37.4 -- - * meson: [1291]Meson-0.61.1 -- - * mkdir: [1292]Coreutils-9.0 -- - * mke2fs: [1293]E2fsprogs-1.46.5 -- - * mkfifo: [1294]Coreutils-9.0 -- - * mkfs: [1295]Util-linux-2.37.4 -- - * mkfs.bfs: [1296]Util-linux-2.37.4 -- - * mkfs.cramfs: [1297]Util-linux-2.37.4 -- - * mkfs.ext2: [1298]E2fsprogs-1.46.5 -- - * mkfs.ext3: [1299]E2fsprogs-1.46.5 -- - * mkfs.ext4: [1300]E2fsprogs-1.46.5 -- - * mkfs.minix: [1301]Util-linux-2.37.4 -- - * mklost+found: [1302]E2fsprogs-1.46.5 -- - * mknod: [1303]Coreutils-9.0 -- - * mkswap: [1304]Util-linux-2.37.4 -- - * mktemp: [1305]Coreutils-9.0 -- - * mk_cmds: [1306]E2fsprogs-1.46.5 -- - * mmroff: [1307]Groff-1.22.4 -- - * modinfo: [1308]Kmod-29 -- - * modprobe: [1309]Kmod-29 -- - * more: [1310]Util-linux-2.37.4 -- - * mount: [1311]Util-linux-2.37.4 -- - * mountpoint: [1312]Util-linux-2.37.4 -- - * msgattrib: [1313]Gettext-0.21 -- - * msgcat: [1314]Gettext-0.21 -- - * msgcmp: [1315]Gettext-0.21 -- - * msgcomm: [1316]Gettext-0.21 -- - * msgconv: [1317]Gettext-0.21 -- - * msgen: [1318]Gettext-0.21 -- - * msgexec: [1319]Gettext-0.21 -- - * msgfilter: [1320]Gettext-0.21 -- - * msgfmt: [1321]Gettext-0.21 -- - * msggrep: [1322]Gettext-0.21 -- - * msginit: [1323]Gettext-0.21 -- - * msgmerge: [1324]Gettext-0.21 -- - * msgunfmt: [1325]Gettext-0.21 -- - * msguniq: [1326]Gettext-0.21 -- - * mtrace: [1327]Glibc-2.35 -- - * mv: [1328]Coreutils-9.0 -- - * namei: [1329]Util-linux-2.37.4 -- - * ncursesw6-config: [1330]Ncurses-6.3 -- - * neqn: [1331]Groff-1.22.4 -- - * newgidmap: [1332]Shadow-4.11.1 -- - * newgrp: [1333]Shadow-4.11.1 -- - * newuidmap: [1334]Shadow-4.11.1 -- - * newusers: [1335]Shadow-4.11.1 -- - * ngettext: [1336]Gettext-0.21 -- - * nice: [1337]Coreutils-9.0 -- - * ninja: [1338]Ninja-1.10.2 -- - * nl: [1339]Coreutils-9.0 -- - * nm: [1340]Binutils-2.38 -- - * nohup: [1341]Coreutils-9.0 -- - * nologin: [1342]Shadow-4.11.1 -- - * nproc: [1343]Coreutils-9.0 -- - * nroff: [1344]Groff-1.22.4 -- - * nscd: [1345]Glibc-2.35 -- - * nsenter: [1346]Util-linux-2.37.4 -- - * nstat: [1347]IPRoute2-5.16.0 -- - * numfmt: [1348]Coreutils-9.0 -- - * objcopy: [1349]Binutils-2.38 -- - * objdump: [1350]Binutils-2.38 -- - * od: [1351]Coreutils-9.0 -- - * openssl: [1352]OpenSSL-3.0.1 -- - * openvt: [1353]Kbd-2.4.0 -- - * partx: [1354]Util-linux-2.37.4 -- - * passwd: [1355]Shadow-4.11.1 -- - * paste: [1356]Coreutils-9.0 -- - * patch: [1357]Patch-2.7.6 -- - * pathchk: [1358]Coreutils-9.0 -- - * pcprofiledump: [1359]Glibc-2.35 -- - * pdfmom: [1360]Groff-1.22.4 -- - * pdfroff: [1361]Groff-1.22.4 -- - * pdftexi2dvi: [1362]Texinfo-6.8 -- - * peekfd: [1363]Psmisc-23.4 -- - * perl: [1364]Perl-5.34.0 -- - * perl5.34.0: [1365]Perl-5.34.0 -- - * perlbug: [1366]Perl-5.34.0 -- - * perldoc: [1367]Perl-5.34.0 -- - * perlivp: [1368]Perl-5.34.0 -- - * perlthanks: [1369]Perl-5.34.0 -- - * pfbtops: [1370]Groff-1.22.4 -- - * pgrep: [1371]Procps-ng-3.3.17 -- - * pic: [1372]Groff-1.22.4 -- - * pic2graph: [1373]Groff-1.22.4 -- - * piconv: [1374]Perl-5.34.0 -- - * pidof: [1375]Procps-ng-3.3.17 -- - * ping: [1376]Inetutils-2.2 -- - * ping6: [1377]Inetutils-2.2 -- - * pinky: [1378]Coreutils-9.0 -- - * pip3: [1379]Python-3.10.2 - * pivot_root: [1380]Util-linux-2.37.4 -- - * pkg-config: [1381]Pkg-config-0.29.2 -- - * pkill: [1382]Procps-ng-3.3.17 -- - * pl2pm: [1383]Perl-5.34.0 -- - * pldd: [1384]Glibc-2.35 -- - * pmap: [1385]Procps-ng-3.3.17 -- - * pod2html: [1386]Perl-5.34.0 -- - * pod2man: [1387]Perl-5.34.0 -- - * pod2texi: [1388]Texinfo-6.8 -- - * pod2text: [1389]Perl-5.34.0 -- - * pod2usage: [1390]Perl-5.34.0 -- - * podchecker: [1391]Perl-5.34.0 -- - * podselect: [1392]Perl-5.34.0 -- - * post-grohtml: [1393]Groff-1.22.4 -- - * poweroff: [1394]Sysvinit-3.01 -- - * pr: [1395]Coreutils-9.0 -- - * pre-grohtml: [1396]Groff-1.22.4 -- - * preconv: [1397]Groff-1.22.4 -- - * printenv: [1398]Coreutils-9.0 -- - * printf: [1399]Coreutils-9.0 -- - * prlimit: [1400]Util-linux-2.37.4 -- - * prove: [1401]Perl-5.34.0 -- - * prtstat: [1402]Psmisc-23.4 -- - * ps: [1403]Procps-ng-3.3.17 -- - * psfaddtable: [1404]Kbd-2.4.0 -- - * psfgettable: [1405]Kbd-2.4.0 -- - * psfstriptable: [1406]Kbd-2.4.0 -- - * psfxtable: [1407]Kbd-2.4.0 -- - * pslog: [1408]Psmisc-23.4 -- - * pstree: [1409]Psmisc-23.4 -- - * pstree.x11: [1410]Psmisc-23.4 -- - * ptar: [1411]Perl-5.34.0 -- - * ptardiff: [1412]Perl-5.34.0 -- - * ptargrep: [1413]Perl-5.34.0 -- - * ptx: [1414]Coreutils-9.0 -- - * pwait: [1415]Procps-ng-3.3.17 -- - * pwck: [1416]Shadow-4.11.1 -- - * pwconv: [1417]Shadow-4.11.1 -- - * pwd: [1418]Coreutils-9.0 -- - * pwdx: [1419]Procps-ng-3.3.17 -- - * pwunconv: [1420]Shadow-4.11.1 -- - * pydoc3: [1421]Python-3.10.2 - * python3: [1422]Python-3.10.2 - * ranlib: [1423]Binutils-2.38 -- - * readelf: [1424]Binutils-2.38 -- - * readlink: [1425]Coreutils-9.0 -- - * readprofile: [1426]Util-linux-2.37.4 -- - * realpath: [1427]Coreutils-9.0 -- - * reboot: [1428]Sysvinit-3.01 -- - * recode-sr-latin: [1429]Gettext-0.21 -- - * refer: [1430]Groff-1.22.4 -- - * rename: [1431]Util-linux-2.37.4 -- - * renice: [1432]Util-linux-2.37.4 -- - * reset: [1433]Ncurses-6.3 -- - * resize2fs: [1434]E2fsprogs-1.46.5 -- - * resizepart: [1435]Util-linux-2.37.4 -- - * rev: [1436]Util-linux-2.37.4 -- - * rkfill: [1437]Util-linux-2.37.4 -- - * rm: [1438]Coreutils-9.0 -- - * rmdir: [1439]Coreutils-9.0 -- - * rmmod: [1440]Kmod-29 -- - * roff2dvi: [1441]Groff-1.22.4 -- - * roff2html: [1442]Groff-1.22.4 -- - * roff2pdf: [1443]Groff-1.22.4 -- - * roff2ps: [1444]Groff-1.22.4 -- - * roff2text: [1445]Groff-1.22.4 -- - * roff2x: [1446]Groff-1.22.4 -- - * routef: [1447]IPRoute2-5.16.0 -- - * routel: [1448]IPRoute2-5.16.0 -- - * rtacct: [1449]IPRoute2-5.16.0 -- - * rtcwake: [1450]Util-linux-2.37.4 -- - * rtmon: [1451]IPRoute2-5.16.0 -- - * rtpr: [1452]IPRoute2-5.16.0 -- - * rtstat: [1453]IPRoute2-5.16.0 -- - * runcon: [1454]Coreutils-9.0 -- - * runlevel: [1455]Sysvinit-3.01 -- - * runtest: [1456]DejaGNU-1.6.3 -- - * rview: [1457]Vim-8.2.4383 -- - * rvim: [1458]Vim-8.2.4383 -- - * script: [1459]Util-linux-2.37.4 -- - * scriptlive: [1460]Util-linux-2.37.4 -- - * scriptreplay: [1461]Util-linux-2.37.4 -- - * sdiff: [1462]Diffutils-3.8 -- - * sed: [1463]Sed-4.8 -- - * seq: [1464]Coreutils-9.0 -- - * setarch: [1465]Util-linux-2.37.4 -- - * setcap: [1466]Libcap-2.63 -- - * setfacl: [1467]Acl-2.3.1 -- - * setfattr: [1468]Attr-2.5.1 -- - * setfont: [1469]Kbd-2.4.0 -- - * setkeycodes: [1470]Kbd-2.4.0 -- - * setleds: [1471]Kbd-2.4.0 -- - * setmetamode: [1472]Kbd-2.4.0 -- - * setsid: [1473]Util-linux-2.37.4 -- - * setterm: [1474]Util-linux-2.37.4 -- - * setvtrgb: [1475]Kbd-2.4.0 -- - * sfdisk: [1476]Util-linux-2.37.4 -- - * sg: [1477]Shadow-4.11.1 -- - * sh: [1478]Bash-5.1.16 -- - * sha1sum: [1479]Coreutils-9.0 -- - * sha224sum: [1480]Coreutils-9.0 -- - * sha256sum: [1481]Coreutils-9.0 -- - * sha384sum: [1482]Coreutils-9.0 -- - * sha512sum: [1483]Coreutils-9.0 -- - * shasum: [1484]Perl-5.34.0 -- - * showconsolefont: [1485]Kbd-2.4.0 -- - * showkey: [1486]Kbd-2.4.0 -- - * shred: [1487]Coreutils-9.0 -- - * shuf: [1488]Coreutils-9.0 -- - * shutdown: [1489]Sysvinit-3.01 -- - * size: [1490]Binutils-2.38 -- - * slabtop: [1491]Procps-ng-3.3.17 -- - * sleep: [1492]Coreutils-9.0 -- - * sln: [1493]Glibc-2.35 -- - * soelim: [1494]Groff-1.22.4 -- - * sort: [1495]Coreutils-9.0 -- - * sotruss: [1496]Glibc-2.35 -- - * splain: [1497]Perl-5.34.0 -- - * split: [1498]Coreutils-9.0 -- - * sprof: [1499]Glibc-2.35 -- - * ss: [1500]IPRoute2-5.16.0 -- - * stat: [1501]Coreutils-9.0 -- - * stdbuf: [1502]Coreutils-9.0 -- - * strings: [1503]Binutils-2.38 -- - * strip: [1504]Binutils-2.38 -- - * stty: [1505]Coreutils-9.0 -- - * su: [1506]Shadow-4.11.1 -- - * sulogin: [1507]Util-linux-2.37.4 -- - * sum: [1508]Coreutils-9.0 -- - * swaplabel: [1509]Util-linux-2.37.4 -- - * swapoff: [1510]Util-linux-2.37.4 -- - * swapon: [1511]Util-linux-2.37.4 -- - * switch_root: [1512]Util-linux-2.37.4 -- - * sync: [1513]Coreutils-9.0 -- - * sysctl: [1514]Procps-ng-3.3.17 -- - * syslogd: [1515]Sysklogd-1.5.1 -- - * tabs: [1516]Ncurses-6.3 -- - * tac: [1517]Coreutils-9.0 -- - * tail: [1518]Coreutils-9.0 -- - * talk: [1519]Inetutils-2.2 -- - * tar: [1520]Tar-1.34 -- - * taskset: [1521]Util-linux-2.37.4 -- - * tbl: [1522]Groff-1.22.4 -- - * tc: [1523]IPRoute2-5.16.0 -- - * tclsh: [1524]Tcl-8.6.12 -- - * tclsh8.6: [1525]Tcl-8.6.12 -- - * tee: [1526]Coreutils-9.0 -- - * telinit: [1527]Sysvinit-3.01 -- - * telnet: [1528]Inetutils-2.2 -- - * test: [1529]Coreutils-9.0 -- - * texi2dvi: [1530]Texinfo-6.8 -- - * texi2pdf: [1531]Texinfo-6.8 -- - * texi2any: [1532]Texinfo-6.8 -- - * texindex: [1533]Texinfo-6.8 -- - * tfmtodit: [1534]Groff-1.22.4 -- - * tftp: [1535]Inetutils-2.2 -- - * tic: [1536]Ncurses-6.3 -- - * timeout: [1537]Coreutils-9.0 -- - * tload: [1538]Procps-ng-3.3.17 -- - * toe: [1539]Ncurses-6.3 -- - * top: [1540]Procps-ng-3.3.17 -- - * touch: [1541]Coreutils-9.0 -- - * tput: [1542]Ncurses-6.3 -- - * tr: [1543]Coreutils-9.0 -- - * traceroute: [1544]Inetutils-2.2 -- - * troff: [1545]Groff-1.22.4 -- - * true: [1546]Coreutils-9.0 -- - * truncate: [1547]Coreutils-9.0 -- - * tset: [1548]Ncurses-6.3 -- - * tsort: [1549]Coreutils-9.0 -- - * tty: [1550]Coreutils-9.0 -- - * tune2fs: [1551]E2fsprogs-1.46.5 -- - * tzselect: [1552]Glibc-2.35 -- - * uclampset: [1553]Util-linux-2.37.4 -- - * udevadm: [1554]Eudev-3.2.11 -- - * udevd: [1555]Eudev-3.2.11 -- - * ul: [1556]Util-linux-2.37.4 -- - * umount: [1557]Util-linux-2.37.4 -- - * uname: [1558]Coreutils-9.0 -- - * uname26: [1559]Util-linux-2.37.4 -- - * uncompress: [1560]Gzip-1.11 -- - * unexpand: [1561]Coreutils-9.0 -- - * unicode_start: [1562]Kbd-2.4.0 -- - * unicode_stop: [1563]Kbd-2.4.0 -- - * uniq: [1564]Coreutils-9.0 -- - * unlink: [1565]Coreutils-9.0 -- - * unlzma: [1566]Xz-5.2.5 -- - * unshare: [1567]Util-linux-2.37.4 -- - * unxz: [1568]Xz-5.2.5 -- - * updatedb: [1569]Findutils-4.9.0 -- - * uptime: [1570]Procps-ng-3.3.17 -- - * useradd: [1571]Shadow-4.11.1 -- - * userdel: [1572]Shadow-4.11.1 -- - * usermod: [1573]Shadow-4.11.1 -- - * users: [1574]Coreutils-9.0 -- - * utmpdump: [1575]Util-linux-2.37.4 -- - * uuidd: [1576]Util-linux-2.37.4 -- - * uuidgen: [1577]Util-linux-2.37.4 -- - * uuidparse: [1578]Util-linux-2.37.4 -- - * vdir: [1579]Coreutils-9.0 -- - * vi: [1580]Vim-8.2.4383 -- - * view: [1581]Vim-8.2.4383 -- - * vigr: [1582]Shadow-4.11.1 -- - * vim: [1583]Vim-8.2.4383 -- - * vimdiff: [1584]Vim-8.2.4383 -- - * vimtutor: [1585]Vim-8.2.4383 -- - * vipw: [1586]Shadow-4.11.1 -- - * vmstat: [1587]Procps-ng-3.3.17 -- - * w: [1588]Procps-ng-3.3.17 -- - * wall: [1589]Util-linux-2.37.4 -- - * watch: [1590]Procps-ng-3.3.17 -- - * wc: [1591]Coreutils-9.0 -- - * wdctl: [1592]Util-linux-2.37.4 -- - * whatis: [1593]Man-DB-2.10.1 -- - * whereis: [1594]Util-linux-2.37.4 -- - * who: [1595]Coreutils-9.0 -- - * whoami: [1596]Coreutils-9.0 -- - * wipefs: [1597]Util-linux-2.37.4 -- - * x86_64: [1598]Util-linux-2.37.4 -- - * xargs: [1599]Findutils-4.9.0 -- - * xgettext: [1600]Gettext-0.21 -- - * xmlwf: [1601]Expat-2.4.6 -- - * xsubpp: [1602]Perl-5.34.0 -- - * xtrace: [1603]Glibc-2.35 -- - * xxd: [1604]Vim-8.2.4383 -- - * xz: [1605]Xz-5.2.5 -- - * xzcat: [1606]Xz-5.2.5 -- - * xzcmp: [1607]Xz-5.2.5 -- - * xzdec: [1608]Xz-5.2.5 -- - * xzdiff: [1609]Xz-5.2.5 -- - * xzegrep: [1610]Xz-5.2.5 -- - * xzfgrep: [1611]Xz-5.2.5 -- - * xzgrep: [1612]Xz-5.2.5 -- - * xzless: [1613]Xz-5.2.5 -- - * xzmore: [1614]Xz-5.2.5 -- - * yacc: [1615]Bison-3.8.2 -- - * yes: [1616]Coreutils-9.0 -- - * zcat: [1617]Gzip-1.11 -- - * zcmp: [1618]Gzip-1.11 -- - * zdiff: [1619]Gzip-1.11 -- - * zdump: [1620]Glibc-2.35 -- - * zegrep: [1621]Gzip-1.11 -- - * zfgrep: [1622]Gzip-1.11 -- - * zforce: [1623]Gzip-1.11 -- - * zgrep: [1624]Gzip-1.11 -- - * zic: [1625]Glibc-2.35 -- - * zipdetails: [1626]Perl-5.34.0 -- - * zless: [1627]Gzip-1.11 -- - * zmore: [1628]Gzip-1.11 -- - * znew: [1629]Gzip-1.11 -- - * zramctl: [1630]Util-linux-2.37.4 -- - * zstd: [1631]Zstd-1.5.2 -- - * zstdgrep: [1632]Zstd-1.5.2 -- - * zstdless: [1633]Zstd-1.5.2 -- - - * Expat: [1634]XML::Parser-2.46 -- - * ld-2.35.so: [1635]Glibc-2.35 -- - * libacl: [1636]Acl-2.3.1 -- - * libanl: [1637]Glibc-2.35 -- - * libasprintf: [1638]Gettext-0.21 -- - * libattr: [1639]Attr-2.5.1 -- - * libbfd: [1640]Binutils-2.38 -- - * libblkid: [1641]Util-linux-2.37.4 -- - * libBrokenLocale: [1642]Glibc-2.35 -- - * libbz2: [1643]Bzip2-1.0.8 -- - * libc: [1644]Glibc-2.35 -- - * libcap: [1645]Libcap-2.63 -- - * libcheck: [1646]Check-0.15.2 -- - * libcom_err: [1647]E2fsprogs-1.46.5 -- - * libcrypt: [1648]Glibc-2.35 -- - * libcrypto.so: [1649]OpenSSL-3.0.1 -- - * libctf: [1650]Binutils-2.38 -- - * libctf-nobfd: [1651]Binutils-2.38 -- - * libcursesw: [1652]Ncurses-6.3 -- - * libc_malloc_debug: [1653]Glibc-2.35 -- - * libdl: [1654]Glibc-2.35 -- - * libe2p: [1655]E2fsprogs-1.46.5 -- - * libelf: [1656]Libelf oriundo de Elfutils-0.186 -- - * libexpat: [1657]Expat-2.4.6 -- - * libexpect-5.45.4: [1658]Expect-5.45.4 -- - * libext2fs: [1659]E2fsprogs-1.46.5 -- - * libfdisk: [1660]Util-linux-2.37.4 -- - * libffi: [1661]Libffi-3.4.2 - * libfl: [1662]Flex-2.6.4 -- - * libformw: [1663]Ncurses-6.3 -- - * libg: [1664]Glibc-2.35 -- - * libgcc: [1665]GCC-11.2.0 -- - * libgcov: [1666]GCC-11.2.0 -- - * libgdbm: [1667]GDBM-1.23 -- - * libgdbm_compat: [1668]GDBM-1.23 -- - * libgettextlib: [1669]Gettext-0.21 -- - * libgettextpo: [1670]Gettext-0.21 -- - * libgettextsrc: [1671]Gettext-0.21 -- - * libgmp: [1672]GMP-6.2.1 -- - * libgmpxx: [1673]GMP-6.2.1 -- - * libgomp: [1674]GCC-11.2.0 -- - * libhistory: [1675]Readline-8.1.2 -- - * libitm: [1676]GCC-11.2.0 -- - * libkmod: [1677]Kmod-29 - * liblsan: [1678]GCC-11.2.0 -- - * libltdl: [1679]Libtool-2.4.6 -- - * liblto_plugin: [1680]GCC-11.2.0 -- - * liblzma: [1681]Xz-5.2.5 -- - * libm: [1682]Glibc-2.35 -- - * libmagic: [1683]File-5.41 -- - * libman: [1684]Man-DB-2.10.1 -- - * libmandb: [1685]Man-DB-2.10.1 -- - * libmcheck: [1686]Glibc-2.35 -- - * libmemusage: [1687]Glibc-2.35 -- - * libmenuw: [1688]Ncurses-6.3 -- - * libmount: [1689]Util-linux-2.37.4 -- - * libmpc: [1690]MPC-1.2.1 -- - * libmpfr: [1691]MPFR-4.1.0 -- - * libmvec: [1692]Glibc-2.35 -- - * libncursesw: [1693]Ncurses-6.3 -- - * libnsl: [1694]Glibc-2.35 -- - * libnss_*: [1695]Glibc-2.35 -- - * libopcodes: [1696]Binutils-2.38 -- - * libpanelw: [1697]Ncurses-6.3 -- - * libpcprofile: [1698]Glibc-2.35 -- - * libpipeline: [1699]Libpipeline-1.5.5 - * libprocps: [1700]Procps-ng-3.3.17 -- - * libpsx: [1701]Libcap-2.63 -- - * libpthread: [1702]Glibc-2.35 -- - * libquadmath: [1703]GCC-11.2.0 -- - * libreadline: [1704]Readline-8.1.2 -- - * libresolv: [1705]Glibc-2.35 -- - * librt: [1706]Glibc-2.35 -- - * libsmartcols: [1707]Util-linux-2.37.4 -- - * libss: [1708]E2fsprogs-1.46.5 -- - * libssl.so: [1709]OpenSSL-3.0.1 -- - * libssp: [1710]GCC-11.2.0 -- - * libstdbuf: [1711]Coreutils-9.0 -- - * libstdc++: [1712]GCC-11.2.0 -- - * libstdc++fs: [1713]GCC-11.2.0 -- - * libsubid: [1714]Shadow-4.11.1 -- - * libsupc++: [1715]GCC-11.2.0 -- - * libtcl8.6.so: [1716]Tcl-8.6.12 -- - * libtclstub8.6.a: [1717]Tcl-8.6.12 -- - * libtextstyle: [1718]Gettext-0.21 -- - * libthread_db: [1719]Glibc-2.35 -- - * libtsan: [1720]GCC-11.2.0 -- - * libubsan: [1721]GCC-11.2.0 -- - * libudev: [1722]Eudev-3.2.11 -- - * libutil: [1723]Glibc-2.35 -- - * libuuid: [1724]Util-linux-2.37.4 -- - * liby: [1725]Bison-3.8.2 -- - * libz: [1726]Zlib-1.2.11 -- - * libzstd: [1727]Zstd-1.5.2 -- - * preloadable_libintl: [1728]Gettext-0.21 -- - - * checkfs: [1729]LFS-Bootscripts-20210608 -- - * cleanfs: [1730]LFS-Bootscripts-20210608 -- - * console: [1731]LFS-Bootscripts-20210608 -- - + configuring: [1732]Configurando o Console do Linux - * File creation at boot: - + configuring: [1733]Criando Arquivos na Inicialização - * functions: [1734]LFS-Bootscripts-20210608 -- - * halt: [1735]LFS-Bootscripts-20210608 -- - * hostname: - + configuring: [1736]Configurando o nome de dispositivo do - sistema - * ifdown: [1737]LFS-Bootscripts-20210608 -- - * ifup: [1738]LFS-Bootscripts-20210608 -- - * ipv4-static: [1739]LFS-Bootscripts-20210608 -- - * localnet: [1740]LFS-Bootscripts-20210608 -- - + /etc/hosts: [1741]Personalizando o Arquivo /etc/hosts - * modules: [1742]LFS-Bootscripts-20210608 -- - * mountfs: [1743]LFS-Bootscripts-20210608 -- - * mountvirtfs: [1744]LFS-Bootscripts-20210608 -- - * network: [1745]LFS-Bootscripts-20210608 -- - + /etc/hosts: [1746]Personalizando o Arquivo /etc/hosts - + configuring: [1747]Configuração de Rede Geral - * rc: [1748]LFS-Bootscripts-20210608 -- - * reboot: [1749]LFS-Bootscripts-20210608 -- - * sendsignals: [1750]LFS-Bootscripts-20210608 -- - * setclock: [1751]LFS-Bootscripts-20210608 -- - + configuring: [1752]Configurando o Relógio do Sistema - * swap: [1753]LFS-Bootscripts-20210608 -- - * sysctl: [1754]LFS-Bootscripts-20210608 -- - * sysklogd: [1755]LFS-Bootscripts-20210608 -- - + configuring: [1756]Configurando o Script sysklogd - * template: [1757]LFS-Bootscripts-20210608 -- - * udev: [1758]LFS-Bootscripts-20210608 -- - * udev_retry: [1759]LFS-Bootscripts-20210608 -- - * dwp: [1760]Binutils-2.38 -- - - * /boot/config-5.16.9: [1761]Linux-5.16.9 -- - * /boot/System.map-5.16.9: [1762]Linux-5.16.9 -- - * /dev/*: [1763]Preparando Sistemas de Arquivos Virtuais de Kernel - * /etc/fstab: [1764]Criando o Arquivo /etc/fstab - * /etc/group: [1765]Criando Arquivos Essenciais e Links Simbólicos - * /etc/hosts: [1766]Personalizando o Arquivo /etc/hosts - * /etc/inittab: [1767]Configurando o Sysvinit - * /etc/inputrc: [1768]Criando o Arquivo /etc/inputrc - * /etc/ld.so.conf: [1769]Configurando o Carregador Dinâmico - * /etc/lfs-release: [1770]O Fim - * /etc/localtime: [1771]Configurando Glibc - * /etc/lsb-release: [1772]O Fim - * /etc/modprobe.d/usb.conf: [1773]Configurando a Ordem de - Carregamento de Módulos do Linux - * /etc/nsswitch.conf: [1774]Configurando Glibc - * /etc/os-release: [1775]O Fim - * /etc/passwd: [1776]Criando Arquivos Essenciais e Links Simbólicos - * /etc/profile: [1777]Os Arquivos de Inicialização de Shell do Bash - * /etc/protocols: [1778]Iana-Etc-20220207 - * /etc/resolv.conf: [1779]Criando o Arquivo /etc/resolv.conf - * /etc/services: [1780]Iana-Etc-20220207 - * /etc/syslog.conf: [1781]Configurando Sysklogd - * /etc/udev: [1782]Eudev-3.2.11 -- - * /etc/udev/hwdb.bin: [1783]Configurando Eudev - * /etc/vimrc: [1784]Configurando Vim - * /run/utmp: [1785]Criando Arquivos Essenciais e Links Simbólicos - * /usr/include/asm-generic/*.h: [1786]Cabeçalhos da API do - Linux-5.16.9 -- - * /usr/include/asm/*.h: [1787]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/drm/*.h: [1788]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/linux/*.h: [1789]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/misc/*.h: [1790]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/mtd/*.h: [1791]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/rdma/*.h: [1792]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/scsi/*.h: [1793]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/sound/*.h: [1794]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/video/*.h: [1795]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/xen/*.h: [1796]Cabeçalhos da API do Linux-5.16.9 -- - * /var/log/btmp: [1797]Criando Arquivos Essenciais e Links Simbólicos - * /var/log/lastlog: [1798]Criando Arquivos Essenciais e Links - Simbólicos - * /var/log/wtmp: [1799]Criando Arquivos Essenciais e Links Simbólicos - * /etc/shells: [1800]Criando o Arquivo /etc/shells - * man pages: [1801]Man-pages-5.13 -- - -Referências - - Ligações visíveis: - 1. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 2. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 3. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-foreword - 4. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-audience - 5. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-architecture - 6. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-prerequisites - 7. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-standards - 8. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-why - 9. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-typography - 10. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-organization - 11. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-errata - 12. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-how - 13. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-whatsnew - 14. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-changelog - 15. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 16. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-askforhelp - 17. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-introduction - 18. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 19. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-stages - 20. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingpartition - 21. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingfilesystem - 22. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 23. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-mounting - 24. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-introduction - 25. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-packages - 26. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-patches - 27. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-introduction - 28. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingminlayout - 29. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-addinguser - 30. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 31. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-aboutsbus - 32. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-abouttestsuites - 33. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-part3intro-intro - 34. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 35. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 36. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction - 37. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 38. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 39. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 40. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 41. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 42. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-cross - 43. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 44. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 45. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 46. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 47. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 48. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 49. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 50. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 51. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 52. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 53. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 54. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 55. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 56. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 57. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 58. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 59. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 60. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-chroot - 61. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-changingowner - 62. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 63. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 64. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingdirs - 65. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 66. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 67. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 68. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 69. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 70. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 71. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 72. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 73. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-cleanup - 74. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-introduction - 75. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgmgt - 76. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 77. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 78. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 79. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 80. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 81. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 82. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 83. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 84. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 85. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 86. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 87. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 88. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 89. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 90. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 91. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 92. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 93. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 94. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 95. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 96. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 97. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 98. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 99. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 100. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 101. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 102. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 103. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 104. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 105. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 106. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 107. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 108. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 109. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 110. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 111. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 112. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 113. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 114. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 115. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 116. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 117. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 118. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 119. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 120. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 121. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 122. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 123. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 124. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 125. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 126. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 127. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 128. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 129. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 130. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 131. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 132. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 133. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 134. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 135. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 136. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 137. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 138. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 139. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 140. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 141. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 142. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 143. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 144. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 145. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 146. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 147. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd - 148. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit - 149. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-aboutdebug - 150. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-stripping - 151. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-cleanup - 152. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-introduction - 153. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts - 154. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 155. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 156. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 157. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-usage - 158. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-profile - 159. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc - 160. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells - 161. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-introduction - 162. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 163. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 164. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 165. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend - 166. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-getcounted - 167. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-reboot - 168. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-whatnow - 169. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#appendixa - 170. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#appendixb - 171. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#appendixc - 172. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scripts - 173. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rc - 174. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#init-functions - 175. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountvirtfs - 176. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modules - 177. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev - 178. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swap - 179. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setclock - 180. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#checkfs - 181. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountfs - 182. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev_retry - 183. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cleanfs - 184. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#console - 185. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#localnet - 186. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysctlscript - 187. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysklogd - 188. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#network - 189. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sendsignals - 190. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rebootscript - 191. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#haltscript - 192. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#template - 193. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modulessys - 194. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#createfiles - 195. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#config-udev-retry - 196. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifup - 197. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifdown - 198. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipv4static - 199. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipv4route - 200. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rules - 201. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lfsrules - 202. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#Licenses - 203. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 204. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 205. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#FDL - 206. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#idm19011 - 207. https://www.linuxfromscratch.org/~thomas/multilib/index.html - 208. http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - 209. http://moi.vonos.net/linux/beginners-installing-from-source/ - 210. http://pubs.opengroup.org/onlinepubs/9699919799/ - 211. http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html - 212. http://refspecs.linuxfoundation.org/lsb.shtml - 213. https://www.linuxfromscratch.org/ - 214. https://www.linuxfromscratch.org/lfs/errata/11.1/ - 215. https://www.linuxfromscratch.org/lfs/advisories/ - 216. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-partitioning - 217. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-getting-materials - 218. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 219. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 220. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 221. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 222. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 223. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 224. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 225. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 226. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-config - 227. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 228. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-finalizing - 229. https://www.linuxfromscratch.org/mirrors.html - 230. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 231. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 232. https://wiki.linuxfromscratch.org/lfs/ticket/5010 - 233. https://wiki.linuxfromscratch.org/lfs/ticket/5009 - 234. https://wiki.linuxfromscratch.org/lfs/ticket/5008 - 235. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 236. https://wiki.linuxfromscratch.org/lfs/ticket/5006 - 237. https://wiki.linuxfromscratch.org/lfs/ticket/5004 - 238. https://wiki.linuxfromscratch.org/lfs/ticket/5005 - 239. https://wiki.linuxfromscratch.org/lfs/ticket/5007 - 240. https://wiki.linuxfromscratch.org/lfs/ticket/4998 - 241. https://wiki.linuxfromscratch.org/lfs/ticket/5002 - 242. https://wiki.linuxfromscratch.org/lfs/ticket/5000 - 243. https://wiki.linuxfromscratch.org/lfs/ticket/5001 - 244. https://wiki.linuxfromscratch.org/lfs/ticket/4992 - 245. https://wiki.linuxfromscratch.org/lfs/ticket/4999 - 246. https://wiki.linuxfromscratch.org/lfs/ticket/4996 - 247. https://wiki.linuxfromscratch.org/lfs/ticket/4995 - 248. https://wiki.linuxfromscratch.org/lfs/ticket/4993 - 249. https://wiki.linuxfromscratch.org/lfs/ticket/4994 - 250. https://wiki.linuxfromscratch.org/lfs/ticket/4991 - 251. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 252. https://wiki.linuxfromscratch.org/lfs/ticket/4988 - 253. https://wiki.linuxfromscratch.org/lfs/ticket/4989 - 254. https://wiki.linuxfromscratch.org/lfs/ticket/4987 - 255. https://wiki.linuxfromscratch.org/lfs/ticket/4979 - 256. https://wiki.linuxfromscratch.org/lfs/ticket/4990 - 257. https://wiki.linuxfromscratch.org/lfs/ticket/4982 - 258. https://wiki.linuxfromscratch.org/lfs/ticket/4975 - 259. https://wiki.linuxfromscratch.org/lfs/ticket/4984 - 260. https://wiki.linuxfromscratch.org/lfs/ticket/4985 - 261. https://wiki.linuxfromscratch.org/lfs/ticket/4976 - 262. https://wiki.linuxfromscratch.org/lfs/ticket/4980 - 263. https://wiki.linuxfromscratch.org/lfs/ticket/4983 - 264. https://wiki.linuxfromscratch.org/lfs/ticket/4977 - 265. https://wiki.linuxfromscratch.org/lfs/ticket/4978 - 266. https://wiki.linuxfromscratch.org/lfs/ticket/4974 - 267. https://wiki.linuxfromscratch.org/lfs/ticket/4972 - 268. https://wiki.linuxfromscratch.org/lfs/ticket/4970 - 269. https://wiki.linuxfromscratch.org/lfs/ticket/4969 - 270. https://wiki.linuxfromscratch.org/lfs/ticket/4968 - 271. https://wiki.linuxfromscratch.org/lfs/ticket/4967 - 272. https://wiki.linuxfromscratch.org/lfs/ticket/4962 - 273. https://wiki.linuxfromscratch.org/lfs/ticket/4922 - 274. https://wiki.linuxfromscratch.org/lfs/ticket/4914 - 275. https://wiki.linuxfromscratch.org/lfs/ticket/4973 - 276. https://wiki.linuxfromscratch.org/lfs/ticket/4863 - 277. https://wiki.linuxfromscratch.org/lfs/ticket/4866 - 278. https://wiki.linuxfromscratch.org/lfs/ticket/4864 - 279. https://wiki.linuxfromscratch.org/lfs/ticket/4865 - 280. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 281. https://wiki.linuxfromscratch.org/lfs/ticket/4957 - 282. https://wiki.linuxfromscratch.org/lfs/ticket/4959 - 283. https://wiki.linuxfromscratch.org/lfs/ticket/4960 - 284. https://wiki.linuxfromscratch.org/lfs/ticket/4956 - 285. https://wiki.linuxfromscratch.org/lfs/ticket/4955 - 286. https://wiki.linuxfromscratch.org/lfs/ticket/4954 - 287. https://wiki.linuxfromscratch.org/lfs/ticket/4952 - 288. https://wiki.linuxfromscratch.org/lfs/ticket/4951 - 289. https://wiki.linuxfromscratch.org/lfs/ticket/4950 - 290. https://wiki.linuxfromscratch.org/lfs/ticket/4949 - 291. https://wiki.linuxfromscratch.org/lfs/ticket/4948 - 292. https://wiki.linuxfromscratch.org/lfs/ticket/4947 - 293. https://wiki.linuxfromscratch.org/lfs/ticket/4946 - 294. https://wiki.linuxfromscratch.org/lfs/ticket/4945 - 295. https://wiki.linuxfromscratch.org/lfs/ticket/4944 - 296. https://wiki.linuxfromscratch.org/lfs/ticket/4943 - 297. https://wiki.linuxfromscratch.org/lfs/ticket/4942 - 298. https://wiki.linuxfromscratch.org/lfs/ticket/4941 - 299. https://wiki.linuxfromscratch.org/lfs/ticket/4940 - 300. https://wiki.linuxfromscratch.org/lfs/ticket/4939 - 301. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 302. https://wiki.linuxfromscratch.org/lfs/ticket/4934 - 303. https://wiki.linuxfromscratch.org/lfs/ticket/4938 - 304. https://wiki.linuxfromscratch.org/lfs/ticket/4937 - 305. https://wiki.linuxfromscratch.org/lfs/ticket/4932 - 306. https://wiki.linuxfromscratch.org/lfs/ticket/4933 - 307. https://wiki.linuxfromscratch.org/lfs/ticket/4936 - 308. https://wiki.linuxfromscratch.org/lfs/ticket/4935 - 309. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 310. https://wiki.linuxfromscratch.org/lfs/ticket/4722 - 311. https://wiki.linuxfromscratch.org/lfs/ticket/4929 - 312. https://wiki.linuxfromscratch.org/lfs/ticket/4927 - 313. https://wiki.linuxfromscratch.org/lfs/ticket/4931 - 314. https://wiki.linuxfromscratch.org/lfs/ticket/4925 - 315. https://wiki.linuxfromscratch.org/lfs/ticket/4926 - 316. https://wiki.linuxfromscratch.org/lfs/ticket/4928 - 317. https://wiki.linuxfromscratch.org/lfs/ticket/4930 - 318. https://wiki.linuxfromscratch.org/lfs/ticket/4923 - 319. https://wiki.linuxfromscratch.org/lfs/ticket/4916 - 320. https://wiki.linuxfromscratch.org/lfs/ticket/4913 - 321. https://wiki.linuxfromscratch.org/lfs/ticket/4912 - 322. https://wiki.linuxfromscratch.org/lfs/ticket/4917 - 323. https://wiki.linuxfromscratch.org/lfs/ticket/4918 - 324. https://wiki.linuxfromscratch.org/lfs/ticket/4920 - 325. https://wiki.linuxfromscratch.org/lfs/ticket/4919 - 326. https://wiki.linuxfromscratch.org/lfs/ticket/4921 - 327. https://wiki.linuxfromscratch.org/lfs/ticket/4908 - 328. https://www.linuxfromscratch.org/faq/ - 329. https://www.linuxfromscratch.org/search.html - 330. https://www.linuxfromscratch.org/mail.html - 331. https://www.linuxfromscratch.org/mirrors.html - 332. https://www.linuxfromscratch.org/faq/#generalfaq - 333. https://www.linuxfromscratch.org/hints/downloads/files/errors.txt - 334. https://www.linuxfromscratch.org/search.html - 335. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 336. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#version-check - 337. http://catb.org/~esr/faqs/smart-questions.html - 338. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 339. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 340. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 341. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 342. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 343. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 344. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/raid.html - 345. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/aboutlvm.html - 346. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/initramfs.html - 347. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 348. http://en.wikipedia.org/wiki/Comparison_of_file_systems - 349. http://www.google.com/ - 350. https://www.linuxfromscratch.org/lfs/mirrors.html#files - 351. https://www.linuxfromscratch.org/mirrors.html#files - 352. file:///tmp/1/wget-list - 353. file:///tmp/1/md5sums - 354. https://savannah.nongnu.org/projects/acl - 355. https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz - 356. https://savannah.nongnu.org/projects/attr - 357. https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz - 358. https://www.gnu.org/software/autoconf/ - 359. https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - 360. https://www.gnu.org/software/automake/ - 361. https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - 362. https://www.gnu.org/software/bash/ - 363. https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - 364. https://git.yzena.com/gavin/bc - 365. https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz - 366. https://www.gnu.org/software/binutils/ - 367. https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - 368. https://www.gnu.org/software/bison/ - 369. https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - 370. https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - 371. https://libcheck.github.io/check - 372. https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz - 373. https://www.gnu.org/software/coreutils/ - 374. https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - 375. https://www.gnu.org/software/dejagnu/ - 376. https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - 377. https://www.gnu.org/software/diffutils/ - 378. https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - 379. http://e2fsprogs.sourceforge.net/ - 380. https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz - 381. https://sourceware.org/elfutils/ - 382. https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 - 383. https://github.com/eudev-project/eudev/releases/download/v3.2.11/eudev-3.2.11.tar.gz - 384. https://libexpat.github.io/ - 385. https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz - 386. https://www.linuxfromscratch.org/lfs/advisories/ - 387. https://core.tcl.tk/expect/ - 388. https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz - 389. https://www.darwinsys.com/file/ - 390. https://astron.com/pub/file/file-5.41.tar.gz - 391. https://www.gnu.org/software/findutils/ - 392. https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - 393. https://github.com/westes/flex - 394. https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz - 395. https://www.gnu.org/software/gawk/ - 396. https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - 397. https://gcc.gnu.org/ - 398. https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - 399. https://www.gnu.org/software/gdbm/ - 400. https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - 401. https://www.gnu.org/software/gettext/ - 402. https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - 403. https://www.gnu.org/software/libc/ - 404. https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - 405. https://www.gnu.org/software/gmp/ - 406. https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - 407. https://www.gnu.org/software/gperf/ - 408. https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - 409. https://www.gnu.org/software/grep/ - 410. https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - 411. https://www.gnu.org/software/groff/ - 412. https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - 413. https://www.gnu.org/software/grub/ - 414. https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - 415. https://www.gnu.org/software/gzip/ - 416. https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - 417. https://www.iana.org/protocols - 418. https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz - 419. https://www.gnu.org/software/inetutils/ - 420. https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - 421. https://freedesktop.org/wiki/Software/intltool - 422. https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz - 423. https://www.kernel.org/pub/linux/utils/net/iproute2/ - 424. https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz - 425. https://kbd-project.org/ - 426. https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - 427. https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz - 428. https://www.greenwoodsoftware.com/less/ - 429. https://www.greenwoodsoftware.com/less/less-590.tar.gz - 430. https://www.linuxfromscratch.org/lfs/downloads/11.1/lfs-bootscripts-20210608.tar.xz - 431. https://sites.google.com/site/fullycapable/ - 432. https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz - 433. https://sourceware.org/libffi/ - 434. https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz - 435. http://libpipeline.nongnu.org/ - 436. https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz - 437. https://www.gnu.org/software/libtool/ - 438. https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - 439. https://www.kernel.org/ - 440. https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz - 441. https://www.gnu.org/software/m4/ - 442. https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - 443. https://www.gnu.org/software/make/ - 444. https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - 445. https://www.nongnu.org/man-db/ - 446. https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz - 447. https://www.kernel.org/doc/man-pages/ - 448. https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz - 449. https://mesonbuild.com/ - 450. https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz - 451. http://www.multiprecision.org/ - 452. https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - 453. https://www.mpfr.org/ - 454. https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - 455. https://www.gnu.org/software/ncurses/ - 456. https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz - 457. https://ninja-build.org/ - 458. https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz - 459. https://www.openssl.org/ - 460. https://www.openssl.org/source/openssl-3.0.1.tar.gz - 461. https://savannah.gnu.org/projects/patch/ - 462. https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - 463. https://www.perl.org/ - 464. https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - 465. https://www.freedesktop.org/wiki/Software/pkg-config - 466. https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz - 467. https://sourceforge.net/projects/procps-ng - 468. https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz - 469. https://gitlab.com/psmisc/psmisc - 470. https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz - 471. https://www.python.org/ - 472. https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz - 473. https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 - 474. https://tiswww.case.edu/php/chet/readline/rltop.html - 475. https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - 476. https://www.gnu.org/software/sed/ - 477. https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - 478. https://shadow-maint.github.io/shadow/ - 479. https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz - 480. https://www.infodrom.org/projects/sysklogd/ - 481. https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz - 482. https://savannah.nongnu.org/projects/sysvinit - 483. https://download.savannah.gnu.org/releases/sysvinit/sysvinit-3.01.tar.xz - 484. https://www.gnu.org/software/tar/ - 485. https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - 486. http://tcl.sourceforge.net/ - 487. https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - 488. https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - 489. https://www.gnu.org/software/texinfo/ - 490. https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - 491. https://www.iana.org/time-zones - 492. https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz - 493. https://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.tar.xz - 494. https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ - 495. https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz - 496. https://www.vim.org/ - 497. https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - 498. https://github.com/vim/vim/releases - 499. https://github.com/chorny/XML-Parser - 500. https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz - 501. https://tukaani.org/xz - 502. https://tukaani.org/xz/xz-5.2.5.tar.xz - 503. https://www.zlib.net/ - 504. https://zlib.net/zlib-1.2.11.tar.xz - 505. https://facebook.github.io/zstd/ - 506. https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz - 507. https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch - 508. https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch - 509. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch - 510. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch - 511. https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch - 512. https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch - 513. https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch - 514. https://www.linuxfromscratch.org/patches/lfs/11.1/sysvinit-3.01-consolidated-1.patch - 515. https://www.linuxfromscratch.org/patches/downloads/ - 516. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 517. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 518. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 519. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 520. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 521. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 522. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 523. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 524. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 525. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 526. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 527. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 528. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 529. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 530. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 531. https://www.linuxfromscratch.org/lfs/faq.html#no-ptys - 532. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 533. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 534. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 535. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 536. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 537. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 538. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 539. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 540. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 541. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 542. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 543. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 544. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 545. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#buildinstr - 546. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 547. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 548. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-glibc - 549. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 550. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 551. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 552. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-m4 - 553. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 554. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-ncurses - 555. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bash - 556. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-coreutils - 557. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-diffutils - 558. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-file - 559. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-findutils - 560. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gawk - 561. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-grep - 562. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gzip - 563. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-make - 564. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-patch - 565. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-sed - 566. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-tar - 567. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-xz - 568. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 569. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 570. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 571. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 572. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 573. https://refspecs.linuxfoundation.org/fhs.shtml - 574. http://refspecs.linuxfoundation.org/lsb.shtml - 575. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 576. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 577. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 578. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gettext - 579. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bison - 580. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-perl - 581. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 582. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-python - 583. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-texinfo - 584. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#contents-utillinux - 585. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 586. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 587. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 588. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 589. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 590. https://www.linuxfromscratch.org/blfs/view/11.1/introduction/libraries.html - 591. https://www.linuxfromscratch.org/hints/downloads/files/ - 592. http://refspecs.linuxfoundation.org/lsb.shtml - 593. https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt - 594. http://www.slackbook.org/html/package-management.html - 595. https://www.linuxfromscratch.org/hints/downloads/files/ - 596. https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt - 597. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 598. https://www.linuxfromscratch.org/blfs/view/11.1/general/libidn2.html - 599. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.html - 600. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 601. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 602. https://www.linuxfromscratch.org/blfs/view/11.1/general/gcc.html - 603. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 604. https://gcc.gnu.org/ml/gcc-testresults/ - 605. https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html - 606. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 607. https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html - 608. https://www.linuxfromscratch.org/blfs/view/11.1/ - 609. https://www.linuxfromscratch.org/blfs/view/11.1/ - 610. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/grub-efi.html - 611. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 612. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 613. http://www.skbuff.net/iputils/ - 614. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/editors.html - 615. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/vim.html - 616. ftp://ftp.vim.org/pub/vim/runtime/spell/ - 617. https://www.linuxfromscratch.org/blfs/view/11.1//general/valgrind.html - 618. https://www.linuxfromscratch.org/blfs/view/11.1//general/gdb.html - 619. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 620. https://www.linuxfromscratch.org/blfs/view/11.1/introduction/la-files.html - 621. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 622. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 623. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 624. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 625. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 626. http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf - 627. http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf - 628. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-cfg - 629. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 630. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 631. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/devices.html - 632. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 633. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#module-loading - 634. https://www.linuxfromscratch.org/hints/downloads/files/time.txt - 635. http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html - 636. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 637. https://www.linuxfromscratch.org/blfs/view/11.1/introduction/locale-issues.html - 638. https://www.linuxfromscratch.org/blfs/view/11.1/general/hdparm.html - 639. https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt - 640. https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index - 641. http://www.kroah.com/lkn/ - 642. https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index - 643. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/grub-setup.html#uefi-kernel - 644. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 645. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 646. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/grub-setup.html - 647. https://www.linuxfromscratch.org/blfs/view/11.1/multimedia/libisoburn.html - 648. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 649. https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - 650. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/lynx.html - 651. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/make-ca.html - 652. https://www.linuxfromscratch.org/blfs/view/11.1/general/gpm.html - 653. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/dhcpcd.html - 654. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/dhcp.html - 655. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/sudo.html - 656. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/openssh.html - 657. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/wget.html - 658. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/wpa_supplicant.html - 659. http://www.cert.org/ - 660. http://www.us-cert.gov/cas/signup.html - 661. http://www.securityfocus.com/archive - 662. https://www.linuxfromscratch.org/blfs/view/11.1/ - 663. https://www.linuxfromscratch.org/hints/downloads/files/ - 664. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-maillists - 665. http://www.tldp.org/ - 666. mailto:gerard@linuxfromscratch.org - 667. mailto:bdubbs@linuxfromscratch.org - 668. mailto:jim@linuxfromscratch.org - 669. mailto:pierre@linuxfromscratch.org - 670. mailto:dj@linuxfromscratch.org - 671. mailto:ken@linuxfromscratch.org - 672. mailto:macana@macana-es.com - 673. mailto:johan@linuxfromscratch.org - 674. mailto:jmengual@linuxfromscratch.org - 675. mailto:jlepiller@linuxfromscratch.org - 676. mailto:lizardo@linuxfromscratch.org - 677. mailto:tr@erdfunkstelle.de - 678. mailto:info@linuxfromscratch.org.ru - 679. mailto:helen@linuxfromscratch.org.ru - 680. mailto:scott@osuosl.org - 681. mailto:lost@l-w.net - 682. mailto:eujon.sellers@gmail.com - 683. mailto:justin@knierim.org - 684. mailto:manuel@linuxfromscratch.org - 685. mailto:lfalcon@thymbra.com - 686. mailto:guido@primerelay.net - 687. mailto:baafie@planet.nl - 688. mailto:sven.cranshoff@lineo.be - 689. mailto:info@aliensoft.org - 690. mailto:stuart@dontuse.ms - 691. mailto:admin@realhost.de - 692. mailto:Antonin.Sprinzl@tuwien.ac.at - 693. mailto:fredan-lfs@fredan.org - 694. mailto:franck@linuxpourtous.com - 695. mailto:baque@cict.fr - 696. mailto:gyouja@pilgrims.ru - 697. mailto:kontakt@wankoo.org - 698. mailto:info@linuxfromscratch.org.ru - 699. mailto:satit@wbac.ac.th - 700. mailto:info@shizu-net.jp - 701. http://www.initworld.com/ - 702. mailto:jason@dstc.edu.au - 703. mailto:theladyskye@linuxfromscratch.org - 704. mailto:matthew@linuxfromscratch.org - 705. mailto:nathan@linuxfromscratch.org - 706. mailto:jeroen@linuxfromscratch.org - 707. mailto:manuel@linuxfromscratch.org - 708. mailto:jhuntwork@linuxfromscratch.org - 709. mailto:bryan@linuxfromscratch.org - 710. mailto:nicholas@linuxfromscratch.org - 711. mailto:lizardo@linuxfromscratch.org - 712. mailto:randy@linuxfromscratch.org - 713. mailto:dnicholson@linuxfromscratch.org - 714. mailto:alexander@linuxfromscratch.org - 715. mailto:scot@linuxfromscratch.org - 716. mailto:renodr@linuxfromscratch.org - 717. mailto:ryan@linuxfromscratch.org - 718. mailto:gschafer@zip.com.au - 719. mailto:jwrober@linuxfromscratch.org - 720. mailto:tushar@linuxfromscratch.org - 721. mailto:jeremy@linuxfromscratch.org - 722. mailto:zwinkles@gmail.com - 723. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/emacs.html - 724. https://www.linuxfromscratch.org/blfs/view/11.1/x/installing.html - 725. https://sourceware.org/elfutils/ - 726. https://www.linuxfromscratch.org/blfs/view/11.1/general/doxygen.html - 727. https://metacpan.org/pod/Expect - 728. https://metacpan.org/pod/IO::Tty - 729. https://www.linuxfromscratch.org/blfs/view/11.1/general/tk.html - 730. https://www.linuxfromscratch.org/blfs/view/11.1/general/libseccomp.html - 731. https://www.linuxfromscratch.org/blfs/view/11.1/general/libsigsegv.html - 732. http://gcc.gnu.org/wiki/GNAT - 733. https://repo.or.cz/isl.git - 734. https://www.linuxfromscratch.org/blfs/view/11.1/general/pcre.html - 735. https://www.linuxfromscratch.org/blfs/view/11.1/general/libsigsegv.html - 736. https://www.linuxfromscratch.org/blfs/view/11.1/pst/gs.html - 737. https://www.linuxfromscratch.org/blfs/view/11.1/general/uchardet.html - 738. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 739. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/iptables.html - 740. https://www.linuxfromscratch.org/blfs/view/11.1/general/pcre.html - 741. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 742. https://www.linuxfromscratch.org/blfs/view/11.1/general/cpio.html - 743. https://www.linuxfromscratch.org/blfs/view/11.1/general/libsigsegv.html - 744. https://www.linuxfromscratch.org/blfs/view/11.1/general/guile.html - 745. https://www.linuxfromscratch.org/blfs/view/11.1/general/libseccomp.html - 746. https://www.linuxfromscratch.org/blfs/view/11.1/general/asciidoc.html - 747. https://www.linuxfromscratch.org/blfs/view/11.1/general/doxygen.html - 748. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/emacs.html - 749. https://re2c.org/ - 750. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/ed.html - 751. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 752. https://www.linuxfromscratch.org/blfs/view/11.1/general/glib2.html - 753. https://www.linuxfromscratch.org/blfs/view/11.1/server/db.html - 754. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/libnsl.html - 755. https://www.linuxfromscratch.org/blfs/view/11.1/server/sqlite.html - 756. https://www.linuxfromscratch.org/blfs/view/11.1/general/tk.html - 757. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cracklib.html - 758. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 759. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/btrfs-progs.html - 760. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/curl.html - 761. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/cryptsetup.html - 762. https://www.linuxfromscratch.org/blfs/view/11.1/pst/docbook.html - 763. https://www.linuxfromscratch.org/blfs/view/11.1/pst/docbook-xsl.html - 764. https://sourceware.org/elfutils/ - 765. https://www.linuxfromscratch.org/blfs/view/11.1/general/git.html - 766. https://sourceforge.net/projects/gnu-efi/ - 767. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/gnutls.html - 768. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/iptables.html - 769. https://www.kernel.org/pub/linux/utils/kernel/kexec/ - 770. https://developers.yubico.com/libfido2/ - 771. https://www.linuxfromscratch.org/blfs/view/11.1/general/libgcrypt.html - 772. https://www.linuxfromscratch.org/blfs/view/11.1/general/libidn2.html - 773. https://www.gnu.org/software/libmicrohttpd/ - 774. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/libpwquality.html - 775. https://www.linuxfromscratch.org/blfs/view/11.1/general/libseccomp.html - 776. https://www.linuxfromscratch.org/blfs/view/11.1/general/libxkbcommon.html - 777. https://www.linuxfromscratch.org/blfs/view/11.1/general/libxslt.html - 778. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 779. https://www.linuxfromscratch.org/blfs/view/11.1/general/python-modules.html#lxml - 780. http://lz4.github.io/lz4/ - 781. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/make-ca.html - 782. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/p11-kit.html - 783. https://www.linuxfromscratch.org/blfs/view/11.1/general/pcre2.html - 784. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/polkit.html - 785. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/qemu.html - 786. https://www.linuxfromscratch.org/blfs/view/11.1/general/qrencode.html - 787. https://sourceforge.net/projects/linuxquota/ - 788. https://www.linuxfromscratch.org/blfs/view/11.1/basicnet/rsync.html - 789. https://pypi.python.org/pypi/Sphinx - 790. https://tpm2-tss.readthedocs.io/en/latest/ - 791. https://www.linuxfromscratch.org/blfs/view/11.1/general/valgrind.html - 792. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/zsh.html - 793. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/linux-pam.html - 794. https://www.linuxfromscratch.org/blfs/view/11.1/postlfs/smartmontools.html - 795. https://www.linuxfromscratch.org/blfs/view/11.1/x/installing.html - 796. https://www.linuxfromscratch.org/blfs/view/11.1/x/gtk2.html - 797. http://lesstif.sourceforge.net/ - 798. https://www.linuxfromscratch.org/blfs/view/11.1/general/ruby.html - 799. https://www.linuxfromscratch.org/blfs/view/11.1/general/gpm.html - 800. http://lz4.github.io/lz4/ - 801. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 802. http://creativecommons.org/ - 803. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 804. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 805. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 806. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 807. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 808. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 809. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 810. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 811. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 812. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 813. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 814. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 815. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts - 816. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-usage - 817. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 818. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 819. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 820. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 821. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 822. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 823. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 824. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 825. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev - 826. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-eudev - 827. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 828. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 829. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 830. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 831. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 832. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 833. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 834. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 835. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 836. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 837. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 838. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 839. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 840. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 841. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 842. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 843. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 844. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 845. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 846. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 847. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 848. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 849. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 850. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 851. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 852. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 853. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 854. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 855. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 856. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 857. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 858. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 859. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 860. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 861. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 862. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 863. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 864. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 865. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 866. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 867. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 868. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 869. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 870. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 871. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 872. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 873. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 874. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 875. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 876. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 877. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 878. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 879. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 880. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 881. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 882. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 883. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 884. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 885. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 886. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 887. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 888. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 889. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 890. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-site - 891. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 892. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 893. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 894. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 895. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-shadow - 896. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd - 897. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysklogd - 898. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit - 899. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysvinit - 900. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 901. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 902. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 903. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 904. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 905. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 906. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 907. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 908. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 909. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 910. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 911. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 912. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 913. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 914. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 915. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 916. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 917. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 918. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 919. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 920. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 921. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 922. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 923. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 924. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 925. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 926. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 927. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 928. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 929. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 930. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 931. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 932. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 933. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 934. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 935. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 936. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 937. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 938. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 939. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 940. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 941. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 942. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 943. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 944. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 945. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 946. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 947. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 948. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 949. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 950. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 951. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit - 952. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 953. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 954. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 955. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 956. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 957. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 958. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 959. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 960. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 961. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 962. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 963. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 964. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 965. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 966. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 967. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 968. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 969. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 970. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 971. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 972. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 973. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 974. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 975. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 976. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 977. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 978. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 979. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 980. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 981. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 982. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 983. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 984. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 985. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 986. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 987. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 988. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 989. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 990. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 991. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 992. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 993. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 994. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 995. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 996. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 997. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 998. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 999. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1000. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1001. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1002. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1003. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1004. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1005. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1006. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1007. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1008. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1009. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1010. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1011. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc -1012. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1013. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1014. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1015. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu -1016. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1017. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1018. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1019. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1020. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1021. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1022. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1023. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1024. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1025. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1026. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1027. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1028. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1029. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1030. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1031. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1032. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1033. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1034. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1035. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1036. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1037. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1038. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1039. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1040. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1041. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1042. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1043. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1044. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1045. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1046. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1047. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1048. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1049. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1050. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1051. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1052. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1053. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1054. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1055. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1056. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1057. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1058. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1059. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1060. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1061. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1062. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1063. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1064. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1065. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1066. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1067. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1068. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1069. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1070. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1071. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1072. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1073. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1074. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1075. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1076. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1077. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1078. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1079. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1080. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1081. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1082. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1083. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1084. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1085. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1086. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1087. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1088. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1089. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1090. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1091. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1092. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1093. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1094. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1095. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1096. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1097. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1098. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1099. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1100. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1101. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1102. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1103. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1104. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1105. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1106. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1107. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1108. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1109. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1110. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1111. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1112. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1113. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1114. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf -1115. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1116. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1117. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1118. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1119. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1120. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1121. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1122. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1123. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1124. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1125. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1126. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1127. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1128. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1129. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1130. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1131. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1132. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1133. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1134. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1135. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1136. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1137. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1138. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1139. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1140. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1141. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1142. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1143. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1144. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1145. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1146. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1147. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1148. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1149. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1150. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1151. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1152. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1153. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1154. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1155. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1156. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1157. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1158. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1159. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1160. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1161. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1162. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1163. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1164. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1165. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1166. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1167. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1168. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1169. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1170. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1171. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1172. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1173. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1174. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1175. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1176. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1177. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1178. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1179. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1180. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1181. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1182. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf -1183. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1184. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1185. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1186. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1187. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1188. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1189. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1190. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1191. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1192. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1193. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1194. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1195. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1196. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1197. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1198. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1199. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1200. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1201. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1202. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1203. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1204. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1205. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1206. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1207. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1208. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1209. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1210. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1211. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1212. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1213. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd -1214. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1215. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1216. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1217. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1218. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1219. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1220. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1221. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1222. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1223. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1224. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1225. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1226. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1227. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1228. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1229. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1230. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1231. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1232. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1233. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1234. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1235. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1236. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1237. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1238. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1239. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1240. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1241. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1242. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1243. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1244. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1245. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1246. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1247. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1248. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1249. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1250. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1251. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1252. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1253. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1254. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1255. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1256. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1257. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1258. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1259. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1260. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1261. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1262. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1263. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1264. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1265. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1266. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1267. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1268. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1269. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1270. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1271. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1272. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1273. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1274. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1275. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1276. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1277. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1278. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1279. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 -1280. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make -1281. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1282. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1283. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1284. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1285. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1286. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1287. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1288. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1289. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1290. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1291. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson -1292. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1293. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1294. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1295. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1296. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1297. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1298. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1299. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1300. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1301. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1302. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1303. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1304. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1305. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1306. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1307. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1308. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1309. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1310. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1311. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1312. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1313. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1314. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1315. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1316. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1317. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1318. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1319. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1320. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1321. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1322. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1323. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1324. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1325. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1326. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1327. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1328. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1329. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1330. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1331. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1332. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1333. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1334. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1335. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1336. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1337. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1338. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja -1339. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1340. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1341. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1342. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1343. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1344. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1345. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1346. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1347. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1348. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1349. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1350. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1351. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1352. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1353. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1354. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1355. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1356. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1357. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch -1358. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1359. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1360. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1361. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1362. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1363. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1364. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1365. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1366. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1367. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1368. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1369. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1370. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1371. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1372. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1373. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1374. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1375. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1376. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1377. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1378. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1379. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1380. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1381. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig -1382. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1383. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1384. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1385. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1386. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1387. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1388. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1389. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1390. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1391. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1392. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1393. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1394. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1395. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1396. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1397. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1398. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1399. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1400. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1401. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1402. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1403. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1404. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1405. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1406. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1407. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1408. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1409. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1410. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1411. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1412. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1413. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1414. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1415. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1416. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1417. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1418. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1419. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1420. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1421. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1422. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1423. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1424. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1425. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1426. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1427. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1428. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1429. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1430. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1431. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1432. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1433. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1434. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1435. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1436. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1437. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1438. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1439. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1440. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1441. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1442. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1443. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1444. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1445. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1446. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1447. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1448. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1449. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1450. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1451. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1452. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1453. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1454. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1455. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1456. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu -1457. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1458. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1459. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1460. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1461. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1462. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1463. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed -1464. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1465. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1466. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1467. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1468. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1469. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1470. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1471. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1472. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1473. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1474. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1475. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1476. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1477. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1478. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash -1479. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1480. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1481. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1482. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1483. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1484. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1485. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1486. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1487. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1488. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1489. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1490. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1491. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1492. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1493. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1494. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1495. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1496. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1497. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1498. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1499. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1500. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1501. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1502. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1503. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1504. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1505. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1506. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1507. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1508. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1509. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1510. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1511. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1512. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1513. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1514. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1515. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysklogd -1516. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1517. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1518. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1519. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1520. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar -1521. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1522. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1523. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1524. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1525. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1526. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1527. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sysvinit -1528. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1529. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1530. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1531. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1532. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1533. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1534. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1535. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1536. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1537. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1538. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1539. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1540. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1541. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1542. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1543. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1544. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1545. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1546. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1547. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1548. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1549. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1550. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1551. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1552. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1553. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1554. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1555. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1556. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1557. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1558. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1559. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1560. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1561. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1562. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1563. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1564. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1565. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1566. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1567. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1568. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1569. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1570. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1571. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1572. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1573. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1574. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1575. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1576. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1577. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1578. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1579. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1580. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1581. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1582. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1583. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1584. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1585. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1586. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1587. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1588. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1589. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1590. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1591. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1592. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1593. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1594. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1595. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1596. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1597. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1598. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1599. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1600. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1601. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1602. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1603. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1604. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1605. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1606. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1607. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1608. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1609. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1610. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1611. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1612. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1613. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1614. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1615. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1616. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1617. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1618. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1619. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1620. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1621. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1622. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1623. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1624. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1625. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1626. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1627. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1628. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1629. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1630. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1631. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1632. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1633. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1634. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser -1635. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1636. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1637. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1638. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1639. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1640. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1641. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1642. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1643. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 -1644. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1645. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1646. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check -1647. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1648. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1649. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1650. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1651. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1652. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1653. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1654. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1655. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1656. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf -1657. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1658. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1659. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1660. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1661. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi -1662. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1663. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1664. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1665. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1666. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1667. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1668. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1669. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1670. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1671. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1672. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1673. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1674. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1675. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1676. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1677. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1678. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1679. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1680. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1681. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1682. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1683. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1684. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1685. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1686. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1687. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1688. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1689. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1690. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc -1691. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr -1692. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1693. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1694. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1695. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1696. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1697. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1698. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1699. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline -1700. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1701. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1702. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1703. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1704. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1705. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1706. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1707. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1708. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1709. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1710. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1711. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1712. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1713. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1714. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1715. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1716. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1717. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1718. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1719. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1720. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1721. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1722. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1723. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1724. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1725. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1726. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib -1727. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1728. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1729. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1730. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1731. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1732. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console -1733. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-createfiles -1734. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1735. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1736. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hostname -1737. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1738. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1739. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1740. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1741. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1742. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1743. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1744. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1745. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1746. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1747. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network -1748. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1749. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1750. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1751. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1752. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock -1753. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1754. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1755. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1756. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-sysklogd -1757. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1758. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1759. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-bootscripts -1760. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1761. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1762. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1763. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs -1764. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab -1765. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1766. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1767. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysvinit -1768. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc -1769. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-ld -1770. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1771. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1772. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1773. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-modprobe -1774. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1775. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1776. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1777. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-profile -1778. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1779. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#resolv.conf -1780. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1781. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-sysklogd -1782. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-eudev -1783. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-eudev -1784. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#conf-vim -1785. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1786. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1787. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1788. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1789. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1790. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1791. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1792. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1793. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1794. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1795. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1796. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1797. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1798. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1799. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1800. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells -1801. file:///tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - - Ligações escondidas: -1803. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lbracket -1804. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#accessdb -1805. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#aclocal -1806. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#aclocalversion -1807. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#addftinfo -1808. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#addpart -1809. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#addr2line -1810. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#afmtodit -1811. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#agetty -1812. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#apropos -1813. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ar -1814. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#as -1815. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#attr -1816. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoconf -1817. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoheader -1818. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autom4te -1819. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#automake -1820. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#automake-version -1821. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autopoint -1822. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoreconf -1823. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoscan -1824. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#autoupdate -1825. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#awk -1826. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#b2sum -1827. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#badblocks -1828. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#base64 -1829. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#basename -1830. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#basenc -1831. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bash -1832. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bashbug -1833. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bc -1834. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bison -1835. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blkdiscard -1836. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blkid -1837. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blkzone -1838. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#blockdev -1839. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bootlogd -1840. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bridge -1841. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bunzip2 -1842. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzcat -1843. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzcmp -1844. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzdiff -1845. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzegrep -1846. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzfgrep -1847. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzgrep -1848. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2 -1849. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2recover -1850. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzless -1851. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#bzmore -1852. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#c -1853. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#c-filt -1854. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cal -1855. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#capsh -1856. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#captoinfo -1857. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cat -1858. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#catman -1859. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cc -1860. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cfdisk -1861. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chacl -1862. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chage -1863. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chattr -1864. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chcon -1865. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chcpu -1866. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#checkmk -1867. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chem -1868. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chfn -1869. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chgpasswd -1870. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chgrp -1871. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chmem -1872. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chmod -1873. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#choom -1874. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chown -1875. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chpasswd -1876. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chroot -1877. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chrt -1878. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chsh -1879. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#chvt -1880. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cksum -1881. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#clear -1882. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cmp -1883. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#col -1884. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#colcrt -1885. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#colrm -1886. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#column -1887. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#comm -1888. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#compile_et -1889. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#corelist -1890. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cp -1891. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cpan -1892. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cpp -1893. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#csplit -1894. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ctrlaltdel -1895. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ctstat -1896. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cut -1897. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#c_rehash -1898. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#date -1899. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dc -1900. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dd -1901. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#deallocvt -1902. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#debugfs -1903. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dejagnu -1904. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#delpart -1905. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#depmod -1906. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#df -1907. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#diff -1908. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#diff3 -1909. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dir -1910. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dircolors -1911. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dirname -1912. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dmesg -1913. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dnsdomainname -1914. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#du -1915. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dumpe2fs -1916. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dumpkeys -1917. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2freefrag -1918. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2fsck -1919. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2image -1920. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2label -1921. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2mmpstatus -1922. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub -1923. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub_all -1924. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e2undo -1925. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e4crypt -1926. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#e4defrag -1927. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#echo -1928. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#egrep -1929. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#eject -1930. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#elfedit -1931. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#enc2xs -1932. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#encguess -1933. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#env -1934. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#envsubst -1935. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#eqn -1936. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#eqn2graph -1937. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ex -1938. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expand -1939. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expect -1940. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expiry -1941. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#expr -1942. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#factor -1943. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#faillog -1944. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fallocate -1945. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#false -1946. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fdisk -1947. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fgconsole -1948. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fgrep -1949. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#file -1950. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#filefrag -1951. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fincore -1952. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#find -1953. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#findfs -1954. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#findmnt -1955. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#flex -1956. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#flexpp -1957. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#flock -1958. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fmt -1959. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fold -1960. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#free -1961. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck -1962. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.cramfs -1963. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext2 -1964. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext3 -1965. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext4 -1966. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.minix -1967. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fsfreeze -1968. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fstab-decode -1969. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fstrim -1970. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ftp -1971. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#fuser -1972. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#g -1973. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gawk -1974. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gawk-version -1975. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc -1976. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ar -1977. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-nm -1978. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ranlib -1979. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcov -1980. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-dump -1981. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-tool -1982. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdbmtool -1983. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_dump -1984. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_load -1985. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gdiffmk -1986. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gencat -1987. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#genl -1988. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getcap -1989. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getconf -1990. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getent -1991. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getfacl -1992. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getfattr -1993. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getkeycodes -1994. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getopt -1995. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getpcaps -1996. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#getsubids -1997. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gettext -1998. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gettext.sh -1999. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gettextize -2000. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#glilypond -2001. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gpasswd -2002. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gperf -2003. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gperl -2004. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gpinyin -2005. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gprof -2006. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grap2graph -2007. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grep -2008. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grn -2009. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grodvi -2010. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groff -2011. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groffer -2012. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grog -2013. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grolbp -2014. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grolj4 -2015. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gropdf -2016. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grops -2017. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grotty -2018. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupadd -2019. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupdel -2020. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupmems -2021. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groupmod -2022. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#groups -2023. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grpck -2024. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grpconv -2025. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grpunconv -2026. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-bios-setup -2027. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-editenv -2028. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-file -2029. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-fstest -2030. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-glue-efi -2031. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-install -2032. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-kbdcomp -2033. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-macbless -2034. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-menulst2cfg -2035. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkconfig -2036. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkimage -2037. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mklayout -2038. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mknetdir -2039. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkpasswd-pbkdf2 -2040. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrelpath -2041. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrescue -2042. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkstandalone -2043. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-ofpathname -2044. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-probe -2045. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-reboot -2046. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-render-label -2047. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-script-check -2048. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-set-default -2049. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-sparc64-setup -2050. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#grub-syslinux2cfg -2051. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gunzip -2052. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gzexe -2053. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#gzip -2054. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#h2ph -2055. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#h2xs -2056. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#halt-sysv -2057. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#head -2058. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hexdump -2059. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hostid -2060. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hostname -2061. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hpftodit -2062. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#hwclock -2063. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#i386 -2064. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#iconv -2065. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#iconvconfig -2066. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#id -2067. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifcfg -2068. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifconfig -2069. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifnames -2070. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifstat -2071. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#indxbib -2072. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#info -2073. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#infocmp -2074. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#infotocap -2075. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#init-sysv -2076. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#insmod -2077. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#install -2078. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#install-info -2079. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#instmodsh -2080. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-extract -2081. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-merge -2082. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-prepare -2083. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-update -2084. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#intltoolize -2085. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ionice -2086. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ip -2087. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipcmk -2088. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipcrm -2089. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipcs -2090. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#irqtop -2091. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#isosize -2092. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#join -2093. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#json_pp -2094. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kbdinfo -2095. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kbdrate -2096. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kbd_mode -2097. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kill -2098. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#killall -2099. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#killall5 -2100. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#klogd -2101. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#kmod -2102. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#last -2103. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lastb -2104. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lastlog -2105. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld -2106. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld.bfd -2107. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld.gold -2108. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ldattach -2109. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ldconfig -2110. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ldd -2111. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lddlibc4 -2112. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#less -2113. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lessecho -2114. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lesskey -2115. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lex -2116. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lexgrog -2117. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lfskernel -2118. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libasan -2119. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libatomic -2120. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcc1 -2121. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libnetcfg -2122. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtool -2123. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtoolize -2124. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#link -2125. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#linux32 -2126. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#linux64 -2127. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lkbib -2128. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ln -2129. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lnstat -2130. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#loadkeys -2131. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#loadunimap -2132. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#locale -2133. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#localedef -2134. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#locate -2135. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logger -2136. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#login -2137. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logname -2138. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logoutd -2139. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#logsave -2140. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#look -2141. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lookbib -2142. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#losetup -2143. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ls -2144. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsattr -2145. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsblk -2146. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lscpu -2147. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsipc -2148. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsirq -2149. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lslocks -2150. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lslogins -2151. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsmem -2152. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsmod -2153. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lsns -2154. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lto-dump -2155. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzcat -2156. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzcmp -2157. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzdiff -2158. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzegrep -2159. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzfgrep -2160. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzgrep -2161. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzless -2162. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzma -2163. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzmadec -2164. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzmainfo -2165. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#lzmore -2166. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#m4 -2167. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#make -2168. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#makedb -2169. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#makeinfo -2170. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#man -2171. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#man-recode -2172. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mandb -2173. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#manpath -2174. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mapscrn -2175. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mcookie -2176. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#md5sum -2177. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mesg -2178. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#meson -2179. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkdir -2180. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mke2fs -2181. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfifo -2182. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs -2183. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.bfs -2184. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.cramfs -2185. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext2 -2186. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext3 -2187. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext4 -2188. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.minix -2189. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mklost-found -2190. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mknod -2191. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mkswap -2192. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mktemp -2193. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mk_cmds -2194. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mmroff -2195. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modinfo -2196. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modprobe -2197. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#more -2198. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mount -2199. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountpoint -2200. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgattrib -2201. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgcat -2202. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgcmp -2203. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgcomm -2204. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgconv -2205. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgen -2206. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgexec -2207. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgfilter -2208. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgfmt -2209. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msggrep -2210. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msginit -2211. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgmerge -2212. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msgunfmt -2213. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#msguniq -2214. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mtrace -2215. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mv -2216. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#namei -2217. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ncursesw6-config -2218. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#neqn -2219. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newgidmap -2220. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newgrp -2221. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newuidmap -2222. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#newusers -2223. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ngettext -2224. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nice -2225. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ninja -2226. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nl -2227. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nm -2228. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nohup -2229. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nologin -2230. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nproc -2231. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nroff -2232. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nscd -2233. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nsenter -2234. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#nstat -2235. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#numfmt -2236. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#objcopy -2237. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#objdump -2238. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#od -2239. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#openssl-prog -2240. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#openvt -2241. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#partx -2242. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#passwd -2243. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#paste -2244. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#patch -2245. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pathchk -2246. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pcprofiledump -2247. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pdfmom -2248. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pdfroff -2249. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pdftexi2dvi -2250. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#peekfd -2251. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perl -2252. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perl-version -2253. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perlbug -2254. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perldoc -2255. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perlivp -2256. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#perlthanks -2257. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pfbtops -2258. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pgrep -2259. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pic -2260. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pic2graph -2261. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#piconv -2262. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pidof -2263. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ping -2264. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ping6 -2265. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pinky -2266. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pivot_root -2267. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkgconfig -2268. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pkill -2269. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pl2pm -2270. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pldd -2271. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pmap -2272. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2html -2273. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2man -2274. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2texi -2275. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2text -2276. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pod2usage -2277. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#podchecker -2278. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#podselect -2279. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#post-grohtml -2280. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#poweroff-sysv -2281. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pr -2282. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pre-grohtml -2283. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#preconv -2284. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#printenv -2285. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#printf -2286. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#prlimit -2287. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#prove -2288. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#prtstat -2289. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ps -2290. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfaddtable -2291. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfgettable -2292. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfstriptable -2293. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#psfxtable -2294. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pslog -2295. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pstree -2296. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pstree.x11 -2297. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptar -2298. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptardiff -2299. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptargrep -2300. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ptx -2301. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwait -2302. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwck -2303. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwconv -2304. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwd -2305. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwdx -2306. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#pwunconv -2307. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ranlib -2308. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#readelf -2309. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#readlink -2310. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#readprofile -2311. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#realpath -2312. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#reboot-sysv -2313. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#recode-sr-latin -2314. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#refer -2315. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rename -2316. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#renice -2317. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#reset -2318. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#resize2fs -2319. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#resizepart -2320. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rev -2321. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rkfill -2322. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rm -2323. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rmdir -2324. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rmmod -2325. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2dvi -2326. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2html -2327. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2pdf -2328. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2ps -2329. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2text -2330. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#roff2x -2331. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#routef -2332. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#routel -2333. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtacct -2334. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtcwake -2335. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtmon -2336. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtpr -2337. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rtstat -2338. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#runcon -2339. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#runlevel-sysv -2340. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#runtest -2341. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rview -2342. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rvim -2343. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#script -2344. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scriptlive -2345. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scriptreplay -2346. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sdiff -2347. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sed -2348. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#seq -2349. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setarch -2350. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setcap -2351. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setfacl -2352. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setfattr -2353. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setfont -2354. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setkeycodes -2355. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setleds -2356. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setmetamode -2357. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setsid -2358. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setterm -2359. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setvtrgb -2360. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sfdisk -2361. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sg -2362. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sh -2363. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha1sum -2364. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha224sum -2365. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha256sum -2366. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha384sum -2367. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sha512sum -2368. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shasum -2369. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#showconsolefont -2370. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#showkey -2371. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shred -2372. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shuf -2373. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#shutdown-sysv -2374. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#size -2375. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#slabtop -2376. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sleep -2377. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sln -2378. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#soelim -2379. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sort -2380. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sotruss -2381. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#splain -2382. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#split -2383. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sprof -2384. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2385. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#stat -2386. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#stdbuf -2387. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#strings -2388. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#strip -2389. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#stty -2390. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#su -2391. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sulogin -2392. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sum -2393. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swaplabel -2394. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swapoff -2395. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swapon -2396. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#switch_root -2397. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sync -2398. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysctl -2399. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#syslogd -2400. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tabs -2401. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tac -2402. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tail -2403. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#talk -2404. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tar -2405. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#taskset -2406. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tbl -2407. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2408. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh -2409. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh8.6 -2410. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tee -2411. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#telinit-sysv -2412. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#telnet -2413. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#test -2414. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texi2dvi -2415. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texi2pdf -2416. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texi2any -2417. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#texindex -2418. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tfmtodit -2419. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tftp -2420. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tic -2421. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#timeout -2422. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tload -2423. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#toe -2424. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#top -2425. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#touch -2426. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tput -2427. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tr -2428. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#traceroute -2429. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#troff -2430. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#true -2431. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#truncate -2432. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tset -2433. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tsort -2434. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tty -2435. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tune2fs -2436. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#tzselect -2437. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uclampset -2438. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udevadm -2439. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udevd -2440. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ul -2441. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#umount -2442. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uname -2443. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uname26 -2444. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uncompress -2445. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unexpand -2446. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_start -2447. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_stop -2448. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uniq -2449. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unlink -2450. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unlzma -2451. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unshare -2452. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#unxz -2453. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#updatedb -2454. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uptime -2455. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#useradd -2456. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#userdel -2457. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#usermod -2458. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#users -2459. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#utmpdump -2460. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uuidd -2461. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uuidgen -2462. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#uuidparse -2463. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vdir -2464. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vi -2465. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#view -2466. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vigr -2467. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vim -2468. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vimdiff -2469. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vimtutor -2470. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vipw -2471. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#vmstat -2472. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#w -2473. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wall -2474. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#watch -2475. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wc -2476. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wdctl -2477. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#whatis -2478. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#whereis -2479. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#who -2480. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#whoami -2481. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#wipefs -2482. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#x86_64 -2483. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xargs -2484. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xgettext -2485. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xmlwf -2486. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xsubpp -2487. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xtrace -2488. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xxd -2489. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xz -2490. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzcat -2491. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzcmp -2492. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzdec -2493. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzdiff -2494. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzegrep -2495. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzfgrep -2496. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzgrep -2497. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzless -2498. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xzmore -2499. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#yacc -2500. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#yes -2501. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zcat -2502. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zcmp -2503. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zdiff -2504. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zdump -2505. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zegrep -2506. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zfgrep -2507. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zforce -2508. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zgrep -2509. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zic -2510. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zipdetails -2511. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zless -2512. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zmore -2513. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#znew -2514. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zramctl -2515. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zstd -2516. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zstdgrep -2517. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#zstdless -2518. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#Expat -2519. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ld.so -2520. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libacl -2521. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libanl -2522. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libasprintf -2523. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libattr -2524. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libbfd -2525. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libblkid -2526. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libBrokenLocale -2527. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libbz2 -2528. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libc -2529. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcap -2530. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcheck -2531. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcom_err -2532. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypt -2533. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypto -2534. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libctf -2535. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libctf-nobfd -2536. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libcursesw -2537. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libc_malloc_debug -2538. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libdl -2539. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libe2p -2540. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libelf -2541. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libexpat -2542. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libexpect -2543. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libext2fs -2544. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libfdisk -2545. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libfl -2546. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libformw -2547. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libg -2548. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgcc -2549. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgcov -2550. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm -2551. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm_compat -2552. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextlib -2553. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextpo -2554. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextsrc -2555. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgmp -2556. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgmpxx -2557. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libgomp -2558. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libhistory -2559. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libitm -2560. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liblsan -2561. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libltdl -2562. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liblto_plugin -2563. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liblzma -2564. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libm -2565. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmagic -2566. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libman -2567. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmandb -2568. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmcheck -2569. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmemusage -2570. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmenuw -2571. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmount -2572. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmpc -2573. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmpfr -2574. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libmvec -2575. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libncursesw -2576. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libnsl -2577. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libnss -2578. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libopcodes -2579. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpanelw -2580. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpcprofile -2581. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libprocps -2582. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpsx -2583. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libpthread -2584. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libquadmath -2585. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libreadline -2586. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libresolv -2587. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#librt -2588. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libsmartcols -2589. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libss -2590. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libssl -2591. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libssp -2592. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libstdbuf -2593. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libstdc -2594. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libstdcfs -2595. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libsubid -2596. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libsupc -2597. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtcl8.6.so -2598. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtclstub8.6.a -2599. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtextstyle -2600. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libthread_db -2601. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libtsan -2602. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libubsan -2603. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libudev -2604. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libutil -2605. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libuuid -2606. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#liby -2607. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libz -2608. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#libzstd -2609. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#preloadable_libintl -2610. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#checkfs-bootscripts -2611. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#cleanfs-bootscripts -2612. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#console-bootscripts -2613. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#functions-bootscripts -2614. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#halt-bootscripts -2615. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifdown-bootscripts -2616. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ifup-bootscripts -2617. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#ipv4-static-bootscripts -2618. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#localnet-bootscripts -2619. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#modules-bootscripts -2620. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountfs-bootscripts -2621. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mountvirtfs-bootscripts -2622. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#network-bootscripts -2623. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rc-bootscripts -2624. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#reboot-bootscripts -2625. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sendsignals-bootscripts -2626. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#setclock-bootscripts -2627. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#swap-bootscripts -2628. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysctl-bootscripts -2629. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sysklogd-bootscripts -2630. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#template-bootscripts -2631. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev-bootscripts -2632. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#udev-retry-bootscripts -2633. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#dwp -2634. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#config -2635. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#System.map -2636. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#etc-udev -2637. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#asm-generic -2638. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#asm -2639. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#drm -2640. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#linux -2641. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#misc -2642. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#mtd -2643. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#rdma -2644. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#scsi -2645. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#sound -2646. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#video -2647. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#xen -2648. file://localhost/tmp/1/LFS-BOOK-11.1-NOCHUNKS-pt_br.html#man-pages diff --git a/LFS-BOOK-11.1-pt_br.pdf b/LFS-BOOK-11.1-pt_br.pdf deleted file mode 100644 index 32a3b8682438c5cc2f356f707b1f67aeef671cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2095171 zcmdSBbyS>7(=Unz*I>a1cLo^Tf&>fh?hLMjy99?IfdIiZA-D#22o^lJ2X_q+AmI#b z{m$OsIq$i5t-H?sW7acWUENPtRd-GQs;h@q`GpiK2OAeEZE;Cy87c>W9pGqcgDND1 z3RJgtwF3i$q$H)J*x9)x*x7mbp&vBbs6a6{S1U&d zfI$LcZDQ^SaDsl92186B<^XXp*w)^}!36*YNSa%_Izm{@tiTpv0f0Ef%?u29;bv;; z!iWl#fPhV)l>mkpj%MPHjL(1$$O!4mp%5VTJ9p)6%>=L&r-P|6P4?F+D(qdEAY z3l~?Y4ECs=8HevImDP0!0*`$%aWR$@5_1P+^Fk15wrRwwi$pyVt#b#&RLq?aq_A;h zqX2n<@UfU;QYtvTfeZ{ed5YAp0y!~bshF7L*5l^NepJ7OU2snmzOXlltoVhqOZ(g zo-Q8mBTu`GCgeqn>^vh+clNq-&+{5u*}tcaI6z<{frMT*V|}5SWzuTm^Y)^A6sf2`8Vbd zV6gfF5eou^lo5$Vk)FY+8N=EIQaiyLc3>gADhqs)CkD3~RGOHoN>B6W-@iQzG&F|Qp|S6t#SaAJ|*LXpK@ zPe5 zND=183JpoEP)-+9YOGw!RN?t>dsqyKvI&FNajxNZ{AKG&XWz`mS=`!j*(a0ecwFRnNRJn zZLjIC>k;6@B8{a^D0{HoahOmnk$I65L*ibbszh5Uq0_#9dWEa>6o^ZKv+_oUhWiZ$ zV@Q(typj!_0j)5#A9ilkPEhmfJRaI?NCxCBr=+Cv+mDy( z1a4S$3Er;-6eK3UT9?;q>*5?r&tuz*Wl%ZLkOQ(P4XOQAGL)pprgq9NJiSqVviQaP zk`-6%(hR1qQp!^>ePJrADm5YXhFXVVj*Xw`hinw(CIddbn`p7z-bXG~UAcK_0fU>O z3+`PnqO_P$bh-D+TcuyjbhI_)rnPwVE*lPV4)QWuGHUem^xrOOGH%^=tqYxm^$CftNw&t02cjrKq8gzk`yk&N9IJC;&ZtQ0*r5#?|K^@Daet|yg;;=$Tx z*T%xut&=y4-`MP$HWo~bG;|_AwK3l0{t>Iwdn#`gWiEOI50qE++>y$smotX zw=h6S?=p4D=bqHWZP9HpZdnfBSB_Oh)L2!eF6FcZ)#N&NCl$T{H-KAdSE5YtE!@6D zIhI+GIV>6fT$Gv%v!65vnUz?R*!s+0)@8Pljh1&i3@k7DhyMg4g}kbf$nB1&?j2vL znm>J)_(m;Btzj0k10Ij6Q4vlwLQ&*3$uu<~R8D z1>8y$6O`>nJO|SHfabf)n8WVK`N$`ccQoe(60&GQ9)@b1NiDREf}x*o63FGJWPY-_ zaSk(;(H%;7i{3P%SD`z6Hh!61?m)`W%G>APGtWKBo=`n$2|jHl@Y!#Z_NO@i zIo9_5w)oPI)tqpdX#!ZxaHIc)sqOo#POP`jOAq1}pR1dyLTd3023g4jjr~^D-)ZY; z&V3adeU-TxbJlg{5&ns+NykK8#p783-*@)*iTvv3mxaZ(doFIS->qI7DEO4w9k$IE zQXf!LOWVhOni`nGpYjtRa5*q(b@8)&r7O|vd~sU44kU&rMp9%~;^LL%#pm|p9}pgR zzUfokK3Ch=DEX>_`&F?*$kKZlr6D_kZ3YrQ-Hru*??qlgwERrwr2?%XHzjP9E z&A5;M>2#@bm(LqFNe)yx@DBD?y;i@l?gh-)gV zuED6WCn0PASJ+%MWCPJ1IB`PkrojK1bp6~tsP3MxBnVqSHV%F@1tYMJ45qjkRyi6W zkTk7pKnAB2QV-Hzzy*16sEjl2Kl?a9Dn%359XX0u`V)S}2N&~U%lG@1?f1>!!v^nh z6UfEO`NxKk>vx(SP*y@h+{6WJ4tUrjsv7*k!2LS|bWaZ58mfCafdN1Tu&ar=iL1#2 zMa|9B^^vHpApf_`B+o-9f7>+*J@08_A~wSzF#adSHrz}j4xN{d^8UBO8L zY-KIu4FRipE2^7$+nVv4Q#}_E@)Yp2ce01R4d7{S=inmXDNF_3ew%^?px+%^d2(bim@bmKn**SrnoUBj|Ru?Y^R})WG z2N&u;dUyeLF@sn;xjt;Je|wp^*`FObxk2n6yD>Kdg6+WeUWln8!wN#czjg80pM@jD-o#bJ#L3Cd+RWr(fIug6i$}iSs~*{0 z9{`hxytRXyCqN3~Xb(^`gP6FQSpirdK|^=GBY*=sYN|}b`F6@bRodb{@CD=1yu<6po_oh@ps$&jqK_YLt6;^4*S#{9qmN^L*yp}{GS`53O!K%Sac6q@1OPn zu|v_`qdoq?`&;wJk%0fb@n6RL^VPp`{;Pf-%?w>|Q1b%+T%aO>Qv!JPhxj9_CLd%J<+s{uPJ<{tiU_5;&B)*|9^f?xILciukk1`ueo3 z60qU%anQgrxG7TcVNI`lMz<&M-m(L*J{>LH9%Z)3aph#l27u+2c?OQuCq<=lpS+x^ zYQx@~of~?Uq*HMh$Kzi3se-zNc2cM@jRa8ALT?e~>z7rWsg_1sW65C=WgUH1&3OJ$3bwAVNcQWKBJtZwR`WDUa%PA z)(~cWFbGq>WaHNL8s-AP_kSB6Pw2e#M^LB|g)L z!GO-2)EgOs=w4GY^ME!vZS(;8JEN(BQnDivJr)ydf?j^PXqj~mpQhWbwIi$*d=}Zc zZZDFwKG`Hqg~_iP!)Zm{Hr`05DcSv(K&56|Q_aKb0-W=k1Kj>&bgp?9%>7Z6dkzqH?wPS27+pR7v!)HED$a zD}&DCYOaZ&e32mJH?^unjPXjU(%^TWozJMU^CF|rHT6G)4IA}=RhLjRm|9u-_H&9; zrvT;}UCJfd9uVKH18%{oobBM&n}YWV9+Z$ZHJP&^n$L>zurysO>(!3rFYZglI}Qe< z>TR$Ynsp_l;7vLOxsgN(N8WWn@&f%y&b+p?WH%gtP_z3)rjTxjUioq|q2tYP8JjnF zcv*1qS`8b}@gt)U?`^cmpE&-j2WJ}k0HrdG{tEZK*i}O83PRML5k)67GEM^rJ935LK z2T@CO1D2>*zC9X;V~Phvs>IWf-QF&G)C%|yFc;XCtUw$;EuzcJqdtvOZ@$G%gn})>_AfEw#U0 z&QHt7_MChkglSE|pQg44bNWP+HtZH#ZJ%@8#G;S%N!hxu=46M*S=3rbSieuD8)w?H@i7I1U8tWSdiA1*ZK`R2qSdov`NlD;d!%Xl#!qqH|H|+Lc>3lvrSRP0Dv}K6MCEf}Md(G4cu7XN*IEs4F+U=B>cx$e zV6#@VT^+&n)g?nmI4%$W9G$IX5{ViGtZ?UQJIfRKgKA#VP$R-n#6sg{c1UxWe%VL^ zulA>oexZ9e<|?K0R?)-$^R zu88>Loi+}|Q`U$l!(?mQE#j4VUYheIK06qxhj*N4l@$bwH8kQ0jCJ&FD<5;eIA}X3 z9>cAcYJsqhb~aWARM5z7vY9DjM!6XfO_cQMz9ZYLiZvsrIWMivV$C0iwXSq8Lu7WP z*mg;6^0!3k+G~=-%q}>X-w=Is}3Y=S`6}t{};27!Bs!>sF zMPftBuP9rIawJ5%ZGzWla9rv1%Zo#M3n(uN0DWoJyqUL$@1w+b^jame7SY$YRDGH7 zjmZo$$LYxMHgd^n4OU%^UFqNWHPkJyYl=>ZcE6jVw}H1n*loZ(mv`J0c8PjLiZsz- zXh`oodL5kH*)v-l84!Gj1K=s0f3GC`oG#4TP)b8zlv`z?MZ>ZWOu89)>EJ139uY#6 zi{w}!e`Rtj+U%otifq@xT8>9whddjghFNufWcU50R z^4qjC<-xHESJ>wJ;l_L0164HmC`|oauDvSp;Q9?G`x#oy)ea-1)dZP7;+VN>rrB)S$5PHhwY3evwi0-GdZoDwN`q%UpQMcTm85YZjHz>y?yyIWa->%sk9g94P#0 zhy8Wuz>l49mKj627d zm;7RqK(_UmbKzX5b`RmedB$RwP#}1?m}iygOSP(Vs9EIEr>1rKmYv36=G{w=wKC3K z+HvWGjM%-=NrtdHA=&e;58DlkBbxKFyWa-vfZQ*O<%7MNFZvxm7Zl|cv!%W7-zP~7 z2r=)-)V|Iw5H&Q3^iHtrGhd4W zvROvfvfZSFr! z0%2p)B6@q$`f<=fp?DK6A%}bVJ$f3Q3A%|Yt37r|syyQ-XMOtSUh;2(C?~UtJ|(Xg zh*d559mx5OSL+D7n04BgQt}-rJ7{!J9dhNnwj*as`(1JB#Z5u|6+HByRiAs?1qTU| zTb_2=9Z>uk*s2}lw7v9x&Gk!DzoGvWe)X)>oFAxX`|VX_`y>w*K@Sl1qn78`3(Qb! z*tDYbF7Tk9Lnv{7#u%^Y`q(AX9eO&r zGI+{Y+G|yqSgiO*r8M{sb@kKaUTN1}Coa`))or?|#?USc5_~o|t8fJgiIN z4j&EioW?~4RZK>v#$I+fF9?Ad3W0{C)Eox1spl%;$}FF~=D0Kt+!&;;mL->kS!L(l zc{ebpQ&xAnPj?Zfxov!OoEMn;NKJSrgg{8`3bWyr?-FF#$UCo$P;P-`lRcewsrYzmr00(xZ zvHrkb%9fq{ME5FUAc7_0-gFH^oFSUeJ<>l`jOBChw6x)qWympO!Y z4Q=I{D1>O#a%w&`exGd#>+`=9{N#p5 zi~{SYE$tZ-i>=86RlU+^DeXTH<>_MNPU7qEl#sS9)}@fR6D&c za?dC#_`2>j8_pfqP_z{UD6$`-#_Pj|-(-+fnBEwW=J>V^k%VpAOf5-LUfs}GR+n5e zG(vz6=;$bE3^`+>6N;VK^|@U8dDy+Q-K^I6^2Fadv6qNMTO~NVJ8q~N<_JaKQe|0` zC>2NzkcGBe=UoBB!NfGf(Qb*vIpvlu3 ztn2O2A=`TLBn(Y0oxSHctj3om5sGqwxc>+caQqRZ{4ECge?J&~1fTx}js6uy z{R@pghDiStG^*#a#DnR7RWWA9X;#x@bP4WLNIW{K)v0%H!g96<7s<1?h%La~?fOEi-cK5xF; zUt0&w9+F7~vUT_<2X#N)pc2wEX(4!6$|-Z{;iB zl7$z~3t6f+Gue6R0U52W{I^f&cu5oLGFu02Rn{-s?GTtDbeaUTbqqsXvAA?glGMss zd?R}dj4#v(PBQT{n}!;v>U9z>1zF3U(N7af>##<_^?@VFt}b?jeOLjDP z_wzFtI0q~0b#xdI$-ib@-Ehhc2YxUKr&1}>NW5W@W@T*9qNc@1?n(PT$%h=}yEA+3 z&WhwTJBW5tujQpY$>n5Kk!2o`BrjZ95Hg{;Al4_D6%B{+VdT?%o5JJ)drS$XvwA^Z zXDkXjCs}5t8}$U0ccHX+e-QR{=0s3!cH2y|*UC$tK%C~>?AY}$TSw;4 zhx|U=P#^Mpgrvp@k2fB4=GMsDQ8C?XajQO+FLq=Ul^>)G&($FDOMct0oUNm&>!;Wx zcray7+n#u%6PpmlRjPcnhO3$LMJ#Zuy^C&>B-V{K4MA8!RVQ`?abJ5C(XFyXdUwi{ z-NkAQgs=gS<_z;qYy7!uusWTM!0SsYQbN79&3cOGA)xG^rN^I@p+hb;RUgH56c#JL z_G#L8GLyTbx+<(CTkI}3g=C4=nTb=~P))$d=IXiii%c*PTkZ3CKdg8o1(>6771Xen zTts4JW@kX;80_ut5_kS2j)e*er_Sbz;nOg7g*<9)>(p-hOw{pG#}i|0fr4H1GX z*F2RoQ}Fqfx#G)r5ki!?fU!4E&`1-H}Q~#f+ns2*k*Pye9F-nNd0=FT?1Ju zVDxk(7E+<5mzP3Wvk^L+H`Ijqc%vbxYiqc;W+5HvWPlEkVe5RSArUx({c{WU6JoP0 zffes`4eJUIW3Gh}Fyl93eIK31)SJ<{AF-Ta1Y9?QQzbsL>2NG*+y~^FiKa3`vfD&( zhr)I+89$!r9`gHb&>T2^h}&nQ&KFGKW>v-9!O)8Nu;#FVY(#wOf@Xom0QRk*&2HV6 zkWcMlVC)oO!fpSg2XiFS#~Lvd^8Rzqkl_^;h^Y*BoJ1x`EPFd4ZjO$5D6xnF0C&|) z84Q}mSfv+pMHz1h4Plv=b?Su(6fKRrI_=LBi=#Gr+d)cZ3p+Z?X7W&R#?;K|g=$Ia zu678VTomxSxtxvj!;S!A4YJA?De*-J7IthY*2+bpb5ef1wk5mqr*XnQIei&bOP+-Dp< zih?2~Qxqhd|A7o%>LLWI2@Kf$xwQvxgh@$GxhZ7XwYS@Yit;tvotRNSTGcXed4030 zl_NyhwZrabYCijzm5d5u9F5FA?Iwb^>vk_}sut6iA*84`5*yebZ<9xM4W@!S#6l*$ z3rxia@2gXP@il9bSdzjLzMOlms)=iVq;ZeTG+SI*BpFH1@1j#HTl%F#9nVeX3gK0` z`f-ELi=(d%>+8D9>%&;M`P>L*uXRwFHf60pn5``4hSu?H0C&RokBNpqZZA1)mM4 z3LQJ0Vht@&jFnIurIV@a6-r;I5*%9gHa<%)v!||A21Jar&2*qOX5O#)d@qbB1oNcn zGX+Yx0j7za$Jq2+YW@s7m}7Ep(%=TQ_*pYgmFFu~l+m_0^pY7Hg@XGVrEf#qyI4Nh zb_y&;jz7tTxwSQh*@&_3>aSdHAuha*?Is}Si?gYhqdUsfieg6D?y4k`S^&JmFaZ`WU@@6-Sw8wr0s^tNj4~DA~ z0Je&o9Z~0%4o1c`LnBFSl$l49$3*#UtnIJWoX_ho)d}GV+_7!Q`M*NmO>4H->T{xs z@4qal)6E!msLObpC&enkUZblyT0JQoJHn)enUn<3G_Mz`Z4sg?SS=lb#KL|3_%X4* zB5Yx1J7BD4Mcz@aEyy=eVK;926;dS_PMh}08|VFSdMQ1hoPJXbyjBXX83Jcpy+guC znep!Acav@7YzS)k%=n#~Pay-->&Ew0F&IrQhBE0)cy-VvxyF6HQ*@^9*r} z4BepXmsihwCE%Cp8Jd-hOQ*dhYzTF_=-1sKM*A zl1Oo;6ru2o)#$O|z41mn8L75n#p~^%=jWJdGuNhiysrb28%aBxV)u|gcHkKtWy|BB z)SkZP9j6+3VKA*=(AS6sS3&Ljx!WvPtRATmD?*=6yRtPhAlWKK$w&9VqoGQBq5$9@ z3+o~%<7dCQkeBlO{$y!IjCttGs2fq6qY>B|aCG6^=aNJl z!u9*-EFO=<&bT3?0D@n)gN0+)!{0z~F5B%g7m{Z~q^Wbh5^NG(mL+!@B#fo#nLef` z6c_S*FdqAG`|;ir<4QWmts+ee0l_?T z&3XZ*akx^|mP;Ji28-}L1X@ipJGUPTeWwPnOTMwBvzoIfqhs}j)C438cFw(3RXTMm zjI4~J@|t+#^wWv=s_z|4d$Bv^FS@uD`?_!?_MBEar3^=(4;?HRGc@iNUcyH0;J}Zm zPY0Ku!aJ$*=T6P*05-|=Sw(72GmL*-(6Y&0qhil~%DM3I+0>r@Naz(*w)F0KV`VbN z@I-Xkr!`caZdt{>u1xcbYMjrb$jmYh$9lep9RhVRF}d-~-RtaR>b5pOC(j&MN0f6M z1KHXa2*z4lg#AA0Mg$6s5I&ucLu{=zR;X3KRKi1ji;X{;{O~=Id?`0C6jfy+Wv6$L zP`?8DK{wJ5=Kz~z8UDjuE_LAf0NQ2n`5FC!>U)v7{Sks#R(H2=T70y24w+zuOv}3V z73PKlqHxV`SfcXc^D2Y7$^az>y4ty}rVpZr@%=PF556Y8AK!YCsFZrhn-UYN=Y50V zJw2o_snZp;2)(9y><*1+eCYp+=M%CPT9;OCU-@wE_Pt6i<1=KR~ z0@gDTCU$*>i|neR<`+v?f)2iLDIIh1Y)!~ch|)}aUhw77T-+_&*cjk_^nC2R+k04= zvZv35q+pqS>FQ}>X4CH%Dx~QpgLJOqEGeFM22R)h^haztX$-89FsCp8@kdo(+|5kT zxa*w&Wm0DRB^gLdDiV>6_#uCx3#R7tt4`}IM9H6meq(W_GA zl~?)lN#k)V+1Ij$v`?|Q9GK{fUc&^*(oKZQvYmC9|MZ#9E0(RXQdnuX!O6p(?1S?g@gb=4OLkH!$Sg%%kLR9b`L2f7SN0mXoAc`Ldjzy zj6XCV-rmFoXzym{YHeq23bb}G2Ya$vx!T)7^U~FR>*lY#bB@2xlmAE}5_52HbcM41 zkv{~@T(L!ko-~`e0`vgf++1w@+?)VzJ{~q6US8;vkBy%Pz|GIg1_FTq2GE3hDA&VL zGy6k9+!109%~<~%MGV04m_&dIlmP%`QU9I-|Ip?k#PA^OZ~09B%b{?B*x0!M+`OD@ zoX~-A^0TvXb3;eM$H~V3|8^vQ-FNt#+JD!&tDU*iqo!q)wA7V=YK|7J9?;WoR&h6L zJ9BFXOV&sFf2(lLzn_2q2U2qI^02XU@Blzi#q)CU0l0YiAH)XnaI4$w;utkw=Lt|oR+swL~g1C1_mgFtM2TwGA&azJO>e*xTL4*XC786mPx1cpb^mqBLckU-PGB<^wnsBsIJ!AN zlfs~>YL8P`N=D5Hx{81nRxbY=Kf(ETPxK#5+usER@v`ypaRZq38KsI1Z=_ggP@$9(Fc%sD3y&d7+-@ zKU|UzLa6@J2ZH|YdH%Tm^O*PfzmG@O5f4EYdCrb1I>5G@Oeo)O*U~pP_MA+wGv4sbnYd=nN}wq#!%;Fezd^YR%P_0R;jquo`M;!d~%+lck$ z-y}&9$wHb|sUe=uZs*_53>3eGEG{;d>EKNkl$ZV`TNrx zCmr;=<Lt6hS}4ab#_ez?$QzbN3B6ETdV3 z%=7(cQtoeBLOh&bjF6kVq;ExrA~kLw(Q0iI>@2;HjU$ird4IW*`pto{M(OoIpX{*H zplY_O-4`xo;aZ|X24b@3QWHga<1gc2RkTQWKAN(Ns)b<_t{l<#FiNH{uRpKBgDCx6L(xrHfBX# zjwW~|1o;lQoLITO2_N0YOgcBBbfL$)|2#jv(0{wTQ|huUd%JZ$s$^r5KUSMZ>kZB* z)XmMIw;zomkW_h76Iq9KHwwdTbIA8%=xdN0fDmhD*dq@o;yvuInyM?*AurXlh*iTZ zq*NqVR$6n0#SUWrQ|!KGn3jo42r|!b=@P0S!*WDIX!_L}@%{m`>Gx^;k!2%$^^6Z( zhQ2%_by3{oRCy|I-)|gzn0bzH(t(GDy()VnPhi$6GJ2&;eW@XHOW^8rd**d^m%w|D z5ScHCbs}xLEISoSGQ1|t4?iYn9ovY(8V(xY#Qto&Z0(lpBG^PN*0(~>pW(=5l*DDE z%9d&|-twAMnK+&PV~5*nYCm= zHu^pVl)xNpjblYGn!h8PdAm(+!X3aJ2PFYlh;O=OdCB%S`M?s0?*jA z`D&3WiFy%Bv_+Y)$te~6@=pspo!Z=-eyL2@rF(L?z&oEOd2Ad@^8J}~p@9A`pQaQt z65tH3VU+(U#qQ6qbtUTQjVzsXu+>&%^rt9>Nuo7P&vr68e(>vDz&RjlGEazcy{SYB z3(^)}9D9qAQ5o!;@gnuLumd4?uRnsS(UVx63AjP?q`vo8zgnD{l<)Rgq*4Tw6cd$6 zjq#$yUg3p(Mm7C|v3d<|)*UaYl$Ut)w976C~i=4NH#u+Sf|f zcVBH=#;qi??8H4lEvBVa+u$b(qnqwywaf8i;Dc6`AHBD7G-SLkQ(*Gx`+{e~n%=Cw z_>*6>_IK9(k9za5(%Ea-Y0&2OdbXz-8g1iHo@5Yzv=hf7ct^h6H^8xo^3j6gn{GTw zi#x|#$+pATo~#$3?m&;D{1hR_Tul4%XhlR@`TO=Mi>wY&yeYS2Jl%97_FS{MVk;Xa zN-GOSCIW8O;%eiQqpU-~;*~t1vUE@Qmn0Jt8Nk)S?xvK1$lj%0%eH-Uj2b~BfmgjF zHf28eOTDsXRHk4=uraUSXcSsp5G`pU24?&A8qR0N4g69J28S|bJa*C`r4Kr$6{>Wx zOSzYCNWCZPvO%LIrQ4XBt%q~)&sok&k8fnXj^T^ja=xxPYS-%x<%*U4uw)+D5k7Yg zr2K4FzW)w(k--KVcV?P*_25)ck%YKpHd_@7;ZXA}KG(OMF|dvIvC7fv#?WHZH5vWv zD0>7I=U_96<8FUNr_&D-9q*(=yLVDVtY_8bHZDFVWPP@@ER9|kh{goL9(JfW(nETu zIpQ(9M5LY08G^!7+8Nf^EC;Wz2zYl5JGzuE;ZotNC*&j3sWDqHHsQ^L)X*o33UtB> zYuW01;Kb!nu5b*Aocqaiy?f@#tvD8U-;6xPItp!zclJI5mS?;s*ygn_=rgswZ+Nd_ zDCw+A@1IiMTxZ();SFrVWgzonb9q&zho?<+NVjk1yGGS&?FF%Uu+f%q)?OY){Z)=3 z!I1&x=$s7v0dT~F>cHg>_(pa)xax%T(kWQgaS}c5EefBy8#R_`zQ6CvMTS z33PPqw{IhldLx6m)<{2F&D#(T-T`ifuLopuo_bzmZc+EZktWc-UDrqo{KCbSX|aOb zVvn$xv(S|sZLN9mBC21GnEvyU(N$vGS4h3~GCqNTR9rc)H=&^?krcXHwe%VmXvDoj zagjiJ7J16;X){{pofXlGZTF=*Ssy~J8mp_k=lZ_)yV<Ge+m&m&;MFo0@BE`z0s>)FJsa;us6%)UA*~Vo{geC*}sTkp$-wqJrW4QIB0_ z<0M`+Vhce<5unGeXXM2fzD$WGMqI1#64%zQzUFMN;Yb8`kQ@k^S*anKfXhhQb&SFrjoZs$*ewTxvjTAqZSK9{FAgNalha8}hA`T!I< z0jYDa)63sBnuN@aAHDvF9Z~)oJ*d&t4GW+-9~l%VMPu3<|+!~Dle!Fm)fH%1z}T# z0qd(pXd@zo0{aXB-nw`8OB2Vw5?+4Zpfw6{2%PPKz#a`UYWJ~Yyac}RPqe2_NVwvpC!1fL}t6PgTCjtiG89YZy~zh*uQyxTM2;4^x8-K zXPgW4NAv&$MI3*mVL+oDzXeY8P#?oNs;Ha~fCl<_L=LErC>&aP%xge>L~^RAkC;al z_0Q{MpueE{|JA{=$B>W<;8Ets>kfb3Gu zN~Si@xYh&V53u!{lAwft`?Cco`OmPJto`pdEVQi6p?}iA$@S2S4A|Pz%JuhxxV5W` zG8iJ^Xz%3c@NhkX?}0_a(asT~2EB6!9n1@`yR{iu8e-!0w;Oq$8NDMMPhkMa@SQ#a z&!wfwqGXuR7_U&_AUI6vpl0?)j3J6{ojjn8EQ6ME8wL5aGK*aGcdQr_bhBsO&pxxm zud?*2{maz(BUHh||L4T{D`@aAvOg5W`B3<874%#54$ATWfr9>d`4ReFH3btFTWCD& zaf<)_){&XB%iR?8JV8*9?ka~YH7@aC{{ceqoDki5zcQbUy7 z^d3Abh9_x){iZ*HYK2QdkcyY+hm&XT`CgE|OhSSii#5?oBL0s|S-1U$SU@sZTbg2E z7>KmZi*yWV*(%cEoq*@%5@-Fj1edza;{)so!O_Vn+>PGNfGUc$ zwPbNaf%HR+bv{Bqz2AOl_Pi@7+SYTJbD-ZMc%V-mH*k-w!&3!INuPtT&TQNn5I-n z@NvM$hHtcKkpQiIwO4m3cyG2jfL2k-3=U)~;~<%?lYnj)Hd)ypp7yWoV)|+@crOB1 z>WPKwV=WWX`jTI!r5K+Tn!bos`0@JXdmAX6e=5p45cC22C2W!Dn-l%FT!kn_F_lOJ zTHvKz6o9f__$DnPrz%*E;bc)+qN*;L8?RSmfKzuUd?VPIg}}-obz@9i3|FUQ2w`oP2X3GH5q^xgCC=mx8+_-&eaFcrW%H)xpup@6=L&bf%kv$ljdZ+)h@f*tuUo;j_kGhOfsr=4rjro$m}X_O=P`?4h^qvqb(a|% z!OPr=+#zf@-&m?&_h)Z(X_)UYqroxLBs)T{U9j@2q=%O46`*K^_WvML`eBwSOB^1q zHZA)RC$lEiTF(84Oul;UhK&RTPHc0vW%!ru4_2uxwHW#WQpUB^nJ5GP{+v|{ZOvv& zj2c&UW}!TIPq7sAM_*!{W_oaZU1%w?@@;6`Bcdy(W$+@tmjOOH>;#RO9az8Qx?t)%UtN(rwcdi zw2OS6;j&|sJIB6_utBpkauTD$nLssuY)?B_vmF^yIy^5wMxXF6af+~r(I5BK8)sGX*wBn9JL6u59q-p{ z)t2vkPSPXYbQOoaextxJQ0t?*Os+7Og|9EqxIIuCfFq~xzq6DSWnbnHBFZ_BGZbq} z0_$!@)m|T_Z*=c2zg#|ZvYW_zErHW_^D9{;t4rgBWO*nP?_E%i*RKu`hI;sz%iyK+ zdN?VX_w9(N5u30qep$U0QiH_QyS*c8dO?k64N?VevlJ{T1KS#%6i3AhiOQ_%g5fDLp_dH-=lcPlf6l~L4qAuVv3E_! z7@RgMJy|Fpe7PK%`K$}Me!z)Osxq&?z7HY0A<=&CvqZA^D#?2Wf%(cG1jIL>-OZnj z8<#}XO>|L=M$c_#JF&J$$>ashn{p@4_z`&24|gGKPHmuYwv?>a_OQ5YjnD~96;2ck z{pIdD4HmDURKx5R;Q-7SOfo{o;ZOHL=*_F;KYP8b{oQ_!A=?8{y8)?NGneJ1#p3-C zZ?FX4J-pX+sBK#3v%#UW1IW^{#3)E5@203-e&NRmOO5_bxvL3}flUjuuqq)v31u!x z(x-aq(cHifKgi2nr{kmtg8P28b{nmNYD&IFi<>pNwsX;d7v32a{^Hp-sy5OGI^CWh z-pF`TA++>!viMccIrvonRQ>o~g!PBke8cymT4`(7-u9QLH0+7j$z}~({Y;irlTS2O zcWE*!`JRlL=Zul+grey@FCoR+XscV}SMU&u!@zg1{vP1$CV zE_KS;;Y=9HQhmmAjGSYC0{(KsD6G>$x!Jh$S(dBm4R}hTjji( z%9!yxzLF2>3nJFjI@LV;Ga*IhW%ri}UypH`mUzP;I#(7tCF!bKJx!5KOq*5YMunN^ z^V~U6dA7W?Z4L@Yd1MErw!0psSsuEA8umMdnAk=}&^Cz)eiY@)q8UPBaQoYgzl&V^VxT67PMimLgh&zOkN@>-DLSPadl)CP^U zN((o_O%p)angjAkBJw?0%mmJE`wjZgy!*&;yfm|Cf0!CyU~^}ccS{fR1CuJ%g1GIi zu@=J>X1g&nFJHn9yh%AMIpz9=4#|^2{U6l5Ral)_)-?(QcXxM!yIXJ#uE9OHyF+jd z?(XjH?gV#tcZZ)!cdDvS*Y|gwb8f!A+z&VJTKi>>ImR4wO!E$~eViRQAXfi|qA5>d z@`sv{UV16xzZcu+$&@EP7WFqJFtt$#15epX7q^=%p6d$7Ms%l9VFuV(IV)#U$v zYxvI^@Xzdl=@-@dt+n^7DEym)%Bd=n@KUD)9r1HIomUx8fL!!IyeGjtZOOLSBd~UuRIg&CE%H6WoZFMfPPVX{qUq| z&Zpf|GrJpy{Y$_;@VE~Bxs`ZMI!eewX*)7bLQ#)xc&O(S9c#SHL3MAS_2Mj6S|4X) zUGD)rZF2Fl*`ncrHP27+obDeEr@Cj16f7KaN=t94##&RRJv9L(Hm@q4QR4dPBulDT z3BFXvG|?Q@${@S&M`eWZ>*n&9jBa#@FIbZsEO85qP4KM+sjb^%lM^tvDMPEw1S;)I z(}OtPr<)Y8Ew5vem`cyhk<6*Jfw^5RGiK`G=g*bscGIA&ZP0uTqmpjzS^vx!Qi2#9 zB8^Esats|ik&BocNiFZg+#)mqL(#<@pf2=OeF#(Ia@q^Edcn_a5$uqQu&_fdb03+f zDTtp%#U*khe%y3~O}g{YMa;TzEE5uK51I$Uy@81_LKPw?kl#~BCf#uAqz+LfKU}(r zU$50bAmP*J-=bsKsr|b6qhp+w!JgVN3;_Oli~#Gwm`+&PPv^xGnulEVru>ul>Qxh{ z&1GgbepheRCQRu{P=4B{h|EV&w0Pfcl9=sraW1iWF_$jvfz5eC5jJ%1ubk5X$Tu)d z1=(?e8okVxTKX?tl!aVQp*{d<4Z5{6Gd9891k_Y^y$DzwMg1#Q#hpqH_>!17v(;)X zu$q!c7BCI~l8`y<1fc?th^*pqEr>Zwd7T-D)TG!JqrpNx=~hSLr;F#0vE>E=B_XzE zXic#R^8LuqD31N}4lXqxqZHgB3{QxJ~6dEG8IXh+5^Pd7+2rk8!4*~@R!cgQa$*hQK{mQ83z&})=p2K4pA!J7hqLd~#>srF)<^0g46-2$D2RHFSsXJY2`$KN*F1G^! zFeMi7xVLBbkM~zI1{y6eSm#Hgf{46Y7^!R*!m4z7CzyzWjw3fR5aQ);zqu0qKOi^APX#Tq2zExHE_2a#6;(V#ES|U1Q?VA|v-QrX(=R)0! zk0J-FB3AVqmeI&N$&Kxa_sykBB-@6Fi_=Y3wg$(s>1|AM%e#u&i)F?O%HB{J$CEN* zTzbZK3o91f!c6$yF?Q)31Gk>En)9HJ!NV_y2$G;L76oGB5uRJSJen4-h2taE!e_%^ zez7a@83Ya@fs|s^foTd>%4Ekn07ca<5rwi5tMESP(U;%4kYwJas$yg4(FPGf0eewy zqOu45ityU*v;vTRHv7TJldD7_oSh2h*?D>lj*(Ah&%`E=MJ%ZfT6)PV?+{K-)_sMM z6M}h~bhTUM5WAzxiN8`lTWvOi&K3V62@1poA(OXwV zWaF6KL091SGCYYo`j9SEiDwdmxr+Qg`ODr}STHx0B%+bGBAxQC&Serp4Re0P^^OhW`S!eu-xE zObo2Qqt<_k2==??^%JE21-1Ury#7F~pPJTxmNH^h)NNB((A|FyG*v=;T8^pjspOvO z!!g>dNiBTB_cb#G0+(2~xH@w6Q=x6v{xLG9>Gk=?L-?5EBoD4E;->v(8v|}s7LN<| znJi)@eyCUsaQ92(GM;+_kBe&>JZ98U^U4HU4u6dG*cBBS*E$zWH{H9wOX~TaVUgq^ zFcwxe7~d6G=7dkS?Pzig6Ou?81A2Y4w*45NU44{2uHu$3DRrVezRC42&Zir7L_6W2 z(!h15s8WhiLavC(?dLV?K$HdL=F*w0V0Sejlx&V%`K8#W|5w#RL_y$fSsuM%kVH|1~ zq8B8%s7EM9cBl^Ls&9o&Vk&o6WV;ncqhI(nqgRpL2{OQiHv(%@*_vv89Y9@FmroCR zKyEj4MNpREPTSA{bw!oR-Eyza1TzO?hYPB@)*YazO+L2EKoTc2Em)1I=!9~@n^S2) zdRF)R$eCz6FC=`0>;wOOa6Koz91{jBSo{>e-TLLUUb6HTC1l{961-5`L@l~Z84vrz6Amtlg@ueMYlJLZX>;uZt@3` z-rD~dYhJ4;9lxG`IfA7D!DS){Gw8CG!h`89sb=!k;6%wKtgID?a>h-4J*tX|ujU)U zintnkZXR^!x;-19HvNj`d1SrSG(po;9uFOkqijr(OcRE&$UcVZ5!nunc$}|0REb#UTT~s7<9$tYPSa$I(!w z$h#dg>GA2ytKjVcHrc0&6xy05a-4ZXxb51GBvQ3rVg3Br1ms9OLqJ!pu8t(oKZaAV z3aGRx>_29iE{~jagi)am1fdhI7}Um)9c@cS=S0{vM)fiYiRngtSh7$U+zUF1l9!D|Q}yxwv&r&>pAi#eE515o{TBVbF9Tjk_HYD zf4WpfTh%nd)t`e_g>N}28sxi7kj=C2JNi03RJMBBqSX;gNQmSo9ZjY_`XWhh*l3Ep zu9QMrtUr1@M%k!Zu&9HnU#2W!dwca!fZtjWr$!>u&jME;P*_bCQ;Qax7f1Yp(bR{F zo7Eky-Q9l)YM&6eKmg4!N`!R~@jPI;rHjl$K{Pq*@vfPPwY>iU3&5)PE0AN38pb8l z0Xb-%#^}A>t3lxte?wj**XOL8+r5d?PtRB8oiqmg*n}igGqXl{!x~dpCBt$q!dk>J z0D$B!ZyBFoBa0eicVG1ZW#d5D;dchnmD z#1BVKH?Qq1zOli5nlskl_@u?FAT9IbdRt+RI=ZwoqUclSr@M+Hw=~x=-3l8GL_6zX z(7o$Xtm{`}tz{x^gz*6Z#)cNJ5Q6#4Rj$x#U+vG)-uO(qAw?31p@K#T7iO^;jVrzV zaPd$M7+qXqPSRU9c5LRdDS;I$=TDXQ7JHZ0cE`t`c|26kLz~0B zG6@EhB9LsGp%&O1X;VnaMTBy>A~ubg15VOOwtMF22fn3cA_yp}7M|&n8QC>9u{D4# zuo|OfcrlmeQ^BqGo|aS}pN$-6$<_D%m<$3X@8&YPcv~Hi#|A{fd{a^YbmkqTdQI5e zkvM%cv|7HG2(c20Xj+Gd6_pJQkIpL&8(Tizy!`rLoW4EwP+R?SmA&GNgq!2H;ZEnZ zi!i&wul>!p8Igm=v@ua1l9kb}$l$v5dFE?tTdiMw?q|-n17jXEiJ3!A&&+nsEAJ$3QIN!1N*0PpYmGH}wz&?Oxvz_k7>1oO;%pQeZ(O(Uf-~Qpd@xo{NRtkQf`ol9NVgv5=_wv->Gtz+ zwj<1wnhVYln8VmBLt8Uap%qnl_WcU)@$Fsp@KQCc70pB z|6J!6hg2O-jV5iCgGDQ{ssx%39d8|77Hs)ND`8vxBl6E8p zMx16OXT;Exiu5^2S1ioM@Yza8%@&H2n4DWIEUuHo((np~G#j2UW-+2nhKzzudKH^R z`>l_xE)*Ko)wQ?Bhus1DGpH%K^Zeju_`MC?8qxZ;BJZM7>cvuHYE0CKUan1AdFC9e zz+2aQsl2e^kiV+@6Kn4 zkt?Qe>!{Fu?i4y+GTmGN%>i%n4;X@Pg0e1T5=Sy7l%JAK6Xv6@^sfJ|KJGv~?7DOa zI3rx&TDEuZ%@-9(Pfx7bZE4|nvsWJi!U-rQ=O6hoxtrDRU_N%vytl2^!Bnc3CI#xa z?_lUYJ4LkG?)<5+!H!sUDh?I;%20H$4mG0o#Ur@#!~wR$Z~@o;jQhu_N5&YjfNFqG zL&~MK;6k{$=@nC%)+fq?5Jd&_Rm93tYxD(Fy(1%hP+%=OK)r97;e zUn)lNN2&N{R5oX)Kd3U#;t!QFdRPWwJMo{4fhadE!W>`ZF&qtW?T3|8ixnP;rSaLR z)WRqDu`mV_QRa2 z7u1tsF2X~uFcCr1jV?I>#STlNsJ5sv?>fwx7x>!V$c-x_?2%hN6d~93J!SSC3P3^& z&9s+P<4goNf4b2%`&dEcn>hryRP^RSjzFvS%um0LD1Py2u_{mjGdufA@nQU=jMsGz z>^s$b(f7e?Y7r5#smi1AC*g-R9M!%ua35#E%`bs=~VEc*c<4R(HFc24Nk~ za^J_Cz8yeDk=O(uxE6Jui;u{L~rJ<^~9?nlK2_|3NT# z=8?YsX}SR&?q+AGzYCi1W<$p!S8)nsJWVZQEDIlpkD^zrI@JsO)AFcfiiy-MUpN}0HQbUQc?J@1DF|x712r!F8FkUj3 zuGVOTBgT(B9e#Xoh#;oO>sKj5EpJ>2TZwV0cLN!NjNxc>0P}dYd$uYg90Y#Vqz(+K zKG+zJC?ECbYwn#4w)05zta?I=!o5Xx#>~Xzb5CYIl$Et&st zeE)aIlRts%&qR;;4}tY}WP2Yec(;B0XJqqNS+ZGfKyaT^Ubn6n?*nSNnjBLrBvv{O zi;+-_0W$_=6pkY%_exQGzF~)n#8k^Ml#qLGi2&q(c1*XpJP>E_PItV1_leh;mZ#;J zMw3vWVMy5EmO(kRJX(3)Oi7LDcb&rR)%2hwby*vec&cjMy z2&<-UUSelHZmV)U##?*{V3MHz9zBfr)_wZsc60H1h=z^(E>UhB7${u?hrbzsP>s`c zcg@Xd^SG3&mOD61jMTVitFOQWQ;bWp8av8xo-C{~oVbFx`?;&|Kc;x#v_gAMJ4O$Bhm z}6Ko!6tudt>~~?X4bbY_(bm<7fcYuGW$LuXhY{je_aEZb42G6+M9XtaS+gr@yKTt$B;wg_4@DXByGEsclEJwFms#<{iw z=<`7U-kfY4!&al{5hk-8!3ZT|&w~{m);E(*+xeM;Gvc@TBHLSerYKkuV3&gsdvBL> zcbv@?eDz)MFCv(qkqXlW*bZpQXl!s8^zTrxPG?N(A&h98Qf0#oReK)V*uzteiY!N@ zVF=1WXHu?NIilB{3~&`)M`H|pEnJZ)gfdQ~Z2R0s(}Xv_G;WD{=pylgff~0uh^A;d z}hgB3)jg@ zNSmdYsRZa+;t52{6?nSnt%^|wRl>kmtMad&>l-*Gn~w+q`O3=a&_plf68kxP-a+r# z0~f&zRxEZH>&xJVi!}V9mjg}`0`p)UZfJ-w^!B5z_Hk4g*>1H9^1DV-v1frD=Hz52=A6%V71=YlPiza9?Kwvc_GU_ ze&5`*nn8&m3bId0SGchiiFc~|tOMhOQnWTzRUzUHbt49y1`w09Le4>PbFGmF;T9ZL zSqp>rvdp_!g*=6wlXjK21Q%OhaKKD`0-3df(49oPyFB6!Ve|{vof88E#~!^_Dh>vF zDC{m2fM8~1@X=hQCMqn7B)!zGpS%RziDJ7BWVKNz`v6VHY!7*XOw^Sw5%)|vH(QkZ zsV{u>uo*KVXW}NPnnB!W6#{_m(F>&yqV#Ik@lzQNh2gbXRu`WdQ10b6@^*snfws3{+Mv)t)Pv>15pn?hSyGbj4`3gb^a{ls6djf8ukBFa@zPDN$VLU^rjit0JG=OwB(;-I0z_7bg`6?#hy=7qGXAKtM$qxsYaC0g%V&64mx|&)2;55(CG_P^w zhe=q%1Cfwuzy#JpLVdwE*E73{GH`VBZ=8T5$I({=?~&%J7W&u%ZF)cwF*0vy1f5Oq z8uw#&X*|Dc#~z=`@CF8mugi7zVV9{AEwr$)zeFRz0{&1$21d=H+_NFV;DT2i|| zFY2Mi`8=rPZyQah-WEq~9{sd+!WwXTUyhs>wz7t=a5SWY8FnZjAhIkhK9EM)3$25n zPOGc32)Q9eaO^IIOsD|9km1EtQ!kTsvdv%Fs?DNmZI4Xu+p?uQ@FBp6Uc;LW#F)ar zpGcDDxR;_*e+|PMkKNt3=3^0VBZ;gnFS|ogpt&(@(s%S)5vi2R5GKoGhdc@n=<3+T zlvw^*CB6y%puWS%T)Kn|-B!S0TC!YBGZ_48s|N9J-D|6)$z!-8xI#wbh)EVWU&;D4 zb+C6-4Zj86sQKW25c%f9z!PU9!N2`PS*A8{hfV8sI9JT3Fa4E>)5ciI}(@AlZOhyM}-wdg7(BQGB#+<7t6fvJHkECJR;u z((qbLv+v+!nP>`|bI%ow3wm}t%nQ}E zO9yKET{?*YXbgLV?ceY~?xHlAlWXHC{G~^dL0d~EuPUuZp9V2+D7);jx$CI1Yy~1s z(m=%=f_h6=PTNmqS%_`s`wkdTmOV7iS_4bZN>n%>1$BSvDw5_=efGACiDRh^<9p4oH^f#&looCF_2Sx$DLiHpxIU?TgE#brbVS z!&s}I;Jqp}con?B+{M^~Ba!NMFH?`NZi~C#)g={b8txs-$^3Yp{OF#iF(bUqUtrv? z&K^Az>mNM!mu&lAgK@t>+P`4j9~$!?828g-{+}_fS4G2es{!S`VY$8q4bO;3a;WFc zQzMkeM-MeZxO$??^3)M!5}+YwCpwsXJ9qa*+(BPrOBb?6$Ph88iTI40>u#B{wL}+n z!$`{WQm&#%wKY_a9tk2sj+7W~3t_4JwMKQtGm;9`tlBj>NthnZSv5{bvm!d)097c8 zd?8P#z2(Vx@io@ns!k^&R$k*~WcHZs^GPN{TD znW~ZSF{teV2>fIjeK6+048SMHED+#dj=U?=dsfpB3<G3jN2WnhQ;sbJAP zVj28`+^;)n)lSqq)q!T6k(l?>DR{l@^ZJdh0-;z#XlFImsHG5d{nEbj)akKLp``N{ zCcRKe{2oRY6O`J3XUAdnt^11$Y}8B*43&WPs={ zyjaF0ME@^ogo}C~rVzf2sla6{j(H>Sv%0eiI-6YG6jiNf1MtJoSH)~c z0@zS~6sec7v6(cE>12-9%!wSPB4` zFj?o1XG7FX_!%yVS;okdqrgc^FV8RiXKhb8*mW9oXdsJ`6aIk@-VsifpbC<8+%5s1 z7iS8RF|&S{h&+meJ)Q?MYM!$TF~qC1Hmtmjo_M^Dke|Kyn172IpTHa-ej*(uCgi}r zjx6dy^JHfd>qjaMz?3Mo2%M6?%3Xy^gdGo-3r#!mo=`EY@53{b$afb!VkVTp7LM`t zB=eNiTUM12%iR#p7S#p}K3V7=UwgBLtqqM_gJ2{7k<9F9ao5PAg?cR5Gh7ge{{^bW z$#-FaW;%hO+VTVT$4a=%j6?Sb9vd4`C;}3a2!Z*Bnv8wFu7goJC%_|uIRlcwzVz+|N*2RvhX&%3=n z$CvmSwJJ$ccT>TySAJQ7%rH+m|AXbNFMARYkVO@zl4&FeM=PSMtmDXTi1kc&^x>F z)17>SDcTsI!RGXoc(n9I=HctT@Bv3~9LA&bWi)0`Y(!vU;R#cR(7UeZCvJG3iy9bk?>nh@aH0dDaTfc2hH^mme%em?hK#JsTlg}0dHZ+eSI z)yyN7>kwW&+CR}j_JCS65|RW*Zvcxf+a7fdu-{}-tlxmG(Am5uOvXy{5DTU+i_A1TPEq^UsXMe3jIqdPot|s)hUbRGQ z@bvCC?Slg_Z>TB29fLMLQ8I!_jHEP6Q`@j<%i1vxkvr}Tw457LA>y_heyv1!h|!A^U@6sxYw?D z+~GNetGp9wNXO@R?L{lXx4SxXmqOC$E+f_xjDA1c*eyesWInkVWaO;ujxCz=-ON&4 zwqO>BK3T2V`k{JzCc7bSDGd7-#z{cVu5{Sg`8dAnsQgwchn9n0T-#&|Xz!dGM#F%~CRF;MJ$%p{>AMX80bA21>uKiD0ph2e9Fg1_<6qSk;6OcPCfEM-mxm; zN=n&pfI`qWBFC38?wut-Ra^Tm75Y29&d;8(6s>H_Qy7wEXE=ZareuQz(8K%gOqo2;K=;~|({Ora_?z~OkDdm=UcnM@Mlx(fj zQn&)f^Fw>q_ech$*K&wBY(OM_puog*m113U=!u_;yoal-*KD0o1<@Ej82O_;?i5jV zxpTXQGUs%yD9X}z>qsCAu53`%PBRQXU?gNCtF9`hYM2f{zWV(!K^!r;m@43`aA5ub zSw!H}+#3tkF3{9msdVkZN~9#?DHXNLPCMgNUcoxB88^F$<%ehC8ysAXAh1H;4hEj{ z4ZkEWm{>_{yMC*#-P>t3=W1G4aO8s{Umixf>YFh52?~3W#{uk}p^bSvlPplW$#^S^ zrs`&>gYVliJPcoTH*DANn&OXcwzi0hrf+&Q>+D%Ir8AUPOUKPQGv-S&DozG#&QLQN zB>dZM*lu?_BEQ@rjp-FBJ~9+N#R7IK1MZm{14N&=HLtcltjj*v z0D_@tI8NX`g7UT4Ku~R8tU9Dx0tt#TgGXG<9i>~AH4pa+lUj%C?tGFAg(`L^R(FEc zc-E7z-GNoRA7BKIyQ`B$J@)|3K?Gt$hvk5^p6-FwR*<9XSL$N?fs~|IaF7U=sp0^{ zM*@79hx>xEo}WnHzmBB0NFK*dN0i zWEZlVtI}UBHcS5{$v)+&(<>{8IZsNYh}7cifsc142n1X&AYa2ab%4jwy{k zr@Sn!6l%M_52-7sFdH_XC91MR)Alu*O2mm>oZ%5y+V_Ruy$uMSr_ zG^iwfm$*dNC6U^vBOu6>A5a(-4w*Zu?rHs z8i8Nb8v2Mj_CcABB|%yJl$qjG3iKK30zy_j99|2~&C822KNKF1eFHvFvXyqo#@7Dk z@J#t^&He51aC~xfhS#!&M0=6LjwFHdRZ1%$0SKnQ84zCu6t6@9}M zpx7Kf&pFlyux}B zek}G=AI;Fci^=h!W)~UP`QSPVO1r!X*`!QA{&4cZpmTu*`-tXI+a_o0G0`}pI5K+C zF>5YRr=)<&ZF-y}#}tSO&N$!c@N6x9h{mLGdMv|o0Wv96;DF;5Ntl#wen%tR2uH9s zMP-Di3;&pQaFPsI&yH4Du|QMduQW!c@}*!}RLVwB1MjWEWZWP_uxeUFB!3o20snC% zBtnOcU4H`^|4L^N4y~~k6b4$w=Aa1+ggn#9l)K&61v};z9)**go=Sx7T?7Gu8^)(_ zSDhDhTe5B`d#(gNC~?RtqTc0TN8t&}w zZb?^-igD%Flt+=nY4WuMnINta6*}jEIQ(-Rugwka8e`mGSPI*nxP^N!-EBczbA0Nd z)yaK7e}ffJY47%Nj?*2w)IHn_!S_R>^kN*Grbc6`6|tj6<2wP`7dry4i3^$)i&zLC zE%vZkZ%%0AK=(YPEDXZ#vt(+kK%a>)qQ~IxvDx*^2PbB~&a+1RFd{k5S%0}~+SZeR zo_c3Ba@qOGe({IaN8{@n=x@M~=#pP1M*N~1L&cDnxzVE7gz0m=Dv{g-hw+v^lRqt} z++7iIOj-}e4I-k6+W?b~rJBEM?0F zIz0(hnES#xqJr(ONpM%4^Y_b8wxj6n(F{E?6%LQg&4z7zHp7;wUglnIrS=qR6xi&u z3syY+3m0NTDI`+Pr7^w&TOVGO2F2kXzti!#NO)H1La4Vq@NY@)M|3I#SXk$M;`1PK zx1rl1AswAGVyc@BRT( zk@;zI>c#oImSoh{cyY|#;sDqAEU}Lk<7CG||k^me#=LJw927_O~V6e;M-no;>@9iTH2OMkYEo z8ix1hWuRxKVP|_!vHeFzG6TbVUg+P82W9y=vGecope(=W{ojn6{Re?%prfZ@et!-& zIvUpB!gcB26O;dcKF1%5!vC9#*3ow`v9+`@F|hs1duIJJ%l{kq{EySoGqTXIzMt-$ zqW?@pes7P^yhjHAEqeab3I6Zb%=%}Y;Gd(vtbfy67pp2^xy**x_N08y_JOTNb6U@G zRS3w5etr;NnC3h81a;l0s@SoNT>rp(=e@VSi5p^9M=`48BWiKm$Ex<#ZE|1F)k0n= z<&18ptC@2fg&4MC8UBi0qy2~7^axf*Jn$i?Yo}|8Vyb?jDSM5jnu2Z(Wg}H3yM1dx z&(}+=^jYO={$K=m4$&rT%?Zxy#K8v%)mWe%_A$>FT9@a$(Wm}oUcSb-0zu2g{$W3-MK(vQc3Xf}#vl*|A~2Bdj(l``S$b zXyU`895S;@0xHELO3SSAc&m<8{8rqy#+;W7^*-)Pa1kVuzM$G+r+ekxR0rJjq@9zd z$b48XStT$s-sev=3THnq4KIjWw|&w5iKOMQRmSz%4w;<`r&=bwn{b-ES3O^EH;^29 zo}6!sjq0=-CN9KMBj+5DZFIrv*lDd)(`FiEcub|{!_6|?d=B)qC+b8hQ(q$R%ruKC ze9xK&v%fQoJjpTyqHuKb%xDQtw)f-!U5UVQl2Ma7#~Q$xJe#x^b1cUh9DH83#lfgvgPVeNjDm~xHn-`?UOWc8-O3g1ow4D4Z0PyY`HLoPnp3co(qS3fG;e>fpR3Y z$gU(C(sBgqNh#q42S0Jz@J}#-T&5V`Q*3p{ZE@K2MTJ|i(UuLk+Xjh>q`%khXNHzsYPtt14xkjsF_zV9J}<%>}P|FO0)!b_awqV64vVNBNC zWEgm(L%=x=`dqlgfby{|0WE#%7(7^Y@J0JD>=dJ;2hg`|!2 zY5ra@&@wPwa+2^Nkfjmgx888Zsfy`ymBIM=DYfFge1EFs}vjN0SM1Rtow9g60MDzE&BQtjx2Mk;@OS6^Cpcv0o15HpyWi!pb z?Xl(&i77=Uu$+tc_r31OvC!u(jxb8;*synw<}$Q|aWC1UGXub*lsPI6ion`!@SY#= zACxr<+;fWNk7=v;psYxRbG#5F)f(pSjK-^&*Cg7o>cy$??B#`hxnM@cr#jBO5@obs z;4)i?X$529Dh!a>St7WD0uR&M$AlceG@bGxdHO3y{!&!X4#YyYFtMlF1KgoQBKEn; zVM&6LcCMbAC$`YHVN8zd@a?vz@1auFYIcUc;zo|dbBK4S40BE#Bg5^jgGxCaQi*^` z@UE2pr^cE1r>`SMY?2eNK?ib$sZYY;N>X8++kCTUOR^oUJmq(Rc+e$K$^mQnZjKJ& z*_e)rRJeK^ zbRF|hs*45<1kCFi$|9<2H4RLx6rSW4q6`=KIr{vT*f4o=uH?iMsHD{Z7vsmSMZAgG z@bCX)7Z1dF)ZxyA-_wxYNF@=z!%A=ur)AF#>+7PQ$vYhY_0*YH#0eXz`uR7#k{~8;9JpPe{o59C^-t z!kS6k9ea>O$Pi}DTER|>k0z!khL-i3go<@lk8oGB5{B)bv*-8Wejr{YMyQ`dsK1J& zfqb1~xf8_gEGFK7ee|uN`RVrLy*-5I8Kaw0?d(RV(^OnYy1rqvlm@D$gE<%w79f{NXYpZ(5qjr@F-#<*+idt1OaKd6TK z{Vv1w!mq8gcQLh5CCZi{REABg^5wF_;`L1J1WPV{WLMs=@h|)O81}UpqB?RqEGXNI-ZnIQebPxG7kg=%T*MOP z;bDMlf$Ya+>Tl#ITGkTf-jWFn;)7P8@{zwbvMayj)tZ0bAkDV z|Bwogc}`q*xkJ_x@36gt$ND2T$-4?ddS!x~5_fQSkXmblA*D{xHcbJUDl`A#)7l@!5^Ys-=W?rZ|mZZg4L zu|{Sv(!!cdEx5@Q-pu%6ML`Uv-`bvZ0$a)<4`|h8X~YeLEQRXEU%WrR_!+|=kqhsu zTmCEFir*s_etzfw@)G=+l>K50KbggUehK`Qmu#j);oa|)M~JwL6Q2C*ohs!s!Rwu_ zD*UqisPtwQ<0`jF&Tm}%q`@0{bG{T3&rTkswWXXsa70V4%janEd{inG(K>7UE@?so zEgy&1hITw`%!S3BtVW8GOpU9_{K;lVFSHX3)j3oeJd-fFbRmGOJZbbbPRj8lNkg%@ zsywbld+w&Jc~ZDuQk*8;L%%vcd(i9}wht~e=+Ss3xkG^AEu76zYL%Mbtx1_w~ThZ8!nw%Vz zFRIhQl?(7P%QdPq=sD6ogE`+O z%{KP=geXFg)$E{O2W$|Rdl!zXb$@g#d&`q=fNhKOFAIih8kvS{(y-Wj($XnFDImkM z;rK$SdS^C-)SoT6YZWU%SY))-fPYc33x`^$%WY5|P;2yW4oCIvgO{*JN*$|4#8x?) z$?_@y>9mbU#0W|7PEFGIdTsCN=&zt^2lpmJrv|HO4`4_TYz?IuxQsx^R?jgi zzxA8l%QL>7W&=k8>PP;o;u3sJ66Oj?Aydwq(|W5u2Y4ZJg2nae^7$3ecK+t zW0{ZXFAgVhWPC|ZzZ+S^qUrJ-y?($`MPobsi=WJ2N(((56a8<0{tbTF{t!z3S0m{k zznMP`oxf!q|2n~+6_($Z`21fD9p)xBHkLNF|KnmUwm*9+{)T$Q_P$T+eI*eK!@IkK zfgPXmUH)TzU&h43$n3xkEBO@z5Bhx=Wzng2=+5g_+xc~84ew7vf zpRfD>u=nQSP`=Usc-gZjB1@JCWtn{}$-Y$x*%DbovTq@x2qn9+%a)}=l&o3GRzvm)Frv5nw`D@o?MA|| zKolS%03=~ZP@$YKL;=`W3PTbg3BE>rL9I41{@gC4Ehv~YQ3+R+3#o9jG*~#mzD2>Y z5?BNf5kVLuq$H47Y0^Z*tAhWu^^*Rr)BaCLnM4t#h>0k@TG5cOP7zXI)}*BPkU&%v z)OHVu3XM^4(BuoOUsBWpP81@02CR+W`*;1bh(g1Nu2Zmke*an$L_~pw3A6zc^w@*L zr1?-7{1CL*!-AL)Ndn@q@c-iG(yJBJ`UM2?VTjJ*dUXx15gV903qT`gbErTAHXvg@d#0_wOY^-yng7g@x8C z2t!JvRyvu2F=P^eizH3THB=5Ti&tIE`lSRq2SI!)*Qs<6;J`pay*;In5*ScS7&;qq zV`*StN|UBn@xlKOWJ}7=l)72c)ywM5HNcXU9-!1I)O?l;`Ru8WpXIEoR zN_pw(JnDa`{`o+MXb2DoK0$~@d`4;{`9S^s*OL7`24|BkL{dQ zUIhHG{jn0b5dXPtpSv?9M^7(IcI>X69HbhNl$90B&^^06S-l)f_gr8f{Pa)ZQ;YB4 zK5gunweYX7?my*XwkgsJ_S4T3CikXd3HEDaL+(rxx$-U zH}X;3W+h?mtyE#Rx7z~(?(@bu;~ATX9qi zU0BLD%j!}dN3?>AmBqc}s7` z)XDE`+#hw8CtD(UB7@YkP|`vzBJStSpDh%837&l18~j!I=B4pkJ-v4i&-fn@!uW0v zO@^>7cV%`siB@{bGr)&|-6dtEuq*e^w=c0SshZ!*-K=*!X4+Z<+Nu$<9 zpJN}=H)!Z6p4)fan~LpW|3;Nwa)tNKOVS6v!O8a>Iy)&;*-6o*=qScMSjKmk55-^9 zAsXyagNTh;x>bO=sQOd*!0j&YFU^d@Q5$azN{L5^I9?LGdUarvn?$+1+-?pXn%gW$ ztt{?+>9VKAurfcwEUg`WMl%SHe)+!txbzp=xqJ)b7c6pQf?nyenhJv!0?yUJ_0hBN zZ!|0cZ{GTa><;m|wkcOhNc*$){rG|Jba4jS=S*qD?(nN>xjy zl+VilBKAo3k#Oha-N`&=8?01)GI!3QdD~UpUwtSE?>R2+d;joW@61Gf?XOPsFlIiqnoSKNq2@>*KUp(lq%sF<&lmIzoueRY zS`We!RjGrRvAeuw#)Gz5dw#Hn2W4z%Ci*6o$&}374 zjrOfJ(LUcz`oZMwDPPMOiq+i{%|?aItTH#gLhx4=-v=w6B z!p)9d)`#oS?`G`DyJWH$`9`Ak!O$J?;Sw>j<#<@=O}dT3WJrlG{yQ+-ZCBG=n6DT_ zwQ^!vi|fu{_jCnWRaKO#S=lSnhjOJqZrJ1Q7Wt;`?#V!MQ3kgk{bc*6de4+F1j#mJ zpKL&q&zTQuxol=WktBci4A}(=_vy@CeUG%9Wc&E&y0+eNp{}5(*qmga85U6bF<)$8 zK0fTu2b;vwrjH!0`w$jwpARZ;6NO730ZI|Wlp30;!rOO7|WmN}VU+Fe%rsznt7W{HE z^vrUFGG96Sp2R+ev&PbId@EbX$1q|Fb3Sm#?ml zNw)6O$b8efa8ZZDD)(*J+0I?948o#^Zc@o)-BRGVPNl1$-#(!q;WaV3ghKS(?+Lz+iRyV!Lg5r`>Ox~y*)zmEImwldY(^EPu zQfdS{;VzUzWqg)G<1&n6@SM#yFE!~m)dH?BgKYI=WR6LhF(rND^^&hs6 zHz<(zm1T+fRXi`B?=^5@?@G~gtxVI%q3EbP5dP+Qp4Qm3nF(3MCaU1hV=n%sN5-bL zpUoV7yMZDsw2&-hdN|-k>J8Tm$al;PPidSlY)ai2hpZI5-6r*8%h7kt%n!e}d|7z+ zneY2ph}8FV(Sr=f47oGfe~Qsy?31h-_UB|QH@!}4O|N1}dKcgE;j6p|WGVyxXNmi}y^RSNyl|)-5z9d=F?gpf4;*8LfihJ%bw=$8D( z*5SZ&{B7{A-;f3-CQ-By4qvacfCaE1xEL$~ErA9OAV^Hcj{!hRqT7cPg{X=7Z_Wac zktoyz$2HJ|mMp1|C;_Ix0`M0nBLOc2jswXuu7y(Ix_GW!%U{hSQ6vVASf{Iikj4Vv z0L6y^1X!Gm0AGW~SP)+zaUKZ`N&kcT!f`E1|4Bw9QTH7nM8Ed{DNY}7+rj$e!(c(K zG_+RXgs~JzmL|;|B6M3NBIAm}`@8rASgS-aLpX52*Cito#C;IbAjE}6;$?(jCTI*1 zoJo{%4OkS8YcBgw^GMuzN32)p5cVSm?8DXj5d)lgQe|8Vpuly`U6GN5HHCx#FOUp{ z21q;ZT9AaXG^uL}7cn5F{y@O;_tgK5YLFt1?curtuR}xts{?EVh=?I9DHvf4-~>`{ zH~w(`@3z79^If@?zmk#oG4`v6GKnf41sz{tCeSGSF@{1D#sHZnQAR>*Vj?oGR#Sf^ zBXJ;lRX1mnVwWo_9t~9cY88(Lz%;2c;w>~HGOkureTzhsVWB!g7c6)Nkqnf z);YwH%U}HiN!*V}7&w}N)eFj?5!5PS46sX5*Xmk2XI0z6zllPlq_MS5@K;{VHs77H();Ty)h|MGFpLGs#a|B%G?=y)68Bs8xM{(H%`2C1N62>4+g~WNp zi9%Gyf7LlsYs}-{=o~=$LqQZgoLLFd37|2=!6VJ&BJ?!*?|wx6tIoj^cY*%snL@%m zLXj^hD+G#o;m;1j7)AO#uBCH+74QFB(^-nRUR_oHpTzSKP&t7q2W5%jWh9Idq|f78 zI_Hl{{(p0JND+5|eicO~QLiFEq!O~_5Yhy_3gWiV7>a+9xK;@jjQ_h1f2B!xR%cOqY~QR=o~C@z4}LCGg4$Ez%FpGX7Otk z54*snN#2iyx(5H%Ill@b{O#F+A?|m8<9l6e6?DbMosV!Ra|yBmfWHBqmv8`&lDHr7 zwc&`^5rnbcWaOXFbv)w9A7*Es7fsIcO7fWQr2MuOJ?hjQde zvsQ7U5Szz8YAXEAJR;VRadoZ zCG7>rdL$w3CEY~JV@Qg=cFD*!FL8k{Aw$4-c*LGb)~~D8N$enJViM_p`Z za%^exHnXtEYUVQgazdQfX&sA5=^XCPz_L@((UW~r9nu+)*>>?@hie_RV zz^$@=R=!awaELc0e@31BB11l&QIDKFF zw%$(i7V_sUEDmI;wm-Uy*uzeL=`ku1ye8EY9KZ9h@$KlI9V}mRnu>M}*q-l8P)%#d zyHGJ&-m#r!_+Hpt*=3a1p|&A~T7G*|pFyD^`u7Do+bj=Um}5q3RXOx(J)6lYyr*Hm zMY>5}Jo4t{-fKH0Vk@`;`|~Vht`@26i!Ur4WjLsjt5=PxWQ_V?EIErF{j|JQnkim^OH;8bS^zq zkQTDJ_6Xa#+u)tN(9i+ViH7T{K&IuKQOR8lrjeFTC5FAUy$n$WNR3PmI$6hum{w_R zBLVmA_w%G*sp+SmpuVIUV>n!!PX1*f!n7>gB{9tG_TIdEBeH6qX^1C&+m#H98?DKTx$My zd4{u^yf=#vqYwV*U@0f>SvTX+u2k_$8)?X{d@s1H-?me$_9YeK`P{*Ph@rO{eT7%l zE$BDi8gXJ=>P@?X+3%=U5VGNoy;tUTcx#7G)MT8~g5$jt{uC!`KUwM4A2M$e-g!#V zE;UY^jbW!27ERyHydc2IN@?0L!9j5{(v#Pb?~cpT(LqJWb7l=ncMm-%qL?fP8hD$> zA8MdLfzk5o!_al_5Kq%Y=?5pzoeh#|V%f!`wy#|JdDI>FmVVT%(X~gGMP2H&V~i%z zxc_QvceHSqFf4&;=;YACV#7zl7S1JACfz5ZLN~AJ9QYjcu2*P?d%i)&fw>$NAS|!~2{N}mt;6k&7 z7^Ns_nW+8`e1cx>Uz>ck=AEcMp7v0{1syGS&kWvd;lz@tPd~xn8-3%ekv08^v{%zC z(b#)tI~0BGdM|E*d4)AS8m|a)i}K;|Y1%ZyY1uF+(%m@Mt39&uW3}gDNzU=}>Rmgu zUFpY0mu`+!4;dNmx>6a{Jr!NMw*q$6{6vcCtKo|*%?@s?-p%Kz0(`PH(p$xP`1K^U z^1@rBCqny1MP{mlWx2iR9R>q^UGueL11yhQhPMnD9lMKBcYFF7J9Kj7i%!y9yY(5F z`i@-2v(=&pjZ|M{^n^)1J{`fLWZ-jg+5NqL*1lU?OETygJSj@YuH1~M_o2=he6f4z z#l!s$KTo80d6(bQWb4}daZdh=kdqgYY=vL^bU0G_SAzxkFN(J*Ej|Da@(FN3V(^L! zq(ZNF=o=r9gU0xS9wdEACVtH;AZpjN&cc9!U;V7RrwLCDCd7?G{cEIvDkGwu?S!^Lr(0k{0QL8 z;>M)sN8m&uYHt0jNr@#6Dy^cPk_eo^C6FL<04pH{b^{Vf2u6Ucf&w`|BqbRGS{ZRD z0!O}FaZ&!lpp?R_A>ld=N+bxaKoAlJ4U>S9agYFlz>R_Pg9ST`Bq`Tok^(ltuO0YT zYgGzE9OPXum-LsE!2Ll0ee+976j-w)X8y0m-vrM8zY0lwL*nR^D@%kF-{4pB073!@ z5+hbPM;NHm9GGI#rgAOp442ooay5UoV2Q^hfK$4nq)FS75JLqVEocbm1p!7V)dd=3 z0L}{s6h6|VT+5fmrR}XqNy0tMP+q$O{FeA(C$STC`F)PW+Wy{uc{N8ciJNS}(D5g_MZGfZ&Mq zFHRx~hhvh+W?OqISEFu!BP516Vu{NrUAcKAtk;z&2?|i4AcGEKw?R=76hPatU@MX~ zm3Ra2zYqdYI=}bw-$;ojuI>TD=lAa=MM{DuL_uj&z%X9XgeVX%A(5>QAYAY_iPO=MG_*kNRWkx1$+V0q+CPwApVhKijqbV zJt`6F=9vD9wFB50$}9L4YsW}PlUSS?FATA5`Oh3v6w#;aqAWr zmD(rw$1n5};0|0>m z+0|gZktXF@y5|>J=5K?TD53@dC{4cV?vZ2=-~+P=5WJKExYbI2JOY^OC}6aaCgobn z2S@W*x#xeQd{9I!0>ru*D=XU)%G?HU&dRpLl_~(J9cfaorF;OF{NGe8inv9ve$EQs z;e$#QK!63o|APZV0Sgd6(u7>g?D=QX3W_K!0}?$}-8_;OEC@k^?Fc|mpkW~?31g6% zE)8aaBq`UTtswrHwt^yV_^g|@f`#F7ec&KB9R-;NfRY2LSO5h>z3NC4axL8h&Y^!? zuf*-1_3~Drgfv{}9W+otLj^>D4T}%OgStK>77#(;gduiV{xfq0McnXNFLPzZ8v(3E zP)y^uHv$JtGEl66#JOBc_x!CTLR1*$p;Jo00!dGV5ra*iRIA{ zgn-I_P4qu_D}>NHIGVuvB_Z^F+2mmqmpXlIml5lW{qFDFrys#LO)1AHN6@=(Tk4KG zHKkToW$K=AlS$N9Fw$7-G7RPzy*<^RbuzYa`CDd4PzKe{@PYGRCtgl|8MU`8JfzJb z$y9GNHrLn{&Ezubmlf&bzZZ(UUyvSWjemd`&%A^%*;Cx~l&OAx@`wD`j}ns$@^6)E zQUfcgfGE*wSyOX&1@ia^k!p(yzJ=t&+JV zvB{z5X?GF!;#tkH>s;7LwTGEkiwkfEdYsMrRJvNpvo_6m zzF9+uD0K74+uDJXlWs>ae7t%$XWnSZ3CtaAP2)_g3|6zZ^N31$wmrP20b^JpJ+eU<(+504}AX)p+-I-a(azc@|g_io7t~z|QHx^EdK<@LTa5OS$oUK1PdqiT%x2C_L{=-oJe6Vqu z6{c+RYoe0IK@8_u+dY3K`#VR2G6Hs%rz-AoT5{&7)(N4?i)??aeBq6KXa7B#8KL-n z?A?Zsj)|YR^9G^mR&nE#Y5j@JS`98m_NJQoY%ZB|WocU#_0>PNw{7*Wb2ArJyJ-CC z{sq+b>(bVbZaaR-svMeHIyr(Faei*`?GC2+?XkCfkxaA{Xx6m*k3YMm)LBOE|E!$w z{G}(SiE4J`&}Tc3ZcF_>pLBT#+WC;exiUUgaO-4*-XEfP{7LM+L%&leyNBszMsTNVM|E1h)f~kJ?{n=LrL%A)7upf;T{5l6d zRBO7akMuNOdnQA(LvhmMuCw0oNL$v86Yuq;3-sIHd+G<~a`#jo(z+K^y}ju&n|AmO zWB$ahuogOM&HRI2Q9Zs?x!YrxK6BWyIUE_gV$s<)x;y5Tw(GO&*Jcc~Cg@C3Wu9Ga zq3rd!{8Enl4mWwtG|RA4@8s72j+)X~-otk@r%Dei(6XD95Z#E-A0gvYj z;-Th_7{r}UR!L@dU~2?&V#{k+tz*i z6Z*8(Vg_j_+l1oBoQ3B+mcATKdQ`pTT)h1m3Lh@I=djDeubVm9!ylOLJ`IBzshrfx zudFG{nOHn>f_grzJ^8CfX^YU?=V!{4o+;K_CT|&*OO!Kcl9co-kQMA4aRVQYZ65Uz z%#{nw*zd-cTbERnsg<(p@rGDgw9Ev(J+fl#0$Sp6sEYlh2W^5Gwa5%+dOTp@-X?Fa z8=iaUq}WIJac zFmLSS@tvUXo+T?d!1m)2WsHpKw|3*>#^C<4AM2qVdo*RN;a2f}cGyN{I!4nGKlD|~vM|bj~OzyWa z1{Tw!raUWyx63C7u+i`RcsU~|B<8LP!_6^&-&>K|*F6_5$p0iaPTTDI-#|b9T!6d{ z5J>+O=tumb1%g07E|LoZ<+x}k^olo;;Dka2a6+9U$_&XLL6d+6GZ9u|)T=DWSkg5Uyc_rqAf$CwCwk6jhJtA;S!If+It1U?!E5xOrt^8gR zWL${@V*s!O`Q0ng7$}W`#0V)~7NV;}J2@N1aD1?s$)ghte zEev3_0yvW-<%(l)5*2c_-XYWnAJpOAC6G@Pz^hJAj}`Q94jp3Zgk8h(E}Zeptpk?$8Y2Fy)Iv;ZOt^% zXk7tqMuM-01Res3rz3&#@Lw7K;7b0@W`q-;#6NhCBuwH;l_Ds?8im`8`1ArK3gjS@ zC?tW;K}5)ZwR7OaUA;e;k0c3+*Q$^<#X>d!Ap{MblK|l$X|)2gi1>E=#pC(glnFR- zJLeY@2>QJw2)Rq6=~^Id3yRGmfrkM0Cuu^irE^v>bN-4K07BqIvtRz;#*iQ+ z0u;`GnjS%g;GmxOfJ=)XL+_KQcW|;0vsnKi)cnn!L=ZnaaGa8rgO?N`p_~Cw7-glP z21t~Lh9uY1KoIcc|8B@X=rn&LA)L75@dr7E6bV6zLMU4TYD9tq3JKW~P$v>np+W*! zPDIFm)j9~`R{0;?7?OmHgo?(#)z6h}L{LsURAkxwnJ8=Ih;`WOP5A`ky^ouw%IBwM6MMS#0}d`o!C+u|e9d zfz)|{lbiX`L-Ie~czIQGzS+anMz{H#_MSSJ;d%9^=gx0ECo2Dvyu8grSbR!dwREp) zx}DtjBR$G;`brN&Z}+7ZJGkt)R~f|oQZLx!LIwNIH!OVOF~ zGh&hhCz^xdNeSD$9}I5x(;Bcf_G_$d^oJ!_r8jimHn%EDF_BR+e@8u+?eZONN9UWOMKy$ zVc*_)=l;S87dNW*-Ol?TEQKp;H}3tKwqMXCzv4(-OaAMuuAv5=t>gluaFu*m`^#ij zBtO#P-F+$@&TyVxS2oR%=~_(vWTCv)MR!c`MB1ag7nStJc7i4{`okeYDik)f$}o&v zJB5vB%SXCbthy>_`?RNOPd=T=*FJtLJg@TN=f`&s^71gMOfYH3(_U2)i129VH)Pud z`fCc#QFveR{h3qm(l-sG4Miji`U+Xza6D=A;PhemaYfGYN>hfzJPK|5BjCDR@r7NDT3<4P$|I^C++&91F7<|7G<{mT*}m@ zH&hxcmy{Ha>U_gZ@4{)LF7!Yqer%r$FX|Z2@!|b0yn0~@X4*z6c706O+-3$TsjwI9 zp4i`da<%ee%Eh{}s;kQ}Uq9!`J4jq}i>itnewFpPH>Q2duuwH~tb~r1%pJJl%tw|cARXgugF~FcZ?Oj_?>mzn4Gw6=zwnU99F|l!|&RF%x@fJT# zcTOEQ%GZ5v{oaNK{T7)b#s}~94n-(m)%G%cBIVaOvB2In(atcrX==~Mp^WLRH~GSy zj~1Q_mN93u^|!PUPPv}%=y6FgKq~EeS(dbLCE1gUUuiXNAf9Y*N&j&--YryCtNp?i zRA)C;Y%{~9jdp^Xvdw1MS>fm9pB=m=J3RAV_kD8czDSQI%eYHYIwm>^<*Y_NjmAES z%b!Ex^OS{@@SW06qzs~ZuYa5vFgTflq7uF*w@dvc@;HZkE0>v0+Xsq;YZoUwvKtll zwp_bdk@@2r^&JkQscN&CXM+BmOD(U%AI()c)B0PoH;U5 zTs!)C>SjGM>rBMs?!}R^2;~#P1Zp)xP)jx(`_ir(W1N~yYEl({RdqyMA96YvKQ zjvft6Q*7Pr_?0=gIduG}vZ+XBR`zpc-T;~94Nu_*m_E!lDV#b!^Y&xnd!xP=`nwzr zI(JI?kKFd!yVoT66Z`VJE%HA%KHho|MkKobi)IOE@2C|fI|3J}hfF?GS_FZ9k08+R zfz5+E@DK$0J%T{LM*t5KItUR2`aJ>{B7nw(=scm?9fD914uJzg!RLg^Vh9|d2F8R6 zRR}^ACj_C^5$I%x|NVrTIS4{w83ci`4rR;oy0(^Xl0@B{^%6Lt3P=Dt0FB*11}gC2 zpiW=}$~UR-(OUFPsNvsQ!H2cv^02XVw?4jRD`XH!UG*zTFdLz=&w%-h1~>{>%xI9F z38X?}A@G_+Z+y-0(H}iQNw^dcBLs#j8po~#&GaBV0F)O8o)`AtFJ(37;ZJ94tsCuR zY47-dxy`GAKhkA``W}K%2hc;H<1`5F0FfbFfFwYGkWuts4`jUzPb5hG$1#rpEf5AY zAz{*?uCN#q9rv}0767MXeajC&=YWm~Iwyke!eGt;B!C35OK5M9a$DBElGO+!X;TjA zj2(71&Nl9rj^Jlv>H}oiuTwxU z1Unk9RG@;LB-R+fOGZ@Wb*eY~`hsdoNm*Fv}{phq%Dnt^5sm_eXe4(ZIiwNyUx z4=O3)N~}HYU7T@rJ9U>sF0_&=e5RmZI<%zuB#liD17!%QeJp^VV0_MAj*e!l8X7@; zS$?08B!~tI8G##$<^zS8Kyyp5?VwiIAUg&Qem&I5ffSX3mxAbxUaeCIFbHUbikC&r z-qF*>9l#-umYy~$Hr6i3Z1{i;U zDTS@~It3ZsO=izJmpW0#_3zBp#?%Ld3p9uIj9}vUu16n>73;m&91sv3&$@hM^5=D# z{U?8<+Fg7pxI?5PzEA;qWoNX@^89p1N2|a+lTS{wVQ)p%Obq(aMaT7WswJMHIwoG5 zW_u!^V&s%H{bFY?ZTrB;k^;V@DUAhtu|WAn8RkhC(+(}d=p<6 zWS$drN!3JHF!PBmKEI$C=}yLPs1|dtA?9Ear!Q~R_wOGiGNY`#bu4ade@XsfyHNbb zg*~N)_d=B-_KWryY>1eStw+5p(GcMl$vgfnmZ>9LS0qHZ|E58*LIP`!(xbSymt)`b zG$u_7sD_wa&*$9kUlBe1KuL5klz(w%Fo)G>V~u5+A9c5)hR)Q0?t@G>;Zt?5_~i<& zaSe1+#GiRm>2gz@@!Nx;By-lnaWze`fS(JmmL$K-?%7a_xqp5CjvdAAYH`|A#(m4S z3PZr{TBQ^dg&2| z1(eF*22G_ZH!-SdXW!^Lscl;*Ps)0Y6xlmP#kdq46IUTnHN7Y@tC`F+t$hTxKP|Ym zv7xR|>`{H0)cy#CpJkeEzK&cTFBp$3K640AJ^N|EXhYo_|9$3miBvUrn|2@Wia$vG zyo3h1^W}q=R}PtUMcPaC7>DhU-O)lPmtr`*GdJzW;`^RL9ez&>g!z+G&dp&t@1lx& zPn143J<{-SQZ7GtOU2Jh9_mde%i;xKIUk6Z&~r>B=@*&zxOoxG1>i9;l&Vh`ay^5hi)O$nwjh>hO z3~LAz-s)8uNLN!I7^XB;TgR-zbs>R%qkbsLXx9m*?6Zv<1`Z2dJtR$&@T7VbR)aCjpel>ICY3`xa z1|G`%7hW1XR|jL>Y^#6wRGNAl+V!=RY1xka^R!!zP0HL!GR5dV za3q#^`*kdMy6&JoxaIzR-5ZRSY4h)%bDXD6cwqf`^i`cdhc;(CZ0hXUPfZ1G<}X=K zbhH{Z-4CHKD7E04q+FUvYUPu}etpn#>Ql8s)mE&?h0PV4X*%s3_8xcgbqu3H>7LHY zwi+b+_RaA;r+VqZ@f#LpYN}ListvFTI)4MXsc7}R3ZAnsmI`mZ5mZjDqZzxq2hMcL zEpe$pqcYYhw)Z^Q{=;kuxsP7MIKs5UkA%P){Au%*DxX^Go;PkRxuhk)j?i;VwI#P@VqlT8ihRJZA$cz~Gt8U?!9S#) zW5c&QW9+ciM^=%B=V9qXJaih(y!pMw?Mj;;!>ZEqRgJ$K{}DlHAy-nd_{|};kgMd< zxuwo)<_h_`SfT3ohgw53`U}1xHykzK9ti(z<#v^inVR;)SIXK$+`eS+>#0KWdf27% zR}-PB=l3pG#{{xdrZnCu)^HY06LgbhQwB2Tm=0!}WnBf=Q6kBBoRQ z%$Po^A&f7qWAmL0izz9IJCrlV6lSGwDoGV|gxsFl`B1X`#f&whefG?a>nRyUOxNbZ zm0{Q6RMhI)Gy%G4)7uP~6VG?vE9hA6to~$V@Ju8mWWsxIT*iyjO6n)b0y26G(uWSW z2YQ-$ER<6O$KGC6JUVuY`h$6;p~H)B$m#_D}8n?XVOLT$G4~K$Lv@b z$M|~QovLOsHHs~^G}BMkowOXcpVx1{f4RzFDfR1c34@`~)f+aR21n%gus+M?*_`V# z#_y!x!W=Hz{OW`S+qGo*-n(kPh7Cba#+oK(I$h5SF6}bcNr-(z$yqn|47Kf@xb{U> zWdT>Kl=B9+kDXvl-h$Q-`ShYFK%RqNmi6O4s(c$p_mnp=IS;!`BDQC z-7xu$V53bjjiyVPlXfM|uGEE8Dw?UvuZBOjGfu}hpHlm9)AVB;%bS;IL!tveM$9G2-IoKTouE->{ z3Ugj$eV~)asFE1>wq1WAuU&EenMb^HQ1I?xsJzm@7u03S6EReIBaO~Fh z9q-mZrN8wC>@)1z$b@QN{?u};QMm0l2JG@;)j*5T&xq|i!;N(HFXj5x-4OQ9$d^4H za3?Y!P8r5*5-XhHcx3nM+V2mxT6=z|O_=+haQo$Q!{E^u?iFK&6PIVVt7OlWky9HX zj7*Y>JOAK5 zW!O7aw_%GaxH@qQW7eKr?I2igFko^fB1Au!8q%1rr2H;p6A_cwT z5k`*Uh!}+NZ%lg@!$UiyW;&Bd|JW(1lSdSll~-C z0b~;=+;7+wLZ*H@U%&7L8A(ZNOHV5a7k4|!02>c?NdT32NP0L~x_gSddD(bC?w-e* z$Qj7@S@lav@aT{LJwO4+83R%jA=(7NbH*S6SDrL?4krdNckYi0DwKqP~CzvdP=iLE$8CD-2GUW`O!SbK+aev`_k3k?}@vu#J*v~e}+Hm zy3esu8auK1x_0@nLU7FeK$CGB;XAL{KB)DacZHEj?5kT$IcztbU|`UT$5lfeg0uqGgJ3NX)^7qA1rOJ@y3WXcUW>9bvV4M`eBAx z)@;IkcUK9E3t!_>WCO;pyZ81)2|ibSc8Rgc!=!3g-l^2r7ny1LVzFnHp9|gKiA{7V zURHZgC!YPf_~^n^<@F%c_NWZLB)#CyPt^x4o=sn-@RXcAOfN+9Vo3IOEw$K*MyBk+ z=g$nqC@f0YT=(RC&Du zRXnuI>bPnX8NDuzxH8K`9!qp|Jeh&$b!Vyf@=G&ABIN12xKi2GMy_{w+cqSWk&mO^ zaPIapyMDuju~B4{@n|}x$y_CfiJ3*TtXE9LbdT9^y?2dHyVdAeR@AeDH)CIxUKp~Q zbY!xAaHKBtu6{-C;k;K*TioWCtG&%PpJEms~E%FihLiJW8B2>0k5eQX)CiOn@IBekJv z237GqmQntz@zE3`3r8Yr=~rnc5b^%CmR8kO`v3JZ`Bl&zuoM2zMX{TYK==pEw+9Y`{=xANDL8llh#x#a4+8K28Q`E?0a_8Q2+UPb%@PDe!8@QM zG46p;!YBdK26!I?TaZ}r4E+oq;C+k|7Wa@+mQn_F3cxc`T1iDo1tz7aqNsv^L(fQQ zX=Q0;v?BB=RtfqU1h~O7R!Ir1ghnYs&u9enztD={5i7fVN$AUs%kJ8^bCiofqyXkvlR3*90q*{f%_&B4t)m+hu%lP zl`+Z~H26a*ASG23VN2ty$?PE-yuA!K=OhI_*6*+x(4t7e_dG>`s?5Uq*GCa{vvpQ zYfx2F!{Q#$MFYwH_uv2Cf&aY&|9c14cL(<3BAvhDgHC!3`uAb<9jx{F2-YN-uPj(r zHcA_tY(--`v!6eImYV8^K7VdDYi=I@*-THAL51oolYm-i0izDK$CIt|R6wW>_O&Wv z&YV10m*<+G4R64~1{d+jwAPBKkzQ=a_n@Pbj?@-L$k8Rkj`5x)j?5=H*sZ(dvg`EE z1XGU{$M`6Jr?;4m@@b;vltj~AZ_&?SJ7qT{Bl)z3Z8G~n{pjc^(Wk;M9}XQ>uM+IK z*IgP4Q(R2NeSZuSggUb+x^~cQ7d%iznHf-LZm%aV;Mu$E}9>nKZ3#Ojt><48X z22AR4>4op2M}>q21cmJG$ymVS7R~2AZQs7#-2AJpQVgA>`ZAq$_!EEkr(bEZx1T(% zvdu7nU0hgFLO9=!esj14`_jQtp`=hZZgtCZR@|*;C#z9viPGO(Jte|Bcw}z0ahqK= zcye|3>&&A*23>nbcW>rT;to_vl-Dvh(|)e#j?PJ|?%4iqbJVeK-sBeT^}GqP4Tzje zcOGhYDfvkyEiCR25Dr&;zbG};sCKJ+Lybyk$dsi$)yDeMCpk`**6bLw9fQ4YmijEj zd1=R1821*7{-?vqGds68)B4i{oG*8ho9feq>k7W&m^xu^Yn?Tu!|9i#=gM-(tqiuX zf%yjCAXRSFC-NsTpC1>i(BzFKGsj%3pRT!l|K*qnjgqVC#FrmT@l3q@?!{Ci_ZO;@ z5Dw<=A9jbF4Wm@dc%Y;@=oEL8r>%dMeW&7mL}TZ-T@izYKR3ksY+o1}*?1r-Z|9ev z`Fc)87hJt}{gmH&Z8Yxca7=_ z(QXzvGC3(+hulXWNLrQHb8L zrCE5SST#Uyj!bgPHMqpM>aI3{WUl9eY*kkZc4zrfU%HVCv+mW*4ZCWii+!ecD8(h7 z>-ONSm?;Pni9F~4#do|~aioR!^CeH08kur=61?Vo8#(ORps}6>~VT^;h<0Hr23Qx3rM-O%< zS8423+A;k7z!Q!z#r@W;+eChL396ScKB#09ic8^qz_?fY(e<&E-N|%bPb`8ji^Vxs ziN0PcqsS|v+<1M*aHX!;o#~TW_lLB#3gwtg&Fu|47_4(lm*RVU2`77vS1(#*Z3Z&~ILcA{>WM(S2{N5FXn6Sp_bFH#v|-(qF5`K+YQRKOi% z`GzoKgLJ!gnx9WFL=^FUvJQHa{*H>8Q-Cay&!MqyjMMHD%MueOKUasb@atCA_>-C} z>CVeso@(E-o+}Mq2(E43&=>WUv9B*j@5e^|9Xz#kJk^3xP3eM)L+_;HTIs?=;){L0 zZR*?o`Lk$B-6;>ubj=T+V-gcq8TYJAdOGH(vH5-3QnjHMtz9_^#$RdJ&a}3L?JRX> zKH@nU;jOwW_{qjrCfWcE4|B!j(7CD+IsLPxFAOd}h@*SMf7zST;f4QoH$%jS(3+_CCjClnU_I{U)| z`Wu3K-%ACXhG8|{ax&T$t6pfEW`F0L?6c^{pEtF=W#S+42;D?BIyQB<2iDr} z*l6)J=D3)uSU2_S!tVEZ#jMCcA^Y&Xdlfsv*@JyX8N|P4MwueFV`kc7&Md!w_W7Z! z)jp@eTU!T5l(T%#Ht(m_QdNB9YNN>ga`J@KZpZxG+lA$+JRDTmRIXboo9<+iF?>DHaC85 zzS})!$sg{P%VfQ6m@@`TpFG+kktH8!;V4Ll^~$;%LhUI&E_0P<>r!tV^)17LjMq5# za&JMGrElfhkzL1Rq#$=Ojxmuwj)^U$fXNNrZi-#d&rN=-(gqE z*)|>D);DTx%rQpnq+0=kLC0YD@1t%73EHyr$LQ4Bo^0x(5l~ zs+P?$drKu3A3js)3jna@1G!LUILFl8#g*s>N{%)*$B2G%$lczF=m!Ta-64mUP^k{* z^*VckcRZk?7yoh8SAeTk6k1}LVYr&Se`JP1&51zf^?y>s{-|q90(uX6_kkJ*P$oC% zh5=}qpt%Vyu^W_MLW3bmnPG&gdjHA6MgCC?cf}gPm#HJc8aZs@F^pje=)0*fz27mB zT3|y^*!2ZVfrq7fhh$-pH`NZ)uNJipiT(5taqfTADob+koO|M=rSSC%#M7Yb-H#RV7 zXf$?vaEFDx#_(sDo28bW+By44j3298-1aWE@PVX^gf0>m+0=U z8sl7Au`#S+>D7VP5?wRaa+^)wc_JKL77C&UkGY8NJub5|N6nY+fNl>mvZI_GWzTA~ zvqE^#(C7N0?}zOD+O=KUDc-AL7q**h^OsPj7kQ60G^{t|Qca1GPG$IFQMn=CH4NQ2 zE0q|p`{Ln133}j*8%?Iw?Jne#q+7ch++WWaT)(Inufe8u^?B_T@$Ei6A9YWNM2YX^ zD&NVaf2peKX8Q~8%X>Lq@GE|%8QHKeHocAQf_sj;`;Qsh&@kzsQ}hwzZUOY&{=+G( z%t3nhIZKQ;?w{I+Naol_Tf=?w)H`vFN`H)LOat7XmerknmsMdgb?q%_E5?M&e64os zT2j1UHb-o>d68L2wuQmAU9UfA+xv<(Wm}pi&x8c&N-stQik?OvI&NRq2FKwPK^gI$ ztxCLxJ#+MD?T>b+KcEw;o|qB26mwZ5ed;z%M^rSI z*%U+J^VZv^VAsNzSeHC+1(m(^?V+oDwJ6B{gggUra9_mNk4ar-+R{?eJ7EI?h1-7a z(bSn3)>00O_m?%<_f1>4JM6%;lA)~y+b4@R3v73<+m+fHUh0wDkl$7Pp7B2U6DQ52 z&3%EX`K_E6l(V?2UWdi&WLVzM3;5z9!p``{U4T&f?Ut zYBY=@`MGtJLmK^b-QC;vwtgG7JR!e))b_>*R_R&docze)VW%nGz+2t<&KoL)f~0Eq zNmV_tFdmU!JXdv6nLJhejPpGvz5$9xbJ>2528x+V)_#B;-X7I5*KdWrMtKX7AU`KkiLT5F#CnX(U zOKISXqJ)|w^6&2M){;uTkR>DM*qlPob7j)}uWi=Z`mTZAh z9PV(bE_$h&qQ!CWj=;OP%#uq_jhN*o%v)uG5TD|b@@#II(B-kDQ61lPZ!pww+90Bq zG9gZHe3O)za802|3A+FPWAClQvfA2paT-KQ>5x(h>3-=(LOP_o8|g0TloF5zX^`&j z?hYyGR2l@%d~x}$wfE=R$8~;xoPDm}_K)#SC-3!M^O?^a&m7|(_qcDfEySman3B$P zc9YmDbHd9Z?x28^=V|_aP1=IwLzI_!n2OpAjV4#9P8`E&t}{xPBSb_dBhJh6;Szox zyVoDO_)+v9k-#XEd^Th?8s{i5;v;$ep_ll`jAMP<=!xRT#DNr~9lSh-Px39PFIw0q zL>G#*(_l3+rZBG3U~Ayx42x_wp*~Ati1vGsqpE{a;{}Km#n+`{XN~$*{p4jxVT#;_ zb$npqD>H1WxRbQGJzhaodaGl}UxYYGU>=@&8r{TutrZ5W`fZ*py1R@GNl#tE~`AC*E{VZu|rxQOQ;CQ(zH zoLi54eZG~wYK`WvK;OW7)CLQ=CPJ_y2?K8?niSbLImhc#*i9JL$ z=-FyYmRzeo(WkJ-LU!%AoNzI^b(aNB?cLOyb5$2GJz3Mv@N$uM$8JNezJ!{>HbV-y z?eo55Ji>wrCEgO$j(EoK-i7vy@$f0OKKYK;OKaF9mp0$k?J{g@7QcC)ihkBpWF@QN zI;yQ)+P1Eg>ygeC`dmu|PDVd;-ZM#ig@}vxb(O>Efj7q$vc8dsuwNWT{QdSP1+ib) z3kQJA+vTcO6{Y#6BI&0Kd0D-J8(#=D8_iHKGXTJca!a{6dy@yt23?fzW2HB&1o#zsT4mb0E*`A zw++OGSBThIPr{hGh*hSsdv#3?65MB3+e|ua(-oY~4Eh7DG^(5+Ga(O#(rR@R#-~hnWqLzFt zsSjZ72=#GCFV-R&>@PLC3X+YX)ta0x%=JyQ=Ft;_=&cdH|5hOI=bRp z4~5Se%nyXyyQ%iIBOOj}qH<>z=){jmWHVv9HUj+7{)fQ%R!7`ue6(!cG1zjB6W(r)t&V)0NgQAkAk$bz=g z%D3nh>>JT+c#iR&bvw!q(iJ|-R;%KQEIW`wGq*tU#ykFNdj51<2zBi8xaPXZ;`G3c zRBVJq8;P5_qs57D{%YByq*y$2c@mEAjM<}URYyJ)!wFZIi!i*tSo}^!vn_}ZQ}dm#s%9sWGJ28HwBE-8U(O*oBa;bkaxGMWl8-I#bL3Uo zLzK+pAqBXV4tZl0RBnmB+4sskbgBK^ z(Ng(pibT$)0qPwl$lVhuv6~ETztfGASxX9<(4THaH80Dz>wUA(`$+1vP{K>BMo*S} zvXRed{Egc%aIpUMiyzwWP$A413lSIImwUn^&?F`6L$0706lkG)-oj^pE~oj$(EndP z27t%vpKEmYMh0MF5wPC-hXul)tRr9t*-w7Xf9rVxzon%WcvkSkmEp(w*uQ29|F)#} z7lGfR;$`xKCWtp5O=u4_gwSmrE9o{gpBMZ_3YfQPK)hMZ)O2NT!=UpZOs)+yc@aqP zNpn%7(Wzf-pl7lDRiX%kfwM}Sux4aboB@{bBdT5vNe}n4Ow%s9FBa2NUmTW#bnZkg zdw30|m&i@VqCnYSkC%EDc>%o%jT@+Fv+$m|fs`Cr8tW@9C7-X%XjG7;#tE=di!m4m zK^a*s2^pkSp#IPjUlCEe70X) zzh4s{JKz>i56|UBM0R; z`|-iK;5^G4UirS;XCt9=2_9}TuFvr!Zk`pxwJ=_#<4;nDuu!xQ-y~Afiu2sL!MYW5 zXE=*R4x=jt=u_*|^eO~Pla7g&hzBH?q%2U}v$@^<1}Y$%^U`9=J|ac*dPcIupO zp%@)!*enmvGPK2N~yXKQ}_ zwI|ILEtz90c~1zFF^Tty5KUq??!hx5{8@sI^wSPrrjT#{vd zl>>8AD7C}ts@?}P{g!k?$Z!h##SgVpcaA9%`CC=LuqzR1-G1RmB_=%NznLa{i~$dc zg>yNc+jQQFf@C{(l<+a*?%avB3oR#)&3YI8(pyJfn?Ci%|8sQAM(%mkYz^#z$P2{+ zNY-zOUdCMl+U4-GeCinbI-D+bzt^rMJsDwUw zgp*PZVMk94ZyCK_y;&nUAW1qUw+{V~-sl~BYjgLVBQk?KPkV!v0Jc(Z=AjWg3`Q5$ z6XW)~vyA5T02MJ@i55aqtcw*%C`dXHK>@)n=umbHu98pMclD7kyiA!lhciuKkdJtM zKL!k(30(JwBBZk;Iv)qv7Rl4GRjAJM^N67{Hb&^zL`4@0&@MMy7*A|#KaGYa z4+9A?vCc6V4%pRkb`%$xcwJ~8M>s#WJL2Ip`NWyu4y7S+v>n4@dU>Ruc_dd6k*0(|)E` zoS<#5joLFO<%??V7EjX4M>Rp*7?xU3pU~~`Z>j{h4`N0Ow)zKK&dCK}l8d6GR%Tbk zmqIe{%VKNWM0|oC$P<1Vv1=vHhFd5I^0mi7r^0%8B<`J{P@JVo>sq;`sru9!r(_Ry zL#)V*FwU@oPjIt#@u5xrG6C!^^XGnC8lPZBt?c$BL0JS9dxCZRJ^wQ|(qyK-G;<0j znTE`Y(aZDmEbTwtstN zj~^GupXaBUip82GFz{fWGCQegb4h+9(#5afk~;-IK8`o6rgC1V+!}frCnhiBxSLz7 zNjvRiu&GxwkokJm=oem zPn;QAX#;WyzfI*FHM4Rgr+Jl5=0o2w1ZIY52CQXrM2vXw`2&+8Jdzck))u^@G7>acXk!?FC>B>$kS8L@+ z8WlgzINX;pP`eZ?%BuQ^_<#zw^g@H}fVPq@I#dL=N?UnHQPqn^9dX$!NV;kVML-jy zoiW{iX&LnKY4|Wnya0b+j?l-ZU}2jwOmkeB*hrF1n_7nGVXSb{{R))P0zqOw6#uz% zfd-Rg4w;LVWZ)S}(&`T|@Unk;$a8Zv7jT%`cx`QjC=hU5II|M^`mKPKly<$vG}Y5r zPD0~_6#dLqrg#&*yVyE+W!9Tvz6YtD9N2FH0f6Y5xJ#6Xm1N928xz}OSx_Vl<@;hb z8OqAHssyOD{GHqg*YR`653w$^N99ci+KU!%*IvQ&pUBmgOH4m7IP%_+w$O`cJoVS7 zq|p`(CN0BXts8ihWUoy{#M}6dZ@w?SrF|wSkJ6H!r>F?C9ewQa6$F7+GMCRbe4#;$ z$@=>V{HpxamM}9Erjaz&P1QkN*KJ1YknK60!qDDVxrdrJN4E||O$}K{3p|E-VLqSc z94=5uUoa$cy#L}oH%{8knQHFa3+-S$1ecNl!={I3O8iM}{BaKxd_Cz=2DfGr!G!F~ zm2!S2T3fsvV$`MOiw%p8A;fm#&sa7{xYl)*QC4O?2BC?Zbqx#J)(yFcTobDmULDC6 zVp5C9pEnEeFCbX3pBub;mw1GPLLZ5b2tw7mbdo_Z#v6*lIpS-63ti`_!SedbCsKDj zpOcpCi!*a+r!OdInSA@1GXgD|Rf`#mqHgY4B_V{#u@h;8j3|WsLnz^ocUB(UredUs z+lu0!HEyo((FjgvQeU?`3}e?1h!0+Xdviqn;ezgCP}uq!5&4rCY6oEog2D*3t>$-w zdS}R^+H2|J)7Ow03r-%mH%rVpj`SD7`^Izos{MKr6A z5}LB$s$aF&+lq`)WD;0?_|{_>%3JLV+6@tHebdJmPP*yVq)?}0W6CtHD76}v;Kkd{ zVSq#*&r55Pf~7EixtX50E+qezBlAd;j*nWD{vsfLGzr9{%fV(e;AU)(ogkg(80fC& zI`Wx=HOBw4WmTcgT~x1OJ)D@<$dG8@G|Wq=C)oqdaZ~9IX|n8-VCeYtE1eHLC?rtE z?zeU6+X<}$T>AP}eoyvTf(eRE&s7WHGZ_Os_pj=ioS%5> zoTj2YRr#Ii!Yes^!>cBX6#Y!HMokJ0c3*jt_4ugS`6#x!W8J-?H1;aff%QDuw9d-4 z5!k?WS0CpNe~O2Lr7fga&!K1po(OsF+n&3$Vj0X!@bt09Q@^ESo8Wg?MMHSu)9XGe zrEy(f!9SBBlIs5a*2e&zw2(-Tk1`=E??7+Jp0f(;g$$Jgb$F&nnBHmHE_tc1?ib@Z zh6^;Ir;p50(hxG#REQtQSS~2r934K})b?FaUE$Vq`-;1FeN~UmDSG+9E&1L1N$s`W z?aW}6r?QEss_9#?`6VTDI!bBTVYc298d)}4=0J79A9jt5*RGw3)> z(~3{M?M(UUT0~D_Sj}IrtfeyT4OZ4YD84cYgvo4+OVGe9?00ze{-GV}W6^SRn2b=^ z9EP4ACr0ktcWWIFjV%0&i|kakiZ^?65?@sp;p;&0;PWR47NkN5U4RPW#-Bo1pmL6) z*6CxyUpm8Vn8`x~5t|KXQc#UaWS86?bUrn|5|+PcDykfq%$%^OUOxSh?JwM0+)Z0J z?`yK#?NNbBALudph)Z}blFr|py00Zjd9T6v)Cs;%_!`tN*v9ax*EPrFFqlapqfxpm z0Ar)Vi;sH=L9)JzL>1}*VxUsC%Bs+Zc?^8lC;JasYR^O=ZzCe*B>!`I(CaG>_Z`r=@d4f)XeDv`ry6W_h2Csp72=waIYon%5kO-fuqh7t9Cl9Pg zglFd?HXn9A|G7s#J6{@Nw7Xrh0$CeWyb5pz797-f_8OVe>GwLNdRF2 zoFV_UR`wV7o&VNz;y+2P_w!x3zlt8*t5f~Co9HL0^`3nCx1`oToNRz)xc{r9);}mv zAbQXbYAetJ#8!HGK!y_Fy8@hbpas)d>FL4LR(g6cX%%Pz(keYYn8*sW0C|-jkV*kD z|7Zba2!PxP9D}K<_s2h|p7iu!x+fdJlm*&*3M+61Okw?l$O=9N{swOE37_=zU^*y3 zWCfE#|Db?^NuTue;Fjf{^2*9|PXoOtf&%9OGAJt(m)Mgf8=xVfJzEbWWg;6+yYeCf00XnkY;}nXo0`} z&%gh<1OIae{^t(-H@*Y^iPY*BF^l3uk0uEQY$#7w0_zQmjSN)=Y@j~t~?_a*C z|07EkUn63n>g$b%AK}$91bYfaaE5XP>=-kxYL=8-{ed7Yg7PrdbU~nv$`ia zYD$c;vf^7ty!xMRJx(VJ3J$g3aFe1~7-AbpnkL=WW9l_D3@A0NuCH%fCe~k0=o|KZ z*ksnC5s4JHR+f1F`o!~MJ16z_i|Fg)NhFGN*Vfl>XHnulmGPfiR9Te;7$$KlH`6m( zKkc*YAf*c`Oo$0BpNt=m7;IP3MC=OW>kIx={T9R+H=3xR_->OqqbUyNdXv4NJnE4q zq>!0}Mr5$QR{ly8XHu8pOhI9CB3-ts=sXRd|!y`LUrE~m(B;1r%G=cMvsmvB^#^SaN%+H z{P?%}E$66HT<324yFY2 z3~j>Pgd&yDQt0_;b9p+6-STNNn=Wl+QE0b2Gabp;=~o8fy$Tx(-DXgJ;o6vVHCC^6 z<9uX-g1g0^8rE;AMAs>5cR|3bn740AG!zOu?Z#1$2fuo76ofp_6e4E1 z%822>6i)3~o*-v*gU|WCH4xs;LlH@pb7Lw`>BJO{j#WvIZo2KQw_HQSY43(kJODSd z)N6^qS6pj`ZLDN#yO&JERHF@YMds|HLiFBx^5o`X=bJ{wQ$7_3$ zC)_#1mI|*20O1epT#E=X%u9us6dq9ZDhMEbmoZ?Opy^m!B}6ri*9(;;Mm-xzXOCZ} zQBca^&Jg?H%MzWtUtmzcJ%l*W{<6|6eDRv>@jN@+FfGr)Mxnf`_hCm8dXv-y*M z0fBM6mo=T`7t(Xz$*ckG({tGhr@$8+@+6VuU6MP+*L|V zzAb{cDCk=7uBms1Zy2vDt=E}+?y8;a@c6em3_n_H3X_l!#!YPTU!x?oBzZf3&y;>1 z93vy@;~i7@Yzb#oOd9T395h!3LuzQOIcuDiTeNNtMUOmz#2TiIgmv>8;&Uam?m>Mr zVu>L1=xS+l#%RS@KyK}J6yXYvrM>R@daV?Lfm1yQZGRgkD*FaB zSg#t}qYmcH-B#c9jMxV5P6=lj*EMu%q!dE~(vT$Ipbl$a@y%Qmv>r9w70O};Ly&_l zr|P+6Mw}HXg5)lOH%mCZ2u;^>C;Ej45#~}%X`7bQ7ogT^N!H8#hWZo9-h7-6$+R@> zWSk}CWeZvQ1*i)(vY6+-7{P*XNWQuFGHSFuC+kC`=9+O(?fHg;F6GOLvw{|+krqzY z%5V zJe!@HFm|rBSWg3ftdH-aZ`Hhdb9HjeknoEwZ>QeRYGK&<5@WSP?1AQVNoq0~9dLw| zVsgh7Q;yqqPTuEOqB_jvKE=YT=0Zk86hSl@jwf?ldFnDkWI7&$U`|etgLBRH$c5;< z?F|gbK)#QiZDLj^vF|Z~7K%f}C^8wHQiUgyTD6L#6~JW=!C|R9?4ig{imOr@8ORZVmt*YfC4f0zV(Dgk z(Xn{7)vXhE$}!-6{u#z*jNG5Zj#cx8xVW)qBE*}{Jv)x(*al()72TU^b##AQ&gS>u z%8FwI^!th9KPrPXk=b9cq^|p~vv^yJzc->~)N}g=<=xOK>x+&o%%(FM5uR*PcN6-y z=u_pl8K0b!NguS}xDOq}(&FAskx-a&jH*S`Z^Y`CYrGXY(Nw_THPZ!51eu z7)X&M%IeCpBD6>?5#nUND^=Wuj_)Yhn)$~XkJ`koLsbv38*V;Py(l+$q}Ob}6BaCo zAjcRdPqyzTR1aO?`ZexBZ_AG2Ag5t-IBHP-s zt3qqaBJu>SR{%w(6j`M2!lA}cqP^Lam|PZW)ah&D+snk#Qv_1*X#Q}weiD6e~HE+lFm z1^|lt3(<3Xz2t+Lydq96=z3jM+`FHiRZ*CAJ(Lg5tE8{5-NW5XAK1hVP`?AgnqFyuzZq8wO zs~p#k4j)org?=SiJ5I)IW{Z#g?6&OED*j%3nIfRQ8IMxi>~a=&-^@;$QRV|+^csdv=1NA6H`!>mM3U!-*~s0t~2ubxOJ8FIbmgyTG|)*#Ir~(?ZopMY%K0?nRSxjqs4u? zwVYhY5HO)ESeBNLzRi~>B0!c}$y&)+mJ+V)U6Y|^`g8zT%Gbax=UEkoy!fuvbW}7E zO7S+zB(IEx$0E7C`14d|M}|kueGZ=Dvj+SntZ;opQymGcy&O>RvBI#Uusm+pklr8r zzRxqulw|tII0=S0zxz-oNNdKl!$uxWEWp$B#cZ+ZN#@>AwQBY9N^WVl(ufy=3G3P( z#Ki&q&f!GfN$&Yn7 zYh%OC2*({GlkpCa^G`vTYMQcD5I$86_!RA;AV-e;0Zw!~?zO=~mr5nqKp%!dl5YrF zJDPRo7LPT{(q2p)=wKhPeTn2S&vbAlsvlKa;_iceIYAU7bx8f-9o-RwO5hAjv`6FS zqp+`OvgDYuPFDM}pS9>Rh4%T0H)J-$@cjnxk);Ovk#)A(=?`cd%qW72)~((JP%D4b ztg&-FWaurOnW2tH*6m7SG?jd>*p~BRjlGwlH^)scFk~7!!@nFl22IdBGRpcaOu2`J zrMo?E+A5FR6qVI%??CFTSF>|I*LjL08@@ixBhEo1^rLq`i}rlYjYd7^;E+$<+YQ0) zCC{|b)_gCs*7rAWBow5dJe$!#V^w}m`9gDcaZ(o9!$#+{I%wI_NufRqN+k#G>0Y?B z=Eea7VdvC~CxLEJ2*(DTLmR6bE~a$vR5e)N1$KA6f?=VHIKCo4f^Crcs?IRD$0Krt z!v&B30{W}a-o7*%q4KsKt*_M{4i}Cm?c!3#%H_Amn-qpKwL9xHkReY1-1FqivuA(TMVh zC%>K!!WZerNrsSb-kHlhLl|5^7jg%SkCY{fH{Q1M7xd5J;;21j5RjkEI$*?9G%lxj z;_gL3?II6*OiOfCNf5C6|?nSb#&|9=I4{~_k}7u~DB*rJ1D_=&%>fdBKi z`1>E$5&zfmcK~Y#Bk%X^{V^DK2k>`xa0^D?!T9@q3!v`+3V(kLM&iLJJh%m8@L&`k z+=4N9F!By=+3%0RSUVVP2g^`^1teJb!J-jt0{j4u4o29)(iQxGfCMuj8v(}f!2%3F zBp86N3f+H42)qiwF9bdhM&H5sJ6QHYfCY^33jo+WAl3l>;UAI=02Y7$9k5sfSe^km zE655yBghJt&H!3qec`8M!~J>T`}4y0=Y_$)EOh^UA=V$qKLj1X-~1`-06qrfD1a3T zFj5c3=3at@a3^yC2#IcxuC72vuBmI+_}Zdni6^( zofQ0q_A=QMK#T9W)?By#`i z1&>6468H2kSW2URW>P7nfyh;mwqeHIj3 zM8HZlxq-IMHz@PiETH`nQE;JF^CAS1Q{+>%DUPbX$D=~fM0i`|7bUvSyi!?igXE>E z)_2l#7}{Ww1=^k~o_H-3H8rbR@QAj7YU`4f+r4B7b4(ID9*CJFitwWy#i+-AIWN}= z7CaZ?nNSp?t+t=CJnT*UPX6hG*`wfKdXd>nqAxqC1w@~en%lmZ3K6Id69znx1c>C^ z+KgPtR7WM>Ww6=vdP+GeFlX1Z-UjT^(gk^RI7*III47*k7kX?3cjvcmYVoK?eWzS< zuyB}BTnY;$QZf?*<%Grvi9}^1Wf3zQSjp*&jzgqF;3_8>F5Oj6>R>_y1nS5_t8}%} z2QFiDCS_+0^%gyks>~Wm9YxU35cMKAgx2%YPQyKu+^T=wd^+yVTaF^!bQ&X^D`ZRz^8_jUGqbfA z7|(>BiENdcuJOCr=h@7G3|f9dq6ykF+*2G1w~ntT^xfT_c|w023D!P=w~zIKhm3YV z&*!YrzY(3Hp^(9k8l?4HFlLQ^SI@+lAmcqAG=aanI6gkU^im0xTB2Q833{*aV<3BM zpMua0BVGN6Y??XRr)zJ$jm~xPIv-cDiQhm{mwXNlf>7E*!C$tCqL~q|;FGj*>}h$` zHK%aE_-0_IDxRW*Y-b-r)cd2?iziba3DLHX+o-=#2e5E&oX#BJF&pWXH()U=Rd?E? zvOFD)XNsy79`1sh>t4CM+EbR4_nM@RxZcrCEFakD#(5iC*Y;S4&rcMpOV88(gD@_% zJ_yEoO7Pu<8+yyvyq&o#+fqM%D8#6iGrw)5n(O=lY)F3{C!g~xw z(Bb{UOq)%lJcS6Y{8U?NpIQx(&K_6fvW2d&Z8V!}AEWHu(Ul9scj2@MzDDa zr+BELi4#P3u5)Xgy3*;k0o$X!jZ-Yk2Vq$(OE+2~K!%=AhC=wV7r$^Ee}Az%f{52X znXo*>b;_h1W{7C+736G7K|>X98+pA&DrQ;Wx{AD*j;pp`??P5~Zi5)fEk|oX2CS$Y z3UPtIes>+mlyFsh1?+NdfK_iyq?B0R1 zbeD=bsRiA$6AH9Uh_Hlbu{ryNk8CD4V4O9uB$@mvB>3>H>dL58Lu8=6>byXd<#2U8 zX5|?+#LA%#cRQdUcLo=TOWO_et#s2m-D(16zLN;T7lE0$hI}O=OAkw*y=5{qdj!2j zxCweTvN_^~tPB&~mE-hjI4@}VWi0O|mQXq5x4leRRJ%Q?0q9q0{OAUZ=^igGQl6#m(MU=Gr99a|xbV4i}Flp(6XxcDd+Q`2(`EE`j)(~gE6FNXc4&hPk z%d@m5>+kH*F}#@EY z+;6l7WvegSUpp5bTa4xk_V2MtYF-Rsm%hF8V4a?^zlhj^p#~|YY%O_Xn>P@Iw{syx}flA1Uuy0+`BuEkiHo&BieH9 z$j!3?ez%!D^nAK@qws4eo`o>w!!9*LT&t%qD>GT!F74LL9!3SIO6|}|cUq@aubUp* zQugw`*z#vVB2nnBqf_x!duXwVV#zE;LJYn32nn~Zt}@go*PA-%$Wh|2{o$O( zw@1!H@cp+#MO5~K=XK2n#}DO~b`IYn^^sXse^3KWux;!aMy!bU;=m?xe!-!QBN5;I z;4*E^Hhpa_@=8baDJY4058xe|k@#3bdM2zHD8a4hKf}u~sHRKFQDuC72X(qFQEoUY z(;?JjOkc9qpVOZc)KtAyn&pmILf&&&CCO7@Y}_299%{**o_;t&QW+KOjlZFF`IJ!g z79mkf;gr$;gX8>=4~x|B_+WosMY2OQ z-u&Ly6C(9ZH2HMqs0nye{OeHOyO&j%XeU&jWj3tbJscIi=MA;vT%-4x{AK zGcm;UMBKRM<^p1E#j4{6dg>+L^p|w9eZ@XYHU+rBAY~((&2!ZEo}H_>^N)N$3k;0d z!7uz!=mZsxc=)19k@K@`O{#A%42r(pj%&%+SewuCc#qO~M9OfK+bEyy-h5b>?s+VR z%VCZ3wdR@uSAr%@uLnJVSu|Vh>!#;ZLmZCWA&+Rz~Iqw0c$+zx1VKV*W`V`HMgbc;6)8ob^+U^p%OF z86qJ6qGv~}M$Ettcn7i*GXutrfHNRqlm$2n0;1%A{}n6X!u4BfCV#k_{=1sVz1``* z1!4;*zk?$&H?g#LGJIoYVXOB>#||)~1S`Rt8`{!YnEddOGq$rZe|qmM_e(pudlS{4 zzy2G-EzE#I3t0J`8E}RKbW{HjfM;d_(K7yaq(3mee~*;qpW6A|o0Ty$G0_47#SDN1 zJlMvOnVE?e^#A=*ei|2mAAo;7J^$rR|IHf?sOSIOC;St@yx)@hcaIh$5FQgNGhmv= zNDDa8GJ{xwCyf;dmx-47cf(|{IBz}`!H!~=^Tv=>}bqQY=7-P2&n)3v+HLD zE*Ov?0?hS*ECGVLw5&ih>}Odj4!M14M4}NX+e()N4;y&(ocGpJ$ZLp4Cws zHjh6ljx*aUMw6K)GKQ~JkQ~B)>knaDtl@fRMa~oH*c~*~?fQn8w_I#N-?>XHN~pJA ztM}Sdv(dxz^r<;5JE>WvYwWaa*!*41qrx8UQpPB<6y*Ri0sd7`ftZ}Iq)H2jGDg`m zXY)fL#m2|YXCXbPCp|`F2)>U3d)`Jps3o&kh@+Iz)Yrt2mEExZ&L}@nP7&0@+vU8v z57k}xMHaa`>`GUTTvpciwvYNXl4eN4yZ26Q*e_qo_-%LTHQV7S!{xtpCpToWL_SqX zmEb4B3Q3(QMYkJC(~c%w96JcAQdhp}J>vQ%J1{;b>0l&?gwI6fUuQLlgpv|?(DO9R z$?PJWO(hn^d{uQcoH3EqR0da3N&J8f9mf=jXv(-%NB@2fE{s zKf^4pC}R!epwy1qE^;D&MfIEe{pYuh=ZBBHXVTz+YF?04F`5X~_|-7h!lV_nGP zeRb=gO&=6c^U=rKfwfL53e+bvE18|Tn+r0j6L!+>cOfIiKIYz{L8pa73PCkD-)`al z4$PEOCV3BFwhU8pL!32XQu7>b4J94B$reP^>$jK=8w{Gc4d5lk#?^J+-#nay9D%a~fXe)4Sq zQ7)UH*xCPMC&JlbEW~F5xeWxATdl!eiHHBJD5g#T?twLlaydP4Npre z>5P*!ja|xx1?s`r8`xy4Q#pNpA#Lf!2bM%c4^x->NWZBfXp?FrF^W0E9evr!S0$Ud zXt@q3{)jW(Vlgsbe0ZCN5D`;Yjku}$dhHqpgM6$=NNqI#1=>Em!IuD-?;QKm{S-)9 znZuRdwYb1W-H+~8d_~Ggx&R3c1Fx4yWT~}1YYi!8yXPWqw_`}%j_E2tul$&eu4&h> z--RL5k=N7n_zicf3+tK_+Z#*!iD!|p-YVF&4h6+Q`m%LAI1f|bt0B?RIKJC?r)CW^ zymO4xvat_bW|~?>kJMMug*TOpio~33Nz0byKo@&zS@}jRr6{0W zeqb|iapbv3f61hS5)A*G6H?kK<_e65)KKBH>{|j#3S4M;0rT(k{&5uu<=$-HDH{FJ zmo=jp!$U*H1aCoSNmaX9;xQ9ANzW8GvAB+>5;}50DuILvwRut-wTL&CACr?#;l(n1$$$#g*CLa9o8S%MVjK z>1oK-es#l~KvEWe-y6<#e(ZL8HCfQz-M#fpMFg!~Q^P^V{!y$X?V(%12c(V-Mumb%$cqBI^Q%* zei1rSBwD!gTcN-e4m4gZk{fv^+X$a4{Nw(2m67cl^?OsU%(*J{3eXa#IDAi9zZoUN zk9!!78$VQ&=-@(`3N1oAK*270E}fVgRGuxC|KxdkC4vPlH!I2k84toF+1v~E5E3#k zPtk93jy4x|E|W_^uLap8-5!tLaGiM8?Os)SmLo5q$@artvuo?Cg>%+t8YZKn02?Q5?2Qn8fgV{#r!jeT_f1he?Z z0zBjTpjw-uv;^n@biWI`!y#A2gsueEAh^J} zXuEdP1`7`Rxr*q0k~ID#jEG8Mk_bGwPl|4F^H*N0?PKfoV7VoP4|9c(hL1e#mT^9i z=~w3oiz+KrfH_6$(|nDi+eoX21Xqqj1TEY8@*=WS)9AH)5bj%NtXoD6$3py1wMoKd zUZu`OR4CCk5f2FPRykIV*}7`hRQkvQ9V5|pzC5yQRA@tN<$7CxSjm<-)FgNI?MZ;L z!8+vQapLR8G;{i(m2dA{h}8%8-Xl7QpPNpF@ffI0&)VG%%`H0BBphPKswBgppgAg9yak>0nrkeiAwI+~N~eMElW4P9mJu$0koB*fvwYXezMF}C%hc=IC6Ib_Wf*3a^05ANbfV2w|k&ZjwswVJX&^7RaDyF96ht2 z+#7KzliR0!z5lj5I*djub7DGJ89(}3{nhHX%A1~(l^vN#F25@x#FaWSXv#i;+L?jQ zb3#HpIl&af?)?X20VNXWp9;Rdfa@zH&CxE;2uAMD3V#FT*PDE9vMVDb>UHx}%$nc} z41&sYe@2m6hyfM^jK=S;!wxDTU=0nIG;Y38p;f#&_=@PHBiLmW5TDX;{Dq=#>oA~+NH{{ODf<@g>~j( zlE8#**&YVO)yWtRDeC!@R;kD+W?uW&8R8CEPvzk{e2fZP8L=M@{W0;?3xucQKEx9k zHiRE%Rw-^|)|MM(3Pn;^;g`K{RqcbGy%y1+p4XowvrXM9p$ ziaSm~O%PksE2U>LJ;LjhVn_vz~nZjGgIe5Xe;`zm-a zck+3PR9FN4>xxgs2m3NZ8y=V4C{ZQVje*VZWFdM!w!cykQN?XlrIgV?>1 z#|;|!2mZvFPj<5@wxrlKHtMq}BTo0$P=@MRpse3fPJJ?vJ=`Pp zqsQvXa$`qkVKhr6-xZp}cH2aI!uN^^=m(6#N3dCh>CCB2r+kf{Oh&L{TrYgwZ@**~ zF0=55eZbnlMjnHGg0kqOxdDB3Xf-vB;`BWos>U5ou#hyIDb<5FiQHkD+r4~Hp^fO7 z9<@c^rpG(;9D+_3S+TNQqz6$PVPgve>bDm58bS~14k})-@)k+yNz1fzKv#C0)=}Qx zz}qQ7YW-q0?0z-^o?Zj)A%7YNvHXM=03oS+r~$CKyPt>ypZAks@F#el2>t}mxBhA< z#Pa7ZmjBkIo}WTf_rd-rdpiI*00;FKnh(oQ0@J@H+`vrKLZ8Lf-oo~mzy<3+1Php0 z!4L(YI15ai0i*`-jRUa(Ms|P`JPVMd--2lFuklyjb*z7j7TD@I=vZ3n7}Hu>SsGc| z-=j0uZ>+#3IJR^;dgi|l?H@t}Ai(^N6#$>uX#ocsz-1kPMZiD^h@KW~y7*h6-AC}t z(Ebe}Ft)R^1_L4bR*shDRyz8$|BCTvfNu=U4RmY`?gIn|NyA7BKs2;=I&Wy5Tz(xf z_#yuXC=?qz5HX0D8ORHcF=D=r>sAE*S`ZMtUv3{zdG4JNhS~= zoet0d>16pMoko9?&Ob}kZ-x9vIsv*G01mMegFgXiiy6?GW@2Rd&2)l8`(--+t+4!z z`5p-Vqfgpe8QM7l654b+_I6f!R+fgp#)aAbVbS@KOQ6OBV%I>=Wcz{LF|h!4nV{e8 znfLn>5&u1zY=2vH4DGCGfA&S-^Us)m1_xx2?Z51gKxO5ohRMhV6$nE=cZ_z5PU z)B^6Uzg2+lqxn_-*#5Qv{cZj%bj%F?CV&61&iu&VeJ5lD`XU1@K+yy+OdySHzu6b> zFaMWu{cV}~Rr>Bj0;dmrK*K=GzzX!i|DvD*m-l~?Kt|xPpa))a!06-t9Rd!S4S;Qb zFNJ?scG&*5?EEr?x;nPTf0Mp{SXcf?A3ZyOoHGMHZ$LK$o=!$adRl;0{ChF|U0GrK z+p_YX({~>ZxS;`8O(1dLwEa!t1pUMM@<-uhU}vGFXJ-Nyo`5wFK$(=09(Zd21IphE z@$U)@P@(>OhW^8g(8$D&*4f3tQs;gJ%}B?=#F9=|@0V{s&_ApsKT^iP4EPKK0WdOx zZ32iHSlDS90Kezois$~af7Rnae_Kg_c#Q3J{|v_13V0Xj10m72%Sg)z z{0Yb=aPVLCLC`-eHb0XIE}kIZmCp?HJ>b<3Uf5y=R@{Cs_`e&~fd01J{JIYU%Zhd; z=C;4?hrmGO&nM$I77c$S6}$oj#KFi0bUz?2@Dk8(2K9G^1@yOt<=;Bt&veyJ`6|rM0DCgy;U>Yuw(FJToT?91CgTLdV%RoV#1Bj-#Is(>F-dv2)A7lz>iOeQ znQ)>8LD0V6}t~C;nzmOSWvYvQCSTqvRl+SC^Dj`Ifz4Sfw z;P%b&?ZF0oJeMg_{`_nu{mk2K&v?k_48QuQK<%J2(HB89usB=}d;U*Ub=#N61lSN> zCGH=2e#T(4u{3`mIGH_7&4Qb|Ql!2v%L7#zMIQr^H3P?-m@)!GJ%S-gC0-n3^1*f6`ESA4_ITOot z?fg`j8n>m}F*ODrg>DP6z}H$INS{W!F$rk9&t%= zI*(>VpQk>|gnX*8TBRj^5+o7q=6*z}-s|>oD!hP3wm#bd7ab8zpHhkIg7c7ZV}59Y zGd|<%C!O@r*0WewRIP@UaKm=nvCUeD7# zGtJX;pZi?bxz0K7^FGJ$i$?BCyT^P-E7$Jt;%fMC{#1EGX{@mD(n^UfZk#zE)-ZG@ zmi$;z^iaaBPrd&9@Pqw{my=V!=G=DNy|Qlgho6D3qg2bx({cGj@-{nLieB@UEamt9 zeYHLAlG(hbmWWO;vIZk89%%a8@S_AXn0pw?#ns_=DqjDV&?>S$F+AFzP7Rb6s06kaiw6S9b_o@Ah4u64-316*4c+$~#mon|KHX!sl zUwX09Cps0*%ewngb~3HD<1Vqsi!9xuI?iUqQMosGOUkRz%oiaa47EeT4M#iqMNd93 z%`%i6S~OJm#+5Dj4Ds0F@FK3>n^oAVcM|7=?;N>?Jz_S*7Uq86lwG^*#}QVM*BQgd z3I<;&XxG)VoPUh7JLEPH@Pg-wMb|(~U9#W2pVe%*lr#Z9+>@j+&N;U=i^XHVb>4ln zj`3CYhR^SpR`E7%*Wp!sLwt9+#3ep{X}ZYbj};sHzH*&s^Di56c~m&}XnNvSp1MtG zowx1Sza)RT;k__lxP7BUo%s%4HzTK(lka|YH)ZcF^DJSk_vf6uuBhN`PucL*=W!Cd z71mZg7S$K&Fz}eW@%+UdLE8s?9phdfFc?23{^N4GfZJQqAKlN^UfE?X^UKh}tM~Ac zgX z(m&Mi$8+vK=va46Z1~>VmwLx)n{5a$Fw;=&6W$FF4XO z9Gi7Lqwbx&kLKc<>!a6mw3!u`#*VZ8Sj;Qq5>XU$fqTeCV$s(^pWmb9D_MHCi*1-! z!Q8 zc71hOwV-{gBdrY;(&}=bV%9v+>>x(Qnk5!>FE7*oqQR-{r_-V!;=0zvdinQ{t&S^x z)L*{s$`j?@A9?UOSHGYM-JFyv<1MWWvfZNR8f|`by=3|nkGK|Y_kP>W zrA1-f32U;_JB{YA)7(>&mQ?yCf;HNjIl7^{no}i08<)zsVh5NX0Ziy!g+TXShTtBC zlD0R`9eunG9>Pa&jkpscdEltJI#0tTwzFSf^ylKAUEw_-m#Oi1t4P%GAa&JcZhTqR zEUA&3Hm3YqowED^>$?oX60dnN7QZFC*ME~bWsus|Y=u{2Tq;q|q+z)wuRw%wAigeV zvqgfA=6Vd5AzlXZU$a~WF{>+Dv{SyfNpGe!I z5AQ!|d(;vAD{T)!=buR6uNaX^SmEK~OgW~Ionf>@iYcI3qXZEuBth*G_*Fm~m4FzS zHg_AnbxLs}RB%#}>EEaV5y#vPeu_iY;q>7k6z%=_vor)v~wvQwj{zm}+@owCcNn}h2M-qubB101DF(H$IN-R!#GmTF1 zkcOGf@+AO(K}50{M5r5vEkHn$r!;0WNP<#WzIe%*nH>ukcPr}Y48R#?CK^e#1jrv? z;Xj?o>cgZU2^zD)r2D5R7|pilk4%%V#35NWO-chP7oL?0aZ)I9Dut6qvibzbPszaX zNz1OpL(&d8F8@I<@RHLSpb7M15|**FvNuDZ49Z(`hUSK(KfE-oOxTM!X%gB5h1HNc zrA;a-wgxXr)z1w;x5Ba#x9l0vRPNq`d)>=A8ZQZqp4 zl-Y@U`OBnIJoPQ@tgWZnelQVtM$3|{J}jix&~zdkM_^xIk#Et?kEK8${gGU9TwEFJw}{$UcBI&`GQ$oUJ@5?>y`bEec6>P~(D<0C14uCW2oq1+*C`SfFW5qIXVF zB&r5wB6a_-Oyo+8KT=P5<&Bj9<^ti*C$L4452oFtGc-gKItJ%J8vGuD6kb9S(KY;k zpe;L%4}_X6!cw(G|8eiE9H-lzxLNrVbDcF-HAq+%RZzvn*^ z!FI(=N(HWs3~}-;;^}~;M>eXtFOK4If}5c|B5M&jM?maVQgE(Ff~iI7a1f>xP0Jb; zjiSs{ZPFB9&&tcv%3FMLH6!mRIDFo4e-cP2y%1WJ;rNT8dfxIE0~%c`fD0H4fleFQSfjNvXZcSRuPal@D932NkHg8)2%=S5oMoqa;hg1 zH_>n>MA*oXQ~;w7w*wVtu&EIY^Z)xcrkXJ_oQH?=4{n+UIM1lw{VkE}W&ipsAM}e> z-CTJ~^o~jB<|4kXZ1$o-T3McGFf3!_pXCAr2lPW66>&woll7ZZ_zBYC8M2s{b{nesyD4+vn?_Momq2@sPi6@&VOPkG)(%NO(<67< zHafl*=Yo9oXXnD4org=F@9O@9ZFY-Zdn|l0{>hI1MSRZ=l;!bDUl3ig#`IcR0kd%L zoDqJ_>jz~5DqKP{zNJbxsraO2@4FMZswr&wx~7Jama)yw_|{L))>-=bvk4KkB1e=) z_LRnW>=VrnJgFJCmX+8TE-ziVTjJp5M#&nM^GUTI+6)$V4-b#Mj$gY*27* zlZ-}67VagBw6C7&ywP5K>#lLR6USF+`SXvquGZjb8#oYH$o%M~p}!2LK2LFiIiHD0wU zpRX5-7HCFb?+Y9j|6%;C&dbbnP-*AgpU&4`1Zbregs6YN229Z zLmzhw3>=LTUmUdP0HMC z-0JH&t$LQ;#T_jO+Fqf`!#Jl-ry%je$UBz6ka^NWCkEd({YId1u7BFaH^T=PGlauu!j4 zVU3SomGY`A*{8jYv+!K3xT6`1MDYETjy3Jk4SM2oML(8*Vq4%GZ`EqBvXz30#E=SUPY(R(KX=Of{{n4AZ%HPdUy}0+%COy_Vfxt7I z&Tzw{LWvP^D$XkR>V-8rgBA+x;IeOvHQH3Wiq)*DljlaC7u#~4LyNjc)ABzRYyH#> z=?hW*C4SF4QklJ#rM3FxVoo*u;K?_^t~LBSbM|Rei$Bq7j~sA0nPQi^wuIA1CV}1e z`{yv5WAlZ7AN%$x=;j{-c-`KSA6wjpw!TTGoh2DM; zV4$t;lqI6yc||yn<9p4#`|2Awwq3e1|4EozQ-AIHqrA%xeFa7UlVBaAlfzNHKI0{X z;tlc}{f0T`4m_%A{j@=7n@!mOR*>t-{K{5sPLYJ3jmJX2ckj$reCF4ftah+QiZEZi z`l?!UQ)-^cX;ymku7_z+VFl&(dN`B8CE=q-;gLpSVb66*U&g$F)TodL2L|wV;h*V@qvc|T?_0dR zo_#6WK4RFbX<=skSc{l|@(wR8o{OgkM&I48s5rMbW%cHVe&c-eR6IVp&D)nd#QjOH zG3<~pgVKto@jG-?Z9LhHi&L6@{uFeyy`N8*`y#1u{ksJdIoIfim-s!c;QH^}oPF=dIgT;}XIj(+embK!e*Hx- z_lTU)Hn!Ii;U@NeN5*^3=B7)#t&k42_d2GsGqg>5XXHZ@h4B@7rY3w0#$H^z9+{~W zt-WyNdR*>Ue`#ylvXX_^JHh&*39_eE1f7z86)a3nue1}h*YDJ9}JQWLmjUhbI~hx99c0i>Sd#J|MJetRjzLq^;?x2nPS`wPYt>s z-g)|Lk0sOl@hbPWS5I;ZD^jl~y`nSt^?9f%T=z=P=ac=mfmylpUY)Fwd(axj8#Peu z{8~ZaWarD?ohFz8*9e6(&ZR=*PQnj+(!e%Kx3ec}h`3^IEh3fi657rfWWn15>FJGVKdOAr70lHwiZD>dr(X@8$s z;6{S7o`>B@{wu4aZ%AS8*eOd4_tfw-zwQoK6-cG~XrggJ_{p%0?e`ztngIhx{za@v z=RM+~VP&N!8@56#1G1kBh!qNm0Fs2_2FR6!D3KD;dMu=bEOJHMbmWS7xX6|KJv3ni z@6q%MawUHcjoFd+u=Aq9_)11C9~{}+%g z(nJ0m*}{{jq5mPI;HS*4`%ec5B;P9GY2hg0>45m-K;@vE9GNmXjwW}LlpK+UYE>dM zdca9SF+9W?(on663~Q&!2}f_5Qp|x4q?-r`{tBS}N6djpM-q}Cfro#l3mBzlm;N9^ zxj)je1F%$p3RXev2#FRN(?R4xd;jM0py-ZD#E7IQEzR70?3_Igc%U_(NOu&4W^A^=Rhd>F(l;O5zGg9V!j-11eM@ z!A2dXgH|q6o)Hc4&;%lhgY*;-hLGZL1m`A7K~RL1rfr3yVo;QC!u0(EYEjH7TiZEX zPLorHyvrZ;(;ymY?;+8qEL6%OsT`zw69unmEER{oGpPOjcPZkjCNKV*R{kT@STBMrWn3AsYvGVW)c9^xJ z)qaY(n!h?8(I637d6K}Y0XPRxDujbV0LBzBHE5KFTJqwr_DFx(P0I36O1ptolfa|W zLgEHqPPZjz+5(BJOuQ_V8v}&~k3e+b5D+9GMTDbuOH#|1plyRF9vT$4q>Y)617$Oc za#<(-5X}n3;}HTQ>_%9r2!w?P*gzKUiKZ1wt>qCO?ItvFFMnzDzq=8Y2l+uFZcLYN zn`u*|3AN$ir~^Ms3eI{2l>?^(KpqIFi%DV_#ho`vSEeyTM#giX z=pFQg1*s$vs1Xw1w6;AX-7FMOF#P+SHm-+(mG zBp)?iG#+Tie;kaz%m`)MXyxf?wVz6$fYu_;KrXV{aNuP^l^%`=-~_l~NTWDO=q5m$ zT-2Nulsi0eFMrAPkKV{4LAN+WGyvA1`feHk9IdpR_{%fU9$+s7h)rQm1$wmM00;+I zhDI@|m7h>&LQ_;9QcOkpXhZ8pXCM_xcUS@fEx?w8&;ae`2T+4FjZ|4Ydhe7>CJKB^ z+{^U3Lj|%yej-Gu>8PamnR1@VyAEhipeJcSe$lESEM8VZ27)5mRwp&9LY?zWQEfI( zu9UR~X5i26rC}|SviRZ^eHzoy~;oqkVhPt8YTA@E`9A~JonsO@>NEhTZXhOQqBx-rI5f_CF z{8}ncl;UC(^PhWi_lTLz3+wEp{l0kz>F9MHR~PUe&u{s z@QZs7ebm%X@#FedBa>U%^Pz3XC7t1Z>3N01PXjlN&)m8$w|nn9bp@}d@*$!UJUqQA zgktvw*{+np3;D#SXE*;WzJ2RRu7r1+))(0ihgRIy5AQp1t!z3c#(eUKwJ5?j=k-@Vp7REmt;}6(}f9i@*B37kIdn`D2!LPK*DTF!Uw~_9v z-@iH~f{SnbQj=2oeR*HB&ywQrUmo=D?Vev)F%n^W1bG)cCq-bA4-bgX;P#U9@o|^>YC~lxQv@QA4i8YXPXuXuR z$m)mbTW9VQ>IaKozZ%$LUtG4+yd;m$@eAhXwW}=y&--34&Uqo(71P7FbMuqCJ~v*x zcHxh_QJHIQ>%ZmV`YKtMEd^L+r= zy~gl&wu|=+G4DySEHC6Ofmv6KAzpI4>|)3R z*6K$qB3_r2eRS%5^Xc}dGhI0Beu=xS$l8))#DY_+3eaa z>?=;D^B+|fu8BCODe#n4N@KC>)!UI{AHQ2~zjjip_TZj}?|(7x-4;}h=8vLTFL zRm8o#oIaAtnoC9H=5U>ZRZLOKhAeyAOqa}KwQ`ss{F)_4>1v~6LYEJ>FsfLU*J$~! z^7rp_^Wo@y@}~J0V@Ru*$jgSG@AJy9=w0v{@4o%%_S?{FE}WMZE#oar7nIs&tXgW+ z9Lw-_Z+w~OsUN9+D~hjlzkd0_%Ygf3+j~pK7ueYNL>*^#RV#TzRyCHlxgE?E1POml z#SP0I-!*;9qgsot5h<|^$5iDqm3|Jr{4!tVsbOfee6Q+uv#wm6eyqwh|0Ld}EExxE zRV41}oouMdJZG=}=H?Q87Wsq#x%J=d9zSUHd=u^8V02zLXtBpJk++usbE~(Hn z;nc$`hb}yJEi^0Ee49cIE+SF4nVb3ap}V1HzKw*QReT$?66TJdSie(U+1buf{AvrZ zFZa4uB+t_=<*CRmUm?09bFA)hvBANP$RYkMpE*{z+&wQfw>hZi*Zb;wjIZEc%cNII zy=Loj+uhyFccSW2?z5|V0rJWUw#$({@&PT;1({lA5nNlv_c))8@M|44nztvr zSZm?86o09A(mFo*7nA5zS?{}ZUA47wK9^M~gS*v;wZ|V`T6(TJt^4N2YfJXWpUy~r z+rPT;rKfdsvzn1Z?wyo`W%c`29FBW^T)`RK%wt6-S|ixa^ClKvM#AS5ysT4?2#uM zF~b+NI0Ksriod#8Y!>gRy_*}!WSjo<@eSMMT}4lunT0w+e4j5i*SYn?VreWGg{P$$*Ui=8CtdOv!N&F zC<8Hf>64HG`Z}XtdMo*8x?^&}1G%E}SDw-hn=g>8P{h`}dDDlM7QMMR?-z$}eBN)S zsAakK{g9x7A;Yc(2C17%N}9{M8tI$+Hf}6lxoXpLzRWD$2xI@IbKiP5tFOLZLIEB@ z4++GT!4j~<2|^EkvXR7Y7Cf3=2Ur44I>QxB)go84kOHn`7=zqb8;>TH;P>SIT6i=k zfxIVw4-I{h_heXvOc+8k(I~8fI_dCxGGPdhI)3n;Oc;V*-=y!62}6^_A3Vw!B6(&1 zC*TqEA^!&+K@ak-BM{uh)zF;^>h$~|?UP1O`9fd+qtM25ZsuPy{i8KR92@unI+LC*SesI5zHH=8$B7$2v`NXr}B>veG7Sj|m$& zBiw@;0Tc?Crh3{0H{{bYNzv2Q|JYUY4o}`A27nG&b-9wi;yA zr_GnSdUs9F(jHb(SZhGdnZrRfSAOff{+Fzn>$;o}w`Sc8cO@ zKGUEs7=b@fiYJ`YGlDjDU9vD8G0ly(h6KQ$sy z8BwYroDEXY#SPFBnsR>xl&eZnGOA|gzkBkJP?N8~qE6R*jDS{y%|KAH4kxf6q< zHUkMsz6_3xnjnIKd@}(}NMcabBvn_&(ag))!qyeKR;!vNtT`G zS6Vwiq*m4@@&T`hw#UQARt96On=!u(^T+lT`m}xDG|pRmo4KTQ_4o#7pJ!XbxlOn@xqVqHw#t9{!olRAQ~Rk6=AVH!~)Z^T-WO7`>4=m z^YVWdp5#Ar^>~|TnV$g9o;!jsUD;c#@7(cw+WYms;h^`;i}A6K5;xr+|Gvq3#SzYZ zR!WI}%d?Lj*ADTv3uw!3{jj(DTUFJZGNS>bTet4}0B-cvslmng__t&H%neNUW&J-j z-O5|pa^Xe78uwW1^kiLsyx++kgyalf-;KiWi&>XTwtN*Y`$kOHT$X+P+~byl#vh%L zb>8FSTg@aE3ndY^3AAK&N~8yr-v)EVd?h22Y8(+3TUhQ2(|_WTj=CLlrBG6hQ@&npeb&oGYqK-D z`gzv+$H=PLT;21aLNHRgBDmvBp1h$`>DFWOimoUs3m?{vbY;-P&9Pj(CDm3$t-Pi< z-*~$~qq5M3y9J&4Mv`)8in}#GPA#A}+OEj6O=Yul z(?m%S~_Bdqjf*`GWd zNx)Z}>$Yxf|HR7GH~ymvC)2RoEc|)Up%n&?2i{0v7WUSK3dr*p@@z`lTNHFk@NV(X zQ;90OI9$@M83)^*7uFrt`?fkhChSbd&hD4b&#zU)z4G?hmBP5o{YSSPaoqa)3olk~ z{xFO8*-r)= zaKTYx*Ln`?r*(FRmO1%vxuFxgn6)C~+9LeV^=T29?nIuxnAl9_3bU)fe*7}X9N3h9 z_mNmwAYZ14%#w%ot9d%JjvMRC88>Q~;a9~!On8S?=L-+ZH>=8EWmms+Anh8S-z~y> ztBFaQE?;y~)q^F^&;?Mss# zE^_7k@jmrGM%H}2^#<$aDdM(DL)ZM3T#69SwM#$z_?)G0TULM5)p+GN)?apWWyOz# zjLYof+&@z}oh5Zftd2AEVXc$wmM`R4n%FUiD`@llARXT{g=KpcdByvf6td%d@jc8p zV%}nY|Ii;uKE{|}er}-a=^w+d zZr?DZ84|g2UdG7qj~&$Y?l0gy)R(e>K+kzyxG>;QZD&KA>;p;7rzW}* zw)1|4r@im7*9^&4J$WjNhqcgOjWdOb?f8cv?<#Kwf#xI;C9d?Ei)D-K{yr_a>nk#1Wow1^zEUGo*+7H#9>acT4!gTtRBvCZzfgQ{aC& zIH;qJad2`0M+bh0L-%d!`5yvG6q-Q*Mh-C%&jgq57 zy+Z(+CV(*0*~i7ja-yLS%9e1n@}S({nt*bjW*{0Vwj=@;MSuc29OAYj*?*wX<6vXZ zCK=*iQQT}0@_Mv31mLqKlyb6%0-*d$zPAb!wz^8Q-@b0A7HG#932l> zn7NvnQ=u^t(B=XYf05?kivT$SV4=ZsM&=6vsQ{EM1GUODDVa>DqafYPtrL_fdSE=P zEWF(9JP$y}514oj0jHg}2h#lm1jmuD5Sc*(i|N!nL(FnQ&A_T4LJkYSQzU1EG=9U; zIA#c%rBPYz)cJ+~X=Vd5T3g#u&W_BEVhD8mhvv!orz1ck^&cuHZiIBP3T}ns@j{9uBE&aXPCnyqYH3i zfcLiwi)1Phcmb$2vY-gsB%x+nsFM(>I`ky*Fx~`-{jdR%0~1X*PwUUml6we8AtYyk z5(RD55H|q_BwA#uC2cZOGe0xr9y;MEZ@bws58*(>f;Wo;&H_^C58gb~Q_&<3HQFKg zPSkA4f5AQw#R(6V5)YlGrgLUy$vK29Gvaz84f>E?gOFv$Lg5i@!cp^O{$dG>3PqI?VoNWO(>CAJTRjCb^U(Z`v zAm%HK!Cb9d&78hs<&Djr(&rjigfSf|9!eKivMc%~U#wd#BgB9`KJFbbn(R}O{Br(r zVWpC9r*c;(Rpxm9O#D+) z`Q3$QiwCyYCSQ|?aQb4rf8>aqr_gqHHNMBIwNyUsN!^_~*u2Qa zq|$TCleMAt!Crz_R$umfr`cfS3u{>0$1tpuH=9M{%`to3s; zR#{lIO4Yf$1#eF|T5(ZuNnMZEq0_A;)E-+pdTfOj-BKj$e2kMq^5i+n{gE-(=c zB(e5ySe@GgH}JM^OdU)S_6iyM;n$WtB9~JdYnW&la&KqK>3WaLNt#9K?o7%p+gz?m z$M|B@>f{SGQl2n4FzjTG-F*3NvnHL)(-56eyM?Cghhm-$^M{5lj3;!>E5vPjK#;#6 zv-PspT$|7OLD!YnD+=;2sNeP2KHoGTw&X6SU}@^3h-XeNHw-=`@ziWl)a)_e$t<6c zqn2uTY@57|NU&A(v52hH<>|*c9^Rk(iAnJa?sT>Bx1H@ttZZc-&*c=&qC!n1tlp^F z9}eEc(C}~-VRyR06Px_b6;JPTuxMRfEaaSMz+s);VSgO|sc5C(FC5plz@fd0{25n| zjjwp{EZRm0gX_jGR(rUSv!yp|d2()wJ^gOQH8D;1>v|vTTK)X8xrjo7%2Gr6;wv4j zRgG=+Bi<@z);jMWJ!cmfwa@n0a@&X!Uj6IE9#%t7t>_iMv1z1vIt_K`>>Y39`)nF|%~d+LFRX>| zuHwj-1$94^=zk8FG7P1uDZT0cDmTKdySZ|asPk{r5zAVSg3x^VuP@fB7+Fg6e@Uwy zD0{)Dkmb#Dc;Otat%bMkIzu+mIlhzDKIg6?rLfiLG4C8E^<`zeN|!IHn#|d7bw!s> z_rkOT^t&_}O!>63pA2~Prj29Si!tmHQ9b=Hid+po@P&=aUh_I+!cBkYoNkq}K)QpJ zQ|zyg_VX2PDAp2uT(-=)FaF}Xr&o$Aub^A##XIyr1U_m7)TJ{VRPuPIv%E;z)l~HN zzI|u*?3$BZ!H@C3D!I}64ZY0f`m55p7uu8DPBC2)(c{^y(4witdMYHDcx(Qhln9u$ zqM_XMb&dah-sji8@cev)r!UH9+_h?93-ivQFLUP!3y0!OkBT~3`mY}|2{zuxr?j~$ z-|p?;V`I7jp3^OXk^N1YYsBZ3)4l8JcT|3{p?0O|JQMr}g>)wD=ZBYvo;;{<~R7S!GDpqbXSAN>1*R+fI>kS@1d9bqcwX+EhVO z1`T8hWF819l7!!rc_5_F1bI*X9+?M1AoD;7WFE*LaNz&goOJ?)IqQUf=Bz`NGc`Yy zVoXbQlrCX*y#|ovKQjIS?dbs-QzZE>Nu&2kEmWYr)c`6DIzbmgl<6`{v+Oj0P&Uw> z^ay1GlCILwaey|aI)PfF0mAf+2BsvGoXniXEh$%z6HxNfL@Z2m0+@)z;fS(e0x4`S zB2tq^o37BCrj%8p-d=!)tP)v5(gl(cF#Bh^0%gK1I}X552vm!B=xc@aGa*7-c3QPa zEg3O=zkw;q2ul|W3?iVbnGLi^qL`YPUCRLiGWh{fCeof9q#{7%N2@leB_^mh9H5$* z0Qo$o2skM!lAoA1cR$NE1YiQm%7n#>hz*%ET9rx7;85>E;A91(pv=AO94!%mk)rk> zEA%I+Nb^=ihz*GLCMw~O8fzN0N3Hh&fqL(ODJlCu5@FDn6dGIse2d_2=&zx26?rqA zZJlL*0;nD!DG~+>AxUm138Ybv)Y=me{%TJ!ncsz!J+gY8yc|8DR@2JD&chD6>mlR; z%KDsDVIwr5B<)6|KovruFx@QvX=zqdE|sC+*O)b zM`XYZk5m;Swg%2aq;EdbmW)6C7C-wR1cFx{lA^>|Acd~PLcX3B6{mtAh zZ0)>3tO@bRS7_fdt>ZaM-YE_?9;!#AB`3f|06WmCMrziC`fPP)J7;?{andPA)hwbl zUNiPMVSFcf%fSRdsGz|iE*OoPqh>h%nw~ys<&oJTQ;xYQGGWly7_tU2-f)~j84u}G zgcApEraRtdNk4@e71HsB@KfO70dI?D6;kt4rYE1exLP@Tc#wD*6i>F(s-{+sxV7%yzPOBYDz~2L=Y;SlCkbOVA?98E-&9g;3?mK;#E; z224Gnar;qYo)Tzho|1$?e?o8vB{$O@c(WWa3Z)*X-jEZ4gnrRzC#exn34ak!$=DZ6 z{X~*c{~PfQ?T;>cU?OF;#;*Y zPvtCEc<{ZlQsR+kpA%r%%it;MTKLlWv`=`=%a?pNBz$tuU*^`@={TUt$JPJN6>A>4 zqgsxj#k`q*@+ckCkquA7zcRO8%i|R?pnIZoci9a4(wOWD=FbM@ga-jEoH z>%WmVBFhq6dAO7A;=cL%s|O>p9z2xT^>J0xX$SW9muI`3i2KSu_4~#?HfeoxU-gYS!+< zh8?aEhAv^g91GXlyoqL#w@cf2zpRTlMSGzdZ=r02U}ww09+hJw%RV0ata_k^jk5xP zI%bRDpdEg^YwXImmRv}7_MJ06cj<GBF^CR(YG*`xM@cOr7U4Zo!T*vU5|j!G4x$*STLFQaN8YXw}9doS{TO zR+x-S6_3(szWX{HgKkECgqN;MxS6l*i@PfrwMOttYN*a?$od!U@RSid1d zXz6})bq~|r%`4v-wU3IlZGL=Ye}&wcQ?j20JIg%~2TZ_AdKG&XFDdd8-98`?9ZviTqR#;s~z7>8n_16`r=-Hj>1) zmZ9;w?Rk@rmF7o828Icdtjg!DJ7R(~PFU&eIk=29k}*qda8rJDq+Wz^y{ap{YE;$Q z1z($;42s9)I27lHGbXN@TbiP#eqQpkZb4u{-i6B*PRTXdUUI7Jbje$_MF-pEOUItv z>NV-f?v-8jMa+>uRKx1fp3wU8GuT%~N{qoei3V4*nNiAemj{ z%)?6IC(#AsB$Xb}1#(v>0=cUbDKQGD0J*CZf!x)JKITE-WU2#!Om!fTsSe0UGxYmps>3AuK%BzC|Gz*@AU)*& zP!q__4gOFQh$t6+!YTR3k%MMR)ZI~pA~1`@88RSV3P2AmT9c0e4iFOpHOnvoJl9_|(x$W~zx!63njjQ5M8I-MO&AHg7yt^x>Q zMhdc^2%iGD`m`yP8c&}{ou~i5g+r&OcwltgT`avUJR$Lmbc`X%4Z$Sb-E>{Uh_fW@ z6QGN{6lC9^sU8WVfcktm5NKN3)J8lLDUWz2r#&3a%t`ZNJe=%2EHJLYcr)QS7l^-7WtnT7+w@>F5Pf%`yeBSv|IDiI|MP8?M< zSShkGhITK|*$(zAGtwf;hVY&d?WA0{Cn& zh6>J0gslg-8PsRfC<&E}6mgOz`VU0$A4veQz>oyPz@|g;Z#t-$un8v9X3`hPGK(Y7skp7D6AT`s zKD`>i>zSRderEzCTuB&;mG zFs`<)7z{4{eT1mp>rs0Q>*1Z4y>jK~Wcm_|vdnW4W1IsfAl z+WeOe<6&hXLbRC@F3IXe_&~C7nj-!Hx_FTxkF=hq)Hs*WT$bA6MU1PRv$cz*yNeU4 z@s_)bJ&bY$8tnlO2S*nhYFl$wp&1soBo3Su90C`B8;>Odb_K;1w5?uh=7ut%5^-Q@ zkZw}L6Y`?e!|Cc$pxAB7)1=+u!y@e~k%JTBQfb)zSfK2InW9a0YJL)R^5rBJG^O%y zGDZVoz3rUsJSiTTGo@CNHZWA(z(^3tEx^J>03jmM>XIhmsL?8+cfgbf{nt4%p|xq4 zr4u3|3mKIa!T6@#vS5Aw9MH7u70TtXaD>8mHt13TJSiBkN9zenjd@A@i+MSL6_Fa$ z|8K15Op=L5@;#1_fuHM3+x3&od~dHy$aCy#{+2t;UpCs)wTG=CA~TZFSm18icz+4K z0OxiF;;!q0^e=CEZvO0<@!Dlo#@D(sX(yvye9nG%90McVwy4w!zAtHV^cd;v%>F7U zW!kEAh`4kKQ&Wp^hL-j5qAdG1)nvH_6x3!^)eS;QGLi- z)4J+?eyANo@wgN;E z4?W5EQs`!*s??V!n)IEwIIMQeZyWjc{5B>mCug0zvTmlVQ`oY(0UY^*>U3W_IxI%? z2UhgjFm6-Xe^%AM*-!MG+>IODk5bQX;V||L8y48s^+CJq#2xEQHMPuY2dTa-_l|6; zyLeb$etqF_oMNnXBA3MukCk4z>gNTy1L8Hm)v3F_`i{Gy7r=kZFLdF9;~x)+42jC` z<@X!2I%S~6=d;2xh{KwB1<&;&U*^RY%sOn6N_Q?SQsdQ>TC!c>>mxr|>ARbBx0hkc z-rPRkyUvHDX6XDu)m1u24H$Vm^9=-I<#?8EI=gwXFUxqxi$~f~_e1ZEnmYBAGh9)& zJuV$-<#12^V+KpSQhA~VdsdIA+&-K1>kpH8{cOxve9>JR#j&czC_ z4KiFe?e|yby}8$5vCqLw7Nx$G7e?~)&iZsK?N4Ck=FxV|Q!>10RAXR1uykj6Aa-f^ zmMhRc$x!5sYI|vdeF!GRAzyL(E}oyFxAg+cMz1)m?_y2Z@wlmG>2Bjz1+xX!2ZPpM zcem4!k1%Tg@bI8P%z4=*clW;NcG70IVPp)^KklU>>UE`|`J5A7--@&Y-1n@a5+4cE z$#TVB?i4PPrb{2*!n4~vD_y9%+%@fdDW`s%Rm$6KYUz)cx$ZYPqrTwNFL{^b8<%%H zS1^fJ@Ti|FR$(cOopMH3-J&a@CPV-%hUwo00m`&n|~*OP}&tUJu=nMXAH9lBIo`$mtn5YFpL%C^_~7Pu2lmOZ5z z4@!EgZf|$^#+|%FqAZWup|IzQ=;h;wBeV;S{VbC(X>QosFFTU;37URIwXFG$Ms}ie5@;`=hJ7UxZPt>>_ z6gw}zYqUwl$?b)YlWjs_>;1Y#4;Gt=ch^1c%L>#LFjpadu{gnVdwY<{rmn;Igbij# zS)=E&1qAJs&l>f&2#M78=)dO1g6E7?b-uLz`muS|`zvebHA#t|V3p6BH&(GmeZR-v z+V$+d^nwC}(P2XewtaVX-Sd`(nX5H~y!|~@kGBC0k5fCnC0y* zXIxT!^>6g5a~m%qijG{{7Lrs_aL~1=;6o;V{$b0@BAZK14hubhJs_O6hUP5lS# zFlXY@((B|x=Y}oUd9i~_soT6H_`y(?2)$#Ig6J=~+Z=)8o7*ts)=f*-tQuxWG|H^s zrpdx}$hqZ7-2TK}876!yj@YvwUQik(@=>Lq*W6I&SoMZxf5TA2zK#Wz`JR!xhd1Tc z*C#WmEg|yyKAlsY&=U8_c$0zN_UlobI-Z2^aXt#$S=(=GeNyiw=k^Vkj<9aans==E znaQmUV;?1M#fk}Woz$x|e}8IMAg=$U`o=x1@#B4cFPzj~HovXIY3;@MXeVe4E@Ir!0 z3K8Xm%{=WwgxPs8(FB5B=okRY5dq?)z;~p{U8dGKfJnJ>0E9uF7LF4C&3sez{Ab!J zfTSwe5HL0sR0T66Bw@1=fk}a|^JtTXT2AnCXn2lvG(&MVSg16P8HFc(Z(ZL`rT?PR`}aseZ8 z3QKV&;u0V+fmlK*2-T7FKGG%*iSuYvF13(-hU7vR8;c|iZB)M&_PlL92VMCNzLj| zCmWhMTYA|!OQ0QrtRXiDJra=$Vl+jlsk#H>WohLtjxNLP`m8q6m=-@d#*4DN&nzOr%akgp}}qTl0HZIFZK>AVUbm(T9P4KzfPf!zr7j znNko*=cp9u7*zrBQ`i; zpbsoixqwvxPIhV-R2y zwmeNwm|RW!uOIyvz40%x&{|6;D^Ih@qDwO`sE2X)z}Q)0^fCI|;U8sXy(z+inS)Zo zX?DzC1V$PJC+`@n6d(m)*pb2!l=y@PV@hMQMk2X>n1bX}(Tl$%_w;fwGjp~>&u%Jl z>|dls8YCg95Fj5}xF4iq7KMC(i35=WZ3-miWGIL+wX}5_F);gmp->j80;fBL{-P$* zAQo9cNas6*90?H~%u+==-$5M#ZE}%vQ558wYKJBe9nv(&|BdL>7^(TdgnOj(-SgWv zTb^^jKHZzW`-ZB?-c!5^9I;tIj z`PKF}#iw1|bLjbriLQ5U0WIO&7ixyHlw;F&4y_Vps?pr-5J|je?yyuK$mp8r<7CWU zr}HnjelEz<_$=qJC&46x@n>i9s5tjc)mZcI-5aib_Z#|RKeS%#l>^)P(5FR`&x5*; zMEa`@F~x5RnJdLCB<3&RNH-FXJs#5iDaTIJ>8lhz^^W@j-|@LMdv5;ZFfC*~KlgiQ zP4~Gs%sWn+N(cm~3e4ks-IBFc+W8~qv7#nlxQJo;)-=b99XI-&U(|OGfBM9J`2t^l z@|S{3;h!E7{93PD%N|u-u1;;_3Jx_g}7JGkV&LN%gw{glJ^A9OltVocqEYWqYn9_MG}zmFTzcFF3NYVGYgde4}*S70sgUVhkCi=g1Krk8I-* zVe+Fd@oeQP`I3MC5Pj-U>F~=X8-?lHmmIpplU#Gcu;S>dZ+mrDbkaw3%03sfOTO4! z?;D1R)fJ0l(ye(Ypeg2Z&8L>5%Jv~o#$1oQOud|>&v{t)Fzgayuw*&C(ANWIYdK2K z7n;1k@KAA4v(l=DjbYarhg8p;|6m3m_Cu3vAnMePUUE3obiq1onfo=@jZEBU@JG5@spkvtcjMh8rOm8$L1-J!g5zTrZ zsxQ5Ivk<>jdB1ih150PZ$?&}Wp5zd&hEBlExrZ?F3#MSo`9S838*L`VgPmn$; z7a`dWCVDtq78v$C|^_gSUkn267r{s;Tz=-h<$7GQ(iH>_u<8BV{)ny{Op{r)P8uK}FT z*_N%{bzE%3J7C+DeOG#d%J&@PI%|IPwa1ZU$8avi$kR8R?(vrW)Tv~u)=(c+3rg+a z3Kid?l52PG=4$LN*TL)y!!NTd+aAqX@`&M@()>po#-7$ct7jT|?_a())17tXcuIGz zgd8)A%#`&+j+_?|H6c zV0GALqLa|*s1mg_!lHKZ^ZA}9I$q7=JTWh(qASN}ov`KldERSwHKv(}T}}%>*RtLY zC*e5nXmyjOjj>YreRngV{p(7rja^wIlVrkuu9mM%F2E3$akUQ$Xx|Ihsow6PT|SzY zrqrYU;O(A^W*=(Xw3Z!`304rf$kc_E?2zYIVR;z2i%vo|@q=gO;t;dd6~CJwhUs6G z&(V3$Rk`0eF=J8HlN8HA%jzvd{r7*$)`hC9j=sXXf?oQ84)Z+!Gwc$QhvaYbozP%5 z2@5u{HskF&v3YaMxQDLzcZ=ok_;~DFwzAgUe$LYzP!zl+a%)Y7REpq|ZHhq)R~xk+ zq1Q=keqA5qzi3m~|D*0L28qjE(z)Gl=Au*vcm*cXqKBny_%nn zEPxv`UViZSM+KaTDSw!;RKja?DYZh z)5i{%K3)h152I`Cq~M?ql!qpR3bPFM9Npb5$CpAXtV3M5Fu{GsaRM?h)KJiIiWwx8&5jwr^{^rs+E0DEw3r}d zkEUG86DeD0I0SF>BZ479Bjd+u2ZPn(3INJW7w~y)dgqd`UP32Sp^k6pYenv@2T~b% zay`aAw7>Z6)`p-nQl7{`@Ej*(BZ%i^90ZwMVD;D37~%7$Z>LjRFI7KXN^9dov*LEa zd?1zlR`}#k{ys%(M*4CDMTZP@fKqH)r<4ein)$eZR@q7*cBvjFq1E<5 zq+i)$2DsXx;d4Uq)}HZATjMu#UuNi9p483^(%$#312@iCG$`z((uLN&)MR2&FXoL) zMhkt55WbN~lhx;N1R#O5q%mI5F!g|VxCv%1T6jsIRMzw0eoCcrA*|P-WEJjC>SK%Y z_W9bl^x3=OuRjTHtNO zH-YpKuZGUP(BMmb7Gc&2liRldVpF)G2{8fVbOOFpILH+Q2d&cO$ zmx{gvJ7NVEfU@ob7vj2Kb&IJ+l8+fBmG~|36WB`XO&4B%~Lzw6HU@u(Kt6 z4*s7f;V1Rick$bwspv03;B&_A0&p4s?w#?E*~l*z0KXCQ{SnGO+sy$y;Q_Ji_s$K^ z^(IDujNrFozVE;GpXyBj?CM_ti+>H_`44}%>-<}4(l3(#-x$=7K=#>Yjv27FzBexg ztYttn`<;UJd&BxyA^I{cbhK4v;|p-iZEHaQ=%&z%L{EDH;BAaP;4Y^e5;*|7U&X+5ZEOkbM92JBRS! zioAX?1Ne=>|M@@x@GmC-fM;QOHva$^&H*Td06yjKjsA~q_FqyH_FtM=|1$dL-S&?V z@OSS8fKmp40RPcTM-N~f55PzPcrf61(E=#>+D4{MfNA*t5C3VOvi~Kv{qL3ESOBOf zCxG$!41hngC|RD9wclhK{xQ;j*s0Ge=wIyA|Hc#mTA?!mh76#z(wbV>+UdT3ul-$# z@o#70XNu$RuLD3;=SQO%045GV5&-Db?>3tGW32x;3IFoA`u$1Jx3n?*V<7-aPPC?s z92Wn65&T?w`TgND1GFaqqWE733Nsr3i2$(Me`g;&XY|k4%|Gmee+fPOPsgus0%(r* zpLfE~wcr27Bme|t&n+Xqiva=nE1=l->@o6tbMP-t!e@N(|9K-A1MW2a=YxQi*2u*6 z-#`DKIVQh9bS6M~fDIt)WC3VipLyiZq6k1C_czD>ug<|=gt!00bMUXWzqER~`ewFP zfD7^8PQWkv+TWi5MnGu{0JH|ze3z%vs~%}U20)ZUj8`!a-BDDRY?Ups$t7oJgS5KMR7!uAL-+8L3Zs?$6{ zkqh4a*fusyZ+vX=<PLrNGcdq^&2Mo5NToslz#=n5UoCn{aWn= zOCH-JCRfUna}xQ^6>fY0Ws4hVzu)A}%wWiuKIRX=^)JZgy%96H$@$}oJ&%@%H8Yl_ z@IF!oJHraiW%@MbHI&nDpIff9u8|A)hKvr0B0&iho8$;NAe0SQ_Eg&KLID*rSaRmr znXG`$LPQW4EtReID&3r#f`zjrLIWSs951@nM;E*;cQ82s3IlZQm<7=f*nZu}VjzV? z&s-+n86=*18jnL=sE~L4O-j(j$1lTIR{xDeV8{K4eM~Jha6r~DR}aiknON6oUlRCHpCAGY^+w zUOh5-z2tHVV;QU~ZSH#<N^sy@vTP6&`&~Q z8wAM;a;B1X2tnR~cQQ?DV8v?KtC+7ViaB3S}@+fPb8~AwiGO$+}Dm=z)MP&3G zb~B#D>loJ8dSm3 zinF<P|t8oq<$;j!6Ls3w^2b<)K`L^ZNV*g3$R8y?p-CVH7y9cX07hcV1 zakj(v8wN9oN*>z<>9Rir3FP_sEj{a`zpgttuO909Y`Hjg+%=%Pi6XdNjB56`vYWU` z1ia?71$uFqAsCKC@wR9MsQ5^DkavWy$SIFU`6k9ch{kP@*$;5%D}2sa@Y#;1*5AVH z!2TwAk_*3NpwRsndwB4fcODV2KR|qaWH0p$~5DwR`!J{XQ?VamlN;swWkBR zB{!jq8{*+>t73}Iwb+dku^bs>h>vW3hna5iP-MB{t2cSd{sLlR?_cv?vN6g6hgFnj zECEU>SFG)@?-Aj-YF7jol<3aU<`?_F=6mc10FEr>*dEvvs#gMveyr*X;wjGqnQ-xO zLLZz?I!>7Iy+D)6?ai~JqT*-Y*q5bNLIj{aAK@sE4*8Ngy>XJ`ErVPyZyDFT2n{&05$ zSn_<2LfC%T2D1IILi!^;mWKf}2KfFtfFbFhrk{(mEc0DKNG{C|lM{#(rAPr&A%P4fY^Pd|P0Z-ijX0GiJ; zVT28!cw`5>vI6Ah0ECPkK!*N3dfp#n`KN^RziUtda4G>Lw*ZR3cWX{|fI}xhDE^EA z{+>1Gzxg3QqZEI}f&dyOAb$SO#cMxB$%uIdq}Frl?S6@#?oVMc_|zSl^Mf#xl68nYxhtjO9F>u!ZuB6S)0}$SAUqm?u|}agA3T zs4j>$_g=c5b7B7g`}t#_{SF&dlNY!lRJk(lHnEBqm}L+g z+BD*(t+WOLqqBl&Tm+m*UiA%A?RhS)z*MBaGda)nI6UX(SsU5`r@}N8t1xqZcjAm1 zx}J%Fy`duAYqhuR8Z1E5%aSWs`6@Gs#L<Fe@4TZ(?|%ED2seO7G4HdYYfANmRuQre-*!e<4n1gaI{9GF4$yQMP*f8c zMY3WfY2ZwD5Tz+~y;2?;thVhsnl;4vDwh4YCC-KO8#iZv>)H4Z=k52k z_qqV`u`n|-_2uwE}*dg;x+Qu zhW!qF{O1ijtg&y2TZjBq*5=Is*G*?PdDapd17i9vpE8=OFziZ*4obPMc!Jom>5R{S zS!*xoP}3Gn^gsz!;#>FvGxfM^j-^~@^r*%Xug+kWdA`qeZ^Y@RWzZOd z)pJW;s7phtDg>$ty|7Ww&QBp7_}p4xdA60=pvVH}CF;LsiIZ$5^wO%beV&s1@YZOU z4ogXDwV-7w!i-HN8DeN%HuZvjkcpg|fu=BmR3;>69)>oUg?#3gk%(Omxm1-K4XqDB zI3q7hB_CG|+q<;1LZSB(3&%=)+1$&?j$qoJjLuS?hbh=`^F2;;@UrX{qq1e@}x zEYz#C_V*pbH;jeBi^mkv3oJNpDG3!-v5nFQ_-+9Z&A>j5-LqfAg4yj|J|^&4mq^B; zn+fW4G{1E`T@250RUi+@IV;q_B%+&l+aB}N!`HRGe0hM`>sN!@IoDl}Azsr&;UN{D zAZ+@YHXss0FzNB3G<=tBB#KT1aSI?JTaH(3Y&o4mOKUva8rB{QB6CU|FViuJx)?n6sg>%=}d z0z7`hSiwnhDxg#fn6ivq6~!W5@HG0Fn-X4AWsp48AD%s2({RIjDqyy|yXP}?5HjUNqd_;E zWo$rfg81Y$8qVTeXE4dWDXEy1hk%GAF%y@Fgt|2}e?*Tb5Jw(vAObJ7FWl*S*+@@qh zgZ8M6nji2Es{=21p+10&9U$w^@?njPYOwC~oinfq{3Q3Q0^Hh>^Y;lrn5uJa6_DT) ziH8TFo;ASm-RhgZCQM!8Sz6u#O#{?ocgXhypf^5kbSBi|N!n%I={R48i~z8!0X)@2)B&kXiy zBf1^a8sPO6NfD)0Fq9&gz+;DT`3^a(TCBlC*I9A<78 zLf>03QlP+rWAM)yo}SXD5Vo6(zwz5E3g>R}i!_#vVa+x4cmnZb8mV=d1TreL9h#oI`dt z(M#d#9`F43mu->95T!izT*0!AS0Hw^9Sui7Y4OBnRho#OJ}Hc>9# zzv1dXf-1TekLtZ`5cPX!U(ol)g*9;^x1GJ?N_;XN{EIMo?r@=H!|O}Q0Dtg4)Cm7IU{e22Yy>FqJ{$65^AEa)Aljc0BmDg$ z6{(<48_MDG$7+W5K~A@;>ra(qcWP?KJBU0{pkFS%6q`nn~q4v{N=)Wr3 zLv(uruUW8R0z+sIRR@7GXl~OM*y#XA_fG^xyyK$Ql1PeIvI*r;kJZXmielqfT|DgP z{bHbv5t$W&ESh|}T(6Mx zdryUM_Bcsrur81L{S8q%bA~g4Ac10o1T;EYUNUQJrP8R8C49)sRFl5ymir`?5{t1pqxWE z@=GT1+8X%n=h>Z8ZWQPix0Rxmm#^!FMb=F7L{|{hk_b?q?m)`J({A-$^mTM7!kre- z@|RUxjUHuXBS_~Es1x)WOI8V9pL&W<_XtKRz6{vG`fPR*PQuZH6!nb(EIszpP%T#} z6&*vMw738>eLrHf$(Ksrtl)KhgdA>Tgj}a5gg^k&l3uL!!WK@pWB$4O4jz{3;0e&^ zo$5!#pyjcnqMExd!Q)mv0{j+9pZo%JS@3-e|H0(q;weX$m~`Eqfb|dS9|5gi?HRc;D`g zR%v(j?FVVlns$SUP|>CE5uUUQ7$N@U+7A=m`KW0eJSmjCUwAI(m0V&H2KQLz<6}0n zKmahTJrq~-SdQ$_$H>UDBVfo`3W!;kdWaXJZwHUtSf-?E9G4Zw66Bm)+&W#*xV{c9 z3b1DS2uL!Mc#;~7J=H^Ho_LkNj73$LW@#FLrmAp}BuQ>U&NKppi%?9a$z|-Sidy?8yXvP{K_XsVINujIhEVc5F8+35*0{LhcK=o(P9d)_+1O`IFW!~sU$J{?*>0DW z?W^&QMB)nO!wrX$Ii?y540!f{9Vb<$ad$OIAV8OyIo^(EURe4yZSzrP33&u_NL|(w zGszg`mF2fx0+kJ6#bW4LYzJBbtSju*TZhI> zcxP0xEq8E!#%64*}g{cg2MD&`(3VU zt}{+RgQ2Y;S%Cx&s8{;jD2Lx|uMXYmo6R@XTYIb-<9f|gYl;@AAX?FWSYNtH2z+(^qDmDy(ttez+dhMf9M}6Lce$}{tgrepaTHNcmO@> zcPqg^kvM>n`|qhz*nc>J{MX9(FJ_H@=F{I@6Mq8$b5oEm2LNErUsVo}b9#d|Tsc~5 zrZ!|R&lD#mcRQq|Dh%{0Vq{PEo5Y>KyQn3ItC^h~dAUEpQFPzKt#jyq!K9g|bW@!Zf1?B~%JT?|e_&6}JIX;{T`5;qy-S?I7I za9XBZ`n*G9^ezac=QLM6Vqi1-Jr8(uUSoE3wD%WM{E~C%Q_=y)eF# za`<&-R-i%n7Ahy|4lE?ey>O*xdjU~xiUWFy>7(q!y7^!~$U$!S_0|ZxpBl>@B zvG3K6{|s5V$qveNJ#R7UE2sdv{TkE-6)NHv)*0`*!8wG(yog`s$q*B@;y2NjenXn~ zIaE777%E`~Ml*{>Fvp5FuU*y!Q6;8a#bxK{_~4*n$Zm+>o$10IN`=xtuWnWi95RhA z+>Ks@o>q>pymSL^ctT4PpNSt&z~DuW@eQLe2a-ruvrW)GeMxDKhi-*|Z12#a6fU{i z-JOg^MYNK%LQtP$k3-%VE_x`)Kn}<(=zTDSqQw;Nw5}Dy$6=(r*8Kp6vc_JYH{~Or zaPE~C(xjlmxhd2q3B|KyohzHp=Q${}pzQY>Gmmt!d(#_(5_(fdXZt%%<-KCZ;6&U8 z61DWUK*EElX54R)Kv8v-t`jx}vfpUjC(N|kn@G{1XUMd{cJ=S!Ca4o7@$*d4Pq6xG z{?kJIlZM93@Ru(WJAh8|=TrG#z1IG|qQ0-AUsu-O*DN9ZpDXK+?(hG3WgTj2ST5G0 zxUXn;h~k`7Ht!_YIYre{1QUyd+2Zf7*piff}Rxm-p;d{Pzvv>uyj-q6U(6O7qMDnQd6{AP4`@9f>>#0XIqoK}mYG^ikB z2%ws=4wlOyO(F;-Ii?i!$amLL@QwSzRv}@h+&sp90nsGvktF#l8S+_$=kkaM5N%v; zzq=&2DPzvU8?RuH31#SE@5vLCd8`#@~OmdbqV(6NVYKRCiZg!Vk5 z(bmS|!!?``PoZc2JCfy)*NO|ogH>MGhUP)aiq5>u)lqVSATl|gNwK3?=M247dv0T_ ze%;WK9re7`Ybkk*y3B`5s{@71#Qs9PnP%v_^Y$yOY9Z>tZaq3{veiy|`@Xue;G^A1 z7FU@TO@$XMUg1;iJa5V=5m3L>h|sJJJt$~Yr&6@YZ@7ror4fGJBKqJNv`CNasJGy# zmTiQOACLK7RlTc=H8w^^;M$y*)a|7xIqy)him``wK_aGhr14mx9C?uT6Lvia zdPNYQPd62sls-N= zC9aS$A|jTgk=>iKg%u~H!10(;YVU~Kd%;?vgbH>g@1U4V7mxQ~2WJtL(?H89s&FdI z^|53WsV&+MxZYCtDvKpfu{Ml}Lk1p{m;YP$Z%{J`Mz1OD5GK-Jnia6pl@x36=O)NQTyN zZSC44>71~zJ2>V9F!fpN%bSF7rBR4_GeumT9M5t`#%MW}L?pd+#}jQ3sMS8cpKd7c zoW*+;8pA=xk})ja#!N})CRio;-M3=|KO%%qMGLh&+$_r1EV&^;arHt3qaG?RNLkuS z9v>m!eQie^ds0@9J{U~6Oh`cWTZ}2W$ev$1>)Vq=E&13bgy!yroxR=Xl24gebax44 z<@4CKjBjh>YF?dQLdKSRfkref(wLRoIxZkF`-(g+sdr!*s#aXqsg%)X1(S<)4>g!Jn!@6YtzoBG&#_%5*n)xw>$X?n-wZcdEecz#>4y|72< zi@a!#xK`v!a6Xhr?llBCp}H7ee6C(gAWe{+2o9kEZ>-4*ny_67nLF{`3p0un_%HS97i)S0$Lg^MOMh7%&*^w{C#c$><11p&NWLdw z4@)Ga%}^eas~eSw8biI#$u2{|c^tS8ECd0(&$sMO6C=u2p17uF0XV)TJ`>;_Az+ET zit6LQyyH~jl$>{o7qXWp5T^3%8HwVbE>6HhOWoml3!(BtVn@4FDrz;j3eiv#QRP4P zH^Uz+lq4g^gSjw-;u*BOR$?oRCu2Y==+##kX}L*mZTEMBj)Cb#=B{xtp+5&Z$6zy0 zNV@gObvjTCt^>LV0Na6`)BcES3A_f34UAeBWgrt=$Z{?l~SCO}i9* z8JQnja5VP8n)ZR`al+$gJp+}0}kPb)-=o=64yYayUDA{%Mf>3UJ+lZ|aOJ5IGm-IobEaR~C<3w)@_VhRW5eD%w zaA@O`4U;x0UTOU_VIR+{D)QIMPy;8cr_ zvD2$8_db$QGe@Wem6~YS3eT07MTBU~liXL8Kpyp)(Ic87V13J|ds(XA^0vmY*=02# zv-534*G3BSfV3uxA6OsdOO{YLBf6==$w)nHudj!GF!8z;iWPR-a=D|BT@f>F7X@ym z#|Ks^T}ue=a# zOkT+a7V;<@Kmt3ih=2^@Damu$ws>us6gR>M>8^$u&isBs{&8U zjk8`YEIFxOD66@uo?DrFDoBnHNNQ}TA^1|4`|8u<8K@#NMI1L;qoDmLcG{}2KGWo!=UuKafh_>;x>|CJE% z4{p>?$;B_0=6{8N->Fr<69TG5EV7}vr)y_|Uv>C@Fp#TrNXPBEGD0TBF=)PvghqeI z+9WMRTVpQ;_wa;dIZ*-N>MAEk2u3?B^gS}F9Vi!H0f#k0+a^2@W zp3lCPoQe~=9B8_Flx})t3(lS<=_W_?IJbCozC768Gse^u+sxY9QA@ewBzXLqq$eIa zHLTA+V(Zi$bJEq_gmCkO{G{G2>)OFxWOVjalR)a8(q0k_E<;$z5E<)=hZ$6JJ#aUo z1RCRPeYtNr>H>M+efJaYg2W~Ygpog&{>Qke1Vo#+DM;Hc!Q{2h=M*b6>T7tS3dklA&U@aB(| z+@ppEe!2&cJ>xB1{M}iw=ZL7V`9o5>o zcq_F`o{sTqR|OMG0Q{7E*L$mE7o-%0@`+CX-t@e+vs=dM%k6mHM+{61gNHVv{fJi) zMaXm~4eeiJR!Pq9VO{A?ZqaTE6d!PWN77NR=|{QD(k^k}WEoEM?JVV#X7UHJMUzUo zX@O&$iHyVz1{G@3#`^rUUG+zY<+anCyM%5|UqtV=vT?EWABh&4usCZU(QW$%(i^1P z3;PpssdUZ4jcC5qM7lmCK8o-{r@T*r;yvfAR!&JO0;OAR^xSV*RlnA_Y~^>vvwAfH zuB8pERTO*!F?I=QK!`EwCT7jxr#{8@FdA0!Q3Y~0hpS+IBWP-?EVVAo*$+fd95*Ss z%X8Kg(m}#cD!Si6Uz@GTVVVvW=&R;1%fuO!BExb6h@WTYDSIt#a6A3xFiZllVzSsC ziG7F7v>j#Oo1FVgyi?;9lz|sQ$#lnI{7Ms&mkA#f}QeoZOINYCn zwN+gi+}qN2TkRx@>160mn%mF$Iu*2rG*_LyzViC!x8B@BteJM`U~CQ=sti27KKm+o z-RgR3RZi3_3*>M?A|bE`UrjJT{}#xFKo%seae*RC2Jd6tus&y@?1LaYl}Ize$O367 z3V)#O?5rR5e&6_qom{YzdmW0p>RJP}Px=jvo5FD^H?I)*h(k8O3+r?-z1}q*7lORz zi4uT%I-r1*j0T6!vm8NyU#J?Ox-!byZa5q!K|5S*kI!sX9w&8^EViatLJtq#7(=ky zB=Bg)Qqxy^cN%IwG!YJ*HS1uoo$tLpWk%O43zwlXy;XLBVL{%p(hGFxD?IH!(mhUx zNr&)25!zvathTeK=3_0?@jgs9_7$$sfeEu6?fq7mXgQAs*63vR@V?Dv9|3Gpo*%($ z2DW;%OPtR_3($$4WUuf=7DshZ_iVyn?rSxcn2@7SS~(Q7aCuluzgw~2;I3F-iR4Kr zP_xAx^ikF5a@|82mfA6oMIt>B{)ke@gO7o>ShEB%f_jP7o~3z)JYqM39W0Vy%l#F3 z)8#&3+?npM*>EAb2K0qPQ#fiH;VM0T%77Mm-Ui84gd&~S*5pB%8GE4L%TlsWfJSp6s2s>A4!Ks_C3jZ_WyHuE(lPJVVHyYqA&e_t!Oa@d z>YYGukoB6Yq36*=GHSf96rTvb2|O*YMcr9WiLw-$3xMOkavB(?)WD_>X9eRZElbki zTc-r7b4{cgtlB8d6ScDGr75g(XLX}ytJq?Sq8HVz#c2>eit8hz6lS(V`pD&E{w9x;;T=r#r%EAS&n z6u33Xs+u+$sieH_NLM_+Vn~o6kXv>E#W<<pQ>tQ^wGRqNYa{HX)tl&kLZglGir9(w1OS^|fuY|%PIyjC2nFv9*3 zwc`O4=z5{-o(YnIErrd=P17CJe(G};L<}-#hZ-1F!bfJdBc5$7H{((AFSaYw*&pjl z5`(UIMQknWRudP|xw*7ozE#NZoLN3)G@vUcKzL~&P%a@|1W$c_5{^f?FGZk$XzFiQ zzbM$8!j|+_og~4_;N7gx5W2lQ zKfO2cTgJ>l^*B-4*BoN1Y*;TSvIxPA@{zyBUL7K^=UGy}TRMVhGxK-$n2C(1&hX=4 z!`Ex4@jt^2J!X%+%Q{NH7oU`f9D0Ii?Pk4QKKCz2K-U zzLP~ZO$lTHF>l{TC@Bhh5Nd}UUeRtem}a{usFWE(Yot4(l^|!7{o~7Acp-L*05(uK zC3O&w<2gBAadr^Ia?Gbi{xB}GBA74ZYDg7dmMhx*#!|1or~=d4 z$hv#LmLY7l(v>|BW%L2M`_|7UVi?$vosU#+!8F#-!_=LE89ow&KjV8e~gc)!}99TK^K$u&*DA z9>cZYlpxEL5aA*1f{CgEHEn{scO@%^1O^ZM(O7qSA_(tVa=kb#9|F_ z2zh%lR3e&kiywO*)U8m{QLZ$~4A+909KV_dXTcL?5GuN8xMxq=L<#9Y9w85REWT1j zGF`B?27(9$WIpoc-Ci!K3g=Jyan$)cr+kS)hCJ_1n@HhxzKm7@Q%5O!*86iut}k^Y2zwC8OPS=0*Fs#A*X4 z`=kTKM=nQu?s6hNZ|kAXz6v4{K&|`0JWw=hvz&c`U^Y>Aw{~6GHKekIE_lU&RfI?G z?XvV^GJ}!2akvn+it*gmYW7rvlqhAM=Ck4Mx62x z=dIyK(m|^?rChMpxbsSOl3P)kYpvZ&Xqxb}Vfxx;)!5<7a$5!<75C;dyUF@S{VY&K ztFJ18*JbmA^`K**G)w#6nD9^Al)}9ch7t-3w2@JTN0eNgC_~+Y+QD=fNlh&ag~LGC zDPC&St%Z*dgz)hL_e{egNZE4r75Cx(_GK$^N2f-F_?EFRt;w^&OB_aoFp+a`Dx4nD zHW6n(#;5LJ_T85+JV9c*v$^i-5{)9TMd=s7?#(uGRLdt_#?zleuw>e*Q?DYEVr@V9 zv@UfXyj7IElAdtrtE|n>&0_Q|D4Il8lAzvisJQ{~2gX2^)gzAOojI&=v1m$%`WtOv zT{;)=Vrr^pCT4PH#!&XWddwzSpzlk>LWp5gNU0|KPG#ERmj*rMHAiri_ff({*?1b~ zv7I+Ym-#0PLT2AymBP*Xmo32LwOOkbL#uYTO@-Znd&JTWEtBa))Rm}(^~g#JB7jEm zcz0~eE9bWsDdT#7fXNL0+GfRBjP7xNJRI_|@4Q9|mEcT33_{;lsfiC9bJSq-Jk16X z?H&}SfEyR2iE23RWd`xZ+ZZ%$+;G0;h0P}Sft^{e!xS^{&#ZliN0Hl&!qK#oNV&zA zk~uxCB|EE3Ruu|ET1^Z^jo6dfWCj*DB`2t=$w#I}p+>Ai&$HxpQL^C6zGUlH4b+3y+yvEw2`br7U)(%-(8Xp(b}#2N`{f7By?do6Uh$HfLQ3BT|E}Bqb!O zFKuwU;HPS+udzux2747xe<{3|(9)tjoo`O}seG_2x{)+7OnsA&$T>>LzlCA%@)GZm z(C6*Qmlzgb-nRmBuu8+4o^AIdXyndE7`qJ~`LoS7?ne+c)fgQfF$kmqLocT-r#;-_ z`uKd`I)`vRKqjnAzdvPtMTvaC@w4k7BQB=+ppBBomI(CX2#KYbIoeC^tfdf49UvYepn(+)ch)sWOlA zp(NO*!z~R}AK}Ao5Wag#i%VjQ&*|%Ixh3@k_Z{Ef`=%)UPRpfKSgAZxkTqdA87nyU zC8Dp3r>iK7%Sg(IeMYzZMsq`cKnb%(%;Y)TnHjRxd$+{i?Wfm9G1W;Q>ktoTIgDBQ zm3=-<%k6N1pq4#oX^4U;k0Mq@q@Nhf@!ZV}m7I19Bqhy_K2RobNv;hxqaKFa3RdFV zU>-S6as?douf0`Siv3`_7U-oPknzMmYJgbH|8<7tJ*2v*kb0NOj5VhN3bf>QA8F>T zE9BK4Pd2|v>H5oI=E2qQoUh#OB)g2%x5MlS;x;F#I2K|SFJWt1q!c|BdrfxklrPk@ zDX_)J8I(Dh>XD__gDq-B(iT;Bqr`S~9h-kx=C+R(tKak1LXGtlCT-P=yZ6K`NB_yg_z zk}Q_#x%GFaXV)Gc(jK{nsd;Uj&~BG6Sa+lAnD1_bNNpi8cVD>W+{VP+vBV1qd>chl zGK-Vj7>Cto{X9{++$|tf8@TxJ(Br5t@`}aNN6cKpUS^DHx#av?k7M@{01_Hmm-I{FVrj?3L^yaY#>b)6B-Yx9Y|96DQq_K{m&mX{y^P%9#&B zxSBTJK>KPVi@1fW$^7^z7*Qnm{f0wTRJ;M)7j9{BN^<+}lP2DjAB*Q+6qNvheVBA^ zU}t#uQtClJoLUg$c6$y1WSu@JJ2{}>NTo<=B2~Re-f$l?k1J-OKCo#+{>75+I9L6u z;KkOesj*@{=u5+o6f%xi(rTBA0+dZhGTnxbIi-d|p#lY!ZIvYxt+3kfrtq$4;u=d7 zS9(eeH9Wqe2AW@xAmJ#GqJ$&fYhlfwHJ5~N6o(?(<{*CkKpswFD+81W5xa4KGju_Q zkcO8p@sPM1C$ql%zG*{YI{X9Q7bUVsV|!0FYsL$%;%`L>Zb>dW;F+S0j>Zmq4Q;zk znL#5TGt2$)jJ2c{d|*@t%>#AZ9VSY&`_rQz&KO<@inzhRW@FF6FiXkc+TL@nqe`tk|wqkRX=xRb*Ff zw+>b<+uQ3}jIOxxZOCn#%DnyYSQup!?qwm?Jr!Pv6W;Jvs$?d`O=o))Bg7e+mHuEc znST5N)QJ`@lwMocd335V!xV3KaQx$S2$Na`96`38U1M_-{T&vs*WI|LaMonz3rQr( z5fmIyBg=C-J0)Ndm|vFL5y=#rTiiS(>q3gTbuQN)yS$qY9&otbJshvCutCE=z(Tq` zw5N}L;5-Ef=>S~}b|#GIzJ}<=@W1K6T8Fhu$uvV)5lh*abXuZaJ1M?klw~(nUV5+G zuU{h+F&^8AmIR-edde!8Ar2*i29c6p!>v9;w#_u-bHIZo?yqcA(#w&Q2IhY|1nml4 zBooNibNnQc)z2TTQ$m25W*1rogfZG~SeAlfza!*QK`q+J$4{;~&5~c$`%?IdliMpq zdV++{;ESCQR0`H9#Mjr1$hwQ0Eu&mDZN3FcQc2ixIsq07=opio4WEM3b;Yy6>+`hI zbdp5xzQE@;j2cGcY~*1Cvq#SLid*1v$<>vMOW$C?khk;Yj=V3g_X{72y{InaQhJ-1 z=QGUCNi!Aqy0C7_bm*@AGV)9sJ9X>9X-P}`AzSs3WJ#9`#+M>u==u@hs8_LDUs& z?WydFtfhSFxbf=7G`Fyg9g@2S?_D}MCoPFSHia2>bu_vNBIa}~xEk9NiA@(!s)~Ai zG+TJhx~P_A-uG0X#eTq^WH)=UB`V~(fC6hZ5|cWJLXZMCo&q<-Ys&(Ll28W4h;hfR zKwiM5e$9^y--S^{43|p5acy*UQgA+wNQiV)F9dvE*?E5bMy5^wbslpJZyH**%Fxg; zXQRq+?s5IvSi$W*WGPVT<3B}Ce=<-QIhp>ZPX5)L3P6zh-YoNH$@5Pgr~X%0EdC@& z{b*SA3qk5fkFK8rtzWuV{TbT)VNm&>YZz`ya+V8(NbV!$^#Q!q@U z(5y8%Jo*_9f#mwWee%7W>FIJg_3a4=CAw5?=?6p3yq~~gNE_B+6x)THmX8J^6;A|G zM@q8ARp9GvR9V32b)K0)=kWTl@Lsxfen4;~W9so};fr9dZf>eVm<9KiXbQ%;ap))! zzYWK>;{(6aoV7TRDEQ}dG~nitPe{I7NwI$YeYh#IAlma^=88mXgS|ev^;Rhe=$+u^ zM9TR?u9()pMuF}k(2N@^BXQJs`#SkP%lu%`!dk*o^FTOnTN1=CE_Ikv6kl%!F6uZg z;&3?XXtuPuE>|w@jMQPpyhf$UWs0V0{?f=u8_2cu{Sf&uG_0!xTafc&7)UwZd&NUm zY<3;q_o=3X0*BKXtfn}kVOL^w2QKh|A~V?eR5{p%)Fe?oP0P&N)kU8<$^0eaDKOKd z6I;Qvz>dr{KFZr~N2KBgfF>O%N4!JI=MsRlFzMz|g+SC0p>A=*gH&i{l5wP`G5#Wz z)($)CDgqV0d*k zMJX*UrP_ufHEO`{H8ekw;aSZmlMhLbS9C!> znq!xhdZ%mYs(BrXZ_R}?SJ)w@HdO? zN0YaoxBuU{;&1iudiF#Ecr3C$caZ^b;+`!6nE~y`SOI>C41o9lZ)w&q&Ds7si@ux6 z{pYi2SbZsCu@>2*t<4)zBogSYI;n_T&W@044Lqc&trz{S5H6Z#P*WZW?KOqzVdKuz za%KUdd~u5{F8d{(RX$c!*X`=ieg9GuwKqUtGV5U~BPXZ5^#4)!C-6}9@BcX7zL(M> z5-OsyWSy}mrI20O!mYw>&%RTsWZy})3JD=wvR6oDD{J;5Su@FQFu&L9%uG>p-|umM zd>@bh|8X8Qb8udB&2_Hjc`fI4Z56t~Qlj9^QZ6id5}VANqv981eu^cpy-KP3&R_Sw z+DFGzzcY_!R@n7{w!N{hm!nw8eR#ivo|TW*9*L|nqbxB|$-06|oOO4$pDUVK+wS5x zJ~lD1UbP_X@6-7Wb?B0C&3Sk3GCSJGW!v9g4SdgX@VZR|t%mc%JGytSMl#bzZ?tW> zZn9T+W^d-AaIs5rOe4i3o`rssei;8y; zjWw@8qWFjN59_}MFd5nPZt$>bqWN$?ibtZJa%$@xu2l_P?|BvXGFECP$mWSTU?rZ> z_!-9c8ZzyWJ@Qey_G6;;vB6l0uD{0w&zE>U4mQoBxA)!Hv;BqL)y;o*WIb}*9`Ag& zsHkrPWqGd=$v>{&3bSCC>NAsj zeWdbsgr$Q$O8%phM|%!qRL<&`eQQ-Yj&g=mh(yFXnB+}&@?&0zmB~!WwU~h z-KtjaYpP#Ildr|-Kiw&2z0FC`RT4WoZ*Kj3z;adZj?;R@s{RQdSon0%G8u1t1OKM_ zQn}7)W#*;G=W3_hi&vN^amo5U2|V$7wMPoyM4F>RyAh?%+0nhi#WT}XcjYHA9Vcld z?*6!iu1I`eae^Y6F?Keduk_nCte`0bddnOgk!`%XA}n?^r%SFW(6&9}RDbe|bU z0*9)}-LTG6rtAmBB(+bJ^bD@l)L3KOB=&@#cKxoo^CeG<*v03|b@K1~-(926zxvom ze^6RTd46}$=5~q#pJlVEnQQItU9D;Iv~Ep-yPT=FOI%Rg7_<6(L+rLZ&Eq#-`a}kG zUQQNIR@W$Vd+FsMMg7IXFk*{l9rl)r`cC%MOwrPZlwTZKot$dztgNM@{-pB98tzqd zJ}1qEw5hQVqv_P`S>mU+vU9aG(;eTe$2kti?KK#^e zZv1eEX73Iqu^6n8ox8KhKb%a<|!@@H&fkJ6#en~@1BiR;};yij7ph!g^!&Q zE-s4Rc<6L|hnK_GNQUpFEZP^2MO>J%=}Q?|!(MXv!S1pEabq`(p4BS5E2W2@?WP}J z*;OK^xb=Qqa0*Yhz=@$@fqXR+@X)f_mLdIhsW*C8N$fdZEo-8Fe#Kz+$0VujS5IyR zmfvj^dGT=N2`4uxO)KF&>SnJbZj|fbHu0R;t@|}BWBtW=u8i!X*E9bz-Kf4|W~IW8 zycK4z^|tj;Uc2JZSSjrCzVd;un2hYo`Mj@%ac=ghU%sx{)ajCbx9QD+6QOG>$0bbl zcc2Dsvkq0S;CH?uQB<#&62Q%;ekEkJ=eGLtzONe{Pw?*ZYAfqf;``CrlPhxL!KFc; zSyxPEk+^uXkXxVp{_pQg?o_;;QF+6X#s9!0A?b&Z$LQXjo1X;fI4K;Q?DnDO_CCF$ zgj#u+vGTYd{S{SOg>#3{`gu3i{a-%eeLA%Dy9H~)U5%&b*uUJ3I^Fi9W(6xpwpvAc zq|Y9;o@<`#1}m+58GVNeUVgddGl3d zqiDy)^;YpTUR$SzIY7>}GIGs<}7Oxe6TA}rM>o&7f-^aeb&e3D;sA#5a;4#`J#a(Gkf2m~aXW3mz z8LDzE+n;Jxh#&BkQF$Bi!E7fVgNZqdzItP~5=vOJz~Q0LD}^ly`hDwqJ+uBAD=U3? zBx+w*bG^Cl2Ki$Wml9;yinNYecbHJq?mZ%N@YUI8sk`62xv$kS+E`qu?@jL)5Vmrk zV?C9&-6=K~O)Xrr|Cep1dIkcln}UYqzjSHMQP1`MI87VemEIP)S>Ozo^A^`8-9Udk zG}bk<>8ZP~#7RB7y~Q;_m(05~PmJ%C_bFU?^8)>fjeg+YHchLpl3Awxl^Q3lG4bmU z)qYv!^0eeKYL@#&pR`Hickz1@>hW*m%FOD^H`$$_kUc2pSF^$2-7}@+mfX;NuRcLv zo$^PFHC@I9`6Eisnb)s0C)&DB*V)!+iI`^JHntxh5ULB@kQpqYAnSfv9p4C2akG~Vv>aMv0VOZ zY{UAeH~HNURzITPQXHI9yVs;ZWCgGO=gYF6KW%+1aHu82s!FcF7I zs}~U`k2|xAJbnzFXljvgRgaH7vO6btA3G#OpWL^(FYd82MpLH#@eyx< zXPE-Nn4^!6`_iaC6MKKGEPYjM%RD#ZitVlGrF2$yGF$_}F)!bFUlvf$svll$+$B^f zMBj-yr%FS4z%#>q_TB5kn(&RZs}DK~zI@|a?DUTl*W4Kj8vZb z__ue>B|X$NLtSBM`WFcrECts0v}m2JeI=-(wsyVoA0PXe(8nWx;bHjWl$Hyd?qB*m za?1M0nC67@AoVKU=4V~O6l*UjcMh|j;Go=p$K z1$&tLKgdTKUlsC|&c43)-KWau#+!A}UPHF4pNw*-uDvy8@tty0;;L14Cso$i33xXP z9i4sTCSWWi``62h>=HrF*e0ph=xXL?9s1ORhUa=KLyr3IsEjhYUAna>_1eY#v_Y=Z zyj!E2HXh!mec!~!{=VzxMlcP%a6^>oD{qEpXR>C zsldl!=!)B%v2&dgDX2|+Vh7A<{?#t{bCNBH%n4%?em%OhUN`vXz0E=_U>(297gk%4VB5PBCcU=an;XsH&-h?d#!IUEuK=us4^f zwXw10!bhQ&I?m)+mInJFp^k&0vf!00ppVSsCA9?^G6fcfQ)KSa&I<;z z!X38ZZfKASUVct?xYO=3QL}KH_9ZbI?3d078d?8jHL)&7=J!LU4}dM!K+Ot#J5I0# zH=OkW>RF(6MJBHavqJuS$aJYAaUrjH!D>WmAg_VIE)y{%%6g<^n(%<$|CVW@u~-_T z!E|OWgwZ@m^vVY|wS!_smQW*eeMt&6@kuu_Y2gJs>T!WlE_?)PAfx%9kS`B4#02L8 zYRKX=7noJT2NDH;3N;CP1fRtO=E(YzmHky+P#QHbHQL0XsC(IpK?CFlkbMKeKt^aV z;5a|9+a#FtjL0~7tVSxVBwlVai&`}2mW;>cdC|ar zaDpKscw!Lq0Zx~P782PivN(-Q_6D1t{>f<)28j%zhV!x!P6KZU8~`5}Fif^rBur`g z(^4;WR4(K+*rJ{R_>7-k5jkHTYDkzf61+y9;{e+g{4&*?C~h#glZOPaNth%ucnyXS zK(ENf14gufEnE4(5GAs`A~Nxpl(Amw%v@+ec)-jfJ_0qoU{icFfL_Z(&7!fn|BOKJ zcxn-^!MqwU&H7JXFLin@-hzOAF7b{L>~+Bh#^LY*v`4mM{HN);s72Fr$*~|{b}t$v zlZn(ICIpNSSte>oU^5bOjn~qJy#5DR4K~9ic3Y8^K__q;4de$}5C9>$!PX0i^C#C< z6Xv)5X+f4caF-VaCf)!~!Aqb9;WU`Gy-d`Q0B2-znwygwR2N7|H3^&azbyzanBxO2 z2G?;eb`)@}U;-)mei4n7A4p&jWWL-IV;DHek4O#V@$u!Ng#q2j+W zhM?@+V1Nvw?2t1+0KqhPvRxQqOZPvOebF31a?C2^3~*Vz1Zoh@!1LvyW{E%wI4%(D z@B+z!5S5DufJU(4FfV{EWIG&WVjwB!zSJ3jykH0*8X5)yHHdSE=gULQ5@8R4Gr%!G z2f+=J0Vpnh23}BUg)&4Im?v!a|A)+=7Y*ejOJ>0MFR;5cFM%4!8RUF1rM zSmcZ0Fe0ECzvFrIqLF*#d_hDE;h-lZaspou1;r39PbRa`$jCtwVu(hDEG)%C00rd& zs}ZSz3JTAciJB$i6ucPn0AzrVba;X3LS{jc8|ZL@5rQN~VWE+!6H8|X@G&O#~V24cbk(Cwd6xI~;n;58pG(BSKEasnxY6Zr73g&d7X z|1+r!X#@q*#2aO5nJ7RYGie0iw(Pe6r-8=u|h0_GkCB6}VlJa8dP z1PQZZNN{GUmIow2`2p@GQUje1a=tv&{3oEo!-dbqb8>^^2A~WNTgc>!hP=Ef308B0dGefK zBHbS_8L5aZ#rohi9)J|Y>3}RDC#c49gK53wMgeI2?#d)A;ezdN$=7&zs|nN~8V}Ex zhZ-_t5~TBm9GuL(L=%EfTmc-8k4V5NH>kaE1NkP~>3|GAX%n(w_gAu6%?*lUL~0niC{A|CH*V`<;=QJSCVAFxd|YNf3a^4WJ9zAqgndkY+Sen_G&0 z;Q=OybP-Yr0CSmWArX*}Vl#M#8+@6CFp8HKU(Wu+e1IwSORBu!8O;T{YM{B`1XTev zbWE_@hTQ0n@SysifMLNi_vFhosA&EwZ@+!fY-ADFiFHOtk!`7>5f0DCiq_xBzzmlIH>#gKY0WXe=cm zElX8tP&Nf=Ng^@4Kz-op^3bwWoyMCN&qbii-|G{yx2 zZYY#w#W={fAQes`ZL3R!D96FRE?fj^pmrkX%R|k7LKNT;a)L1jWeLzd0s9Qd4oHyp zT#}q2;lux34EfnXI+;ieWDGc6CR&ziDiDbQQ_2x_gftunPL31IuqNA_^FfP1k}pei zxJaIz9}O@Fo*G1A;Q8`UL&8{)Qcoo2S%kFyp`fwU)>eE$gA=sXA|8Slj0*?7Uz`9> zknJJ({waPydP0|^oG6e62COAe16>4izC6^Bh#>w=A@E3x6LdEqa32mV2PHgC5CxF! zBaq%#QbLGyhb@IO;JyF{MI;8FHwBDZ9%7biDe&3}ni~*o4r6>!K7>$|YbI8 z@&btg1u)Reji(05n}R5FnW*_s=$sSOyP@uIfes=xs9te$l3$@l{nO@ZXaH!J7RJL^ z37~xc( zf&^j^34{{4Jj9TI6y!0Q4?IaiB6E*ks^vkH9dtDy-T{d>;lgBd8PZQu(U)p;@JTlU zA<+JT;B$E>ArqUB$ZV2)f)KsbworV+4fHc0aRW%#^MXPocshV=H}g+jq39)dg#spn zb}RxZ2n6I_CQ24sFT$QBXnfD+|K77CzP-xg%G+?dKH;>3RGEKq&hFH6PDvN#>#(5Teh! zD4cJ3LdaXKX}&n2cTDEk^hAESS*MWj4=^{zuAxzU-*`c0w4B@g_xY-rn%;{=&Q6m& zL()^;snq&eW34)A^ZnkDHTNe)wB}}--`sJ3R;+f0Bj*r(wEOy-qyATeu7-WTaW#!n zcB9+|zk@nEXb+-KU-kU7>*bLf(rdytul&|Hi_DZ-jXmSyC3_d&+DmE_ z=}+8M8xMwN-vN8Zt0k*89u3V71j|T-`mpX(TZbHn)eftDH3;t=EHIwFVI|7a&eDFQ zkWu((d{C`YZKk{ci%h5&VbSJo>BjD=&%{|Zc2ry_&Dfo8e4bTfcg2OWjPn`BcoO|} z;SoqUm=O}!<4JsL5r~k8td`z(IxDV>Yg@Ya!BB-#E>Bg79Tkr+QJ-gxCDP}{ia&x_ z;UTDIlQD$40fygsH*8Aq0J-UQ&p_4_uce|@;M=AXL{7|~X(GB}!pJc1MdJ2nNr0aHS z7SJ$CbD7J}q3^5Jgd71Fl zuLg;?m>Q;He6VU-*#D6luK&I)c6p_bG;!PZ@IvcfnUvybrIuFgWDJeZ(i$x z&~Mu-Z0_hDyVUHd`s`q6il=V!rRJlAwSb&0yoq?aeoEPbTL`3#+FkYafl%{1y1NMX zF-cWoH@uJa*frxKVuf<@n4SOaZBRXyaa=^QP)-r^?{8~#`7*}3(b^~49=Y1wFq1o@ z$7WRDVdmZu<12*Y3f;f2+|ECF#mq!&c~gx9CPyqx$d|_4 z5vAQ(K59PwzEx`n?VwHDs9AaBcCFK|4t!qu*@8CMGxs&Hur9io({S&ep7sF!A3NPlvk)o6Ex`ddW17q2CWXt&K`?Ix^N znz8>9K^wvSBi_oR$gLzw{lD7^=>aF25D_2s7>R7T*be5$lN$$|Z#cx<|9|l|&><$S zgE?_ha=@9Kw{2!zLe-rf4W=cc+}3w<=?tUJ?Eh9B+1=e~cC<&OSJ!a({jAXDnJIf0 zOXuhgCtQx4AAP6O?AZLcdz#t&AO)sq=6imc=+vAUZfaJix@moR`b1!*#ppF{p8{$= zdfx`$*k=yhL(dX8D7S5-*ia+>O6Ha3tIe;HrO-@UZa8kFyeW2-^?la?l2)5r^1Q)SQ3H9wv@jz3Nx2gg&dzo=fa-_Ts+ zzG2%hSHXmL72Dee-5CI>*~&f1+o-aOrK8yv$&n&^xwW7}`y%uS;B=_R~*EninXb=*CxRauCV5SlP>342cw zlOr@l@h!u*p8`|NudOsYibc6%$EH4ybmvplV7^!cf3~Me@ovq}FG`DeFzw%)sVO}8 z?R~__$$~X*WAJ6)LOM3N0qui`^R0vxhHb`%?)b~%ll&fFED1*2{zKkt|<6H(j zhORV&1$&^Yfo4=T16eSj=U@d>sH3_}?WJ7iMn<+!M?>Uo6N6@%gXOq8RUiL zIO$;`PVf2MjHYv>7VtZPggW54>b0w2UE$6bs4et_;dxr2p zHJB!~E4wFdQ`!#~y*I!E7OhYYOJr9pe3BZ3PSm>aQ8H4QBY6m}7Gi^}X7Xz_?uO&Y z!P5W_xE3T3S?eycRvlam5_onz{3L-7wRQU5{wMaSt4M2?zC4cf@yi;D%T`blJID zX^u5UrBCV|s-e$K7k7;M#57h?XX@G;(~;0$jT`GPDK8fV_<5$gn<6buWE7LusonW~ zxFoa26+7G=G1%Hslt1%*(oeL&)wZtF*PVaH+`GGDG@r(`?pdh2ed%=0rLR#Ba(awa zo#bboMr23yModRekBpWHmeq9ybr~cXB;}rOz1OTAIE>fUu(&hvPy`+J01N&WPBEbNdkjlcgSE^@F-J zvQy4C71C!%Ocl)r+kxBQqFJpdCAdx0~U$YbpA`rG3O)v9MD0WP$&HZna`poI`kaFwnTKY)qy} zRmu^Gd`er9Lq-XIe0$U)lN|x{UMHyp(fg=J0y5U&16&QKlfpL2cmxgTO6`QYA9RnB zxuGKKaOtr`t;2j^wg020EmW^Y%Tk4!&F`oXq0LqmVijTO*ye@5v6!t%gXtGU8>6Ob z&VBlJi?N&bf*-4`#QdClxg)oaqn2gOnTeKY3;m(;#MdKF-)Z%Yq|u8M;l@Vluo1bh zogN=+yr>sdMk>S0C5dn20Jny7B|RgMl_3A2l-^E! zgdEW7{=t1+hu9iCOUbt+SM61KVIIX zf-20N=|hPMx!ASX4p+!@YBJAHedUPhD0abCO-uDp5B0NuJ|h@oIcC%Q_F{WgRi+t5 z_pGFVMLSl&bl(JG6KU>s8H^kmapu}u2AyIrFAum+G3Uh172BEX~sNb3nSQ5D`leqFB}#j$}P2c%k1`*~Q%8%;f{`e2@VPQR^1pEyBGrMefx${3I1}ooo{J3XKQVFWQh*x0cBOcl%2!@iO_FR6=(PeK_94@KPvNxhan_G_c0q zyQQ4zZ@5RXN-9ZBk~bOH0_eYa!7=V+{oc=}KAqY8v3W;%_1H}J(MJ&va@Jzak0iDZ zf2mQBOY9U*Io4vv<2XLpSvWT}-)nb#B_>b`FkYn3n-IQ9eyzSBkz~H1V0?B0IX3 zlpQ7NA3>AN{S9g3Xx1mb7E4k%%eyI2;y}aWIGPaU*n3I;XV|hp`N(@)Dnaq=3VcRq0!Alj{93UDlcKyAL(@)>$4pmnn{hO z5H9ZNwbbn0S;Rdyjnc(g-^AZrt7cakrszE}yE?%u-5%x-iXK_YTx=oo(!9Wa{%-Xi zA!xHj20@!T1hg3i(PsF-!G=PoFktnSeB6{Le`tCJ{Z1l&-9=UekBNUn#dyIbqGBR(sim7CT|mE)b!hsGOR$Ss^q77EAIHx0*pwZGZPXfO>|Z(bcWct?tI|b3y2K$E zUpO;fT!5W#Z*Vu848P@vDbD*=H>vIXy}X8RCM@yO11u@Y_6cCC-tJ!7a&?1BmiUn#sOkXN%ksGq=m5y&S1^SHdGEND>g?STf& zNSy_6Ud9U=L|(RCs6`^N*cB2)f(S$iBEf9{q=2x>W^n(~3<7{+7e2bxMZ`x$C%w=` z{}#|7#t;THT6HIp45KD~j!116!x&`i>&( z=XL<+?e^r(&!SA~i(Q;%=Vuy=T|_whu_!Z95p6}w=B_K%**}I=tgJ;*;x#e;3ci=0 z2_7;_jy}*omqT0YQyW#gxfZ*{5DC5~>CMl2ffQn{Tuf+|>TqTP)8a^)9Egs+V*tW( zk-unaPqR*r)PgwJ`8iKqvg&Yb{BNsmL89{C0RL}sId%=Qny5O6&gJ|NqGAt#z&wVQ z&48GmCT7rK_T0I?y+_Df{b}$=UfIgR9g@Y9XD1CKM`KzCyHW4N^Xt*c-%RA@TO*2v zT&94dk;@S}e_RfS6?L5%w#@(Wxmh!;@QX!bwqEfhgJ^r%sCn<^oA#yZ*)@XQ(XMF| zicX$DO4D|*;30=gk?egtbtfq&jCo1fcpdMklFuMa_r5I=c2^9WZj#R{M_|Fk9F?7YlGIBhF z(GqL>5hq)pK;%+a$-7M z?QFSouWGG~=4frAvB$WiV!HK=UHhz`@M?5WJ1SXWd}bJmPy<1L|B6m#^~?wu?0B43 z-Tj7Fdlw-iv2R>bh)v`O@^}B!#TP~vvV!;~vT)1D$)vE%FeZ>d`1$|h+X%y(su~sP z^2Z#W9G;T^u1&>FvFw3140B5o%uvJxa$J)k8yZZVNjx)^ckAW^_?i0ijF0HXvz zC2$el3=J%CG`Eyv{SB2BeWa2Uh)Y#1O2FXLFTXiNB>e&%VnuTW47{2vwsXWe@H?u3 zknY$2L<9IMVNy6~J9s8#uwzYaO?8*1&0IBFile9cqrK%fTvD{_i?p0|92C>jE526T z{AxDelz`C^-Is&QO6eYbEr_!H-tbAk`+_sNTH7ObC~Zg&>_n-E2g$ww_rrI#i z`RN~>JZ0$TP|sfxb-jjJ(N9{?!WsPr<6;{w5!Kz0h67d6;$j!v%r{$%OM$NIR5xz^ zhp0%*;{p_@#I#1oyi=I483!d?k#|w$*byyLiE;N)vv<^yw(Hu*zV?P~>Q^`t6&xKH zeXCZi|3JUBe4fHRP_PI>^tf&W%XYa1+v zS=(`{I4{-VY;CykkIl8`Sts*2B!dWbQL^ifJz5=1Ad~Es50^9uiz~C>7`kD#yQ1)k zbS<$4v$&!It3!(at0K0b;HBjdgRWMw9X|~cKGLJB34l@>yBaYf@hfgT2QhrK>$D1o z5#z4D+)lr&$+brVY$ZZ0l&C}t_jD#+c9s?1zp@B7+g7>mqA7O3b$(=|q#V^*Jl}u2 zvtVwtyL{5mHepS5MU#1O_w1f5LBE+g=QeK*ir7e376&iEZqtY_&|(EoiST$Jc_#~1 zm{bB@>wzSU1pf{!g}EGJR7uPNEXn~aiYvW-UP%c&7yZ3cKy};?OBMtUz)v9Bk);5s z>DmuKA{XdbP8#P)TERjp&*hAzjvvt3nP?OlW3z3SAXOe4aYjL4mjW)DPC ze8sw|$nQzzTz*E7lc#6_r{zi|fq9C)6AKKJ2O0v7o#rGl@NmxVn5H#hZcN(SJ2A&X zk*Szud;3q){pQoP_b|(L@O* z7@saZW(G+Hp|ddGa572lEbrz-y#ozT;_ihgXWk>EzwjU?QzY10>r%>x;Zj!{Ln97( zkNGUd9-F@Q+~=dbf3@yYPZ5Yw9RF-^>)q7IUk_a8u-)2425Oxy*r}P42L0&J6sPI$ z$vsE4O|jv-kL64Hgga6tTlCt4tdC59y-=zB$_(|~Nv5`mXm|&`x_WPIN79P$73O`& zNSRoh)x)fi#`sz2S)RB9KIaS~F^3MtZwVN(;J_ESn&UJKiA+TxSd8(5!O(tZ79wOJ z>M_jY{Zy2H$_^E}z}ufg4}&Z099XsP&zObiTnsqO?jCCDv*(z%)a};#eAVSr)!(Dl z@AFdzwEAqV&z*4oTMj#4?;eR26Ty7PO?7vOigwInJLg9Rx>23l&QlSEb})u!uo zw(B??S^O~NOP#_{j@+jKEz{en?lxc4dvkiL-$!(G6*$B~oHq+!0ggjnGwpJqr6f1w ziM^`^LTVAc3n1S-$(af5TqP^CR@~CRm72&2s>>^3HkLCJ0)D@681i4%gPDXsSG$Xp zt$qv97Z6|qLKY<5hg>_Y&O#}StEQQ84mKTpU zTIm1nA$b1#bXS){#MI1ox${>=>Yc_1UF~sGx~r!WG(?;`e$4g9;(iRfr-{y%3{KM1 z<32w_JG!=yX3X^E4h#KIv9;vBD&no>8{4+uPDy2`DxDF@Tt{4%BorLXe3@WY@>gE( zXPU&Upu>+BJ54pPcBF7552;%@c3XQ8QtUoWAbo=(WFNKow8B8e0QrAdmkWI1ir0g% zM%Qeo`JWtxF8Cl&M(DP_L#0?~T)++h{ICCszz?5tCF8#SymlK50RZJ71n_BsU_AqT zF(SgoC++ineJ^h{GUhmMWoDG>kamULKEbmi!o)YtRzHoxKJlTW5Um_WYCh3>-l8=D zlO{5280OBA<2?Cwpro?^*P2jH-{Jf`Z{*v!f6TXZTW-tJ>2pSEw$T#}``Zl+^qPC` zPdw)y(~=e+ksLYC3ho7EC)?Jth_d`Lsxpwt3B3&rhXxH0X;TBn4p=AsJ#mY#Z2nWG z!qfohd47BV@UQK)K+SEXp&bFAu=q=oW6*MVz-?@=h4#$UK#yN^e|!-OOvq~`BepRG zf%kOoWit3wa4%Ylda_Hj>Fm&>!(2^P=>_(fCTXBA!xCy_S!JBh|PEm3ujn=)?7q_~KSm7kb zt!eW|@~G|WG={WU&T>d%w3*MszJf^%Wt>~BcrBJ{W9=1caD>C7)gqPO&rY&{$_wWA z%5{k8y&9yrMyM;-XM!L}TKE`{EyCN)z$b<|T=-8C8y_74G+;mt3hd&Q7iX{VWt@Lc zXcCD6;oH5Kia0KA?Om`Ek85KtM8ljZ?&6U`G}L2U+tEU_DJV8!8(s>y4ybe(xw@q0 z7Z_uvyM3c`#48GvYKGfeQu$VQ zA`iL&hLW+*sdrPv$MoNujGh=ZyR0VO)!WO8Pl{+I5h`uKKpuWXta>brz1os`W0IWD zwQ(e1#gHBlrUg-g0lu#)pog-e&?ph$Z;aZe{)3^8<%%Fm=txrrc_73> z$kEL=rk?qh?`J0B35PfcqN_4OG&Db!I zy_4#7F3KonE}NWwM~NgIMnjnJ+>c)91JjgprV8Ljec1!y zq^TsKEV(d;06v4eu`-my1M~AkifU84U{`;w7$Re!C! zl<=(sTo;#zx)2213qDH)Zrh?P72b!E;a1COHi&)c%s#BUs&7>GhDy#{7^<^q`nyhy*!=uRdsSAY3ypnm zYT9tu^!-u#=+T3dXkS&^+a0okJV=914DP!;O!T_Umxv>Y;GflQ$*lk)Mc4ZSK@?6D z1A-ky10)^3U2H|j0Efg&4*+cFsOSbQC@&+x{Bnl!i*pjhti-=2Oybr-i)#quHp1Jp zK#`;C?-L>R&(=4DG%}01zZzfuXL7z)SMd<`gRcOHlua-FC1*IBrP`zSwpQ;>0^8b{=Fo8(e?!( zR;0aeEr7=0C9FF{IZY1bAVx|b9IW#`aFnOXf?p#B6`XEH5?x+h$mcEy5@P^m03-kL zQUPFh6QuFKq&5~TR{=B_Sx0u!3vpHQG0Lw+<}5(?Gu|)3aVH4A6w`v3)){_7V%iMv zmcczR?cxw^@6+om%zZATounOeeOHVeN&r{L9=5R<2JA4^o@$C6n`>})b)Lf&VaG;h z9+hM0MT=bchVoHOpaIQwbR=SwsSH~_*cLIEkNZCLxjO=*jcd~^bb)>IqC)%g$Nad8 zao_08*wa{RBh7|=_!rc4s=pYg3fAT=k+dn{3p*qK4>2W;2)NNXOfwMnb>%4>0L zZ2Nh0Ou(?#nc=R%f|e&tU;UZ_0UZ)+{naho(r&@wvQbWKGg?{!I?O-ir!-RHEHlN^B2(<7kK4foN>Wx90yO!4%* zt4NVOcBCq^{A0zNcUnKxEZXg}lJo6E#%7bx>j|Y)74Dyz-IwFX5euMD;FL&_H|Tql z92rg9gXBL$lx+oN0eL>p7gZ4Ona7{GN0N5m_7LGhVD=><0rU2mL#ywD{>d=%dnHj_ zFe7mX)Zu@w3R0qARiZMIfn^sUqNO-h(^3_T(G%YElO4z2*^CxQvDw~!=8&+XvsVCf zOJAGsy0`mmLE&W~n4J?X!p2}aot#TtaV5oVw5rc+rTD*^XSEEs^)$uC__dvh>Jjj5 zX^IL!6^>1B3Ih_|d+eeo%v02;JSSAR<&X}sMV+3%^@oADTo%GoP#I;5Q{SA}crqzF z&@d%Vo!Fwc7-tZA;C>50kVJ@*W?aiQMU(Z3&)k$X4m4aio4s4nBt*GJg&q`MFA&9= zd|UqB4#VQXqjTvc&_4Jcal}5Z;ye6BBw1L%Bkko;R`eb1t{EeK96SK_?t& zD{fULc7vNK9a+#aN`D)vz#V{*z0O&n3(k83VNsyO|7RS&q@n=04z!FOXM{xo_l2uc z{-&JE7|*3$48QDCG->hh#!Q9OFl{ zxW&A_p)aP=*;m#n*CChsWfF;m(cO#@Pg?7SGi0kcX(3ZZWROD=|Nzjs%i|0h_!0AGW8a0qWk0SoL>DB2~> zA-6uh#_U~y+*aO({QL=Rxif{Gj`xdka~M$}5s{9Ij70-j{Yy@TRA0J#h3Q&Lj8i}- zB&Nf~2{)YY?2kp`T04aE{YE_*u_BFsrwZEIIIGkoe;92TVAV~bn~Z)V6XZ~&9uK;O zrVT@o(#~kZQ9?>)Va=T!k2!fm1Ky{r$6!4Ak`35Uj^`n;dGS-|Pe-@Vf`GJZ+F#V; zOuwgs^s^U~f2rD_1Q1q+9kQEEkq+7CKRaZX;xF)h$)H7f*Z;Hn@1%NIpgwzVVQrVb ze$a$P3;G?+q3-IBu0pGAil*{9I!8tfHW|yk(SFo2Uy)z4nHyw%63nVAFlL=1F4&=o zgx&GlBC`(r`{lwxYo$x}#OR~7{S@T_#evPkLT{77Q*ZY7p5=Z`nk*`6efLlu!O3aY z@a9+L1?cp`0OvQS^%uAkE*wu`%sROW;EqYh>p#pQKwJ_l|iX6+-OLwMTquOq9`-|ZTFpf4yD`hxPW;zLsfajMDmgVpa{ z+uVmrwv;zT7z?|wpQ`RGbXI+hVQ zH#d@&hWjAsF(`7}Vk|qR>s!#&fQ#wtDtCqQ>084Ozvz9cs_1k6=!Jh|@F^9sI9Q^^ z2;)9-p2oBAe+rDKh5vEDWUXzKp&&r~`9Cpdf|MkY-fh^wjXbjQTcMkWScoKEdmG^W z3b9wP4NmM8tVHskRb4ulk*o06!vCLF$NKKUKc}+rNj`kj04TzwtSY3LBOYQLObH4QtX zD(-E$gD)U!H(oh`Wu5;gO#vfEA*UXMKoB_`ve=Zp;E|{Jlcx|D?N>9OAVP3B` zEHu^dG2%gQ%?bYEJhdk9fa>lEf4lamTc!BgxUK#Hq@8M*6+8g!*tyLEMJmxtvdlt^ za`Gm>-3Od<7KEiIOe>7Hu{JPKTeSZ_nDauj^)S3?MbgHd+h9f@M;!KZ|FPQtP`(DF zpKZZ|1RU+P=z#)_kL|Bvy5paEMOY~YXIH)UbQBE`ZQ6)wU^Yt4_H7y7;^XuVHyGnG zuI)OWqb)rCs`rf$?(UO$!=ckbX+?AMKi(!_+t}Jmc8EF;B*@KQy1gvklNcMFO|xxZl6szaU;AN?YfpjZmeQkO-xL` z-(+Fhq~CO1>@aTDHB@xH;3i$uE0$Ikx;iHC9o*0mzjqOQ$BE|Um5AcKM`0Ma<>)<*5IyBg?9k~t}LI!@0i~xhLgzLd@P5kfip9i1QXk_Dj@OQ|j_3#zXcQg;-IbSV`@VhbSA7nx7k{A)5ZbH%zNi zGqLP`wqrh3JDpx&r=!KqJE$VYItmZV-dx!rw6ON*fp=C6fr@tnA68PSSQZy;_77g6 zSeqTzQ9t3mmG$WhxAwBk&HV;qFUz&%aGNi$lgzcFxw307bJ2>!9s$^=noii~szm`O zsD(^rlU^m#g!)RxMF>mseF)o(}yklk%q+Yg=(Vs}J8=?X}wH?DpfG3EKoX4%7HyMmIcW zG-pVc(e;z1l>Ib6TrE!P{mIErUMBXL+Q!vSxO>ONIhd# zw^wtni9GA`*)FvFNt??332W;&(ihj)K2gbWrVT`&l)I(y{@8)WM=63<5`WYFXed)s zI`Gv|aTA7qIQ72w+KoQz)`fkrYaa^fNLiI-eh;;gZ`(AVoM^_l@qu~IlDVANZB0cX zftohLo6qh#v-j>w!Rcs9JFj)}w*=HzROuDiso2uL_f&a!O-kyZ$4b;*aijKCo5FAI zbACKje|kNAtMg;k8(0jzR+K}hXu)(uwy*HjGqQz~@dDP-nG^}tO8Q51Wr8$Y_tgxu zU>pvq&X`Q(AC+6RGktFdS9VQS<_n&v1~IA}>!RTwvDfv*B;8gdD1Py~&RuUB6dM?w z@~taceH z??g2#^Ge*D5cWN=kx}hl*oI=R*g8iMiQIvfBxRFm7U8Bo8=oW-_7j&})a~}-(ixSz zZf&~1hMFP7Fw9&->!Zb&9&|9&DL2Z&v;ER;QbB4FyI- zmg;X#Zs8+UD_(8sf81+i^>Md274N3e9J4t+hN(4{cduc~IEo*hG<-dOi~n^~`Ve~p z)7k>dt7pBhaH^M`7I(}U=sc9CN~4Tca-pFsd~xRL-^npo?JnG$#-X^WZF67v8sJ80 z?s&}4eibdLJsisAYkgp4MGli2=4hneyN#8)uTm`b9yi=TznNAjJU3WWIVJDzfvj~D zRu^8~q^6MU8eh4Qv#zrAGNpO-=SRx75;!{9s~l$pe2oXTaEzrg55;CBHd^a#<~h?k zcj_B2)iX_n9UAkoncfvUCT0%h(lHI&h4aQA>*uacZ@my?dCpHo-H5I@=qNB~AAHOsGu=tnPdA(eYSFE|4{XY0#m2%cz(^Xk*#+J9`%2(5% zJfoWDie<^QV;JjFbX+#=4^-0LDTyDdZhD&Shb>$XFXiD1)7)rd$=lf6OP z-`?0Hpxm4Ea{VjD?G5TZ?w-$csrfgaUrkT_=51AI+uJIkiKvT0-vk|mYhDMtKaDch z>(!0fplJjQmYPwz)*!`~{fSkRqGxNAc=YSI_sd-g^krnS~+m9;_R9F-z3SY+v$J`I56{*~0 z>PvCTb3lRTLR$~FUCq^6o~qpF6ZHx=19ny0w1+xUbn-oRGEh45UCcMF_QdOnM`upA z-!odv`B}Y!Y9u`9FrDylu5hM)DYFd?g#gPyV*`a~7RvaZgXXJ|w|eM-?Q3xxN{`JA zeEib7ZR3MgbJf=iLA@MX^5BYi$Dotum%H>kb?MmdhBw)_j$KwN+C_Wl!s~!i)w|;A zoUgr{d~l`8oEtXoyr`iWsSqjTux6*eM?;`s>Cr^1J60{WV~Cx{yx+&Ln)NGm0%Imk;#F4F%YML$^zQf1g>eb`p$4drmM5rse9)n&#D_Zcj2#H9btE z5iNdsRIy@Y?qdkMYc$TAnb$9FV}j&^K~$XVfWj=&HooRvW*Bdpp;zp(EWRI0F?zbybyzAn6>xx9zrxq&J@&gqP zoExtN{grfLq?(h{_u~9f_E&~(2A9gqr^h1DI|NRY$J?`f&vtE5#?9|zJEGtV(ZuhO z0&#y?PJT{4BHG~pIbvJ`04zK}{0Xr5ky+XQ{{yh_Uq%tZbH4x<9<}}gSp18IjuRja zKQjFr><}$sU~Hvp0bY%DtaMN5UN*a;%K)w=@X{`_OikLa6-`-$Rr&tZeNFmqg0m2Hsz=%{b1Emtbv=t z7E!@D=3|t~d=UvA?g}R#qEB!1*&-_8Ue!s@XC|t6bLZI8Vq=-hv`lIWyX-?_4<6mL zr`%lezWchliGefCzBPT9J9+!0n@1lAJ={NYdTijBq@??C-|vH+A4)_~^mKeNpRc+- ze(}#M4i=x3cTFl9e8N7d`+{?=(yCJyY~sg?+;(xOQFgC7 zx6$yamB)LZl3^CRwdzj}UK8BxbAR*m^#|1FRlTB&d!D*$3wBJ-)(CEw*Y&t?$ZNH< zvLdzjvkM#pF9Rc9M;@r(anvk(TYxSfd!11J+7I6248lPjH&~u-t>ihJ!*EpL-R-7) z=k}4$e5Y2i7wT41UqVlO3Oet{C{Ni`xl!Qz1EVXstHf&0Tdpcy$)0xpNbRMD$Q2_z zKaxI|jIggcbQnDj|}W@L|ZGqbZPf^x}}ijb<*gYMCq+|38|Bh#nonvXlI?b`;@=x$h6zjvjH`J zWiq^d=6ivC@GJEEUQFxq zGn&&`cQSac>)kx(JfWZb+31wlk;-xLX6a$7E14{h+|$GVKkD8pD$^v*+Q!}8EpbTP zEpbiU-QC?u+}#s*cXxMpNZj4s`KhX|>6)JUXZkzrBi6%Oup(X_B6eK&-gj)Il=5CQ zMEtM~Do8S?cUTEoV65;2>W61k8^#ad30)kNl59h+bo(%g=mW>*mD5a~oqbL5?L!&= z3U5pSQ|m^Ya&X>kAYdJ+^=1KG?rOzpQ;DN=hrF|m>uObJ`Dz()l1GY?1ok1lf3xBW#@K!t)Vl1I|XRrdfu%&z~fY?pZtX< z0QCmlNituborX2}l@JEPl*{(G1I;umqMDvM;nfxSBC_INk0YLoaEmu;KY5;AcHpIBXz3QGGB7 zbswa;nJA!Iw|J``L0e(B8NZZ-y*~K2ZdoV^QcLKE$5F^iYM$x>abpFg)+`guo?DH> z>R+5t^z5gq9&^qzeVfveWJdn!+jRbhGe8Pc4W@rM^KygJw*Lby4gxEaX!L;ZQNS<5 z{yrjKJ@4C0a$ns8p-7A2&q9<7hLot#Xh?i)#)9TJ%SQC_SYxYi;-IIF5f}#2v3{cA z`w|hp)vLSofNTSGNfo3QttVDx9WMht<7$-rUlI$??aNFnSS)G6&<}5#Jls)9w^pF( zHr7>|2%#f%U;WY~#m@7p$MIrR);< zVh5)V4s7?S&)r>PdMK0%1b~$^sUKH-Kr;Un5a&C8W~pYtp_dukwz4GTQ}QG zi;z}j;97>W6^`6oRhI?S`_ReiUhf;Jm?m?5%RSq-6Wb*MO_yF6&2S+&1d>jD@5$PPoB#F!C`sc$@joTkAEM$n{lq}W`WMOd8;|=B zP*wj0ss2z*a!`NOQ2#`41hoI9p?=qo|F?!3S6#8%WkK@1sNC!Yx&pCEQ4SeN)i(yK z4W^G=c1HTyM`eYu1|yz*Mv)UXnJ+Fw!Pgh7@yrbm|jAFQp+ZWgh~~^NgM(}NX_RA`n-4Q zu5PtH_0mE)WvO=J_#B>iNG8wvpm7N$8+z2LJ-zk~ePivbmv_H<*hHN+HyRXG<10L} zjvS1RtsrV7kuU^qmOAOu7NI|tAc+(a8nM$i%96PI%H*ZaM9Tn6h>cRaD=jpJ9VgZt)g{qd^Yf`+nUcrDmEjoyUXSBri=egC z62@EBo6_sHo{cK8ix6g+huMWbo;@4^3PP)cHMuZuC^wj?&Js%znh0toq0p`GhmAxQ zGB9!uU_2ii7Pn|_QM8m>IkbV017jeHS}7a1(SI;L)29>D zrvxRP7}apl3e<25N=(~U@s-}#XyA2so$cyHAHq*9fa-IHt6mO?8mQu&&B!8tu`2sc7?7gGs#_REJ+>n9?io)sRIc zALha*^fv3p13!2Ws>ba2NmQ3F8-x+lb<$5RY2K1@r#KX7AR2+XxFyBI@VMTyt}4h- zKkGYTW9rNWpqY;ZaNV8k-IPMJYHtDs9*g;j6Ud9o5lZYy>et#f>O>^^&Emu~49e(m zZ)hFW{@yDOx(SH=5Pu2`=VyKPxffSi8VHkX3kWi!|mP6Yv<1QdAK9_(x z6EXmU@9vV@RX*e#h)mb_m7Q+q0HO~D9xAWbROAL{t3SMnAdTz{CL(qZoxBBvWvzdN z2R@rLZ=m5y>M+8gpHe>A2e*ajt8`tAyx=Zqfej11TUT5YVgsx=(fp{7TXqVXp=hUr z3Yc`()1;C++<>Jt(|JoMhDSi&fkK9RiO7|@xh^&veTYTg>?RMzoh~!C6!Fsp{WWsr zjRh{R3HWP7y#;ze%W?;5wzT?-p(gB}WbKjJ!C^->1aV!%9mJq$ez~Cw+r6m)^AB7K zKzQW<3P$b*mi2t-?!06A;i^p;@-HN9ofnuplfuSRm>)(f8DD}3>1PyRM0^F3O&Iin z(a>mUCr3KA-E9@?v)ZPT-P~d4k`xcRJBv% z(aE%als6L9IhU5)ZcSV{J6%EhwVnfDp#+U6VHasb0lw(Z4h!coz{wAsS-dk zB>Nm4Mlt6e_c}u`vg7BRv!HB28VOB|Th#Yws=BeP_i=}&t{65jDq^LzUpX}V*yya@ zThsfDDL5G2rZY{m-<3^NJK+#sf#Jw>J=xu?_M(Nu1HiSNtqd_V+2vXf=ttkXVjTDV zClvkJAE{&7%#VT+xs;pvogTe;>g^F*Bw73W7ayP6_M`^rtfgIc)Dxu(nCc~?)>7t0 z$|JUS2%z|FU=S30ID*eOQ_Axp#Dj5uQdq>{b?Bz!rd8JRPp;E}BgFd10aD;NTC2EG zNiM5c8|t(bvly~4zMC=1KiR@gcIljt$6M|5ibEvoK+=g)b7Cwuu<)8AT1V9s7WBQuPm5LC5NTNJfLbkgY696&|e8u+52gi3u?|w1#;tLi98GY_RU>by!ab*w3(xsW)E8=A9*b=T%l~rtOq>`4GU#JtAW-VA8*IV7+D}#t3 z>C<%OZNHdzudnLHyR#vttEIGgI69tR-y5kM?tg+1160HTHx70MPbuKfi%xW5d!l2Nt_)%k+r-qGixImE@|`RoC~)m zYXF6(15}Woa-*!>D-Fz2%?#)SeE%JefhxjEiXQ{t$mXl3lHp4-_mVsEMKFdt(tFtg}(q*N%@ek<(#X9=I*WX^vVKEL6lKj!ck;q!0S!#rgrC3<-g+Ak`T zbD@5oS~%5mil9P=X7v;Jo)He1KuPi=1HU~P$(x(V8^S@~xMt*63=YPlU))e9V)9mMGfxfQ>X-zUUV3>BT&aPmZUFISy(6^3wfi$SmH9>Fx&Bn8La8@7|R^x#Z`a&HweP z{9eKR&w5q<2WR}f0Q|47${%Kfe?udysoSqLAbKrUb{V|tOdj&~MI;%lMy4-Iaag5< z&)*Y{xVVUl^7oD+(uNLncC@wu5l8K^Sy7u>AVQyS_tH33LtpOuBf@(*KavHriCxE~ z`V2sz&&ByuEl+dXIbL7C?w-~Yg~#2D{#0}eza|LHp@R?;%pH2*iW1r7BK!8u(>(M( zvaMnytxck&NvvWx@>N~=E+9IGI9&Gr6y5IqAx`;#>|6I{x**D06y8vDAls`nm5w+^ z6^Jh3o#(mh7++%;`SukTB2t0LE|rT>iAZ5l&aR}<{cxmwwi_|F{B1A*PIgpUZ{NFE zMhvd8LQG*08wECZBd3o&BSqLgKY8M0o{QINs;7}RceTleS`C#v@jimFLqU7V2{?#G zqGC2Ow4BD|q~fpS9@5ipv@(_uNzT3m655Fo;=o4Vbu(n{`oJMaFG3I5pO1Bmx%u2A z8b1Om8+3TBImv`!b2YMTIpi>;u}=cbMv)*{A@wJDw^lo81E+=cWMP0?ye3 zDSgM%G{xYipn7yC4|6~f)u|ImQ_3<7u$eWQD6pN=n%gkN$!v1_Xq3)?q#Qv}s*+ODI5wfWUizJ6Bk<+(_nfnw2b zM4s>cZm02K)8P9IM9}W)g{#(lkdzTO(H-m6EW}hIZupR9H|5X#57J{%Vl_Ab-g^9UNB^c7X>=Z=E+tkE* zV=FyFX#l(xd3$B#((n!7v~^}Qbf?DQCbR0zp;yVV4Tk{D3RjH?=*}{xPJGD}&!fr$ z{-`;-d^^Zv>!u?DTH;=lLUoyy$;i`floQJz&aVZ%(8+ePC^MG0t^m#gv)Fw=AY|H` z%7Xy?xX7#k#}M~sUr&2|g{I5X+_0`H^?RS^$B|>Wp6Jf@_z~YJ*y|?0ec>PJYLQWF_LbuUO9_)de8 z`StF$sd^Wfw9`{Rqh4qNvb`t-_b##p#3YE$O!zC3OLyLOQr6$!L7ar^=R_}X3T4%JR_Pb?ykOm*7(D`?(u1oHGiL1Io9-2(~q zXxhaYPti8SK%{PJ&(|lZIRRFTCk{IuCMjPNXA!nd8 z0PSm+;9__5DJ9EPcy!&yNK=rltQIvG6HxX{d3b0vC*lFZq|@ei?^J$6;%_41>N&qc zZ96cG{Wo>I%uGC?SR|GNrZ#2o?jO?t&*4og8nb{cIJ@33Id*E4#U7L)#DD>(IAx4C z4$@xBar_8~%V)}~*a36pGlQa6g4#viWLU1IEf6q?3)7%&l%gh4OBFnYpyox?q|VrU zKs?QkTDpCw+^}ns3i6P*nzC|DS%WxuAgTd&r@`vV*f>xtycvB7$hy7FCrl3us0dyT zSS~{IJ8a2U`pnjyjNw%-zvnHZtc6#f9*xvxtnO94eKD%9^|ey7gjLs=zi z2sVM;^Lqkdi+YTg0Yb5d)K}UqTF(g<222#OkO=f~z&_zvV<9aa=2kNRgzA~0TSfw@ zUmwCMS0SuK$^e1MUe*~84J$m|{$=~ZH{c1+*W@~E8VU}-4uKchI&*tWWfMWn?l~p6; zc5mkZds1Zf#nR~==sM}^vqoyCb!MLPz9%h}4$~v-B`GZf{B}edJsPE;&gXSW04Ymz zG(^U*s<&D(9NGj{Ym34GYLvF@9Q`fSC-Nx67`SkOZ*QI`O(O*B^&WK{_0 z0c2%t5Y-sAt8HUBoUT9PWjMDX$D)JEmsvJyF6%hXdKmMrML9^>3q83!U`P&-#*KzC zWq&D45=QV;YaI)6`GYnHFPyyDq9)T+eF5D+P@b8#lY;`awv8IDW@EoyMEZsUP~Giz zWY&VXq^Y&YDcs6>&h8!;o%i@gJZKq|XE?KMx-dY2M{Q-pqnSsK8ObTheCz$v=mKGC zNmndI*vFd)%FkuD>)~LhZSw^_COF__!eP)eVbFAlZ67_om1YHQW5n}7YSc5EZ2*ft zH1eqmUR`+d4#UI6$7nPt;J1H_tp1>d&+5KEH-IExJ(-(27fq6rk7euahqmz`HN_yJj zXA9JO&9QMwW$jJLg)4!satmZy@JI+$3pI;8Z9_I zsL0Yde@xz?)eL8x(Kl@ajqkLqUkj{ma=LTT960!J51f1rNFrH#V#1DvFXDAe>Z9K7 z$P5d+BO|CPA%V{!P+09iUOwv*qaD{gc*3WJ?NJ=M$}xYnGmdxCTo|`+<8k}(zW=J9 zuZspT<3f-}RX$pi@vXV5c!!lar~praw^B`W5q*+nZ`k|!aqlNO^?pg1OXks9WecUl zJ&y1jhJy?0?vif&eX41N^CE|oqoT9@c}^ikY?TUWa}V^?|NKi zUf=K!#~=ItMm+y6Cx6qJ49si{|5VSvIY0lS)bl^gl7Au0zq@h&RL_6dIQjnO#^FCa z3jfB{&g}GmMb`iLh5y@?-i)8O>N0+MQ(4$PFBE4bU}R&aVI^SsyzuwaC;jhuD%t@3|zTmy##wiLw;L^5Vm7 zQMt0Bagj{{7v9GvNHQ8@!MddVLm(zc%#$r>O{)?T!96f#%cg^UWCv6T#7p`4%Qz{tU$E`!4&<_i#}E5zuTez9!~J(bEaXttlmpj9Bl1Dl3*_+P^Hr_@H+l)qYbSQ+eLiwde7I&4mXWqtgPtYy7#$7#+Oes1~4aX@4rcc z?AQ`0`I`jB`6KcJA1SdfTq7VE2HT~P;dIDbPehpcOA zSMst24x>Jkw@6tSM3faVau8&Je#Zp=+ULRc)OAmyW(!n9Lg8kMZHq-92(VV%D$eY# z>VKF{uAWPW@9yau0^FA>p0;5@1^vr(epV^M*+f8adX7^ughg;&SWKa0Trko`ecX~3 zSOe2HYyBp6&ixeu zTF7o082#Jx?IdlVtkXrWAUz?vN4p^@eac&kXg{*yt{>E}%Xj}HElK3<1#^1v)miS1H$ zp+)e%Q&p@NT!6VR3u2qJoOktLM2jYXOOD~7Cks@r(zEm(8A&M1t#g^fzjP5!ep!vF z>tWo9RzLw$j#q3DaQgsk8FYw>a9nnIVW-Zu)U0^f=vD{ZR29W$n?(fz-*28%R&jC& zwQI}FlUxM*P|76!quz{AtN@Z&7B648KDUN(i3ERzB&cMZVGU7)QN!UEi|4)_ob-%6 z&SjoTHO2(L9)IjA$An`kF~?kXUsjnYF%!5`HgFdPsX(k1lKOcw0Cgec1(m7-qWdqj^yW5v}c7$txhH zC-u07Ft~Lc*-Q^$AN4Isjq6wj^4C$zu%{rS+sc`=Y8`?l58;oElQQY~DIrNWX0UWh zG1m;k;)s!F)?ns3j+|D%k`dEjBNzcSGNzmcWLj|pFD~C-VMc;8(^~lIxb-v8i#%>; zuvV+taJJafIE5(3vM2-PLGarwky+S`{XS*V{^jYQ%)#OZ7m|mkmz%eMiLGfWj3}x0rX$|;`c~4>Ce1!|!Ca2J$xzbRH>ybt~g}cit>r)tiqZb-NAB2dAH(%E)}>Yw+7CDAHRvN3D!Y$$C=}^ z$XxNb(pqUwCQmRNGiO{qG8}i~(QNojb1Dx>97{|#o1`U`P`O_DiEcPL6_ke5HVzCB zy?{&4Y8f9|yWkYI$Q51h^aj?8>8Ql7I^Y~`4>UtYLYrI`*kJxuNXEk%9SYpW4rIl0 zbqpFPtm9qpZw`fDpIx)w?cy`R8313D>|VR{>?c&MkT6D%!m%7|%0$+Ip0`0>BacCP z&qVj6ER$%BqCp&KMz$RSkuvMajhAyUbuE%Pzq&lI-(0iR^s_qcpJjb>K@d4Si87;& z=8bD6Nfxe)0(S(_S49_T^@?q=E4ZjYDC5ENKb~4xCm0L*W*R8cP~!(p`Z}E)VV1$p ztTCuR0U;46F`*o^U8W@`YNBHmE38C&(JIA>p4{`CVse(DU@mq)&kNl1gIMH7OvR>GpA5Ej&mi5tpvCH4)DB^R*qR=(CA0()Tjh zGj_tapHJKvXCpz~+IjF%Ozu6cbDJ_kz)*6AncQ3kXMTWu^C&rTnZSNc{R81m(wD&} z6ld&ZuAtjpE9hZ(Sx&+i0kcb%3UIc9Y?=JeqCG)K?00)2ruDD-esvM?XX0}?zLADDcIgsjdp^H}F_4q8_>KJ$xeMmCu``g_2U7mbN=w z{q%qzW1{(&C;l1k&9mLi2#Ri*yVs;x5EMB|m*1P`7h#+D#4S-}yVuYZ z)oxtge+0WEZgH_cNDEpGr>gF;@gYhLfS^!>GfKkG9LER0P5JWTvq@lc2QLqp3!{nH^#|0lfX;`&dBV6oHx zLFxY*!TNMV|7(%w_oUyyoIU=xqXIo69nEJtj){$(hKY`afRUb^<})|NOh-q<@cH=f z92VIA5z_phhXsb;Vq|}g+t8ED^O!iqP>;xykm$5m}#(WpLa;SiDZI zCS_fNf!)QzEvd+oOD9U{=0yGx)`{#`AQk@jP8Owq#U~5Gi|ipO6a#gB%d!t5lp+!% z6nS+A@!9F|$>Z^ef{$4EV3cTt$ahBpA|@XbNd*E=NS1o4ng7R{r;_6XFgK=V_Ce3C zsS~o?%i={$=HTgvp#yaDaG6hS5329otCJ!F)GzYByKVN=gCz#t#dPD zlsGL;x+U{(qb1W|M8v|9u@eHZx)b`B+XcC%ffUC4d6@VLw%_TV>#ZVaIAxOW>m;#Q z)d5etjDo+HF>$Fu?BbuDarZVxd4w(O6m9;rDho^=H_ zyswt}l~eM!)xH_IsL(Ohc$15wawrSHq=(VQ2NnNlX@Q-R1LK6oL5eKik(r_oqm{s8 zGey!DSLRbc&5l|S|FM?n>uSaYVJ^xC@x)B)mr&n%{OR&LCPY^R7p172!Q(EH9*b$f z98=WX@2DTbcNnb9TQ!`70p^OQ+LU~5A*c$O_^<3N#{Kr?Huf?bBr;S*OV zyWTCl1rzhNVUHwb_)1SISW&xY0Yx61_;O5Vy21{}CFeMJQ~ObIt@e^)m2sUe1XQ3x zkYoBni=eV3wt{}=Tt{ea>S)98&EQya@hl{3!)oJ)s4E3L?z(xxt?sH}XwioB-h>ze z^tP76_^x)EV2S*UMAtbCQxPSjF*2|AIvJMAg(Vq8wBb}G`>HKK>vZFrnL}I(_XBSjRsa2L14-6}?B4se2fo#${*>2T( zC@W2yJ}O#lNBUcmcNWjH^lyA3h-8Q7nqFnXiWPxsJdxO@l=J(AZla-x%re)d%8UvX zh}cc(!sgIbeCT)Oj1n;_l0A+y7;C)n@)d?7^)7Xs9*~cXS+tMo*l+j7kij3NI|e{l=Hu7FbDR8k$D_LyHj-5!ReJN z7~w?*c~-NXbc)U&Cp&Iy+C#h)9%R7F_JgqOY*@Z}SEn3iaQS#$)HlmeBVDZp>E?q0g|NY`HQm3j zrSo$lcFHIi-d9Y{%gBv0OKGX_pg;Ed03r|d;QN~$>GyT+x5ba1o}K-_cBJ2f*S~%D zb4U6|DEpr~((h^PKi13th#l!4Df0ieBmKVS|2NwK!~Zk9`s7rffpdC#W*YX-fH*S~ z6AklczK5QHg@*O>`QO@;K10O6xgY*!Px>ps`d`@GAIW$ES`}3_0tQB!&tN|5Csd;& zuyVAp(EKYA`#m!M=O*`WusJ3M1{zjoMgmqk8v4%!H4`f%4KoA5C#YlpeEN6h#{Q46 z{@={)Pr36~IQK`C|Nq`^`>{-;RvYeK-l15Az_Hi%LUW3~gg`e{q&HRVTWQ6s@;-b(Rwggv|P$$U+M-hPx z#Z;~`HjxyDjPC-@zb_62wOkk z;@>|ULcM7^yhW1M3Hj?>KYr4=#jt}MLWLr4WCL}1@mS=nOYF*jb z%;u6I`cO#Z1fv=F1Ou1`i#zM1ry5tVmey5q zk`BJj)E&R{Y@{0U5J$~=I_ZtT?1SFgYLxGY{|&wS0~oODJ5SQhGsyG#N&$WgB8EXI zNnImVW4*nJ)uC3%?X?uoG=EuSL?rVIlF_FX6RXBHIWU-H zvbLxjPmMyMgch-CNo~j;A-Ji2w=%7pE=`fNLn*!kh@t=Ktmf+trHsHH{rBKL3q;-b|8*C0CIXc)A^alMnZu71rW<^Az@qM zkrZJ)lsJZvA-Mfwbt}6jP zQq@N+-j53a{PbyAiZZH0_EM0x07{g_5SuZhUE(}`YhZen6t!nY z-Qatbrvv{lsz#`>J;Nl-qZ?n+q|X7jcD3@{Xn9kpE<}YsSXYX_!hqU49)7G_l%xer zHIx}=hkEbG0)YYK7 zv#IzQ8d09kZ|emTA8)?nx3t#Nw1@DA$EdLohl|$JHndoI!vMRfm3x!c)0WL;A31tP z1Oa!<mlYtHH~|?=c9bokbESl z%d#H6w~Pb?KDTfL`l|UT*N-YuYWAba{fwi&@M``rTyPvsn8IMcq8Tn<=GeBd=aQTy zU7>|==fJ^Dvg=4?8jl$04Rb_tggXfAdqAN4P-@&_`i`KYRC$P|bDBa41Na{&34+jU zJGk)7=M{WSK!ypyfa&QiA>rPD2dg zMNUR8z%>#Z`~t)+thjCqzx~mHi>;jFzUf|-BfS%*5QeO3^mD<6B5w7kC9;4eFNB3T z3~m<^y8ElMjfxk5nxQ@TH{^@q^uso-;f{(EyH+OL^ffjUn|r_LJtFiukq4KeEVCG?SYq9RdX?^+6k zL+2&HOYakal(L;kn(^@Fe)AcNhW6k5j$Fkd=GL;*-SR&`<^rtg*nXi%rj6*5V$SWn zT(vc&s>TXU=|q^_DIAW4NsE$f4X>Wv9 z$OG2`xFL`Mj?Ci~p?A2HxIWMan(k%+P7O5xK7(sjE`C`vjy#>D9joT?H( zhvu=hQPDhHpf2xU>BSjvF>-fGJ?6{Um>87!Cqwa6uMlKW*gW zP>c!k7&?aL-5kx>$g+h0xr{)?EDo5|_JBVF8Tu(HxpD?(ZU;tPY0(;Vi+tj^)cgZ>fzjTi*$Rhve&GM};RYNFaC~qjP*9D_0?Sv8t~<zwAb7?#KB%vI4(*$~ZZpS;T5M1X9R4|KS4nWGyt&G}kVNK2J5>zSRVsME zqUTeRvTXM4pe+K$O3t|7o(z-Ravk$)HSp$L=cR?$FYrRDm4&CcmW6xN05sK9##x&b zwq9l*-gakX6MfcSZ}|?m$rE7_Qf0Q=M0ud z#GKYx!7~oU;J1hoLZ2lOsGg14o@r+LonE+F%0~j@@yE15V}q~Ikk$aDAh-?@HRuK2 zlc%iZx;(hJi%Mh%M}vq~8x4-~!jQulQ$FXn1M~NRkJ?){CalFKdEN7#*bbf#n3xnA$p(W!R}7OV@`3_0~8i-u6*)k9oAWWlKP!h3;Je7}8ZXrYBa zbH%0yD(2Jd7FHVSud`YchVdYy(6d43_ch^eD^vmNf2?Yb|8eBq_*zRB(AWWh^W+am z*bo$9N*dhO1hP>n-|J zjsrg~vp0y`jQMDFlZd)RX^LvN+%9c+NkZ}r1K`mt9GyM21tDYnxUuS~AIC3q;f`;LkN9(2tHuPE~ zD`k_g?Dqu-Y`#WdDGiq`GoN$F&7L}N##)YAJM;^*&Ep6Od=r`&;F-G^_?EhBM;_j} z3tv(bx9zVAKVjGBF1?+}O)qj=V|;TP<%07Odu3x$F^SDnmwT=G;?0HcQ&V~^*6Q}n z(;*FB95hkgF0Ee24jzd#GDeKPRcuaZr7GMI@099U9A*b>bqX}^_b$QMuiv!dnyL=j ziRnRc8>;?T1_aH$M&!2YJ7f-WYq6NCGDK1>vQ`T&!vp*Ey_Ll|R7o}x6NEh4FkmOD zeAjV@XY$BU!No`s;KPkRgy{=)&|Y{xVg!L34Mk=Y356v6CG|CteyXzjiS8Fe#ED#D zA_{uMhdY(yCz;stD7ZPv_=nH*?=&+b%2wqqYcvlOP7f5E{26egJY`;8TK?30Z?-Cw zhmsH$-=i)jalW3UYG&snk#13&qhF7_XKEACm;g(mX(Td~qD5@QmcDjy=2>&9!RZU{ zn7X6g8iNb^t2C$>_~tv&7zF&uxJh8ho2U`R!>{79+gg-R;G&$`p7j{8h%fPQ-ybBV zqJMtsA6!oIp)qt%G$ZgMr?bTuz>0R_DsM|NKjqD)VR+yfRMWE#t;`1|f@p!2dj8Ee z6~-@*8}MqId}ZVewn1LxjQxwTPmEsiKW#8dqh&dAW4k&?oos4|{eTS)(vgRn4nRy2 zIm+av@28Kx$|g8*Ws{$-k$XAClSBJmymKYB9CS1C*|d&l}~ZwsZ1bi4l5Jy$x3>=fKWO^RJAV0xsz%=W; z@6qP_WF<04&nABF82IOC z6y?MS$W0s^Z0tE`X`P*&X)H{w99@j;tS#;J?Q|XVO=zs`jA<>5>}id3ZD~v#EG@oR zS%0;0aJ8rS{45D*fBX5r_^lZKhUxroGo@!^`>c6<7Cl&LKAlxe%%4r@KFw0htTb%@ z=7-My`)vLWFa6#S@y}`gS@QU!JL3P1V8+$et=F0my&ftNrh**3^;P2qH5(2Ej!C<% z8ig8c)lg16v!Yxq@>_6Dw)5Wa(zhgu^LIc1Td*-inKE54;SL6}CwegBfW6!-C?0IvfA!;A!=c1V#d149YjhilLhrt@&KH$$M+Ya>zqRH(Ox6 z*guNT_ocf}vaS7`UwkBAUN(sy$?ykKi6x)Cqodm%nVa6PPUr7_P0}@EAO%%Y9m6Mwaixqu}x`W_H+$mt97EAOa2JfgG^m5{* zAP@7fJ504l8g|4i0%cBpp2kgqJ=YN5^aE~@pI>96?+lr=h0VDSHmTCYB;vUAr^&qeNY)8jW

&;nBjRgaL2yn8}V+9y-iY3;{2OTtIB*7RYIYdsQ(BuWj|?J7X|>C z8D>~LG<49;W^)G}BU*k>_Oo|aJ>S6?nD*Eynv>g>Nds{w8i>hJ+Q220)Hmn87_ZE$ZjuSDX>Gd@K!&fTN=cEX@}9=AFKfuo%ld zRu7D^k>?}+gd;gw{*n=eoP4S9&26noz*pBPZZrl`V05*8v2-hH{gmn+r?ctu(2*Z{ zm0e|YL71P264)L`BF0b4TW{ZX6x>Ddei?wRM7Kq(Oyp~6kFYc|@_n8sc%9+++G<31 zMnro9#t%TzI$?+mBtVcBPkHO>Nf{^dFEJHiTe{V+ zj8j}Qe*H}FjK45rgZ<)~HKt^4y~l(Ix>Teb1|fa|F(~FGBYh-DKj=M^`%_cFuBW|S zQ#lm%wMIpQ3h91t-$F3;b%q0G8ohlCge7VO{eV%Y|9VRl{gpU@w#UiC-~aBJO>BR3OhFdhdlbJ>d zORd<%v_Mr-2C=<#Sb*j%0r<9*Of$q)i)cQ)UJm#~yya+C+cbhw$zJROq0#r=EyI=@ zqxUWx0J~%XPgZ#BnG%*8y#yu$9AuC%TT;k0w zgNQ9xE>-&g!wO1c&tYZ0U`bySQ`eSJQ(!E)8KEqQnTKrAX&Bk6?jI>>o4aAo3A+PQ zwI{Omy$c->E6ndy2W5#JeW~0Fk!qI>(pa14*rpUcOUS8M?`SN-*I`VlztvYT*AM|Z zu&Rzs(K28P6|90Acv^x-?&VTSlbz?#vD9CifMvjU#u259gGzo$o+B`X| zqYvAN3oS`^)BG!RZi*Pyqq}6Jaz_;Iid}0{R5TNMxU)Qd*UB`bA@}NokBO)VsRr@O zj=#Su(4g@Ua$dxxv+wh?=?!08REi}; ziZEYNi8k0Shm6`Ze}qLluMEdn-{u#}pLwZQN?D`DTG5Oh+UrV7x|oTMDp0GK-e12S zR8*)K!oI$rCAgj^LZ&?1sua1|6e=I+F!C&Qa(kZPSIVN%!^*#SeBG6y3D5{Te$LiB z=Ee#rL-FPgDi(l7%O{-`#%n?6#p!fL)0qstlTAf)Z;6g3!@=fx_P|lGpA;mSGukl( zZ$2mY*GsM*)JsNFWT~T>&rXh=;hdv(9fgKyck&sQDW%M~v+{L73v(-nrAg2L-l||{ zoCDu=(GDBYJVjlC8OJFpZgszh$)zJ7#QN&IY*B$QBf(OpBrmX`JBg)Kt%!+~FCx!2 zI#uJnt0aDr&P9I&?K9{FUmA)FgJk2HOnBZNO6b$MBCLrRJ;#Zeah$7Q&PREE=lo!C z&{ltP0fzJFAHZdu;p6J@=uzRYLoA(m@+;aBY|u+aBDTZ=J6&1%LeVza^bPz12(yv$ z1Uw7&(z_8Mojm$V_fX)BQK)KyK~y?;hl5tZ3x|&*U3hc776pb#_QsbC&d>Snj6nDY zYi>%8aQES27IUFApKLTKg0l=ek*0x52#{!SN0ln&F_^s9!qm0Hsa{Rj2<~@F|7?-| zBF-iWsi7Z-ydQ^(hzkVT>}8F?KCY`))H6O{9gAKDfDukU)+gz#&n1_6TvjiRYn+m! zbQD*s#TgVNkglfQpxx~SV(I`e1f57hYh;D8N{*dQq~r0u!zMa(OA4!q6aXR zY1dncs^<>-S_=9bPH{(L>4FpmK^6BYeu4z~48FcmpYKFtJ(Xqfn(~ZY3j+*`H#!HT z$?6(B@@o(r(S?65=px+b44HUSL(nKj3I{ns^VvU0aIwk z3zfTKB^NyqE7g--nR6pOa@@!FihoCx0ue+v79tgD3<}IL z)Tw_;Eu}(?*dZS)b{43hv*O-hzB|Kv`O4nnCjV<(ZB@7Js)3F|MK)x4aqKhe6j}^b zr7bQoGZ%wv$Spr@M#xfIE;PoX>-my}&|ID(w_n5J9%|JMnJ2X*qDas@5iXKi^RViD z-Ju}wb^x2jvN3fmtQaSyUX3kvprr|5&Z|w0wV4>f->iveaP>wEe`tYSb>Y*<8T9jN zNS8Kg#q37!?JJaIF**>P45W~2@<}8ptl0$(Z=BKy=rpVfvc3TC0OfbXy`E>^7&$H> zVnf8%#&EQA4Q370N$Ri#0{e4iRzd`i+=AgxF5qN@ZmwkIfoc-TvBeoWzUYE zM(8BzJ;^mH1RbE{_6e1|oHMtjQ8p3YB!x)Y_j0J6iA9_fU{-Sni%Lq!#?(|r^b#hrOSJI945%U@k)y#LiaL)XhU@T|EPP%AWOS!TR3gIDs9`W zv{7l>wr$(CZKKl8O53)L`tq$l@994M^*P;r@1J{qJ$uKFSTR@ZCt|HJ=9pu+7>c+C zHUqHyKv&dkv0xK2(^2;5f~htPZRUKCe%rkG z3&&c^!U7Bfs(4AE1qq ziSe(N4~&2EC7)7_-^gC>^Z6G)diLLl^KZq3zd3@x;J*JA(v9Dn`#Xl@Kg|693ar_F z$0q!VX8#AV#9wUx|CS;7$6^V#-?!_$Ap3jDqPg6+4`N)7V{^+@t1Umf6i|VsENgY8bfqV zRd30brR73iM975c6(-nq2!`3$c=mAV8Ex$_^zFNfck`?-rSHX`4U;E}&-8)kOq(#d z0cTgKB=lrszEzve9L;HSe~Az>MI&`hK&$PIKl(VSzO3$Ykr$+j+}M0Bb?x10FiR_{ zIw=WFFOrNSvdnw*yxR@0-ml>iu`a5O-pC~B%D~A>KLV$p_-5$JA{;Srwm&uf>aF2< z|8e53q9H3d<91I`z56x!m)DR=EOJvF+2`!0v@d+`x)d_uH?g>RS*VBw)HfQ5iS=*K z1SBKvN9|$`b;-cldCl*;Y}6hq0Y)%l^&B)~OkztyGeTcT4gE2vn2($L7$VQ1Rx9R| zsB1HycyAQf3}8pcATluns2Dom*d3p;MK=K>}OJ8 zQqZ>|*2io=pj9p7I%8%r^ong$l1&o@B(@rh{a-|uubna=I4W`3GKC))sxxXFDXlr# zX?6s4d8T&7Zjz?7&1AuVEN0lo%)WQ5K-i!?Qr5UtLij|HYZ>zdTGCGuSoEQJs|Fjw z)Fwr=AkX%@(^Ca8a?&s5_-^$)1vMez>TX5MWb?iRj0ri}v7h92RB)?qS!Ix2HNtwX;?khvGgR%)qknhw9vRj6Ze;1%#JKeXe?$!Ur{Jj#8rp~XMV zVsuY(kM;G`C95l<7Y0BfR!D=a!up!T{yj{K@)?a>)O! zh3#0b?D%a_sgCwEcI{7Ap@>ipbrk?* z^PAr9?z81T zz5JxO3gxnqY8;VERBsN$t}n z%)o5JFfD*un*qj5j^{XTrjbv#-OIw%v$acx=hv!3S%%`_wt#W^?55Dg5Nx@*49#YdZa%w4=gd!L^) zODRM`Eex^^qs8fJafQ(Zg==ZBH&5e~%7{Eg1%kOU(DO?zg|rzp{aV_Cj3K`0CY9GV zH|RwyD}yN4t&plYVjdoYLk$RKpD^hZG9cN!7f4gW8P;8&ORo=AfST=~4pRWy9VW6a zf(oV@y{3T>r`NZx-CJLbbPAg9++%|!57@u(+)!x?P5idtPRJ%2f1U%Kn*z`9k?BKK zG{B0)!_^n$L?&V7bY#8t6i3f6gq`Ifj=nELF6nFa{-Bw%Tc(;Db;tHwci@=0l?ZdM z#CDG@LJ(&rn<=1a5XHw*GK1fk)qpDmBcZx4(dujDq}E@w8k#NJ38p){S+}7fA#?uO z*OJ95=;GX+Ng~RLklYvaZl?C$@Wp1U9PTzY%Z?gfs~B@X1@~%uThs+_8>ZS(>&y0W zpAiL1-!5LeF$=-$yVV{{epqj_IxAR`F#W`$)q_n^$l6i**Vi1)ccp{x?>n=z6jS-> z5T*f1to3|_L47Ujek_OOPB=hZ$V)XurZX=(x8VrrvjbRl0}R#aZ57dbXseBzesAlO z{c~eNPZQV~085%DH4Y}&jd7d)1PRL>!^j{-1afTwBoKtFP7%(wHc+yXa{FR(HIlP# zfnne0S1$SeLhrH)CsnYxp!2rjtYynUR9PAKNft>mp(zd_HOMpjhG1m~h4<1EK}~VK zVl7gFb%a3|>Qtp_JJ#!8@vbb!D55!M`%%kHHKDs@_PZwXT>#p)BfWH{D16w9L2m0M zfuhmj-7QZoWNEa87Q;D5vksR!7m)X3Ts2wseh;0h-orW^d`kVj=nFAI$+1 zs8gbXrvS~FsTT$KR1!w&)E`iWTZL}3xO-;^gU?ixsWNCYUz1#Beb(N!e6}{1d`5%E zgNcW9?j#OgumdwNNgvEej@cunDC)K>?y37F?=6XW(6AY!kaT9GAyz+b;(bAm3tI8~AT}K6{z`a@fel1V zKMHZZEhzU;2rWYTKZl*8=Dv|yK9YaCvu|Dh-_JK%M zAPwS9zkAZ{3;8cY<>rIshT03(bPNg8brNr^4uHKjL!DR| zN!-|NB^}1F`5GBc{8(_9zRAy3&skt!WGI6Nkx%<{t z>`zCCLDrjfi^8 z%fXmY(bDv?1ef^^3UL;T@D3i%INy+{`yS)vmiBZNsaG7K!6Rb-W@ie%fRd8QrP)nh zC~^day^@P^-@}Y??%A^8$SMuyYRUn1HmG$UVBZrbT3vGInwFEIp)m{%Csp%igexVd z-uG_O>u@6w|Ee-kd<)}!z>Ebc}k=&ymWJ|{7bb*c&I!sY<@@IChZ|qPWo;3 zwE9l+kqQJVMQr_t&GQ05O(WIYJ|L?}_GK2=cy^w3v9VirSJ)NQTll7)K_IaL)gdKR zh7M#6`Hw{pjigpNJ=%B1)w}e~Xs^G%Ly2azI+Gfbq(cYRrQD_Q`+|Ec5Ah{2f9SBzQ>r<^xTT4&eoSJkec%_>_%yGkx zY;jgim%Gg1rfv^93Sn3a*~}QO18;$HZylBXLFx9qm?SBV?~|4_=o<&q@%QCBby!yiLkyFx=jw6o@4u}&?@aUm38slG z=wTKn5qQjX>t>cd1{K@LG*yG<5Qq@0GKMP$pJhag0Pl|l-jr}F6|;NzB9qvGq7`xa z!JQ*nh9RjVU;MzWv!$}~d`#Sy+Y$PuYxcD_S3oIIu)S!MSc7ud1e+!1_yG@FCt&aR zF(C&zs86jI05vfCh-h0C7W06Ta4{j-L58E`rw?SUqy8;U0iPyrGoiuH zT%1Il>+;s6{A!%Q=d(*4S9Q>jBfIm5R-^!>x+Ra()YVH^OO7af8CvvP>LRdlxO$u5 z)B{yd(=T`_3DwBm55q(~NibYFQ|OpnUv4ycdy)zqq4`ymEe zg;X`HNNc|C+OOI_*B?*>zjgYQ$JVYZPfSfs8Iu!lFU(9)P#wM|UQc-gzOwg?`~%+M zH*Wd^OffPtu>SG;AD`Ko{+yTiP2?gOCKT;h=Lcj%Wp>Giacqn%@KGhE#L|`@Urexi5D6`GK7T*02paKle7L3k z=??wY^ZG6+5jWLarBHJn2m6ko7JSYesjH_z{&ur8O&z(sUP&QtWqkrQm#f&kUbL0E(dR$fs-6yO6>2x=l7q+dLrM?bUe$x=Yhy9RRqWzyz_?S_BUFY}X=?-Dx)-5(C7hvWHULbY_WDI1<&gS z?@Z|9wKpsF&E{--PEqwLGd_o0m7DL@>*rl^$Qw*ukLWztX^BD`Wv11@UjB`%7jH`j z$)XbI3_O#o_N<;5cr4gD(0f3i&1=1Lr7wY;BX)GXC+D(G;JpqoC#I|EUY{ekK3NmA z!eTh#{y5~&CGe0p|ADqq+^x@EG7P7DmhGz%H{QWd!K4}DxT0|Ph z$uER_9`UO2u(#Ofg$4lOCr;p}+BHcoH@sJgrzY2hIn7Ntp>p3d2P6DYWM^)s4Bf_n?j@=BST|0H&pTK!WPs_Gt*8uZZf@vV{PbD*Kt+}&O5z+Qs&BO zkcp9u8JoXHOvxJ~j?n?E%T2B)-VjoAz^MzXRr^d_F>u^q8NzO$kkJkZr(8=pi9`@j z?)q6R{kl_he0Bxu0Q5Bu4}}MM$HkDX78t)UHVYVjgGliHfjvSBBy>Mls~^^_8?0v^ zN&48uhoJagL&kiETbWFhyOD0Q%Z1(V<9?asDuouAA_h|w936}(R}9HMS-Z_+$s)iG z-&6Yd#}j+xpx9<17oM2ML1X(eF!0jpgRQL~P?3N1khgAj-!5grUG$_t(Mvw~9g-DB67i%kzzvlT`J;2E8B=_JA_z#cu z5<%|t4EpnMAA#;cAR^Nsj{q>q5_)0HNI$!Q>1G5WTx8uv-bsZp7jxQdx+YGxtft~2 zFOrh_sNp{-rN|3tq=ie;d(Jn^MNoCP`ipX~B?I`48tpbxOwbjHluF}^X?F2>>zqK< z<_rS@>8sO3ovdI~tkj5M`dvTbIx44%Wit4e zv9M_*aUfHsq$}4la#%Q18xx~6;M<~+8QVH}LIAO}3Vz8HguK%OVe6|{MsBEEd%@N& zU4tUJU9R|c6mvNTO@9%6-I$woralX!c-fH|ek><@B%v6JfkA#G9?Vou`zrZ9hR*5b z?f#4rF+Ayj?{M_^N+3APd|gl?xrU#uYE1Qr#R= zN}Dq!9$nQ@zp7nqdGx@X&clWG@}@r--LhlFgHGYFBX1g7)?QlHsA)`(BpUF5P|{^v zOAtelDGx-Q^>E@yJC#lWlHceB2vIWdLLim}S6Gnaf-Pc^iWJ{nbxuG#VI9ii z#{hB(h36HQh|~d>HmzM(9bjw904%m4JLHb(b~b*NrldH!H6p}PC?W_WjS^9Ov9rG* zOlVvJflD0$XlWc_S?k%&1K6z`7dDxlpH6w-$M8E}@T*u^)%XZe!= zJ?35N%Y*w)QFzJGMqc8oj`=!hDd8;)2qG#N1$2$l+?<3rDo^YHy;QX_2fwpZDvFtJLsBI0l04rSTD*dpeWc$I_Etz`DO1c2sq}zpmAjQgLkL)7&Y9$aXU!S7;2=}T zIPsV0B}1(v@dS7@fBQ))PU-)Rc+$UHThosiE{7+02kk)&L(rVfCxp2$WB{#xE-h+L z+0Zt%HKGHoAJ|Zt$fHe)25_dn+LSTc6VKx8OZoNs0Uti<8x{!$cPmoPL(liLUXJ3wn_^p!hM3;Fgg2Gr-gd zE+tX1=N*CR9f8&P<-dr_*b1V_nMfv50cY~67L9;G=%tyN6-d!H)}8oG@!QL47Z#3F zSl#Umg>rS&8)GKfP*U|-WNhx1h8$lu>3(0u!I%j$UmTA44tjYjiH*pv0c-25Ichg}QsL36=3+00=WbY zcTW8zJkpm;Q$cjLLWNDQzNUCxNmQ?kj8*u;IK=F>TqDzXUe#BGRr%x%`nv9*j@oS3 zlDgj7;Vq4g(QXuqURygvw!gggtU-}fKE(OwHpDj)ztjRZ(~OI+danm0)|^XFA~Zc7 z04$88^b+JM>K1h@)EfkYY7;~|HfSNJ8&+v7k3DrSYXDv)k_K9+Pi1d#dTD|@jLLT3 zOuUC8r+`@JP-~pb>g`dcsS+ow*D^@#A6abYbc2bzJg;xo@YiFFKAR?Ih1N+#Yz zyQrV~b&r`@`=!d5iU*G|FSeIpOYP5~JMWWaz)wHiuIC40>mhxLJnsE~n3DTK^Lw3V zES=%{s8Oh8w91*RNS)0la5M+Ui-g||3(w-o?sUtqnD<%IH^V>NX5Wj=(~G{z5eZCS z@+T7U*Afg&gHT}YhQjEdnsqy68@yHm@R9vGo9$;k6r z5A*Mix_2IfnA6EHa~8FB7O7&xd)8y45+4uf zTwDad-F^04+;8VYrwA&HmKj?0>*!iY4A(t6WszVO*d!QK2x?ig4aD!y4O&Cxmd}PSZ7UHfY8pouv4C~}pBw;^%sG}T1TaqAWK*5T^$E*SKhDFwK1&fcm#qO7QMk7BkD zt>pSR?#kDOm&^{2RZ@ha=B&bikm9srR~ku<6?hKmTbag9kOJyjrnrF1X395B&0R zY{6&9>Z98FV|&;ZfnM1-GOe<0wxrICc30v2BWAO=OuFISgN*6DNb^y-@*V9M7=3~NcCELXlZ9OpA%5=A_OE4t zuYDYlt9DPPD{LST{Of%KH=Dzr@>Lh8I3v!XMZu%LKEMf6_R9Vdr2lgSpOKmQce=!1 zApPG+34UYTzlHM5e@o*9ClzYW#a;uzji%KCPbqQV8?! znUl|N|8gb&y(obBPsZwReJ4I?ncsixKTD;ZP*aazZ9?_h)b$-{?CO`iA+i`WDt4`rRMJTLk(K_i3&{$xY5$qsOLL7~IL!|D(^ z8)G;y-~OT6!+-JY7dT@-<=NEzvid%MPC4Qivwk_5*9+f4_h}Llik#$T`t`XBx9F@( z=bQI+B>AfGLs=cDd%9xT2+lI>tC;dVF#1{@-jyG%x9;Pw7B^S#du}jiZn?$vqgv69 zfS_MqV3J{uDjzUo0vMxKHS&bRlIrgu27HDV6HQN?CF3k@Mv0Sm!ssnSC^psNZf%NG z^#eclp!jRkXP7Bbv~V3l$J&(=)yFJI2XR_pR6?^(+HgT=DF*K1O%<4f(V(J>k>siu5@pdM%m(P#kT}kil-Lag|@E(M`jWe7Y~1uL&|Z`lMK_tS!95 z+<1ncVxh=%q@bWdZ1}p(TuuW!%*uS#qiRkaop`NR<9ZlWf*WL}AvV^bjSC+F|w>jE9Z7KR*~gY(jcw?sugGqBa(58c7}>O zWkKij*T-a$NF>_*+)I&A6^usNfgrBJo@OkP0LTv^C~8J^mc*5;PIT!ixYm)$!GNLz zj%YoZHeSCV=}B>?+a+gve?kkLjx>UiWdJP^F9F`IvEmTfqW&vRb2kVdfjCEr4a-hQ zsBB`y4CLF0d>iTm;|Z+>R3WDHAx5e0?}JKvPA2qtf#yZoQtK&Y=1&d;QC{L!B#9G> zn>h*<)9eI~h3PIbzJ--PfAQylZq3(DH-s;VJKB2HsDo%$QW`xRfwYxIYvKal38(}I z^pebiG9lq^W@C3(j+9k^VV4+BTntlQcD&y-~F%@FOFKXpx)@$~LLkg- zrj@WjPd~#pS~qjDkK>*|`-w+HE+zVDqP#iz3%*cZkO{zz76LH?FIFN%=pES+GR<1p2O3iA>!zpsS#WZO{ljB< z_NOK4Lgy>&KG^kj0jFDBeKR2jLs-sOaI%X7!8JrY6&DFn zwbo$L7r!LW-32kNmO;1r)74|%5M*NcpO)S+n;B@JqhpgnuC zyMjv}vu%MrTbIAKRHM$TC#X}I;pk;cq853aQSxh0DVmySZ$U#P`5_?|;@L|}0ob3v z*f%)EGJp_BJc*BGZsvY$uQn;%@cnE=}T{ zhh$io`a0Jg(amqq3CALR)5k;~XgNRpWl9(P?gc<1(}M0q@{)1)=sG8MfDPQy zMf+O~BTD8z~DFw$zSdM{xY6N!NgX-Qhp4}<5{O^d6Y z?biS;tTs&>i(r7L!xQK^BY(39Eip)4Neu?CS*fyU>3ifnr(O@48$h3AY>+}HdZ^#w z!Sbr_D6S54MlJ585OrpbA{I&cnd^8**1IGTm?ISkI=2Xrxv%1qU%!^nEiK`lW(t*z zjig~|(uihT;cMdCCD5u3bK2lm`yJD1M7CMvhyg)QymC@b-%?~+Lnr@aD4d<(o|}yt zYf&4cY)nQ4faip(IMdIm%ZV^Vqo*;bbl)Gt7>N==pNIx-DDr9MdvPIPY5?s0y5U|p z9Y5|Idg~nq?Ol6WBV9ztQHtteodidm-kB7x!nDFxQ)T&TB)Rpxb+;CcVT^8m!r2J= z;G2u)2!s_7lw>VXs$;vh0E*uiS^7dTs(lRyF?qZ)gcG8=7kEYHc(&sc=R`xwQT_n% z6g29rgG>*7Q)hiM^{OKY7g?lYF(eX+oSH810*>USzjg>9*P)(*dED-i5-f(k#kYAT;8u8xG16p2|NNcXre>|GS9~{@_16Z z)TpBPM$0mhIx~{5pB5}SaIfzGk_@qDl6QwxF@pff&;{SrqIZGB0)E)GM3ct^Tt3Lo z3KC6wtK)^zWg5h=3eqL=(6~~lsVFU2X3;2$Lp%B-=<#F!NU+H7&sQ6QC(<_YGPalK zm{D2bz{V;)n$?9;1X0;c6K55SbkN&Q31N9$k4iX!V=O4Jtn>P!AxrPHLOX^-X`X&8 z=MVt1fT>6vIckbIqou_L4*2*c`g8d^NAkC-bZhffB>sI zLi1~uY0q}K&(V(FH4E6#Oa~)cllgppA%YZ=pfYGL9GQ63g%3;*K;q}*ncd@p#~?YS z3AUIlRtuRcrs>-#>T)x!vtxQ~7rY!-9z%up>A)@NNXO9}bh3XN;EOCro_z;c`;ko_cva zLP7agGmGvX(cy>L5C#C(V!~~7dm1gNrKhQ14H(e5al9STs-)4h92Ib6?(Dq{I{nIe zqJZ0n*O+XOI8b_+vMu)KVr6rzCN`X8p%N1=`pvh*@W#^pE2r9h_WV<=qZzPZR1Yj; zplZRCa#c-Do4gms;0O{LlVry}SNJG7FfJk#%_%_)lwrL6iYieep~Dm6U!eW9g5$X2 zdBDSW9uT_~&TDXsEoxFfv-y6n$q&|-E;PgfcD3VKyaMUhSeQQt&&tx7%rYoo z2coF-W%l$o%=*qAD^&*+t@0h`@b2VohvdGd>>;m|*GDW@SrhAS1waggKHto>1Dc02yXc*h-hJuS zviuGe-i*|FWaapUyyESqJByqoFI5doHgGouk>7abocZAep%*m|=v1Z0nu6n8Z=C+c zct)YI@{#UHL3NpsPh&e|phoPgW5?xp)3_Z2aIXZEp;>BlCK2Zg8v83UdS=Non9+&p zL@6Vk*}7F1v*{6|D=aS}I%4)^D1#P#GYRNlQFtwx^7|Ji3|uB8Q_RTpQ9BS$#GC_G z7FuY-35wTecJVKb92Y;ALCRD5tO!=g^XiF55(R&~?7u>bQ$P@Q z=PYzSdzFkWV1d@Li)&`~L>oKX979WFLn48^@3#8}y5mCsXcF+Ts|dOADv*cy9^vKp zo*o$NHl-B;H40j!m8$ZHe=o6bcUrasmD<)6TvT_YuRmR6N@mCwr6Uk`f@%wXd#AgK zgEcc@oE75{i2iIM_;3VVf8+c8p)I$eG$NXA*Z*O|H_7POb$BScotx^*K#Fie495PJ z^Dv%@;B`#a#F1?PsGwpH*R2JD-CGmq1;mvNBqWzN8PS(Oz8U;}Iavk3q}OUc=uU!rVjF+8Yr}T}`PoN#t-XJM(-oZ8llq|erK*J7Cct!NALH-1 z#B|REIc;x$%Xd=fGwRT)p?o*|>PVn91De6tb5wK11EF~1T`zxFEmn@W`^)UMArSE9 zjmt8ySHTVl>b_NO73CbetlD0*<@A)E_N;JE83h@Vj*RS*Z$cShIG3`AA)P5kS16JT zifx!h8$So3Ku8w#!cUa&s8e&^z(5xB5&-!ZY}b7q?>1b|P%GaWbcNflpP95>G#M$BO>n5*of9mv z{;?1`FfY99cRbI*C~{9#wyJImM)cY}1d!~*FAbFGFZk4#?e?9lSW4|n4ML) z0J1rToK~kK%xF3+*vOqE=OdXo9m6wNXCGZ9cJ^-eciPKkOcUtRDzOU`iC#g-1bH;< zKcFeoW_cQ&C$I*yV5acKMH^~A=)u#{MbvY3rnZ%I zgVzVI42Ph+iIBGzwjV5#w9&aCBSHP0BKtMQH6U|$!UxJfW`;ouCbRlX?2dTZoerBr zf8y@)e{qyYnhAj^vFT zJrG*Q3BKiAENygD9ZJn;Td`-33oav*PX9Qp?IttUJoTLPWIxgadYa5tDZ#H$j=7aP z8c@(94;ou+o1pNvB=+q3mLh_Qq@lIqAWYuN2kUBbn;PAcfk8nHbu3yew)fsQ_M^Tc|c`l{PQ%_H|LRe3ThlXcl!TZ2Rgkx)Zr1 zK-FiOb8haOc%rkCB3>ZF$%nbUuh!Kip6P&IyzBrOPkuw#S+(I3tH%qqjdj`I75^%y zJzpG2oEQ_xx^lQ`5DUdzIAGyB=V9y+fPiZ-i@=#wf%~l~eev*NK-ZvTz*XYd8DCop zMu$b}G^0Fr80h%|@K}aHwxyQQz&|hMy>F{MHF_{x9zr`0IT%_w*yFMPzI6SUYuKl8&|mrA zKjmpGf3W1AboxJKT~#ctS6L7~F0^fNp&IxI)jUw=^>7y|U|AZ}+getGi^vSbY+J;V z2$xlVYIo-ojU^b6n$)5X`BrkCM8Ugu1dD7)lRZ6MpUEIFgxro;mgo1dU4znznRUX4 zkCZPPya)ps(zS1-LS-YN1?ZLl!{S2n8OL8Cy@-*~43p5(JO6L@Zpxx?HKN zDJg4Q0g(~k?IDkQrFCRUZRj61ik!9`b0eggtiHb@(viE>uzi(^x{U(e1bSg`m|f@e#P8 zEb=^oNJ@En(x-%;Xf|M3G)H-#Tcf@w-lx(6K?x1BbE*tfS3uGpVE#m?tz`zgLPgV? zxdiTYo0WBzvyE7Uky6TCaa+&D@~UDEZ|7-77w7AP#VmsJ=B!pdX8u{QVuGrh;D+9T zg^DNtr3G2`=(-AyC110ntJUZ#pEfNVAy)oK^JI9o{3Py@X6)Dagh){`;bD4$6ElH z*!lzdP2N41jWP2VjRzai46E9740KpaAiZzcZ826N20yl+dX-+#ETZZ~a+Xy}NYEe# z?32QObx&wu|KO>ydVGmKtk?jI4Ih$3Wk51n%K)`@rWhB$x~TSzG3{!j;r2y2LY|9z zrOnqc;5jH0p4n?zT{w8gc5$w$ufQF0ia;`LhYi4RY#&y}DPmK@JxSD;UeQW~S=Zte zcx7seZK9mF|*(KtJn5B(u%DYEi)r5L;kB*<2`h4?$)YUVvdVAB2sL#cDS zdnFI0EmSErJk`VjWnz-uj^IgtvH((K^zu4qdO+4NN)1 z=o5~Ha>Vuc__YWOOyOk*Ckxh3%12^`tQ%Vjx4V-g_q$Q%_2bI-?@s4IcPC67cVA0@ zJIu6=Cr(9r$_1ESU6>)v6nsym2)_0_#2lz7_!`2?CKAWXS*dCcZrQ7y8KI5F2D3*o>UZ7_pqS>9+&gPp)$crO z7A95}@Sep3Iu(=01g+A4jiS20LRA!G&aCO4%Ka(VqR>Yl#f>5B8B5+>1Y*~jXb8h0 z;Ba4=RmnQ0TT<#S6w{4=6r(&|vR2+zDlIJUN7}%a-nYwyBLgiBvZ3N_xR4LazmyF_ z(5>dj9I0B5k;@PcmZJ-MAj1p-PZ8Rp7hqKq>7n}EWJ=)ec?cC-f(oT4G|SMk{!cnI z5!Kpz-*eJ*Z|_OCn`j-kn3(766xAlQRBOqk2nLl9-B5JWpKt77ulA~e{@h;aW5X2Q z{DwEJ6Nlsd4^2Sk2@T`0IL~K{H%M`a2Y0yBG_!@06$t{3s;IMC2Y_WU8u;cjbP!FXKQ5Ce2I7lDn;2)-)E(ng)0VaX$7O}8Y7W89e2O2yD&p&z zvXe`d3xlQN8qCTHq?Uti+CwD+@8;z*R3t@GCA z(dOBlkfJ9afMSCz5fxJn6H;l<@2k1ds-&WBti0NQ36{Neqwa|y=LJ{~G~?q5ThM_> z%}jVLg=m_ngD*cCi4vAqA*jHDm4Er30j{?l_~LbKIGTO)22KO<;Qa>&^6wMskE55K zh3T)u_AGzxss2CBl>GHT{(b!Z*8}-)8?yg-ApiDM{1*;nwRQWoCPeQ=ZQpAbl7|R5 z0sudvwQK)$4yl!bD05=Z;eFq(e4+)Bn{jyJ3GGcy01&_%7jdp#rI`qa_7=^z8kIBf z;b`;-!K?Nk-laPR%9r7(0uZl99s$7c z)sP>+AX`N!hOVrIH#;o(wNmDy=k+mHVSU`;5=gimRc<5c)d*W=J|G`ASO;T`C8Y*n>ccriuDWC}^&Yw|DPg%jW3h93M1jBX+i|}Mza2*)^5xPRD`Tl5tB%dtmo~-TB$uj(f%h`Z znt)lD-I(tZBj>kc2t6<|UBTa{=bm#ZbS7?zqiv0MQlBtudMc>)Ql1#m*O}){)oV;* zfm{Uh1$Eb=lg)wd-^a=y4L$F9E-x0Q$jL@{A;$_dD01=9AXabRHDAQiW)wt>$_d%X z2C4_Fjv5DiPQq4m=d?h^gpD41_Y0%ZF~#a&^0>0xZUmfhX4_RYNf)6H)Wzg$Q2-$DalccX&8PEe)aMI=DNAE~5@U~d353BQCj8DwH+}~8!C}K6amr`G zYb)Ui#U!%~JZyu@P!A7axce-A=gpY0(T$K&?)NdoGMk8^KUM%83m5ezV~7m(fJzbf z#7Kq()fXt7>;0kJ8RNFff`)_>NJ1?`WKgf{JM`g*2J{|ZF=#zmiH=~zkDcuknk1cW zn5*m3j@<;0#kqqB^gZ{GiL5Lzvb^NL49orumDRQ zTllbJaIADBDIc>dQh!Ev2@+5=yw{D)k|5i=jN+8u_}2cJ($UosvIh|juop7 zeWeUuhT|E!&6aIaaq|H(7WpNeS8H|WDLy0ki0>;CDG6c0Dy5DJXkTG~-A6rQ`yix! z_F}6UwGIQAdKp&LM?38k*-7qXQKSqvAGG&I76p7k78S9YcW)*#)I~nZ1Fr~Y$@5F8 zo{ro&hWn>J(H?^3jQ;ADo(1)ny9kTrOR#eL-Jv4bBitT;)8Sfo?wQ8{YryleU$vO$ zZ85R}Sa29!;H^$A0WLUU)IT1C8UZjT--jGGnD)bdJWTA{A-hN--MipaE%M1ux=65@1pQ**Cp;&4CSN<-1yLu=YpybaNq{yOinn2_Rm8u1K4Q6FZh;D z{rXgy=O3c=^nysdz1uxI4l|lg#{O(N^W=ECp!)vJqL2-lNm>q~$PJY~ zJO;T&%>7y6Dg^VV1lv>o!LsyydQF5^w#;$q_Q1rlMSb@<$`l$zM158&g8nP}AOh6g zek~-1kTccKYv7_z3pQxO4m%9f_?oc#%~oqCfS6#3I?IEvdLS+>=9Al)Wrh2N5Vsav zA~BdzHAP^T1nWCduIb1fS^kkGK{z1-_0R%j#NT*h%rz)Eo$7?0xB#fhw@b#;)U)~# z26xHCdoLDt!Oy9u*jltL+?Hdmhz~L=S&tfhvR_ zmF`0`Q)RCa&>)B;2cj#&@4shS>3;KfRdQF#;uq*C9Iaz&TsLBz<6d5ipAa4*iD<4m zeOs?A3dvaklQ$4ckm@YDa+`1_**PhOtR6(V9jdJWIoQ14-)%L9!h#d3xSX}H@N!)3 zAs=-4zU8T??$FtKf7UUg!R>x2Wn{%+Osd6ubqMsjf7S2)w$%@e7GnIxf#D!y>X_Hc z>!OqIa*Z@X56Hi3_ih`VAip%$4J6n*>R@hL=Bb4MBw2^gphV`!0l7QCR~{c^BU&6~ zHVEI$D2VJ$qjEr?GQ^USD>pX1Q^1{*CFj|B6ohaGnynOG-5|{_i2FN`Rs36#@*Ww9 zXR18evde`hjjmT2=h@|MHDC`7itqH1vVgnLpf7&CAM;Qvxje`&dP#CoGWPM~Rr}0J zTt9)*NEt66b9Y;wcD=_aiD=(_8P9=%F?WyyB(nf=EjQN{PpJdso)Es;)r(6HzhYRR zo*dz;Y~@yb3m7Zk&^L4p(JUf#tZaoxOT8SWP$9n4G?GW>!GK=k6+E!gF<*DMyn)le`-aBc z0+GT&=6H@Q?k7V$aSsnWs{o^E2*a*1LMP?=Mki$$Q*zD2*l21d{c3m1v=8fMN&yyr zIy6LSN)dJKTa)AlVrmw3ppX_;Zz}`=w~(xMB46V=isM&AFgmWqRmX%1z?oUZ(>?k$7k+OnikF*7r>WHF;9i1_o)-gmANv%a!bTdGKVNp z^*0#EV<}uW`^Te695fSF6hGv(XTDsQTO_|pR!7UKR6~f%WhH8p@&yQk)Vno9*pu+q zAGr#P;@)WLual@MOok;mg!@#i#XdKsBY?7QxN#jq-e40zZjZ}7_8(*71V(QXS^9*U~#bn-0h0sUzh*y_r645`d%eMfcw(VzIn zCcxj!S zaWP)>M-bGzD>zJ=<@}%oDFK*3Ff?>-5bmsqENl1F9%9XcgWWQEN`lBtq6#kMvn{T6 zQF!h)!i(G?B8mtTeSs-)U;iBet7=;HY{BQ7SRPNBAw8@lw;vjHauBEX7PpTU^78hv%~A%$P^LXZ2%l^S-03slEqcXIS+635>E0;HSgnLk53|By#A(KGy^31;EG1Wo6`` z{fLVDAJ$tR`qV#~n*Z(-|E@0mBc6?wf%TW0_y7FFe>8yqX^sER%!~PBmY9K_oq(13 zW0shKfaPPvn2nX0fR%;y*Mk3wWS8T25r3u}X8S|x{a^d_@7D71w?BgCSeY1T=|5cJ z**@~;7(dppAf5!WN z-^71+nhd{;=6`9w*=gB1SpGJ&{&8n9euN3Id?-c!(yjHowm-eK{`sr;zbaZ+&&t8x z+|lCS6#mDf>o48LjO-t3_YZ%(e^k!&;pO-H_y4H!-;I<%JMModa(;cm|5ufpSen?| z>RK4u{hQMN1mo#j{1<3|hZKRfha75?d=|MRo$9~~$5Uk{nT zKmqk(581AnhvITo#c&96e2$15^(9GfYW?wYHxm{H(DiUS zs@q>&y%<(D6{ZE~)+(Nj;hw%(Q7xVG#p6zHCz@hRG*yI>6bWA>LS>_^!}-ZuSPZMp zLp5OEMqs+S{G_-vJ9*Xtalq!Q$i?$v!->jSrE9QOXm-Rpt}rV;ub@n}_9Oe6ffHFa z3E>c1hsedd&E3oEoJ?h7Dq?|hNrICQmBw3vCw;Ou88w`7lY~MsT1}eHX#D~mPfB)< zD%_<6&f}ox^ffItMTTXzzsL&abu@~J@`4HOI4HGYMS?$USYSK44*>f{s7y`hEJygz zjgD*YeoH9X3X1}iel>G=2o;Wx8880694%+yVSR_yBmK?cQh;2bQ-CjbkXW*jgHj(C z3G++uv+=h6ZRZMRqAfyO;Nn_c<1^W=VRB4qzBR_NV3>A3C`Mvv8CF)q^{r4_oJv#_ zQGmXpk{CO*yrnQ$bh$$GNE8FC$T~qAVu-Z4c~m6wg>3Ms_1;{__euR9#`p`6Zd~)fw&^S0ZOfNo#?06?IH#tvL_x4TJO1@`brOj( z7AX-6sWY{-fIBZ})Y;+~h-l%|)fD4O(kCc4AvpvcfYi9`Ma)W4&XyqV;PoU0(1T57 z+486NNkVPZgbeH4nJWZ%v&CwdI1DTQ_IKGJEfblc#z59*UHlaFgF|00tC|v zqXQmbg~s`G0`GY0C5hnc&&{0qmA_2}1O9N@Va*J)=@dDf7Yo_ai%Zbjas;?L|6HR< zg13z-AZ+1SRXwr-XSEEBL9`2$|&r@s=lKAbCt{IQR7!@Cj z*^5>y$sQc=-aUCB50~e3dm>-$Xp4D(#ynB~BU;4&8Cuf3Mep;Wzru;)nLWxT0)^1U zW_{}7!F+}=4cnWvE2H!_z)dcmrKOB33?}@rki=OR>CU5ltXxiD{$3Ujg;nuuY_3*% zjj(4LXc?xQk-$TYH?m(LQ@DvGu|g)8p2cysW*5)7lX2cM1}*j4O`3U^a8$R$WnUXk?|1ll|1H7(N4Pk03rb`y8RJ zoV654{2DLV=+>?N{3ZpupVyyXHH{$}N#URof_Gi)B$46$WIzA(Ca)X3F01pes;mFh z3(!Hqcy*(-D1&V`J53=SW6@>j6Ald5(ub)#TcR1Wk(ma}C+eV}-wP!yLs*{9 zygk$_*0tez^HnaC$_JGTE+44FKQ(Yh(q?-;^;?mgyc}W65V8p;kElBP`(d)Mn((ja9OjO=uGMBt5}u!oO4JggLfk%J^NP$I_|?KaDW4So)1 zG}clhk0rc@lTpYaJ6eWyWJr6<+v9y5Be$W$g=%tBgI8jI%8XT~+@M2&-8YMgCDt%t zt-Q!*!V1qC>EH;3++15=QD`%sdh3Cl-qO~}6~TZm9I{yh4N*`h)wC4KQPo1imBBY_x>~UCt;Z>(RAXSLcuE zf~kTs2!3fe@wB+tQ^U7&XM1*Q-Bs%ivObKynDyz$&#v-OgJwP^wzv6_Hwgxo2d?7tc1i7JUX1 zIscZ6QbBoMhpj6oPbhEDnIqG}d+i%TC45-TYKq^y@k}4ib&~xmFR z)nR8XhdRce6&YAS_ssmH^_lIF1Y|pTRplLJ+nBxZ5M@NwY%@ZS_X5a9Fe#cDoYOda zBsp3DP3VjX5c5f$`Q3guM>2HJFS>8#xv=g4gunV@E}mVXI$^24qHp(-8iy!hmbx6`uQ;aoK zVlepxfNM4auglaJUuDr*XiDWpfrp5e z@zb?Zi$6c68RtnLMJvW5@K1R4V&T}e ziYA**D+R7w&Qm53kUCA*Qjit5k_t|A}choShtz? zjk5nzO5tXjw&sU4a<#{r*s{v)wv_?5%2ppIk_+nKH_|=6Hy;cw)nFn(Ey*3~epo}~ zZymdpD^v@c;HO|El>zZ8taFyx+Ttfe=6qF2{9G#d2udWfPLshi`URZ-%x$F(f#b@m zjco8MD-IO&u#ne8(+qnb`C0Kfsq@g_xep8R<`zy?X=FVBnisrB8{Vs?a{k&X9@oCZ zDql~%ngLxCkLq>UhP%pZ{2*;%d4H-O9{m`1?OFrvvUNX^>opve#`@&xnfdn5VU4~C zLWL11e7^;Z%aez(;PP$_{0E?nLYa+n_I7tYq?ML7a?xq*A?l(+Ltnesuj~)ger@Z# zKcvVVFf(;6N?Ce2Z7y9y`x}72TaJHM-l9mxRAo48sGxk7&I$iCZ<_V6z*1W*s;TjG zgSE07>(x0Rf=O8q91TTHlE3$&z5CfaS%)S8$Zds>Nvu$$Fo~1;O13m)d%^?Y0OUve zpLBMAL+xK$7AAHM`d{z=`kCXSJNLI9=EsN->o0`>3;-A7P|9{;c{vB}np-=r?^nV*2`W?;iFA^E{KWP&FS>)#L=J>xfj2S<| z8reT~?SJ$gf9EFr+V{WM-~DJj(K3JJcYMS>GJe=<{_5{C|7x;+G*>@<{Yy=_-&Oos zKjy<=;*ak2fAwR2H?IDY0w`kTZZmo?PO zK75K=hxRHuvINC)zqzDHB%_6}rW11Dz#Z&}$m5Sw5M4G{zl+9Y?%kjI9LUAeOR|fD zSU!T3O}yDSI9|yUBxjba*iew8kjqoX4Z%>BDvCphp)@aNYvZ*Kjl7cIR+rZw+Nzxx zHt|E>;w!9}^{e?&^xaNX93E#F(Up(8dk?7xN!zov>|&0u-tvv1Aal!05Q%4+6=DEd zh(>!FGM?2wqE|mQk6PX2X(<`!eJXa$3~V(lqDL!(`Kr8U(Z0U0Z&NVeCn25>4aO*! z$Rxcgz%>-omtQ>=gTLO|>gsWKe2nu6jqSNrmFIEmiLf8tQSG3mU(0^`%Gs*4&3#se zfytyB@qj%JhD@h*;S~`Hs=$P5>WiJ(bv_iwh^b3Vf~6Xu9q3FaQI93In-S4C3o>&q zIgr3{&pOVTiQP(K880tJyk&~>M$*ce+ago87V6^|V>B-0^mG1k17)&Rf&Ox`vtE{_ zmZu+QO+ddtZ!czw;ksP>-CK>;Q5hw+UHH9nLZ+VI`L%7+cOui-yTV92Ogc6lOSz5) z)8+;msY+2oEexpxWG?V#qC(VQet7PuJh9bn7Y)x1<&WF3^(#S9}ym65g2 zno4Z@vw~}S7K6vvik$!wzTarz1=ePrl(0j-ywwz&7dMxl;wQSE`^Jh&ra2&=f6+>i zY6mkhK&S6#U5f~79|~y&l&L9bND;V~PAe%CyvKfHuwo4fo1zx&wrFo&TzLY*X<4io zEgCCG)e(|Ukg73$K;M*gBWQTWr?;29=S8S&bpw*#1Ro$>;?8gAw=79YO`NinT;$)t zNQkhnN@ATeJksls0B~~njVK%K1MEyFAEBXn=I6QHm6w`wbk;*)UP$quwJs4x68;8cncVrjR~!@09jz`_ zTi}atVrIHO-KO)H0uVC8$w};wSZLOg`jZrL2u@UQQiR)pjT82t)mAUKZZP?;H;$Cn z`ijg%o6MGheB2kmcv;GU(OX^T!>vF-R%G>y0Pn5&Vmqp?I*CGLW2aLgUTON9i$^_k0#y-%b4D3%$OKv z8ia`z>(sL$R>4$;R3!HY@SX!(6aE~INR!Fsm1f>T*I?0u)?eg~147a564JXoX{o*X0rz9elo@ere+syz zdOqI*ghV*g0HG6lBqcSU1*2eZK4q9>qHW-J%2^}mB+7ks_MBH)JHOxF%zU@f?r^*N zfuwJV5kNXQ%Wnp+@BVTnVqeD)8FKrE9ILGPj(&D*s(Df-gdk^}qMnjqrZ@-Q3z(TB z4GlTY7wFRpYaq!M$qn<(e|g{213#xsbHg$PSRl136(Jc!z`V{ck)hcORqd964$5AC zlBxl&rY!%cCrFMK$!{10wwHS)aqpsV3FG$ZY;SIc&1%vD?koS5XQFSZV#-`55pOab zq+olmxWKg3(GM~;_En;4w9+%ELS!j-mA)6P+|*!6z#;Ji2|Ze_+F3vg3P9g@_7Y&U zG}!Qijya(jqMw24XZp<>3@VrB%h71e=Y3N06jn` zFIC%N`fzDzOqNG7OzjFg^Gda&6voq3c<$a0(I8qxSfu4gn_td8#r4UnSA8wpLIuli0bywg?O>U>ALb~XcCqkx(bQaky32VPc+rv_#~LkBzS zFmKUc&${D|!WDzyAH&*5+^`PS>L~4Z;6-?>42Y_^@Q<5bb=*8y-#(xs(3p#I<`?z;O{ zS9-iWdjN4PS)ge#N?x<-^NH&F#BBNa*a1XsK#sPD#}Ox=>WeV`=mZM4n6)rt9>haH zu+bUd%FrpyEBkoKxpxp1lonFnTokU665t33t1fSe^pTFLy<*_9x2rhQXhg0&oF|>d zvxg8bdk}XAL5y@PN319%z_s!x)tM_rYxykcUbkWhQH->)4uky{DhUT{G)hNyyEjN- zQ#*n@JCG44s6qxW$?})i;E;Ue$b8ZvqnIwk@AW^ocU{s=xG|@UJ7s75*CJqm3=SzLB59jK=vw~$``16cAm)GBXudzX}@3WT$ zeR)?Pw9?YTlOmGWJqGKJGUKIBZowfK>SRO<4>;qR9}FoM%ZcAoGtZmQXQ=WF{EFFf zQxODM({_$~v<$FKzb76sk#`02eGUmOY^ZJ61t315<~w@>M|m!ppx81W156~%4#Ma2 z`+=MbdSFSQRO+ zHUMEF`A)K1-QWQZAkG#2^Qp+zV!rC6cx5C!lhIvIl!Jn7HQsF~tsPch4a1p#&$3RL zs8u_wOLKfNC!=xsD$~|BbP#g&{hpzw@9_V5!|l~^2gFsu|0r%SA|3x z4@D0Xv0nX3Om@&gSc9xaPY})HdAb~%O3HJ5S-^dsQ{tA z%-H~dc$J%dSI_e7^N}P+)^DzxcR7pwGJK~uMM?^WqEN&TM$%v&qyfa-ZfbVXV35;nx1FOrVU~j zt+-@XDV3ijgW%-GcQun4A_+h4x(ys~pv`3V2vu>TSpYjrU_9LHwBPpa#Uj z?o*}cw~G#mm7@4fBxKz3IGI5~6}M2jF!eb-4I%yAZaxikG>n1d2R%zl1}`1ddkY1_ z(LF@#M~B5Ucf11<#e%i{8Ls>Xna@Pe`iJ!d`#)&+4_x{8w75U4CfNUA!T)dI#oq#+ zUrYUCq~bSx`d7U8AJXj~W_I+9>;x~&mnwT+O4kC zqN9U%Yb42n3B>MNxZ(Me#~B;RA-7uQEYPrF@4Pi zny8{TZKH)}(+J#Zv=S2@N-;bfHe5hbi&=ozT!9meUa**fU#kMzC~V}k?=~q7@PE9W zv@%$Tt26hnCSR!Lt;LPU`i?rN(qgJ!C#800_&LuZb%xns@-+8aEqu?`VBN+)v_H1h zXZY+qu!_k-oNK$ArxF9l*YYxQa1_Goi9b3*ELtwyW4CXfDPW*n9U~Klv)%!Fx?ebL z!rUdJc?)v|UJ2LMs)R5TKf+7k`<^?6S;h>=%{{8JEO;?&dfAH1OFU!Z(fCaSU;FBC z`}gweuW$y&K2FS?omH8EitG%m_hlm@y<>&Y-*g|)xj1-3S?$tO8u-F&Uq$hUEw~2L z!*@%bl}~cg!{%mZCeOvGH}M>=2~u#mN0Ke}8dr)}@E#1vKkdK)&+jlbp1l=y>!d{4 z)k+z-sdt&%Ho4+WsrD^2Hd$iqsJDe&#*Q|V2lio9;U4q}$Vxd;f_&OmTq)u`-OF?% z^@)e#jBjDx92=zkOs3@$saeFf$-9{_rpaO-=g>cEeIww$I868rZ zF?FTh`)Sg^;WW?f#cuugS*0Ut2!Jz}tV-=&}kiyemM};c5)yoR( z3(v*a;p~&r5^m*gcGo|)L35m-V7d^G?b2A^K9em;`7@k&{49T8n?81XID=qTNRF|A1bf)PcfJn(8 z@Lp$3P9G7Sn93%4tHykT{v1cfOs97UgiHmw-5G{R0(| zv3gKp=3tIq_>+8O7#W?vaTM{1pi@1OGwG{l{vK1Z`DqO&CeA#TQ<#f03n`pb2d{%a z{Wv9Z;Euf%I9rNitGmFttODn92(DC1C|5odHj8p2Y}nPcMb%}}ph~u!2PI<>J;C52_a+R+2{c51orj>J{cnw!%Y-1H$#Gs zthowp$+D_(^rtN&u9)(rY@kp{)P#8V)4QYxO`U$KIz*%35-e#IkczPDH%aX9%#T9OTUa}_&InAWZ0XWHx*`+NUpaW$g3PN0( zZw3rDtcnYZbtj04^6k}nXO)5f8Wy;(mLAEc>3Z`C#IgCzCH5x(s2*$T_UVvPW`L*y z*PBMl;?J+I>}T@j2|3I?!%%lW?P{xgxC;<9WR1~3dr8o}WxuDig>JaEt)7j%56jXp z_)mIph+w7(=$7xhKb9Nr)}XE3zQW1MBjKflTGzFJj!V5Twj5QQ$)@uf6GmAl+intm z3uG8Lewm2N=+FI_!XIF!oQo=q3W&^!4uN5RJ}!cO{+ZarAhNjyt9f36KimXVEm!Hl zdeq)F0C>z;*5O;ZQ^gnlfHg8sF6R@7fePTvFrr-Qh&Blkj-{>No2wcHtAd8L+%gQc z3TBV08_B(M?=6&ogDI}lp!0lM=Vq4yMkZJS~nIBeaXO}p2am^l7AT@Jv znSrdW{kV^T=;9ea3csloAG2*@iS85@$M^`e?GH~}!Ma0$z;f5liq+7M8z&RCZwr)C zxX(Ay^eshop$OHJolIC=%{*1ZA(KFIN;UOXD^HKsNJu7LtNQDqE*cl@H?1WANEECZ zCixj}j_Sjv9lw9oG;cN7L;*E01xpWQ8ibDZ*r`*ry!sS*#-XdIXqtr)3R; z)BdFnS_yCFxmGwWsO z#JG+8M4r?;j{1$} z2Q(*(QpJ9(ELMdLklDtoX!aa&V|HOSQ8CLs(x4ZnUR}c*F_Pvu;h{Ux{tULS^h_#> zuX<~(hO|aAx^${+XMLH*sx~$ZL^DE zAu;$g=2C!U2wE{EaF@Lm;p%6XU!bglk(2MIoQlu;_5?=3OGNvaO&L=A+5x?anxSZq zLD-0-ePOe7g_nMu&F+5KQBABRY(%5w#-(>TQBNGrPCh(2$=5=AS{2KP1smxnVBFI4Tpo*t?$Sf7s_ZxkJ| zIn3D_lxmLVDzYpdUL!&*D7Is5>!KwWvm|miBP_LWuoa7T<-LxI)rPME4P_w*yCJv`lp< zp?w9UNgy7tf}Gs>A&PGQatr z~UNK=UkW9ur64fpAVPNI%i9DS;!#;sv1BOmxtZf;N+$s!DP9Q-_ zPT-BCBfR+?0C9i0lpkakFK8aRg!2_|vsBnH@W9?{O+o)*1Dy;4Reb=Y!z)VK+ml(M zsF;t8LdzpSN{|*_W@o7*Mg}{UZ$;|8!hHre1%H9B5tSoWYQoLtB$+#A^9L#Ypa#J> zra_Pe$LpDOIItGw1Y^}td-f3^p|eSD32Q^inBt6g0OTAaqd&ozzoE--?vjz7@xQps zkKFM8;x5_$J15EU2YdH_0%QIz=D%^0?0+L<{}^K7_y}nKgS7h#GJcj10+IfM0%T@o zqvarA`EXU|`0xT?{+P~S`)d&M|2ZDQ@z3<(Us%aUu=@vd`ODy*g@BQsgO>H<#C{pv z|21d%|M!^6$8f@bv?Gka4DLT*_up2+^1;-8IAZ<>3;BOea(rO-KNj*2KJ|C9z+cd} zkA3}{)8vD87w}UgKuhgU$}3M7>y+FvP1}U@FfFfU_}g-GYE3aSu@)BF#`jl$6w;_C z)t08sWsJe#n$)d`54TAZ{BeljO)CptJ)tQwJ{N0dZ;Bp75k(z|h{?631r?(MD-a?S z%{91EZlc6~@gfrG$Zqi=ir_*46^^H)zLrvU?rb)tq?{3{yp%DXuQ~YB#qEZvae)Yu zT5qA{Z_f80%#DlcsyK7@%A9`sW-rbAD@fvIfvylT4f-KzHWbs(0IgV;&j<|^+_upB zFR(#mE4ivj2qF+EqFP3{8zBCHHi94&<=64O}khvjcSClvBvb#$f_IC_*t|xmx2}@6ehhl&WmP6qn=O zW4@eU)`-DIH%M1iEOg`;|NCA^%)nR|IW6>I?b=0IOKE&@ zOTZS`X*xH4mmWPmXgp=F74sMbgB^9KS`U)r8`|wxH3J5~?`&u3%O&e!sS>plue;o3 zH}2N6E!D?h@Bv!m797^$c{`Rro6GMAC}jNzHG2phCWM;B%=Ec)hi`GX+cpfa*S-x@ zpQ})Vr-qDwMF?^-YyMW8uOCl0fO&~pl}Vp8NNLny{lpA}r(YMS1HQs*Q|Ya%2kRB+ z=-wpLwLHB_LmjGBf7An5K5rcbbH{j=KKw2G*PmffPqw<@9WiQA(o7K9et4ovX8Bw@Cke0Y8rvV=89SIbi3I$MySm8Dk#Rpvn ziGxr~N*wtOg4N(64p{u6EgE;hq2h78b?l}qDd~IlbfbO@fG2T{fE7W`3hueRU+LQS z@;;meXK)er#*rWzA>nGRygJw`5L!7kW`k$rh@?c>a{kd`T$DAiO%AIGtn~9VKH{~x zQGzsEq?U;OWsG%jL3JH!G4q(HhcY-G*NEUD+CI|LW<#=%OB3(@8z&Q<( zEQGKDOP*L!pvu`#ylZEZ3(f5!^WxP&w7TVh#ST>=U-eGeE76C z+rLE=5W|~0N7hya*!?55H#e15;BH4~H8Y%@VTuP$Vdy|g?fm#ArIbAi$ty!#Zxhj$ zilB2+yV489aDETEr}o-uFeun&6r)k)Qc@u=b$ExsueZBWJW5i{rn0?GJww*$yO1L^ z!_VCAFL?CN5dj|o4!stGHYv(+cV-r`SU*a73TO?u^CS*xxHF5|rWAm;X^WzxsGB;y zy5fNQ9)zMKbn;snF|Xd*%$FxOl(;l)cM}qNjN$K|+95?(tlw;##E2+<5RxDjP8EE% z>4CcEurkWSfW@V6`W&F2L*8$&JyRUs6m?>QgM_0ct3Id7?Qo&3B* zR%6XFP*!s!@=q&d4cY)2^wX#tOtHAlFxC*1T#x$9xpPgACsR?P4(g1Dqi}K9?r@yitH_6{Bn%c4Ad{s$If3qM zdrMznyzVSUHojOy#(phZlo3ak93?TaPVE?@bXMwSULgUs8WV8<&-P6kgfjUm_^gv9 zV~>U4S1k*M+RsAVZ$+89$d$VHTy1K<(r^-J(R(CJHdEGSLvMX1m63~mfb9Zy@yJSj zJC1Fo$ul)F%sjmenYI{<^xe zr-KG;gPq-s5vot{M!z^fw6jqfH+m={8}0;j&XRrFU^4h4l0zGqFx?x5xF!yevh1Yn z-VH0a%nUd(|79W=_y;&_o%`Bh+PP9tOD8}Ouppob(klUPDPdNqIcF3>f2Ma#cdb-v zL`YTVA-3pxXuh^n-g8lT_7NC_k0#@JA2xfEo5__ox6fSd7r3!5$DB@&+%VR;=$7R{ ztM7?g10*BgbmF%d0cy+M5~=5J&(CFN0f#R5LfavoppoS@_?%3_&$NH~mg^YI1V@9; zJqD`!_GDI{1-8&kB+n20n8vGVG3P=2jhGrGeV|`C8}#&f6=QqCF;A~7$n?@D4u0>Nc7~sGm41JpRF0gqvrJ|4 za2J@s1TB&UrnnmQO^2ocjB^?z))erV;%H_+-xvw#iCQ`7m}KL0p>Z1)StvMy+_%s; zM_xANMcL61JHMXLwZyD6Tz^)koc`=TlpUJ0{LP}F{Jpz9@<=4Iv);yIF%^$)E1=WF zbx%i4aS31iwu#%eO0R;Av{xxqE2V*`t)_h1ZTVZi?jg$ldiG+Y!(x8UJeW!@llSBq z>}}^6Bn7IA3_1)@_`D#hE<-c+ryVwCq|t=dv|#I1?1KX>b=}(+($+PIF>`8Q)5ChK z0KJzRggT=1P9o9UzO|M2TyhsJykfujz66yB2gS$=sSUI*YuyyNd19wpfqNaE+WaT4 zh-vT7VAV5oZb=0tt;WiG?P_y#S9~{oXvmP6aRu(5<~{Z(K`cS_RKqbP8xXlGo(&(t z4I#e)Tbe@u~lSy?;?e%E0)cM*V=p zAC3;REc9#yOw1ol<43L+6T=4*`tY**D>Bl**YYPi(vNrkK-vU!e+NDvul_=+e+~IW z{PL3P_~o(B4&0(4heA3G0o7QfnFEOf&bs`Osb&B5JWWqbLt;7P?91E3TcM2n^g1fo z^fLHLGNBQBD&{!26MhB8)nyIKyHJ(P^!BlSgnsYAEOa29amd5q+1$pu_L&xBx9jyA zdlVR6jyuXgRVYc22~I%z!6So{cBFQ>$LR14`E~I$s8fQnSj>9Vr^kfiV;=ZMvQWAE zQCT!?bpyg^>BZO24@ses&mD9{2 z{-`HcyFseCQ>Vca$pw-ov1%EN>D*O2!gD3dd?m4azd|CjY9!)B<&qUUW!7S_1tP#| zcV5ebojGNMjRHLAOdNRxL?|q#!yxs;RsN7jFv%b3UD(GQ=25TD#jV$$2Z;+iF_EL# z7-jN@&g2Ld6Z1VBg9rxvjY(J4Nce^c>cEb{d=SFup4{cq%(rHVhZM&g@q4`| zv--$H>wC&MCo-pZ82F(_Mg2VvV?B4E>KHUps^C&a?>4YB_EP%!kTlEDIe$j7)N51! z5Vv82hdudVwg>`*H-aey`mU2>4VR(Pm5Y24sOF)Bxy^4ez{D+M9Qrv zM4bkEaG@1Or7R6b>WS$?<&Z=2ZVMk?HRIR>cwJG6{ScWUGqX8+i1L!XB%Wopt(GEQ~v5{`ZI&~VPVVIi!*+%Qo4ceydMmyl9v zwy@&h_#1Rhs++3r1@;wErc!!;>-`Jh9K~{LXuU-cd9d~96*nMDlj!xLaMHK7KEoQ< z8Rtc@6IVa|LAsOyYi8bgvzoOU-L*ng;VO7gZ@I&pa5=4L3pbFIV-3gF%c{&9T{RVc z*0if|_%?!{U*&gbnzxM%)<`&z`nS@}5dn#|ykh3ZqLqIzWh75kQv?r|Q%a`+{5N z$-iIfr2Q~)G78}yN=VOcz}3Z)gIrj%Gxg5&4tt+ofqGHB2npJ}wgnX2S{$LdHeL|t z7F0v~e%^T|3fy{=KJ=?!tx%wkDmf&rVzO%b_1~$xvd%{rZ^CTftBHOjXMB z!-I;%c;Pa&0w*7~h}sz`$CPuk&^Na5M^I*>n0IE4q$VT8MZD=XE}z4wtPMHiN;#k( z*YW6SLkD473ihZSVv!@ZioofQWA#QxGJIV^?U#M1`KR4NE6g3<7C;pOkEHJ@b z%Zw3F0fzU(cK)jCaakL^tRkl|A)i2<18hgOsDx<9Vw9na8+!_L6mgc7USTuvLgs*3 zW)DurEj^6Nlvr!g^D6FoGm=Z%sLE#FUYf1DfgRGg*uCI(w!HqYl9b8$`E~Xe0-6UStECQSt$}U4U!& zDHp+_j{tE=u$HP(G16!B!!u?zs+Wu zeE?(ytG?u6B7PsvMwT!Q#a#D1-9I`(IGHEnrIkOQ#6pWtiL+&BvzR>2%$p(sm84A~ zxc5hPOE9I&3x>@KbNL7;BJ7W~Z$|+WyJThnpiIu^IoT|l=@avZY=YPV-i-BRV(Z4$ z9fp@PjD&tmVrj{(0B$<+YiQ>7l{n-uu-VpS4Pix;QwSA0t?bz}zT}me6^~V%2C=PE zQX@0=-yo=EK|EC|HhAP;vnKKg?~y_x)gZx}PMei}ww2F%vP){$RIW)~KvCbg#mrKf z5DP=c@8mXo32NMZqDRlu|HrRMUkk!jO2vcPWPnyYsd69HlWqF2(GmB5V9URa|lqiO0+qADalX`s6 zqL~+dCzi)DHdeMOm!i7*tvR>3c@6i%^y>zTko#0W4&dMe5d2oiCv*n#q4+y;@a}rt zMzLUQeWULl!+{C7HOw}Xw7I-p{+V|p%yuHTlzo=bt|p*%KAlYg@|6=)Wm{9?^(>O% zrHV3_+_?{j{WzV70#tLz_8gnwvN1;G*4wC*rRVRg{BhPCyHLFlJ;I_@-9|`)ujq`A zx{@3s4Aer_Vuj_X9vT$1z*IjVJObx`PKw2{38&OwBe+AWHw=lz1%aLvj8!Rr0o6T$ zDqJ$a_jv-#S1dAJ=_vn7Mkgmlg|iNZYnT=%Rb7TURO8}XSU<`NqzpnbC}gIohOJI& z>a>ySC$Ys6h$xBq^~Q7H%MVz}N4(Lo*DDO$NY7Xs!=DL6e1>}g$*m)!j}T7jc~8}# z+(e-$M4@?niWwC)oc4aiikaV(Ef@{CtEqUQPc08{QLqLLxf79_FYd?$!wn1z+pkg) z9MH{;7TdEhbh+x(ZH-k8x~gVNYH6>dqWJ{NkTz+$jU~qFzDEhgtZK|QT=HOn1HJXV zqJquF?SL!AQE9U}d)oyskKD-m-l0oBc{aToPJux+G4};3>l-oakg11K+)&8HrNNI5 z8f_LJzepB75ITVhDY<@qlbZ4)|U-FfqR`x0Q+# zf@(~h5XQbNQm(u2@=W45;I*&UwyB_ParQzh@Cmoe#jmShkncv8mD`e#J{})|tRRrt zWfy5sn%`Hjb4`U7`hwdIa<-5Wi9tO7Ud;?}#s20yt=XjWVYgcAZ7->Bu8qhgY^%*! zo|?<90O?xWjE>6Hg4k@;5Ak?W`SqjM73XPNP<4;#C*)ZBE5H$mPpyN;7R%UAF4O)o znq}8J<)1miz)p{Lz#R*rf&M@0-ZDI{YuOeRGg!>b%*+fHGg{2Dn3*hQ28)>)EM~Nr znPs6x7SroE$xim!xw$#_{W<5K*809~)to(hb=9a*V_@a!p?>v9XUFK7DOlMa8?}LG z$3#*Hk+R7`jFiP_*ADycw60S{f{DCKf(rp`v*LsD%~vooWp!rlOr?+F5l*!cZQS5< zS&?q;8otd6{Q5F0e-t)Sh$4#MEt<@j!HA{Oyj?l{deHQxHb0yPQxY;!%+Skw*}ETZ zRmdp5ZRtpLU8<^bgK8$|H^Ky2r@2e8>m_E}nI#y~2o!(~m}MWO)6cNMzo`(SIsRn# z{u+*kA&6fD%}Hfb@G#?jJ^G_U_Z<&&FYuMep_OrcDj!)o>qjlC2wNKD)__WhUI9Hb z3{ay`Y^noA+QLnNhe9clSLvcuk+_UEJdE2uoZJspp)=L9?#LVVAR!Yk2B3JG1O z)#GnPvASQ@MV`b+Dx#fMSlnN6_tvxHM&jZ2A^K(x#~z!kQSDx}C54H<1jW2y&u|)J zA|G6sLbXh!R&|?;Labdj{gl+(r@ee_nsEu=C4zQe>AlK zxBlEZ`3JouW`OJ&8=$CUW1|O@l&oA#^ng2r?CgM>?Ek2o0T3*InP6m)BxI0+f%&&k zelKQ!DX#t~W`5Rt|6nXmQyX9yhVGNCC-h?k*bx34H7ZYVmUMu=)jVQpHKY~sDiq%; zKSON9{%-M{E8dhg44Y>}q&d}}4nKa{9qIkC zI733RTs3oCOTzEdXRYj1voN18Z8lA60*uwsBwIPNxbHF?#S+6(2U#LfMJ>=Yp#W%# z13wuHD0qYuyi@Fl=widJkE8J5LIzs}>El!)F)(RSnB>c`gK?|N7LYeEO4#8|DJy7v zcx$YugmTk-n4|VkAntFjZml?(3c^rVy9ajyf`n(^_J*WI>i@!f`Kc?4(MMi7L$L0Npfu?I&2Jei$4e*`FOQ;Dj=``fPJXU+LPpzz8 z8@Hei`?}ZQ+*}oS$EZ#+vfJ(Qx8IAd4~-%>o4?s|%fGV8#HM8y(KJ(Cbs9_54In$| zCKu@w7u|QXJ`QPL<LxrG^F#X9&H`LuUk9QedH=z zj0nTxHV<*&at{E_7;x}k!{)E?MU-%MPl+u!i~kI_K2mB}UvtJf>|mY>A~t!aRl@>j zBW`3&2}94ibPueN*u31?$L^0Rbs&|&S_(@P%YuakOheIlZwUvNv@9@8JVvA zvQZ(F>vxPTB7AN)JhZ*&#-Vx_;M#)kp%K%CfjWVw9n#xH`jH|xHUd)+Y-h_J=+jH^ zGcM^~IH;waU|yevPf+g#*fjZ$xx#=Yf-k7YClIDU<N9~q7#zABKjeRwx&?&9&!J~CgJ%gjI`uB@38KQiUzi|2@+X@OT@d`ELRig zLbeE?6g*|Zyd3)siL@l=Y}?MAR*>gzJj=-Ve1Foh+LFaoBL8bn0sfqC9wrv34HCF+ zU(m@9dxUMw)4$pKv^pZZ)X)@`8GeDPt$5ruHt!Vn!C?qE&0)LbyYqh$WtdDho4oc; zMQ=S%|B`5=eqTQ{hAhfCcF}6Q>Ezs)bCymkmD2CfvXU|V3LEROr^`gUC)rc3KU|eD6YPKo$vEG-YlV)eM+XsMlqSIC~no&ghpPe{oo1H6V^U+gyrL za*30KWnpqsHCv=9#Brw?|~s?5mG|ZX1ikh zsSR5KIjz6!H+u5EX&&TgVFK0Mk5Kx&LN10O?EhsB^*g}K#L4+DP7olM_#I0AnM3_L zxbdePis=tX_J2tZ^=qo~XQ&yl$X`Vk|D3om{RJxgmudyS;j({-(Q>c=Cd?CKgi0MepQ`i=K^G9ECAI=MgY|ZAf(B`$WG4zxc+A_^Ur1cWoE|oXX?|xGBc*1 z+7$mFGsCt5WM)@SuP}Knh|q@9UZL?Cgald~&>qA4)0`b3&Wcm)hdIKq^e- ze}UJ1^}OD3xW;Ecr^KFdxtofyGj8(j(wDhM(8isHf&?ZB;$Cw{#_@sLM#=*j6YMsl zrgbGkVDhM}J|Pdw<`Xd~TqUMbjL%cYz`$o5V&oDzSJ5rkO(!wc)Qtlc(lHdc@OLqn z>atBDx5r^V&((eRdVaK>t1W|4$&6+{c?Q+-`hBEZ@bwu zNW{RN;$q_;y!`iU)O9ZX7U?UdLs%Kix>sEWOQajhObJ~}w%4eYixK#>y(_C(blEL< z1J6~JDs%LBJzdzfHIA_+#kAHM9%MMdpriBs0wujI#gJ1TKA2HcwOxbpOY%aEL(i_N zY2HM4qfR&}AW%-rLogdwR!e&bi7O=w`&F8v^~ zE2B-5^5S6fZ2(JR7uC>ZO4xstr7`xyI|I`KibC5$_2T^CC~?XqoW=^ZS%V6{KB}Dh zXM5u_E8LYtr?mrwqoZYU^W5&(_aP-Ld{C~vQ$&>weMXtwq}yO&5j&A}4;A&> zO%-z%YxhOeV+W+oNmaXY+Z3VaV-@rB!kS2d=Fk)JFWuDd=MN9f*+52!lFnB0o}kn| zqswZM=*yyMudB48AmbAownT=aUI`BqF^Se~?l6N3OP-Zq$$cw>ZGi2hglF7G5+&0^ z;6D@}v6UA$IDVpOi?4_B_Hwl+07w}a*m+4J<4r_(Y>E{l3oXe<1}S|kJ39ui{mmv^Hl?UG$i6Y-Bc(8NEPVG@VFFdE6>hFI zP$nQ4mR?3m`wdy3aw0sturU41;7medK790ffqxfo^W9eg{oU98 z$j|=9hk<<|Pyzn0pK&as`ktfLz}tDEx8eAet}oxWU=QAG7W{W-5J(XQ9 zNw9&(grgQ35v1H!pvL1vL?%Hsl%wYcAspi<1(mY4!5>(=RVVGXpE7p)5TRu0o^uA048W`Es@5FYUae`2|KDKXt z6n+<_1!pjSLJz9Y8#6nm*lpp3bf0KtoINARu0=f)W(&@;cZ&Eq%#Bn=>JFtD@>BzALvXrp1=^9AAzqBDlAB=mY$gO)@p{ON<{2X?QtQ)->NUY<-` zW}?0vp}@2}hrD!9yn$5(w}ZCYI49FOP<^vIVmh(VQyhS<6G*r@>4Znijg3^8q1bj! zvR}5)I@4+HdYr6|%AXA;oUgI+`6A~T#3Oei0p>VsgR&s?%?Q$VyJ2X=!jOzVy47=& zsv4Zta2h{waiT?2wptWU;`j;@&RyU+kCvI}4#-uUAZ~tW*Fh(x76tk)``xO=W|T1Q zJE$S%Q(c(d>*nf z?RZxk%zG~vPvsm0zHb+|yYd(eotnj>LiK`SqQ=4_*SD&z^RAPVtF6K`0#=Ef!xs_S&wA?eE5iF!S6Ai5 zADSvVzVha|wdLs+qCL_u3pmWvTz#Kd9pXqJ$CNZNh3tf@f$KFg_KvXZp!uOTq+2gH zU$VC9h7C0fdpb&Cg=wT689%@mK_nzXD>92s{*v?roWY6pwmphi6a!Ai48uv#>fG2N z@`M^Fm_663koMYT@zi=zYqbIT6(#JrdJmLxyolyCpWna7neH2Kq73Bh!Rv~b^7rCB zn<4dF1HdqRQ>o30bY|ZC!E9;cP`*9&rkMpxmkrMHLk^U*(13v+=4vy&SJxxq*U{k+ zkEpxk%bL=S@}5v3IuVoMfDPjzis;b07&zItDOQkEmTu0uFHLljNJ<;^tw(JnB!UA) zm&hmmJ!Nnk1U9^2HDp?UuLOOc5F^9m&n@7sh=Ze@97507dZf^{Bd06hzsy za|8s-`L!}RlqV9Q;0x72-fq#s9ip1bW5Zu%-9PiKpU5Q(+rRuF0J-At(Bv;!_s_)f zPx@ehJAVLt|2wkopX>Rr$mP!r^xqjCOn(U%0yNbB8Ta8gxbUue%cyR6s=zHyB?s~2 z!g7)MG^#xSF4P#tUOq4-jdD&iemc3!w-K={sGT0LF$BH6koQ}Zas@D2)OCORxN{Xn%uBfFDxosM3E#^ZozF^7J@CiEKd_Y_;}D5SaTY)C6YM=cMUMKlp5@dVhr zL{c5ql0n6kEC3s=?b@Iyk0BZn6YETC(0Cn`eWNeXQMh_<?&a-;iFWOX3Tf&cp<1I66C-{{bHLkbd2E4g)Xh6nD_1; z6rO1DdK(@5eWs)qm@fG5ZYb4n_-hxFNb9*vl)dhazmMOBwaG)--%rPEMsxORDU|B3 zcQaDdxA%!hf8rvu%?&V4k>U2+!Hvjd;>3uDSm?NsyrQ^@w+4bobH6-jyPGH-onf8~ z|G3k=!d?2==*Vj$ojMT59GJtdn}p>uELd1HVs8qe!C`c9pQx1H_2Bku+o+Xh7O`9y zJg!I>B9f(1aBv%JkOv=OIh+2xkisbA^cA*;bdeQ?ID@S}USBhz3WlUGZ>4jhcdMPX zCTc9oinN4gIZXiXj+1|tLe&A;2-jUoJ6e_3jXJN+!y0MRSXXANWXYphi!j#uZ9bJ( z8;v!Zs(vYV26id2y-G&Bu5}``*hlhZKGA@Hfjy_(kQ$^vl9Wpkd)r1=y5%Ah5>W&j zqJ+ zh2fLpid+$F&BJnE2IS}KDfkx5!oH#`JF-(+t*Lx(U;~bCrd+21iUkwZgt_?9zT<7t zds$m@{kKMDF$^^CyayLRF5hyR=BMBkjzq#zVFGe(bn|#RSnlZ7t}?oOeP3>e%6&VZ z4j$X8zxjJ`%}E4gXJjM<;6kn9Q1N)dB|zHyu!k;a7x+~(thVO2ii3{_)t#0K(kU({ zABh(F2vWCz?bT&YB1RM_LK($2ef*AWqD;};W}U#lhIX$kKzofL?PRlMYiWxfb~@^* z{G*$USaEMvKTT3m&KNxuihSbOvp}gC#V!m6G1r!r$u6f}rOs3@tq&V*=@qN2awV^_ z-ZCn5Zc_2=b@L*t-8#ZFF4S~Vkq+QsUQjL#J+C?M!#Xaq%&rgq1~95p^b&8J`eZ_U z(vAgb)?$R&@{*I3Is@9nxJknnE!g;l;VYiF7Ed5K8`Yin%`A2KnKhf(4eN!y3-ctH zC`=-yc3Gb}<@}^H$Vq)lL~ksd{SJh3b;J%(H{@s7djItk}pVf{(U!kK*yk^DadpYkVG) zj7u|V@|x?G8GC3e+xCJ4PHoeYU0NY~Voc-mD8p64yn<>RNfyYFqp}AiW>n;<1}r;# zM~}4G;%A`W>&lKLAGZc=WXiIPuSSb4wq4%ug2;AGHu0`ziF|;(1qkJQcVcGNdGRH`FxY$ur^;=~_G5c~d{$nNAN- zr&R|+b@w5hXp9VJQpMx(5ww@QC=He*dkv>iIN$2zP@_L$-IZ~a7Q`K{T@!H`PjK~E z^N61Td04MwjIMAAh9iFe!v0Vhm6s{iai>;%BiKLef%^rw^e9MOE9In)NSb(W40HJc zbvDUdj~K)OlDXx9H16q&X&NrJlIFSc%R1H)aR~KR zi3v5r7yRd`RhqR5D|%53u(N?&EyAk;vkRc8crnNYkk|1spRQ@Mm}`VGePI)3uO^vkU z8+B8EPp>)1-u^KP$LufdKelzNiBTOrhNm1Aw())3t~a=n&H|nepF(z2IjC}%N}tEe>)A^h%F;D)UiL>OXu&iW^oHzAEuBj`M6#g zyy;9z^<{;upq|#k+N5-F&w{#+6VgA-^#J z_6m0uN9CDHX;>J%Hm!?(8;1R6u_;MJid2r_P>;5uz*0vjt8S{vv`u$kt6wmhH2nwV z2Y^aLS_f7A6Jm4#B|2l=`_u6gSi?_)S&-he*?E&~xZ(})KJ*%dA+MLt%^M@b8sugt zc$L%DjuRl;)vmZL%^TBkIWX%M1y9ZsBg+FB)vljICRd9sF=g+d^tuhr0J>mn#mB?n z@3=dBHLY;7YbU$p=M6&rRdOa#`iNQO`Hjc)R?DEC4;?pG@@;`x3=06bKKXq&Y_E-Nb1=G@V{Ap!e+%1BC8jU~<9N_zS(C>0A zW62RW=pA|mv?+va7QF{es;Zjlb4L#Z0w$Psx*}I`N!qIG;6DJ;_OuFaE3cH;-4*qy ztOE8iBVjcxg;>}=o~XCxfa36R?#-Gx(L9JK@_D)_go^<aJmhK_ajI^tKlfBO7>EN=6}RA9d#%~T47H|UJ~5r~SCpQPq3C)+0O5H#)vJMrCa1-gv%fv$RS4Ywf+wIv&X!U1%C%3~c%s+} zEJl9psB#VQ6lz)n|796s%6K=kWG`b`)>bbkGib#_7n0b*O>1XR~f(bFc_! z71;ak`sBJkvxSETuHzC-K9sD5(jY#b*5q~etxbS$*v6B3=oVG{z8Xo-`4&Wn!hd;| zn2kg?^foyETM1!JiJ3ML)4WyuM!ZL^>|#5rMWSC*`6=IYW7 z?%|0G!+k5V0^xJPjZWG?AHw!5 zl!9^5=B?vb8{ikGfuSFaXZ821VGTZQ-7fJp1?$BDgNQ;(uJdo|(K@JS!71-3gVa0$ z_4SzJY$n-cXpU8B8LlU#(l9W^KMt&`RoDQdpcczhg;aD<07an2cUqqxS4pjUs z0#vQR{i*KyQbb_R4@s~Rj)DwqWp{9#upt3gMyWFL$NJ{R%gemtYVr>xMceNp6nvJ} zyu{p6(P!lwkg!Pa`ffRT9Ji6`eYNDQKod>;*ods%BZ+dJbNPIo%fj@Jmu+8&j6nsf z_j{OEz7Myi@T8}35>aQz9o3i*DX|c&i^0Syht)WUJu4zop*ksRL#EkLwK{ANN~eH# z7ZX#B^9T%MPf^2w5Kwx;?GW2DH0^e)4xjx<(BkT8vO=X1Z=p}v3iKP=}M;$ zjC6!^rkjn6_Bm?k<3#8Xg+u%G5YmolS4y0G&O8XZh>XRGVtgQxh}=ta^baCK=lvUB zi|m{{{KU2>fs*aS>p@(&VEkAFp!`_J8OH<*zk;==BJ80zzC2&NQGFK*$1E*YSeIDg z&ArM3d6fZ}u2w$stDKIY-GjmS^|C)UWPEgORnqfANl)ZdwT<`kK(W+pSblYC5yt+S zbyoctb@e47dh8&5KrRGogiA*}ZO=+PI&{LqyX!P*~)MI(~tcOBE z(7jirvgObfpEKlu6TgA8@L@_Ox2El+LfRm=6t)Ql5U6BWVBP_@@!n7kS2R63w!8Ek zfvSok5)SnsjID>6>tG$PxZqo-rtuGCAUZz}-iptg#*tNVFNcyX<(LFG&NrLx8;by@ zgs#paZ@hy8E!cC}RWZs}wD~l;r zA=%bmWk1cEK#4XXn^5(C%aK>m2cksH*Ao-CP;`lL(yE7h$8Z_=q`j^|i|26$y5dAf zH*mLTwEBcg1dvPydV;pVu1%g_Y}5ZrqllQRz&NtzV^x&;`e0Qhv`BJC+}U^be(!MiM!SUO3qis7u_xOl zW}2)^0kcp|zB}wXcuk;fgplM0h zox;h6j@K|=kAO0-P8rRK+e2V!;Lw=@#>!8H6#^YxFQt=8SQTn*jl29A=ly3;ydPtg z-$qbb15Cj4e7d@?TzXFIo4ZRnnz8w87KiG}K)<+1Kq-WSIfqy%4Z5DgIcRA5ch%IW zT-1Xh?=ZyK$nXw#szW3(&fme`rnH!YTflZi#mrTA^)B7;0nzr8%7jRtE} zHr4^>3^lM8lF>G#moO;J;M^E-_aY>jhICpIU8-7Juyah=b>!VES7Od#(i(AA&v7s* zNA<`=F@2K0$!q8TV9%ItD440*QxwsL5ooTf#4%CQIjmXDpW_4qK#7!+6YhBulA%vy z#P}M=PLr)N`MjLvZj;HrLkdQHSe)Vq+EdhX^thJt$xDyu|=&flPd!4$4a^7Lio>73G##>1&JscviKwecCq6gsSB^ zMv)B6Fv5lhll)_0g*YUt1_wg$@pVBMfY5sh^`C=#4gI+zsKu-l$igCXA zxy$Wg=W4la?3>~kgFIny8SKxrQfUk1@?@a*Yue@j18( zOaP773$KR7EDMbZ-dVORr`H{BdGn+4LI@2)0b6k zZHFV6{5*E_6KPB8Ok7tE{9DHrms5VyHovRBMxzhT&VrNnOvtxZIa^_&`>H%nJ#+Te zQ4sJ{sxqHGuV29?=zs>x=(5WkdBNm5^1^k7nVN)^Ki9_Ot&^PBsB=ohRvP*@kYX}! z|Jb{Cog?cjaA5;j(E>QI|4b$n@E?D2KK_dC`d6mNe`gW;tBMOd8#6#ZhJ_j6 zt_#qIVQ2qE)8(JhJN_n;KUxI;$fxxeFATuS0A9zx#PYkc%|DNY>;Gho0eI6tgZlq~ z`10GP0BAHUgv`uL^ek+@I3IHXKCFMTDSsEp?{)jXk&%BTFaHC|i`x78RdUpgC-s`c zUe|;4i+3Q&?(1?ZwCO7e^gFbnQQk?l1)g!IrqcwQpu^0=a;=9l#kco8#eEO_6QFKc zilSQ`7XnHw4W(w2pyEiosi>jQxOM@z_3Guz5s(17OZmEqr4Xg5l2v7aFt(L0vT&++ zIktCtS9SU>$B(TQY&wpK9~lx2f&`T(3+-EUd8mLv9rK&9(=*Fk;Nd`tbMCq^VT1i6 z0Uc-*vBb7_q5A%oq|*Lu;8?ssA*eY8aPKfFeDjwH>P^u(Ysulhye#L(lBPv}7Hg9k z6!t>`MlyhVj*ouM!V4Co9`YUXjqy*=S4~DHMC0#z<9+&pWoi>Ro&63vAT9O&W*C@` z1uu_QBCjNPFfv{RkBoUZeC*9NJfPY)cITs?SDeby8=)GJSztr$+-n8Wi z4HryG_Qx}MJPnkZq*>W3J~ zdSMzB?jzaMEJ%s)JZ%Epv)x6+j%{J)X5~dIGFTK|A7^jAA9@eSQll)UnezA_V_vcj z1{m!dRj@@dxip=OPdDEAP?O;*>j^nREf3oZAvV44oaWVYwP!}kFQ~RzqF^}s7tgNP zT(uv2XlHyMnuzk`S1UeRQ{I2fFC{N2O|ML&t!QhkY5nL?pUJH|X#^ya`)!}PWKbAM zm~47cXdT#g{m0@q16l*R#%R3QSQl@;sRj(|CeKqMoUg}Q4ezyHBPi;>#Ax(-zK>lN2l+~Z3Ti5P~`r(x(!tR%gwd5!Az)^RnE@T z7FImwP5jDnGxEKZlsyd!T1m&^f+_4LF+HF9pI^Cg!nc|Cq7Xdi)0tjzjDc?hmSnb< zE(&Yf=MF+Yjp9l$FgSA=5-_MfWNLP4EiQpxprg3s(ldmYrf$*XmPULfC>SsioXwKq zv-X2djgF^t=pV#$5M7vB(31_<+5cpq#4KFejd3BO=E&g1hma5EYKbF_NeU9*eQYsP)UownOA2_(Ziou_Yy09N(jS2!9a(c1%@wW%qzcpZ4{$L0GkN!3O&7p~j@#j+iYXcS_ z+x5%X#-C}A0Ak^PsBQsX{TsQ;I)$c(ExVJz*MM0LK|RDM?3D^6-ABSn;{@ z_mad5_b4fP#KU4AXXLlYM@b}heu%vKu$FAdmvWAhawyWq;oqy&#SdD40QNo*{!=&0 z5Ok)aaYtHi9=NA0?iySfq7&jgBU{VrI~yedxxT71J!Ir?m(S@{z0?e^MfF4qPH)>U z8WJQCd-^`v<=y=UI*S{zaGQ_J*(a&GFMoB$es0olt^7YgVSwrT?;H9*`lS2`6#jVz z{>!oWosaOR9P2OgHo!^w`JEwT_`lO(S^k?@0YGaHKxSoOWTj^YoLeS9635BL4iH@c z=->ga|4C*5i0;>~_Fv2?vHUqT_%~?@S6A2HR3#j2KROyY7&sZ3|CE(5v^I5QaIr9P zWnf~WXJW9hadNOVcK*354AvHg4h9YuCjVzQc|b6~Ka>8nr+=3#vH<3?SOJMKJ0KGR zjA^lPa{d$_CUkHUXTjadI7>OY_*WsApw43N0Lpak`hIUm!3 zs2hZ49$rG&`-+=~TVf-fH$CRaz!2=~9qw8C#7CCeClk4(OE6+st5NaEORvfhxhFgD zxwryl=7+i-9C`w2p`v*FXKG&JNp)KRUGF<@xt$;{k1LUS$|5PvMQ2sDf+A;KQN_f$ zJ!N^Hj#nwT6ZNYX*4w?#w56H$SkMQK?1K>2_Y%lMtUlK`4?iZ$U9+ovf=AFKMzkhB zn4(qg{SY_@8><(rNF=o!9rK{nX$@Tk+l2APP@DKY)kU-@Q-%1sD0}( z)+QQ8h9q>_p-j{LqN$SP*75h_TYQj2lDh+4M13M!1uPbWS?`l8AnmbYYlClZKpi0}d^lw67r2^@YR~eOGg~p~BM46*ymr8Mi6WOVX9GG|tql9^l(sv=cOCbG^wN&F-!yr{ zvB}ni}bl?S+POur#=d@F`S|zFd=*R;Zg86m`2cXLd>PG z?OpbFg8x{7EZ|GToZVp7uS1B!ghZD+m5VbP#OJ6xQ>#Inv_{4^XgW%AUr1}*F5~dP zp-46B648{)*J&MH;oO>C0=f?3)rl#;Q$VzZ`rL~024NG<0fH+%#^W=nj7Cc?-%X@A)Pt)@=!fJsn9KG}NVq0^#49?2na}oUj zq9YLGweI}20sij9aK5RUc{di&h8-zZtKw*!U@m+xA3j7?3)?j;!qCW3-dMA_93D>a9@LA5j@pq z-yO_+M3KBDw)paC#H7NaM0TF%j)DI!pW;Otn2N}2=Z{_oU-piDq%;I^B(~nQ#Bkq5bQvVhNHlV@%hNUUv)?28o!XSRGJAw~&3YLMl+Gi8Idolat(YrSk`z@7J_+{oB; zJfKP+=3JnrU08X0%}pD<;FG(8)e(SSwJ99l94c3M4)eJEeZr?TPQYoW*4<5n?xiQ9 zr)Ln7VSxqbLu@P|@m>UZTrAWHHhW23&CU9c&hr#KmC^5I%*|t)rV{ZYA0WsQNHXuz zLGCS-h($cic2lj=GpXFn`2tXw>$ramx54Lqu4P9IS+{tr^VI$o;nH(OgI+?cILT3rA52@2eA_w6(nzxy* z3h4)jNY9iIq@$nCY=~cRxd3ki|Ac8h$V2}W#EW$+Im)}p@;qEn`WSfe5E^CgTk482 z*>2DnLeDHWi6u#oB+71(=-p0U$pomSF`Cp~xK6yU%Tf6tE=dpP^(i1_D2R_+V}3Y` zJK>a4!}rJn5&kb|_*FfLJ0&E9FKN+m$2Sm{w{$BU>xAgC&Edc|8fP773rgwJIs?J& zHO|*-GQ_D|g@w{G-Q{1ug3?*Cj>M45TYN5D$Nx9qOrR}?*vYY1B=P!EcXBEr4pC&TcDj&J~ zrtyC0SC4m3nOJpuRzDCImdb=(&Gi>aTrNQ~K0&D6+tG>C)KY3D3&=h9?^jlGn19i_ zXq(ZJFrC(Y-h)-6a7({Eaok?gPCNlC1Q;u}SoFx2MGKOgkiaTg~q`&4{ z6-?vYCwoFkG<$8@+a5`~S{Hy;tU!+>*^wQ9b0H#kQ=$=L=`jy9lU$33FGb}46;7&< z^~(0;CXY1CTvZM0Vf%P-Q(v%r#itA8LmfW!vQz=doj3w!f+YDw%}k6AvoYmam?G7iFlcE(U%OdckV_H2ZW#Q zzYp;fykMs`zn#1v7nrynfd}Lx49UxLohj6lqse?aGIW5TsNplO7$C zd2pHG$9%$;_MQI~c?xkcWU`iC5cl8;4Yu2*UZHpWDR!+7&g+wkK6XZd5ibM=8!Dfa z@FMS*d;B!jtt8|xXkz;Wq(;&<&Nk2y!Ui`j?bLT)tdCh3E+J~^GTwI(>G+9J7OcD2S_Px2`1iX;` zm8MyRyn7fK`6rBqFoL#vth$H!6tUcglI20MOYtj8ifwuBmh{m{&m(Mky+OKQC>&SH zq08cE=}yY(s@=#lWNy|=)FD9PnBRqWjX!L3k`O9%ekYva-CY?B^ZlSb4Yi;Mwt1}| zu772s+UTkww(NOw6#v;Q<&M=*(>RH93@2nM6>g_hz4&<>OheZ?^Lzi(Wx+x+d0DSw zI@9KD_*W8XiUZH!Rzv1yNe+DRYBY%2?XlQ&JUvd`YHU48RbA9%~87}$s7mZ&^d z>s#ywRGmE>!sa6cLkjg{NRFRB!vVfSWFow(OJH7$uLvu;w&jhU?4-Vn6RlmueVTn zWU?ou($r5f_Zx}DrF^uK_%VoU3w;N|Aa9b8&esg{*i#hsh;C6d#Dup@4<{j?K4oG) z^1F5zhwS=L?zEVGb;Kc>J+tR2uHnotq;-j3vR-Cj;S_T1LizS7d72*&d*!9IdrE$- zUmX^Axq`W=5BGuzVKM$zcW5IC>wf11CXtHJ23gD`IXmvf&M$SK8xLPFzh);wQz3nf zpba>iwsP_U8iTpku`Y=x%XzPw?~b>}Ivb30cdS}~5Z3sjJ13acZqmLm)8(6IWwkgROwg7s9u0Lr!|BRfAly@AJgX##k5dpY(w}qX^ zmZC!B2ToG6$l?X9o_au*kku@hHHdqok&7`-B-|uIJjunV54_iLno9SFT&z9m8r#@w z_1h~?HAJ3F7dI07=19lp}uayDRcpiT955-?yGS{?e{r>P`EzTueCyfHCD_r=PT}0B>BDqjj2}V z{}m+gvwr#o5@2EZGf@oSHT^3l@C)wrvkv|Rclucm{yWO_2ZsMY8awzG%Jg$#{}pBW zSz7)XPT&OCv;B^V{Hr(dmuLd(Z@AO{4Nc$#bO`>R-w`0&$oU^_B~G?~ig^5IjO+km zNEQGl@n2h2oPajd|7(=Y?2Lf+4Euk)Clez;dGbHr^zUEOR@V^rd=Wl+9 ze-+LjU!Z>-w7(07jRhcm!~Tl|4q${Eup4ZgO!Vvk6(Kf8PC#q!pY6`yp-im*P0Wi6 zuseW$FbmT!3Zra8=Pz5s3TRsbT9Chpu(JQdt@)c^*!~g@WBZ42 z7{Ku{VT~Q3bFzA?2eO!X97zuuEgM`|^RKxcTsth1HKTRxv&P9K1)(wC~CG z3&g^V4?F5V9;?+iJ3Akd&)4nVs*3MeqMD*DIoIelEQ}=iwooo-H?^Dop>cN$=$*NO_CLD@PaK2n1 z-f=7*)X)MD1yk!lzAB&gC@w`Qn4a+j7K0fm(jb#jAdEP}f#z^Aw@1ZCA09Su9Hl#I zY^!{aHmE}sXqC8bDu^pi2+E{X7%1Sl_#5;rueY7~?Y7WaVCK*k3d*xU(X;oSilcs@0Bz8Jf!dKZ6!~4r2KlI_xMn3$NIm zSf{@EJlCU#??K{l%N4#*DQ*?+I z1*fe(bKqwtve*K+2)JNg17-LEOumpnI`# zo_G{G;fYx%WXo62&6}w7nZ-|rcsHM9w2A*12BZ(4SJ<9h=f)|U1SzfC!lsA(8&0oR zB*%Nn-9WH=HB&0TMK6*5Ue~7|6Y5~7H$nK+-s&FM3OAsz zEB1$A9Tq`+l%nGcs-b#M(2ZD0vfmz%1xBLuVQ_FKtnpWB!s-IvT;Wmp1vbgXR9REj z6k$1hcCB2O(fH#^{=-Vr2Q`3#`H~XsD&OY@a8x77tiWX2T+YVk2GV>S*o>yL$s(CS zr~}mF_Xrl=<4^Nm{+^DFC{WZ$6S*Z)0HT4?@GO`d#`RH>JY=AOK?ET%_r=hz-}$-v zxGIPUrBjGGQyf`>Wbcv&wbBJwD{;4s8Y?7MhegiINo&D_`Zyy^8z zq~+DMae^|2Y695nZ=Af&2L~}c>pCLKE#J5LvdcgB#N(O~I&k?Y1ja$Qg>1P4sksg_ z^NTz=_nM%(Om0U*QH{=XsIZwY@)5UPq3~H=idJ)B6|ir~+|LOvH;-e(*Q3T~tuu@i z2YhgX;rjyKf`}p7P`}8rUhx1l9-JY3SSj-s=itWAjCIPmf4E%V7|R>wQrw!??gvUF z$b`g>dj$>Yp$aYt2hVW9+TO)LNje~m3@f%D{I$lML3lxsv@darcM|Ap#Q<2lLa7<2 zR0{j2kW3Huo(~?cukkyA`H5^eZPkXcw^@nc3qrGi4HW!;)V*VLW!t(g z9Gex}wry8zt75xi+qP|^V%v5qsMx5ul6-U3y6fz{&t3Q4ecJi+onIN5v$Z*UA0uh4 zKX{*K{L{h8cVgANe!o)memKaLmIJKmJ}4#AX()Rw!cpPDc|6tfNXu4OYF2AXHz0Pj zJ}3lp>KUw2c*7tGL_<-CHi{#A7`&*k5q^C*l1?cCaY0RfP(oTz0xW(|AY`jXXhO%; zNd-{D%3O^%2;{2;@N;^J4qsDyB877}ou?U`6I#xlJZE8Lh7qyk8oQ0tAKwK@aYc~t zD_HkMqq@IFs{vZ<_-1npYEBM9!u{q4mA-Vy8YjKluyD+kG-)?O)()K}V|?Vhe0%8P zb4WPgjE^(cq-JMrb92atZr!{sS%WxpDJwk!}^5z!|r?)0n61Q zp5x{FS0TO(n-4m~vU(afpT2zP5WacD>XYiJT6HQ7dp~(3Y#`L4ZufJSAJF`0iJXlOCwVf?IN3)y^Lplrnr}lqeUWUA z*E6y8hh<4tx^qGv#mZ^6IykW{-g(oW^$6t1-BcT^g)SmB^n|VXH#7GT?6VoF0#IgO zJW^ZYUT@7f=po#3zjd%vE@}V+OG~nMZEE%m`*$n=+2BX4`?~%ZJ-P!oOq)lwXHCR` zRejuAb2hYdoo|3yk%Q9oE*>V#2_Y%@8mP78I-HB=S)v^q5c~@g@zD9_$hTdZlwQJ% z(A5BC5Pz#kkqnNCV$&0g$|Jo#q+2P&!=*2xATirF5CMKk@fA zAgm%|N}9X+@=4Hp3c<|X>w(1`LzE%z6HOeuh7Xv9sSZ=vg3nGO?y;#h6eL8>9L|Sa z&}Y^?Hli8)57o1k-?C#NBC3%64S-$ONs+Gw!20m{fcmJCHOO%z4xl`KIP_u!8rT6Q zIpOvQzkN&-8paP?#hsL?$kXevvegzUNDOaHf6mWIbZ|IN7Z-6|ztq=I=V2oyxYgy^Od7zCcL9x#&gi zDa`Eh=(Lbi4epFeBT6v9I_u{;w6NUn#{eBDOvAxRq`e_y9%Da7;DHtiY^}7}0kNEh&!M~E-Wc&u~e|*LN&&TxsgH`#x`TxwS{6;AM%&Ktwz6pQs z>p#Hm-?AzI1PQop|LoCV0>E$5zhh2=i<^KT6 z|BkWxzuj+ECPn~J0$2|-8$BD~`&j|&VFFY@&){Svl z;}r7oGIK+r`aB|pueDmomOHp>FF75}OF&;h7$gAsi-Be@&ys@5#qu?4Qxa)k}PEEK9Y<0GCu}VZP?Ou z+3c9ZdSky>;(zWy>8ReCvEQ#ADA^^c_p2SLPZen*r;>xB!#r*Y+qYl$$ujn(Mac1* zZ6H!aAUJ%f=U^qEXp2I9({NqdOd2_eOw4lh+RWbMEFg`fl0+Kr=A3fyRWl$mMKvXp zD&L+B>&0QosIZfFQ4W|*Cuv>eIxjD;bPTw$+^?xI=!{Zr_Lu2U=88Gsk*D-=k?R$E>5KC|vx@6#ObiKvojrjIoI5E;G_SR#J{Cxc(=C#i0cu zLJdb*Nj6ocP0i;prn(?T)3O^dUx@-n1!v}98)2un~Tj6(V*H{ne2*{rZ&<%mU zIIKqZA-8>Uh%oiUFLs2lR&HO3`@I|NG6H&^XZ z(MTszfbz>lR^hvQj_HNXg;}mmrg>6=Gti=;+gA&qAn-T2F0Xr`Sig`aMpvlq5bC3! zEEA1`8y85L&xZLPECeR_?^1iZ+ziCd?ofVz13_RXWzwz}DT4ma^`(w=>6d!Hs3ZI? z0SRug2QMX#LVdw|lsS5%yktmXuVWN$lgw$)N9yw6zNS+8(~)l#9kK`-4wH(Uc@PAZ z`keTEZ)NV;CI8bweiq0zcW0N40mFcJj)WW(bj`YLyXEC@W%*U+O@-XuPoVw$K80)h z?J4zdF0QIEIq~7d8vCnQvU}Cjetk2(1*I(bxGzO@>F$dqGvTa@>JubsW_O!y`diaRsxK&m!U<-W*Fm2(ndc)Me2cLdYa#jb zwJ}fcGrtpU^L9Ls1IrahJ;MP-obk-|?c|Z;vX0^rKgE}632jW2R`SN%Y~yv zpG*3vXHrjjAJkRVA`rgb%)%*mPAtv;x~rQz+&e#_i7!t3nH?2jZlaqf(6~JB+M;Q0 z7SE}t{ZOb7_a6BJ9(d@=QJa9Ca zwil<3RVLMFX&d3bPLN<9mC_QL9^+gEKUDSORY(ltJFIXyE?rS=k`qcCDpL?3!S^nc z+X&Tg^8h4#)of4yd>ou535|3}YO3Fwq>QhZ_>BDNTaSQq-V(zMCO_j57@u?eym4SH z0Z>1uWIQ>N4vP&%M~9DjwvEuxFG08`APD(6;?=}h%-gZj_pcRG7>93{vqTNSE}6lG zDRuBt)3Q=<{A828x`(@J%5}%+QCjG9I=;7%W%#`lylzH*JJ?v&;`ON2?Q&2(0NO98P0EayGESaaY{8z%aA>@5TXMM6#sqa$po z#^w|ai-IC(Gh+C?cnQ7M;f2vm6!_6JSU4cUTU=_Kos{z%ia$?K^?1#TET{~S3A7Y? z%rD@^upl_6O&N;(2Fu`ki4s0K@*)K51|>+g%TdD1SC|HqMZU?S3d6M}<+qKD?RvmO ziCy288JCjsWu!RkFydh zeI!zzE1kK;I(a#5W-4JN#LC1?a1V=7U+>W22~)r*s|eDkk6AgU5&A7jw4Yb-OCWd1 z_1I9G$o-|Xonj^jwfRy}mg1g4t*)9WDuNf{xUI9`x8AK!oK})k+aROkr9_5!LV9Z{ zHE9Q*71A;3nsNX&iNAgpNei}=^j(T{!o?_KOghVi+$B+xY;FXx7zZN60gt23JhwWR zB^uy;^TNjU65tOj#07DyOV;crI@<+8;k@u{MGedWNm0bKY5GcrQe&p?oM?1LlwMNGnRL?U@P zLf`du4HSEv}+FdNYy z*V+6tpTG?C`-7X_juoF2)DV+saKrX^6n;dQf?|PqFvnh#5dK>l#thT20}@n{J6}>N z!fHMa=1LqhKI~#gZqk5)2<}3S!KFf7-wHvMV}D2YU|7>3YDiOJoJ_}Q!yMz zBUS~R{TcDThT%pE)XA^xSfnK&u}kRHML(pbz#*yio>NBF)_up~Y0Z8loSef7ku7VC zi}rUfo*^ArgEP@-;$WOl5y<7zGtdYJCz-r;4h$v}`&Pfg+ztbNzL%k4>+C{&80#ON zNOsJ!vEvHp!=eUr2eTm(48^rBtX}BR>w<_glV@)rHYpg?orM_)yW6{`!z`D$WOgod zKUe?7fwteFIZg>Z&@}2K&Jp77{dQp1Qv6{pKro7nw_k-G|8Ft|dhWY&Bg zakXXOeb>~asEskOepKOj0$F0XYvC5&ekkE!z~pkHlVf3>BkzsndVDWwZbXW^J+4`I zL4h+G%5M4n(cXOI`X%)OlOWGZg?@C>9hl)IT)jlK6UE*1X1QWZGGcXGw~=;7us5`v z+(qa6W+={c)l#)cn|roDPfxae)Il5a=t}^C&NS3xZd)ch0`({C8eS^aX6rb8S4qr$ zk)4VDta9{~E=pG1dEv*Jl0l%oq|5nW+;O@(%%_(V<NY+f|NsY~DM6S1PknK_}9g;um0uUufly&Za%Ms3mLB+e_n z+O#neV{N2Rl_AtH%D|rS9ZEV>_;nLccd|R% zLa=QPp32UMwkb#43Uz`trAEVBTfUk1tBxR)CZS_>j_oE|P_eurWbwK`Olop)1EB$5 z;TL1`YQLeAwc}3^lm^-3R8L&KRk07Q#c!LNGt~nvLfYQ?9o`O|mm!gdmzuJ-d2$F%%m#GYjpH2|A(jXsP$D$d6Q=~B7)tfR zf@%p`9frkhT1Zd*@Jb4Hf$rxu6@*8xb{#(ywdsA`ifa5Aw!v`fh^4q8xsK)ovTw;} z;uFU1;N@c>>0kmTwxO_ZVR*U_dnuTg7!E8tdU|WJV3BEqZoWt|8xRrzPrb*>ZR}D} zV*n|5Rc#PD4(`FyR)w7?IOh%l)92pa&*s&EHl=o=VLUx3?bTd;lpF~}G?^r;>M?fi}U%1C)7rYwVN>Jwv|^tY#@9s-Pl z-oIlsf0Gk`&~mIyTx|bfA=&?$ApC>T{LQlcL0kUjw|-yzK?ME2_>;)|C;sv`efK|! zzx=(`|Bb)=lb8MH*+YQA<{#wFzcDAy!~`I{0R0r~9Do@x0ObYfMPMal=VSxex&FI6 z6QIWTA4~ZM&-4cw`fu<|Q(Bs_xZjWgwN-sj7U1WO84?7Gf&Qf2b^eBH*W~WkFaD>8 z(@k?D)&wMC{vVzZ=aJ_|Uy0UY2v>Pjv#5P&8_p`f%>0NUM10>m7Rb+|oOX@viXj}Y z8$rIWpYuGfd)?Tw{TP-AD(DCuOY#I;P=G=XM*gG`)_ccGJ*ykz)BQqEw;p>et9p1` z+L|EiCCYKEUr}*|WkyB}mWa`l*Wr7vw|(IgG!`v!(Voe-j~w&!rvSa*^DkyvJO6`v z)sNzr5XsG!J`iUwO}6}-5a18$3i-24g}4Px zY-EVf#iH^n8*D1lD=3`~EIkwgImMi3TYuCMuDq*|Q@gS@SLi^x=$MYMrVEYDI~6;2 zDXip<@4u<8y6&goEJdtHp?d5GM5qwVs_p?R7|^R*sIy!q=d`%YEI~Hk z;lHEFE;JIk25Q&R<2!|5GbhHhpVr@J{&UxX_09C>{A8)$&r*3O$-(*8?E~ofsO=_A zi;gf;enNE4SyTV(R5@#D&QXU7b<2~N=u@)Q#MjEs?Fk|EZ%EQg#mh{`q0}zsESiSe zk8gaiX(+(yMGji%%nVz-i)?NxGdVK+E#*c%s|1)(_j?0=UnAvJO0ZdKbKr(d<|Ij_ zf5xFRi$J>tG32>Lu;4=~ncpThvjyNRol^EmboW$U(;PpKr;s3aR)O2ATvNvbe)64PX zzhEuCe+FwlEw4wtQ;{_oz&a=NZ!qIp;VV90Zr~qpY#8j%ftfFVfyKODLtQjVQ_hwq z_BDyHngB;~%UVbI89dLpv6fTIUqL&NvX|S2m+Ifi1ASY8m%skW7~JC5c^P}9=rq`a zSDr+y1dWwuR&_GneSTKn4snr!34^W%<)RbPGpeQBr(+3WYa%UtMM<&2IOdZcGrWT( zY}X+$KEdo{k}})8y^30YKOnUm`} z5Fu7ryf=DN^kJfJ26p3`KQRN{(=xWJ74)B8|lR|6CLkV2FaksIV!!+T~$e5Gb3_f-GfYqpO z&)!p#AnIV^PlejL-ea_HMM!yAhQR3XK*!h~N)e>YEIBI4r7rN*&4>vys6njp_fak7 zSGDsk#jfU=@jw#XGPOnHd_8j-m>VsQ=hqH+{Ybb_|E2+oe zjle#!hBAu@O=Oqe_0(Rr3Em=i;OjNXo}LY{8?~0%5FKmoo3ezTQ}yP%&GCG~o#+BO ze;+8r^7aTy>8s5@f~@k?4t^+fMaz$0fzr-Zhz>_y+SO4Ex?=)@P%uh>w{KE_2L>!5 z&to7e5$X{n+-ZiuJL8zA?vk%$7$t(*M|$eexp09nI6f8;b194x6m0v251ali#*beI zMAQvv0)$`@F@+x&6BL5c(tdu3J8M@Rvam&cIw=hDydh~-E3 zi{P|wC@_v7aGE}EZbrN%`dH*7OL%pDO`KX~&Cpt)Q^61*eQt1}iA2XDb83){7_x z*JRF^!N?zcFyY9}| zzKFYHe7Z~Z?6dz2JowIDdaTNYiand-$RR62{i(?l_A0#2v!?Dv zJ>4a;#qzZj^jh+jJ2l?m#6`b(sJm;l+b1ZzTOIzFxrH4`9hWJX7O2?bTSr^HJpQqf ziG3?P{>w)@Rz}m9*}}NB$0IM>X#2zo?-$Q~7u`yVfKuOlL%?X|Nfg$7ji5R%*E5q8 zY`VzG+V0$2p-;J&rA&fMXp4>IKq>9XFPNcNKjQ#t0THawDo9a-JPO=Ncu7&FtOXzA z*HoJLSZKE5^qwboQBl0SKr3`d!c_~Uw=3W4dCcDtSN|(O!o=42k8>@+=l+-K%*?{Z z^iOBzzue`2oSA>07XM{jg8d(I?Ej2$3HCqz3;)_h_WS7h&%!=ntN%q+7@&Fsgj*J7 zc6v?@fbcYm0VhR&4m4Ge}N5dQQV@r*Pi};W!)b zo8cQyVELHwHaNM;quXlg3-n-)Fw)$;WWxoSy>aqKlg@FfuorK(pnx5ovYv`jS-y52?=aHex%*b2=dlF=^jk!kBQZ9s#h43%b z;fo1DN362oM!fTv4S8jVM$8mCbHu9G=`@wP;_kv@kE-5_Q#E8{ZOfq&clBf|ssc&P zHNVAj?~4xBYypIEIBeFLs``PFfilFWR=76R1;m#;*Z91`OX7B~Du}J% zEDj^mVqVdU(1yxNa?3f<_Mg+Uz*hQfFGy1@UUJ3w>U2sL+F!M8WN|Usk67a?D47r8 zI%vXG_H!9NE+2O?Bc;V)96N9UABx%+d;N~$M#H=QvU4j8@;wrnqlAi|h>osKFn5u!*4hXy{|2=KM;CWE1P zyWULH&KjEKykSfu7Yfr25*-QFkg%y_$lYR$+glm`x*5L#DG9Lb%Zd;vjYGRZP@O$& zYvzjb#;W3aHBMoMMW;EOyZEpn1q}xxpjhos2ZKujnr{<1MmS%(7+YF(ReuY-9IxE2 zG~Kqf+_DA|eQ$la#VXtDrx%L9n~dn7zmo9d;O$HWLBK8hS#Tlp+0}0Nl<8105G!Xh znaHK=GNgqssH!`=*UD6u@QCXhGm40&7-$z3d?#eqNX1$VkVn0+w!H?hyZRPh#aGI2 z+?J{jfT{X?5Po=qPVS_)az_fkL6lXzIxY?Jp&&_bW!s5vSA-GCU3XLDSs(5I;;EJl z;LQftc8k}%0bbQtw|CA5U{CbAw4z;qJRqCU(`z7GL({7Y2vk%yIWLyVRRZbSl@nvM zpii8d^qa=nA=ij(AhKCB$2WH^;C74AjjxvH1bhf|wvdcZl@Mfby_MMZT03ejh`JjH zID1)z5Gz46yWg_9?RdHbJrNXg9DaUd+JyXtdF5okkGmB%@JfdFpbg@4ef@?+zyr0h z%i{N|m^~NuuJ5wE`PD4sIsQv7@Sz!2upl-<4y-3(=elO^2VR{E=*L8<<11vFwX<%* z#s&j&41=q^bBR$W%)5O`xxtQf!X$W`01&ERTBbD0lZ8DIqRl9?q1he95qvp^AW}2P&8f1RgUAG}@zD>=WpM55 z5-N2rRsq9E+Cv`yUH8WWx7zpTUfbq^|F)?$iTO01OF-t_W>kH%p76+k z6p}z~8WDCI0!hvQJH-JvsI)h?l~g1+5uNXLaffdu4fK`)I{n7(zdEuRARW0%N`CFPnz>Em>YpE)zt$FKM%P5?*q>7ZqI zcKyd5784rjfKzJS9wwhZ-4R=k+wdV8+$Y4!GoB_fS&_?FTOX7QEBBnn0oP==tM{em@Nkn77ej+}gMQ{S~K|Lf@QlP54 zwE@i{!@C#ZFzqCuOC#KR`_fBzJl6Y&dR#ay%D*bTszM?PXhmS&$u{e9hWZC$!#mDHqux*3v*N!(2SC-qt@ zp>B&(1M0velI{m&QPTu+W`9xjVtRXv(7Skq2g*<5;G&9a`xdsi{Cb~fXBRIq_7xxB z0+#aaB-GIzaQ4Nsy5X4kcXAunf3#TQ*fXxII{?1*z{IRs;M8Ic+IS^aPBV4hmEH8Ps{}aXw7NCpfdn z<{JGOLs3c+eW=~4ymTcoU_W0#iOyHH$m8}LT09h4Rnqeg-mKa0RoPt_HOE0n(* zd|P`a{hVvNhgP^vBG|l1jB9;A^haM7vf!Xhu*4XX{iY?iB+87P>B#YC`1mQ*d!CY* z!LK4q;8D7(Z+Rs1!%Z=(9c~`g1YnFyD%)RawYQ3ak6gAxyt^M-vnDL&_@#h5=0+2E7GYI_NoOyB3av)D+O;?1IP%lX&c6^L*{DxJA)AlB zQIm4Nv6r#6#s5?xaoSkX8e4F>u;}6&)^BBLmsCaZ7t4y{Y|_@>byN<=mT2y3Zja!Sk8g}1PFxl91 z{ILYDCc7I;j)-RZnNc1kPM%4yJ_^_k=0+msF_u~%`4>mn>dY`AFT=G5!7N=ejW_fY z!j~A4igBNG^sIp5JwksWxRRm_7+_~_+;=O+w z`5=Gr75C?tv_h&)k6UYdqJ~X%6ZvKdbuadoINHoB1G!gm?&X`o;jpX$9lIh^eRy4y z!_Nbd9C7cVO_i1-4|QzInyc&H4D@Qi$}_vJFdhBiV-GIbUn;)+=wK(BP`jj{9!(&R zsR0?UmiY$l#(r{tAsf;~-*w(@ZVm7MMR1Q!8gJI6gT+Dz<9f4eUUce_HE}dJo#LIw z{AnX%NQs{4Q}Aqn$t8^4StC$BP{85NMxw1!&NA|S+0^x~dR|@%QW*~3yI(mWP?XB^ zPmgHXxsjv}L z1DFE$oN7wf)yJ7dWG1%IoV5(GFREL`8&xmU=n3q|9beV0P%h5IO7A37*ULonG7V{i zS@%@3$=&Yk@XVBfXF(-6q+2~1YFM>Xf*!uH3uLMqLi3M|S5K<%^F?~`s>i7cZPQAr zz0lv0t6&OKU1u8jkd+LU^9%n98W{kEH{P-@xk+#aaWTla=S18lOx^YTjHQpYkM{&G z1UV6bi}c!b76NB-2ZT=7k?&=t#JT9w-#IpW;ilJC)GHi3#+R6koWm0e)8p!wtmXx~ z*L0Q3Yb=BV`KtMs{;a~ zx!3?d+2~mTO^a-QWF!IxDgGUB&BXY7Q-3>=&G8rA@-LZy9KX%t|8KK(wU)HqCg-Q_ zSM_U5PAzevTf2`{#BG*=qPP7R;D5V2oGQ%} zsBb%zteU#i%(}~J`EVlB_~iLTOlF@~c7PBm$N3SQ!aaa+JYCW)p8SdS6N&D$$h1#l zwl%ftazk6wIpJDpgC)a!ShK@-Ac{jn%3g{oID*_Ex{g?IPjI=1M8jk8SViK^qkQ_U zk=r~!DO3CUCL@X-_#LY7o6$Tw`3j}fTgGZU^-kp#TkOua(XAujrOQN=huNV&``TzLuXfQRA#YfF?GNlNWG;&J1v))gDI~w)RZA=5?-G=626jQx9#y4F!?!)pN;1aEA2k6{sS!I=3&lQHyQM_Vss<# z7KLk#UaD{>Uqu_`udeuSu_KgW-vvSpLyq1P^gJY^ewxa1gR~%DSQJ!sIZ#MF9M&=2 z%8%Ag2?&niV|I#8&g9Zlt!!&FU? zS3x(E9uEwMZ8rqFOnf1bwK=FLU3AErGDR(Weon{338~e&^ml`q?}%F~4G>~S1f-g& z@+FCTe)Ppv93=^4LU>;QhS;CHvk1D+KbStFte&)8n0JV?>+euI6=FX#U#Q3#hXG?q zu$%Q>vAwCvx?mf>J>FlY?+D?ei>0l;A)hAB6Cu@Fp>A!bvvB`(jES1{IwP87bVN1B##V{K?iud17kYX_kBh z3fnyfqB9?~Jisz3Oi|T!S{($M`BEH}3A$tRbSXYG-xeZ0GtlL|u0q(E z1ny(D^%6EVODuSZpyVB)ex_{9&qCB=z|YwTEN92d=TNP}LGZSqX>$k;UW?`f^uOP_ z#M4>!oEWRa<`?qj$=*!Q>x*AY03%&s>x<$wtuRWcbfZyD6&S-z)DZLJMI5V)mBkAt zC~MjEsIhJu&S~~9SGV{d(+Yec?U}GlTQ6%iw&-fmdC3dH9XYU3*)RJ};o=jY6IYd&k zU&LEINi)3)Obf^|{qQ8Gi$L+@faSLIvPh>|PEr84+HAq`)EN`Fnr zDMK}M41rIn0EF3w*!sZoOH-_U^YB^-JGpF+Q4+!BtH}cF$sXb1A`MtMS`4Ss`df{H z5fR>U>^By=hx4;pov5hx2B-0(^Ty^crM~di6u=mh2~~!e@hdO{qvD&l@O`4w)v+=g zwHNFm5@M2I;5x5l1G+OL6K`0TE`LX6twOVt#e^1vsHO%4rcf55&rs>tm~m=%<x`rwO5m2!T(xzw$EdjT-FQ^AH-hF zgEi3Mhtv`_n79deB_)9uyg0c?E z8*P7wJI|s**Vs_q*<(N|vj*CB!B&rUE-yPdU8+WJI)g>{JM$@fkT6vma1kRlG3?=& z(m4@M-u+m$qc$dIsV#YfnVQ7A4N(-QqZoFVgpDUfkUu;FKqKl>)O+)sxp2S?pYJ4G^tYH@;eS7HgBJCIeFO+>Qw5_oTPBCtNc#q z&a1g-WwQ|QMsQ7G879a#T>K5G3$$F%Q;9diq<#q)HV~-#Y9>(lHx zcR35wZHmbTl^G~C5pm5gM1Y$4&K83Tt0HP^bbQKAzV!Ep3eLsAv-*JJa-0S-beZ)^Apt!QRj9jkFf~lyQxFHGE0tlWif*hO zU>l6D%ab&W)Md`N_8r~By#-3T#`MOD{7?@p|2?zI+>oqkvpj`9M7mwd>Vj;WnJ+zw z^nL>RvsZKI758J2P>3WFII;9?s^g5u_Ybm1YjXU^uqlBu!?M*?`)yWKT;#G*(9||< zt<2!&^CofAQws^6@nt=%JIc|WWQ+E`g>KsQZ}+GZV}*P6R&91zn5wge#b+k96lNR+*#dMh0L3(VIAKlQ=W6c=fLN%zHECkBNhemI#vx-f?M$!@Q z)@12lXlpWi6MgBr##ka3g@O8X*WxqlZm+s%v>y7{}5C;{t_1dKy<(1$G-x( ze`tOGLx9|$p!8n_)!#7YKLNSF)eSlSP2F%vOY;xi&}XH#mw!lZN&(F7GV^>eT=}cD zM1{4DSUDnhcdtk60SC=lD*zDVW3|VB5JM=420HPXPx{`F!&Qs0o zRMz+!)Lm5TCPe7g2lzG`b4|8%Uj6l%rt#i?seip6So@}KMqu9x05`7-KL{N@ala41 zXkhZf!%mQ4D*B!;iVQK2*)Gb~RH)$(#^BK`F{VqC#}uTP&}h(DEu#hSMG1PwkvK8L z;O?D^d%27^A3X;HO*D8QX@Es`brW#u9k=oB%vs(|XT64dpOab{kBnOhJiusLt)k>v z3G7G3XxfLa>g_yPKm`_cnq@@3)HtqwlO@q8T$l3`+ibKDlM4+OQ5DAGtmz|K0^Z~^ z-xadNOt%L6dT^RZ*i}cOXLk^zidQ)qfTl~XK^HrlOD*Q_OIo?S`fD&;$^id~k9}<&0XHONGj|eM1ZH38P-_7C~y#)j%YGWzd`1}cZ=DI#Zv~+ za{qZMx*U`-x7p`PXOhmgGoJjI9Lh`NWz{7F9`@TL5lw2@E(0T)MTZLs9~LcFROb=L zr6v$^IL<0rV4_U5+V&7embtXvC}C)bFh8C+W`A`juQXIpSw5@w%#vb4V^F2bnmqD) z6sO+1KsqKT7bk613UGMu6{-5n(D)uQs-Nv>8CfIV%(qb_HE%C3&)Xx`Z#T52n~zy> zXtYtnSz$0cI7+th*K?)DCxQ62DW(Gg)8j1t7bB7c?{;^7QXP-Q!bM^+0Ul-{!u^f{Mh@f z<^v6K{Ua$Ok)QZdVP}=!%$i|M-RQ}qvdi}Pm^%^d1_Fb}izB9_MB;1+o}-0F-^^T1 zE8Tl&T9F3fNIw^2Z?#T=!zdK0WmOEwEwd^@Hbz50UMKVzGq&~@L2Anu9%op% zp@PJy7)=>?BaT`2wS@SmOffchno)H7T3G$DIb4H}Legd>6YvO)VxfVh#maf+AwN%b z38|w@_W_QlSu&=Ls@_(($2LIT&vjlghv@>dS4Nm~QDDP5D_TAmKN|@Yn-kY|syqdO zE3;2li4CT{d2A1vI!pS>)VW#JK{tbl!EEzQ`|R<>=S*BNw%tC5p4N+*IL|2WQ%*V06xTwvRNF42-Z6cXu~Eh@(;JgBBx>*g{j5`}(vt9_ znnJw8jl1Ws0}xxmz@rn#?6mjRcyOMuniF_85i`}o<2O_wgC)@CSN>9o3ZU+`8kO(| zG75~0Da3tKd&r+9(b(E}r=t*%JXpB-M_f`tfurTb1=#;%CR}u@;=hM4U54qI{T=x%@K@M>!j=DcNUTbvchVaSDn0O+*vBN_pxT z@Ymf>x&odzhf8F=F#GnRZ%9_GPpSh?VkG%;E3u>BVT5f61EuXL;fKbJ@oqIPUb+@8 zq0lEcQA&233AF6N`ehb9zS}S@h5gEz^rAt0%#-s+=#3--<3gpJ=Mz_ei z)V%_k4TqHaeBDnOWoVX|O^^MMbul+WVQ!lPPm(Chx`K)loRx>PEPVmD78Mmn;hL`K z=h)KTNXq$~p}3RfTpwg{WnT0KM+NlGmby!5CAuXA!MFi2T~(njMq`gM0*^vky@+FE z);hvDPZk7%eevOub+!eaYs$TGGOD^*xp)`=Dx@Yv1>aHKSDBxOPtR)1hQA(| zsE781*$>D;NPKmw-E;O{z&Ni&C?$02Q9bA~U>J&CB>C9Rxh^BT#dTESh@L`nE04fC znHJfHzzzSEE?12%CQ&Yy@7DsA_|@9OuEe6tF@K?UdefX(PiC6eGcln*K_kYWan7E# zN+q(NoPqJty{Jb{ldxh)3DF8N(&9TYiFiB~I=O4nmj6Y+KOQ?zrZ`7}Q$V*w8Vcbo z-!(dVy(K&61}iCoYT9Q5JcDX%&g7{VBMS7m;R&ut*@c*w-0X5`m6o7yvlE6}NJ7=+ zk(yB83<%L$X77CqL^D4x{e@TZ(x!5qWjTVF$8T>fXd*J-O>O0}b<9cAh5CJJIrdwF zA{>K!Y>?Gsd@Ua*;mI=`0^;;ma}65Sz0OuV|zRdiD172CGI)Oq^pbKV~3d;96p?~m?Z*}1cK#$0RdHOHLSob$R) zkqZjYQqBR)S*(mp=MR~P3*^Zb&`uIETC#c6`I?(*^=eat8JzLBWMQBy*^App?ikPq zA-ad1Ipbw@eI$d?RaNagOGUA$`Xw-gR}1esO?2GunX)w3y{0k99cYeU_;h8)@qh9j z%uf=jZ7UZe%QY<~|sL5kgP*UE6IL-2UK2W@1) zcE|ae)^6lC{tJf3$>>KzIN^lO^f=;en&8{ss6}!tJum3X@cw7%}^@Zbtw!1zUKqOKy z<|={UM#uj3e%8i%hu_ugfc(ennIz4-PuI(sfe#)BhIzJz5P}g$bJ&Eg+ zKS0oNI3)qLj^4-P@mewk5Pc5a+u{o?!u1#dsKrcce8++45!hJT#YVT6^VQnkkv)mw zZu&j>)q)@NkB)h~$XK2DTSbgtzWF{pL?=c8)?w5=!g9XnmIvg{L&cU%4@qlj^Au^^ zelZ=W-?3?M?sEeUv*@fa?y7X=aZ9Dgbp6FSbg(v!wdY9<+1GUQP@K$PT1@iMth z^^-C2W#P-T&H3JG*e*eIy%=~n-?CUCi%Cj69lt-nePO8!fcy5w5kUG?_~>9mdPL0h z?{c3%!usFUEGABN=09^Ej(=9O{)f{*{Y9AT-^g?SS~L1Xb@Ly?U`rcL$_}dMp87PgCXNj{-iAuoxT&v3=t-O*q)z(^tv ze$riP=d7$t(N7DOF0jq7(dit68H!%S%ys6iVnzJRCds-f6M7B>FKEo2g> zjx{Bf-ISLaX(>cs>)NV16qB?P6)XEe9Cx$1s_8B#krowWx-yU>$`XgOs8?K2;W;a z$;N$D=Y_K#TWD`0@4K(>Y0;}?!`WDhE#|lDI{h%+IFa}u=q?D%$Rk_0_iG^6SW~d5 zI3UBM{NBdEG-Dblr2C+Ml34TvacVnR+!7ySyN5q=y{P2jB_f$WIT#(xPu+V5Px$)X z(kj=NcY!+>4^nFG^s$+Tea)|4&$*uFdU#0ewgR|Y96NcQiL8O6P;{V>LcXC1y{5E) zAA3?$>*qJA%BTSw+GFnbH-_Q)ls!gME82j@q(f2aym;^)X{JY%YQjs6SDMVN4!res_Cv2@=9;W(IGG@gTS-icAJY&Rehwh`a!4}* z*esu9jrX;uC!sMM*YWzp@%q)TS|*J@G9)z1-?(6r;V_iJp#oBAN+@50#~Kg#CcY{* z``GZ6vvM@}8eJUZ=X{jpWGZSNaj=cd)uZ=<@7YelB-7%Ut3=NxGMvqP9RN_HdCmk& ze-f=E#98Y+wSFhiI(Dv!hgW9*wyGh@(tAmxv?G=skj&G2++Wwj#UlsXio18g?d1G? zW+>iu_GGw*^rG}29*s0x%h6bi*6oZQiwvR-e!o{b`G`u@a+Z3!56YmRSO0CdX9a& zv$^ZRvq>{7?&q}}i*HX5Pj9?iO;)&VTHsE)?aWUsd`_p35>E(D-<#D-V}o6A%q4O? z5pS;1*kxnHi9(o5tAg;hG+YuQ2}_QT5u!)jH<||nGo;H7&_o)vkV#EuZ!2IYJ^wgY zn{#+2Js_r1zz;8oVL=`lSPvJCyI=BLL%Yk{#7o8w3C69Q8d!8f+=TCWWW&5xNQ>3u z7*z~5^-POhDI)Qw)ZyoObaaIG*V(D0G`C5OBxB6ea1exdPvUubKVS^FFPS%kUz6Z= z-(7#|iV$R=DWHVlHxSiR85)vnApZa%dqzM(OT(O3Do_2@aty4Y^+SzE2sqFrtk?qb zUH!w0Ma|^6%yev>^$LtgdH$96GPxc+*MU%Q~ycUt27a7$O#|}EAox);Oq+ri!wSy&U z3EuF1!=Q+c4iE|l3%z$E7!9d(6dw#rXyEV1)9g-{lngwf`=l7e?&XYQ$E#+k?3$CYE=_Z6O9 zds=4&s1FH8_Fb{6VV;`4Ib@h%94{)9NQO19QXl=*?t(ntg0-D!}hW`(F+G)JPR!jxJ$O z2#-xHK5!s!5Z(mxmKOo{r0PQ7yU>Z@J?>3@Fy>F5EZ(RyXbBNTDMK%C1Rfr@azS|u zl=<9)fT-!m^d_TVTdl9Hu6KHW%s!0_&0+S-pr|$x%Bh4_K{w<&)Q?6qfeNLR_4h0@ zvI!#Xxelv99Hx3uQUdnXc2G4S(0jfD(3end5{H>q4T?*1C1`JxUhMb>rYTU(E9C*| zX=&YHZjok3%S;U%gr*7g^Ko~isF2b^Q(Q)0!+vj+!nVww0TJEVM)gSP1IrPvWE$gj zF=6UQgL?rUhO9@LK*liL!w1`gdS|IuZ{k&YUZRIjfLH2wNqV!;&OqXRfNyn^%lm>z zKamf=pd##gZVJ&UegH?JDC|289@08sXf2FWHp)xGvNU-BOXQwlbEdBWjQC8{G)q9P zs-p%li+ZRWu1~bddZXAsZsW;50S?KmA9g$k;AR+IE8ZQ^!c)W5Ow;8L!(AT^nA+T) zW?sPO<`x4?l<({8E#JefHoiJG1KAZ4w>Z>q^)MM8q4U2X9ds)&Y~)K zSwmX0Ysuq(304jp4Q$boTC8?j70nsOO|wsd@L<1>L8|Y}bCCja`jPwKEq5*gJr>m6 ze2Kw9#cH5f`O>b*YnQurwmi8*<#Sfrr@Ki*=9O#4@bw-$W{?FtTkcD_HjVB}sSS!k zb&k9S1fz4cyvO_|wV&+8av+?nHy7BwEVeqQN1s+PgJ=NmnIUHcgF0c;e)^cx=_|_E z(}=NFDybf^Dz+B9ta@I~FC+sRF>NK=$gq8nl+n1<4u9Au6^9;`B#!u-|ZxM z`cHYiuDy>2fOpr|9|Q?_q;d{3^l#hFT^pZh++}bwEe}@9HLW3OG^R|{W-xHnQ#Gv~ zxO6nwygpgV4o@hg-hU!p1cBQR%5GU!np=d+l)+ewI*9WA*7&+5Sf^P zmih1tdc(-x;0}u;mu~%D55pPD`%oPE!t0D*vKSIS-9MT5ZW;Ox$K?XXeCx!ayM(u| z!l;%zQizoA1~W-{8p;};j%s$OX)+tcA(eNZ7BRHIo-a2{>M+#Cx2`^9=! z?h6>=4BL$PJkzNZcolI$b~Ui~lcWm|2I9COdUM9FrYpV!gt+;E;a}yFLedZ|L56JV z+~EYrO&|iaQhpc_varC6$fkN=lo1zn*S*k9A>FhDGvv}sTKPwM2||YzsU8``gbeQt za3cmBj7yo@f`Q?}Oi}b{nX?=QV6T!xA>P!tesuu)f@B)es2=CqbODfjK~VCtZhY#Y zc}3%9*q66VT*M3*JG^SREE@oX=UHv9uf=%u<522VcwX-@lVAC6233ijySY%gyu^%Z zV9g;YU>;o41?Ta}5zHLV@kB4*EAO&UdNMH$)`-R`TB(As-Jjfc4;#L; z@$?~w%u@c)LiVLS8GhM+U+Sq}4foPx+?(4O*FX1!AM-bi2O2-gkhXbOxI4zomhQB_ zSl!R?hIq=}oqRE?v=s*HZ;Jqyz6@!6-`W?wBwzHP6Lqxn{?x*WWcL2_3N=4e>pBQy;G0B_-FYfs zlU*fVBYD1l&NX5ga^rP^ym=d3^v%Lr*dbxyF%uesh1?h)iC(=KL)X2yWp z9Mk2a1+Ez;ALoyQo={1pQuX~*wD;Q@hy=ESEhr%3Gbu8&F;X!$pw!kDWwpdf*2hXa zu63^(n#6LbVIatWh0mVzE6%gyZz zuI1I`b*ryhDny*Vr~L(=XA3w$o+Q)<9mqCP0CR)>a-hu5K*h-)5%&>?dSqVg3u*F~^^Mfd8Y*Zhy&4|42js&l=mODDi)(o00XC zDwge2gq`(sG?3*}^yUwFnNKAk4o*6T&pPG5(#**84^EN485I1K6#6e2^AB+uR<=)? z;7?N+f3w*BVH(Tl2<3m3f+z`I0}6faM>$L;pO2PwgqDe{tE244)&Xzx#pz?hyW3b^RCmTmS74m{~s+zdsLw zjj<&)s$|A94}f0g+8_haCqr~fVZ?QCOcY;9z3Z~ceTw}p$X4ZXwX6GL-T zT3bWA&mXp?b}n?kpa1>FbN&e~{YxAF2S4(s?mEloRx>lO6R{}U$q7q*_|Q)`_0Q*MmqQ}~MMQ^oF+Q<{$RH=i@(rw|tB zzjg!uZ>`0g|MYzS-8*1w?_{cPY;X6ey>6p#XlJ7DU~R7dc|`yJcjEK={aa{u;De70@>m#q0W)vHe-Ft$%)m^pq=Re##{ zDO>jc!kE8$$$tkEKmYN+#Cr5+Tf}COE~#Kg53#+Ijd>@kdCu^%Z-f$E#19LMD~x2E zkrVyyweJuC{gKp7P1+SdX7MA$ihdqOzxp78629tg@q1!|tGZul8Y&`u4vqw;BL#-{ z_77CXqc7T9A`J8ntue8}5+fa$YNB}}rWDgOFu?3EJuZQEcRtn~#p?&P>`a5U%n$Ed z;p>2Y?C!Xv6^|f@AV%uFAW9&F<{}PSNoo{N9KX4 zqiB#$B6(@F4L{Un2FJER%2M%M>SQQ_yU9`a6L9xa<9WXe1@W*Zf>=SWImtXzT+NZ! zwJ9*djAUZ#i6TzjnLcNaAHP*N{pvLr1a5dPQ zd(FPPp#Je5xXnU|T>dLdB&aAMBxQwRkgrR1($Gc=_WsNZ3bx4Lgb|DiV*K_p8|Ix%QYyK#%K+ zk5isl*sC^`P)K6yc?7=R90Ih+y8EY@NUo>=JBr!CMaaVq;*6@lmN0vre)gv6asWG7 zhv~?T2s~%Q08p7Uje)+(T?qEO2m!#WXa{)j*}cPRY)bViLg4X7_dfTIK*7FbjS^4M zV*%tc3|a~xw7DTR;)5#y#lam;{lsFP9`_0KO0x~$hpzW_;8ywOnlLqlTG_AAURmea zv=$lvk&{ymPYC255{@t{gBSFRe|3HfBG(rxbwbvJmp@h#57jh7>=$qQQv-$iQ&qR9Y-i#`qf8bO1F>3%t0KVIin zgKX>b_}Gp-OjmTkp&#NJortOSo9y}??iS&eRqUC_)4U>qA{DZ&#l<=oB83aUsVAaJ zpr%*Y$*_B7iM!VfB!+n*US3z167Sbrolm|GMzv@LXC(z#2~}ax!&)6>K9~%E0^eRs zJS~nx!?_eB4==wwZAFuT7KkdLQHl(Gi4%!yQ6o)f7eyW?M!mAz>RYh+778Dv>@i>h z@MEI|T#uDoqGR9eutk|Dff$6709{Is#^FJU>mVj&rVJ0iIt~Gs4Baezx!{ZV{I0bh zyx@9HAMU7B5X`+HhB?O%=NNwh@QUsDLBG4DIjRR8fS8ik$Ok-Tm{#i?bd<0yi~10% z4PE$#OSS}-XcFNv9b_sesd_!JSAb40gVyRO6gxR2Deh!IKOb-Fnn=H~={|IJ{V!RG z@hvyPUF}_detu-MSO;*&@sg?dCK&kDi><~ONg$pfb=PSx zrFmaZygbfV0_SJ%sx3KR^LVcvG0d3!Gg_)xfXz_qN4`hMIp}$xV7O)NG7!Q;Kf&y0 zNLPSIu{-Ko;^jcEKB9F>&0d7nIp@_p0m^_?`^6k!K;Q$AIa@rTqX}Rr4)ti^904)V z)i!Jq?Du)*Brt}8utnA-C?Xy;o6herV}DtcbAfOfo-9rEHqQ4BTRt=pUd?FG)$CQx z-wc;p9n#{eeVzc05{~Imph8g)ss8$F%zA8r#Tm)pI)DG1g@@Eg*nV!Fy9kDXv%^ie z#^*cl!b!S8LfqX@B)g5Tih+NEMgS*jVw_Pk>+mM(o{3~DsUau>WO|2Q(h0;Ptqg&9 zx=yY|XmIS=lKMI#^ke=tSpz^w)7yRKNsthKqnaGt5iJ#XUwE=6rgIle?jwHfbLvH8 zVaN~CR02_-AY3l|J#R7-PkxyAzN6EF>dvqMJVF_r-Yvsna8JnXtkTRBO3FGk(T6&{ z(=6#(F z1X7S%8o%`DCJph<8G$J*${=m}r;57^8~X_hX$U%0S9$hZ_;s7#bfhiN2C8@XgYZ5; zGi#IJhLga0?ivPgiya}`!;abj9++v4AsNof&A_N+2c|`CABKdzhXD>cJTbueUs`dO zPLmLs0`-zm&mfOS7?S*gqOJ_DN`f&9VUcoK?#PDRS6TWHAFoCKHcvdhP<#M=3Ru3>UWG^Hv_$Eh)n)ZU;+?^U{$o}&{Q&njPTX+3bV_qY*gGjfJwd4&jH zAbB4)Yq|OqlSeGV$tdKpl|(ok+*o#D+>}QUtHAo=NYrB_qz+(aqc<8m%mtGCp$Ck} zU#-1n0uGf>Y0QCeM2wKmQM8_@fvSLM#tI2)Vf=XxIpFKq0<6hp=NS8Ql*G=;WRZEL zv&C6GbkOsfJ$Y|4_CLVI2v3W&!;rmwQZpKF6Mm(5vQobkZ~_%`+KEaJv7 zm$vhrPSa(@$>(YanKI|auLm7-uszQ8QcU zVtf|qnMxCayLRZSofzNFNl@LDnAn2P-R*nfw(%aMruWz&i_gcXzll&Kb{5>s>YZWm zRQ!z!hs&23iL5AQWrz0La%w}crdA99mJ%-uv|!<)8zf++X@e6vRlnZeTrBl;Pm{Ms zWXo_H>80SNG5cLS1{~b$mqqpN*PTw_s+29MS@>L!EcJ?ULL|Z3apw{=w&|-!waXd{tZ_6O}FeF z_I@J3TR~TLn5uP0j5h9tebJfvi`l+!EYbxMuKfp=h_gZ+Kyz?PN(n~1S2bu37@qSo zOskXT^Ql$#>Y%h~Rjoeh~IYg%|Ld!6E5xEKPnN#z3e(C#X*@OiHoN#Fy zM50NCgTYPQ6V1g-fhTn1E$(9t8ml3=oVE5f}3`fA-;*KPWl9O@T z&z_;OAfXmH_A+W-nrH-v_FIR`aFi)C2!whtk8eu``s9fQl z56RuS{wnk%K_d-v_tG-e?s#h>*#&*kShRG1`~dCIi{K~hdN+YARA}<5w8yawuca3s zKm5*4^Sn7@S3X7bcb>=IEuO38GL(rIl+&LkIu^eu?lr^^e z7}UlNcP1tskRJmGf8skEe_0guC*&I?UIM|!?*O&LvuZXK63P@zhcwXUJ}By>K9$@4 zCNf#U#RxF7pO}kRm>^IZMe?2NUH|{We$#LX>{TwO zX`0zrUrQoSrAPB(YUNI16u5hF)H`*PhV-{c3r#^uswrTR*7{S5*KSL>?0o9IRN4REQsD2!IVtV2hzbI^8GRn|A>5k?_I=46?chc;K2E2v8X^*{Btwx3dflXQz;6 zB#e?u5%QtOdHyM$tdBJ$r9GM;`UKXqMULS+7CJEp{Vbe6rkfO=2 zGMb)Aj;VsO$x`2VDPFN|pwxSxSEMCrORY<33tN%XFzgW4FEq`G?+YHU56xnT_M$o8 zd@FP9x^u0wk5)A;maic}_cnVrp@s_HT~PQHQ!_RC%5M<4XrX+{z4obHm`$EWl1v1F zK0J{NiO4pq=Z5dYPcAi3cA)ho$X=(qiWpo-<~x#cR!!=@MfraKZbxWW{T-6|M~?U# zU-;DgV*0bkhV!5J)9?9$KLEksl*WI6aeut{$LRRylYanrp9scp+~oJ4{vnz5`^E2c z{f{TVGv)tdJmFI}{GYk=|7e`_--X=%*pB}=XZ{Ik{a)8!ntB)+{t8X~GY@C{ob>*D zmQ0thpbL={)F7h8E$a^bLVX;|pBYeC&GsNvk0gbzrQwdpA*fK>7qCpEQXQHh zZaCjcy39R$Fj-94<{oBxlq2igTG3mT>4h!DUini-34cKW0qu)NE;(t)tX(FY?+M?Q zKMxk3@E7L1lA2=_5Z}Sgo%VL>fLO8_19XbIo3}#U*2C{$`h7Hwpj|foMB{#e+v5oc zm-}utL`JA3yYc85mVLDMMMvgz3Q21+BTjG zSH2%3V6xqCW#!Y3M0}a~g(H;!wGzLT9#QMhwT^NZpf3YNJ6 zO-d%73|5lxjv*fwq0L=!0(ofRDJXUE{#UW$J&W`4g_+lKzO5QJDEi^{`eBch#2MmblVn*M&MMi$q)Ed0YjB-Ec!ej=% z+m}m`Vgqs~?D^*u=Ne+RGhj<0Si_V^okMiHZ18@=;)h@1w{L3>oQ@y6emGd9>f4s0 zaLv}2+k`8h-+-PlPZNItB6lo}=y_^VI<DbYpCE(h!S-j!4<#wQ{s#0u;r(IN(=Z?TrRty)pHkGe zScHVh$vf`@2;ki978PS*Dp>h_UDqGXXcMa*oiOu-!T@_C=HzHsDB3L5I0;u0J`Xk> zZZ8$FZoqgEurufTFmsXYJU(i!*lZR?G?!^>+1ZsvDV97iwaZm#G$r3)qp8M)6CLuc zd7KXnf3gm3(rq{tGu8=K>o~#{0zw-=2ljL$gPL7tCSH)n>n~g~5AMJUjy1Gn75Rj? z*lQnVD>&a`<>h@-Q29GS%YWS3-=2|!^H0af$nd{}BIC~z&p({ffACX(MREW1Q-65u zf5lI2*zd5x_)UFgVQ3aAZ?!f@>%a84U6yJ;vl(8U3qkWrUckB>DY->{|CBS5=H${I z!2ZqRrm}?B;rQZP9%F&4j3NJw{e-lJ1HHijXd&dyq(&zw`G%9d(`z}Pom!vOO0pEh zT+1reQUT;DWhu(VTAHnsW&7%19ep`9(vR8Rv%CBTaQ@o(cp^ld$zC8 zLDhgo+f6QMRN3MCEFeQhi~*!UR59h(l-TJB)<_QuRH$?kt}l<1CgF04Aw8Yt=QNYUFl1z8akaWQX#SCCE~3bDxqCu#b~@fmbwiTAoHuqVycp=Q- z1?hXhv0yO~0edr(L}yDYbm@=ry}MtS@Q-G%H-nuv&_!YM`y-F=?Pwmk6F(bFM5N1I zfk=l@qEii>BMW?3lgv{fA|0Vq#NUp*${tMBCMc|;V7SdYD4E-sBg^|{LWUG~CK$J> zgk~srP1^$rn49N|5wYo#{UWg{@9iJ%i@*s&5iZA0PuNu`es%iSrcrJ=8PQ3pU3!KH zmmV#=qrjegkD7wRoyCy(5vq8UCp?$o0S~<|@9HVOaU*y%{XwgWYf5a;j`*TaUY;`+ zgL_o0f>4E0QhpjA>9YnqvKqGL1LI)%0Q=NM$fJqPM?3S1~ zrXdBw#+_Ew{@7}zxjGA%qjW9A}`k1dxbL_bj_8oytT=-m;;(Gk#fe6hbJ%0zt*t|e84Wl{{;;#N9)v8bz)cvQ#u*_21_!uoq>5UVNe0v4 zdFXB9_1Mth8wY|nk5AbiD+&rRw~It&9`mdMnq2wd5?ERG^>8sAjYW>q5}!J|-KiJ? z%nc5HC7cY%tc%{z!BjJ++c@Twt-wIiYUbYOh8HtO&u$LU*oBb6Vk^#KGcD2!24{oa z>h9$19eY(Fk<;x4Sx&t)4?9erqbx5P@yNU~HCM}ijk%>oGvieeE2#$*&Wi@#CCjPq zL=z8bEL#-h3%jW|g#Ec+WZ6XESEFP|l} ze=X*l(6Y5({f_v4t}nRy736Y;h*D}7kTL-}iAD71K0?dGmJf#msn>)VX_e#%PyJz31&? z+)u%Yla)l4IEd2n6s2MyNg7imQN%BYZ35lhk6$UX#BV3nK%Y}IRn6Tkg5N8v+6@^i z5eU;eUV(K#cDB#%25Ja8_6{|{k1T0wFSq@9m12gNn=pug$RT5im}c#W>lVqQ(gi|{ zGaM|C@fwlSjc@(zo0r3k27}3{rDF^dISBn?lR#(ui_$EFA@>gl1Wi?|hWy4HPR&#` zHyGri93^5Ws+P}T6U>wA*pb&4QZhKpc=3kTxgJ1*S4LC0vdW5Amzq^=M~`~Y?t?gz zWryHK!M3x-93Ufx(%EVBeN#;9jYB?hj3Yi~CzK1iYmS9}Mq>CzA{nK3 zXtX{RJMX%w(K_~&{mV+5-EG8hy>os!hss4$9eObOBBj%QygxCflTAKqny#T#ZR1C` zg6U49rx54Y3v35GC^>{?^XH?)9OTHI1!+mF)9hY0v!-UOV)HMd8{rk>-eC~MxGHwN zqpSV}28^NZ^H|wiNR}!6rOt71Uqo9KO{*N?6K_BFECH=&UT{|nJshe$xC&3U;2NsR zLZ%QyJU2=dmkf}ux_M&LmOoE~G;+tdfJN-%>2W_MGbA7}ByE_>+~)+Y%2^%4hk>0g zc(7AU*V6mhogk}=y&*qZkWvCAr=OCr!>P61lGt2$u54VKxf7jXYpwSC8_qu*P_nDH}Xz=e;E3LKd~zOf(vAaRab zsC7=-c@!ju@(5Zx`^LjgO(ht@-!5>sPVHMMuo=b=A35|k5Jn7TAd8un0EQYtp77bs z3(1DNF*T?e0|`v?;wayJDu3kHPC@UpYDT$BeIuDG#w$H+U}VDDmQ%uw4M9W;2n(Y5 zQ!XHh@`#eS2HRz)8XD#0{$slB1Z6XZ@%DZDfj@x2{-8?$3{)_Je(5QZ_nBojm|Swo zzZ@1aYs(+(%*VmzE=YC6ewL!vLkhjt8|f6To*j83!Y{qNFLeS18)@ajwwMi@Z1*uB zpJl)j=qs$buA2kI(_=SWew`qO{#lrchqLzq8%T?OHm3{4SB=I?+i z=hJP6a^-P7+;Va~V-)wI2o4;92KiBYhj9EDz0kG`2;&;vL^U|K7K<-vYh>fOO0rT3 zyDi%pTb>n*T-n{-19C;&s0zlA5+RZ}2^v0NECmz5zu3(3@bj{hgyKNA1jKZYv-c=o zvk<-&<|d*zLxt0woWwjN=mTsg%42N~+gdfSH_=o3UWLh-?SM#mQW_0UNYwYa=Di57 zoXVMRZ4Sf$@sitw;!&l~7S4iDfiF2zsZp$T@zAOuAsjcjwNlMlVi)E@YIevwk3!|h zxKS2ILCztP1nKhayU%lY?=|l?3dJzv3|UIJ$79j}ks2e?;3VXY1MivmpiyYj6bMNR z>14Z?qKpx6X1rQs#*q^QZesozDq-Vi>c0{@;PEuuawwdSpR(0}F%6I?K>#>VfG}}K zeI8L$J*xvwyqpIp&YRv)fS^%8Lp|5YmnJYpQW#QP2Az*r16ItNY&1nRVF72RTuAdk zUVmvt@d<2k^a*Rhh?$Z=N(87Ebr*9DX?1i8;>6rq(&v~~?g6ggP~ZjMq;1p$#sk^3 z6V>C?$UF7gC|n6yMy`0OLO4_7p(mNV)f(DiPVfagd2D}ctFOs_E+1Xfg#+?$3k660QxsC;5n~)!?gu7$!ryh+;X{SIu7jvd=c> z+v-%t71DETU*?O;=`rcRE?v0Oh~y~5U>cCkaa6xj!k!KDk`MiLy$(r2cECaWbS__- z!ZI*p$_X`7-o_7l(oI1CDAdkdti%5XtO$PcNehk2^n+tZCk;QG9z{z>7qI+B{i9>S zZ>`BK`Q+h_btvJv#8M==t4H5)wqZ;TLyiQ;eZ*y+Uh&lM-KcHYkA_`8ycsJz2hcP+ zv9a?7X2KMcUnb;baQfaFm#h6;kL#A8$Zxtx;p+!`lx6lqrlJyKWB>Eouqhq36?#ME zst7u2ZmbaccvyJc#sDZ+$C1wysN*njF*Tu=_`P~M&g)3{+`F3V;gq@iugSdSunZr$ z{S6dq?J(#$!^Z4clhGX085HNE_ttUmQ_Lhs;~_?6A%oGZ8Z$wxYG-*VZw$P^uSMZd zAOIAnQIWpAP@jT5-@J9s*Ky%cEg)6VuU~2=jY$YmzNW||yoq%1hNp!<(P$9OzF$}N zM{D#-V<>N#*_^`D`WL~oHj-n4YoA1e7ITfRnv_zhX2h>D`#Yxwlfx4~*EJK%K0qOG z8GJ18o;}u8Rt`4vxsv#;tgc&mbKbTu0{kSl1x1pC`3`sz;~xAeDg9xKu~@Cpe(t)^ zEtL7TrpyiAODUHG**A$}ZthMS+9wL2LM$Z*>JDLzFzJ;QZfuU%TrpEqcq`CoAY7|e z+I)5r{cA(@latE-b<;m|DR}W?JW%+GKH1s-fI&vKo-Yy^q`*s30A!%H$8P^t-=@d> z2mjD)3jSL!Smbs_DX)F%AO}*B%EyiW3eTec-(Z>lh`D}e>`csm!7@KV%Kv>~=HEbz ze`2P8&I>X!{)@~fpJ8VF3LDaUS9cIT+#y(msU*ssQhv|c zM3H(**L%+=+{Gl(DK_SgYuP!n_1g(JlLRfE-u_#TEyrka_>6gTxW_rCn&)4HL4on3pbFOZ$7g+lmF zl36~%Xou)z^Sp7j0)m^M^nSwbAK$%P-S3cL>^Q6z)($08yvp(3zh)SaIQ@WnE!R=V zmQubBe|_+IXb*}H8naKWN|Js&7vad)hCoK}mJ}1<4dN!NNh!1tCk00h!lhQEJ4V%S zNg|5EdlViK?RSDQq0|)qnJOep3{`;es;a~Kt#DNM;@mL?wW2-4!zRN7l_dZkglGU! z>2w37DGF`w1f)?d`jG&&3{9j{Wh2sROgaoCCM_61|KjW2m6f1^3=a(Qmaz&UP$*5n zT_0L&;|S%w(KLs2089?KX!~q;^)WSm+ZG5~Upa9ke=W2Uy--rYmxdVVZNZme>Gpe1 z(?bG1Bp6&@S~QfRE(lzy8~=xY+yqB>1eOl1>E)%K*=Zpbb*DWMCRw|)Sbt#G z9`lO}By5=j2x1LECMexpyfNn+63r8`Bp4`+LqPiF)4#D|idW|$D%QxYR!uth?Ru8Z z&{R=x8TP#Dn={6=NiuZj^O9D}>frQh0x422fS6!1sFhqfH@Q z3NapSJ~aP=TApq@5-eN0DM$c(HcH3XQ4j9A;4baarUH9sVC1_ZeN>)bHx|MQg9^j4 z=;3mI7V~xjQ4PHBib9tO$`Wa1sq&PI^`7^0T?tZF*#>;2qHRhR1RzA%RUKM9<7}&uU=j@O7LzXOUZs)Rre>qn{35ISUG<3tznXhVZmUDi zhiZbe^Ly?Cy+Pi48@4+rcQ-yfQ>_|Cah%auVv$e(b-Z}6vjma=3wl|11dfbAgdRby zYL2FB)i%4fFi>dz;Y~H$(eoIc5&MHB63Z1Dmy< z`#E57KtgRHLAIK@7{e zmZ(FLtfHcKB&cX5%A-DNDe*2j$gmrU;8*Kib6J}O-|^0FDTI3~e9IeZLMOYyW~k5H z!ul8{N~h(^pV-KJP*gOeq^=a0v~6i$d@2gRkBRlyW|ixx{7O3wV02)%vo%NBNe>W9 z+S7vF5wX+vfApG^Uop$t@Wn_1q`nF?@mL6qHZ95&&9J9Z#1Yj5!o&?jl_T8Bty^k0 z0H6x*1X=HP_CuNn`gt6f)ilhm6j7?a*F!gYO9#~aS^lM(g+o#!jo;Pb4_P`F~_IDQRM;3l9g!`+wZh483*aP7>G)fp=A?d zwNh*{?T?oWcT2?p9>WlK&L!U$K1vSj)wu;!=r{ZzvNb7&+%{0}ese6N30>lwe%%Rt z>MQ3yg_lwNMME1y9-{G}1*n`hBj`*6ypO7jogXiv7mYgo6xZc)NJniZ)N3%ITVE&2 zM&IKv`Ote*-W+^|M;Wl6q^5Elm<^T5oY7u^Vwcz~<;{Xyo{QzIv2D}#gJj%=2cQ}+ z`ALUfGnxKCT8M0z0$LtY9^VDG1$nC@E1ZCk!8?$s)L?2lNze;GyCO4Nev1Q>NQJzw z=};~tTG^-%VQv1oQCogTtMb~?k#-4!T!PD9hx^NZwj-_FC#&QcDVIM~; z!2m3XAht=sJqX4V#dTzK;RQiI=#oYB3$Vz*uQvBBpxtJJs3uB~{xS80`?!6`@!&#M zdW!;Qb5&uE0+(Ny61Bu!xlCcJSJpkqF)~MDIKTo$)BF$$(dPgxeMbROFSB;Mpk<$T zBA~CjjUYg-gp*u=I9nG(z&mmhei}jv4Lv^!^{}!8t_v+Ejoz|fv{QxMzrFkYYW`*A z1)ZH{0|G!g*hG7=LvO<;6b;97-AQ1VQXqK_^j4dB^k;h}MQ?Zk+l+3R;5Ew8(#g3cwOEqg(B(eEl5B`H?`tu?^&`b%m9m9^J>m zBLPjKADmSQhAsxE#`z_wszAxge2}lM!!~S1YZy_5?x}g1Tx;Z2jQf6uC5VN6a=$)h z;L3y(s!rVK8-4VS=M?0mBu3WkgGrEc^!aAC$WH*f-|HS|{akl;vI01MX+P-ZZ)e~r zN91J4aY4$(KN&em<#;HZin&a8_qKNS&|=TO>I+=0!r%10RTI0#GFO-9a~cpzs)sEu z?n#ykU%QK0@%;U60OLjI#~7*g?F-b1s5`8(?Z7%(3~g*DhZVR(il<>&y!fjFoov|k16!wwq=k@{lTu6Ezu^N!^y7-F@P7vp zN6l3EyMXnN=7fv138~*Mjl3#>uXGBl<}f` zvt5l))863b6-%A;Z`W(6GcKa#&Ur_LGexe`dG1^WS0+OFo6``3boZkP9BiGoV*rMt(q6 z_w2T(L&8Z*Da=ZCeHj7gWxB&KyOhtmVH?>~;6yS^Cy_U(dNS*b#R{*lvndNEMZ!0F z9FD(ox{yd^0E>+?>ve%8=MQByg|org24?4L&|RNXZ7s($#k5Dl+Ql~3ZHlb8JpHP9 z&OwZE34v;L5ywaiB)*Hev@TK$@M3jeHU<+UOVP_`zr+xq!81(Bi$H?P?FEiCPs5tx zy;Km0K<8>pJUAzE2~nh$^|Cg=)pNl&d4bgH0I=HQl-)D$=9&9Rv2n;d=8HrsO6Ofs z_y7Ypf24T+!o`U&`p^^!NIvmxBRg0Yj+Ddz*-m@5AG6deh?2dA!f0mKwm~DarirF# zXqPhAbbt`SG!VHDqJ>fQ^0Lz`(nt4>6qN{R2@|*kD#_F~HDc(D4I+Qf@~ROQn2_pP z|Kycp+SDH7z%vOp#mlux>DSf$4~U= zD7v;jKcOGiF4}hYw@TIai#tdq7oPP1oqLkMPQqC|s`}^XI@qw=S+w_5n&JCp>hgZ? zu9bFNhXGyq<_#V2YTkGhiH)_O=lkya>lQX@Ci2sJh6G}Fp{L^}y*0~AHS+NkOfW2H zWJM#vJzySE<8X03{p1pCVP84H|M?7flpZ@-`{dRolI8o_IC8=w>i-%@kR&6Z90EIu;WACgII;CnifP+j;iEkgkV|-hn(}o28=z8)F|k2Nnd{DDa5`o<1-BafSV!T9F^^H6s9TN zZJzSJldFmuF6?1+>FgGPK@!@@43L&1(EVg%k525YVi&Xo=rM!9CrARjl-c5T2MM}_ z^*&ZSD#t1Idm(y3-S^+dFqnhYaC#xGLOSx$>CE!Vu ziDdj0YfQI(MV)M3QA_v6h{F9YBG;))3bZbx!kQ->Y^BpZ0Z7CeoOzuD$lEg|>+J39 zY+~*FHETdf71_MhAbhYBFte~x&ZdpCA5X@kC&;XixHau-x$U6<)Bi`^I|T=}CTgIu zZQC}wla6iMwr$(CZQHhOr{i>-bdsCdbM~1%=gzIWAJ2J9K=)TY zP6FL;DhgU2G4CxSL%!MuH535QUe!3eeL{X2aGwGBy{qYE^8keoWF4S2gC%N)1Rvwc zyFMy_5NPtBKEBCof;#~)ad1SQWIhpcHWC@UN!1y>%?|4f+{;~&7{-!<5;?UX+ag?~4ht8Z!SK<{j3lF|z*h@LSSbn(3Pv zS~LBBCqx+;|El-?jYQ@bE%}v2<{)7G+EZm?VIg4pis~{jf5lxEF@*4oa>6@@W6j8}3$ zS!UMx*0e!2OI#3hT@z0TG%xi<4+G5Gmmen>k1#OEv_YWe>c>p@fQO@c()Y&biqf!} zS)})5*;(@~FRy9Mz39-4xifxgn zS)@dWvzODWJZao^$I{kKA))<7(#}>`PAYvQdKHZF0&vd5u~ZZ=poP zN5+uCLK^W$KekOZxZK9;(Wwj@$RSrX(or`{>f(uWI1(<|pQoUspY&KuXHT}TAYi2|ve8pAXEgRNK|b^`MG{3VsN0z(ah`Pm8;nxy;6ZudpauI7)87HSQGHXi zy)5>EyyJCglIT-aq+mo5@wkbxgmZhzl{r2ik|!EtRFH<7gAJGMWT zAhyNlp@!NZ;4rhGBtpf8m%wbqI*$zTNKqwg|IqX@m5{q;frla3{If#F2Ipi8#R&Vl z<+oa~+V~GW%s{>~247N%bKBU@DI2S2oQ_wE18k4VE_Vvt9d6sN!jGfDlYn0_$(ZdN zIyvut$tkBt$Bvk}BdR_P_;XZZHp)YUGjk#ErDbqGDahXu-o%*=wgZoO3R-695|1Bd zOiD6ZW~P_ZgI3N?egkO@2je|1l6kQk#8{FWlwIp>FDqsh2&|(i&{-P<3iQi1IjJ=K zLSr)p`kvK7AlNjEp2^cowQq5F*_&F{2`k!yZ-gydT<(=@mRv8RTCAUU-BFX?s&m-N z=3T9~koHFFIUMLL_9lg?i`4XSW;rsOP(NYS>)H=W52K3*e!n{aR$8NQlTsgMY!?#m z8<9xS*$3F#j3k3PX|{*7sg*Y@yD^{Jp6yf$4ih^b@832_tjqZ;-cL7a*~lBfa2FqN z+s^)MUZ{<^w$_BwQXW+q?WtUncRHB1IrekgCtDT zDTVgxTnsy2=n2=U7`M*tYvBi~NoANtrg%D)&v9Ba;Kn1HlNPx;kO{H$?i3NY18~&L z0BY7;x}KeD3~-R#SAqee3li0%Y0L@?s$Bsp+U@?gBlpftpr7!ktu6Cxl|0>0ZkIj0G%pfKUK~2Ie>bl|r%HlarrnAOxNag2}>)FK_)!)$sl9sQ%5*6PG**e*5CaMZbkI_s zqnO#=n5dalyeS?)+}=2Hb=Q1MvRYytdm*<>J(_BE0YQ#V_THP?EfSo@3PXnB{Sf5I z%*^><$T-NA>`H=w&f4UQk#B`1UyRC8;{wRx4?gQ=bTI<~8UuDrJ4%>g+VxS5fC?aM zQF2?InGVJqS~KlamP4 zOd^ou4%X6(nc)qa!k4={E|NX)Mo0|{I7h!kTIA^`&@}s!{eN{C)Yje|`XfyaN@ndDo_3i8Lk#eJPGYRnM!rN1GYVHJF%-;2e$Ek8?1M@~jtop6Fx*eC zksT&*j#sDHtYR4T)W=vF%D2O$BjDu&G9Itynkfc3%ZLQt;(f5qgqfodN1DU9+-y0Z zqecT^8t`+{xZyZreY{*&d13`-xqdjr z`$Lw9+z;iNeNL2BE|g4Ab#>T$G%WV1v4`;9$NA7uFLD($^0srH3adaZ8EtG|OLr3{2X8C(+uqTaQJXC%A{hRO0 zEhSsebcgUOx9%I#T;Wen?%XXG)11>0uQ_APTIaFDFz-ToZ?kNb-w0u8^gR3r+wIO0 z#5C0`4XB=Fj0tfyhld>_(t{6ISApGE&O;wnA2&5ViAysQthLtNGVA%vu)jvOdZKl0 z1cvSlqQ(#eltbKZy%9GujEStU*ipo>cDPYQ@pz!I4V zU+Eh}vQv{mBY?}!0S1?Tr6SEK!fRqf8C_ZUb?~TGN8zl(jW3ysfzIkWtd1DWvpNn1 zD&}AFmXbavwJb`mZmbvDmt~~X3{pG>2-Dh(lZOiEXxv9Vy_NAIy*egU&NT{tX?#BJ zHo9K1@R1x>>hu-8{T6K5y9cnRGtDIv(V&DC02V|t84kih2O$u8N%z-VrAucAFF{bA zG=+5S%m<#YEGS8s7U|C@A( z9|L@FKN6U&1de%laa01SdQ>MGjpPa?qBwo#tYP$hR`i8(ZI8>n(KrQ{zK=0h`j z_&!^B0goo@fx)(qyGOklFb#)gl8!0oG-gm5X&G~1a9xoh6Fff5no$aMiW(c+MJ2<~ z04(iodxY0daeG!a_ZZ?JN3|yYuIVc;t#Ab2X^e)`j?End#|Z|c7byeU7Ybt%O2(as zI^qo?Zd_~JHgAig&e-g(yK%D0napwk`_u9!M@5phDzI{@4E_8-^B9WMT$3h2G3ghX zMlCoZ^Xf?K4wve2QM_>4mnQcjHw^WskdleDlxt(((b8AV>_&5qB#jL?hbH&jk0$pv zY@JV?g=GjY8M<|? z#$=$@fHT4Y?8T>!;gL#GjvW$-^7FDfe-*Fa+fORn>qP>(1H!;iVS<@|8e@#IohS6^()|;tVm^jt1ec(e%$d_8I8Lz>92$)JJv*^x5w-_&($ACJK(0ifX6XRLACrHFNP$}pb zf~XOT@D#bM9{>P7;T~0#-fOWMkaqhzcsn1LiEQzuAF+jG#+2Q{>Ak=BQIdZK^8-<# z1j^0hPCg{3db%sIKSErG5H*pzL8Y@Lv{`<_#qRii#R^?$q({{s_{R zC_(5X2mSmyKLj$+p|$pQT&BC$!89LpGOx324>u zpgB=#*9!@zI(vV1PQ!Z*EYHCEfRbC`5kLXTq~VcA2NMsTsGGdjYKihv_`}j0oEi^k zpK5R)(wl4JtM={$q{dYPG-H@5yjViW?mMjG-AZRFtl^0bMy(e=ARs+ zI!Cs-*XyqCu~7A}rmY=uR!NUgY!p*zfhqo4XJLx@=Cr18vO3q`oqJ+zrV~t-Y%)*Q zS?dabz>hPlYg9g6_M%_LZ<;^^fqepTSL6Uciq_v~%@nFUNH13)?{UcCH#~&20Xqom zXy7O`g0Gl|q^b{UA)lqTm#U9I7C2&|9_x3gfyRK8lhEbvLtEY5^#fW{&CnrH6MNk^ zx10UvPH=G;UHXS?voLv9l9yADAXyW}Y_`B&4FUnHt3D(fKN%w;U>@P+-j&jvV>@3A z*eV16ycC9bE-iHKb+l<`zD>>7){k*M+0?`1CZG-|UrbH1It~RhFdd;_q2aMpIlLxL zH@GJM9a)%Nzbd#QS|c?(INkJA3^1LruM1EPplzDQ9i?Byt;gca`yCKnw_XljYoNaY zrN3(Y-ldpwu9lalAT>SRlYzs;GLa?6f!5jY%Y}u7YmvPmOc;XeW`@^Mf{-ymMzr|v zQ&Vq`&DQh9N~Rt3>^0}a6!1)uDlD$W^uvibh5`z;DuQn|lr*kl$yJF%A;(&@j zQLzIxWU@~yJmQG*={Azno=HsG_RWNfh#Rz&Y>9X?BKW1x&mnyt!LkKr zz7LP^b{hHm4j24*KH#k>qKapwI=cA}PXR=~oT_)^AsEu3sS`h8#Di3jP{_?W$Zy-7 zudWRqKk{9ilyc$4s?rbPtmbx{ ztgPL7slOmJy^jFCPp8}4?J@dlXM(BFQ-_G(;Jo$c1W+mjjw+7s9*1MBm4Rg)LVwX# z*ywCNPOKPAx?c3$c{!KiNVBq$dLC4lvQt$IRh9WY88sjob$#I(U$vG&A#^?_REWL|R;RU9Yr;kM?W?H1WVkxE2E}n=iDL@Lg_*fw4sr30U6xX;h zb)+RB$7#AiXa-|~G)L+C9m|U=h<$K?wIeq(3bE23Vb={_*-BB;i9gv>+cXGl2PvN! zG0GC0oZ*dlB>`&NP=B>8-R&XRF^iWWThXK~r%kxaZ(&LsIF0kUCvYoHGZ{%L|E{Ke zD3D$U)7;$Ue6d>F7)|t5^U2eVXQ|(g{t;NTciB;x%0nEwdFQ8%Ru@qz4TbGFBNgkR~IsG^T zO3W`wTF2jy${@qZ79blzLMk|l`WO{aYAKAKiWqe}>00g-kEz5VSYTmNIZrcIKK~jm z;Zjub>HzKi%B288)Xx|N3E8H~7-Wq!8qdZu}tXOoER)1>MOA?@VWuIz@8yGrcQqJ0r3ec2_VOPWc%$f|{yuI#Z`C zq_IlyYwQR&)8}j=u(B0GjnZy23$dUpuZpRC1`@%*layTYaL$h@(u=3$$xq<^K9ElH31Au!Ag?7CS z4%dn9qtzKN?tur|&EF}Bn8G6= z;VfgO5J-{&7D{bEn>A(W-Kz^v$pFj*MV$2k`x!8TSFbF6o<6r=DFPotp4fXnz+lYS zpXg8DA&vWyO(;2EcXtu=IL4pmX17T%W&-Jo3xv^dPSN2Dc>Jx%E+9=|s?{5LpndDJ zIB8yb)T+Ppp|3g$yy0(Db{xsI({!^yFdiU$qrqSTYAipk8I2IQe}6jdXz}rQ+8SyF zlbZz&#L-70szZMuzZb`Em`87(q(pRdMGJ&DJaT6+iDiVlQ0Bv^JUL_4!c5Ap&Yepd z4&;Le!334WgoE-rwP$T;TRQdOuiu0@Fn>OGMA_mmNvcg0Mt#$uGi8jFQTis%Z3euy zP#V`pOGbG@#1Jc-T`BpCt-=eZxqjzYXwg!j>$Az|ta0K(3rjPzW@;K_>ybq0lPt_h z{04N)rIRU3W5~5r)vr3nw9>BUQ7dX(bu;R%%-wU2`R||#CSQZt7?f6d#{#YCJDea^ z(zB$vyLigQa0Se%sB@;?VrjxB$D>*c-vbO%a`M8ouvjAPOku@^MeyIsvHZAE6!#Lu z+ozqG6B(j&ckdZoyEQMXfF+-40)V^Iyr0_UD|CVRV_>Ef> zDP&u4(bnxJe_ZeqERGp-k)Z2>wxdkx;OFH~6gdQwEMPllsyy}~OL;&th$JY67@c$x z!Xi{IXuwv#MrBt1Izcqd2~5q`7b5Xti-_UIMZmH3zGh~>lDO}$tDh8Js8W9%(cin& z*$VDy>fx?>#c4f!DZ~fid^?pgGTR!7`*?r4!Sf>B1ls5huf&d7BrE}Yah@MZx(Xa! zn{YR9!AC6e-Uzy2)hDOAd2}r`)FZ^Gg?&vNLhO-5}*(ACB9-GTEYKaHh^eD@fl3D#oeh7J`~ zLSULLA{M~1zJ1T=4AfClXc_M1aUKF=)rp!WykR@FTm5A*Q!ux3QH~xCf!sm4d(Q5~ z>T!zECChyj1WjpS!ssarxVNvioi_Sdb9Sbk!s8S?{Hcts@IIoEH}2_0ggIvM*wh5T zE6%tbOgm6gPc@ZQ?i8*>9y#XF0yJQh4PM>ILL3WV-kCb6=F`LAR3fEZG|@&Wtz4Ympe#7vk@l<>f5>22}v|p8BF_wMWVcDVKQ(oGI4+rX8dZ}a^ zUeGkB@G_0_?yZt>WC8s_7@I1o$R2Uu@o_7XDD~wrph!Sggm*|=;Y&7+9H$~EDvo6(RD7cwK`ln zGI2udZ2S~D0leV{pxv^fSdva^wal2CK5RZrmuQAV27Q+*l|SJ?WDfSFVutZl(b&Oi zd!^KL#IydgHmOU)W%}zlv>JB^R&xDtD=S3WexoNA;sX z^{FVDb_&!}!|~nO6D&Vi5RrZZv3G%#yov2~41pU&D@2d=x$$pb7uKghJ`gxis9w&= z@52*e!2&1xJbnAOPz_!uzUOUUQ@CzUfrp@7HhB^nX5khLyYo{JzXQ3j^jK7KnsITU zuUcYkGq(`eXZT;OXIc-ylT?}>L(4`IBXu@Ut-g70JKA-PNftmKA(d=9HoLfp-}9N^ z`CdUDCqvs|{IJNeQRX&i7&^g>&LcYi!IEspBDnc{+V}yBsmD_dS>q*SoSweruLo~> zD3IePJ}TPB;qWr?qc(CKUI#<>zUN#(?1BK-=#HXSFx#bx=Mxn0rC;tpqTxRkXeL&s zf9>=#GW|;|{$EWp|HaDpRhRugBhE~J6`B7_@-}cZv$2MvS0JDlu~D>vq8B94_)_No z$gL32tE#CJ{8!;E8{1dWEeC+mErD#2Sozz(2QF= z2c(^spyLbAJsq-sBg96jC#gvi-&a>}vtIvrnvQiRY^%p5;rz~URgYsox);lQHz~V9 z9_f11GVGHdm{9qn4bL>vmXAB<#+RyH#F?BYC&yA7JkZYGo3r5+uYgNDo+Mg7ewGB1 zd*%R=vt}&hHjr^#nkW8_C+oMp_b+OiYU9DO zhqE~R1&ox>2hrNz9vzx5<6la>)r1V?*nGQXHOZKvwsx{wy2N~P2b0WsJ|~J{PBW$7 zcB54Uu46L^y{Mgr;X7cUF}sjZc)FvS#udCEbdMWu+e8FOapu5TCG{;vZ(v_GV^2xV@8{;KEC~Fu?Bw`AfCQ>v zKR`u(%HeS=5Ec=cB!lo_MBmNWGk6_8vyTlStpbRHd>8AMM&lj=mVbs>(Zp7n@nAYC zJ(vTMYQEQ?7Q!Sj7(t`(9RD)B2|I25MCyI z+3Hv^S>4u5oHDMDyKN4j4&`E@cpINFJl~E$SQd6Kz3$v#TeF=IS75p2Fmrh{4;F$z zll9wZo1pWJu&B1-_~d{gCKx*FdD`g{$0uNl5yr}1(`B+UWYp7RYm?_lL&wuTJNUuc9;|hh=*!A#!-k%MEX_S8qJXz=vuSa z4b6seHi5UVN7n?ZAFCCvm^p|Dn*dO#?|1y>FvkbMP1;{Tcy<1w%?94aM5%$u(4e*a z1{BNZMojx7w7*KM)_5xXF<0NEZ*=UECE2fzU2CCu!XuuOZL1Xdq zPICFJzFnle+>$r{vWzsgsX}?&qJ0sl)uOu7lW6zev+`?kGj}er>Ypxlp zmV%O;sZ@uU+QD?ku*hWBRCqe9IHDBtUcmv2K6C=5xux)4Xxy=T-C?-km~-lBcVImCN2a_EZCyJ z{D3$>^{hthLSSvP%(Xc3B}NTi-Q4dppV@Idv7I&NJ`0w8zx;jOAbM-61fy2@4JB2fu1*x^L9PQ`5WeERFUPT#aN3EELJ@#* zER=1DR$1S)QR6i?vWWVA6=)6;JIZ&_^=NeIM}i;9>q z^7a59|E}{apj|yEE*bOx-1Yw+eKGI`bb$cVxEAL{?E+8-p&#xH-<@mfLzGe83GqJ0 zU1f7%3#-OQPWkDYQ?buix`#s{3Ty<40DfCW#lB>!w*sI8Fa;=xl&P5r&fqPErG^et zX&cY4R4AN*lft#01+mKoQh5^cal79dVFoY$++h^sHS2uJNUxq6O2-io;Q*w2*I-cr2vC^@ z5zb{OEOYLnmL{8+CNv|N!O@R+)0%hhzf5r3*xcpbeo%k&7F|oM#gJ;1wMyp{TwA;J zT6Y?0BxFoAu_nmiY!t9&kXb&gh8Uhc)|MRXk*Xp-6ZqMz&lTQx&kXS+0VZsG7 z%>Z(Cs?^xyOcT~{tZ%36qf$t+=>@Yp*OfHuuw?_%ZFFMu0p+s}pBev+D%@B2q99He z?k+?%83I}Q-KvjpQZy1q zUQbNt!2UAR0u3GF48}EqA`1YOeLkAE*7SuWZ;4tX12>o~wFjLYgZlFL(JVm`F0=9Wf5C%4s7Ng7A z2FDnN^H~*XaFElCdfdH$K7uVuut-*9wDWiem-Li!IN3ErSncCxI!bI1m0x-J=hOBu z(4Kg!ylb>SsY+lm#yNE>7}> z%K3>7U=3%qRD}p#+|i#Igxw>eS%uX>qd|Xxof`-mQc2l&&$@U--Qks{tODGeX)0yj zLVgKDej%y1cN?Y-)Y?Qj03F1K3HUa-cql@8RptQDso>Gd%-kmm2(vbV(wkc1!sdIU z)9x9)KOdyu2LCe`R8K-yQN3sw7=nMTIk9TEfd~Gii^xX1o5Z%3 z=NR8bo)qk((dPG(XqBOkD%yU`ct8H*g9`D+2lM97I?fYV_jGq1zHgmaYlLpq<1+`A z1u)CP4`O9XRsm82V?GKcIctcvHkaf+RGV58)KL%&u$Q_5O^4w7v7;W-CK}ArCL-V1 z{(cCzFzJ|*2OiS(KEMl~N%VdZ0Ux>(&&c0{=Jxjs zrJh4<{aLMO5Lu%iLp`Pr1{(xVY0I3kR@KAkYmUlu{H(JJ5xVO56Q#f|(LP{nC(yN= zR^ItUIGe;Az|x5h2J+Z_tooQFx7%@Sm_cNHRL&dDViY?p%!zAQgT6BtBW$T^9PJ4Z z!9rfIK36LMi|vs{-hj>r8Xa#U+V&IU=AsdfBfkLA;)xs@a0H>=?MQY~@o&kuOxUyv353HASh5dX=6|24qF{HFusAI_6MaPGf3Prl|t z{zSh2t3L|<+j;WG^ZbwcOUD1&?D=cthxuRJ|6gJBA0HI||EzhE+J^m?^TcaKWp_@R zD1A38rn!D?Jh?fO!(KZ-5n4cBIMxkWRGRYR6~}kiYE&=PzD&~hVwkVs&5`~1C>RO* z(|XBA?;@6@$Boe;k)ztkWAK)i+a_UQDkLPsh36&k+u4tve3vlWt)T{DjJ5m>ve2GbrSs&yUpBjn+!+oW6KMaTC$p%3`)kxkN` zhePKXR54;1ysaa^Y8QRQl36r=xdWqCUbUi-pSd9`K7S8iptFPqb&+T2Ka`-J1`APM z76(h+17P)W1ZKBt0IWD9PaZfWje8DNCR*Cj8oCNvgz6kEZa&ai6DI$@W`&?$UGjSc zx?`sPt8c-H&}-#7vR8`9j_Es$XEpoMP3OGFZVi_ic?bQN8j4s(pWm)hes5y}@a-_C zklzs~;%1|ZAB~iYpEiW|z7i$2@OC^wt!_IzN0~bg?jRwu(Eu`An&i0V2=8Mdv3@Fh zHhbht1xMH#x~fG!*!+R$&|OAQgSd55$i;OA148ASY@A19Q*6UGXnU>#~Z$7Zii07E4# zG0cpB;Un_VUK)E5Yot&0xjhETJD`g|rp?xkooin69<0BfViq$aT=*|8H&D@n^%aU| zBv*}+1Ajm(hFoj~gJdQ>%pDgt=)Igf@$k%q1|qCkB`HBW8lxXkJMCPe(&F>9f~pJk zme6_dVD>l|Io}ilDS57d+hThHPQoJ*wN`lyh6QX{})8$sAtcn6(0;Q zIEv#g_^|TQc3=-m7q}Vo{H-T<6??%`8t4j|ljRPSk_wXGRd{mL5iXP%I^0iJi+F=LFgR;pqPe2M#LNK+eZFH_vBKHxONH*iV3Mrlh%_9T?(aX*_!l^`1s`jo!yjwWOPHt*!Xd4f*W-3Z$!+Kqs`9TjObR+DM`q zkW?wY$A5%xXX6dvh>vxPi}o*%p8yZz3&B|rXd5pS3{h4wiYv#!xWD}tx9^X++!DsL zGQf68!Lkup6+>%2RU)4*WrfM8iJM3kt+QXY@h&zrRe?`XB%@{xp?8)DmdvhZ3p!e}v0 z%%LRmNEWMtiC2^$H#EJieWpZl{OE2XQ|PJ4H^kwMI+xT7(v>ttR~ zd#mN++Z^MZoPS+XdnH?%FNwUgs$X4o{dQVSyaD-Uty~quJZ?L#Bkyhcv;{!-uo;0& zY(hs4+df7l$vOLb+`$q=M_q{)u%q3go3$m!;6rtT9|8l>J_KzRnQ{UyJl30AQ7g+xj{3!B2p%Vw9+wgj>SvxCu8?!xd#yT9Byu>18@TS z%C)x-f!JGQBFlixYMG)~rFFX%b##X_hc(FhFG-PhO(&SvpI)s2r7;wS{&N-1+QIaK zCM9CT)WzlenfRv+TUkFDaH5@3)3Ps0FMipEu&11S?>vom#b|!9bX6V7oMv%cd2U$I zIJuOA7V$G*xZ22c^II!AsIq30<$}qgZkOKi=|Rjgb*zljx$`>V7@y=IG>OWmjw$bU zv6wC%5AQB*Fu~jB zgSl6<>iwrZ2!V|5M5QOySE8V*&&{7AHwC)qPt$u#&--W<2$GZ?;?}scu+r{xi+ZNNFkDdHR@&0T-KZ8oy2nmGJJ($ zf`#Zmw$U>?Fr(rEucEVeGo8=8m4kN&LVopJL#<2rq+2AR+6N_(_h|G;(%|!oJfj)J z5RJJ>V)QdD0|(@rcmbXg8GzU34nc}2iaQ~tQJVoGvv}@_vSJ(F2aZxwQ_v`Ac@QFS zH1n!ixEK}?5|Z?;(VDtlEP9^~=Cd&}dLrQzS2cuZK&!K*1>2!Uf_4{;5GDpR)Eb&7!%0^jjVf>aKZT9^<)*|P z6sIxQ+l%7bI)(Rh`>Nb+zOPvEN{G(bi<^vIJmt{!H!FTvW+999+u`^pWJTOH&t^Be z+}FM;C2qfNYmwaveNs_itvJXPR|qR}r-82-XgoxQ^8du;K(JKBhLkqre#{(E{wYtF zYr{YswTtN4x1YeA-DqVA|9zJu+?SC#q2ScqUw2)dKBl_L z(%}ZKMzL)@)6TTa*s*{RPzAew>?Zg-1f*|E?2Vn{uaPPSVZ2-rwMEpN6%MgHQV^VS z>A`+xW8d7hbJCC^jy+#LWN%?~Ks(J#-|#K&asdltC&A>J0)5DV&I%o_Zw6nj5C^y< z(j!V2mh_&$RuRP&iWST^*9BB`6{pnDI*vJ?rEK5P;xjG|_q*G2>03&Z!6pSREhR{F z442uWHAU1c6G8fC8nfHonB)&r_B1h{8I))UM4g#Ek`(FbnmmL5WsqdSPLLle&$dmRhzr zdNT#Rp3WJg;x$!ms&HOK;>2`ltY{mok<_Rb>k+bduRz0#aJx9hdpx^8@4?ADK3(yr z0%$CB&etr+lE;`iKk4G>?F(tjG$qGy?rH%Ba4_UOC+bTXsCPF*s zd$QzWz)R#?4<}pg%()M~1(g3t&NzRGu8bD<@PEla;I+z4nAuov&64<>g<-Nn4taF$ z*w3*zIDZ!IsBSyWWH_`IO*se3EWFaQqi&FeJ$WWA6 zb4^VCEn+DEv%urZtO&a3SW90+CNw=tXP^b&EmYnMd^XxjBLV>>Q$V!E`_8Zi7KM^^ zi2F(U%o-m!^*7VmtmSbC!Fr%U<7FjZYVTe{P@maPs(t%6Mt)g<5PrBM^sz;72HJgF zdjAc+R;{M@AFrD~ML9-hmcOK4nExfK{jVk${-QYkaku=B>*mkw&c6wAEPq#!OWm+O zU_%JLen)Xw17aL#7zK4taBMN1%U`SB0NT0;BAN)RjXye#g?+up6|W~1Z(cE#TV+7X zC=C8BHa&uQ>o)AWZ*tWQG(k9SJfnsCHKvi&i)wa8$u(__)^P3ug%L7T&YqNrh^J~H zrQ3^S!CI84p=x+@n~{^?^bU0$&J_SJhp0SOsN^u>8!pR`K+LEJtyKr%-|A+@} zU*>=T3nNmP({d{d-EW0*)5qcM=)ALne@3 zRwB1UApwnCGMuGPkQBy|(&nl_Voildo+_A-HtBh7piyMfT5;%vbv2`MlDCppu!N^$ z0y;u*%tL#iZ33B`Dk;62ShKl*8J3agY-yjA#UjnVWkP{dTo0LA>!e-fvS;gnKZD6& zk!6&uqZ%r!IV2Xh4cv52-k9MejrIvC*9zk-HCWHi79OG{P(I9SDB9Ml&4kn`*s#-> zZrW}?@9%UjvWc3~RL8<MVbvn^MbBk!% zI=fnxVKB0t1udo&X;%#pxtSWWXcjca?-o?Y9(_hBlIrbrJ9JW7^TgQ?3tNj<)Oa5` zATP~#OJHo zl2r7-DEf=vs}SLoNcsb=47p@x7@{#~dfHm=sfr+v9*cx2rU=Kf3Q^T*AI8Auy;4g(+wYLr zlpT~uZMWVk@8SvW0<{1Pp%TcE3GVwFYf)OYE6{CiBv#CR?S6ca?TxA6W1KQ1s#>Hi zzAu53+h){MtjaZKZn|HzjmIq_4U-u0yWH1Ed++u~r!9_=yof-j~wDnIoQ-|Am*f)smpdRFvs&>ab z$ey>_A&L!5_f~v*0nY{7`s3@t!O`AG&*~p<{(lh6jEsN0{QmfniSaKEldm!1KY{uG znfLwwyDW<3UzGS?J}+4Q!6*N%%;H==bU4zgeBU{z*r$I!(2&=PhSg}_QnKsf;lvsD%AIzdF0QXqoyoKv)S_j3caGyYsg z`Q)6;IhEP+lWEvTobm%KdZ%Eb{_8%v<9o@_`T0=HteeGL23(hgUhVDHCkHUu5CodY zqHYlep<|%6S>1>L1be8sWm4ddBA6qXMWnX3y+(6ksxERa4hFHGoPISV4AMnoyN?ik z>@bp+WrEXMp;txIGW)X8+@`JAop!7xbBi?AQ(h(b0~O}>OiR*)))MriF}oSJN2((H zcN@qjf0dDKjLQ3-^m_vZ;jKp=5BSqEaFUf(d8mZRlWx@)z8u?Z6jcvU3p3eP3BB14 zF20v(z-X?is|hHp1@kO4Df^UTh}>pi>2vEct_yWYDmevG>=tLEIKxv4?P`c-m}N4f z-@Kmy&lK9$7{=ans#PcD&!#E8gsy7xwvsKcH4B~^`Gy)v_*&VP;uuP^(TKQYSp z(qJ#eSst60lAD(VI8PaxpX5>%bG7031RBEkz}qGB(Ci7`(hC(`dD#5NEo2s>!4MSa z%#-?TpS!6;!sW13XW*~ha+li=(gW4A2M1#+uiJ% z?1xZ0`Fh^K-eWsuY_yWIiE0;BF>`RtP}^U+jVzE>)eEZNt6Zvmb9faA?&0K{d#9qu zuw4~ND5zJ&j(-RZYNseAv5h6R{RpRECBD+;I<5j#2}r$(E?ICcWGlG*SVLBWwuyUu zcObaLm~60LKH=y)F&SP%tYzM%QN*3+$CbKFZO{QU0S^WW+c);gQ8c6Od^@8|JVJ0F zJZel{h_1gbN15NGD}%$Vq3_gWBQp3wNc5!Vhk4zFh)nzv8m?(C`A*4~ayGqQx1AU< zHxL?GJMy9cZV|%}A8;-;`wduJdJbow^aql!2nAfrTi+tAg$#Oe)WTqZ7goaaA0g` zWKjg*>7Z0#PyvS9=IVFE1$o=+$q1+ViVl4bgvSvhuMX)7)gm6KID6y_Ab}y(Sdpl! zMe6wb)=QWcKebr~^Ky8Y-MRNfXumdaPpVLd{UU=H&rqAkva3O4&<-6k=MQuT=ea1nki3Ie@1g@aSfF_Ae1)1ai3 z5M55IVfBSoOm0tgB5H!N6}~-~{$rFWhvIsE3rUTZoUbzXJ@*em!dn=`j5|9bqJ8JyJpGv5zYlR^b@tJv^G1XXW38#-z2oAT2>; zq4_UUH4AhvB)SXzZ(MRLi$mz^ zs#g)KAL6IzYIg7N`X%i6cK^~r7%gA8>P1gut)NWlJJA0_-JgI%-TnXLc$>6qrI4jk zDjCKy$P(@rR7zy0O=XEF*(oh5Swa+|Lb8WsH+3syXeuFlHO6FLrZJ7N{LXoe>85+S z-=mM~|G&Q1>$=9g#>|=LJkL4LYYBmY zDpDQ~=vC1(52z3C%N{%MivNH>9%`K^pMIPlwsy@IWi#=43+_oKuRHnelClxid%b^c zdQD5$j;t4V6d!oW@3q(W1DZV=+zR&OBjyxhfTq~_MeA0>j z%6y(d`Za#u^3%%}`JKHdyJ%aHUc?oS*P^l#cVh0oTey3s>KcEJ6PJyy&XBO~z4Q3} z1Fz**XYEY?{!C`K+9mxjC6VgUh28@7y1nVK*ik{+I8nuLk>8JsEqX`CZ%JOLJb@!Ct<{#4as0P1-z5y9nz`H`cgP zyv8`|tA^jO%KVYA2w@$dWhX|0O#J!(9iSNr`zB}p(*MBaLMS$9!7}pV;CLwvT1Fgf zttBBZjt0C0jFc>(2%9cIsS6o{2ohf4M$OLQgoVSzS5$@Mk^RqDa)PBNBHru>0`~Kg z0Q_WzC^CShjNDC&C`_maq9MQMU&}KOo%)A5JJmf#KDqD3|dlLjx8mF+y$u6?n4<sDjGVZ%l(dj6A`2YP z$ldhFGDQm}4Q4lxL>2?)wUnfkxHLGYSr*7A%hu?VXDt3;sT3CW>p!gx_);m1+_)%E zDahTlh{D3~u~^C?&sYUBaqP*;VSpz7ZAxXPYQYePB`X8;3+A{K*aK2lR+>$B1vY|& z^0S=bvMj9Ee=8Zza3O{uj0rwnlKh#~lLCqX8UgEi_LT~iBe(C@Uu!nyvZD}>WW4lN{u$bw8CcsD(=Om!+Vv;x*k15+yn zVqG|Wq@a^#bF9GW%6hC!)fK|&1J6w%aIDA!LxRYHj1_n{J+e%7HX~Y*25uRK%2GfpGC(fqq}kJo{BJ{L z`Kh`>I99;XnhaTxu>$Ukw#=eh6=o! z4q4C=Q=QBVtpJYB)>uJH{4TBq8&Lp#{em9;FBc>OsBhAUEQnU% z-So&Z)yd4z3UJB5*rGwe01mm3mWFPcO|AScu0=~s)fvLE0`M?tL>7itz}@u7GS%74 z&K`+gwQhpcKq9>e4%pP0`kS}=Bhi2&Ab zpi}gO!-v?L2guly0ww}R$`Cr00&{^~)6FQ`uz(4{F#ZG6Eh)qh1hG-zW_l!HVWQa6 zu{1^+M5+JAr_qy62x6!5!%#BVZ3*}SFo4j2Q7(mHx1cJCM$SiKJ;A4%0)UQ|#7GNC zA+kU{BX`py%O9CNDd4Lmgrq>yC=2$vm6Bz<0xE%Qi_20g6V9PvZxR4!fCj(_Ll)=^ zkh|%TWr~K6Q5Kd0HE!SxK-?e;>dI2m?A9ygLCXCbyZ3W*VYYn%@Q`3%1%@byhlF?2 zA_}`^4@o#DnmxEj8H=6I&`51*Dn^|#Bf+_0Ad<&`SQW&qQo#JN>0Z$PG4}qz@S)+1 zL}Y<861kfmS=cjuk`hQrIjKN`#y}c?6bs|WYUjHDj42qZ1|@e`0tJCE9MF>NmOv%Z zzpa6yk!?Vx(&?}U3S6laA`4Ojg?G~<3k&1N!plfXFl_n6G5wngJo@KODC|yHMA2wa z=LVx`yaF#J!FC-KvV4AHI(}}x!mcDh(Xi&ukOe9l-c6G%Q_Tq(S^<6!z&jwSlm(Fq z8U}If1=r~Dg}eXe*`UEsnsRmu7*J?L6gbi0&GbkzRhz@m38;}nP7DUXqhQxZ4BJ&p z^!VyBRyvs~q5_m5EeG^~$bu*Z-c64zQ;m%nT9HAjmY@B!OX_4iR;t@1}i$Q`QBO{Im1qQS<+f_^SI3JP4Soz7hoPt&$ zX@wyR)CzJpJ+e%7E;GgosA_PDg%wCB-@2h^lxdB=&92rA&~)Yj|*jiibn3H zMHV(`lHlB1B)n%QdiXP*q$H?z%K}d=BMvYqv;^DLRbZ)pXZ)s4lLWy7AhIw-L4pTx zH%+pzmv~4@AijN4K>WJ_Jyo70#2bOlfEg$9D36gsFadVG%x`&;=&AE0fe{0|ForB} zKqGe`BAEtRSY#gml_W6WK1onQ2g45dIVmX&kc;httpu_o3`=_o=p<8&(m-kgTpc0` z9DVR+dL&^HkFd0+jPPpGBnRO;MHM1~Z|23;1 zCr|>KQbZPHhQqt*k%dLX#7fbUND+@cMgLJ615TZVX$-*4WI&z@$*yeHO+e1^TSZUN ze92${at<f%vj?h5mD*B4Zf@ zQIJ#xXo(>2gNB3Mp$vZj>!CbV(*?d&8aQA?5=6=1W_l!y~ZkeBo`!hf4QzNBPcGY zVm5+9c~VNvhih9}lXT2S`lG#+rTqsElp0z4)2x(|s{;s6I;#b-USNIffM84E*cb4T zHiA#D`N)@u06S$ba$1@hc1X}p#dGM8@8B1`&0Iw6uu9tK5A5hy!Of6ZdUwxwd3eXuRZDF+<`~a>d06$S-clRAIT1)}tJg8E zyX)ZfX(!T}@Z{E(gVq+#Ag7i7eMobQ zmceT;a&=8^Y(FB}fs<%qse6I<_LlA4Xt6OE9jtNhO>D)90d(*h>+i=KmvLQ3N!`mQ zY_tz^R&~Gkrg3fjs})~yd)s;p=BUrXdsXQ7S|>Xy>5bO!kjYfx7pdKnWwLfPp=0<* zH7%wfB~vBfhy7muFv)%zzL6j`JX9IoGMez(ncRf+{PDfZsmO!e73MWYZ&4cS=E8fr ztht7L>qF*f&*P1FP5Yws7m6?>)zFa8`Y-E>{ATzT}~;u2bThj9`mRxcxvKoQ6w) zI^^Ft1Q9pjb^;ZL8PuqYbqa@4mg0=ZLzhCBQ^LoeNi*>GJMnsL2BgKJ#K`-qVI6NQB1;Fh`=VJS}T75b*Z zu4OpUV{7!pVs2XKrr**;27zqGBIMee!MNZc_@(E-uf7dL6A5*>ZXs~&o{z!FWjL{8 z_jZb9Ubi@$Ua=+A@J+^TWFV-9!pl&wyqvHaY9|E3 zUe`^kPdY|hsq`IpQy;~Z+j41?q#cbNY3m*BA#r*9_|fA-4Y1So8h(*&=QY|JjoCvp z_ZN?FqOJ63SeTpY78( zPwdV9^4u}%)E7LDQZdz%&a344zA zl?slME3@s2yy&CkhEv%7h-~1Ll!x1@G6Tl?yQyBZzJ6_zbxJ^QvwL3nEPk%rouZPp zlvCfk>{I;gW?B0KMiuR%|?>Yi<(^fOC=QS#)w^6^An88Uu^aPZnNe(evv zFSZ@bI-trjWY%ef21CP^VR9_DWv(zVA=#=sOkV+c)PN1KyL>V4CX3dT&U~WYkl&S6 z+Y)w3Jz{qPVdzCcdQ6K;n@inbT8&`oVq$!fCqB%yyBg(19VM4?wTwQ+Q1TnEw-GCj zVV9j&(b{HDIgJ-=?F6FcB_b3XzRsRayhryiuc^8&-t&{uf?Dfw}UvBn3G$(%E{$(cXa{fAd>2pyY z&#|SAwS&!qJWCt(2h|pN)AO3?gazL8M6>HVpWZmK0=P8c@oTg9W^Z|vN!rf>!8uw5LQ#5OLk#AG%@bc{B9x<_A~g49;Ykk3c|EJPUROPvrr#u} zzqBz)Z>cZRCUle6kn8b0ctH`N&jlhvp9@8dgd*Pfy!<7Hx7)r2K+LT=)KZRdm%HE> zmpid7W^2d~79Rh>fFv*~1OK4Wm zpSZzH9x$8i24^`g!xh%~ems_oak~w?>`By5uL{Lt3Kk3|19Z{jqQS`kT{J^9VsqC{ zFbN_G!Gu7c?pYyCogYr0Q|aN|rmT7{`a!PtyT(obmzOopMaSl9e`wrf*%K^H)d;6= zsPqVGQ~v$SrCI6y&JC}VhLUjm1M=S~H#zlpyo=N))rNJ(mo#&q{2t$-*kS1*CQxIM z)G#&@A*k%>N^hsowxde(N!i~O2CYn@F#;X5;sV7%2ag{#+WqLye#g@`z6o3SO1L)^ zRgS8?t{xStU5*O7p)L^0RbHjbxbhP&9O{0ou-EZ!heWkyVwG-u!u~_1kMs6A-nLTO zlO+&q#HEvRRo7a$+GtM}w@%6(U2BnQqkUQTtfZ<>CLSHXEE6pgbM?+uiV>p8jyDm0=4U2T!*t1C!dc_mU;&}kKXq#}<_+yyFWu|ql8LamSM_fBdR zwrQEzq{~7=@o@<|2&tC?gF6UCm#L(ypkV=|VdT+C@Jgd@M1t(0Gmm+ZEBrCzs^6Ct zVTGwanpmvs1AglL#|rx#!DIFQ9H4c8Fl#+DXKzVxM)92W&7bsOD+;4q;SROrN zCVqxq9icroG*t0cr39Bg;Cbpm6zTHuX6IN^z`(#ek2pHb%Re*6zN>nMn|Y_WOSb!c z7sI5Txtm(_3$$S8Q5}1Oe2A9^JSh3Cl>@f9NZ-}(L;CLMc;DTJeRr>8T{SN1YEW>8 zMT=V5!UVHH@sLPe6rD%SOoNi)^YEv#C8`;hbTzze5p^#)w3aa-q>%v;mH^Zp>sm)S z;Gk33H-7pRF+m1Up@4LHg?rki~6X>s8Q{sOJ8}Fw>PHo2qg9 zZw5sqR)+q4QtN1D+|xRpPd1xvp0AWOUJ$YED*G>MMr@0#4E=CY%Q7<#CvYoHfHFMO zO}}}Yd5HN*t-yF<@Bq$c{=ifB0|GuoFg{!jMLSE)yz)RV_P5(V>{7gxN2#pCRo4wB zWti{kPF&lstJGSBuA})x(&arzz7QG&m9g}ms!qz;g2)xU3kC5~m#VD``;XuSzjb_a zmm6EVeNd^~mfuY#NE!R`Skz9x3)-HZmk+|Jhqsd`k03S;?4;2~_P7`^lzxG!bmlBX z#`qq`Uhh5f2|XT5H*cygT(OQAn@3d(DG2IlUVPgD4DInL^Y1?V+1!Lae4GcG3x>_z zUoL_IEosI^>QZfQgamgqqyA~`t`)q($1e;rD0~u-K>=q9Y!Igl28B)&-)5ctiEdkW zzFC;iQ@IjKc>huB9o?89t3T_rUwXLSX7icnA+pAxD~T4*KL!|4ITW2*EorgCXk%|h zF+rp!F}Qr9?*KyqxKVXtzre{_n!bLpxR&{D4yM~X}*<+zepWSEax>eWMu` zGU$;JOPHLcsD^4F7mPA5FrrN8^BIm6M42aYUpb)kG`5AhJ=C;HuZYjZCnq%?f^jf- zS_rl08BT9B#w2d9*6Lt{t~l%<@yYJyC)m7C=M3*AlHMFjz!Z7Vac-{NR};u9^Sg;j zp2_hYM-@}{R>p6lRf3?s=q;HC<&#g+sPE_;Za|m#ak`EQ>6Z@rX)^}{n>?|;ZR-l(Yh`b@w08UAUkNL%tB3=+$QrEx^TIO4a zfBfKK)_xG0J(}}#>Dq%mT>NWk0B9t~SQKko#86!H?VntA4HLvjy?7;7n-o1SXe z>TNjIafp(mpoBHKhkn~yHbk)X=OSBbJXQQYnzP}@XhW%Q_17;o`~ApYhR@g5=WCiN z)suI-x_mQRDo%QsYlpqy*j26Tnl?|XNVLWJ?;vQUJ>)O89;H2SH(w^iaCehJm7jrt z+1W?HmU#yQXF~N}0n8*%q$sdQpa055LV)_cGK_1V400hMfGrXNEMbNK(jZ2`>GCA> zaBM2qa74*znC$_N2Z4oqsWG4l9&h}#xC|4?G?J4{Xk1U+g0=vP}E<)73qz)0tp4C%@e8z+n_Y?|xHoF_S0K$Y16yDc{}(pHxLI-S_uk z#z%ZMmz#n1!u@n~{)iaXgFH5huO*=bQpMG_W3l@3_+HIMR}iQ;ICkYVj&{kZ`6!GNAFW``jW>O_fL-2V?_hVL3+&yL#M?C_gIH#j9iW|z|THgvD zS0Il(>wm^76Mg0{kq^VkRY4~QBA=lg4dk=?2qP}S)un#C!kel~Q+RvvTN9LRYv$!9 z0EPcSfHJW&C-hqRfLudbF3K=>y*6$WF|2MmqEF!P7-q{S;TpKiJozJ4yUDvotFI>F ziu?}-kTG`r_4MjG8gaoDo@@~}Ieef%w1pynSVQ>8AfW+UV9P}y?xkhiFE_CcaU@)d z0`cc@rzm^=(h9y(Gru&vJ~0FYCg73bPsw`nMBr!@*`72}Dk5T=fT6V77HhOHp++q+ zE6^$>)@W-&jn$<7WAtEUN_|a*ar_Z|M-&3Y+5;dK`qWc#3JDv>(Zc8I|KNICkJa5Y zc)l()<>o|W3Sc0C$Q5J(FNiz-3jsl(U4VeB@i8b74z<5-u`>PEy3m8K(1`}SR^gr; zTf;;M8PFpH9^nNcycL@Jn-v$yUPb(?pF0KDGD^zF z7Burv3i(MrVY${`k5bH3D#8NJIv(-5JJP?UsB?DO;}VjS{6`Wd7ouWA!%G;@T}!hL zCh-kGI{zoW)?@t%IDHR}2#`gmnM16)+WLTgdSh*>#=dcslZnPoQphjJE`(npvfH!u zBW%ut7edt4mLMJ}lHCUa6#d6Pn`0j|rO%QEdA_;lTo90W^xyk6V6ys)U6JoG|2?QJT`j_PUO@YILwHqxX zShP5fzTQS6m@|5=l~#%IC$HE(Hm`QK*}g#P)?;Nthkf?*yoSCIFq7#{M%L(lT zydEPLO!j|`Uwn8ivMqU z9m8xg^12CT6XXb!o!vy&D4t}Olv-V$LP<{(voQ^A8B#1Sb0L%!rM`WRva9#B=g9)S zIM}c8)v~m#1xp*Q#1^G;5xx*@1BveP`Q`TfB$rXYQrA%lR6rAE%Qr8|r=%O-iw<6D z^&Rktnf0b>K!XPFV3^YKWQW597sa~M+=#voI!#;6gLvR03=n8RAg42(z@Uns| ze#R>dOoa*}&DcEsA{gxq>;$>p9n_nx@Ufg3N>=I?BiBT{=jRZZfcL;i_h%CzqXSK7 zIHtLS0O&sY2xQ}WZ(Ak7{YH^( ztGTIrp4go`Sl2GO)ctrtyF*@wMLZkx`@bj>UED)yfnk+`V|{}Swf%hq3fT^$N~zY} zScTevf#I2{{uMr%P3A!^9^b0J4Y{v=f+ufJ07V3fi^C=)$9kI=)iU4d8OgF~<&vm58;EIu3YS@z`_?}j15!XKTDAla86i? zESv|L0KO0SJfxrnd>*5q1?p``9buvmWqMIqz57{`VHQX$)WsOS&-b5#)=gN@np_xb zq>3jIB=`wJ&W#K-d&CL5wr{7wn!@;>8~uU zB|dzO6Yg^1&H6eljWekYAP)R1u$; zri0O5cCoN92>%P~lOhzNUEPSI&ORg*_+6UX!UMe%btiOu9`B*+GM9!bra$`WuO_)a z!oayA{?3vc@AR6u5*c6fL>FeZhEJ9xGKzgj&E{uYpk@Qw0yUeW)6f~B!v7#I@AcgX z`kwws6+qMzOOc>C-jA>x%`7J^VpWNpR8SI`Ajq+M+UKHOUggB^PmKQvp1O4cRDVR8 znwvebs75!Z$E4YRbTIXDyxrkYSXVBi84Wto)zQ<#MZL4Rpr6zbuN1jSL`7M{+U<4E z*f7Wyq6dY|-(H}$B-;zPCcBKt;RU}EAJS8;l-|0I$+)?Et6oY|ObCLohO%~I?EXZO zVRqI4H%`wZN>>9Gk(tF^Mie+Hmyu?n3>%hQR{rF|5?1{)sjw^&T^t z`(5zzvk8D-Jcjs%Bpe;SmVZ!IFxv}<)G-(b#V}*d*C5uMI~}Eki8X}K(mK~lm*etZ z@?bZH<>C=|%9gX*uVX(YNC7E!4`kd8wZ6XzS4+|7Nf6+vdK(;n53^)#cgOHhhF!UD z#6zXXG*xP5S3{p!RI7e(^H?9P$tl__y4`(nds_5J2h~p5!6REBH!S`yDmfUh-&a~*0*yy&jO6pJzCrmgshUFK}m)XyD#B--JXU^@hp5tcq1_U_Y}q z5G8R49 z?1cPQ2!}xQ=pTe+JYm8WD`I^t1sf+9TNjs2+t;Y*23}ixA|Ja%=GF z?KHU%Wx+0oHE-;^MmlTV^e_7m>U_*q=+&7wz6S^vMD3~d(J7(HSGy7tqSv||ziWDI z?QW$uKXr4@Rk)&d;)qKVrZ7ZtTXaZogqbFkgt`wUViy{0mGW<7*rN(}Hy~fOIT(e! z3r3ps$6*X`tV#=nqVOj(g34~8YDO#wU@0a-H8~JuKd1z-6ceE$>%|gdd9OlzSXW2M z{KO#^gM^87{Zf)*;ymMhpqgm7M`mHdN#W|`*zh~LnL$>EnP?XR&2$JHiKbmQJ6quj<D6s=VUiI_qfQ!-$OV64H5H|K zCGX(2&@kWSy=h4XX5yMx!dY-(eo07wGHV$07Zi_(8q&l=ZX9msjRU?!;-gpe&MmOj zhfMAg!&xZeuQ#|PVl)jMQp47e*7PZ8CUlqF=*bD!14RzJ6UALro9;Lm-?`e$DQdab zk3k=@u4Cj_gK~jlT=VwuXs)v#m)CMphaaXcQNpIw8)oaIa(U2pZgv~HPwy-oTk;WF zAKIB}hm>0`y9=o;mlP7Bbb3de9zYlEHntX0h^!FW)bAKGfF0y|9Ttv%5`n= zwa6si)Levu)f1LS!qXgX@x{yPQ#=zELXcTt+y=U0KVD^tCJ;SA+Kd1STM$5j$)?za zaB(K1+`p8M5tJKNw)w{ah5z3LRXjJ6$?leZ7l1<+ZqLX*X>QF=7%GdvnUUnlFd3msqN&3 zUct2NX6)!-cfc5hDmd2d<1{w$2Fju;_*7K|RKAC~qC79~ ztC-y}z%RC)4${|YiikOAI}X)NE}4%*t-qk`Ius2~_p zJMQP35kIeZ6P8)?(wx_j-PaV$JdVJQ2boTao@vHPTFqQOX;qWvZ&{~ z+=kxKQC|JjmN8mW12wwEv;Sdf(+4xfTF*^~RNkr_Tth6$^tAthn~mCTO>{Yuf?48D zyOVEXCk7)6&pOkE1E5;(S$AY1QsPCjNp`Yn6wi7sP>9CehJ|R3HvpC<2AwF|ng9%Q zC^I*oTuT_QBs2js!Gsbi)D0|=7Mi4rfqJ>P!L@=w(3Ay0xE2K1ml`>cEYiagyr_;1amSd$( zf@aNDk6yWcJLn%%n&bI7T980IO45Gn;dPUIuF(DyF0HcJMGvH0G=dgzYMLIST|o$i zP$dUYQzwM$PG)yNRQxsxRx7s(!)hhxB|ttiuMGp1>*-iiDzroYnDfJl z!B$N6j#*bAXi&!orpXF06{wgArhj3Xu*^7VaVpSoZWtOi5jYbTKyN{w+|ES_Flg^t zwdl!2UMd3#{lynU(l5etW%%L=;IQEMXLm>QY>rYM=*s9S)vv>Pt)#oX9)!5AV zD&Fs%qk97|?(DZMhwOB=$=?X84Km58T3&z~hwa0vhzsSI52^$D-Am zZhZd%~NfF;yYeKR!TZ;+cLv`Y#PvEny+*XH$QRp{6j<^ovqm{krl`SJpc)_8* z{w6MM)OSIZzMR5(f)_X!80%SxIqWPq8WyecgN}(-E~JHJw~P(n9vX-nruAy4xs22e zyO&k_jsdQ$xSW4f=g`wIb3E?Jj1CTpg_ASFhHG9cfW&W3K0ZcbsQhAeCTz|=&K=hD z1qN(Aebicjn%^?FN-yYI;^k%fdLU!F;(z+FagOKYq}ZiytpL&lSC)a<1)pAuJy-g6 zsK-JeBb=7K;QJ<~_-Ei7QsWY?cQ{|!<~g7GjggEaN-eye%8Jdq zWW{SufU_du?Zyb?PQt@bp3<4SZizYui7AD*0HeeMa~#5% z^fiZAIwyjIX5WvK71;a#nN${rLSVF74DwVcVi46l4a>Uwe5Y=Ln|w_nUfUA{?73MV ztT_jTF(@xT>+Nh8hZ&`I#XYd^8^;azX5_>t_Bt8hX2 z#8$d2kzA4vNG%@ui{3zzUXkfFMw!;VMO+>B4LcYyquv0Bfs^Zenu%HA|H{$NCDp`y zbnLVtDgeesgT)?%lF^Oc04a3z3u}TfxPQoZ4XTNZ#B*zG{epz&YKbX0ac4v|G#COAlJ{_Rk&3!M5Qvc=PiTA zRb|uO1G8}CrF}Ac9Z^Y@uKXSYM%5Nax4kW>bR>MLOWTh}b<*&dVh=fUiLo5#Y^O{Y zdVhW`32>xw-RH|kFEmBBOV(2e?)^(q0S&m9+iJtt)Rvn1J)&Akd{pl!@t z078!p+BYMx{fTowLsChbkP8@<% zbJ+r<8eo$DW=tb+{gL$`0^#6;c@hU7#5O+x?!Vj1T~`0X>xo1kH^rtLnq93{hgkx| z0b>rpLm74ungSYx3ZmIt)5j=Pk;pwK0k) zb@@TLea`H@nYrzN=bANllm(OQm8n(X``pTMqgw-jmujMWjrQfK6u4jUkU5}a&L!v= z$`?QxKAP&UB)Qv|6rI^DH)thWV187s$ov=sHA~uylwx<%JmWU!f;#DcRY^S#Z2=yn zCFCY3;bG#S2iTVYIX!loJDI>DpfNL?03)Vn@PqOh`N1T95MYY9G5qUc z1#e%TNy_<1ZM_mdb+BS`yUHDsubaM~5BbH2n452_K3KE~8MPEA2t*5}brz349CmnG z;1sGfIQteK*C3f-vi7;akX+T>Z2x>-^Jw#x_a&vW!vEM&-F#yRW=V7SLI z4SN7M`jM-kuR2lCaeLi{g;uYJf0E4o(**GSUJpUf4=n`IO0D@HbX4J}8t8Qj4-%5_ zz>oyH#|%CmV8%HNzEjpz`Og#BUw}0G{n^@DB^M**&De@iA?S1=p$H*nF_3ByS)8pX zP4Y?Y#O6In4>Pm!&&mknD@_T@7O1yIkp$f$HIyw)Q}Ux9Ws_f;jeteC9%Esc zUhGKUYoBJ%{uVE|N)!8|8#PAf>Q(meq>n_Plm|*dNKGs*Rk@F9RxYBSl@UzfT2pG@ zHS#@GB?~1$?07-eE~+6on$~if;g50?N%y1yq#ojKhgE}kMoR>zW-}lZ70&ksqn9cx z_6z=BJSkEcrv&~IOEyQtZr}b4j(`AepyJ*S>s&;t3$+&#ndtab`0C9sVRLRdd%!&H z{R(@}!vq2;!T&Tj&O(m3P+}i)NBT&a$7^+*%-eIJe4MFa+rJ5tmH|D6mgeselA(tKu9RMYR;t+bT&AudCt_9I5t9 zYKwPjQKWy)w!{8-UA5qK^%Gmv3QB4IT5}IsbAC^mElFG=B>Pw2Kp4kW69m>!&EM#F zz++vT!MQZ`k;)(LrgIq!(FDLkG-owM-&exva538WN;hvlu!KzC4#|%7ZDFdNcm^cj z=IM*mr@WfHr!!4>?n{qu%832UmmW3z2AC@oKVtW*z<1UV2l3l7Gx!*#4CKq3Ya$q)78c`=Z+{ ziS0eN==%fQPE+%#(Vzq~=%aE!P4n&885GJ^oNiP{w)8jpT0&6rN=`aX__9*TpIqJN zcii05u$)$Ycz~R>jR=jJ0$DNUF13|pZNhL3nqkm2MESsf{z5_h#cz&;o&yE~+in8= z<{1+36rO}!XnBnBnQJna(e%Tfi&K4v z`_FvU_h~lr?IdYYNZa}FK0|~W1-IU)mZFg#gCiKQN_K2;gv4d;KHP8Gsg3j^)u_3lM`raltfHg?ye67w2bu? z0kelXXV>OP%BpDVNA()12-aKJ6bVFsjczXR8VSRU4GdOwx{G!b1An-`;qC-I=0JE@ zpnCwra9LkB`<#dq_j2Unq%eW<}=@r9o5#3$ob3I@f-MuVYr%o zW!$1k6ynA)vakS;wd^UuG*4PSrnjYF)Cb>Ekh)uGtfk-K&8gloX;0Vsq*Av*1AU*8 z;w^3qpBGRPO!nQQnwAK)WUmPxU#nv5$5_nLRI&jExJYdQ`1ZY!FPqukafH+m$!%_o2dI^5vo$M8Tv`e8nTziUg<3It)btDO&P70oS` z2jKE1CgEt(!hR-woLXcJFqme?#V{Yo%YY2OH)k$PqFa6?i7|?o9{Tu^{8yno+Mip<^ItY|7_W#h#}gyT2ODAR6eC;qNS$mp;LAycR6b-~ zn2u5$vMvm6$O2!W>?FyRmv;^&bt<}PbPT6w?F!-3J}+>=(TEOqcUYW^vYU+-9Maa( z32<6Q!xp(wNwvf;SGJ+z6G>a&xq4ns&b3wiK;E6J@JyxEKI)dA3*lW-e|J$>~5QyNTXtcN_a+E9T zq8ehYW{Dy+lOR`Y|Jsh&@X5>kRVOd=H*}bf}Gj3LcyTdu?z7OT5azRPZ}F z$5Hm&onEIRt!6Q}Zhm(b!mq--&=MGr>yWB;xaTbltg803_b`_cnQ=dh zy0Ew)5u2xW-Vm=aWZzmq={{UurF?O$5A4Q8H6Lz336wqq%kr|%_oVHr@S$}?^rEn| z9}nEF44!?3$5P041!i0$)wCN0ibu4wt%rYXFHQ2Iy#_mP`Hl@mxa)N!sf?2G(OoXr zc<9^-Fh9;XqaA!|eEU=Igt5~ec*6WR*b*OZ3kP0dejM39 z623CN`5}0M?2rv#VSXIhmk)Ul^W%)YU*UV0-;Nvs4Bs<;ehzrT*c=o*VSc+D^GoHJ zza2UD6n;vc`P-2rKap3M9|z}}GGvx#eq4V1OBn|(f;ThHIYgd}%gi|A4|!$$uq~EXEV$Yy|iz#)gmZ z2~!DRAN%q5FqOa@b&Sp1;is6R4$T~O@O%Qsr;z=yk@qk^&Kz}U=BPt6M;#j3A)r}v?E{SH2I(T*ujH3U_)0QlZDE3H&}g+wl!Aw z`FX}BEn=z4d;VIJSJ(B>`#^W5m=oEi;Jocdvr_Ri)6pVvC;N+fo!3A*&^=HIF=>ot6qt3I7G z-=xqyOW(t=b>Xbq{-p)ouh1LThU_vBvVM2+d_~+GnOk3HyfyTFaVhY^>aWSgho3dn z$I@GpdyHd(&iQ+qx{u7gm^0eF{p>D@V9t)n4LhTE3zP|c``$b9U~z6w6@BL_{ueHD zHXT$UX~lfyG@I99BhE>^J8akbF+1M=30M7Cc!%@p8mB$e-8}Q9a zzdlLYFc(`bRh)ODGl^^I`OjGXPQxu-16P*{2n*d`F|%`zEbn^$W7pm{tV_Fv3(DD% zu3C$K6Y8j`-jY7A=l-o7i~V?I?4EBvVRT24TO`)luwA!wCoS*LmpI8)f9q$|6W@xv za_C=~xpCQ9XM4BX8)+@a>kb<$g(ma&4OSB$u5=&LueNB2KE$&rqVkIJrXrg?ya(0i zzr0PjcI_Flt*+6q%4pN^;uEKXqz1m|eN?v#k93ArB?T!(r6=@T43A^Xg~fo3HIz9g8X6A{XAYbeqA=J)7%R z-Ew+t(lAHi=)5JGhaP2bH*R<6ald(dZvSp?XKOc{=6E*n@KJ?yIU2vK6_M$$`{hvusntGg1hW)B%O>;|9lC5;$<;D{4qMbxaj)a)zs_j^{#$-av-|ovX62wCzpy{#N2m1 z^FQ)$jDLYzw@&A-yivk8!qIaI%LIn@u2UQ?IKzA8uFnCC`tp4j&DG{?x~-qIzwISw zbm`@Qv6+kc&tWdz5Dk9;TIN&A~y*`|fp?p?O;*+ueg&b(x!-@(7} z)1?#7-nW|`4c@{xpK!Y-PwK_l4~k_1g~@2`>c~*tFpG>!w{t8DGxH8xri+(ferfs2 z=LqLL*TT%_Kg`6jjeNnp3+w+fpf{%-!{-H$J#Vl<-yi#6>qs|kkGD0z;7XSJtv zlF14-_54no!y?0bHJ!;9`3AJl)z6ML98?@mZhx=%`M9~x;G9*>iW2U3@5KS-?!Ful zEwk_PjK?!mL*~Ul-Bk5p`tmW-S@)o!L^*t$`=*T&ZXHrvK&tuMCxQ^ z4A&02eL1Ss+1kIfuC?U0V7%{8Yur8!!Fig&i!TIT?>p}*A1GaI^LWPs`%f!4v$)oN zzufMWhQ8TYOsK%sj>f;FOE?$&Rp6;5H|yQ?qZ{+g{jq6RaiZt!tc6RKv^1(&2)NX@ zw+X*G_AI+Yd2EL76RRF*^Zyl6LOYK{m(nuQ6PyAJ0{$QHb`xBi93vE&{3hINc&^Y|M!t48eQn!% zLsZ?V(_e4t&3ovQ({Z<7mdv@b^yE9!YoqQI(>x{q_xd}d9!AHkYuwFs`iAGen+~rz z@XO-v7L6`!^2m2~%KkAwM1Oh8>3Gxmepz~B!Kd!7oSiB6h?jHb`YTJ4jd^Xlg|Aru zB_ez2%Bd~)9fkN~TC}zLmT8?TUBfy5>)b;r$;Rc9qZiH815Vu4_-@6si>BOu$Ww)4 ze6Xk~EhpA6dUcPi<;tF_02lcXy({X?Hu@VZ7VD=Se}LLw{^nBukrM`r0?GRuHx)H3 zDoG|Ei}-7{&PwlKOMdT1^48=Jmp)zI?;y7Ayzcha9nRc6_pA61*eyDbkK*w!kheHm z+u_&i_vY_so6bjgby3!8=U6uyt+fp0UYnpwEI3GS&B1fZUhq5lUQ}hv9PSXc182D| z6D%E4<{QM^RF_!RMs~F74SvK~_Ap?7sExotlwE%8^`LI$0&TRN!>p@*OLj!W?w_5b z6zN^6?mZ*SV_Au1NSpCO^sRZ>={v2RqF6RaE!A9cytXBnYDEF|R@lo&U@TuU(I>PR8t&7#M!_M1}Z@PL%WE4{(xKuPmkbjIFZO1?zMy(Bc&n&x@&1H8>vcpc#N<|9YVTA{zg*v% zbC+;4BXPEv-m{~dYIdBynKz$5q9e`C^+`%#s(dRX)O{q#5C6~MsZB36GYkyktSaNQFt@w)&3%i6s?Q147m(`2w zP2Y~)GR!*UeT%>uBy6yG?wYjy&X~Y}n)Z>IH3WzGlq2^ARIu_P9Ny8@<+xL~_Uv8d zliXyJa-jEA?v<|PMJ*e&uJ?NI-oLYBacIq~eQ&kOV&t}M;j=C0oY&9yppieiIbZUn zBq4A^PI6}TnL8^UqzY%B<0H=A$RTTTQKZ=YT?`lb($~Aj3Mu55IZY%!(q*$#D8U`H zl`9fnpy!qL&C+@KDg0c*jE#qNFI>`ZQ}B(v9&ag&-LPs!JQtkiHM}l9$z^w3&>nP}<2S#I2^XT6SIl9uS=n4_~J zJ!ttX<4!Z7I6VU!ab;77;`9^zjUSS?o1$;olDm}+?O%U=|8k(>sNsQ6(pyC93Y7Id z-{+^Eho_59MR4obvKj@A?TTU%eX zyLRI;K6>plaNy$X(~9+5GGmq5-Y+xyK4{)+dsJ~VDQnK$3kUb(^4@>=ps;OQLVB*q zUJbhb)iXgE1!{LKW*;RTST-XfXpRHsOz7?WUa18^e?1u5Vx$xENaR`4lQ;uO`{lG( z=kwnxS($Cn|Mtx0c%e^s+>%Ijb+uz0(tCD9h?K}lDPM8G zu8JD5a!}ylr?}j{1ZfO+#!O*};+zVSE}ztbK~&Ycx-{n(zTf3FYJv}$E{knAeeQa2 zgjIsbw;R^8MYk;S|0`H#XU2@Ai|XpqB^xbtV|$Dw12t~ga=lg-JH;RRx9yMX9!fPR z&fvGI4uK^_dMi2>^@dUSqNTMO73LjWlbRD^Kd(FIiTHL>@}D?A>#M zH8wl0x>f4r+s*!t9#d)~(R$PIR*x$xo|-M(@y<<2k8W-ei4wV2$nu0g7b#e!SpD|;p@pIH! zH;JG{6VIuTk_9IT18Bw8(ZO7(gK#0i!_+z(PR4X#UbiId(^7pO0t|$Iu7q zZ3^d4=Q|r;dc0a!!~Tj!=z84!FIZ1O5&6erb?tLkS}vCUaNCL6Uqv1*LZb=?}lPnaC zZ?^EITq{T|_cnR0r(2qRLUVLaQgzm%6B=^y!|gn1x`l&$g!>h8$s?&I*V;=DOLE8L zW<2&55YxzccvN&XLFxPt^lPb-3*MGhM?r z%c4!%l8@%Bx*54GCMWrj`G937_BHWQQRq#cA_=25L;mWzY=`P>y`3IS#|-0=#Lb#_ z;LU?l{rB&6m5S-G?RM8OcfLn$YYeGg=jZlF?(cP(8@yuKDVqK0$Y-_@r$O#(W)^mF=E=G9J zasE)4(k*&eQ^Nb=f_bN3$bV2OxRN%bdL60e@vtU@ZuCK)-h}^f%rNM*;hl)&>p?*q+J*Y~3oP%4Ud!LLP%%9*N#;>%M45`pf;*fq z-)(j)dDAN>zW;OUgZ$A%aeZ7FZL5Y+;D*`0f#-uOGh1hp)U}S3n49;Uk0ltzy|Ul3 zM6FzGzYn*-s&ksn>*gF3Xeym?d$wxygOexbE?$*=`23oIhnlKd`+cSVKkB|QJkvDm zHde*9ZQD*Nwr!gg+qNpUQK{Irt%~iW!jrC^p6>a+K4<3VnV-3mJXh{q&%4*&YpuQR z+g(`4ef2Nix_0NJis;Od7KJr11^ASG2);B#Uhe0kK~My67{0q8PazjP?R;brkO4(= zC5o>Ch07BKu#lG?`Gk8{VeC3Roix}=oZMn|_;&2UaJ#l0v>FgXHcMSm zm-2&3m#cVdo>lh6z)Ft1*zqJjQI)WojRGz2f%1TNt{L61OsqITd3O%8(oHOuhey7) zcHqJ%>!mvcWG0mvV(aR2w$rHIMUY+S=)SUeGCj*A_y_d)DuCycc2?DMyI<`-Rk){$ zo=AU#;M8q>x^5w7FR%&jvN6>ywhT3;Kc_%inPc_?<;>Yl_dO&oB&_oZd zCG4hGdvD(rSSOuproS!&E}IwZG`9s9!MQ%xLk@L-M;9(%05Rv0cdjdiu#UFQxK8_P zW$7TXr2{cvk}7)@nDda@`h2b`g_4c^dW^vuF466FIp>)}`~H;v4Z^=wXvity3f;Km0ow*_MOcWkisv`dwasc z*X;}BEX^bD-oJ9!T^+=WK=_!*>|cq91K9CsSdEcWFA!jWb-Ezri)hr$ODG0 zVjKi{NDC6|XNF&NF%kGrY_h-whsg07~+B+@XcdwRFA^je*9e$`Rk>cw6k_`ooT>EQwyBYqR*y6^p78G zwIu5lY=tf}*0pSwIMvBeG6VVSx@!CgDXcu`DNj8Kfk=oWQ=$R~Xi=KvQ_?)rg43)G z>5D`MyBh|b#}-H$7yT8KEQ4|MQ;~Z!ZH44eJo1`I1gn%9ot#It;%q#fxZrbghz;(2 ztk#?swas*z1SUa_cdspW$|pr*Pb?~**{o4Lm*me70Z@vx;q~%RC@C^du@rjUx$uMt zT`jJAq@((?lZ07$kyD>K2Hk`q3VC*ii7|1*r^MKnqGK$d2HH*tt?Mteib9e^p_xF) zjJsSCz<|fs3N$X=e;92C#8KEl7Eh0Yg>SR^B#u6n&e_b)`A<67PWSqi#3@sE&*q%l_z?Ft6jR|=xy6R9_aY~kTu(V zs6l&zGiud0%)ok1tD6twwW<$I$Mr!+QK)U_YZWm_@_K@$TpN28BAN$+Ey-;)?a3E@opyRsZq8>`Vj(}Cc1 zit)EsGImsQcySFZl9$uP6V}isB?jXZt~Pmf^B|t(FXX(}#Em)qZT0$tcw}c~`b+Wp zW8~oG{_PY0|E+}h7gCkucQN>1diFmjq`#J;e+&|$=2lL|4j(1SO5e#?*x1n4$Qb|Q zxBo#qyJe26|5Gp2)Wp|!OBw?5G@ErgtU)f1j;ddK(PqUv$CIECO5!F@=NWD%KBQ~KYG(YZ23W}9*lN> z(5mVsjVif?hizW-Zen@eVF1o*%e=@Ui z-Aqt6j?hflw~iJ|OTsRS{A~4gWz57`VQK`tiNGeqHUZmuoh zq@a`*i$*2>3kMZiY^9@dLFZ(~AbjWXREOtp0|#*h!kz7>Ud=z^6Rp_h+57#1l?CDu z7Rg0z@j*#hGO(McouJoxc_=|m;sq;gcAvi#@6~SVM$G&BlELZkT~Qf}2gj;??a3?rW``p*(IsFo z&nc{~2#7DV;)xgn6P`!qFShbx>!a-oP+&Me86lg~O<;5U7Tg%ipG~@*Ng{&Bjg3ej z!Ar)Axl**|#d=s0Ji)FtMfGYOx&r^8FJA-p%{`so=iJ@LsxcO# zL*P}J=yxJhsRj!34h*wCyWXV)HVmQa>uiM@dnny*#y$uuotbWhENJ%(Rg;6FU2eUQ zSsT^(veoSkOgU~r!@SHL3jLS_#(S%%mX$v~dmaDmwt9J<1av8mpGc3NEp2ZXlw}@kZ2S)zxY?zXM06cf zE9_*E+@283px{P?prB;>%s706{d>UgFa7<^U6tf(f zAS#H?9=;P{6vHKebAodvlhK0+GOo%y>0GF=G#tXS(#-cs{M0{HzoJ z(5jOl~pe~RN3RJ^Q1-!?Bb=$x-?f~q4D%)N`^@SuY<}SMVBGO9(gWQYm^gE621l>JB78s!j6Qb=ZlSfc`e(u zyYt$-5(@sI4!0|2X%*e4nH7rV=>W7z?#}X_Djp$=(HSNqUA(1xzT>3wt5>q))+1eh zJBU}sbmvz~|8MdS#%zhH3IgPCoN3n%^|-LhEDy%6sD(MS#=Plt&?kBaPH`ajIE0WS zEg62*Rv0M5hw)Dhw3LeHM^Q#VOsU=JjGU3zGKYSifZNfu>^_ZfS-wmPTj!wL#7zPRMU(mvrst;P98g75Rjd?+ z8JZj4pEr^z(C~HFxj@tg_dCvyJrhD{Ss-gJH?TqIN8lle$?zPu&>huaP0n>w0@8l_ z=~+)LI7z>ac%UUb6k&th9b9$T(XO%Qezl%v%Lro4V%B=9q3{QpL7JvoO-gylsl_G$ z9XyzNH@75KC%q>y1X$+iUQZnYn=(->+!}0qY$==)gVeANlZR0`w@Ai^8L)=cTW#{f z+>nNtaUs7jObzE8A3$lnthm4J68@N07}(hVq#&8-|8V*J7qtn$JH-CdCNR%vYg_IMD9 zIy-uK8d8X{K%p?8cJ^YKZsM5mV%*i_gtxvy`!pDn%b@)aUr{A$$^~&AbR}zh89p+T zbtTIRenh46hx9s4DT1f_dj4&m$Rov+;tBph9%D0~yUhY)-Eboxmy3#@xP32!btC(kdy?mJ-VeOwoUuE2p`z zFHgilFC4@^qL2i5o^P5qynbeWg?yrEk0ym#1m%UwYbTe&?3@WbS2z`T)(XpU@1cWK z03uSJJW!uVnyRnDVy>H`(>1b^3GXndh|juKj;}d$GFYA9)xwWe12j-q3DiE?4vOQAv^Px+_k7gyvG+ zpgvXPm@nXbp#!H7m}pXx9un=kUp;tl7r)E?d;}Ow9$m>0NWP2<_=tF)9@SZne~>(? zea`xJH8@%}BzrZ6E(J7MVx8uqeKV334L#xYDj*nA5yoE?=TAg)5KEu768%3ZZ6PBx9UzBaXus?s*GKxcLP)8k z-}778#0^{QKhEBBCvekybT($CaR`wg6u^WG3il^`<$k6a0PW^%s8|U2hTeOKi92t8DW;qN5v-#;|4()jP)({~P=9x~S~;EOm*O z1Ll?+2HLuA1xBm+=_KSpePGR0;}K?2Zx@lw=l%840;(zJq!f9315W?$?4q8ZBuii3 zm`*7Z`32L&4uQ+4zR?ifaw<9DXXx}xC?R_TGYo?Zs%3V}C-L0-%R&FlwdGvWdWe#~ zZMS{QLoeB*m3(L(~z~-?LVoIIKHx_sb~N zz4)x^uJS}f?4Uh3gwwXNC3i~!!ph~>K`A(Feh@F`e=HsvU6d7z%0vhO6V$?y&I?=& zDzM}QL?ELC@}M2ij!YiFuA&HPfo_s_!lAPosGk^AmzG>VLt1DO*ib*-*wuHd(|e%{ z^zhyAZ!qNdg8Dm8M*rui$wdFBsq?>N)chSV{)P2o_+`ia14I5FniJD6z3V@bv6$%p zN~HZiANk8p^j8^+nUV3A==8s2EGGIt#(i$?f68tDiHya-&PvPiVP0ouktI6a(YRyA+k{3V)w+eBrBanKyI!nz|F1H)7{NIMQHrhA1V05`1B*h zUwC<^Bf*}K*f<-6)#vG`iC0}VD_MU5LjhPl>P`E+YXvZo?JK2Hf~-$-Zq^)@5n z@oIOULkV`lXp-aSkM(jUdf=R60Di z?cog}WsU4!`)kF7!fqZKks%Wl?!e%wbI`aoVg_(GQpk3J0$&jfgy6Y*17Wx($?VKc z9GZP7xsLF06ef_Hg6Oj|*0Y7SEy?TX8;&?tosuWCiAgs}pBc@+ab|Tjt!p>?ZA+bx zuuD?@7%FRaI{QAWu4P=cI~)6|c;t1qLl0kYwJdhscx$v5YLIEJqBQ7|I5r7(;2cY) zMMcRhMssqULZDe-osO?)h(#cu#w@W$Mk8EQb~)5R3qz6uXRnk`2_T5FX)x}k6-P^7 z)`SWTyWo*_UmJ7m+Nriv!xJMJwUtCnv?A1Ar?#tw(FSHCxg{yU%t1SE{Sv*>Iy|QNjnDH@RX}cG z;%;&O=0$Fe`Tm;#hUw+=SY}ee?n-yApVl3({q*HM#My;!^rr>e;k@`~vzskK#D&MONJscq$jLcPx09VXt z2Rs2gK%Bjg4ZAq1sBg+2`IGQ#fdC;RDC2dX~UAaVY#)R2DuAA9lHtfcf)ex3g5dHj2F$j@*$9~9l2bu9>AMV@r7s3@3~pZXQM1I_jO*2g(#_CzNlT_`-6b~&LNKDUxOgt$aE|^wz`V1!dpXsEw&VGvl5)dLvyvk+hsqyq9L_$ zQC0eFTW7AFHSGWo0zyp5kF@0{+sOKhQ0HcLlfk?9f6P|jnQfJ0VW;8P;&RZe2Nm2*0$p)jjgZ0lK<$QRucl++FX)i6@vzf9d z`#*}7p~nnO(vr6_+I*(30_(;=?;q8RK;6*mq#*XB>rU_X?mi4*n;BK2@uWgCj_QR# z4uDRbe}fb+$LnlOZ+yRy3N9TM2%aN4BzFY0`PqDID&zBv zWM)AHkJKzN(fM+v^|jsnh-$>&UjF%+j+N)V^>6#AKUi%Bw!cvJO!R+@=pTCH?=Y_b z^{3wWd*AV2q&NP4p8ugY{@yP9OXtP(YpLmv&g-Ak`|n#u|6XtWAo(3vSy4Zx_pVzK z^T9wn0to#2^^k&L8<+T_ew&Bf^HX|a;(DrhMhZ?FuGb4s{#ayuc@B@& zkN`#H8uN8$UNIcVd(9ha~2ee9$R20#x^{tFQ)su6owe&j-`bpi;hsGDUh=&jV z^tYBs6cv}B7cstJ?7sa7%Ip&81kC(s=2lnmJt%oVC&FE>l-Qg>fB;Y31wV^Qq(Fqm zurt%V5SJ*T&7n{2cOE-MbP4qk4u7(aA7`Zn=MRP1je}-^X>)juA0IDPt;{14Y~Fk! z=e2^0O)oqXZaurdxf@|7W%AS~rQ@%hDRmLW$8V81AgybWD*rP1W4xfIo>10tc7kC8 z`RqKMtc{`$GbTM@F#R*X)4R)(-9D_=-#6Ybfka1&c zQO5n_&aS$=9*0JPmfYqXAUetEC(VP-6_uo+PkI;yoeyE z4{v)zJ(VO--7;8|L~3T1<_aFkP)$#$%&|5zuMEBVkpuU>do!tqG-)he`yg+6P-JC( zy^+mRYQZjC({&A&vtTOuyp7+6&5_fO-*PQfD})q2v1&dA)^z|sLuD@)Ngv0&H&O61 zo8M?ACGTG}Z|pARc-gMh-9t`@73ohm-NjkU=hCOx2{K?HE6hu$*+?qh**E1lpH?3v2X$gf&5SM|+f)%ww_kv}WUBWPnw1^2hf|qU_dsqML#Up$q zg*t`!*@lM}LxGSTBpmA2>gOBT3kt}B@f&oz?7O8(|G-urrvtwzM$sB4{+vf{AYX^q z!}wl|?Z(UZF&%Cp>u>7|<2K71{HM`cWy{>LU(r)imtK(TyX!kGp?CefT!g$-d?k%F z-3U&*GSs0#&7djebJ;v^yD~V8lo6=Z7JgoBvu|vTOCGnP0(XY?V`WrAGR1@ySqe{$TG!I7C^t|x z@)C;A^T3*0PCzVP$%)V3$sstrrAKH&m>0^xIDIgJH)7a<6z&eRq$ypeD3w_FFztnr;01iT?WAxTK=9>rFX)m>UzFt_Bvfwj$I?1sz;dEaDgPl zSI;C3X;@F)QP8-Hs9>;3y7(zXDagppomIwmxd9@!dg)B204H6 zYc-ABr$ZEl23F~%SOMv5)^FPO;HJ!(O}yOJtu^Q|Pw4$-Lv9&a%&F*{T50?#PU8Zc);sM6svP3Czx#LF1aQUTNKQiNj$ za98zZ)+gO5P>xR@g;^UXZ{B{A#Y(|-jqNEw9W{l3dOnS%PlmCBgF4Y>P2{LtL;H=B zO?L82kkuQHA*(b2XZ!h=oVBQa2Uv`Ftn|3~Wh742v2~*Q4AD=Kg(n5+v zZS@Ub-f>irjvk0NEF}OzaZ5q+5(8myT1qau6d(f8B8Pb#erW0v=m6HiZ#@|1%-VH4 z$d`lNFU#E3M3hvmw1y>-xL3Xf&6bRam>EV5o<5%#Iu4g7G;TqeMLzI*tQ-67cUYkU zwx8wpvvqDaiGnRZ=hgaQRwL{KO2D}5_)3T7K0O!tW)Ewd zFL;XIafpjKcdD2{3Hk(TlFaRd#w+bU04)~EE(42EVz6}IZnJ+| z$;&Njy*^yP-ZEFL1THSNj2*6=cVE6T`3@kAp;-NQ&DXEK;y z?&?p!#P5C6|7fNDq~iWU#xVSc`_)m3(vBJQ@a;EL_hxt%;t+vO){1zX?M5TF3J+g> z5vdGgi3G@AAGG~&u*7+AVCYw3zFp9?Rzm`ZnR;!VQ*PUIwyAfb4ZKNJ-D&}c^{D@4=_-;- zFS6#2j=YmpcVrhZ0xlH6qe90hen{<2Ux0d&w1ItwP*N(@8aYghe2-BjPeC}D%;bSo zX@fAzU{J&c=*ziRaqrN+P5C|}#bqKso+Jhq0_?rLtKA&_$KFO z`UwA~S&0@F{76Fiw9kTCtH~Kq_8L-}9PNI?mSm)H2ki@>f@a!tCKa zt-H`YPvJ^lR#wu!aWs21WmOf6&W?%8)CNEn=e9M$@(H=#f9vS)upQXu=xtKirJWEF8am|F?IYfr;Tyit@jOyJh%ayO&H1f8|8~oFM+w z-OCUC51S3zds8=84E&O^MGR^xq)$2=6=nxt<{AD#pOc6yU~G>gUBt($l*6T<-3pm} zL9Gi{flwswg*Y6JDjecv;at}UT{3*Ww=X}`UJAqj5$=osxvH&=3f-o}N3OtkO<~a7 zRFMI69CM=@hH&^E=oX5pl!(pxy3Mby(#l_DC6HW)*&0NBmWtZ<{8fL;75E~;)>*l+ zQNi1@6Chgbp~ZuUY5DDCkf*l*Vr(bWq5_#H5Nx3m#^oNqhb0dYi)1@vWSTRIqW7>} zO_7?OC7%SmNgSR{4Ra^Vo8LK8DGSs*QOVeKl!Qi3_iIZj;%bw<1`By(NoYb*PyN1` zZv7lPCUd|$_&8fr2^DfcwzP^b<`iT2bN7y3m18}8K78twi!_{06xd`3XA2q>p{Hg1 zD1=u>2d92fbj=*RQGYSYW|Q-2a(OI`TzVtq7puBwYA>TR9+94}54I)<=l;YWLZ1+( zz6t(%qLB{#htTH_zQeuI(&hf%&W@l6B`}Z3XaaTQY4;gHP263ZMk8fPY8;BcWyz<|h!; zP0&ZR0B~?X1}NfwdH_*Tr)1&@R{VZpe_`GioX!quuwP2w-5wQ0LGKcrFLt-od5L2t zwincCtmOEUYh|t>$eOJs4oeM&Dcb4C3tNOJO3X6Q+id=({#j!R{H|3MrVuK66A$FO zEg8%pSt0mkE<39RQr@mp`i~U5i8bQ~p4~MMZMJ*b)tB2k+YCkWSxlr5MhntRZJ6e| zlJw{)9Ib98sVpp|P^uWbt#Ci80wtnQ!Jd>QkwmsfVPOpRU{SvV-x3_li7;}o`cS1w zXqjx~gF!?`*Ti1Ll-WkrzRfepCHgA<%GDo%?Ut@2&Zy_jV9GSRW~&D{iQs1>YptwD z5B4C9vre6X>>7^*(fD5xF1r&Ecv>6izJ(MSUz(d45JJJW-sG7trq}052m~=by`}+D z(w}1JNeTe&(TfDC(+9=dvi|gjQrF<80m?}7Xo(#dxq1vTnzJhoBu`HT3}i?73<)0J zdP~?4l4HIbw&l0HntwJnbS2F}X2s5pos4*c(M`&H`cktEB1!BEV;mQfZq>#Aw(E+H z1|k;CD8Jj@yT#!JTCMLnN|b!g-3{AD`Q71&_A5KG#oTqvL_P6&U1#}l!DB7>UPrW` z+p6B>K3~Ttav4x;JfRDN*w^JIiG(OyUJ~nws;8oeRU}XNM7=!z!Zh82{wr0o19V2f z1*B=f?((t;gIgd-P%Z_87T<`C{GI(=@IjEaxg-GI-efp0Ef?jk)j4~}+Dm6pL7^1F zE$-WHr;JrSx7F(|-UsVd-Xd3vmq*W2uQI1vxTHWN1vjTebTFFGpLPLf96*yXpRXRB0Z;An;>Fm2KY2N9o4nhNV71_RHiq7 zzxecN+w5x0BP*soul>6r1{&KZ82QyFOVjJE<R<++F;eM zVeB}dt=$}!XX>i#KCX6UV`JSB2{c*b_(F8DBni8z-^Ue24}j~(j(PD^x6h&M z!NT+5@?W%M1Dg7t3kn|gTy;PUwSq+_HPX!5ty8#1OGtZhF51B?@}ek}7^7Gz zf0jIerCf3;@cE=FZ(&*UDb@<^p?q7^8Erf)_|9dh9BzwJ5W8F(uxy(Y^k~`n105irnAhK;-XH4JM=;ed@Bcqw?+*s zx5w}+o9OqR^`BDU->u0p{T}J`SACI~8fBZfFY!?{+ zA;SJ!$x?OHW|bXz{e*`7F_N zSCf_3C4~rBE4+h?yD{o0&IooOQ3X~3@m!5$Dygzkr04xDE%e~Xfr4s| zFCDyGg0q-;)C+16E`1Re2+!M4;*P1t%KmgGr>q$~jQ0@Y^vxcvkO&>3l2^SXM!|L= z<5zKOh^m~m}{v+qu{rk-RQJB22x~(47lL&y_^qt!JGq!$MtMopSw~DvBe@P%2!M9 zudwli1*Z0MO0vpJ=(yr5_OfozA@#{FdmHq%y=}IwH&Q3U18snAb{KY5oIm@O!=}Tk0)EkFb*qZJRZ@)-A-*K&R>czX^*%EVwZ^&;fg(k@dS9&F}_(oiZ~j5B8gNzNyh)Ko%>l< z7l#32!f6tJ!a_(q*R0Y<4cSeY54gD(I;og`|2HBg0sYh_K5$?{YBP8iobcO z6b;_7GB92GsU|RT`83Q6@@(Z9(c!IT%I529j7^_7ck6^Ma?CUjmbbwb^b&WeTjl^F z-#6>}-eZiRfgJ(3Z{(KW*N4F-=t!r3KJ%Td!_;Y@-58?5liE?sq#3mcaL6+3(pKWj z%rJ&swP|iU7qlmBc{)O6qe*a2dhhV$U4!3sgN=|3T0Ql$SQv8m5wGJE)97bjF4FI5 zWo`$7w?gMM4qEwFI=u79s7uxIy2P!zIG2SE;=&8V0jG+{ zu`bnA(xltKN#m)h+Xtz~6RBI*eB`-FxDZphL;(f>6V(bo>EK>pXL=5|rr}3Va(_`L zqZl@I^~%66MPDR_v0UY#F-2RfKd6R*lvw-*SCsyVw9=8biGgEZtB)fky2|nCvDa38 zdTsWkZ0yKO;ivR<(EhEd#yp#3d3>PW&Y-N*>&fZ--6;;3Ef3h@`k~4oHEeHZ1^|-> z$mh6Fb!3T&eu(w8THg>ylmz-Q5wOV~r$Yl$8l9xu`B+G;vJ?nWsk14_&|Q%QeYW+WkGf=T@;1uKq@^U2ZHPcb6D;#7bF;v5M z@7hLrg0_L7-f6UCiI6Bv3=W7+z1vTyz11%^EP{5l@kFZvdVGCgo|T(0w&hM|_XnUY&)iZwZ)wLoazY%MeR4LhlzM7D1|^Vvh(E`#Y&OL$~f**VlWD5}`aH*J~!DV4AkPApjdD z4|F+f<Hd>7DYxINg!=?Sg>KK_F(Wirbu;sLM1UED$->rCP295mFl9m>0pT<`G*+ z_Ho4SV+9a_(Yx@M0x+>dkwZeY{APqW)=8Bz0RRC0W3$qr`sIsLkG?S@m6X&Y;oK~Z z)l2qLnC`TXVhV>ZaHxm!{8LBd=6h@=;?o2z*5SldpJIqp6|;gPB~^XCe4UgS zN@l4u8zEhm7I+-|hFrBIBlN1eq_;Dp#@>{fDmaY%VF;cD}ZS!dorm(hH$hFIX5(St5CQ^y3wG^@f=JOy(Jlom%aOVv&4?nwwd1s;`2SI~vdm z2*xxtDr9&Y&PHiT+d!hQa2N5@#$kDvqUzt5xW4f@pyhU()6a5zZy$a%Zx?iK8}3MU zj)A;$_j(~TI0oILI9@iQ#~RjhvSZxBSB!Is9@Qc7mN_XH0TW9ZEn0beTH=ZA(H93x zq22Ij*GdtCw(DIF`_gwQbWU+qUSK{+dNw~tN!9Uq{*w4?Add@dKuEeROFsRqnF(QJ z;06?X8LG&?XCJSYQeG!+DeE}2xY$tk`a?C0G+Kx`dX40~11n3x%mS#JR1gGHMc}Y*SI1@h?=K^H=jOp)(-)U{ z-vdz(bE<5TwJxFL!;e}wr+YU|_;|;>{e}ZXt6Q?PKLtePyrlrrQy{8g%LgPG1Wtjh z_ZY;4z}vtlEm1<|lv+(=NP&vtNj|jcsp(G(VyF`dtQnX~5I@5;j9yz@__L3cpLq|H ztbYZ5*+4S}lomM2^RJ%A@NjTe$+uEPb#J2UP=R@Juq$!Fe;D4g0p8S@|6EmI3Eyyk z?ykE{gv}F31hW7Ld#d4kv&Gs9MOspRV31Hr+2By=*4B@$NY@u=7NmD?qKgMm3j2Ju zE&?nEk1-~(5A<=Fk~dJ%v>K)zOn)nekCjVWPStg}7K$`1UUo#W!ClW9ut;WZXD45{ zU1y_0-6)qViwSC`k_4(XPyb=Ho?pe73@Jcs5KfjIC{%|Yv75#LB;O+JeY0a=&8mCj zGD_Ucg$(bTaT7pPya82VBan5h(pD03UdZ69@r*4^5h7~-*UgWcIBVBBO;#}gC8`LR zX9P-z@t{#soKEZTrX^;ww5)U2o}mwOD$6Y7$@mJf%mc z)QSdRjPM=OooTd@D;0oiZ~nc0T+pV-i8vH_Z~@(yjH|56H8y&oe-@D2p>}EBMw|OX zw49nV`;J|}SO&ANlNl<5Ez*e^p`275&KbJNl7r8A@%6yQYveYclcsltKOR1oVZaGh z`d+OClsM8WPL>!#R5>31T!_=Ik#vi{&ux)t3~di(H< zza0!N*X+`npfAlg6Ah#aKk&(HgE6of{xVAM;Uqi{d1)0K@t{RjF_@oHP%Tk0x8UUp zB$-NDOcn1Nj7JEns2@tAC|m1stg5-{7c}?>+f_reHBe)+%w(kPBYRcm zWgc%WD4!&1{DfMQw4%OdYt;BUkv4R)UHUP@_X7fq;fy4lJ31~Y-`S&hD@*@K@752n zgv9XIFmx`ab_nGdIqCUXUQoB>Eh=5>uI13L-{#+z9rT<KaCub-Y0h1`zf@X?}WCDTx(2ouP;V+F+)wK14prhe?+XFvm zrYoA5&lsj4CNxPyqsLgZmjkoMEi~F4*)Dk~X9C{P!)n-?FZN_WHL)0cb2gI}-neFb z{2>kzQNk zMN8>}F3!?N)K+Bdd0nZY%2^*QV_4oJF8C$axoM>|mlhSVA}dlt>~$pz9ERk%c*;^c zUx`7pOgUa9(>QeAHJ_TWYT3PrkERkm?!?ubR%Q`6z3 zw`8++Z>j7rG2_=;^bwGNSA0s6s|PqZ&Dx}*g8J@9pMI@uE&Ao|{@!_m6aIb!N@u5O z{0OpqT>DJ~5eHM8{EEuxT*zCQTRFDtn(=0jqNTIF|I&HrC11p}H32Px8sCWopNO7- zuEJXG-G7?CfC0j%Tc@f&{tk|qFIoV%TqPugK%9H79y7&2`07?a6j10>?7Wrmt!B6~ z?O_@`84NRdE2M(bodKI&Pq`Fl;wvssw%d_I?M04q>D@zvoHkri=J=w|ddh$sZ>rk{ zAB>1I0zKG{+8t=gRq@P^p}qGK0Ns4=VQ7oTw|B*_k!0dAE#Fa7Q*SEX4mwq{O`iU? zrTN1g`Eeb=Uu64VA@l!bEzK|H^sk94OurKH|JNY>!Fc}4OZ&Hkq`Gy?Dl6jKxvl_+ zNF0D=x-DVhjst(IbO5f0t9AXES7<c=Svv_B>%zwx z;~17HIo}w&{^QuX4=Ez?@))iMCYhi@Q7DAjXHz4V=VOzmM^b#P*o;=9a)V4LBoTQt zLBwhDnU771xC|Kg=a*J$TbJF8x}{h)35>;Ip0tD@<}gKXQ*YQ8#@qHBOrEkL{>4 zZYvTRA+m9A{K!#1f8oBg!7tfD^h5A6%B&7`7SE-R8J?zQPd@))RAfIB`fZN3&kJm0 zX}k%afqKa}gPlg)g6vpGB+W2B(^U#WRXGJFey$Fo(0Hh@{6*yVR03H4a0aDh_1^rx1fh>Y2SS@S!&(1k6bq`DRfVb0EdL znr`?ygWzagwi6F%l7Uo0-{ZS_^4sN;BHpwl!w=z*cEqo9!bdiBTPlRML~k30zVy^h zR(#6qYWv5>DdvR>F z)ipeEZ7?wW(%QCDMwusRa#<&a$lYZWak6_T0zA9gwEV^63Di0P=$k9?+|0@R2U#?u zZiY9Qn`{g-+^Y@d$y}!0Bhk-QfVOe@0$Wy}&xDYQX%Y$*h2{C9sIKfb6FceZqsArC zGgqJn4OJ5vBq9pTS@4*eq_72!?Az;K8uv@BP0q|Dag>fQN4W)nq9d_-7@r!Ij* z6gUd1d0OO@MC_74)~{l6LcaK9>@k7Km``23_IK5^i;n?>Cnm4C1NUN^;-g=FGZbe% z1LDW*I52|6!c~5Uh<1Md_Uy6=452mMp55*R9^9b)jKTzwf2i5PE~cKqh8xX)(*DAL zxzRu31$*cQVu($vhVsfQoE17)({&+#;Ch%1rx5bGsWl%o2JC_k^S&x$aUdZDlmJHd z6&NOgp|__he(i{Fa~(kv&AIM8c<85BySie<)I2z2j$!mrlcUmD(~!L8{AcgnAgKN= zmB=*7;Af4-^CgGMl!n3lgpV}c>t+aG(I_r&e|ZGlBOL@uXaF#GbY~VekK1Na5;raE z#IMr_Q1GiF-(D5TyAaY9K||w)av7g|ci499fpEJCf^zemAB&YeajRwvAMjizf7Z?V zV-l^oZA_Nfdbhnjt>Wo=H+|`NWzp_PZQ$0Y4>N%3S6Xu|&AbfS5+4ksJ-t{I7 z?IRx1stbS3+S+W?bFeU&h(~Xc+OolIAMNNXAT6;uXt>h0sd2*f2vmY8^i+nIDFlAO zEAwo1d2mj7k(=I_e|Li<=^052&+8g0?E@_Go>=2k8Mjt8b@t>C|IyvEP!$rR%)K0k znvJ#+XWeWSayo&{iT~y2lu>|~RC$aU*0wjE&k%R?Rpn|BjL!Z9%>SY8o#HcH({1nA zR>gM3wylb7+fKzcE4FRhPAax4w#_fIdd=?HYxlQy@3YnCZ{A;?gZF;MeO+UW|4Zw6 zk@WBY$x_GC623mR*!9w0ItoaMtQMjqhm}bmnUGK(z@q-{iDG1yx``ku$+Jc_#zAZ* zlwIB{k!$QvxC=*O6`0G2sNUh*hq@CQaRaI4bv7RJlhF()DG@f!_C}s;4=b(UI4~*t zbOI|PJYJ9QJA*u`*i6njB&d~y{V8D43`KfF_mE7F^r;H4+NKSxBRLLesqa@0*;rv7 zAQ{e8>8-Bc)jc=Com;OyzO6YsW6R3R9%;J;@^4nKT+zh-PcBPp!?Z&F28q0S_@R|%WFhO=Njeu zv?p#_RyQMy89=T#A_asXl#aLFDyiUt9(oM92w=r%3|EL4^Dg`M2L{WX^Je73x1Fr9 zW?9^s4ofpz%3#ro^BY>|Q`6t@rT^BM&-hye{2>kK+1dX=VPa(bhtcnU^-ke0qn!W3 z0R458^P2bc)_t@ zGpxz>+es-Rq!00S_1K-VP&uPHbNzk>UOk*n;sx)bCd{m_OKz5sLwDYt%2K zth%{x+LPXlwy7@HyYx0v`9Zq%j^r!%F}M^~lp2*T!(e|7_)gQ2 zmIB2l7s-^CW6sMMnx~6ZYC*|ttC`2j2>!KaA0z$oy3Da!dM9Z*gTKY2|=x($42g?uXsaSoBJUm!5JlVQP`(_{zIyFjF9SV7eBq_67#J| zAW){BK1z;60_C=JWLkuTqcWcGVzmgW z2is?ZS*=3Xk4yBqOeR(Rqh3es+{D3`IFKTa2oVY!Sv5U5-msGx&en2SfFFi3&-mdr zt4<$`6(YWR;j~`>jFX7C7yB}MwTFdrL|?`m4%D`Q1+Rx9G1w&<{4L=-3-M$>5xV|i z1vGVYrUx)iI+ef~1gz~@{LcqCxwIOHl)~~5e}ZnRzF}#PHr=M#4e4`#wf}rNcl~Z zG3q^gS_LcW_GJqG_UNSF z2viLR5v`Dd7l?Y`-PBp4UuHly)F|pBd5$Hn@7{I zmpi(Um}#UDkn3WqunhEKk$S;!;BfnVB0|IH+yv-_-hAR zL3a;#ghCwre!L2B7UEM-x6C&l5kSti*V=>Qy=|-tjU-r_kO34~ar_2x#%A}F&*KRL;_VM{fISk}n;VYpt zm0p3E^_(}BI$(T&7PngQy;0NI=divQj7-FBAZ+<&w0QQ+`)$2*UAI}8Q}ta(cJtQ# zXR<@^h-me%fsg&|I63S>I)l#KwOiT3Z3|7hHxb-m)My7H2Em7P-d)}axP^6wJAGL{ z%j#=aho1%yn5!pAXIs|Ak=(bmL_zlGd<7&No#Uh}@&zDv20o2}1Mtzy8kz!~ex{)W zqi!zRXw?vQn7U}yY)Cl{z}7iH1BXhG37vXzKqD$=9&s7c>}Sjefcrp=Hw?!c$?Z#g zBo)W^KbFtC&AaHZRjVKlz{~6B!CG5PC2w2T7KvDY#%!=g{X)VPT_B9j7)Sz#pTX^6 zuGz)|0zg`1a;mE*+yl+pX8X=|kC;zrT^5tgN&KjmmM_uK)LoTYs=O}-FWhaX>vB+& zpgrDRE!8FjU(z9HTv69JywY*#>9_<6YVM0Fp}+ZL_Y*l|)1e8}LWeYJdI-GTKFkea zh>wv6Cu(PstdzDrPpPXZ__g;LMu}QB5OVXva1FjK(-dA)$2XS0dx%#Yp&GwiljAxq z;Emd*Bw#rR9c~B;#29z4jT8PO0uYyog+z{m)Mg(N6*!-BRjPL`%)RRVhWD#Lgv`Gh zvHXVd{gxVRf5G!Ges)FtS+4XSBQ<^p9{zd6@~08-kJ^mCd%pfg8~it;+Eib>*!vrra?}q zSGMo@JLdPUoRDsplaKh+obsi1Jkw7`kGNlQH%>#6&cZT+sPFk%hoNGNwqM z8B-U~=d(2L=Ih4@uktdWx77KZ+yung<2qecp5qQ6-SZL7w+@YfBq;nv>Y0>PjsyTCxYkR#sbC0;x4-1MJNiqsD70 zpk`aUq~6@~y=;3DGJwC$w7Zw5%4%d6jhMTb0(&_OYk|r022fR6T5*#!4i3nd**V%L zq;p8vCdb%QlOQ@|HL%cHwH+J9GL%!KlN27MKi!qe1DXFid}=8s#;)6l!p zTm=Zaic9(n)rZhos(uDB&&-!k(=x7B%em*Etwi8LoQ_uK8h>>`C8Bu+Qjih#B++_;1z@#CGie;!E;CDHIjB_>C8;oA z_k7-^rBVVP(cTS18W)8OtA?`F4ITdP1)u$lZ+3X{9#v9u=H-~k&D7%x>3nrHf_)8P-0Nc=JF#^mB zURn7P9`~FY*p!Cd(LXEc+Mv!(rN{y~&@X6EsJc{_;Fr%vT)x zMt_5mp=)9H0Q}B++5?)-hYEo5D>el8c%f}YpgK!c?#rXC2s{nK+d2k#$EGEJDO&RL zZDuY|Y3^YeA^ee>m`Ple<5pG_QRj#CC@i214Is||d>}DdEQ7G_4NtGOPu!~`dDh!) z`5~@PXtvE3(FOxLX&(aH^|{T*iJ2_zcZk>er!yDbC8wV}Kb>s+Em*(_Gi0L=qD-d87TN~RxMy0VO@z%C_SA4%f*W$ExhJRQ$w z8z-)1=A_SYl|lK}XE$;c4@vkNnc!R2S-v53w}qoY0WyZUd3bP`vGS>* zfDFq#7m#Rbsi%Iedu^`k=+{Ho)d0$v?SGQc-$O1?ECMUEi!N9NcE5B240CWgM3$!n zaOSJ!yqI7IR$vHr2tke{aC4{PGMoy;QI$>sAYk{$zXz(%F4CV;&7$bRRbFbWlm#!9 zNCPCj=Kgk8$`gOSrX#zOLs~`Xv~a*wQLH)TsJ+wbOW{aZO+bk%2_&oJS4KJKqJH9R z3s8bk<3o2BhkiM4WddcLsVwbV2+FwGf-smQ1sJlO;eSoZ$j%hi2Bovn5?~;VVVP+- zo6+Xjjm9cxI&7@?b;LuCmo<|17j7ny&(RguDcb40EF|a9@{G$6bG9r%Op06eJ4EU$ zq==S^y7IbQ`j_R*t3;SAgfun++3BMFo10l!j>XPwwV!@$TxOmXHYDPu)%@RR}vm2Nl&tukK&w>uT>@yI#X1NBswJ)Eg(h*riWiY z=Q%9(`AAejgTed=cHS3TycV(fjtK{y_T(?ucgo#4a?Zab#jd6?o?i2+tB^-3*7TP!w+##9{K=bmz z-gyNvgpP1jPtfAd3!?lB(70~PFGLT-w65XZ-lfTwwf;7dP$^j)E+YVw*weeS9Y@)` zQp;t+XsOH`6@WbjK;Br8$9)Ia9^8$b(WGHNY$YY4#R52*p?p>;xNs_ChRIhX0jAdL z(3;(U|K?t`sj#KGFhQX_*=Iv*l!TRvNs~L^t>7eq7fcsA)Ln^a5>F1E zzdCN8cr~L7TwpPm&4I`)5%4;dN%Tx$L2#1Q@q)cn^e&Tmrl|1rh+8@Bo1kXC<(`m#ksA~5EX z%g^|5*B^o6v}((`coe^MOGxD^*J5ii81%ir@Tl8Uj@r+l9`2)?O3xgmM;~0ixVEI& zU0mC4g2fQ zo7ZGCP)|0ul!_Ht?y^z84U!+$aTckwHie~0ga{;dlaEKD>aPqQt;rq2mldKXt>L&} zh~buxO&;BbTir==zX z$g{U%{ZfM)-LK3UGn(BH-j1~k;>+ko7AJ1=9G>DW=7|E=y+>BiXZ6zSidM7A);8;2 z&*jKl6AsUDkRt{pmz!qx>w@Ndd;6#6n0g)Bl?~iHdmC3)y&w! zH06W2g;c3ZGcD>sq!Y^7dNF(TOsY|aqVQVsTgrkYcc=N|uXS8T;5B{*es)*`@P0I- zy(lMfx2=?{YB{rU@^wkktNl)o0sMQZ!@W4z1f$qI=;hjL2iIWSOwu>H zTAIP>z?%%PxFQry-s-h2uv&-{NG6U!bXb;^5_td&Hsd+Mj~0hGiS(8!3cQosfnFnW z7-LxtX-#f{j;2~V$H3#7cW${Y_Zf6McP|$u=kxYPPWC7wEb3aRZ#3c)e`sea9+pYT z6IzuN@;sr)*0~GQ>gqlH7icyLs3=jvs zwanrTMXY)SdRg#V!=HI&RT$$^2}5K!f*T#4X+mYGy+s*FCD7nhWaN=o$59=Z$LVtd zNsa;Gp`{& zxN$O~shjwDV5N0-wU}ft<@z>YST=?fv?vXzJg&0Wu6>{;=x|zWWS{Amtx}d~6^v-H zw73ORizhTd6pId`cEHic?ml~4OAj@(*p=YZL0mZ_J%a1|CLC81o6SFZ#hGJk+=GXHL}eEF+@n- zY7`v)imz|5zJ*yR-MlJ{8%sOE9f3RdQ5Nb($1FCsNyR^l+vYFCMR&hR4lR0#a-2Fu z@_C~;$)+ryx$)AZ z*!oJ3^}~zJ=xK%cQ)r1*N?-4#>A(Z=8s1k7Axpq&!+#f9%Ezih$;p!8#+GUi1(6l* z5yqCBZgUSXkob&@papzltEA7VUdJB+ugWgEVh0r-#jIvroG_4)|Q_AG63YjZDm zRyZ|%A(58;Vl{vG+$lbwnmnpq3cTs-V2cE$c#JDJ5O5c+lxR3CVB`?CnxIY4(YkKv zR#;{uRx8Af%C#*^#1WmBzZPz?`RvKhLUIx`PC0E6a*USl2|6|=bg-O-X;SyR!gmJW zdmU>E`YtpYPO8s!xkk>V$i+7Rj4P!YFEb%+p%Xct;;C3Vp_EqOPWFP98Q*y2-x5LC zCU)*d--U&VfIAjqONowU3sHb~DgxK_wqvqpeZ|vQbv4WTAP9am*~Ety+tpTle*@o_ z9BA~f-mbr2HNOWJ%xr(zkud!Ou=bxaxcL1l{il#0Bhx=NJ%1Toe5T<3J#UD*#ius} z?Tx2vJ6DGTkPvP&4r*5riJ1Qjf4p^j8~HI|47Gbu1uiZ(X?!-X7wz3;$Tg9f4+}1E zs9TAob}U!$!AyIHF5eY$^G9!TA4gX+jwMVpz9NuHew{*dr)y(#vwMk;ovJ0S=4WIr z*bZA%4}?C{K$>EYp3465?z(|`#luzY2Yb7Qig;b8FTlG+sXIkJxi5V$?i*ORw^qBV z=4(WT3w3MZ%Z4CE?6A|vjkd0YyB?%2;&iIQX#1gGam z4xMbH^pCk}dZiz`U}wxMN+dC4!WwD$e)+9dXIg54Ezj#rBp7{A4}J2fhqAvePxQt= z$w7%RmSxu)`%6Umg)Ui>EJSncX3H12;@GrIdIt(f6JS`w&&Gs~3pT z#q5jQW|rf8W9pO+C8|F1Mmft zLpIkv*l9yaHzuUAC%$#5nmm}$-Eh6@ttpKFU>6mzipJ{=7H6jN99SNUL~|n5ArWT7 z&92ybDVY8$Pwy?c?I#UKP~Y@Gpbe_GmXIfMRygPo_xTXc3mmDWk5^sJanU%mWz){< zy8oP&LIjR(j4VPBr*S#`DIDUym&F1sh{YqE+O;5{+S@t>R2Z|~_*I%QQ48UE`B*!! zxA}QYERtrov>Ix2OM-0L$pT@NiR=y&u@t-YZ4OI~hwRRpot2o`lAuKu*Ik;RmHd;D z><&s(#>Ow0Y?kPK4S`4pX;a?w15jq(YHu|2D;`-kp5a{bs2@|@vLdb-d|#5%tI<(K zxkd+F_U)QhA#({Mju|LAa;eYL!OBhG-3l5==}K;>K;CVD8p)%n-=+IuY?IK6DcO zawpS=<$Cw}l#cEsRxfl`W!(R$`w)UiEhN!7i+xjj&?FiG{{vYcCB2y#+U1_;G(@}n zfdkw*UDzQ6ClGye7&MrKC!v$HQQRO4a$-Vw?dO17YysYqUhV5AhKbxI*L)_YpNbdz z(^r;oiigO@zJ^~NhNPgWnYOxbAbl@~EtzB|Klqd_m$~5GJycsU$P$M#ixaM9>c;?@ zinQ=U93i7p&YqImgdhiz^qmPCV*BX&S~`nh#CGUw1I2mF7Z~HMk?Y#jd7E*vs z#HaIzMpKE+C1plQb7SocfHLkKu~>Mm)t7vZ`KPG8LXrGQf*Oy*b=tpB`WmK5JzOcRsA4xk5}0lV3Ko(Gvzo(Fw6lsxVk;D^c2p9uSd z3}u&80tfgCXFA~7WZqL^uA(j_^@|-ZW9A*u%l%W9Y#e#yQyTWSoyIr*qi-4!OF#rF zWk-lcG0b}&hLJw8=RFE*=!CV*aqYVPTb{=V_vkDc2 z6CCt2X4$is;rAn$64HV{LAy7-jd)9}^RmI&G;-T!p-*&Si3EVm6d+)oUC$35h({0M zix(SRUVtiSiIM=1H{aG6zI3&F`X+l^gWzU9U4imcYkEb0oS!X1Aoyt_4H4jQ^dxc+ zwy0ape2up{zwmz%i&q#Y5DrLb3n5}g0?*%TJ@YDOa}|p6>5be(If_D*#pNPaTBju} zsemDkS65tkD&(HmRd9?JHm)ZiF+NA(?LCMLT_=lzSOi?5zzQ+Y&U~IoF_3@yQY;#Rxl!Y1XcEgJxhp^UD+Mw3@4TPW*l|yI; zKJf(QxohMmcp6Vsh(K*x3^s1p%7~6Vxw~V`0O3l5^J&5|NL|=KiYn&3K6)i|U9e&w z5t1m9-8g#2ZTTiG&sm=R$NBm2PgpxwkjBZ#dutPbRW~MZP_Ck#uTD^?o3ii&RWl{= z`#i`Q`}DuwzNde&f9sACd-m2}it~TsdAXAr{lZK>W$dPG?EBGc~C%#h7z7&@D89H~w z&WtchYgk0P@g=GWU~^cKpi1GIm+?uleY=6#Q@M@E^;$zpBH3xA{n2BYw3J^|SfNH<+iK>}xVW zl^7X(!+QO>qdeJiBfQ+8U~CK;q`0Y@8t3_K*8?!WIDk`4k#id-=Gis&763T-fy}xN zJiJK?(e zb?!)p)ReO>UVW-4u0~b51L&>vv;hH@r_#9a($~U-lkdguZ7-n)b{_ZS-6L#Gx3o^P zcV`Sz0>VsgveNX5ZY3JE>PbRP=6R{@gmL6jV`b^X5^(~Hsk?U)F8P!r*DHCe`$n7+ z`cE*1O5!yL>otzoVsc`$2wX<`UWHc7x*z8=zS|LDC_s85hHMO&!Dq z#LhU?3;P=cv^PHrnIx(m(XTLc#OqZ{ynN%e^rdZ685}BICs!DIK_XS-;!bdq;7V_^ ziR}q2S6eQx)fZ^eSuN(9pdK(JZ3xfDL0{S@(>T{NHeJG3y-c~aPc+>?kWz`1s@nD# zkGE}Zj`_W8=_4CpAJ(qF*qn)=)iRRytM5rCH2kRfs)m-IKo7% z*tp+O5P#VSy)IR1^~=-LUj8_i=hHSuImiP|fF1tqM3=(bdhW}_Y3-wI$$UY$i5y=Y zIT|5MVcG}h{Y1}vseEgau*^6TXBwrR5;Hy0*GMZ24{XKoCwPw{pvVfabP^f|4rFk+ z7&>%>#vQq4#$)#~-C|5i9o@dF2e_kmbHJ$Cm|BG1aB=Bv;zB=uNx?5VZmvD1*BEJUkx$ zB17`d8Fh+;w*!hxQf)u90WAvZCyM-|gCV-cv-?E{dPGE=rHQZl$3OxJwj4v|t6;_l zrFfN-Qt5r#f#Bl#DQh4jKiB;c`>P~&3h>q3%txf7`D}3mB?7CM8O)dvyY^V;{Gjy& zn2ydZWqOgK>(wp_FPT3JA@Kv@h)Zk5O=+Sut<4tI7nt0Uh{MVTco~hy;l1x@#={%C z01FSTW6TDMw)7eBV-L0H?mNwR`Ki%8T@9Rz7hAFU#T$lI9wLDL?2A#LDS@z3?o!H;^TIPhu|GPw1NxostIxz^BXR9NE~HpUk&UhfX} z>+tw+^G)(K)RNiYL>aJ3Xw5B+{Q&&aoz2dLvk-}Hm^M_?iE$!HAS3a(iH$wRHzr9{ zJ4In-&5ySyYe#!S>;Z?;M6NBhC(W5rWDNVMCOpb}m`-J)QB+h=?5_lhGLvzll zyYTc(yMqVsXk*rbrKV6ZOOVop)6tvA1?J^or5PXYMgy@;vVvSpUYM5 zd&rgserq_!;6LvH58lnu@gEuOlUisBX05#whcdt@SUC(g)X;i{Slfn-t#w6%w0fj} z@C9zszK!%ETVM-FWYsW*n&%GeznR|f5ePQftI*ZeE*5Gs7AT#7XB_g1)(uaRbeu+r{Eq>T#U zP|FUxE|YBhd^vhP=-on=R<}-8?%3>_!OX(5zc}WdfUS_GrMf#YOcL+m^Rb|HR)>#< zmUu{6X=99UOOM42YNckxm%PmLmeG5q2r4Alh!PfsIca=%GvY2z)6aaKn`gh;^X``V zvzm+NtmyOISzSLD^09HyGzcnoa`{U}*OgQ^u7P8cY!ik#Q{c$qD2^c=+PT8Wa1 zM9d#Pn4KzV{L&S-ErZsTDSgC;Vaz1926J?`gv7bp5=KaeD#$yNLXC6TNlijAu}#5- z^~`=cgR?xNcZqBTxuK-$SEMV+XpK9c7#9(AMPubE(YQ;04`NBtlT!y$!)k28p`x(b z+-j(T(QDeDt~?80y8v$u-b!R2;W#cd0B1qdm+&BuBTO4Biz^Ur+@TMCp{5CA5|gc( z24e~4t|)r%jQ%R*flMz=-J?+5guxnZW0Pm~Cp}#?;WBLsd}QTo-|)h^-h`1;#HMpb zG<_2)eb(oGCz;dKg+nlwv#~MG@FIt67E&K3h~ZaaZFU3p;0=5cpQQT{^Id&-Py0nDl_G} zW$jmI_hW#<7`WSlo=*%Wy!7M!A)ZGk^WVhK&y{UJ~zdw4Q_bO zrU2<{l?kgk+{`7@CXZ~{E=dgMcC_D*`%ge8hR@@#)IT}enExg8kon&Y4Ju38%+Voq9;l2X z<_|t14$%(*3FFf!so0u&(5cy2#Ik9Tc@}qN+QqF;6v87QnWHwGEJk$MaAggh1ON`u zM)FEHke?WGN6~NjO~Eu1zp({|@7l(;bH;VEQ7LoIMlkgLSZI|6HO+OBq1eMjV@~gU z+JC*n!4518if2f!Y!5)`T%F1cm162f*R%Plcg6fvFBWBYvti)KeOg)Thhq1#1Kw@e z2p&GoPIEdroqsgbuy10dpwrOT8I7>bZLzGeZ(jX6(+EpNjoCKp1eShbd0FTf$@-&> zRZR3Q0dA|6#n#|L&(o@>rq>^@ITLcEdv&HUmJ52a`v)YL6!cdtzmkfJ>hzBjn7TWCgZ|+AFIsl}&4e+R&Z8Gq=+K z9tSIvpc?)qmLZ2}TQuo-Q>@ffc2){HEu&Ov2p)q~nqM?8tan*Pdi-F)2cLWn1$Q{5 z@Z0RRrv-)NSTa1jCeobZB&INOVkH5Yhc%HVs;No)<{gviWr*Q&e&w@ky%JqP4(ti& z1)WWZ3pZJRR)Gf@HY8%dP@#l(z-gdpWeoRNCXag5}+$w-u7=IM%dG=Aj?$4jmbmToS~ee*fXK~a`o{_;+u z%wFzYCqG!S(GiOK%u~~rs*Vr=&FjNBDO~QtR`6I$TNSMO!lBXta!@;zC0^T|z5lZ# zzEL4QZZkl^5`J=NJmtxKa8k-X zsb8>i4^KS&qQGiF^V=glaAA6Pw!LnCMI^Oh;aK{18XIDFTKHiHCKU#NCdxD@K`&tH zW1XTK9E^ZVL}`~x%%yNNO(8`Tp$$B^us;!}=V}(pb67adTF5sp$XR3T=jvx9Akyl^ z$C;sA!CowArqpObW9Himw7$x4W}l&SC%H(aJI)GI+S<4PyOP?v5a|03rZ|s@+Iota zXOVx>Ho2h!Tgu{{+Su!%I*pweVK>+3w|=TuAyrcrvoSv}s?i-m&Zzyp{SI4!tUusV zz^C2p1n!>v_~B@*E+`wHAuYah_wWGThNe4$h|0hgV;~q~lbQ3Zunb{|yG|Mk9`7u2 z0yo*CP>jK^)4L<-m-WvA!vifKY#)-X4vE^>Z?X}cfXIiMc$NS`oR(*xUD;dc^gj6h z8rbc>K-I6&6$%J%u~}MJSUC<)!m2YWTedl|oQ(^ot%@98#7$;nvr|^3HI&?@RFwJa z=I=xf*x@)f_mELqSxQ=%6lTv#TRR>lD$a_+DJ^GHx3}FJmAKu0Ri<$=`~YGUCqRMy zRdjrI&QhPWyo7Wgx8OVje>&XyZOc;6#lXDlZbwGfOer<9m=v9jj!O{;a~Pzbv|LRA7cfU^xBh3&S?Ss>q&+OS+GqVo6X$pb z_8FHOlfn}Yr3%497sgNBZlr*9(K zo>h)jXxb|Dk*^$TelTkTb0sbSb)gd?o__oo(=1E`=8ieg@TQT|h5yfhun1q~bdS)O zu)KGlFey3RctU`hqK$Iy#58$3CbnEca1E043mCkNgiHBvKG6zHMUTTzUczwL^-ELF z*p@^_@care8;1|uX48xy&Z(In9TStaKOip$*n$oTf`PIhp_2m>A0TRtGAFLF`wfbp z_`i2)#g@0moCJm0u{-IH2a=ItmALQslOOw>LVtF>C zqN1h1Tkc;c4syxi{@mr>$kW@)iZeHQ@`bDcf|&xjJ#n?vOo#jB{Ot~}tV$W4z!yY{ zUlhBJ4_xsD)BM5+5^=9*UWkFIR7G!8ThIae7lntIaC$n^G49~zIe?{>|sWVSIrCDl@`?Z&2 zGgr2uvqyIfg6(L|q{$v#Prsr`A1|^PIh%#N%1Ftt{Vi#ox)#F8+zvyA9|8WT2YrD9 znxNRLqRJ_ot^j2P=#}dGGc=2e!&=1HKa)M*r;pf~Am7_VvbvJNzRvYp+h@nZS}MyFNK zIJ#*t9~`V7X>Kk8Dw7`q0|H}NT59m4ckjIan7o)MvisJ;n}oM$^$z2hMCx?azbOh5 zkAf`VYete`Ibmxu)5eKDu69HM)b|WMq<63A5($=>@WR=5B~6f2trkI-dD-#NDlw34 z-aL}7NGUIrEH8}D0Xi^R%v-FomX|N9qo9*DzGBc~Ho}1U>SE#viKy!4OD0<@HO;lJ zw#kiT^H8Le7toFSQ4VjyF9k~ctv4vFbILmfS`+~CDh`k$&-3}xW$*waq1y}?4VwfR z4Ce(Hi~`>iL|drYWV{|{cmmxK`!xwh0wk)VTS0dUWWs# z8Q32k`FI%r_I~~D_>7hJE|9L4Tl5;bUOqjj<-7tgRAcy@gPA#j2_s*x?qdz?C(rVp z(lKuYUz7_;FHbL7C zTpG`2E|^FbWEt%c17_50`o5Ug;MkiiU4u|90x?x$6CK?=ghOrSXb{pXJNbtfaP_?E z>3^x${=B->Xv_TPUGTSH``cadFAc4~<;ve2tpBT>LjMqKf4ddp+?@{M3%o^SN|?&SpK*Tdv7m1@~(_O!! z2ZoaE@o;Fhdo(}(;^F5H!Hp_2KLyuLMiq`VVW(`*74zJLhrXT4?%MdCfA;8i&TcVv z5Vw=_8df=t7w`}*hfR+HqHX)c>i)R5-PbojrmCrqQaFFCmhRD_`W_ET70Rrd0y)-H zty`JMQ5Q`3pr3pME^b(|ZWmT1+ehi1Pa*;mo8)T{Mt4kyM=pxWpUfM1i@}r!uzO) z`VdJgSZ-JN629X|%t|cNOe3n{Hj78$ls{fE-$u+~Ybkjd`Wq{_avxlSZ(Ea%6W}zS zchAoy_MSn$v?#?n0Q^ZUWb7fdN~L@B0?3r@h%Hdm9Q`aV^ z4+x)-yHMOSg!Sqdk;eNoy6sf2p^zLTybxRJ$}Wc6UppOW8<(d7sLu#l)j!G8Slo}< zIM4eGkGx!S!2KvgR&n`bTmt&I5lv+@A7RlYI4WPmu-L@Elowwj)vQA_E2dVKc_vc{ zZxKTDkze^SO^l~CgcO--WlAn!n}#zl7i;*LPWA@b7K(pek0MOcjz3~d^tV@CMryV$ zwIfKE(qX5;dOfzAgsfBx)nMz)jCgZQ29fqcwwH+lnPh}qjq7y+DaWd{!!bw0px0E{ z2tDIglYEi%pT3DJXD=DNP~1ywjWa94;~W&;J`#iG!{A`p*wT~y*v{i10$H2}?Sw#$ zE%K`I;l*~*Z%Xj)Z5Lp+`cN`Enh*3Je_&`f^@vCv;{cRajHbj#MtySIsdYoyavet&E<_ML$1vdjZyA)!eB-<}}CD2TRza`bY%Gx?N#o=$k zxKfP^wKF>9+YKirjwVpJ7$`YWC&9*P7dwbf*1^N1!t?dniwziJ3LD?xTjd5!{gM)H zpc>q-EEIOS9DCeq`lJ^ASo(BF(UW=DNk3l3CA=nP?o+B~*mb;-T_WBr#@JW#=DZ41 zakPb7t)C^w8uxPpIIq8Nsi+}QHD`VWW=}O&`pD3`L9KCnrmRw%7>@8w zK+1{JmHF;K79p#g4nY7FXgl8PRo>~Ht^+wusgbn7eYhIJ5k@l9TH`BC|CF=Rm7ji& z8v9Z&LA{K2gs%W{&$p-BMnRCg)`eWnGZOH-)u?wU$d7p3R3-u87v4=GsFDPZuWM{9 z;;L&;o}iT#FWR~YZ}TkiRyy3O9ej3R^5&O}b9f%Bl#&l<5U;WdEHU!;zCZ*;!0|Tx zHe{?F8f+V&Us;DSbbs`9CKw#0Rx9dA^bdtO5^W028qutcP!^@{pA~z#OYbLz%-xsKB0@RgbbzAJRJcG)u8x(&l?p~*RW-{wQW5p9Jh>U_Ydkbfh*btFoA`Qiu>F^y{azcP@$$2 z0AwR^dt>nm3)Ze?@$0p(@{6pjV^bWqTCNmfTZ^&~*Hh3tZo79E*}AE&fjhx!`kvm% zLY+a5jW|a1yOT~zS2w(B!o_0$O5FT@Z~u0$u+#sg1Me>wkpI={kAL-_z)aq{gX}alDm&L1=&zLbN!w{CLmu5F~=;1v6joj z%g*^-0-0ub;7(hKUPgF7y)K0$io*ompf@%=?)ANIRllQytm?Rw7;oQcW71|g;&pX# zqCl~hFkRt&2XA*9&xDqC(krk>FnY;})xD6af$g;lyt`gPSG<>+S%hv7*^yBc5#C@1 zsj`F-^ZlSz(1gMzq224j%eWXlMoKEShqxp@d(>#5LFj9*hsy5hixu&(tVEDnEP~T)1;$_lt8HJ$y3>19dxL|2Y~wq zJx%#HxbZd;o43@%cV74*%o(7|N^{@3Dcpc(Csm%TH=1FpC)+aIJy?Lr8S=&%4p1mU zS*n}Z9(^MA%2a6*@;QK8fY}eDS3@_vCl^e55Q`1`=EkOdvYW7?FiNRf@k+Q`WVnpL zZoruZor+j!`+$AYuK2SEBuq;?Au-D?+g>h6`Shyk%L%J~dVK(+p#56T+WH>hw>Nt( zTT6(CguRmdNn*j=umXAA$l0O7DhxQZ4XU*9f@^JV1D}E{AU|0EnHtZ{80}2E>Lo1f zc9y&LNR}?1r2Iw8iqX)Vjm4kAbaSP$J+XDUoVKptUr4%b{PHy0N`nEL^Erc-|IWi3IGLPL`5F*@Z7S5?Nl*^NVY60OH%NDR!>}eytrb$dR zVu%pZKM}7gE8rNNihh{4-zWv* zFT!e&XE9Q2pB@T>bKm{?erRq6i4mY-qRCRgR%4!r9WVxawFWi3BQosOZVZfZ*_y1P zai|Bzzb--X@c&WwPC=HfTeoQ1w(UyWwkmDgwr$(Cot3t2XJw^rRQlvv`>wOsf9{I7 z`{6#E9r-Zlm@#6;H%5${?Q5;|-umw?j1b3bFspi)h5>z7I-M@>$CrWdB%phsW>k|f z;0utxcF7EPcje#CXSpN_v6}#i;?&ZbQ=PP|)nw4-(R3;4s{9U15_X(5|aPpq{9cIlI3&#jgZ8%*o5@s-_j7*%BoX7eUp4`LQ zY4Q4jTvp%@=WH!2Y{roE#BPsQ*c8M=caTEYWW;5e$ZiG~#nMb?e!fu;A>^{-e^ZC0 zM(vJTKwb~Zx!Q_Q$Z${rTuXI~KH>aT70>;viV=9d55~iBr)f%qERM-O`=dAZk446;d}D@fXu29JJAv92Lx`EWn-ni4cd zt^Xau?4(}z2m2gi!!X@1wZ)fG%7=vB1E!MD+hJN4vD+XI2}5vOc%`#E+_UI%)qDB^ z9feuB?-`>=gz1GT$4z*EpIC+I<46i{OoDc^NS8)+T;VjQU%hh(y{mzgyIiyND638p zzt60f>l=X!f^|w5GbEr9oONe&Y)8*)_}aACR-D>``4?I{hJ$Lcu1(K_%Za;~H@*pm z=;YZKAkpBa^vF0>`RIB=_-m7L4hpi1T1S+5Ju{Q~LwyTTD@Lb;jM|5URN5JXIcOpF z2ES0FyE(tt7Y5L`v~VpjDNnnkMH)<%OIvuoTX_D7F_mOGfb{goN)0ZJPA*7V${IuS z^ph@@cP$fo=o++I10d_nXFkrXT?QL5fQ za{r)~kITln@5RB6(V1JZI$U{P8lO3QdfHcmN6;d9tmEq><)MxsbDC>%*PJBx1mGLL zzMNV;!K-*KC>x-j&cqHwJR;!GP076PhGwU`KCKU?PB}%XIbg8WNM&8Uoz za#aK?`IL*|QZ+e;`_01lQb0=BqAkwIE{{m&_i;apNXcGGMmcfFbv}p^0+IiIlWK1yA>s^GpK_EL4ELsX4dO>O? zna8nj@4H(Y@*#eWhzHrVR|~xa(hh;~2n)ge20o*pdyhKiSr{SY@+$0oPlD2Ow9u;F zu>_p5bMTL`Agf=A?YUI3DVs&=gmFu9WKcS97DhQOI&0`EeB~}t znIOD9uc%(vFjP^3FIc5%@Iz`pR?`8uT|E#+)d{M%3hFkWKPp?T(bxpotsiukqb5>i zja?fG@s#rVDvsAcjFbu24nLh9+$3bpVWx;@A$QKW+e%K}J-1(Uq48ldYiBW`^*SCh ze%%Wm;1oN`<`8Mfx8etxvks6bu?m*2cKhGn!-Mls4Ot~>zd3b#{VU^FALZwxGFume25B;E8;@EF(nn5rx`> zQd{^ncJtl7&l2bALbwE;cW}t~g|K=H5ziL*+(+r{gHNp7diNjqqguoJiT}3Hpg%XD|Hq#6@8;yc<+DF^w*PPWY)b9yk9@+<%btMakYRymmV9!1`W0&yT9G&bnY!h5#Zy^yg^9F zXU)`b;t3?_^YJI`rCb#bou@9Wy)lRd6)Z$vEcTM8K~Wl$5Rud;eBWK7Ah*G(~2>RWR#`Asa;j3SYk;A0ghe5k%Zomv;!j{*&RbT9E>jSGtqYz z&1o-;5sfftT$b==WB;tkR%-&dD4nsH3S zQZ}#1gemx8v8^@ta=FovPZuU7>H;E5)qil z*y>4rW>S{2#DX^2PuEr_Ef+$rIh&*D^#fET^}jgPY@4Czp8kd{;Cttv?I~NvqPb08 zVeG0>`#}o_NJ>EV7N2Xo7So7)ZEx~>lJg}EPnPM`YALYzyL_9SDt3@RNm?e2u%`ha znLO7ClNDZYK7h*N$NLQ^kztSp6*tKRn+ZSAf$O5FK8|=7SV6t4QS}|^z|llm150(J z9cRvmD$RT^RrxzA(jh?1^8z>j2q+AIEt|b%NYa)7u^#f}vlt=>OybUQl#{;uVi9B( z9qauhCX2I;0tzIKBygl1*A+*5Bn1gDkY+n_Zhai-NdX3WZ0J7bo{{)B_5+8m zAVu3=>QmvC7G4 zQpwF~S64&z@?lG7a*2a%J_fR{bxeKAhO=(|y*?mhor%X9Bh3zO!9r~to3{%fdd2AG z=d#Pj=E*;d%f|@~n-%KqLA0au*o~3}wG(24Iu@})ii)e#MKPdMA032OO1_>l5hfx_ z1jc*?pzxuxB!x=(=5c;-=a*$#fk{gJ$$4`RA-3dk+z^M6+|na;4L=sqw?R}xZ%?U_ zA@K?!|1%|v{4K)P9FugNvPu1tYV2Vaw@sRJFL$tIR|bH=-46k!aG%NvC7H5V0ba&F z+!yV4^%EpnZiv9hFZk;=Y$=kf2O5B~)SBV4ou_vH5!2r@(5pG5V?t$STW=ND(g-fV ztbsaDjoxy6VeL{Rwb!mkRJ)OZug81cPqUS2KTsA~)Oa7lQUbY1c$pR5VeKw;Fs}^V z(+wv3ZOphDMcB05;k+R~yH1lk%31TF!>eoAUa_(``k?O((W1*tLHv6MCpt>Q=j^PW z3bD^%k7^%V zm5E?(Dt%{MYgUAUkYQ&qyWMck5gb>P(?o%YQDkQ$K%`1Su{RtCZJx@8L?PG<$&oLs zTXz|=K5O-2dlBqDIRUR7nB$W9c-$j+@iVUxF4|nV8t|)$?Es8t7iB_?i+bQ<-0>^G zeV|+g>#qq!3t^+7AF%Tk_VK2U&MU~i1YyX_T1T>+OSU5c85uTorYxNp`jmqovFhvsfXwNl z8hlhwz$r`fQ+Mdj7=Yr!O(FqKzh*5T+|KmkTK4l4}N$pd6muOpRA`cr}nV1l7N)P#9R) zSpNp9f0^oqE380T0om6Fo?iisQqsb)8Fd7tR~tvK-qbaJ1CtykxA!C5 zKw#d$W#hq~h{QMoLPnd9c%^Y9a_udhOe=2aR7dGc<3Smz4~Gdi#|izKa*!w@u>F2b z^z;03w6TJEbfZZ!<30pr|Ej8jt~i18Ysvxs&%~jt#?r_&OX*8yjirn8c*e!mldrKz z3l;!UNH%5|P{Y3gv=I~|LmA8=R+!;fa@uU>FsU#|>2!HKktxP0E%T+T;t??wahbk9 zes7SOZy3vBmza=oq-3ERwP@{IFOb4Kts3T17K|twgL1kh`;Oc&IodKl-?;$ zzu_$S`dm2h+?*euiErX?N7rDWnP8-u?CKs*Ep==?iA*me+}x)QVa&F-;E}m{BAI|{l)gfVcX@l}J#Vx%jq zsbx_Ehm9q+EX}|_DkOZ}0IVgI_*+~|~^Zl>@hJ&8=Ci(g0?PMg&m!FR(B|`bdN&72n9Zv{q z?e(#CvZBFw<&8X+w=RA{q58GHQ6a5lb-7=W{`cP+c4iH<&lKz2$EW#`wdBEs0K|5( z;U2eIrqXAGn#pHuJ2hkcICAZ>yx`Vm(P7H}O(`Lp(u{ z_EyQB0@{7a9Vk!YYqeidGg3~~-}??JxxistAT%|(>0dAbGEMSodrZYJ#m#tjV~C#Z z(kQ~|@!|u$qc@p{JoXhuf2CQ*t&f&ozJl|TR)gz#0!%*7{@{sgtaRNFGb9st=E<17 z`&KkGZo;{nri&S#cwWT2=afbtHEXN~h3v zAi6M_400A8J&bb9Ta7do>@9RVG#T}Q;IplE0Z3Ki{!;a&{Yo5*z;*v&WOGTbFkc(c zmWnFNssap9FY`vGq5xo%Q?Ae^qg8KAebSMOu37f!Ct^Iz{A(34x6$sd@3K9%cKH11 zM0ha+7ySA>xfq!ms7HPnJ^k+d`CbrK8LHj=WVq2=j0#G`E{=%q3>;l!^YG+!7BEOi zC}&_Wi%4OWzro$_ji9Vu zS;3eBmdr`^2n+5AJ?$%=l8lNpKJsk4D|!&HQ=C^BLcHZ0h-&l}Rc%rIMb%^+v_ zpu9taOy4KWeo1~dv2#2QH>hEJ;(h`6r`%d#XrtYh<3LZwvs za!XbBJkDaNtJ}@MT0_Az8+j-YmZKd>SbIq)a{_oRk~sA+@b&g(F!=di6+8^n1zFb1 zwGRJQ3u!}`1a<^y6C$Fs1)Jl820~}AzhqdPXGAx^juKqlbBnc?!I7`>{SCV5AS3vn zQ1wrU`IDZqu>Fmyvi-Y`{=ddP`B(YJ-$U5g{vCGnw?<&LKTMVX1Xcg{EZ!YMXeAgv z(uQ80jF#8lfa0=N9%gSjBT_^Q^>Px!=Vz`Yqs*jzjBm3`tZ`{cmj`XB+(!v-?K?rg zu-kmYQAxg`>xT0FKi0|0%;@{>l!N_^&X;v^d#P7}QA$+5oH2+XRUM6K*q>l5!Q1t_ zYt<@u^tGL8Y@|wd zN9|1r!p0g2V8F|Zq;_`0NDQ%)v97wwJj2V*4^VV)_QoU(!c9m=z>H6^nBZRE8E5*(530X)DC8&hI9 zB2mt|F2s-nL%%(vWt(WdDDwBi+)y9Gw2}0qWCC9;U9SI_0QOmkwDjgirzM^un~unB zLRAFWKy2x5w^}xa*Qtb^!-I(_@mBka22N@4K68s+ojxyJZ?Xtt)J?aJrN8o!>sx{f|qL_lKgrHjE>B_s6bYYeLmN((6xwu zU}V$7VfhdJjGPMS6D324y3Utfolci5I~I>g7QF=ltUAX7Fzk0doD>jJ zgq2aN>gai|4FwENA?Tlp{GO{{cbfAKjB7Z$F`9j*o)`-V2fJgDnt%X%Rod(Qbexwf zBn*eMD;4rbHh5OHAK8xr7-T@4_*TwUcqvUbZ@dcc?C0FZr6sCq)38Jgs_4E~3q80l zKd>#-C(WuMih$qSsNeattuixq937eB>1{w|V9cua35o_^g%MFmyR?rGDWVw}js)t0 z96|*wSkCgtRYbP*f0*I*oD?vVygRxmF$OIYk5MepEmTK`U5KM^TJGo5tjsVh zOID%7^^*;h?5rzav4(mrf^ZGJ>r}Z1TTA9xZ+H#LkMZ+WGuVyF*YfR@p+GS&ET`op zCbrnJ9hN=K?omvGoI>zq`=7#2`{fuiJKpc3^|5P(onoV_UG1Wv?Qh+?^U?8!^d3I{ z#!YZa@=G9Jbqn;Xe}oWk2<3jg-Bd?Xm~7%IU-#E|=jAF3X$-bYt|ccK2=SyaA{>Kz zCmfUZB8YFq|GH|(F*x{7p|8vR_00GZn9eHbC>kuci{gRc??|KraDEPzFAT*&mBr9s zYbP>N@lZq{892wUNt9WNVoWZjh}lVp2NUCu$>dVO=NrE0kJFuel+6iU4& z55j`IuZLq3_@Q@R`Q?qKcX6cs$Ix~b>yjh!UL0{-lgdQjskQvkMRb(0w$f|;_f3B3 zt}ISsf<`}V{O?vk8=YgP1uOk(N3d<1%hv1XIP2-F)M=<4G__xfXG}=I zyOOJcp#-;~S6feS$A%3zj`8{->H5}zrcg*n6K=yz7a3Yk|vV)oroa5PVi@cMO5lP-b|5_6hA13Pd7F!ZvsZ z-PNkiJh7`)wuzlTz4I5$t)l(A#@s}0XR+-AbxGbK zcco!ABMBcScYDg@NrnIo;Tu@kC4>0JyA z#Q^~mMO!crT9t2UzL|l~<^nAOK3Mv(k6`TtOFUtQKf1f57R`|b7Km>0I7zgjB1y6c zu7c~S_+71#-|v=5unUt}mY9HFwcVjIN!ePY^?a^`hoLPVhqtvQPgn z3jYx77Moi_HamaOD*F(2si*M5dl7tq)<{xj3t6G+0lD}jGkDqwM2&gepY3}AQs>hH z1VP~0{)1PMTLA*1FJWoFiXPQVC-<%$u*X5-YQf}NgAgq#m&Aw6c>tq$uLjeDLuxEK z;#QY^GnZu|1*Is*;3H>r3F^v^K7`KVY5Yc_Nu|j{`N}IY|>mp;8@1T`SU%xN;Y4v#x)X%43w2grr8p`g_~f zPxmR(AFS&WW`m@H5>zZ)gbkm_MG1iQ?r?7LF-|DVA*#g?b47Kh${}v^ z*G1#t+PP~8W+10^5>1O`M&PvRWnqTJU;X>{y*D<~e^3!;wmmF3gRMMJiPcQ)w|^X7 zE2pkK0JFND9#nXzq)v}`Z?6^}-;Fd5&=%}p113aQUHwqQ79UFL5)7x`(ZlFriA(e) z!v8ju{{BruW$iN}0iLzIzQi(NV-sbmg*EDZ7R!86GT~$mW&{(zE&&Bc*68u1 zcYyUi<7s5>3>OmY;Bov`)ZYmMA1r|mt~OAABsnc;R{z$Yu!!^l%fA#skeE3ZOVG`Z zuglaw@DvgRzG^7mAKV`zYe(W#Zk6}9Je^P{Xm6%}icP(koI}oqq$A|hPwDMDCS|B# z8p|4tyXK$A?#(~R81N7td9CEuCN7=A4Jw8XUrqPdlT>9U;tH&Dfrvq6ku84QVzJaF zKCl8Z4a&!owu6rgkFct5IGe|3YiK+xIfM^Nv>4bXY$m17Cpu@J^`)d8m*WeL(Qd0? zEAj>EMS9|kvHMyLaCy9qk0kpQ(WB^`iP%ab9!V%V-!RX2-ciwYfSCDA5biEF(gBge zg}OMo>a6m*Ci4-$v`jBXDZX;4Tz}h)_*ou+Pt-erm1nY6WzTb)mxxfhd$nQ>d8Zcc za2LBHnFX@!=#=JI>Nj(qpX+MeJA{W^rn&Hii+dJ`U8{+7Oucd>N82KBQMOHZuTh`A^6M)bb8PzfKO*8^)*1r~{ohiV*#1&J|BDdu&tAv>QFhPv zZ=v?@i1;UK`%e&2%65|#q5GQ9FYjppf$WbTtiCBl6Ylvlg0bp zt2~`z0Q!JVDxDJ(&jFnJbH2^h?jZfvRhgn1} zm>bQ2tn^O9&Wcov=-@bUh32Hoy7Z4-;ZMi(?n8vFRz_8wxNR?H4xW7r|E2+~Z@*cmefx~-~pomP&P6HjwUAm8sK{%E;2SuL^A4E*p+gu>%IC^UM zDs-?jo>F~hu7Q?G9rtVibFndmgcO~x0GvqzItSKw96T166YA7Q%4*6Fa%aT&>$hXQ z4*m5gM4MiF88It_A|k5w+b%&ur39~ff5^`KqKlUK9PO8M3hr{4uV3*($$tB2%hrA( zZ$?S_?0)kMjiGX}&L=Jp{<_lh6aU@WH=9>#QOR$Sj9xDyb2N+r!B0@N?Oa<}J^ZQMV>9YPzzHwW4pcbrhQ)ZjC|C zX>4%l{+07oO_Tyb90P;;0Jh!o7&e?;J+8;u5}|Q58>zSaI5)7**fGhp-|i%6?TWbN z84kAa-R4&R;v;}d76_|-uR$YJm$VN93^H~2b@T^bjHYd9QlNEJ!nOhwB>AD|ZKI?wb8j+}UsLt`QSq<3@?IAfUJR0cO+)|7DJd2bCA75$OYdvdAx(D;Vglu!! zsC3y8--3`Rlz}os@*I&DZo!%*KpQ{5s_Tf-|=}lhBySy@C@+iAf^) zW~&`3yW#AFgA>Ym`u(H9S9-ETtS`{avuq>}@;6|A8*2lyjxTf*=99W_yi7N$W+yl{ zRba3aqB>?s-(KES+RQMUT5r3>a-TeK)~jf>XD3yHbBptHrG6@7WH7rJj55z8kGik#D4lz?1oyBY!;W-;32jj-(;_7y8#3Nqs%2O-POmtRM zTZOx2HV!w2%2b{8XWUL9%~ajor4?JUxD62u0A9LHvY*m+UT-%Gp}I(rpic%FF`f3^ z<&~DS2k2*BPUoZ92|`66wp6%V<`a2vIwg|E$LH`HDlTWp>iE*^h}s^xrF1fK_ylUZc)|PyTEtioS0Yb;wn#|kF&Z!V&HR-*y zr>9T2JK1e&=94Vf^Vj}S^s+$x#A-!w1=Wwg5uVq$Z=FMo>k5B_xzt##EmGL7dt8m< zaM#y2_EDZgk(n85h|u(&bg%{)F4GNlBpMY8PJ#!s0QSOjMUHAl@cMSD@k^IyNWb5T zquG&7w)=&4bvS1B_%pN)Zkrs3K7o_sv7%D0o$!cJNJo*87#8w`8r%bR#@pT%a`lD} z$TrnM0&3PJEMlJf>tU7DQfK~wp`FT46bAWY2ybZocKTce9@?tg6A&v>g< z>to2+k&#xRQpGFPN%ccy#2#!2+YmgGNXz?kAAjF4?8;SLitr?qJ6l8c0+P#*YBiG_tu_7-zo=066aMgQ%thcJTd0}lGPwn)#w>Y0329J-^jRs+Z? zL+NKv_98k^60ZREfL%$xD5BR+bSrj~%W>tMI26PNlJEP;>BilZs@X>4^;_s0yysbq zi+>D^3ph>wA%#zsfS_?Dm`^nqy1DVao;ewrassZq)prU4clBeR?`Y`9y1 zk*F;h0yzL&5(STuZ5i9E0jxOGB?Kw4o?h|Ax(7*!!qM{9g@HTI=`!K7%y#6?pCEFyoYzT!~cS#L&HbIsW|$+{3z zQu-qcphH8oZn%oZP7%4umgTD!T;V2P=%q3mm&T~RUvHLW%o-(_h9ut^!Bpc2%YfGJ zAr01XEM@M7%I@5si73L#uAy#+P^P2~BX?Z3I^La&BSBUsOrdKCCP9>pU*z~6)`+eR zPw>E49r93cMhD|?b|p@YmWK4{iky7fF~^YM!tDy6Z~a*oz6#k5=M0aS)QwP7?whl0 zO3ZW;M1UeJk={Sr&60pT-SHrSMr`x*wG15EPO)kLT4uVt5CRO~)?$skyuAD9+si7a zb?&09bAGhB?MjMLsHI0?8;ex# zYj%mhj9wl2P?NA+7^%H+;G=Jl(1$k`AW{=t@v$FU#QN1G;y+JArR2Vf%k^@(?OG?ES^H%!V zAvd*VeC{_RM&AC#0Nk!MWazG%-&YvZlXqyC2VO$@%fa?mZ!fR^?iuzd*uz75j}I_+ zHT2p0EL3YzJ;nKklpM=IghV1`Ib15%jO&{8^RAnTy32Z15IF>QEDOd0=fp6K8(Kn} z!>UFJiMLgQ33DAc&7ubuu105SGZ-!6_V5}X11^=$@yL0OcH+nKpW8G z-G`JoXR!RpFJ@OWvH4!bYI`Ef!x zXg1|EPA)YwZF4>z$(!N0_WMVA3|A;v2Jj--RTM#?;_=`d z>W}VCrQK+CO~;=I{O3l4o%L@``Rsp* z;{QEd|IZ!9|FP-#w}wwZr>r1BKw;+OWar39N9XG5N^50qcKLa%vLzakw(JO*)_mbIJ~MHK z?t97%iGG%r4!)XqtUR8uJPH_LxETuN%$=Jst>f+19^Jyl2duja8b_O2s(n{CDfI1C zQI$$RI;ehBLu@yB>L)u#5BD=zAREtV&D60!{=6Lg=ae}836}w6zhDK*6ZfHbYgk#z z$eplwT2Xw0o5{R5x`K49*5+{LuFbE7z(3}rg+Y`h!Q2^j>wjjP?>ftqTf-Y^Tb(7x zQIp@$O0C#uchgdNDGrmwww~DJ4w058Tv%(x%LqQYFXR-t>5{U&GL~!|_qjQpEciVm z@X`nBl0Db-@*CffO)+qLFmIy8M$nT3hI^Z&5$G$YdQ$M2!Pv2KX&=585_T!demvZc zArcA+6ywoHXrN}RcBsXw#F3C^HfikrlJQ8ixy1BXjK_~h&vm61%v6x%wKcaMmz&9A zm{^QTpv&`PkMx8!6T-NAIJ;gN6Py^Ne4=-kbs$1jiD~Jq+h8i?fhv<@i~wq~{2;Wx zdp|ProTqlg@~5>010L@^YlkIh(pd~h`l7j;dVr{Yk#oIv)pv)WMX+ikm*#{5FEo%b zRnIHjTdWCgC^=_|J-J>_JQ%D~9b9fH;K{J<3pAK*cKdOX&hPNW`XECQk)gJ1t9EG`lyrH01lX%)hjEvjuEPd>$i*CFIzrp9U zpfF$_-dmb=R(BvHbKO$oy0qrt?&>PWl#NjvkNzzY&0Kz)y0+oWf+K8KLm99jzh6+n zXJg@vxlQvFqxEatUIuhmmGAicHxJFDH7~Ph?p4$=tSuR*O7gI07R(9m5;Cn6nrGqI zTVs!I3v zo!3`s(zVgL^|Q`8bk`1=^b?#WAMBuve6Qgw056gUbPVeCG_(-|at&D8{_Xy=ZeVg% zrX82rR*MzG1>dw(HWSQ(^_}y1C|~zti#G?wxS@7o5*MP+B(o~f)59kIX0?txuN#hr z(PB<5$Ea1L{2fY9ocTP}-e(D5R^F!SYHbqpW-jpr;tw}MgHXm%d*KZ)vY%qoAp0itX~9IO zmc;8Y5&MFDBG@%Q{ez2^ckum)Lg%IP#jOFEh-q*rYX5qE7uxz(cVmU)d!!tP17h?R zC~jv~)PdpU?W0cxFNL^k1jsG3izHc%;uFM{=8gP%YVdM>J$*hd4o-<1w0Mb>+jP3a zd?jlZsPj);aNwOo4&BDyVXK1=|NKj38TYP`fRsLAnE4g49`4 z@3z0WtIhy#(1X;0Is%x{oA5dx#&r&$+_G0wH>{PqSDrw`Xz)|ILBx`gw7Y$*2{Q6> z5$4~=fEEy_DxN!nNw%CZZY|L!WWLl<2FaSD+>GyE#Z+;rF=(`j|44c!M48#3Y1URa zq*+GM0UvrPsI(2x08H3yK@)v&ieC<1sPi}vhJbfjz$zYZmz_m*=0lC*fPKfwQh^<% zivFRN-fnpCD$}vZgU#@yq*Ap<{cfChtaD#kF`BS$d}4(gUGYn6w!@ zb*YA;LEjnz_;*>*b@P#{XU6Qg*ZYW2g{ws&gz`rk>imm9Xo?K%>VoAWb~Nm3iU|kq zcAts0wI2ta#&Y)8 z2s)#3W-+MCYKLY0-XsWgFopEHinuUjZT7-3mOu1!@`mwN+yx6rgoVQdYcEba?M={F z@iL2RCyexgv^SdS!`C3cC28ht6QNrfL>(xnhL?_;h@_jK3d+=J1ok8oOa@{BEh|MM z2Pln@=+EA9*Rpt6@fh~4n9S^EqkviQiv*d!a;IUOADE`j9CaaHjxyU4lz=qDuA@cJ zESVgqSnQdUZcPR)rBuD_EVAU`IPs0mUwlt~1r;ntqPUA3Uy7p!b=D4!;I~~VSkK!oTObd?#PJ3k@F1xe25TN_YZ3YLrI&V^8!OGR@?=-~_#JuR0ifmg*S{5-X;r4Yq8a@T zflybhm5S+8Sjk0x6c64qTF;9&?cJjhAu6E!5#ZnS!v>#diTFKZOmkCzZpuE3;Fs z+$51KF&qwDulNl;`)?+XIV+T4BZsvihq_~j;D*QmWgU9i^kipe^(G+BubA>$33eBn zOAF%}BTWD|zt@*zt}Y|lyDS_s3#H!B$&_$5gS5s%Ni(Qe&7Yw>+u+sdFF^_f_HJ9U zQ}F=VuV!HpU&N@7)pMf~x*T&C?+6*Hc%Z7b9=t$E>N6`{oV*Q=-pG>witu_q2RiVP zcxm*cWE&z#e&$`Im1BlrOIE*-rCKPZjOQ1?%vfY8!tMTrSNL#?`-tJ~ojhR2Wg^K^{w^Y!*N6#Xc5rpHGz zCr396HiI_D7i_pu%%~ZwPn9oDybOWlcKwV5gs;T1l5-__M_m^==cJ4M$+W@}mpi^b z?YO~WzTram7wg3*;g$Kj@ApXPNLiodNRP!I-tQ)iiN$=|eG<#0GqrArh`Gaz!40vdgP3I2XJ?eEF)cY%F~U z!Fti{8<1eq(DV4syB7A_YT_25hOem0<9#G~Dre?=&qHjba@XX1<;V7-gX_~5{;!O# zE1uZj;>ftGQ4sQXoW>aIq(D|QehAtrmiIZkmOHl@*zxe^!`V)|fI+TUxFXd6p$WKG zKCxzka1~g06FRl(bOSrBXl>f@037os9RdotT1U=)JskqBs&(MtTd3gOa1Xk$O&C9D zAI~%kTs>HJtY?0VtZaBkXFr&ySg>IqH}q(Tp+%k^NhW4Cy%|B4=Jbz3t*QNN1O|zP z!)SX|r)D)r)ioX~sMzDw{@!m@jIfpA?a7yRTF{oZy2)+^cZcr&W)e@jk@@n7+*kVf zTfneT9QXAs^ds5$IE*U5kJ(61eCy@MOlSHh7o6AdJs}DF{_zZZ8U(Jys}cghWKgL5 z!__Ciqal3hKT`I;d;%s0_P_ZA9Dn%)f8^->Nk$d^c=N9&pRYH6cE&>eEm@D_-;(_Q z)yBgAPS*SL3jfb28$efqfjl8GT7Vsm9W7bZ7}L}{E+ByKDD- zAa*aap>#}UshrD`hx<})*1?5$1NP-MMC#66_|oZY>3G3sV@GQ=U+{!0WSw62=whOY z`Kv<~fbc%R66?Y0!%#~FH6OyBj(clwr>2i%Cw*JQ>5Ca$Pe7-zJbiWGYZ~gQk{7jR z*C0qA3=pOlXM}681;bc*m~CFU8h?2yYrhoYHCKC%6rqTyGomD9&N%k~q_K}EM}TZs zx_Hg^vJyNj`cC^milivocVJcgq$pEh?w}xMHdIg3(4a`z_*>1zdrgOi*LvKBp(c)- zIh`}fx56DN;INY&h43h5gn8dc#>Uh!zn$jExTd1u5}hi-LVsSLZ!z0BichG1aFg0X zvKo8w2H^dko@NV`N=}u)TF3gr1z~irjL&3sk_D_hem!LSCMj{K(S<+OzA{sq4s zkh;*i{E{}a1HEj1aijrD=3=Aa5;clhdRYnuN%>L!^!p@4D z=DOp!0*vkrmbe5FjL*MkZxHLDp*-e5;2T#()k$es5cAE4L1`$eVYyhJT(AKkNHEBt z_Xpw5KtoF*Sa*uYYfae%JG`dCeX}~QImq9`4m(*psGspL% zszM~N!ixa;u^!WS<(nj$ou|bY+?Q>4DL*e()ip|J7{`rSz6+8@SNV1rMfymgQAg1* z@eyIIa=wT}dsrZ#PLvaOlfvFgxQ3+Y9Lhaz!H)?&Iy|air>YTqTcBpT_U=`PiKJiR z0f>nBt?et$E0s+8l*FrCUk3r^9q;ZK;THLjAu&^6&OTOEt;YQ4MCkN_@$X>QC*5zqgNKdFnDd>~KyeL0#QIEZ_g(4ai%%t>T3$UQ!RjJ8kY(xbNZ-4+bXu)kHg_E@20oq# zq*aH)pq_u?7XP z8kwYCC9q<-j;?K?RK?Sh7-UM{d=&BS=h4BPA0UT=6@G4Z!v;AhE6LzO;A9fRcT>K= zWGb=v8l0V3TnNb4#~C6-Lzc3Dqsc&vBnvpZfH8P%J+v5f%!^ork`<4Jl@-1qr(r!b zpJsD%mo1CO;#oHQniaZK*97PgM}l+|*Mp%~KN09!aL08Dx>Yq9!1jPe?J(d=YDWpR zxtDDOh}II`+l3G)9D(O223NAs))&}~csxkSo3ngt(ujfXdd2oP^+Qix_L|m+DaBDd zdpZI|5E|h1r5Qo?=Kz>hk}ky_fk$YIHO)iI)1(N(I48Lw2g&5Jw3ly%s1H+^G!{PI z{V}))PKd?;Ibl`R(e#$^_4R~@EIt}xA}`0wP~3qCni_W;Le#t0!CB)2rYHva`ni0A zM8o!jd4u8e4123p^toC5rH9#vHBnu%3@GYW-FP@FZ!( zU0v9h`$ch>yRFy#;7XS4FC>DA&$x2xD$LN&xtR|hR*p2-xR2H^X??xk9|E3Kow(>c zv3j)4sn3uq@}lQX8GB19{lChOe*Q1&-Z8lHgxwbnJ9av@ZQHhuj%^zqcWm2c$L!d) zZ5uZ;b7s%H=gvJf=YHBdRjJCitY@uN^?!bRoW|VkiMo|!VMF_e>>Aq0VZKAzzSTK& z;-o<*5~K~fS2BY#96%e4nUh)3{OrK>;$_eVD-xv0O_sC%p{e<7D8+9F$Ra_0>)eLe znfeSTVU%6ODgNeR&|g7#n_T=->c4MpT^V+)eR8|^>vipRWc1#gs{QkLd$bum0Kk_GSYZrM0x5_J-;wND&)%e7NDg z%GvhLDLZ45JvIFmde?KKStubpXcMkypUIUcH@e7~g-QfNMRxwM21S7-3Ik^XB*{%C7DI$p8w^C8(k0qnn7jc+jhX2 z`d4xp1%5K|eode`)atl;@HR1y{0qZLSB&&Btt`9JM%ucq>`}q^Br7xA!!DKvHpo!L zZ>Z34Q371vw#Woz3mzTZ58xqu-`v2rncu&U9I?d!)JM!RvO%b8+(gh6-3fueufpPR zmu0RsI6`Y8qwZU`m(rVUo67cGl3&_L!#r0X@a*3UqJ}@tz-5W*nm4IQ+PtbwJ zCHKw`_BT0Jz1nN_-7{=gz%AUqbDu3aR>ayvuypI`WvNl{CcUz3%!h)jG|$4}{BoT) zcYdX9legl|Ly9IqLyMIl@gK4ERU~Tox`*hi(cyD4cHVrw?KwV1sGdi*AfDdeb+<31`V-!lbtm!OC-0467Kk z#l=nHlXXHum)t0n6(bxyBgCLhY{7>z1;N3>(~vAUz+0D_{h>tY1d;8smKK^k(=_zl zeq*M;0hEx?sOONLrFF)Xwvi0Fb$DeJKvUoxyvLUy+lf017y{om@BOrQECJu@E5?-#R}+1NgBzp&%6 zu(Hvx{7ZR`;SX&35Axin4*F+B)xVPqKQ&V(JQij~8m7NO*7mx#LZQL#P}wn zcEhkQtnhm00dNTv&6sy(eb%C6REKH0nLV|3_+@_vl$htea@I#2C0g3;%4|~}F)$N1 z#@8+NB5v(h6E00}>O~h;y=0-01W}|$RB?cJ z-4oFb#9)q`G2*N%=vxCOZ~DWi1C{Q2`@)Hos&;1&+kI+!+w1rYr$U-*7V{RCN`{%* z8B3lgq(9fg<4}9%;%q#vg=>CJt($L9djcwafBxa817o(^$^cD4UG{pR;Y#Q zTTn?7nP8#3>20fxA-Q4RZcm?q8JYn5cAYc^^LRzvF-c-Aa2m^vj!zO5cWCWk0314) zuKtnc)Fl^gfvUF{G&Qz9NTxg0_bfx4aO6`w^$Cv#PDr*v z0a`_W{2vScN%yCTO&QaUge==K5i+bcd`FggYbC+xHlPf8=W|z??Sq$Rl@IKNR;a%$GQ}Q9))XRuD=%7Yu~T1s zImkkz_>4p@=L}<94H=yY+u`N*FY0oDN`MHaoi4DmZ%bpI6Ni#t!O$+=xC0l~?|h7Rz5V_2JgT$Z`=b|^ zmG|v&2hQh75o^O7UVCIi@scMd^_$);0%fE|wxNMPVG)^~u#Ng#)_#IBF+D+~g&; zSjjVPfD2X5oF`NCWOk%6_Yf+Mao>MZ+jp*ZH4D`mu#EgrjgU*sSY|0s< z#q#!-J;eh+78;^8(>%{Yo%;?qM8|J+%u-9186?#n!sKt6F^!^C2f(t-r1hk?1dd~@BzjhyDu8xX+ZX2c;jR^)OIE*^RQ8Ojypq>3r z;>gtd4Vh+h;+;{*IOL$3=#j~NU{!Vg?EA-@l2PL*AdB|5*Q$hk8y+%lAL)+VL*hz+%DD(A>DaNv6r;(%2>ekzLj*^DI{XrY?-z@R zDbKfFt$CDLg^+V&{8h9``9y3r!frQUWfWQLsi*$1WQks^SsL=5BctEqzMXi%6MkenZdd1+YLXckvx3f zd66Hs5&^anM^5D;ydu1$^?8gZ7tR=`C*pHQFcs`wCa>Xb)kATHYtam*dd@4Y();zX zD>bGtn8?!VO$J>Og4pJH)7)!2BV{JKWJ^14=dT$Z7N5vjlp{m=3lV$Lmd4IFH%|Ih zKWFK+3xrZy)aHyYQiQaj0$J0hWL8cWTF4q0r~DnrMy-Z(&0|Y8JS~RW+-wmY_UfQE zt#;@^@)w4C(M}uKLD+^kpq5$Rflnp4&JA_0+hb+Da?yWC-;Ef1G1E`oF|`tyz?dIT zm0LaHsOT5#D+lw5Y!z$h6u=07C67vpf?}+gX zzU9RtJ)gv@6OyJ?k}(I_>}lhl$XGra&b^}N>HLr%X zK&q~q^cOOBL-&$QoaS|nd(=AuMj|rd;0l`%nv@_>z`k;=>%@2plPOv%G96otB(HI0 z{e=DThm7ZlZ~IbVpJ z8gj0d!%{gcvB7KVkiBqBb7V~c8&H|1KaEx#@UhWm0NcP?9OP~e9wa`jN6w@5D8{Bt zTeK7^6lA-Nn*HizYo;`}wcFMvc#WP|RtSbY=7s?uZ7aHGQ5k>~Mw9wtk$PQqdH)GrDBE{owcg@{nuf?bL40Md|_o;vqR&tgDo|Q&N+>qRow_ef#SjF)lZ|9 z2_A(yFWivCJE>ENrMEjmVDH)GWe3Al+!*`lU0Lre%ULt0%!)%W3oq$X8F$UnGA@?P zc_bsoLMYA5%?4Mq+eaEbN4#q+r;~VP<_^kEW(fcBI`=R^R-q-8Ip!1IT#kUtG@JFx zg|I_MT|Yz*sPHu6_muYDyA+a6L|u1Ek!cfs##AhzJomr}QHykG+ouuAuaMCWS&v6^ zvxaLT0Pqm)uH<|(U5cH0^wa}B72mCy%Y1C^e<)VcjMr1;P3Ak z>kq~4Zyr%5y1yj1zfv$vbpJ91Q=vX$pU;B4_Ci^ItF(l6g{Y*GvKVJiktWWylwT*u zYOe{A-3W44;^|c>cLNVJDpjDx91vJ}-YknfRi%pdbm>y|L8$HvyEk`Y1e=F<`w9+P zvoQX0=z4c`bbPKDVe6Zj2{tu2pu<;7B`F@pKs$oC@elybop3mDqU$#2DV&v0Hgy3e ze$oroBJ4v~;;fGh8CVm{`}#f8yV>2fxHS)X%nU(4xo_k;gqji-;>r`z#7tt)|J$8_!`1v5-Oec9jV+2` zyd9UTqSAr%yJMhFY&yXdo(60E=0}gi!C-gPWwuar(((x@g#}Ib)_JYOU@QvdApZ9r z6}KRdUFin&R>F6KV7I9aw##<1FQhwoPJ66E7$$(000Qv#E&(yTD*iY^eZAfwBEG9Y z;GDPRs13X2HM|}egl&yx@OhC(=;9c+`!cvpI5#vByZLN!0T77~(TYAOthO5O=%TFwwaFck zvpO~trfs&3aE2cXg4)WIEv>?y+X`<0064`@ssf(>vs8VlANyUuc9-L|5^d5(nKvd=jd@Me&q{dLE1AQfQ|Xu zetCY0hHfPblrBHRhuE-oY&V_hJ^R`S+uebV`NbSYt{VeFz!qOe4tfm%1_%%dsYtv+ z8KspOf-0dUl4T;Jd8rTrMaj@C7?QyskJww}?+UwT`UP7budX)kRKwkP+KAEHV)O+q zJ;Ex9<2lmV5T@Vpv0AW~_c5`~2W^~OZ#vnzV6r>#>~{19Q$zrvmW=%f&(#3%b|1Oo z`X^fHzIc`s!(hz=n$w{muJ-$stT)V{vL!0JCoHaOV{HXjdBTx`g#p1)wam-C0RGgO zBBTsXSui%UvKXN&my)?NDE6@0q>FKILae5UoG5?PPv#ZBVok?=5^Hp_;PsdLfk$Ss z#~+_JbtvCnor`vnJc5#awbWK*%RpX9!|ya&PncaHZ|W*F#ZAkmr(>nUk0xvXA(Y_0 zGHIXIj1l^y~u36meM@TxM-FtEl$mb&2gp``t3JeI%>lf}Sim zt_b)Y=5{IOUF7+6&?c05oPl6LDq&!;;K; z3Q1v~#E2Sg*ItnEy;C$2GRJfOrDv-cdCBw#Z9O!1$hN6R8BTp_iK#%!GGoo?LVN89 zJeqyJfRO9~59WoHR>~Ul`_g?U#qfq+aUYp#1qDWeR2$B8tgS{uKS{fw7pWGl!c%qD z!QK&x^n=2Nq4~h%u!Pafsj23aL8kkkHW~Nj+`Dsi)=~S{-v-AHtz^kbhL`-6Eg(b~ z9BQO{Y0xy6tda}jR%iVJGi#}%BX8S}L@2QYHi8y-e(HTYsO|^WGFmxEEU}ez@5%za z%9Z@04cU=(^!bYxGUYmtavWQjHF%cul&(jOX72#fFMcrf9NzbX`7K#+$7W02tRZk` zBrIs{E@{AH(TBJucaojP5wp3u9#ZEDxQK4F*>Lh(oSg2UZWk*ncqE$*^(cL#;{9lp zy=FvFEFAm7!A1xoO&st~86aBUJZ#hSx~U)=i&Pa_n{4qpNMcvrhgL2+f58EopNzcJ zao{61k%umv<4a~x6_A@0UyrGM$3`t{&RhF*P^X7btS3bNG?p~ARkJ{$L5pi*wa_V>MeZbsJ3-=}%r?g(TQX(i{qI}UYWXs!L~ z34WSMf!;m@;~lS4eZT{c_;Li~^u2)si{4*Qt*zsSa`9r3x?{|bnh7+D+H>s!*A7#RG2XG56i{x7-J z-_sADROWAF>L;m6&(8E4ze&%=PQ&=gxc;l~!ymK#Q}}_2?(gjCpQPsJiGY7cYL5M{ zEbh5(Hyjv~85PZjaN}Sw$pT0_lson5y>D4KA0<7e&Ry+%_{mLGXO50DdBr?G@a?!o zuTCUWo=H$|aPQO^s4$2(!3Ql1biuD*XJmOHc2XeU5FhOQol&bQX<2NDa-p?-*h(P< z=)-@|bIcFw86e{aqC0A5>t?n)7`a5P&no*>PIH*eM3D*buCz37`KyK~NM(J5Rem^M zo!$M4y1ZP^W##7LM!~T7c*K?U6{ipQg)pZ^E&`sB6Apdv3ciIQANnKqGGiDpqhCt@ z_Wte!+?P)33mGL3;w2(uf0raWT+0XF3sHr}$(+1K!Wm3bJs*Vo%bP46%{@&Mv*(aQ zT4N;zt^9ZERwB_#shjbfQuGUn+R{cC_a9X5Z`+`mbbUo=$lXE`UGQaqy$#g&UnTCH zoGu`%0~k1qgKsFRqv3&uZ?i$v(i+e8fVRC6J2+05zi!{ADB0i6z*SAbpi#7;R#^~89HFOJD48rq+5pJ-&^Z^$~Q_JnAB6qB|W{mLo?e|6h+&w%i6AykNPmIl&05GrK z=K*GdQ}F$Eiw#0N6ep;J7w>J1I|NRF2Uh|_r&#+T*V@yd2I_j=MIbbyd{||c1;d< zW5B@PQ|xZp7l912eEXZbJ(I(WguNZ~PIey-22QD-=*f(~gOK`m_G_^D3GC9cPP8C~ zu^@kCoyg(hB_=7(VLmiN8VODQ;+$N%era4RpJEsYSsF>@thXc(nv`Y?EU5wU;gSK# zzEyoAK*S6Y0qq!4wtO~8BhAXEio0sP^HU{_W%x~AGGks03s$6WC3oNV{iI6PX2%i% zYlY~D5PCT0K34#E$CQQ4GoY5@%=6AeL9{m(tfi4SK14M3&K_^MGTFh*8E<=1Vt;zq zmMdB9hv4^I{gFxYadSV*435wH#~GxR@X4gzkWG^ z5Oy(LY3Ab8K9cLUtLh>RlBkQ(2Ks(S1D5QH52xA zy*U%-fRZJ8LZ#dgXk31_&s{C&x7XDCEg;+{8}>>AIDq&2*H)pMz+-q`RP)czq2b#> zSEd#=L116aem@!e{Vp92>kX^|L)d-8+vd5hbxWa0w@HB$O&B;gE%Nh3YiGwO zWBs){Bd9Vg7IDbNjH;Ay40W89bsiVFi*{|@*vKt|*VVVV_<7sdfRIDiHKqO3b(N{T ziqCTjToe$yBkkmcIIIm7r6}e>hCb`aSYrqJy2;OL4Y+yxywVoohk$b20)YyA4f*6b zsS)`vZ<9T_-cH4?=9}0-y;B!#l^k8mfr!N$&p#6x%~+ZgR9iX7BTwDYbs8SV4d8^u zJ5Kh$JT%xSi8i#KY3(eRx`8-u4_gMcq-(ehn6R9MLKhn9c2_8@t1oO`PEXu#h&ysH zD)1W#M-(bz!VO;^<+r)z$)u(uN21fkh?Ezf1H!E}Go(mNlnY#}YHR1HUaV_n*w79* z{#vXqYR<+`o@Oa7X>6!c2&W)3S)m9(|GuF|l4h+tXSGcW0L_PV{{S&RQXl3O{@L46 zVC+6N`BVFd=XQ>E(Ns=-P1%bQ@Upt6(P=J%_@)at7?y*Wl!t-nM|V8`+Q_fPjwAMM zOSNRaFbOHVEdFzeH0Kz$#9mCfRX7Tn(;QQ2w z`?n{{mg=UbTPG+mT)mimQ?F!dayS>#y-9>~&YQgQ+Y4%v48w~Ho7T1#EyE%>07f-v z>N|Sl>cR6 z$pM3hlaVAAlaqaXE84*1!54rjTLS00q)&ZU1&8r;M4#TYlNr4~mbz6=4t0xp1 zU4-g*=fYjaw~Z0~8ZNgANzgR>3`>V%{16_VxsO-W^6y6x|G3cpDd{qN{`_sB{gbl# z+le+pJLP;^v{jO2}CnfdA=J%f~F#TU#+rN_985utl!VGwy#&Q}q z2FA}|?x*h0g7;gPnTeJCU#+IBjKBTMf80#z|IUy7$3Fhser;my^m|6z>i2b<+R@0t z(cZ|x$ z;h(4b3p4$V{iFXqr2H?c=P)cBRvWKcy+KLh;Oz5y0r9|NQ;xtE#(FdAWh@Kc;EfpI zAuDb5$&qZ?>fV_L?t$5d3zweNRO`@W1 zc)@}EV!KC~6`~6VcK)K6qnZg_1CR7kKs0MU`#Kss1;0~wH>K8Rj00_#xk-tIyHB43Gt4_Y5EQt*6^ zeK7Pi7URIth&s(f)}f!9&!6I(##( zf)A00waKQ8S=J+672v0d)x9YNQiDYxT)m;{HuvF7Q;g6@O z%un9Mh6jx0MECHtT&5~Re&3<5T`H>A<0vGx7Pe737+^P;r{l}y)so%RS{W+VW1hiT>2%%{J$pJ-r;w

aB!3luXQ*46xZwtuq0w(R_O$G>OOIDAofDlMWC-CPaWtGQmH#Ym z1Uy27%}vY^7Nq)tzwMwnZf{NA(Xb8}W9T@%AUM+m7J+2^>dB@J#d>|Y1cfs|9t9_z z^9{ttc?m~gb$hxK;lBfBpRhAT}|adQVwN}07T=uFpGO&3Jxp}10lRd$3Jw{ zBUPOe^*El%-TO^JfspZ<1uvU&i2?-xj2~9fAsfyqzN#_8ZZ+Oqe^y)$)Px@ z6~+8PkQg%i+&d+c?&k?jQ9!j#v#cFu2bx}@=w9ru-X$8cM~z|b=AbUPj3uSFT~7&U z4d^_Cczq4bbk&N;aLQ);{ga4GCFq7AqEpgd2=X4ryEG165}7>0z3j+>3_=Q!&BzM6 zjJ2M7!u^8kjR6=;#kmH7PGMa#-lZ;R7Rg?A#CH}MVGBSH_J*;9GU_eE1W375$HusE z2f}&Y>eDtZ)55R=?-N?G71)X~ai zr-GB%ELn+4>{wihex^h`P`Hr}?08q}r#J=RG^kxBrA-upxzZ9h8RK+f#0D4@(S=Hm z>R@2`GXIL>&g;Orc_07XV;C*67(ii=*Mdi3WFM>-f|s-6D>!P6KEA7cASedrjvHx| z4ao9LU&@q89=*RZ`ax&;u;v=-6KR$fbxi=P$@wg4U)vM#aXwD57@ahpg|PVcPRDLUdGGAE%rH@ESQuS@N0DnG(9{K#P5!-GB zjmyHLQ~e z+DCspp0W=w@I}>vw=CkmvJT5RDSTVTelK0?_a^QChK$P|K zkyW=#@dNR$TfViDWb0YpnPm;XO*#08r08H}Ql$-)?tHUui1EGbf?x=8NGDa60_Cz0 zWwt{7F!zXFSspKHE)-9m9QDC02dJ60rLm9o7-n_Y#eM?Y6nq*h>4m``n(mEXjK8R*BsCTEf@KL<$h$W4;6ksD` zm&}&JNYILRDXpWRE)1)QIb2E7#SgJ(^Z1@Wb-$5}6Lf$wx29dW#jiuvLe&6_+A`f1dg=$=ep5A6+d>Z{fi0x# z!(KeVZE?>RXZlAd>xyj<3KL1EFWQ!5W9Vxd5V4!4TwyoIX57u==i?MIpoK9fE&Ddj z+4i?p=6j)X(Y?pv^LfD9E-t2=ht^PLQ}x^{Q8qMNaLdSo?NvtJaLs%Bp+|#gBrCN; zWjS(bt=Ab8jZJ$76$s^EMs$Sqeu;x$gLW9HjU1pgpIdlyJ=vNrW_41W-S6YIjQg}K zvWWcJsxKsz2W{~JWgDTWhUj)F*nUuP*E)Gnx+-WQ1jqr+GUW~wd!g@EHcTvmDd81( zZmfMz_546mXM(nn3|F862OHR;$xusUsz6oxGDre#wC)duv`1M@Z`g6FpT*qmf71vo zuJL1PqkA)2XoNbV>S;?eM4;7rk#~B*9(GH|msSzpoLYaO@oi{lOFZH`UFA^Z)E77L zK9JPctKseuNvO80Bn1aMfYCMOV@RFp?a8#IiKY-y>Jx2Zs^ZmYK|0ZHEu>I}E1Jfs${s;a48|M2R2z^Fo|3D4@ z0siR!BFz6=8@&JYBm6Pg|CW?xqW?Vr`}Z^jSL+AS4)+Q+)2{B-p6sQb?B+ED-fwZy}9^ei`5 z()0?HzvtuCEw8?mynrd-&LRjI9hFKbgxt;5Px}^?4iYuq~=s zFl}8BXG_fGqZcT7)1~(sRjs2^Ij99_uk;nnT*cA?Gw>xwKy3rBvk0_^~h@ zoR~nE7w#7dpxThP?G@F$9UzEMcD7nJ9tK{oqy|qoIidM%TIW(T=5h_<+9x1chnxEz zq!4p}O=&qlAv{|tz3CLAaVy3L`UlWgNMqYfW~-ts+F>Z%RW#&ys3>?oGC`?b2Ai-@PE3b{1EvOOnw+rD5HeL89#rAmb(o#hdY<+F@gmxkKLAJZ@@ zELLlPxIsZkvd)wb08r2E6{+YLtxxtW`4-A-@*NvZrE(YeGRmn#^{jx9M1YEDh{lDs zUU%2eFL!xGGzh|2I11b|Gzi$Eum}i<-y{g|xCOay8qZjYa(kJ>!_a;$gY@rsBGdn@ zbKwByN%dpz7mfI_Gqsp496VpdSLg2qlA;qlS>Ee*6$f?7#_#pc&N-w?KZ+Ne7NDjU z*w8GDR<-GaS8}SISl%dJ`@HiE`OdGi{PjhEgj3o0M3hpFySn!n^QQ6HD9c4tdAm^H zs?cGu)MpENH7U240mlZI+Qfbq@Pf%-5I@a+=VPklVT}vz#m26*2Je*eYph ztkyhrm<2%jZ8@RBKoUDiT4kYja9D*UQayp82_{8_J^g3<5;a;>dDdbgGt&55DZtU} zaIF&nk@{LG%%tHNb6xl9eOK+wrb+JtRh2zE!i~L^YeY$=yg)Ge*klDo+_=3!TIH-q zbh$K=zyGS`y*l*_WZuQC@l5s)&#bRq#}cxx8ADi)%^=(qH&&`$O6$f>yktm?s$l@_ zF-Dyqqk}0Rm##;a;9Aa&r?A|LxbYc{b^Pe#%aI%DSry?Z{0?}oy0W7X{v>`;f;&!M zpt(gIB64$J(M9sRyB~XUJ`e7e>)|5RRio6Xhu`FyqAuEny}vp*$L5NIV+sHSOcEI= zFfJ({DkM--3qGj(wb=R!W1l zYP8oFX4!1mqG4S9%-=UgRfN=3Bv(@;k(Ub^4*_K-1sY;1lVtSVeSU3I+~m5P*6>np z=0Od4*Za#uXUbDWcjCzn4geq9hAcWs_w}jxIzrhH1=q(` z8aD_K;81-8<$;C#4L-kqPi&$NBEm4?z*3_c>FVAbT{!i{?6nUJWQuNBKrQldGNOFX z#Sr&%xpg!&&(IB$72eOXPT3sv@d;4 z$g|j-n`l#td+scZywloUJQOgQPq@IQPh}gc4ZK+%(j>@HPn04vdJ3S3Sm!Mxkq1d` z#_ioi`b%i??zSjk1_aD?OWqx$zu#L#3OZ>06o$P-gKE#>JM$o_ep^lVMjg=$M|;RO zf<6Us+pkCTrN$2T0AWvAOT&2hmT>W$#6N#_X~-6ImG8g+4Hg#;0eO%YAOQIC1`=w( z=(x~Fhp-iW_~t)DSSjRxUJpgs%P*z4h8K-Jj}#%}jH7UKo;gkE$MftSOSk#1#_O8>p7`#X!VcI= z08&HN?_$S$SJd^aKk4H>mk(Eb=ho+%3HwzIXgA-?GHb8SpEQP5T^8W!+_0fna1op^ z`l@G6J#p=A5Wp1gODis%F8b)_$E;zmhRV=n&&nt3-gU^bnJ7xF0}XK z_8jZIYo_tzf<~{g$gE;(d2MwoDI6xcm_GFujs##PaD)L>?g)Ko102p$W#U*kMoiX4 zWnGcUik51aqyh!~-nSrx)J$%=lz|-B0q1xgD(eU z^?Vy#^Nv!hx9WV#)YopyvV_7L0NSzr(%O$TCOF)Px4p=E<890t41Bs}qzMnyYL^35 zy%=kiRF%p5a&=;JwG-n-Jr%^mq#j0-2InJ!JAZQBdw>0yv`+x^*sYzFDw|X;9%ko@ z2D=YSl$(5gHGEVxv&E7d^=?XrvJr?hj-78{=|us?`7~Sh{zNMw)Fkjvi0Ai(_IJd? zO8=Jwn~C91f#r9^^M^$AH{&(KUxLa1450J-JpV7C^M@Pz@5bv-HRms**MC`_J_}|4 zRgQB^Lo#lK1+n8qHQO^Zqn55OZuflXq~WHRyZlVtelTAF4KXiA5D|+9nY5D!hDXRB znb}~$I$vQfqQ%deDedsR1(4ek{Ccyl;o~(rmu!XWmdl^47e`cSGw~v4ZC`gGt*i+M zA*}L3ME)E>>WvN>n3oS9R`AFT2WHAC$lLopi^zs2r>S6QGPqdD$uX+&P*humHG(k! zynFW-?cwvwSlY=Lr&`;bsj^Gi3s;w)_WN27UAJu79<`-g)rF&5FUVM)kn$nuvVEv< z7n*w|7KMU(>;|UGuwWi`%X|u@VQtSYN0k%v0q3pi%IvdY>quHvx}VyGQwo`jbAe>A zjB_)&a(QVIY%AS;x7fbD0b?Cel|BZk(Knq;*H;NY8ica*Us6~S?8Z61tk|*RdDUGo zpGR^?Q}{2lDZpetu)w802Da9CEE|F7LreJ35fwJ0yMpw&DKlzA;FBHH`oMU^#*X-R zi=;cQ_(Gnl!C*bNJivsB`iLw+C4Zc!bJu@GBLcYxJgXNq)$+FL_ta}VF@Q=2i0DXfMWTs=Bcj2On;^`EN`SM`Y4>?M ztNM69e;d0oQI%HK@q*l~inR$h{bbY3>?xn>(on-Ed;`s|g z^p~sav`af2-)&aLsXQA2&o4jetmzZLqhOi^MR3$3!F6d0fUkR(-_D{VICiZRRAKW} zj&webs_&ok%4&zSQ+k+U?9}ZPj-P|XzlhP}0zzBy!*afUq)zADk!E}~gJT3%ehylTJB}Z4<1GJ2$T-4vFa+n4Jgxta(XMm)6s$lp_FU2c}-MPF|Gi z)!t3L#D4rn)FsuW6T_`FW-4kOsUO!p0my*(Ma}ses;{ww1r5~n=?i$vgPnTxK8CYj zw1`!MH-X18lPR!i%m_MnqB40s%63gThvCiFuh8b6P~cjXe#>Fmz6$pUdK##SfcN~# zlb1KIwo2+SJS*?greq&;|jI4j1omu!tntfX68u!v%!xq;sgJz^Mc62phjZO*F^u zRZ%$mSQoeYM!YMA7HX@KbS|Nt&Ek5saBmYx89?kFv`sSd-c_=c5hgK6zM9Au@4T#& zBZz(1OzlAybo>jZJ?0`1hjg^D)+$-Llk)}@pB0veepld}Z!bmA+IWmzFcQhyL`&u8 z50SU_9OrWC2TuU+VmaWc-ptaRBMNgROhd?wJisRsc~xfle5djqB>Dk#WKnpBzy}0R zFX-0}w>JzJY1t^xFK2OF<_cd0p}sa*!HmTY-l~}z0}iocR*ymqLTtc@LC~VHkfN=E z?xklAj{!R{Jl1#ZPP$7YowxxzSdXa#Bfa7{dv{iEIzn^uqS)gb2UAm{tf!DfWd(Y# z!Wkb>Rh{MlAV8ujxODMUfpnl}^SqJkW&h8?2cPh@qC0&Sj9-r4To#%%t#Cm`RC;_xlAyD;Di$5mlt2);SV$ z+1=h6_P9(ZWLttSv2ar#maKAVOMl5qtPC8WJzO=k9%G+L$o3q3O-iWL>K)gS1>c@n zexQ*ru-ka{f!tNG*A$h@KNfegGwcb?Ct*7^3E{}XitMl&R9M1JUjB%yHy&zh)jvBx zE}fN6i>87Qw?y;9X`@m0OhzMK%I;z7#0z8Bm+(q>m0cE^ zope&|BPhd%7RvPV?bk(>1ahJe7*DudAu5iYo_zG%n@z*HpMfT{4^dS^3zcH;0rP~F)iYD4>V z{~#jgQ`v_mCU0YDHjZV=Xb~xlY0!(LzLQ*0&3P{ozAfA(|D) zJy5tnykujikZVdM=PNKbVDB)9ra%w5`YX`(n)~@!#Nrz+ZBy-x+Do58)9p4tNRa}pe?)) zZej6!vJ%bt)c~G)HKiEcuP2l!B?pwBh8F8vT{On{UDb)a->y1c!Qa@?k{&wVoxdO7 zkBi3VyzJy3BZR4=4cH-zkoDVP!3(HGoIBiBsp2Y4c?r8XrQ~hIY19uPweWw$JKc0~ z>kvrLd%f8>el(S3T~v7o480)SP4=GVpl*rDeyl(yUySM533;8qIGD21&+CD2A>?8? z^Z@RMQ1wuCLFWmo*I)YuQ&G!POuh8#12}r1(ohqJcqH4GfJ!&qphzwTiy z#gzvFtgL@9cTDbQXQd6qzro)LHeNP7D3|>8l#i*%a7khmv!9<*S9&kqqViUpmlzy< zZlOMBM37bpMkfKsn_2{Ru6VP0ueZW0ID032Yg3aoGrYT4^mQ|TdS(FBeVEE1FZxXxfJ>W<$I!+@lH!x^K`@+&Pb z(w&QcQeHGz`3Wyp8OMf{99el_RK3V*&5It@Djl)Vb%POYQ4qc2)pb__W`fGQd`p(6 z4_gQuADzeu7tW_rFeb!NIKW~&HID)SO5>2BsLSjnCDzaIAtn7P!p}Zt<)#HUUT}GY zhRNYOrhBl+fHPJ@bFZ!^A1Z|gOe*fXRdIx0UV*y=Utoc=Qa=2BhK3rU$kwNh#>;N^ zoV!mxUk)hF+=|(#d>9APWiW7Vlq~%qMj?GTh07|^iMjpIHi$|wR(w^T%v z+u{J)g`%B!UoiE%2a!VT1@V-o`)9=b7}P+wl(V|ssmLyq*IGgBO4%&L+y0i!ufPn@ zlqg(?k9+C4DK18lUSBBlRx&_&V?`Talx}Oj53S-P5j0ybPRSV-S2dOBMqthiuylj< z8jfE1ju10G4%Ww_2|JR2W|8_WOTiEZ%}WI5RFU)$WIWR%Hj>uPFpzALNlFu7nTBaR z-cYt+)S(Bo^R=6iS0%R*+!9B%aYPXFUl&Z`k2`Yrc(V%Ozr}3vVg*n`NnbB%1wpA! zx_8yHQ2^FaghN7Rf7TIxiXx=R#Za}7SGR0|0JB*v=z*s`F+tPFR392dU19TR`drh4 zO^w~e+_gB6#nGz(b4tEHdg=XEmcA=k4jT(F0ObhzVaCM^hT;uK$N6U0+`KrDUUy#D zI*|p~C77M`KyjkETWxl*P1vw(LY<~+(-spSU2W5%`I7_r#3>8jiVA`nA#hNcIUXTy zvT1#JR@RvML>m?QwOW0XnY<6$#xHes!G>txq6`OUM8iGVG^9Yg2y7@%`E0*Luno2c z$um3iJZ+V`;G%3*@!dv~qLMa2hV=c=7LHm2pD=14xks^@kLfEJAl=uH$HGwIAg@S9lK^$8Kh?9eIe(gv6A_f?lB%+_AU`VxNW{_9%$1C zPLJ|(eh@PVP75xGMpYYETM3^emmc#X__m(5IX5!!UCb6BSmw*m!0gV%JGhs8J@d!% zl7~jHH60Gxd=UNR>ik{`qPdprGsbT(nuX|%!CJH*IW==1i){FV3k~&NkH}fihuUrR znDelp($wNKLxGDrCZgA10-=hOR(!CC37Upf!GtgoEcSlc7(oZ7TQE&Y?0@dA+$i_ z?!x={r&iD3BCg-3+Dwd$?7#iOFZ&`3(;su_|JBW{KO?UHibnVg;`;Oa`oA^JhQCeb ze=VgFw^g=e^Xt04m>}PkgFqOK5aCUEPnwF90h3IM{t#9;_ z3fX3M0tSjmcf^#6`JN4g6h0fWub-I0uH76>T|lM~z!7s{qJILMv3F=&kJDj%Oy<{U zKIQp*PBqdU*OY9Rwn1s=pJ6sz|tHwN^68%s}GhMi3ZRFxU3xB!his(i|^cxC) zI6Q6`8z~*rTJ(r75;<9mqv$JMemjH02*(Q+%|lIYEr&Pm(?1cheFq`~qvUGBc2S}+ z>N*%`wKm#-Js}ND#t&Xjf6CJQnpd;|2z{Bs4`Qxg3KvLNQ=l z=9aB(U6W<`X-N7N)%G5E1Nup+eN0Y{oN~aUpGjIwKERxi{`;(3AS2u~g9!Oqm(u`G zCHM-(A>574CB{#HqI~k{Jam32+uc=C-lc=WLOS8F4%f30Hu12k+=NA3!OvyND5F|`4jkGiw^GOebE`m3lBjvNl0)XT!DcABt3TO!MDJFL_9(mUjq>Y)95PoT=8_lR53=XnUfMH3~Vm0_PO%B z42!aE^vKwgcn-nk@%$|EJY3r$R@Mo0%=Z9?aKoe*_m#QUY0;%T0B8lsCMVZ8eddiy zn$L^7)NZ}~DjG>`y$$eOL4C^jLQr!%Zm(ZeIOG@YXa*?fl=6M1%Z5IEVhxW}Mc*9MTniZp`RdeItuZ#Typ z>ifk!mU;FiQj}lynpdbvY)O+O8Uj`oYc2k|wst0LH8(b_W=Kt)lG)~(kQ_JOw)$QI zi&PYinyIt2t-MNRtJSlt0Ow-#@Tk=XOj-QA7$J1{n29N#yOL_9gs?O&3%?xM9ST9j z@k&`6Ye}mbh5g!z{ACOr#_Mii zxJhaR%S^^#4l!XJt01Z9T9ZW-R#vEf%1}#7&d=IWf05!`w-#xPXSDRiB+(WI^!ysZ zf=HEH`ta}HB?cUQ$~DQC(!LHz00Xm$YN(gx>S)niw|tslBT-aKsc(0!|5m-#nmCK0Dix42CY z(}KxkFtErHeWZPwxU<$z5w*iu;;II5S~=dL$PpoEI*{_l(t%dp1Xjjfce(F^-px~4 zWMfTTn8b^Q^_nH_6S#n7W!Q5J)9QVo3#2&2L z=O_pg3NqL1C;1fa`O-{5`0YH-`7n{A{8%9HXVRc&EUUyy@@z^yl4bOXQf7N!+zaXU zwlO>_psl;`%9!3t+Q4b*@Pd|n@fV(jzHZ)j+|XBLE*jx?z$@nF zcHM9oLKtNQyh1S&A^fmvOBdQn_yt3a>xH?}Qrr(QqcHfAHTVLsd`nt25;yC`b6+s? zjPluYefe(E0t0}LsEzIuDw3@eHOY38oO4&MV ziL9U~q{y2^@TV#g+DoN~BQzZ)tW4oHf?3Nk11S@X#i^@kP?|t6Hm_65E*>LXF$f)$ z?L|ES#V~W0NS>d*gvQB5j-ok24;?HbDZpQlaD|lc@<$4eANXw|hb#ULwEQY@zkmum z!=G{%n13H!{Wh@sZ{yUT26i8-8GoN^{jbI}|D#O&b)J76*!?Q{e{C!=|Ir@%N4B)z zF$o(J=Lg359h0yzbJB7ABU9Q3UiyE=B!AoFV*ZCst}zuE+Z6_wwimU_%AO#)R6bhs zPP$L2xx(~1erJ>Sn;gdmqfu##ePOT93aU5*l1Z?@K`3BIp+rxa6nu85jMKQs`I(X{OKbsR-RQO$xH&Nh1K!(HKzeAW_7E^h zUxUY}$)6`p<&KA!8~9;&dVot~eB?n3t<)^r$FVyb0F~MRb6pzbQ@dqsJVkA`bHlQW zXJjIxD1T0@uBB>fea#E@!B#}COI3dW2#cj*k@!IQsui}xJGN>#Y!Q-B zr|1{QV8EOGQ*g9Uq>B4#*H3V9c)+Lw)^AbZ&~vvNiRd*hfD;h52JexdB(A{GzPXNe zjpt3rp%%Jk3Ye{Ye{Z3Xv1Ia34f;M}tU^u^ z1Y)v8GcmmUeJB&6QV(=EIIJCs%TW%lKZfJdJifAF4R%>g-1*)aDU_D6>mBsaD0-B# z&wys>OYg|Ebo9c}cS8ziOTwH-*KNRDe_Hv<;3ZaMTE*Fh!+ zjA}bnl47kw$Wa{?ZWjr~c(hF}nATS5IG&f3(Ge(ZKtTPpq)$OfT(JWa>5YXs7gn~65UX@hJ1(DG*^Ji1z+?wfNxhW8B06~4b)x1xy z3~XTxdJYwHUFxd#(Pn9yW|Bom0e0L&eryWkn@lEe5m`_&z+00+?&oIIBR8}O=)jmseswABo7yh8 zIdLxr(h@U4CQ1U=5# zoca0&&LA?js+TS3mr~hlF6Czf1Jdo}{^X8Rt5Wv{)0m8WyE55$8{^z_u!$A!4uNjv z+u#PyauZ7*gRZ1y$pO5$x%=L}oT{F4%b?!qPg#hSyC4SLf1saPK34#y=ds$cR}GsH ztA1(Lg-NJft9WO5^HicLd3#>E=Y`l>yi={+?pdatw3Y2Ua;Sc3t*d&`{`_{lf3xj& z1=E-r+!XYQhYt;!)3E$}BV)n%iiQ>h#a)xe@Lcz_ukWA~pWjp0KA9s!|@6nJ7CUn@+Mbwr?%I1`kHBOqVrEUxAyP>mn32*7#)TW@CSQ zY5WB6@h7y?Yq1B{R9Z|2QFjSj5>!yuH~3X5PFOU)Rd=R@G<@t#*R8ER`4I3^NL?_5k<3v0k}qB%)J5$s=6yo}m{A z)gk*l7#hvHg(T%qmxTL?y)D^)Jc2WX8QhWZBgIrl|1lXILCQQ`@8Q+@r|W z_E-^(Y!5{M92v|wuF1+Ewq5`SR7?k+dF)JvF%5%lk_$*R&P7ctfQxlN=LhEAd{lSt zTke=4!pNidwE*h*Gm3ek&5ZWqWO^{OuRO|rR zXNHRH+ufh_gFVeL1+(RKQV^wP^ofv*bIFW><+D@@uBgG&ZX>;u++v@(!5*?h9f20v zc96L^j?Ul!#T{gPKA2`Q5CYLp zI0J7v5-BPH!MaFK++&-gY; zfLP~-k_-u_6w$u`SoibFN$N>T%J)u(;sakBzW9Wg~~ela}Dm@aF7^%7gD8N2z8;$r~5a zh$2xAERioakW&NOsH5)rGT>6ez!9Kf-q4UWk)vidJ^i(^R`8;n1HlMZCcZ5DlGV5` zxg~-65P}*rr8*~ah)AjIE(lk1zh$4u`X0Y3N@-7E9AKNSVZ$RmTUgE?W+J5h9o1?R3=TA3N6xO*vO|iHZ#c(7XIWKv>!A6=n+JmlPg5#wD^7dF6G#e zaV*O9N-fF&-;+aDsfq2d|~hty?z>G&1PS5@^Gw; zA)JPr{Tv8d9uace8R&DxzU*)f1Ip?9B-S^`-P?^C>q$nEiK8pc4vfcAQ;v0N1*zFF z8t0`nXXXN0iS795fKCX{hPgmM7p+;&zBQlc!f4N^DZGQD;I=C3yFX zTY?Ds`RE;ofr=+3ZUK{EyYhH|>?I#U9i(kB=VEUGi<_M`KGzq(Ci`C{PrzkQ?d||c z2!J8c_E19*V2^zQi1pyCc<| zs~cEMe$G)&+H}nM#)|>+E1uSf`ccLEvY4V7p-@uBe2qY%Q5v~Q(Z)PZznLDFb0aMKVTF}g8 ziX#c3l7GsKq0TgEs(yIk$<){^Jvo?;uEUiWI9Jlxd!z-Mr-C^ZsoH03wJ~Dp<<7HT zqm}US&1#~C=;ocbS(O^(xek5&)Z@#!i)eY+$2Y5mn&dYQBo@-sV#7Z)*}6*jT32YJ zeCu3xK%J10HHb{mPpHc3iZ9Hw)=&CPUpoLvG-h@CoX00kr0g>cONloV z5TQe3uS{#l-PM*zBhzPR+HP>tmO`&ZCh16N%+Kgo z`|Rjoz;~GQ4dG{_R~y}rG1a#VR-?$^9bs46z-IKR?r>ypUJ9>I;0so7yMKpEf5DvJ z*zQLL%b(<_EPrOZztGxWfa!+`>_3a`{yNXUvfW?6@2_l^<^L<&W&ha0@;|_o?IVkY z;r}<=W%*mS%kmG|ZlAJ@?JNUA+kx6BB8dUdTZnZOO)ZdpF&kBIeK5;OHR4c^jGw?y zxBe@#mQPZ#F$mT1i-r^Kw*5Ox2P*oS9xCK&)U6$!z-*m>wN8#w;>F)+_-B{9703DSN z>3Pj2R}tbN0y7!AMloWQ-JuCFb8N2Rk+Zi}fgiRk4EQkTsZ-}qAFjsy!Y9cJ(S?9D znPLJ*NrXvzS1f8@FeFqMUDNXsjzPEeMHcHDYf9Z#9JOXa_RXaonp_E_7{Lfd_LK+^ zj4U5d<%}Y3BC+vf|I)oc$@h4>l-1SP9+TA@Kh*Z4!OxD9InQU@M18jKax_`_sY{A~%4 zMk|FNhqYY{lrN!!>d0Y`?P-uPk?A*8A(||lfvqvC%tKM>)TqTw?p&}Z6CF}{=fL;N z^jl!WW*=7v#}7L z@QwU8Xv{zoY-_#;2>A(n&urhCHD`U+=1_4pXFvp~t7^wPo$bjOMzlaghTy8=ljeBA z^sXP_;0bEBcBWszZhGy~%JhNwzfOnN0UnOq?EtQ>SSL~brj$P?wI?%AyobPU2c(*`6YP&5r=`~z0C}^uP3UEnB-Bv) zqei2JCVwbCp?uJp4ce%$q;?e(D`T*F*TmFzD zvD2z#IPH$q%s9vfs8T}Raj~J#IOzu^^AJj?l;AW^Ad8ev-CU?wZMcioG~+#-c9}=3 z?Jj^rF}nnItAjV2-Daf@y63jmR891WsP%)_ndlqni7J^C88^z1bZ!-%knXmm^LT7L zr{+i^CT@(zDOacyMmBe$K2$mnts)bTEDea}a1h^d>r_d0u3S&?n)P~ePu{I~g8ZOs zXm3Hl{2t(!#u*{u|lgX#|Woc)kw#;zq+nvj=ntY%)Oq$Y;(p?g=&r}<$y+$Uy6XaV|(EUv^q5E zP3wQ%^S>5$*53imU&h(2|I~M)@yT(84dKIgvUxZfz_1R&G$XvjLzeONn8n6D#4($4 zP)sI_iIVH>Nhc;AB<9=ckhG;ZvX=U1bbPeOujrR+5kx>)z3)=6!mgYx*hVOfQK16T z+p@Bgcc*84r?>th@j2mrvMLB+8Ws^##bRLCc@Tu7+2Kf@yiaqqE8w>|6;ijPKWd!3 z{E=>x%F{m4xdeW6c;?u@T#cN*_MI|IuWQ^Eyeui@RNc>bX9C0#`TcjsZsa5>m^)8^ zU1U+OnB=3ZakMP3UBtNUkGNJ%x>YA32Il0ukb9a00-H(}5{4^oH&9;6fuItUjI!!h z&6QXyOa4TEE6*WPT0?s+ld8}9CtTEL4jGXLCFI`%NkFA!e~X zv4W%vJ{O%|1iP!Su?(l7s?j>B!=W%1owuYk=T>^v-5RqgoLK`an)TNgy8TRN)l?#1 zUs4LLX5yHnrK&+b@@5F?Z5xtGZ@D zZS;x7Sq4rIZ?!IspXq593E`=s0UP(6l7y6dltH$N2?2%$l2VNE8RcA{!Iq6+9kE}5 zk|7R78jf(UwcgG_$a)==sFqvo+yQ>&x(Y3 z1OVq@^h)gdM$KM?51AYxUS9?iDRx|#(B-8s65vl!lo_N;YBR|)_wv?LE&y{W_TygQ zfC7xvY=tlUFShK!ACbA@_@;UtzTK@SFL3%uL}@rFH{XCfL+vC0=-8q{rzXAlf0~BN zR*i-6aG1sB+!23-y+#WdN*hjHfC@vDJ@$i-3 zKqINVU$0ldVuZ?ZUhR4!U}TGKbKpoz8NiU4##+yW1?oY1c|(JJ@;6BWlMvT)1u+U4 z4gM~^V7!P_m}9oHXzsw=hzBq}R+*%`95+9Ihw5slqxlLj7Z!w#IyM{>6*~V)>uy4g z%U3V0g)<}IO#!Bcz{pg=9pbWMCx~nZ84jnX#V_~zJZlb2`5Mt^umhGVT^y7b)`(Fw z;)NqGa}mz_3-EfEQ)9a^Ec&gCUi13Q3H*I*I(X+PJER%+%uGa<{0Q&yy}7m~Clt048$8!<@1y|_zMh>^*RI&}=%XdUFspOLTBtv3BstI~ zA6gbG4DU&OmPJ+GRp?&}%?lV|1wr8=QU1Ye18%Y7(Q*PkO{)#j>nlBi8mx1>qbHDy z>${X>TI~DXMZJ>j#?Z$NIa+Ya?)r%Apd-5%3wR|<{T-MbcQl_T5J*lSF~?+(>8->* zKLRzN_v&%g(H6D~g3ij$zr=b5%`)5c2208*tpS-05~?Xvs2+ccGDh43X_Z+Ji`M;3 zdO2r3Szhp924fFZ;>RTr1*_OidOFf7eap?u$hI=f=@Tbua;KsIDg|3K_1Yb8N7d6A zqX{JMaMY{L&1X%dFe{`_()k%YWQrCHcfpjnADj zUTSR{dKj@ppXq%hD3xUaq(0%26mB7wxm+7YkpN-8XG0kqT_*Q1aFu44bnH^5;kyhh z-AIsPDtA!^Tc%){J>OKE;;bLwxo4&>tMi&$z-0on8V<@gwma4ZYWZx}xj*kBQ_Hmp z`xRoc9arXUMZ5%?7qI=Xxv&Bj^{{i|u{?2_$I;3Qq8QAVOi&KiX4Xi|Ssakbi&!<> zgm0<%sZ&yGS86vRs*==Im)pW^MB%bpzD&4Iv{GiZt`}7EI`QJgb~zaP@M^6lz;=nb zed(PquvM`6L(+3%t3$by!P}FNCLxYrSw4q2AA5xdHTiI@?Cpjg7r7Yd@1XdvTJvkJ z%*w&`#|Vh^561bwddBnT^7>mX{g?9kw_KI=A9B?XTc_i0J>qZWHO8N9UcklwO9H&^ zk918noF8q~o|PV(F)_U^95}H!l1uULE!ZIV0Qh-E)X{ar%YwjbkCSVM;9~HmD2R_s zi{4*G(OxkO)FxM&FL^Nq_G(n}90dK#fN)3M{I-93{Cw)Z*qUG_+Ok#`VrSIw z?gb_t27o5c(k;a(WaeXoY#1JlfJaDWUq<3lFr5?55YF(d( zz7-$)b#x;~_*-J+(UXGac^WpIxo`c`*Q6fh)Y-}+Df!sbn;!e5&f+?5R}*=|uMF_` zit69k3V<-5_?W?gJMIY@b(Bz__?EWtQZk9-7^7G)2)5U%DrD>_6da0%4_YOdT2c%j z#%Mdu%IAm%Kn_m|xZoi8_2xiP4cf_@5Do{N^)h@g`;r+=>LzeTR6Na46^WFxX?`d@ zUZ!vCEkV0afIx<}d#=^kS(;ETHKR{rK*J_RK;Eo=B-o>|#7IZXVm<^I%6C=H`iL{0 z@3xh~sC#~imk57fs@-^60!m$L|wDsq10L%bN>s+q-F3Jrk&wBP0DheSy1?y|L z@b)$9oEzhtW7M0&{m75bm^w!}yGTeA2cmJsuZNyK!c=o3S-CmmIQOOk;+RL#MpH}3 zB{q+YhaUFy*){he8N2{v{Ws{>-b%Wby$Fj4w(k!XmOX6Wq0yzx)r}{nND)0CyN=j8 zxc#(j*n)>w_b2qU@lK#3-`7@0g>WJ%R8`?lgwh*ub_JxzuS*gfH8y%Y+dzhM)7ABf z%7+b_NDe7&&)LfZPFV=VAkolbB2+;W22A2o&aTe$3CQe>5HnC}=u3%~GLU+9;H$>J^MO|Q8+Rt_3mm&ra!48L3>dL@CQmnX2$$vx@a_&P7 z6IC=T63%v6(CGu&gOP0^DO0*+k)D9G31NdVrmbjw&0HssCL>uR!zZ)M-h_gHAAk(k z%L74PGRjfQ0J+ssTuVS+9(&3u6Z+;FWMQPH8!)R2ex(e~6J!N5OsshfYVDKqKv&AQ z)!bVs#Wute<;FZpy4DJXIJbWx$!ITWi2&FR8xgzhp-3T_;?x|DQ2_OolU>h}N_X8u2xpG_{IJwHyP_05zMGY!BimxjD$h-Cx&nc5o*+cTNOE$F8i%Ob zM*BV7G%KNW9uCO>SS^cM$@Y}v#}RPd#j}qsYd4h9$$)3rj5?Nk_P($iG%J% z*I?SSf#6E2KHxH$kkc~T3n1Ryq}doOM~wIau0+FtCv@{=sHBO2Ng|4M&5n#u9m)eF z*(NqCe@wMc2lq1r9^5&ht;H#_E)Wh3E>E#3RSyaGua=4MY4)pwmR1UZdLhOlu^a1aF-u>~fl za4mJK*aG0Cer+QD`s1YL)lFB`b$TAC{YiRFJ%L@Ga@Iw)BLret%VLCSP6bV`P9{sx z_(7Gy{8?l)JF12cnavZA*X)_(dkl__9QbLRekZH-Q>$dhUU;Rt`8|#Q&4FCbQd+Kt z)qVC4=U1tKo#<0#O+@<7RTc{+C*1rw<8+;M(~GYMDz(e~l0Y(2(9Pa3G~YHxLxWKu zS(h>Nm%kL`1Xz~VoEMLgv(mA{?HI;_>@?F(kx4Hpi&^KD%lR28rx3nJ@2-isCFSvi z?1{Kom&o_lNJhhwwECptl;v|}C(vi{qUaoG49j0#y^GUtm zVo6zhQxux~D>f~9u%fR<4Rj;6qa<-+n{#%3de6?IwT^pDHt2$gli?&gjvbEsCwP^V zR3FY8R7cydEdt}KL@^zKo14|mmWIt98}p;dBG$>pacwPDyrgwO6W1+1WT=*HoTc9cMHmTVzJ7rDhX{Z59VC`#vXT z%q+N(dAmCW806F!Q2k5`L5xzOy$?0V3FCYs7vG#N=nzzpHbnaMRPeFt5=@r%OwuFS zko82#S}g~YWdP6Gh1Wv-B`571;$Dm17UI|k0N2dO1&ym5U-E3m7R6HRt{X5Iyb)O? zfQT^&LdJ}wr4pEIwfSOCGd+QFc;M<&K|7jSgiurWDSMJ2?fI0yrnV>!^h*q#_8l+w zi^q(`YT9jyy=YY}C9@{w5G}g1c9wu7pJCNK|>&@*zqiL%n+t0 z_p2uD2x%WKb@_kL$n&!&!H`dlzR%YKjqv5lZ}T4z(SK}y%;MeJeP}W(3Z_g?y?Q$% zI2zK`fo$lH6atK>KIFmxzTx1Q3k4kEB<7GrlOwDV3fH$AgD}XCU0{NMDo4a6MgU zAP_)ax+oe9MA4p{>e!)&>ztBbtOaFbcoE%14^mQd`8Ge^9`N-bZ#5FwCBYtodW$9p28C3=5-0!UuxmRcU!2Y+4adCNPVSwVzPU!W9l|Uf zS?#FoYt1nZ>4JVU`8}G9WdP>fbrb;qig=OyWusudS6~o?L$#UhG2e}P|+ zg!G_2MbOAF2B=0r%QO3C)c1C=X0bYGU7wOk-T4xcgcA5edb1Urr1S`pO-|J3kqPxdL*0AO@?p=&+PkWNnw==j8MdrE=$NtN9GUs;=_EE=Uq3il$ zol%XkAd(?#7&*fvc)cUd#O!0;j1`=iIAsAI73&|iEF_IZN^jk4J_R6VU3tpKlTJUJ z2`vO0ZLu2x3>};r867q4cvRYXP**9_?KqG>Jq-iqP3xA&Y3jR17z)FaY34i_%lrDY zmE4b+uld|HxAO|Pq3VV?VWosahch?{I$3SRFIjbUwSbwE6{K%auF)!jAueIu`loMg z`R5B#;5MT8qC$GPRJ zb{)+`7z?PKp!VkoomUzdSePEN66&<>`QpF@3{tfm3EGTA5_dur$j;n? z6qu(!VK;o1Dabq95y$sDJ|B5xE<_fY;Txnn%yN$J6Lw(zaBrNoV-!K<%4Qy+&7dM7 zBxD^&vJd^iV6An`2_70?U;!gpKbbj(JdX#4yh9kXQWPm&35|Z14W?$RD1B{Zakmyc zZTta8opP3-nTAvinkELeoKb+G($%Z(Z|@n2)-+}rOv}Rrkqp6#chbWnBLjv-S>8_X zn<=KVV2)eM9BtUWbLPm`hRJSSA6p%c=qSa}C}BY`QMLdeijj;4G~D#>+;TaEfs#uVrm)n;WjwOl7{Auw%qVE9= zTR=Nfr`BDl9T;9cnE=BuLt`z5T8_7zidmCvBJ=3##lCYYZDE2Y-GsL?AJsk%ysA%l zmhnvKV=cE|rE+&h81G3B9piyGA3;QTrXZg`bf+3yzwU$8JIUPG=lF@;S5)cDiSiZB zTr&Y={((Mhwd z3Oufz<9S}%=Nf7QvNCDm#A3Z6vWp!yYQhU|@D(LfDD`4fE1G^WHH{u49)vdF+&Y7 zNx1G$Y_jTw?6BF_EIodC%u&3Xk=H&g1wQAgZpog|&&T<}fUcf{GHtkr=G&_W(~m5H zJRmp??GV+g8XeeML%VnmY>%x~rWc4yI3Ad*hikr2+O@o@pOKW(F+df$U~xyaWeJ%R z-|xph{V2D)fe6JiG6XJ3<2EN{mh&Its^dQF;s+$OY;^I81MKq_>XjcFodFSu=kvR9 zkyeoZ8A`l}1o9ft<1k!62w_Nmf^K4xwHbcNd0>zV(uC0oPZh}f_2heZ{0Xn%yafhO z=+vivFb^V3eyZe&bI2|Za>Lh0iH{JeJGNvx6sxwNClU+psgD@bT+S%}>5gxvp{HUS1?rR%j z!Yx(2LqN;;Sfe6Q8Z5zlC4@qQ4jG_dc+DpT%WD=(PI_!~pzz`X@8>m8;NcN_yUHt^ zPdp&>4!?*JUTcbznI9Is`Te+LxKQ5YAi^s=_a|-HpF~60lk#l)HozI5nu8^CKpu=4 zlXBPEspJ0?ZvMucSdP$;Epf2r6t)^eXo9(|;ir+_OF}A}3ZwKGKD8mOVk8Ak(M{0N z3U{z+um>uWz8w*+jlh)Hqg%zO^2P9{ZgH_pg2U+dn3wjc7~#=gce})z(k<8%n3mDq zY+ZDtf@kL#$lv!pXJS|d_nva zO?02-mQxkpxGz2n21djFXak;Q^B{Vp>W#oFjfG^47LIh8=jkdb78;#?N@Zr>DoCtHzsfn%2kN2YppxK&gQbzG)IPrQ(d%anf2pVb~Go5N3fcwEt zL;kuVgGGl+9ei!L=EYRr-RV+G5W$c4fD48H>%`|4lvxwqLQNArb2IgbwVarru)5y8 z1K7rx`0{oqp79pcJGK3&UVW3)kD3UuFuLVK-06%n`W367N0LO|#)T1%gvKsS`qY5xw+{=#;@1WPPze`=$${UPH1k7=X+ zm(S(To?^B?X089oY{SgVOvm}L_36Wq^qa4knS+In`9p5c!ou*IPW~UQCuR6=+ri&h zfZ6^$GyT6goPT}ze{nc7axi{4lKT{!lS4*0w9|6_|5-G}Img@u!j^CJYF zg^`o)BQx+H9gyYMG5$7!ob8X^`=8mvFPiZWBFNQGY(Iv=@8=zU6wic!2AU|Myii{R z(gqT92ABI*_-6YAK7EmvM#5E)YJR)pKGs+GmI2cjhB_?Fa~;*ey&m42g}B?v%>M2- zC~D8vVrvf4gu;#IfLU<_*PPa-GmfSPgNRPc&Rcqba0;e?5-1o#gd^I%!(kJUi23Yt zExSKw`bDJ(X00ETeup+SZ$mUkZ8i_;!{K~HUi;JaYg4+X&zNPX*q0jj%|H&874KvK z!}Xa;ZCfC+ebDGn3J{U9`jCT!?fBVo@#xMLB9?$~W-63QPoQLj{xNxXq!S}k4zZE- z3XF0C?&Jm>2aa643|p z0tW9Xr4fL6v~4})8+C42wBujg)yE`Ztpqd#t6&bF;o4X*U~PB0kYAY@R?b6%R+rDF z6gUm28*}ScP#D&M`=w%o)^iA_XsncRHh-ZVgHn_T#O4U6-j3)23!?F9^v#1YUnEGI zz&CDEQQ`ctm5=+7lMGE^;xy^|#(ML89;Z+1jX<7=MNb$a0S8cWubGBQ0ENW|^qasI z<%J|9cwashNw69(L&W5Fg@Sm7PT~_T3WMa?bqRIHqSYRe?Rbag`NF{9StB)H)Xv>BM~&|g_C~Dt92QIVbVBy< zF~BUitX4}K6clJ}3F%n5MNx2}F-Lf!cTIP3ppeFY<-$;Aa9EjI@Tm^q4TiK@2futk zVFCUe?7zRVa_R!}1Q-HL3dDbE2%)3BPDfwi?fH7WHb<+eoAv(mHg;XOK(9vLGGOG? ztggl+gVrLnb_A+iT0i(b?whDkWlX3%|Lrmy)jHMf_VfO$?a15^&)81Mq!53FtX?*L z%#yXjkwNTm-IKLxm8yE{@jUavImadP1lJ@n;!frUj99^rlbB?hG3udqEd-B--qfPfnZ;p+T{0ffZJ; zY~JBOiFc$c*-g2qM42-Js1DLl*`AJNcXHb#(Jgl7RXNRope zrD+H2M#AuX?dGe52b#Uga_Ygnl}U5{i_~&$vn1}x^1ZfcaFVt3j&t^j>5gN^4-gh- z%Lua26A6^S>Bl0^NPke69{Wz*xT<#&F1ThL zki9+}01oe(A?!+kz+U#&R`p(4Z5A~2)NiJWDHr%LFBb%{1l^;)x4VoE0wJJ19F?r2 zqBONOsh-%@Cmd^)!*#sHCF-ycPALtP`*!6z&Dp0A<@7^BM!oe1=#TWgrseQz0%Nt z(+D}IrvCIDuCN%a;=r#VMGO7*(+sVRsP}iMDrkOFv%Tiq)m7ZF2e7zj&}MU9q=MES zd}9of=0We{(owHrsx!pJu>3KuW&6FG_L~j(SGoReQ^~Kg_7@H1$M(YC3*G-}Jn}z& z;9m#(R}JN_0{PcTFWcXC+}QtN$1PG_#xb7_p>5*Fq`gj^38^o@-1>HJaD3@E8M3C+ zb3x#0HDdvFpPgmBEHntPNtpf}$`k){FN-#>Z?2pO0b7oi?ucTxL%xid~3`i6kL3nGQ`qAsdnQtB%(ZN2acK5lt-n<^qTpoeC+@t635O_nU3F@{wTsqZjeNchQd3UcGKr){G7{ia;$xU3YCd^oL2WYK$fI32ON)urp)%4ViMV^%$8k44Dg}vM=NRR;?#u43) zcjPzP2u6@Pd$9nj6-YbdNAPCB21$f&_~#hGt0JM@lk`lW>b0T1GTFpBm%w!Dq>QKxK15!Ee6l6w1YJ- zTlz|syCQ0S00wL1Vs{l*BSv})5L#p66s^_M?AYGYNwIu$!jjQ$iRG!+Yhn5-?9h@n zxv8Z?^bv4SefC2Bt!3L3IWb}z4MJ4@JJz&vT$C23aPgb=zhgFnniKkjn3QGJU%!m zC2n{CI*~Fi7z|ilV~~YO`pVEaH{5hl!6UF+QwfC|Z3k|2=VVt+f`ow9XC+IK))V6UyJ^*OpLSpb{kU|>l9W1nKt0+y;T^m($EW- zqAfO_0}xzuQ5{}Nil%@!X+Px!CUr%#Aiv&}&NP`!0ZCY#tb6Ig>pp>0QQjwZ6iBFt z%2K&_ZS(;rU;Ynu?--qFx@`@|uGp&Bwr$(C?TT%y!irO|ZM%Yst%_}b>FV95tM}>i zp8o!w{VNz5cb@AR$(q-kYtFS8gHkvd$pUt*QH-h`-VT)%#|g_5WaBh$=_DE$km6D?hpeqLM!8e88dwEBtyD=!M`ba9;rwg|) z{aO6~iU+K}Qr7?S)U*Dy2>lZdrTNaGkl)kOY-G1pfGEAKLqJ|;wJzFI1_xW#aMB+^ zKFb7ZB&!6eahveV(BS^(6ReYZl*DXw}f0d9rCi*L2DG{~Bo;5yo@=cT+RR{?<>*!%_ z;OBscTz9e|Oy)IV<={SQ3Xcxq%oa~&z8Z>%5Gq*{&|Ie<`l%rLYoU^h82V?*+ARCu znr;pv0=D(cYGz2iXf`WLM+upvr4qZ(EvD}73pI#4T7k4+Ys(}qcJW)sO-LWt01;t$ zI&{(@KH?VKZ@&L0_68wIQ{o23Al&0{$5O>dLATw}(}@C&(B+D38XauAE4L^sxNP>N zfEcD#)&N}gnUeWkSTSkP z$OI-w$7JkQpw-HG_lp|s7g!q{0unmPX%g2_j@XOVgF!gLO?*`SHCYd`wlCgzTr~G8 zYHQwFuqOjO(3rrR`2OEq=5Q6V`-MwuIlynC7LFCO;g1m99n`kG4(L~as*t|3dADez zPl!bd8a(yiU-NJlOHZ)r>!b_ZgfYo>oSq`H&8ONTuqJn#+NthE5XSF@Z+Y^=+0PV- zWW!p9U^E2g_ORb%52qPrr3DdjI7jf@Tw2Q_vzRwTu+Oig`Y`=zCO<#4kq!r2wT{J zM~DoR-Ka1hRpudQX}70!e0oTD3sPx6$dv5l;dD{bXETv%mSR{1bZOn@A6ZSXG_|2e zt?8=G?lPWC&4~?o^otc9Yh1!X6^N*g4H)1XLS%h92|MzQ1sx>RG<60Oz^z>*HR2k% zCA{3R^R(CXfN2CcMrP)s&&rMkR(T3~zFy-XGr~6@@boU21`A`fbgo;7qsw|0Z8_@< zGy{{zr378(?bPomK0PmU_akU4?kNp{N7`o9LS;#99&lP)M$8_IF?j82)=&$0>~$kY z(21}EO6jk0VJ$ZDL6Hv>J>;GTL6jv97nd+ZaiyzNiJ+1`Jl33gqG5LytcsAwIh#5A z@p3118?jocesGADBmDWrt&)?Blsg>k@rz(Vq0rWfIc*<@N`=H|nWj~}1Bw=lai-Fs zhzVN`CjQA|O&*6sj$fF>1DCN;+u)^jL$N*F9)M5EY#Z4XNc?3-cbC#@Nxlo5^QV*< zy#s-bL8P2c-EmLN(u!X^oe&{%2f<*-9h+^~J!e9*=_?I!OEV)x z3h#XnFg5j53Qd+veO^J;@sj2Kj*R>)r#}&dk?vOn`BP2%KTR@z@s9q4i@zWUJ^PAy6=za6B=`kP$$7n$*Y8l=ej2YLHtkmBDz@?QavKW8&CvM|xGze|n(UAtucgZlmQ zP#YUtr}ue}&IV5IcE;}-qPdMF6s>}>p%b1a-hXMA@9PqOTc7wog5>9XMkXd!8pijp z|CxIE^C*9-Ub6oBzWs^3KUL*_fV`^9(KBN3UU#bBdwF~VKRtT$Zv{2usg$9I`hok$ z?y@n?4QxkdhMIMHmwJg??J+=@r$iQnwJsMuIw@zK9uE2f_LE-o4%mxbZd9NA3wWJ* zgIYJ7k+oLH^ssXuVBhBEzKu2+l@jhhg2ftHi=XGz;EX2 z(m}|ebRr8^w(u_)TB6SSToZrEygpqrr%b>N`$EN~$Snx91HIgi^i@th2 zUhZ?C3*7$5r$zT{Y3Jgf!OW!!R*i5OII_TaI)D;$Of^>ar%gYmN#~}&%fgr0tenRY zx<4oDj}eW*=)oaLQ)xrv5!s;jz|-l|L~}bc)RO^8)E6r6F*4tF*DM@uvg!$=r5|9@ zHQ`R6ZB&0m4>Xgb-%50l5rCC2)S(~qnL5*jc`PRyxWhWWySHzRc|zm@L5}OubASU+ z%E=V(4nxay^ljS%_6yt}!X(C0ik}A_`d$Sq!_99s(hwFZ{L<;(YO79$57GwN;Vsxz zhWq4~mKRtW$G%?cJM0@W-BQbI(woM1Z#pUyY9pM5-Qc$Th+@NSC@Wvv)X!YaN1;zE zxo>-=h13mLeKK*+`&723jluZ^pE|TQS)qJsJWFfCgz4MqTxy(t6V;4+gS&Heg#Mt zL2~Xyn|bz0YSAQX=YzQITT~`gYu0H+DqOkCP_>tNw?(h+2ZRyxSpQ0j=JhCYrx)qjnR`7lMb~7%^ z#6mMOvd`LYa?Gfs9LGg1%EL{ogC~%ttoI2^`~bE9dwAIh>FXtU*R3|s-X>6(@SMP) z7*vC8{`pm$pxv`KL@gdq)jR=srOY*K#FQZ^D2YkVh1?+(3V|y{D1G7@B=mCyC~Fu? zrNAAmvxm82Tf(<+sLx52#iDyeDQ-J-x}bRiw?(P>tu^yo2eS9jsSY$W7YhD@!B3V# zo6ws6tC#1-lIqvhJkHBYur~x@_3ZE10bn8zScApxZQFMkZ10oMT@YCrW#UG8ECn5j zRNpH8az*=eL-8}>>*(ZQtZ)6NV#WH0V8hPF_~&=o{)oc zJM6#YtDoojclqjPh5QTHFtPnfx_)W-u>D42{y_wITy6cgmXG({djuE~zV;bk!YG8h z%$(CnZOUo9A*2PaM2b{^Y81a<%;z;a{#Y))91J)Z1Pn258i&`rEyi`{B@(cIedSG( zDWoiQ)z#~Lj2sgXjrff0rpfIOkK4m`kbzB)8#7FK5x3lWl`tUbx@htOtzKt9-EZFC zSZ`q0mTP=zKTDS$qy9KgskXr{f(l>DaBLtRJgy7ElaFEAxk_NjptS=jr<;x?v2XH-V0#2p>sC;Y z2|qTep9K!PlPB=y#VVSIm{3EaoRExf0KFInl(^^Bxso?WNGv0^%iEUMD#XR-8w+E2 zG68@6weCnDt`-F%V6M(hAB!jnRzNZHQ1}l}f2oDFcn_cA8EbGpDEy82 z#d%w^Dyy}ZfX9NsQ9sW0+F)94Y=-E&*AO$cR;X83zCk9Lf$bjkgSX&f=Lwn{gF6RVpO3j;nQj^U;Wy8%1x8jzoR=|JeTeat?vLO$K9FCwjJnB4Y|16Nzl%SRI^DS(&!!Sk?oebm_nP* zGR3V2H9!RF9OvKbz$f9^$RvlMiosAq*d%4=qrXpokhoAdF(VOqGX;ZoeU}ufAPV1P z>hy@!AlMp*`%#xiI%aKS*Qg0U&2*OVvO;4`HlFZB0pLHJV*Y zrcE~iPHE|} z(A>B=E*0v;#sOm%+lWIoOz@QYas^i5@E${*}5a6Or^F#rfPvc^fCHT#NMU$HlgO4`0>-{^kzp6!Lq)w;BXpWsU9ZoCuh= z(8N=BbX{{Trqu4wm~=ZuUnJQlwHte-3_fCbku|W;j(r_X0XRZVCc+dltR0pn!1#RJ z7=>6j*_n_F)&T%A)C+tXbDPS}}s zA(L_~b+UU=M`Y8V(mq!4d|VqLaOTecv<@VgTrw#Ca;B@+i`x2kbn0ih|4FBqSbm{X zY=8P4{!{4GPdNKGg!_{e{)%w_;!YywR!+ta@ASY*-^p0W*wEI<81LPI@~=ySTgJG? z`{4E_1fM(IZc*^_X##QyB|jdf<{dlXr5}2YUQOJ{bwZVk34P4O%{H%(us8Mjb*(Hw zT86ZGXE4mY**_u#r(@7SgwGe7c+ExRb+oynf7`GqA4xXI%`4Cvao318pUp;qyt?*L zXggFd%|x9;q_wkc%DSs>g# zhzUsEN9E;`Jr^W>4uAH`WCQ~sQ+W^gS1b>3V2plj?NehLja_t4v3s}!;C3+Obl&cgU=M48K z-woJ%HM6pSJt8lfDgpIeSoXo{iF{OY4Cv&nvpOj?=tkQRj@_w@A}Eurt7{A0zKpVI zzRzDL3*!NgD!EI1>v2+Z3cuB?IXe_3E4Hu$uaPLdJ(xV5Qs{9HaqiKpqnXsY6~Lzf zrCVTCQ7E$lvZ+!>VNUZ4&^>DlKa9b6yp&h@)IZU$&&F~vg+%G(uM1d?! z^wT8ZFl$quUBhc`{GqP8fumH60)r^bmP5a>;pt$qTGx=CcL+yX8`O8W&!n0_b?E3lmQoOw!@;9t#b=#n zaL$e=gtC<<(e3Gda77+P9|K9p&xQvS=A-i+4PmGXdBmJ;XvRzdwJ4S22p**PEFiuO z(9mDWzaKA2^#wprYM2O@-HdO55E9Y&?bH1&UG4@9_RV%bZKprqRLl!_3D6XDK32945Zo`?sP;#Sz!Z@O zIpOZa-PJDg>BqSiEb$pMa_~~Xt%BME7&vGJ3`1Lg0+}BN&c9){t8lG6qB4{Eg4!%W zDYEN`$zo2O~8E~RvM#1DTkv_)xy*>uOTWw;DF&>_0m@&pVSUUqia;U5l04Y2i zknI;BswwPJ0HS~t`=*WZ8e2i8VmCyj1*5pfYr9s74SGsS**hTP_8>LbZJh$9Q z&(fKaSb&l>@UbixP0RON$&)Jln3^CbpOvLm8@#TX+rLX2${jrxSNNN1y(y-7m{w?+ zPGM@cl0eYU=P*^AD1M_joBNz%tR^&xN`+`^0`5K-TI%q5nc;e|A>XT7`EuN_a*W$8 z>*iZ$(0Ax=&u?RnEVAI~o#i{weqL|ShE*6JF$+_1FX49KDBez18dB}|uf$0V;$RE} z13Vor4D9_A(32H#f5Z;LC6EQNhT`WgqzXwcrD&SOvF;ZjDRN090ZyuDlNt*+Aq$l$xZZ?Yu5t^$M8rC zwT{Vd={n(4;EIhFqY4_>%V)TYBZF0ok?2giR2a%H!grnJB@JeSr33JY03payS*WpzH zIPJi`@2mz$%bVzYMs%c~Spu3%&dv4)*NRM~=wNYubdN)iR4r2fjtx}yM z>oVipkYU4UyztQ5mvW0nD*YGyi&90?0@Dga9gn^j{nO9ZM^hmxP~Sfn@qM_)>!B2= zDwUF%!;``1)2}Ba|0sLvEhlYrV@H&1H~R%H)7sc^AehTUjW3TnbqLjXJ8~QZl^blH zvJBai?h|!fU5vJF7nEw*S-H|FU)_n`a&=0Ob{06SsYlg1`Wg7CHVStLXHF_TptE;m z*4Mgr#2ba@f#Ji3nSJqFR3cf4yA5OKA{1Zy^lTAs7tI0lOv^>MAHEzROL-oLYYP$$ zFQ>)sax;fc*qxzO8?n{$Tm%d4cJJmg-LQ2HbthfzIew)+BJn9>RxO~hYqv5T&@lnf z{H!xr6BX*r`4L~%)s``stN7#tDjopztkDogwS?X}X9SDnQiUx|;sCI8L4rX8sn9v~ zUAtG9Ggy4Eh{W^;rq(s(E9+hiSK>aL@Hnah#W1$AgvzT0jb5};%1~zYo2gl{r~H+i z2L1_K*DH!ia23^0A^V0-AIPsR5fk{}WQ9?MuQ*)PzUhW}73dFLbkp~qNLdb~mwv9r z+w`DfQKOc+~+#96&&jnhsSKF4f?H9 za55*2(Km8DF4$O^7Imm}Q2W$buUBw;)Qa=Jz0Cb#;$&c;WBWzm_)`M@kGahK6r+FL z2*mJTTL*s8oc~tHX8YHug+GPt|4AEX`&Bmnf4O?u{^f)H^O20q?{f{`hdTUsZJg~7 zk?EJ$`A@WQMg}$-*55{YziZ;}%eC+r-}eMC|5NKS)6b*)tv1g7hrIRM>-jHjoc%ZP z=O4*D+P`(Bz20Yf8v?7r@V+mZtk%|a+HXM}{!QeG9Ai7Y-V}2{vs&<3&mmvTMJDa{ z#pm~(Yx~}QcOHLtF4hPwgZ>Kiq?-X1pA@mYHV_t@7$ij2(#Tk&-qxm-(J3DY?cna^ z^Z}!YKxT$13@Lt^DGJ??fH;Nt;d#qT=j3!Ky^v;Dcy6Dj6(8_noasa&xP~M{(fc+? z>$T3!tNA`~=P8t>ZWK2JQrhZKmQj!5T2H(O2~*gg{xk<#!Qz6B1gQr_nlNZxi`|J{ zn#|p@Wn#q{FfVt|;Tr))9Jw+%7W${K#AVC0@M}u2=rNR=r%6V8G2|)ip7U4knGkM@Z*>kLywjhwtzA3}3(2izzMS%(lRiNM7b( zd}p%dQZz3?#iLj+FEJI4M5I8vR-||$8CjjCY+R|=X)jhaHJU$N8MZg%$XIprc1b{A zgr|$oiEuL?v6jAW_0sd$7!I#u;qd6~Jj_v_=PQR_Kf2I=l-==0;n zEHE2;42h)As?A+d6A4?+QQP?WHqH9Zk!buk!mz-&Y+YEH>3BbdEhg1K1Y`3aHL7T> zZgTe!#C?PBewK`ML%=(J-e2Oj%qbo_?#-~;N|qZ)iVx?tXJ_+k)2FYk^tN@<3#Zsv zGHp`wHHO6+78n%|lC7{3cFSq(Asj=B@o_wps$#IQ8f@gs4!h_?tDHL4$cf%Mb^?k?!KxpbSAA;V%E&-rlRKD~4l zqrzk{fE_(0P?!jctpMW#9$TJGLsYHWZ7|uxsyAl?45h+ljT!XP9fzEg-M+QxvT_3u zPc_-1Wp{Szw`V^g-NjO`5oOdP@AUNM&pu7lqwPnWb72cKSozOjK4&SrjYwXce#%Fkcp^#n*IxllYNcPE5`XL$e7|Z&8e}~g&imt;nIyCH}{DI z+~%uGzcRN??vv260&|w4`42T;zRucF$lvWU7coLZZ1q|`kKNc@g%0%NNGsyUVX)qe zc}XbYedw28CRfBc;ZgRJR9rxsRh)UZt)$z}+Fx=GL&?(bontRp`2P?;py*btIQO2Esa`Og&~0nv%Qd4iZBIDX69M*m!d4HqF!=%$ zT7P_5U~J`KNv{%BnM*kwZCWbS+1o&o6_zNR*AAyt)GZe60myeQ=M6G;BUN66ot?T1!RMxA<)xFad65U5Ki)q3; zrU`$k+P7h($bn?FuaqkL!wU6-8Lot_(0g5JXjX7}u^vruC16_ejzp6=mC$}l5pGvY zql{edf4Gtfbf|jLjNQ1y8~GI@h;ejc`m`i{qC()a-w9HJEKGsWWMq9A^Yl=q=C@Ug zyaw-LKPowIeGvVqM;QeiZUarMY1n*d0H{4L5f3U3CK{fwU|L^**3;t)Kmt1hoeE|v zx=?Gj!~dg=Uay?4zfy;4(NWp;8$y2)pyGfd@sh;ilh4u71PF=&*MRYdL3uv#Qj!BQ zPfDFn8)AoAm#BULesx@DLWIF6YO<(UKV-yWEj-wwRUAu8mP~Eoo~q|C0dV}Ol8QCG z1AQhfX(y4J`C7pt)=|LhQ$fgy`EW^jDyahoiJ-e+s0(f(HQz`X;5k)`~FD zFc1OR6iMZD{erqg4YW$~rb&RDQS^G)aG05z^mOgzllA4jSyxVp|-kg!anro z_NDCkC^!%pU45~}-(VDj-iKdI;vdg2>K#k0W>R#G>!<7?UG(4sC0k36N2Z>+C3iw) z&vP4-+q{FK_^i4wJcn7~6=HdJYIG$k8(XMjg^N{PE8)HnW80;Eh%FTlu^MfWtvaxs zHf17)pFG&1fje%fy>JjX3Nxqfkn;r-;v&I6TAz6IgN`OM5F=0={|!RXv@V3*n8aM$ zxKAqA7guId_1ttG?Y6uQ66wTH>$B{sV-)QoWb3eemMk1 ziA~ZTQI|TG3>rOmH4XM2+JU`GnEL~U2kt9fikv?gXlL4^whr!n zgs(O5jC2@z{mbpi9eZ3v$DDTq(cYX!a?R^3U=(ck+;e-H4Z8r~h$tS(eFdax z*t5W*MS>CAu^ZIB2ZAvMlu@)c3bZ8C>g$7za(-jNCwB}2LPV(T=?p$UfyP>nsuRJY zbLN}=QQv~55hgxZrnOeX$dIqv_{z-F=7B97UMhfyKF=z}vcTvADeLPQ8VurJm(j6?vwpTi znzYHM3?H=QNA%C*JSeetSvz zMuBs+REEts1~FL9#h+)^G&%G|GlN!oaN7Sh-+}+@rvvcEkBRFqMJw(nTQm3G%4|-G z8fE6VlZ>m$OkWj|Wj~N1$y_Uh>+;c=RgPvdG$)e8=snKF9w4}aImv$kWXxVR=8^as z7gls5{@Iq->v{K#m)HAo+4bXx4W&7g=@+cJZzN$y*>!j;1W-l2mBT0dd~lL2OC$n{>_o{daBzU^8udG zGiAZxW7;(+4hxg;jJ5F0yH-IYKs`DonS4BdMmCIUJ{--dXSYFsBEEXDiId$*=**fE z+GTtA8o?we&eDAJ_}lg|ztlcyUVheunTX+G&M-1TwE6a8Jmgw2OB_-9X*Ek>2z^X# zqy6QG^=aW3-!&BXU>?$-uko5p!afVRZ9D#Zp$bwl9eEMDq_(sq*?N~Ed5WtOxMApn zHjlEvdI}&_Y`OF*;Rpi2PKr@DxB_mG#eEv$ZiO|%XoeGX9MYqn^t)^WW&I2_V*X77 z3P`f|gc@l?l~$B7@t*S94&sbTruze^Cdp`KCUNSi?iwwqI_5FKOU99TBAjkHQ{MWu z#?fOnLm#JM^7)l1Pg^4m4+B%-%i;CNN^`-MMWVcPZM5M)Lc8l<@EY3EySZ5Tk4;ti+^=75aF zC>BhS@4H@J-6uaHj1g0X2zDl{TRl1W$eH< z;bhUy*hslXXp0w+Lg`1>g~8mcnKaO!GI^dI6jDIzOxzhHBMO}r)_{^^zU=K-RI*8K zqa%rmlyGunF|X8;odKPK-EAmKWqwr};;!V~zy)>`|EiH2^g-7k!Fg>Xt850oO2coj ztK|bzh!IXeW2n-%NC(`K-m572A(LoZEf+`zM&4uCCAtc}a!td*Z;mMq6wr%ReD08+ z>dN*|kP(SnJmVG!=quRb2B(dmFE97eFB_x}@ms$D9Wf{lRdnzgp*6Aldjl*uSk#`3 zeqft}I~}Aa$;FexO*Tw7gB_sYND}#D?N^0Un=zqGQ&TZDS;R*|mJ+>#FzTUJh0q3l==4 zgUw5%4$==NizS0^6QnMO>QXI%1v~Z3D|*|1W2oK<*?o_VEit>>eo5ytbUawJDK3Cq z)n*X77&FKMrCn!YrcddB+o%mSS<<^zwm^_tdOV!UgGs!`@=?qHc2JDkozyK&XIwE9 zDArW9Hl38@<9=$9YRtlM8p|9TP@Gz=%#O6i!eKn6PQH8RF)0bI*#*=c<@))CY;gV3 zq0DCVF1)BAF{f)swXs6}NwvDTW^Qduu~f66wErObPJJ}njc1iJC;={lyDhY1WVA0w z&&e*@z^C9V&m>eG@bCOyc@xjBlCF7*`7X=LLG9#H?$|?5GZlAwY@NKquDnWC{FbXh zGRoitfFO!1v*RS|3_6P;6h6Dob&Z%_%hdMU7Q>554r3Y8k3~k{;%9H0|X>!6X=5YuQ;gPpucR4Izn%2n>4$0Ru7I*tMH9c{*7G&D-35 z+^x^Dc+zT*2@LPd8Idg8j{EyAHV6~9;IoiH0(hX(V83q$l z*SAVMo1=+Ck$T|c1wpbCJX3&hH45gPc7eWqm+hxVdkJb437KS1bViFE`r^5WWLppx zuP;}0!pvnzSW*~6DbDQxC;bK9(PXkTLOCVSh2Ea*VhJN0F)Ya;x#f^ie{x+Y>dT;Z z&a&{Re+TP$vSa$9uyGp`V%yYda)*~TZA1IvseM#yQOX?)PBeFrUFmLMEW8wRs@4HQ z0vFFx?oh;u%XhkfR`?KJ!YzD=R#FmirsPOLcz-%xr8NHhg^3TRQ1qc*^cV?V^?t=v z<8(n{B4D0cwn4%=Mkc2#7E`&alQal9Wipg^=+zXNAM?f%_n)`-;C#A&xPC-EzMm&3 z7Sh(P*>;@r7%DBzap1=;l?H_34+@(dx_zIUj%j>)B}oLn-d?N(IGtpJ3kd_M&t3ZT z0{x1N5c#+G{fBd&p5<2$>MzFs|CAQZ`>d6J8$rnMbG_;B;?Vy)zQF!3Xa1l4l>ebc z^S-O+{kQz1NB-8!`AZ^#iGkr~*xC%a>7YzAeiD3K5 z?D5O61i@Gh_VB6y>m!are0j{mB9v7aC?~;ZM|U^cv*sNyywGjP)$Bfrk&%s#BP1e} zZ3OXgPu`;C4Fe3SH4DV}WL8nLKG1})`Z=Ots#=yG8IqEt@jTvFiq(s}lglj>2Nb0< z+AgB_FUj-c_2Ejw0(2KAq#Cd2ZR%hj>6#n&r5bBV)>g|1st-Hd6k%|Jfr#Bkfm z&r5f2x$bm3d>*-*y0O3O_^3Cl9Zn$iyT5vQc~mhGj$sOrJlI@8rrv$F@Ro1O z9jne%bqe9$5Io*Mdb@+K0$>g#H+>mL>NB&UA<^4wuZdA+gqvBwoCS|4><(tb6*tT) zU;|mXCU|bvRD8tP$4IYMS(b!s1TK@qZ;PfnmO*Yr5eEHb^cjOK3EmC9xU0yGpN@y< zR^}e0FV0sD*1tP>anCTsp%-Fjh~i{`Wz%UXFP0Q@drqz3bEEC6Khvk!6r+j`qbDSg z$;Tma8VgshN!z!Q+k}rrSW2WHI!esCc3v1JQa>NBAawF>RF3*lta3C?QurbIw9X+ zpp1s%C8ADK@&UWYtD7y(iL$N`u7Rnw9P*RL5E#A8PNI@txZT7&#^3`fp(C_geI`K|oLU=cqB} z_d#2~SLgR;!S7Y|FU^9VW&S^?S@8RL{;gT?dv*Q`QDvt4lWzY>RGI1i-q^DQ`Q~=2H zA(}UP`y0=#NssTADW-SiHoR$qwC12Mv;eW4@Sz9P=Y8aOqa161Wy`XH+=1^=y@M~2Uvc1NpPa&pDG6esI;O4v{zm(uk z9}GE!Xks4Dj%`)+mgkWrUEhPn6A|(#o<@;4wsk`172+pkgt7>(igVTx{BhM$>>uu{ ztGtlC7jG+qN>(KRc$`2cVtncb7C`6)X!0PM-J;9<3F zBA~o%E#5lWIgNv3yHl?xy3bR@}D{A);43lHS@Vf!@(K_9F%_t*z zkD`4+evBHKY!{a#!rK#;6<54A_z?R6Z{iS)$b11-9GI1Aq#-o4?$zd%yAdQ29*9S( z!&A7c&E^TbUmQ|Z^oM{nRQ4yX#5vBVK`S++fb+##Ls(KIx6QH@AH(mdO?{v*rdXZZ z3o{e(UsN5Hk!o_i2@rOnM_xF~|*v8hAxQZ%D{q7Gfm8CLXvZ~nHIf*tx-)Wr?2Ez}TIuzt#8*{dTND$H)ht~VROShK>58Ju1>A@g$bYkMj=(BDn7rp;wm0`kUv-{! z8v9XVF`c^0SZeeS6VJZ>%2H3?ZZPzQod^X7CC;e&*)$ zw5q)3VnVFmWo!@rWs@hshwGV!HU+MQPo4GJ>g?JS^NCSiqrLe3ZTO4VVcNPZ{s!TJ zHTo+~N(tXF#dN*Ukm3=MBqmZPv?Gz+_SXWQ=BtogC3AZHQ&MpyRu>+s9T#oXf)s6@ z4cP0pQrJ#$sM0>djlzD&z$TT+&c-S%Lu5^QJjrXgO`zQ-Ft_p7ctFH0F~CY9yo!%R zESbt*UR8c^I2NEdfgBpN(kA*G!lceEN^C{3vU&*=^XlA@wmr+~PZ4o`KPc5^wXOrz zS*9R`Kqr4*>dp`|z~&&zMsgQzKL^v)G-MCpjx)&A%@=GMH*H%&nsZMfQ^l&%mpb34 z83WL@+}9*aKOEc5FVFznBIfGbBz2e1`PM@~X|J8-Juko=1j>9_Rd0KE4BNEB2k!-= zmyAT?O1+o8Uxl^3i9b}_4UMB%IOt@mi7sBu9f`^F26T$-bo;jm@P{@>PtV5s+YkIi z17^BE_{@Kd@c4W2{!2Zl|LO1g2P}h`?!U2&|B<--jScMY>}tQiga44Y(Ekk^`X|JN z>5tqsBQp*A`?SdaU%6{$x}R(f>c5Z0WTyX>Nd4h0W2XP75kghM_Aq&o1(DU1YpRW zY|rR}_>_4?6;Xg_ff5_xOee^vd5z*u_IbYcVy7;0;uxC)?50tmq8T%Z3a5DFn=^N3 z5rgB5D@q-K>M8|C$AAX+)Rl+Lu|4lF_;QXB|1s}~=rJ^b6*b_%#f6Z%TK_TTQ(q$X z6k-?ERGQ+5$gzPa&_{_N(8ACes8Oln_nr`Zlt57Ulp4^@zMGb%FK5!*Z}XxlWAHVsq+b1- z^KdDoW*UNt{pDYTS+||rC3>B3FA-6NGxax{n`lvK$J$LpE$W{SD@s9 zct=54?pT_ca%cen0T@}3Z2jx&ttEMWb+W}OsvdF%_l^hw(v%`E~}VNE)@_FODx1z*oRK)P`txhR`5Jh+V_Ty;=dR7nA3FSq4a zoVw)(?%#4Ii3w$nEM$9xN#w|N5Gx$pWB?-9`lf1AH`gaAWXE|L9mzPoo4TN{{R%F_ zK_N83tW#dBHDd~D{AlVeK^KmQ1JY~F+0iZ#b0oa2oyR0BXgGYlG+0ud3Sz)Hn<-Iv zgKs0t);i(y6$j)T)eiRZbJas3ltAav+?i?N7ldj?x!7(eDl##sRz-L%?Qij=uANM- z@W@dj$wfxH=jH)5H4{#ElgiPtA#K4-qoq{+V|4@IB6kyA4(XLNUdc2Oo%Fkvf->CA zq|JSlAwgW|C^fwORO`eYZkYx^=TJW~B1ShO`dB|xce}XXTNhGssAqd*Shs@Z^j%|v zOeq4?k^wH>Vf&aEc=WotjcsTYR!Uim2z{CX0v0~8nLd939*^Yw_IG&lvq=2J5IVX) z!`RI9f7oz-V-!Ej-LH(|_xk&v#3+8A=ieE{&$9U!1Y)NDgGv2G0;2!NQMLEkQEaI1 zv!gb8-z(|(IgLHt6CF<7r*0||#_?kwrhb9AB%#*iox^yrtE0O-8W!?Jad|z`im5rS z@9fVL_z#(aBiX7Mbe?mkokLLZsHNZXB9ZXP6@|=}MlqT-+uJp?+veY$y3U{Elp_@p z)GfEkNRl-y(G7dzOZ`1PZxnT0Vs^Z=QFa71NUc3&=XSEySG6RGDSOy=D|zEeJ1f_; z%e}id+J#L$(76@pqgKy5seH{*y5a)|zoU1f!%db`JG-GL&~K(`=_@Gl@l98>#TceE~T6U6#fUd|pli7{H?LOrrC;^3$RTI53 zIMu`Xo5%#DAm__^m3rEoR!(v zLDK7Ypvy7xIi^1{j3jwL*y`vLUf3~tq=KG~r!eTCk*@ zZc(8=RS(@Tq5~}_?0m$o%`#)>t%)MIL%z*t@mvtO1`2daUw2lEJG!Zuu(=xK)pe4V zj(%fl1{R@Y-x0#S}`2e;d8Ke+_=mWDK8iUj2f5E)4jay zI9zhJEfi~5rtm^7-iW6#RW$P&`N474Y@TjC=bUWS;QrZN37R1bRA~s}B4v)EqR?t) z$JN+7y~s;MOiZ1dD1XV_DkaWq><(sZ(cd4`p`}1RP>K9OtovK8mR%8_xi1m2X1-6( zbs}O~U>le=A;F5!PEyRb6x+-70GHxf$4c6L_XRX3X$4;W4U*2qA7bO?WLX*2lBQKu zM5t{l7YL16AA*g*`uzqX{r=_aNVYn`;%fa5Rle)Q-Of2H}pw zN*M30JB#28(|6@sF6hTR7-8rX{j8fE{;VVk`Q7jgv!T+6hDz3NwK_#9rt6OjifsGHl)Rn zMiM-nnNRrn$B}_io2^8v-_`WKVhk~?*i!hH(wwL}3Y};`up@s9Sq1-`hOw!jP}&_o zy-%njmJsK#@UUo@>_S~kg#RI$NMkz@gvG4eYOoj&OkYIIr6)RCmjlhkix`$rnbC~J zb_fT=I2~Rzclf6C@R9jo1tL7aBls4H$hH{3oWA@xj{XV%aOQz#fQ!T0k8n&O{g{F+ zmDxPg4?z5LEbezf<-4r)EvHmwM-j*V&{(#r;J^knaL+2=F0rL+?J9hKDxP-BCn-c6sY<#ZuXHv4Y|5$HAoSU zSiaBN$ZitWr86{})aY*uXBwo?_`wr$%s zt73eq+Gm}$_POgjd*60{?O&O5w%KN$SI_99_c8jYZQj285JZN!UOvS6@qC(mwkPkc zw`Jgi`wyV|FRSVFR>$%DDL#{Zi?D)+w-4bzsP$q72AM;`cWU+4&Sll`7~dp`b_&n# z+`bm^jL1>h3WwMW%SY#OyF};N(`c;g@(A;Jtt0%{Hyu9taf7A+IH!M;HlRiqo`o|r zjxOIfiQK2oCr@$}5K)L6v&uG{SYEo{f+`F>uIeTR74 zSxcm1dFR%XQFAm(vV}YL`Z-6AUP6gV4I{=jfZ)s1t=TFm9H%)UUQhAsThs@qHy5$` zwb+$fWGLu#eywDYVfE_*R2fl-a$;{iPNq{(`&t-=aD|*0`+W7{2W-QBr9iH1B-Uy| z6_;!861Z-XWc!;9yP52>ld-1Zljr8tWy(SRt@p~J$bHfhGt4`a;3pRwd8pI95;J1B zh&&_Tl|ySmzJB$U0>{|E1_?F&9Gma$xW(w(>&%unXoeUtIh>z^RFZe7=~W)mT?q&E zMOqn>8UC}6I~UIT$QV(UNG zgPV<&i|pF3*@4oDh6BvobWdnp#*iEJE8C zl0G@(m}bWuFZ#&b{cHW0>`Y@`)ZGqv1R3TdVsaQCMI64r0h?pwkN+(^`-9PEp-QeXmq!Wqtqj{q4WwhsOTfqv3D$M8?129{#try#H4g4gyvN zW;%8zR)TkehmQRnp0hFn=vd$1|35B<>Hm_mU}R>bGacjmGX8It!}0$8 zU*h!NP!>#or7Zpp?U$M5y&dn}CF9p$hF{bP0~;MX2O9zN`$=Q}cL#4U{MWp`zgy2= zwcr1x2a)CXqxVld(f=Ry#PmlF^>20{GPAzl)bBR{^RElfN&w(se!uSQ1kCRyeXRf9 zI;&wloGx5ndgi0PNUnD!jR_OVQID^OM| z`&rH6o7vHZs4Wx|>u5n@apvcd8pDo<5X3wYzUzb;4tC#^*fGsblJ>ZrvBiiY0tgl# zEZT=vXSwlQN`{$`?`jn*f+l~MuzMEN7wU?u>Ll4(>E)VES32H?NbAb%v0&$9T$zO{a ze8Zy-ZU%DPuNu=2bMHy=u+b2*z3Cxh+gO*&O^0OTidWy_>b{>5n?oFC?o;6xSHHn;+k$(?9Zi=eUzKdf#2n=9X5mw- z`_DD{hKh5oLlY+ZGpRep+HIp5ombK2gf@0eg)hAnGK5SK;R7AA{gS%ASFKXW4Efys zTZ1Z)lJQCABKzx)%j{s%6w4u54TdIR7F(lwsOfuvjGUf)T0{@FhQYBB`z!Lso8zbD&vlO$+~IpAGmVx3m?_3zvtHVZF6RXSDrT%~Q6I zJs2Y&`Q!T@uzJSgS93Eee?PCLd|61J++WoFmP<|?XK!i0nF}~?s?~~xnt-rjhqqqy%7zLx= zadw)bn~Fy=1-9G3S3Bt+Q^jE~^SWqh)pY4A{UOWQ-|(yOvyP5rlhzWbU2t?O92u0A zEW^%nBkY#g%7!5p5~$lxb8{q)#*;lZSV!VetD}wJ7^y_6PyxqqM)v78fp6QD$&jGow)kQTP&v0!H~;HEk|?6oJP^eT^ z`u1Rg*fUOvA{){5EOhIuCvm5&Eb)Qbik=JB(nq1wnQSFlZ}8H^a0Z za>`_7d$7fe%IGh_*oa-M$1lmyRaw@PGQ|1noe01vs^zz*8KB)IjlE#feLaNGyr;3s zaEzlV;78N@>C&nfYPOJZ3x|=Z2dOg%#F!{3L+`v$D|Sm=9!qS&FA^;z66k}Kg#ga5 zuRKeavlybqrc5(H>dj*93fXZFxT|m9)$@xu*1$Msmr*V`#tyM48u7~MI?Dxm7Vg4L z;!qDN2(D?0vvq`|{o2%YJ3lnGCnrsuxF`NignFK*p=mKPm{4j6nBN3}YnVcnPyZOJ zrR)}k^nw2lj0QFU<9Uf@$@WE;uOlP+itguwy4U29hyvD>m{B4U__X{~RHUU`yxh3Y z`87Z_W`~ma+0aqXQ26CEtC>Th_kza+ub;^p&q(AF(%gXO60q%I6(oCO05#w;8s0sT zhNI+r8yzr^&O|2Igab}#EfiZiXr7k;>4U^fJkwHyA*DLD8#o0Gs~~;5y)^?BY%a_& zfyA~>n4GB59wUdNSpNf*JBO|G3O`QDF5IZ769R%ZV>ec48tH3gDWXKziO;vVMNzwtjje3PlOMI-?4P#H!=-KP4TmJkpTFmM#42;jJse}2BsXgAPP06nm2K)MJ47s!g#ga)KHyB> zR+xpw1nc^{?G5uEKn|EA=~GwH)9N2u70B4=1a1SK38cfHk&kn8f;goPLYCn0i-3Dh zQ)U<;Vc{e{ItlwlLHH6rv--~nC^i!v4A1ocz!XIR*Vtj~A1~CDUw8;F3Ql*QS_&dR$Fod%Fis67Z76z>+Iy=Nb6{Zm&4E4HebUW zdpfOt$b@Tk*j3r@$Z75A2Lak*&cZAM;@d68W!_sOBG?+5YxIvYOw@mF+xM$joX_ue zjB97#Zt|zADwk;aRX(UE^UW{!&qjwO;0d+#oOh=g9nFJ}ETmr&Wb1;2kG-^4_1viq za2rs3s3w?h+vYfmyk@BJnlZ(%=rNkp+yxeB#lM7H&Nx8c8ej`QSat`w-MPSihu?X< zZYg$OJQSF`%>7tIa&)QuJhRG?_>|JiaM?SzsIITpQza&fl9S+3rYV19>kaClvMzWd z!VDMak7Y!Mq>Qh(-pBB;Cu}f(U=z9yvK=!wQf|HI()u()F#Wlv)I#-sA{j)NWNl7$ zzmZpzIQ`Xpq{ef3rQtI1&gfa* zstFpo0J@bmV!(==;l~4B`_zUX+}va| zJ93L|h1R@OdW3nFngr{OQZmzzlcVdxM~16?;uIL$^|H7l5xzNOyfk@ZI*<-I9% z^XG9{#OuO%B{rKMuoNCV1CJr6N&C&rb+vIDJq$$q+F>>+wk{Y1M}gE#^J6)yW=#sF zLN!<^DRyz^d4j{8g&m7=Rdk|5#oEJ%tp?bZYSp7vjkbXiQzO;p0DSCxftnwO+H@7@ z6iBlpEf&lwJ;wKHoClrPryQ4!H9;8b7wfZ1*MOn4gIWF6EGSKA2UW73OeVm%GxHBx z&lJ?CqX^*w$~wYbw)KlW+z5oIx@`Fnv7jHm6n@mmGXu2i13xwD(_-zk7gp2}SiwDs zkzdClD&c&%@h{R}y+EojNIs>*Z@Jwd-sCJQ%+|-sEkG;*ik=@3)tmtaf5&e9PWXPw zh|KRL41cm)On(%!{1zX7mwNnCA^%bS@SfxTVlv)moU#1o5PrY-U84Q#lV3^hKPi>J zxugFirSkW||4*fo>9+v+S05&pcV^%Z3h*zrk4(Q$(!Wlj6I7NgcYgT^sa!Gw z_7I+^r<+O|EhbyZA^(w7Z`lK0ft;7j`x-XiLFcJO&+B(Hp3S!A7A5S9dhvRrq$4lc zy&Wt;vj?axKzq`G+Jer;v+E`tC9DRs^T8JReq20-i(k_!a(N@yxnu&mMY)Pcd`2O|if)mc&kA*k zic5yWHhGB8;^8iAqb_@dr9A5AO(I|;DBSD?x*7<1l0a&)v&n*a*5Nf^f(XVe-ityk z!Zw$MVBIYbg`oB z$~6Na=K3imQ@X$0)HzLBW2drc`jrc2jz=+5lniW|EfJI|h;yOd@mRWBo{;fMLSULv zKkIoTzII_*b6y@#aI)PIVa#PIi|zE(K`vcI^D77Ktd~XkY2zyQY}&w0wL@9ZYAWnQ zAtE0Bv7FbBqLLhFICag!D#o$i~@nfhr> zTmIdK!7T1>Zr>0LMpk{JQyRhy8((6ta3N4aEAvkap&#NTH*={cEup}^8V{ERA?8be z7=~n;I2p?4L@bhZMFoNY67okTGVX3!`JyVc$=(VD)PcQ*nDvz8Nby+Ht2n@^pn$zQ zx8l1G-BsnC8qDGG@dLME@;yl4En7~LdzxD^u}$|hi3gjBFTZjD3LmQ715&eAu)-4GGtUVTKe7 z2{M;PwivSk z^uxb>5ybPPM>FYWKrP5v`G~xUW%wEaKK68t3IbRZ&m~{s#^}5|ob&R6R0w~F_}hK@ z4reg; zWd!v9#!voVlF5IJdSPN?rh6a4{XUQToyUD|3}bp9$o;E#>fa%78CiZG$lvn!%zvem z|GVVyACtTPb@&(%^icaXS3K*MQsEHbCZWc@u{+3lz2-PqJ1O7hCjKWys z5>GDl=*G(A@nm<+{u&&k;@!=8>{t!UeDzveq%-$Y$3_VLSBE%{y-yzkBH=0lRh1IT zvLfpt8U~i8{~lE|R&*i6un!MPFKuGt4+Ag3G=|{@8``LB_qGfhapw4(uvV&hn@d-0 zvaj|(Kd0w6DwGa{=5;kI!`)V(%j}rPNbf;X= z)Ce0{R!DgA=$*P;nW6b|au+2`%lNQkVYX^uDHhLs5)#D4Y}`P|&|8bdV?T_kzhho>9X|KzFYE-v z17`QtvX2&JRzGXUFV>WQ{$8d;t}KCwBx++GK`1oDI#SbWr&`%clyAekf>`xAO|&w z1F2YkZTob*G%!-qQE*X!*fkj3KdZYdk0*amyi|T|hO5zXLjpSkh;n_1@8sCWjj`Dt zmtx3PT8oh<8*!)>%jP@_A{}OvI+kOi(-c_2c1hBw#3ogR2&#vb6*HHtFP7=X%@ct* zXrE4&g_5T;NxB?C;tASBLu!@CsX<8pT>ol=zzH3N!Udz+wFYadey$btx-^okWjHSm9@QghP}M_^u}%X;$YF=rq#QI&a&$ z6nZ|dL?KrzaB!>=9w}%Eh}CmNcQITTe=^quE+#h`YdR!^0TUy>1UpV9Ociv1tEE?c157||&AyHo~H8l2fn?0bmKed}S0Fk2h;~k{| zdOlsa{pS?j4tloiNzZE^G!WoTjw>=jQgb}f+#7EFtP0a(J#^_G235Apbrwv}(nj8;EVc00+yH<8Fmd}&@Q3wP@ zH^{MozuGwYY~6Mek!t~Cr6-(obV;z&48+3Y1F4j613pBrD}kLg9mKS=oyTZF`EY>o zTCnq;-sT0yUr6zWUrT3x_x+f3EeMDbcQJNUNP975T<`gL?~jQWOsLVe!V{JE6)nDD zP?I2L=jp+rn)lN~C)sL=zf+A1u3+F7{vv!48{`1%0@?9bUs#_*+Wv^0e2MW$8xDowiIO8jsww0~~vs1(Pi6}4J&i3U~4M0cF;TYJJ zZSE$g55}f65CrY~gX~BH^T7A%h~D#g>Ey(mB>TNj@lM4}7|F>m+2?okwZ=^Oe}^@G zhmhX|sVsm$omE)=yQleAPWan{_Mg(c-?8~WDb4$RJpVJz`yEvO37xPo|B(y-lTyn3 zJ1PD*;;fpw-3lwldue~CJ`-wJW87&i*9^NO8J8)mCiU98aV!+{l8K9)*l^lV#RjMr ziFZ7jRhs74U09n=P5Fh5Re8tPX)MHU>CGSh13EnK4#4>1+k8Z<6p ze#P32$>WQ#lDTc;!`81;ENgea>{!a5z8iPuLcIrD{Zceye~80GXh&zLEyipVa*1x{ z1fFIryO1gMr>e4I_o2$pVo^JtWUwo+5r607H@=A&lF5?L$(ji1lKK1CEKTirWka_S zQd)Q2J}2K+f=jtX-@T_27BT&e+$cmv= zSEz6>Ljp24pTR*Q@Jn~-B>2&_>-@tIaA(-d=+MSM_^73vzo;l?b$nbyYp?<#=87dg+tH) zW7V(o*@^W@;@~C`O!QM5oYl3yr^tF2IA!73NJQ0l<+eSLdvDxxto!QV|_3dQkQDMGWL za9r*hyqZ4(iH&o(w%z|^lO1es_Ub7X?R1XYPbU#&14e*O?lXx)foPk)v2ybe9|yadjwm+@|oOkB-`<6N%~L$S1kLno~%_*u~RQoKt7_|TP~bA zo!u|w8-LBUw5dcv)xM2}tre>C6I?JFpNj+r<9JtDM%hG|FkxkZF|s}k2wQKtNqB3( zYfm~+_=qB&?qalGt5a7Y3(}#PA`63Pn#H<6;$*A$;n(T2bpB9&139o%1o7IWAns5? zRL7DU9A{?QCs$^wGwP2+WU@MK-5f~2oJ%>t9aY-aCc+hfE15SH!HVK`;y16pDNwYr z9eqTl>V@8wVhY)TM!&uGhQVu{3WAeGfbj{$l{5xTM+!V{5m&)S&W5_SOnSiA7lcb2 z)jFYX#B%J|POH@Q-ABSDpvDr}?d-arm3?GhZ0&Cci6}7%ci#xd_8KzJc;Z$JGQE1M z#6WH1X?{zOvAKdk!nA@3)KVf&(McljzCjISmtz2v76Vyw5zTi}Dv5%iDCk222JeQl%Kg-|5x^xSBD$D}Yo?w!uUBm`}T;ByDaih^?gL zq~TM0`-ASo)7{0Z$YuTP!)1B|@vwzUg;P#tK)>LY2MYpP zYzl}ud!z$|a)4by~m}p^b9i=JRo{zNno%Yc0Ic z;0a*^6~7oUb!3J`Ii~k<1yoLKY7CaRx_O|Q@GMpuUbv_qZq7we)~M5|rl@rg)j2ee zIlSmuwvz;=cilmUw|w$6r#42q$A)X1lFEUd#rmOh99dl6UMkXjJVvY1%I~_OteNT5 z+VCJTNcL*?$Nu+xAU(%{&2`mJNJ}5w z8_vBq9BnG<9^wrdQ$C)CcSmbiI^IKa{Cc27%Cq)kMtvJ5c6G?TuXEESVsE$?p?xxd z3s3?{twXC#201!4P9S&31?dSq96DUm_P%_2{3gh>xX>(*BD~H6*>hO!%Xes!@S%B| z-P(oN=L#Af%y$zB)N6Iu0|l+H?TTVSb0m8tMJ^#UZe>Sxov9|3+{#-&M2#aSq99$e6*IFdHr#XwZqlgc zZkAW)6&(3-;YLDBA6YElG%w9WMR-ftnH@VRp=k5!{F$?^i*;itBObNz7qpvBB~eI7 z+_9!<2c;ykGx^e>a<9tS3`(i8t{F`&h@pLF#8u7L@oOn(UB>}eEGBc(;8^i^Fz+^O z2c#RJuR^Cp@>!qtbusIvRNFvvnA4Vv{nvWWUmvl^5KJw)w>|0I!Pc)VV(sa`t1tb> z<6~e`1aCR&qwyF*d{cnTpbY`ZC*-tD3e7l{;|_lK8XD!a+=g^@>-*>Rtu|p|i7L@^ zE7#|l1Nj>vK-W!_?%SV{Td1tIAi@YD=M;VV;g}ic@!nh^TSZb@>LPbfS3W4l039u| zMuCxCwX57cAWr2sqyH@q`-2vFpJBl9>kI$DWXyk1LH{|8roSQ7KcgzZpUl-?$aBDd z5j_9WI6(D}5%HTlFtc!0C_^A_CNqwUm5wK=mY}IwItFBN1z|a#G2R{SWaBO5t21;u z6Bos3@UQVaxw+Zo*?vK)q;pZTz-n6?=IP%CcVB!VIr&w>RE)#o8lbb`GBnS>fM+F( zm(|6>n3g(7yc^tQBplwbecD&@3R-7%2;nt~II8|yE7Y-^&vW3r@NRJT{l#b8^Ghp- zy1VxfWQcU_cTJdpgtXTlxGzLRU-0AtX5x_ri0wcBGPr9L0CaImZKjanXLNJ-9kwh~ ztkdekuM#iS2)!HJg^&TC$Q)w-*c7sfY*$SyJvSG#Vd`;IR$1eaF~LST3Ep`rsC-zq z-|w!CnRLo$QmOAEJd;9(x3Tj-YX|7w5Oq-4dZ!A{Dv@kgSLoR7a>$^r;Nv^$7MJp_ zwlS4(Znq!hytYRWXr$dPmwb|S?e0oVA6M8*u)N?@_cxO0AYQ;XtC%GZs4Ms z5jj@n_oE?*opk5NjWbWzu_Hv=?W}!T$Q^%g$4u>1#>g0T!U#$wbY91PC9kGH$ z2WJK#=a@>|G?Ym)V;c~cE0J)tur}Np z_c8X~yR*_{D?Ee8$?c9#pf!gCO;>eUUT8lyi}&$rsQ&h&1P|uD!U{_po8n>|CZtCa4CD8B?t;Uai2_k;`BZ7Z zZN4Thn|6eGh_Vapyw$~ZiMzwZuAO*%j#C9I_i8{MiEdC%q8Q^;DAJH`p)lhkzM>9H z%^WbuUQ?qTNw^RB79dNlW-7cOZAEGASZg`^U_P)HmG z89kR0e>yCBJh^vy3VhPXYdP}XQ(X}jBwa(`OB5HXI4e;=uQ^noPSqik1pH^&z0N*v z6=j4E-ip)kTsA;il>KDZXgywU_B`2Q>0BNS_s@_FrGf1o1S{-As5X)EnNi4*BvNeG z1tx_X(06Ouel%?5gFb#ghpK*BRf2cF^ES!d-520|st}F>_)>N~2>qS)EM0G-5M2k)?iiC;G09Yyrr*Mmp~1iJ zp>&5eQJkXSwT{%Zp(KCK@a7L~Lm{wW2Nw3U0e7)DYF)PHZzYyh=_}C_*i>wGFR5pd zPSaL;F#HB@vy|!j0Sq^+{_8pf9}lcI93vD&D3ibunfIEXB}M~QeAaNvhX9;7tL!Rz zg3i<#K!W~u7{$Uq5&bnCKC5nOZcL#adQ`;Mf;9@Rn8U=_mJ~wFevchn8zFa9jh{-m zG434LGnv83qqu%AS7!r-@F`pKuRM&n1!6pF@M3z}QX!IIsm&wQ_YO^&0GF^#t>Fsq zO*1xiEPyhTvr$C)u(O+V5RIN(#Iqimsy}mK0VO+oM2#3Kdo&*&=oOp{fsf?W>1P7P9z8s|FA1+s!L7khm3*0KS{E|Z`n{dE#^G;# z;*bhpm`LBi!JMl&7!vno+)llr`@i`@n!-b}Yo|7u!FBT;z}gl*K4sr1wY2%kdz>qx z#1aHF$H=6ciAH5e2x5y5Opjd2tPpOD7CB}h+EeN1eA}XAp934q;Y2^=$xDN|qU2Bl zJB4OXnEnC-EnVI_UbIPIR`V&UF)`CU_WF6~NXHR{X2~FFFb2eRR}6%T9HC#RZ9_7R zaA7vWcRZ*mMjr}vZKrt(ZA`y8Mxg~~_O-T^qWkB)GzojW^rnzn3;}bNyLHHRR|5)2 zse`1-RvlQ+VQo35+c>HEm?g>WY7G>8Cg}o|Qcil(2?zq-tLe`Od zN81-X_$Xlu5{sh_KZA20KvFg3+X{|#cm(}xD^M-p z4cy6(%x%bfAvF+M9)l;p>ptz_PL5O6wdcECV- z79BXVNrM}3Jxc={gy-dnnG*mup3_rC^H}}vRogn4%BB}Lg8CG1ZJNUa0>DnEgUik! zmw!*Du9Rq(Ss?bPFb8~R;H?AVJoZ}(^?fJruqz8*D`F*=N?fh@3JW zxass4`=@gvPZow#Q`2JiHO!ujOSHlk^mWbC3&;^@>8@yl)Li66`ny%=-ehBWNBk3d zs%^n0H(Y&cDCsNT{Dbuut9+EabT51tmbx<-CSYfV?MpV@Oc*#mb612813%r_HCe`# z(eM(G2l-j|Z>PI|i59;6ffm@`Cp1sB2BWF!Aby>Pz-6ToZad35@*|k3mmjgUH@&%W zq8MT&<*H}Ysocs&rr+TBi1_e9OG^Zf;uYkMoCz=1{KxbhuO%Ana4tL1vV`C)u=7WpgpAE|^qvrTN!2(XkJegyvD&aB z^!8MOXH8U79n%guSs^468cY})sklJX*MYkZY*q|B5&Js`<@W!~6gqekY>Ld-!83=L zsg=CkVaX_%L8ZBcE8>FjYTeNBPm`s5Sh*P^>V~J2B5h*Z3h%7I3U|hKQ%GzW*&IaC zX@scl1)neT9_ZdKUB);dWAA@oO_A~KnxjQWI0%3en^7JIRRBVM%gmqCP*5nFv}8k%0IQTtlG-G8SlH@d?*Z7=}oA0&`&Tc>uvsutoH&O^@Cp zI&ziyt5pZa2VhEn@1Uuq3aDgOi%+t-@zxv+2WE+vO#^~dbyc4XdX~klJ7~F#tQjIP zBZr^aM9M-GG#EUaBe)(BT3Pt%F^V0BU3=@BZr%{&)}`pDzxk2!mauo|hM9_J29lJ`G}xM0|#>BXuz zW^$iOB*VrZQ%{s!P)6xj<|>wrK7xN_oK0VF&fka2FTt>ePsOcl%H3zb&6d|p+2mGE zQo%J&XDDDLYsTVL-V(@CW$TyD@Jh6X_1P5L%&#VWT}fy`U9J!3)LI0)Gq0H7 zq<0KZZM7#F=SFqBv(UDXSE*X~XxCpj!c7rimQE^Q|@h+S;E$X(;NhjgHvWOdsY3*Lf1z~oV#;%K^Q$rv_DWa zmS8FsA zzjBHC*lfe<#LnLEx_{$tNt4u;$b>t`;F8-?=&r4sHvvujQsTa0jBzf1f8TTBtXj5Z z_$}{}chrx`9SHF?_*$zsY6<8Rcbx!O6}bN{mVi((#~iHE^u5nWEd!m z5as?;ZP0j4@79%vrMHA$LhnYA`6PBXybtDylB{buR5lKc8|x8hgOFMW@iT6zF9UUs z2!6M@>Ud)=rJ^a&-IWK*jviJgt$_<3?T8LOA5d7XnlVMnjt(}74f5{g*4WqTs?veP zJi_MsaO7gz4dEjyKb-{Q6L$E0?9m*NR$OW6LR38gfIx5s#SP3$`PYq49E~cWM8s*Y z@Btee>-avVfEb7X~uJr?JBdJSJo&7=d{cP8@L*Kbf;O~rEiB7 zsEA4u5~cC;Fk<{v+Z(BS(&m)Uj; zWRmd;?UWUa-320hK39lBLI#Ao;hR>?}yAcZb)kiYhE zF9=manx_fB8GoNkNuK7Rkx&1kkMzwP7BodqK&|&XHFwOnhT$CH)>jubbdJr5-@-Q+ zMh=8_El%dmj!Uw(?-R*&^p+vs`J4{+6vT~hCrOozAjbGkYd-@me)Nt)dWwiKI;4ma z{pZzrNx*<%FGR^ox784uaAqKk8kgmJA+PS&%hfqo1g8&`J5L$LGEr6qQ#uX^CJ;7>jDxXNP!;9B(}2Rh^*OGD4S*^3QE&Do5MB!X{`VjT=E$f_SvZ5vhrXgBAbj#B|3u7_l zDGZh&5;{{T)7oYB9*T3+W}XDpK=6^w?nMxjlx27JJ*4!VGP$-BSYP{GMCp9S!UvH} zR`tZG@UN^NKb@Ysl%pgg(V#o;pjm{tH%n|IwG0fD8ah}X=b4r2XOL}R43tWURI=-{ zZk6@ctbN|S6axVH@B6k zM)R)JM#Ngkeis!^9*`naVxrotA0EkMzm*7u9H7`^j-bIA(5uDVTen*)she~&Fvg2= zPY_V*7Z0aHnQbyz;>P8L5a$*Z-5Yz_(2pO0<>uf(o2rM=8M%Jn2|8c%Vw$4lzZf*R zmD3WGs43yvJ5G4AI|?oGnyy4$x!~eJZCHLRz?`eznR5Y?*=Wc4BzoZ$CtBY^f$tK( zLFZtL*^kXGCkSkYrK?wCdp`kt&vLAl`mQr~(8>0>iLo^|Vf3>a06!-^iAQh87hol5DuO^@+mw8sS)gltZ>$=!_z=z?V?V&p&Q3 zFHVcx1gwsWg+5+$e!YRL75$Xj{4fY!fs~i*`2gGeGH|}KvUX?fEHf2zTR<+Le-`=X z*_Vultd1uak)Y>48QkI#`r(tmbwpurQ7l9Lv|RzC45O*L!g-*1AMbz*bKzGH!OZaX;dt< zbUav$*;Z6D%U%;ms>4r%kyF_$zpKM62<-e}%|vp1=w#F7W@w0Lc)9`XSv*gQ(lf(Isku^h~dIe7VM%^!U?eJzbt7 z2N|JE)nogWTGbdSB0hpmTuo3P@T>S55&TEOip&xna5aOUyqNa7+4tcM$c%Wv> zbk6P$3_F0h$?SzlB3Y6{bz!iC-xi|q18+zV@LoLbZs@(O4;MT^8%UCez&Ri(Cxe0! zCm+SUhTwmuT5p7KHR?_zu28?>iSmRPf3cDOuDS&2$j_UW>l)D)F4cAYMw7$aDKM$- z7UIj*vN#b(xVx!>WPg5E1sb+;F;UmlAmimR$HIcc`|(rxHii_*yktvm7Y{m``|T5# z8|Pwk!8J_(LSb%a)sFB{m|`f^1Pl~J*-;3O(N9vUaHvu|dZxLgLO#ina~ROsNKpmt z7UZ00DtGDC-0KxV!?Y4x-E{g~w-kwt?`*jvLe-ROA)ziz4-QnJ77|X`Aih^r&0?f- z1e%!wDD~obE{n}_68z0L)$Hi%iZ}|N1oDt~=|TE>i3$`DOoj4_WZfl?BY3`@^5mK% z8Pz~28Gl?$@PGDTFsZ(zERd^~FoUz9!yr;motS&>0oz6zAtdoGoHiIOlL~AXa^ue$ zmxF%P+a1ZPL$VxUj>kbhRKT3j_vgqHHh7$E3SdiON4_`f>I4WmgJ{KwIc)h(Km{<% zezXziO~9LVWX{ZW*gdu?Nj@4_OPES3B^1^UD zwJ&9t-a=6`*`uFAEu9SVVxvWqy(lJrR5uzv_Mhr#{U(~Xm|tW$xfBou^8(bog6WZW zw!l1_fbE(-e9GkKQ8zSJ#NxbS!qU?osAy(d>ruO0yQHY!3HEZlXn;=f)vy8|ip9p! z7d zg&imVdrH1Th2Ix;TJx$7KZot;W14tgDkrxr0jJ$C1^sO=)cd6f8_BhPjG4Fxdhw^iknCr(zp<|{>;(V*Ux61&rqCmrTX zg-Eh{HkH;{y#~2jzTu4^)|X#5gA?-0O8TbFD-2ts`({1|;>xQMKt}bMWHo;+?ymiO zi8Nu{d9+Q41biARGZ@O4iRe+H&b!>>tKry{h~{r_z8-FiM8+-44{5l+LxO8{EE3_9 zp28s#2N%^@Q4n#rM#*}J|7DImZly=k3T|Yy=`-_%hS;PPPqOWM4IY76s2R=^`3pnI zI8swu5Ufg2c0yALGo!)XTfeIU)Uza##8NTfiz023`IlHU=DpC_tGqXiY2ZqlM(X9A zWX?|CEY0>1<6bT2p53Xw?Bzg$0o+Ali`2_X7mYM)BN-Q91Oh`L4E)iqkWJGvXl$q? z2w}Jz%J^+;*2nYEj=F9VKM6#C2${mHfywX&m7(a8jG1M>BFLcR&D;17aJ|RijSc0d z^TIX#&1l~O2pGbwIURi;J9+s#=pxrBISt3iC?+4|N5h@MO^;#<=W z{I?qkWD&4sn+~8qNCc!%k3$?a`dGO?*l2ULgnhzUp`HfrXgP`SOnzA07m;#WsI5OU zN5fhToxq#1A13gGDYq||9=~3t1hpOv=W#S%2^s6b5@CmhhpPDYK|ViOVsCoWdc*2* zJ<11WbmchvZpW1&L`=Tz@CEF$@Q#=Tk6=@CN1bQHG`Q~c87xfqKvdr*@8^yqW7H*x z+NaN!boHL{jglJ+-nP3k^(?L^6IUR5Ds79}$|vO8ClUt-Ui8@|Wgnpt14vG(;+HCn zaxh~YK2fH^sWRUd0O3ExZCjJ< zTrU5>uT2ed{u~8^@s=#g0k(y#(T={t2}!4$@!qy{!#T!XF<)3>h?N8~}Z%}$c`Oeq^#ceTJS zf=EFEXby3-J@+21b}J*AS)u%7Yo0^WsgP|rr}slTg(eD`FT8+0A_D~e4j=sn3%@8` zCWgO^IAdY?)41h7Ccpm$hW;5JvHVF){}mtoCIbF-SzVvX=UZYQI}c4xh?fKguo zG@RYn<9H;B*n^tIsH(?)J{dG5SYlE{3ejKdDt4D!*@>1XFhIDY7zX*ke0$-_cHv1s z$h%8`$zR%cn900wju@j&Tp?vS8X!+cCJ6Ti33ToE_6P7W;u8bosKz1j4RYci*Y3<) zHPlJmt(4Z6$#-!CE!0eCN9$^SdJ06y=|wf(#v=_FKm{X$;(Xvin0KD{h-~~44#6&D zBK~|)2_S0s>o%4?&_mLB?BFOskO4hRu6nCeI0hJ-rys16hZ8TdBcusUAXKt{ixGyS`U#JE(s$f~Qh|o+DI1ls*l_TQ!(;*dKMO0=vtdC3jJDM#?MlhPE(im*PU2A|aW`Vc(ijrh*;%7{88Ho)Hym>Po~V z*RB(6u39Sku(xqfO-~tARcQE1X2E#~WKe0>_B+XSpd1Iksy(7C^V#Zi)uerT*D^-|lDD`=*9o>=@QRP0gBIGVf9-`<2C~rw8sf0}sE}$C}0Z zLm=aYhbJEpS4wjAlqGziLQ=K3i&F}*9I3kB&)k~`N+xLMjQzYW+Yv`Budv_@&?=fs zb0e4(sjh=lnwk@oc9gf^2h?s3yaNQdec?HpZkPT6>7GS!BuqwUv=-mA0OxzWK%-S_ z-I~k&13?DEwoGHCUCxDs{wU`YnE#KucMOhv(f++-%*3{>iPN!d+cqY)F|lo9V%xTD zO>Af8$)5AyckgqbUH6`s_q^?{>gr#2)x!6?)@N1Fu&zLW6y@Ir(by&GHyXZww;4Y{ zn^HO^P&qc?1xFyqIH?HldssA2J4r+kU8mz2y1O{6?G&fE-0JMomDvfqa&{15>iW98 zKx;YvO37)ds)+ju--0H}5d^n*Mx8sdD#JX&5E`G9)jdegrsof^j~$a%{%P=y2!pc1%PMr4s`|v&9LUS3HiKY+$AVdrH5Xlk0L4-DgOYyG7Mh8)NUh zQDgDFj?X-O>aX<(T4kKj;h}rgPQeYNi*jpDi6h>7pIkO=>t6D#5gH0+w=w2yLoBK1 z9Ga`Xaw}SH%&%R|oE(ZLout3@83^N*I^>YEJjbWjXM~tyM$#jv{_wQS^4UU?-#^R@ zL$BP+@4<*bM!b4C*bej)#%r9u7&&lZ<{IRB3=USDe_q4-+z&k~!|IakJa6fg?E^$2 z8qxHRLHT}4@p;0lWT6{8{cd`t4bnm=#&Hgbo?cUNNCV*o7~r3AeUqCL1BV9@M7rUDdmUzjj8A(Rb%RKv znR5{gJHx^vJUkxhbW7MbMZ-)tgp|8fEu>60#a~9LF-J1&WS(zj_ji{@PQyn$FsfJ} z79yRH)hz;^ABpv-PI}@3HOm_GA|9tFa9}?;zDah%nJTV_W&Eb*{SRi3m`ah~eh;sZ>zlfzybm3zW3ELlh3sUAq^E~j@qU;4ftuqn&9 z1dlJr)XvWbBSfxF2TiH4hp7s8iZhi2CVl9(9O7;WNb>Vgz_RM7mQTy`-rn|(mN*}} zZK^KF#l|W!>%sob#xr#HqMR|JCv8)sZgM#QV=`=Nn2Q#f%j)B*mfYSQ9E*=kc98G}V%i_xd=KG=F1ReypH953vO{m(_g;Bb-n=Y=Ez2N~ z^?f#K7X6%|GkrWq-u@)PfsP1M9t$#>nBU07dnTPNLLz8FY#j1=rmS z5ABwBSX3kktK>7&=bPLRLGzA}rKP@fj6mJ+C{8P~?cU0DAHn&OCp5IDDOT^0bM+&! zYSG^(LaLLQtdBnX!OX;QSYpmuNZ#MU)PK#~tgt^csZ-vmnwuD_`!Md5yea#3 zxoCB=o~eFZK|8a|!;tAgC?TXKS&iM9r0NulOZ(c3-zdksYCNZ@YL3wk*|8E~@`KeW zUBxWAk0FZYMvC!o)AdgnvJ({&cM!KR+VsrN$9a=73^VD_`Zkui@lq;mL)bnEceb%w zzyX(%pMtcuIWal^HkbkgPLSK#pK;HFy-tkr&6=_~Wr$%2i2*GVFWgpmqx(uJZ@mGKAlk1w_^t zF2oEk9xezvx?w9D4fny1n+Nw(d<4B@=5$f&_~aVIh1GS^9xZ&7$ju<7do zXmVybWf9_G4l7!F)7-ylbkw1p&yYYAlNvT}5^z`J>&ynK_oCIj_)|JK1 zw1YZ02RXHaa`th!v%7jXIPh6eAXiC#02Uy=Goshd+!_`On8^hZ?Knm=FV_05P(u57 zIfToUd%vA^IkHkr-{EcGPl6xhk~dnM7G-;e`4=kcWLAY!@ia6+!PS6hSw*hobF{{G zC(wD)g^mNyNTLWBkr8F6Sr6CgFl}f9eRdA92A|6uU+UPQ>J(4rpLy&s?>a6QXnJw+ zA-jx>liBtNy%7w3sp@{Ij~+o+*C-tGvpeqa7_H1YP@RGd-1=Goa{pN_VZYISpF;}+ zQS@AWERIO`iSl|32tPyfrOhrk)HrTXdL!f;bE&6a=pL5Fmqr!~H1v@l$Jo9oxgK?y z$02i1)yVWnzc$F_ruC+<5xncZC6`Q#AC|kqJ4%!RV0CqC+rMYsmw=$`Y=y2F5Vp))G!l|>Mz3((nh-D#V1oP;pno7^jWw}WuQBwKC#I|b{r7O;S zGKQRlW*Wc9Um%Q_>%kJ&P0A&;^jE6%RA4g)hvo*yICp+rpjPjnkQB{@W~N$~U}lfy z_P@Cb5iqtUXhzokv{pEo2>ywrngL~7MUL5hEpcy)>sq6v4&x7T7|2^gXZh-!Sl=pGEd7TyM zXJ?oHaWTZztS2Jn2p>;|VzFIp+gHUSI5BOob<_@%8V$<0MV6aWTag6k`&L#5Gi>az zf!xC#yWm?9FCDwyZI>{gUbPsf)~EGp0AgINFO;w)2XXqq!TIjncOtErwO3-xZUE}< z?j|;6u*M`JEM>iDf9Z0oW#ea9J8f;kTP>YbgExWX4ZdcA3u6rCPR5ODSL|9gnrc&c zw*EC1V($BiKEe!C@-H`%luzyk;=RPb^In1GAj*Nhlt>^omL>RPXlKVZU_-e5mO}3cDILtDGd3!2qg+T>XoDG+YXpDl;T<~!6D>L_9IM| z(Y}Gx``O8~(L#Haq=(kj09b))*>RzvX1z^IIlq;(063^)IBDnJMJ~C7Ac9D=*?pFM9u~d3ylPQBlKeqydCU}Yz4C>{UXL(v#6>gaYF@XB=q{B;k|6Ch zZE$${262@i13j2LUy=w?zLltc5)YfT^JLd3mfU(c&Mm^iGX!_s|L{3Ie`%kg!2pb* zc;>T}2s!!uvG}DNw!ZS)p&LP&A7d_>a{~(mw;vc$V8aBMh{;2}ZSit5gZz;x?XOR5 zyJP0R`uM6cQOyIvQEJ{u%EA>oh4Ur^dnoQ+@^j$znaI&CE5A7*xrH7XK?{y{Z0esI z9~sqjNh@y}areOWJWQ!5;O4St+tnj%36!RL#=fFlSK)v;2hQHUVPqt~;`pbs{3!N# zG#Vo`(GE#V z%;f)8H{!iU+&MDaUTy4Vf4%u;Z+~rns*Uent`INt zD_ovYJpTb^B|8Af!Uv;low{}&Nyel@dtLJ4MF)%OZ;DCH zBBsU6_Tglt@-gvzrgpQWKAl^F6-b&8_EA^rrK(^>4==#oW!>yn%i#u=GQYtZ9QG@X79(o;^@oDFS=bUYYtizpRdM?)Dn<0 zlJTo-`%e`&d_!{>p!rnr*d(`@uVL~_T->3;y+9tIgc}t|^z-<#I z@C#dr=z-?2>fll?7e#=zxukmmqn@by95Mu?z#F?nrfQ$nf7 zRZ3^f0SgN$J>WZq&pBP;nLhzc0~y;kmf~Ke_HafD!xs!@;U3oxZPn-CN*Hdy3B-#f zN}SNRr#ufe%B&}PFgIwKZj5;OWLgoRoETMbSEs`f4W`O{S4|xah<7KShFmC}t%&gO zw}JA4xFz>_@?ay%QhUWAn=M&uFuF7=g}g^PZcA! z$nyw0q}`}b#Wm@~n5#GHlIKo_N|apE(&;A!Kro>~{8Y3Cn`;NypSZFNJniKs##tr0 z`S^<*^gsS0t*7J?YgXJ*zG*SN#;EiH6`mM2X|pCUK{B@=QyUx0ZMi*Yt~15?5S>Fc zZ@@1oX5%{9mt(t@+dWWNJL(i3YfP)o*EjUi9*yfANyZR5E-u2+_3> zVRxhGvaaR3Q4Rdfn9GE;(4Klvva#RGPhxQ%9BVNxrxdqj$i|X|f96t3A`Ls--_fSc zLASHVx@dC#+;n?$095U6U}!U4eNA%R^)0Q#^Y%*!&glp~7FRovXC z>U6!}C)JHv*EVoEx-eLV!O{fa=?sG|$dRE60(TC|Ex=47!Bh$umc{!Kfh$x)G2@#J zdBB{wBtOIC&hZa`71--`6_znrCjRD__m7A)>SmJ!rz{_u+Sk{~Bi9CJohsqSUh1 zsGCEL?XPgbfKGePIZ`rhwXGs&^=>x^eav(8K_$O!`{_aBtx9=^#MV(%uveuB3|A&9 z1x-`}(H7mr#PSC?)9d`@)#ou6j(2D^{$Fql4`H_5A*C|k@f4+V)-f2b#Q03NCdYjy zf|mf^!bsK6J404x-X3v{%ZxDHy3yskm%o5m8d<3Su~z$|aQUr4GqC+_8JzX6^_~9~ z4f=Os_V4lp>t9Ox-)c41-vsafpjOjRw_OJy{c&r^5TyT`P#DL}Az*|k+-NWW(AFIR z396B|fpz+g!YShU{xvZQ&B>7yN$AlXbf28HZ^X_iGH=IkAUo zGW#paQf-*aS;o8Q!pq?OdK`Py0oSig?O(5F=l3gL)Y{Wyi!M~*+owO7KkKS=2eJhm zEK6z~)6HabnK#U~wT{lNd9T2_xsunT3*=Eixet!jPD^|3z1WPdYB64^mQAW@9VS+! zGp~&Z)d~zq#2d+EN(2Ls7&&jDr5*IA)vK3cUaRlzrk8L}-S~Gm;tmCFoLP_}dwpv3 zZTACpdxu>n)+t&mtH55^3pa+_e__rcs3$@+&>_bGR(5I)LDI?Sigju~)#R{7X`mV7 z2x9bi^?&+MON4-braO-_E6X9#-m9oo?e@TAs-&gz7BuM zGcm0S`#^S?XjV2^qYu~H)8YuZp-T2uG%JWajQ5szH^4 zR}M_;*)oSM;K9M1OSvx=B{B`F!#8OIH!rIoP({1pC%f=*$o0jZ~)7VF6ZA($sS zXUG_o74_~_C*4@;RS@coNHZCC`b;0xtGErGlNzTgse>-KPKmzO0Q5Q5{+pH2^JmwIBYHC3U;tZ*9! z9C=1(b1)%S@Af}Qv5J@2z2J^Bpn4JL#8BV4h2BwQ_5C*cbS~9i*8w08E{e)s#!Px4 zD0|r|3fakkF$5?z!X_eoLb<2*rcf=Ol6(f_k(hH$!u6zcqSGH3mBSO=f&_B(%U0hV z(^*jBmnWFQ%pOt{v@U6o#L-?ook~Zz%S2I|r~~$5*nPu93~cNmyiDwH7B82xB55j^ zs+G6)HL)@no~$86VcJcffMIOH4n44Ner#Oc|1`v0$60=414M=5H-qeqekBh$Jv&NR zfSy9q*Gu{FO6Mx$7fz`J;?_`0zM2O_Dqme)9LCdBOd$Y{x*COXX1c=mtn$DNi}kSY z5H3+m!C|6Q?>==;jIjVRktE-8L4oKe7!BXi6)=%KR#&E-DrK5y|iK< zFE~R{g2p{RojG#B}55>GTu*)xMO6w_73G<-gNeMom0U{7t`fFcsxX%7Nt0olIOBs|dt`m9Gk@YxIGK+-ChGS58cwXOQ8%T59fPcZa6y6h->rUa1 zCA3S|2F+NN@j#9*$Q_<{vf5}qN(=tqdOPK$JzctT<{Em#2b`U2iB6A5P69nLF@F~1V{pk{jSYcBoR9<@bDp*mnIr`X%dM;_6jB`Lh9oa3ger~L{WQAg4`*r~FN^J}+{RC} zYjw{qb`+vl>0O~1v>UFwn=A4rduXrq+NXC9JC6Kr8bil+u)4O*I+iG@O#U3_*Db(XtKKMaNVtiKi{ThvzTS!1PI62t@ z6oIJ0bc+tbnZ-~(NE_ckO^vILS9P(;mp0dUf z6;y_tu9$RUm5ZelhZ8W5zi3#(MdH$V)Kl(e@Ohyik2VuxcmQNMZZ9NXCcC-|b?BFT zad}IZdNK8+PI3OZ%jSF7nTin98&NmT9(J*yjjIA7b)zg4m9n75G-skQF;Z%AP{l;D z-o~Je`R(UGpKtXrZ>|Vr{*F6nPX0T(oMY@#HO|PLxOp`EK}4RWNO|eM0*`s%X)fHh z9fGlZ#C&9-J54w;0t?y#0 zheuw~Y4(#W-!CDkw4+r8$cGBq1l<296oxuFTw#68hxLBG-+7uPEOU~%v|-=U!&Om{ zB?`3~3(1^I-9q}=oS#z#DRfsR7N}Vp4Rn(`bM$3ifWv8vhb@<#C8!CZ$I9t|pW1HSct4|L$Si*LMZ|QX%TQthY9weH* zo(U(!;8_~n^%is1-i9ql%3C9m=NBjs*Inp8)vmt_x!<+x$C=;1tTom@9k>4;o$+^} z`fs%>;8`)`9D({e?b$OnE-SjODO+v4(j7@&R=^R z|MQ{$rxQ&73!BKwM92Oco5(=N_(6zdWMigd`;W1SzaQlvv5BmIsmy<``TtX#lbW^d z$K1)!3tfAB%^Z^_syN(-LUT^5<7&r=MtEt4YQ}h|xo~Pq^=jR&e3G>UD|UW*nlNBd zu9pkE&1+Zqd+Q$GT~o}T=3|7kXj>4Npmb1)-KanIQ7X}FC(+3-QR(51k~x(>jy11p zSk?neR!CD6uJ^hDXX|Z*c!N?0xxEma3@d2MJxQBr;E5+>_zzZDO(-42L4 zZmPo+d0c8>8Th|Odvqt@^dNP^h$G2RV&`gVAYI8(!O#m^TL zYq>e?RdTH~&%ItG5Vn2|G5@ii`D&o;r@6GCtV?VKT z#D4(n%M(47Ip|{#Be!f(R#~3LK zH>X`uH++10PWQ7>El+qLRC!bb8oUJT5x4IJp@u8^U_EewltSoWMz7#{C{Ign9uceQ z-BrQ7)rm+5KN$?+_MpVsF8k4%hpCp=UQ2q6V`)E^GsF`OPayx<>_7N8&l z&85l5709M>(1svZT0_451+V6E#ps;ljl^HU@bs1C&hHRQru>Gnt+j`?Me7*?@5#l! z#$}YjIuvTL6sIDZImvdZp=CA!d8 zn}R)nyKSPbDsu zJ>#Crcj)# zR~7NI11cvrp?aG#Hy8=p;vM2Kj^x?@vZh5&ERp`prJ4MnC4NZQ_z>S=LY4J zhLPY;e#-GudJ38a1j%rOG}uxe7h}v{r}dr^G}tL#5#0L`$sB5%B!g7qjWV5S28oT& zOV0uaph%1(^i3BH(U3<(X+#vxr1>Y^FBoy7?~1g@(jrigi?YBW-@1HtjJw4S8FSaB0S_!ND^H z-C{Us$+?$_HB`?FPEDOcx~ZS`xx%j?5AI|`2*I46(E77NWW7Zht4T0+sV`n8t~ zP)>k)l(oKc^S5xl$w**ESU8*&&O1|$W|Bg02YHrt!#J?Fq^A0Gn4myI!X0RwcW5)Y zgE<;%n2DFHu)}8i0I%d(Nd99s{?iy^U}F3mYM%8^f$0yd;O}JdZ&<;_` zBd2{O_;`fhPTwEjRnXSP(b(o+FaBOz{5N_$+g}RW-|`UKe+a+{`oQDQIz@(>&H)O$*1KVY^A(u_;6mnCi{cs)3;KN*X957OTAR31V~! z4T?1r4pXjO?D_rS_0cOpKY>`h>mMO4SIlM>pENDBO<3$BdI_HN^6yhqb0BZb zbyQ@QU}6aLaqH4RxJrPzh6EPs~Ztn=+*f8g?piys#-(J}i3jxzfQ zBro<|n6gY-%$$fq?m>#tsY5lE28N!DfVLl9sA{@$LE>xZn~>t4$W!3b-4;sxG*g0|l|WbC0>V zpOaAii3*mu1Fm>RF+Y;Oe4S(ycz7XQ5DcIAof}Bsgqf!Nj^UP;Xw}52oflxumI1$i zTP9i^{)LgUYd*m-ZG1Y9Edz@ z#Sz(BF^`W(yQ3BX-&{J^MPK^h8Vs7Uo6!LqS%)ufXK5-h-vFW4R!V8v*J)Za)q&Cm zfte5{URgu-RDCLpM~SZVCapcI!sSo`=^Uao&1N&g#md|}L1IEy=`WC%nKk0}H?3>N z&-EyL-9VRUq8v$Ihbv0WYuHraTIn9>Z5TFqoND<_Cc&Z4^^P{$rj#0`p4VmU>cz2| zm%?4gfU5ZG%X_xCo6)&8udrg|?K}Fm<&JRR`chCXym+25;NqeDX$MQk!cwx%2>c0l zyXJ!R=L4A~^%tYi8*=q8I?8NQtrn!Q7jNmGMw`u3kfNjV!ITi7dlE>BRMX|_arZ15 z_CPa(*HFOcAxGMoO2_V*W!}LyCy^c7X7z+KO*+iEC!W#f(hNiZ3t^2Q+;*A{mQA(I zoEjqs#zw6Q%S$~JPcUB{Nh`OQmJ(1S)kk3?In$9`F`K?l-po?{qdZ{TdMcWJL6@{rIwb=71`g`!u3bH{^`wlW(%`&6#gXT<5GTbH3IKb z3`y(;s$ZT$^On3e>Av%++F$G%YTj5|395G|CS(sXTyJMa9P;?YSaIoApc|L z%fA}6%8y2kjo|RQr_oPKF~ws-|&b5iads*qt@fluk#>a@8CLP4b$S+3gByXI-pA;Gu1Q8AR;n6N1z zWtIA+4=s zeNf?3FXDk&!OjA#E8MPp6L88MpvP*nzv)`Y+F?_?Ra}FlLadKR)WTSu{^+ z2GQ+hv}N>k8|^w8Lzk06x&938a_P)S^rTMd%>|P}xUS!CF^~_?1N+%OAQtY}h1EkH zt11fy(KlTEDZeT@-0gg3!5abj`(<63*3k?~^6Qn4lu3yi!)}6ui~zKRVK*a5Qs`?q ze^;&$1+%oCPYiyOVawFWhu%jCQ)>b!f!QeUUjPdHNl&l=vs8~7lgX#j2nsb@ok;?_ zTuu2(CV_Hp`}mL#nG=X`C3*3&o*M z%jlQ0**^)taHVc#8KgD@LL@OP-JX>d#t+dtWtuDuMjr=eBcW9+333R(gL2qw0T((B zW$F_rVIWgtd6LHBT!?0NYZA;tO|XacUsIReVH?T^p1h&#!o(}*#K?Jp(8O|+oAm{W zH1rH+Io!sCvEs#R!=`juZdrxH;$fzJ9`EK^lW_|?s^<9)UD!s*f$G`%Dq>AZ`zb25f);B;We_DLx`Oa) zCZ6BQyZCcuMQ7M3j>ZUi9r^P6kM#Axk`A2*Ob7D34^y`U=w7-sG9i-(JIE|T(Gb8v zj-9>pqR6~U8Gk`wzbNZ%N^UE zO0S-ww3ZUa$qTTQIks^$2-~By)K7)3E8UNp;*qf-##UZ$d~Ri4cHX@)=0yRg(17

^r~ZZQ&xw2ndcfbN z7TNw1&HihG?Qi++-@B2&t91X1w!-$iZTU}}@IL`t+kL){eB)PiwcU8`D}{Zn&T5U^ zG+uI~WQ1huQFQ9lKc8_=48r5iT`k*4fRW;n;Cbbq=O5Cc_;tWHNud%8IaZ$ zMchk)>L;-|g>Kd0;?>RYB1benesfq;Lina`6fqMk0)d?mML3>wi}U`xPu^s4G3{a; zo39(sSQ-BZk#nuKb=x2PgUH$C9Wv>o<>}G+1kPbg>prJ_89S}^df}4_98cssfViMW zDFOvMO$+<*!8pf~4~vYuN*#sE9P~H5vrsm5k~fm{Cmks0t24|2vkxdFBnGveUNReD zKD-LZf(iB?{Y+;rH?waq*I93jdE~4dvQP^9%|?060hPQ`Z6Ng(A>dcuWQgB6m5dW72D}J|sdjp*(v!J5vi;VTrRctzG zi1L0%h2zm-bG!MvwS4Xv$hvO`=C?y86niNzMKYnKyY<6Ukb%?M=C5uUXl9~59K8yC zAS&&)2`J@dbm@`N*%#W#C@-n^(DBe}wpiiAl)_ydUiLur;13vEZUxFqFKZSXlQw=< zQ3|T0S38s1Eq8brUnTF9@|LDTMAoZ(C|A7Q?Y<=flUXtzLf*rao&d1FvtR91FT+m< zN%*A}=v7BU*h(gAs-hJSdn_k42unxpYO11sZ_}tGsnHz(*FY!LSYy-_05cdCXz@=x z`lRM5%f_&0QWF@J*sIkG0F1^ebvta4<1d-=cc1~{khs9_JKyWMY#xUU8VIK2L=h}{ zLl}uP3jirUit9waP!*? zTTF075}LIx1TqKf?+sCq6|5{m76AKzk)$RCID21xpQs(yV6o{hrd{qe7Uq5% zg~mf1aC5nF2JQ@B3m$BM5Sh3{L!jHUF;A_A(iP$xuQk+!_T7M4rTe&lXbu@lOgVnx zn#wwHSsYuFH)}i9(}(~_n104q^0e4AKUS{1SKndLrXY`uD%kwXloCc{$S48I*WRXF zG!2=tH4(*YMlN=lmZv7@_ID^FNuUElme1q{3BY)?qACYYxygm$MsQUl)}Qa$(u>c}|e>#Jh^!X5xm4mht<=<=3FYfH?Z^Sy#Zguogm; z;t=%Oaa6byiw^ADDAPsYqlpu2>1Bf8$4V*FAPZ5Sw4J|_hjlHFWnzLvVBmwtC5bfJQa;?( z{VLFTB%sKrGa+f&?-w~%w$4ZyFe{`4vn4zvaRz?X>4`()jBM*u24Mm?`{I*e`o;AVyxWC+#JQ#E4bY*trM)TDI%YI3Y%-Z zuscVmvoZb$^(JwN{&i)4zZiG#@LOHmq7@`We*3+s==n?KM(gd+b~wsaDILzViJdvZ;a)w6Ow7?^Fh_KXsD3V{ zI(}H+!C?nA;nc3HH5PvhnDsix$4792K-U}mr{3wO69d=UU*+&u zSjImO(Hm9fYA`^4m;b@@xH$OR zeCh1yY<|%p8lAp(RzM9jDB1-qO5|e<*$Y8^u&(H4Y^S_OT|yx5ytEUKtrgN)TLiK1 zsw!-3nzvE&Q09)h@=x)<=xFP{eadv9T`khSlrXEXe(a+26-Vse4Yj}#jzGZ5S?gck zB@DC_B8?)3o>Jm)#QN+v6E3Jpx?t0$uXb;y5-g4oU9%XwZ~^%!dxv99;)o#piF+-* zz@m8MQ#MM9IrM2D=c#oM946k` z_oN3E9BS!3HQ`lrEz^Te0SKC_m}Ii=a%r^gGgyk{C`=~_dN9(O_<9|sHWOY>j=`k} zV?6qS^u&uw`*C?LwmNy~rs68(5FDa2g%?85G`6ng6If3jZr%n`3G@}H)xx*lu$>kU zgZ||R7`zkdV0d^pYh3Rzv&NEAIoVyfj?LQV3blJi+c{N!U$o4lVNvpz^yn2+W(=Tc zxGVON?{X9j26~){PE4PqGkb0(M2zQYP3S-7%+r2ZtOH$qVV$-CV;Tld<|BLdR02$YG#Vn!m$v9+(D$jtOl99SnN zeIF4==HMQ+kCQG>Q-luEo^atRDS$S?Eo@u;kF#xw>9s)1$9g}PL{8d~3aPnfz~;n! z@eyP9pgXZxS7EGKUpdwe;kUGK(_X;VFc8%k&4OaHI=^u07?%i4B2Tyum<1XR_Hc)^ z-|PcdVI-%l!4>SyI8M;WvfQ;<0FB< z;N8R3F#8x4Q;@J9B8(6C-wSyfzQ^D1B3$|MR@EKK)gzcOCvV5s?N^haUJ1)zm3oSl ziQ~md1cWqbmt_gv)>btUEGW5=mGb$q2Nm;`VWx?aqAqhgIQtkBd}L!_1|}CM&bUb+K=A0x;^k02kRHmz{7BR_ zkP?NlE@PctBdQNHv?qlnjGQ}0xG)59`0H#o@FB|srj|1t5gVirDPiZZ)y8^I_agMi zEf-AWNs0>C@y_m|i(%MHvIn{7+bBwX4(%snTo(-Y(MKZDUPz z+6+ZN!J~9R^eAw~IS}0v_~G1avV}Ln)GGDQoyQIY0j{P4;<3uGS(y*tQ-#2S52|^e z>2MM#-5Xi5*TuHkZPQL_eORFZ4@SPQ{`p5vpTcG3JanS+j8#7l4(N1wJ-)mwJo0ut z?VPiv!~6U?z!xn}Q1nxWkv6AHl7<~F19tCZ68@C|w?}!ik%>7JlML|~#I`^$6{;XX zzePVQXc(L}0Xf6FvZBLaBvei0KTYRn!q5^H!UxrI0AblrOPjJYyH7`ngjgT4`JJWw z`3^|digoZ1JFinZSp(oM;-`l+HXQ(v-{u8-;?6 zju?VT+QvVe?3ATe`{c*%T}?s}kc5#-^AJ$ju6Z}GlFCl_cE{XzTsV=is!gvwG4Q*36icyU#Fz@ik$u?NoVLkqh4WOQ8PlVZ=^VDSf%CmBx!4qDaihLt=12H ztW9Fn%t!r4QZ;mt=rw~0xk3*dD77Q*iFgi-02L`A7Xq`!Ocxh=u)kN7|GRO2RQD4M zD!?>lg{fio?z69*%@?op3Eqk`R045%(jq_<$lwm#iDe%EJJ19n|4x0&$udI<^z$-u zsWxw%H#7_(fmwZWO{`Ykfc0YIieS1A2e8nPm%CC0a4PLOlfHOwP3U$GW?ciR>i*?g z8I?>=T%03Y0W+CpI8T2K=Rr2HOpg$2Jd-D|+`>B~Bn;aA)c`+iZWeS<9~(k^{{@tC zs*eLcnbZv-!*19Gyh-w;(MSKYs9QQ2?SVS6t4%e9 z*{uZv*RDrb^i;;H_1WV*5@y`F0$h70Wc$^%NU(c+@Zl8G)uZDyOyp;jbu`o{UT^3S z0Q(`kN%zaVt|y>5FvQ725QPOTL-GNPu7|nvl&l9GmVS4DRf1i`K6zc98X#i(?RHOa z2W(h>Ez}QwjMWoI5X}bn>FIo$LOdW29nt4}Ogo1S6<;d#(%)N)%GxC75Jeg_gDHU^ z0^WWZ;kzPZU~-`@M{~la+?l~i^me_MK2}oup4QhNOUp6923n%a@~r{-tUZ==I|t?+ zUtV(F#FBGn(jMJni^(d)%5JJZ^9SBn?=E)9#cQk)?}f?E4^n-x1*Su`$C*H-Xl5V_ zPTRv@>#^?{_))dv=h8;cv5pfWJ0I z{%h2}e+?x3ovjS`%OLujwF3B`slNXko3c>lPxjJP3J^Yts3nCv3H>7DHLSdp{`Mp2@%Q6#LAVnnPlh^B2a`~&zjN%^kU4xmFYI_d% z%Mj~1(^Ru)g2Br*C&ydMtLL(p-!7X5HMqS0)uyoyzbG3gG94ygR*k<)VynJ38$Hsh<(74 zQh7$nkTi_rk})C0p+GkxA>JMRV&@YX*7x%&M+@DRa`ThPOwTq#2tt0FY3P9k3Wykm zE&pykcf_)KvlKc;ZCkB2LKI41cCqkpp@&foz@aXsMzL>eQ{KmKS@M2`zCWH?OxN;i zY#YTzgrFO4m&@WX&tSwc89>p?Vj~~Fa z6@F%VWijtz$2=^P+$$rgZ+X%yPID*(9|+7;e;FL4>!rh%o$q;wXEDUpLYOdGvtZ1P zE~L(=;^$DTZZGVKbvF0ZUt>kd?DdgaY^timTF|)9p3+AZy*%C+Y^OxLjxnauw$wu) zs2|Ljnp&Wo7H*O5WY2z~!Uf^1W#V05Ni3@GBFWBaxrUJSx3*LqH?O(08*8)I_gJ41 zZ=VI(_)(kEOG!g>eiAI>J_x0SJ4k{h3kbngjGH3IPM)iWR>w*o zi>oy|e=uMr^<;<%y*`bxin}Fm8OtG^!H!i}H{IFsJYhk0@hl7e;zS&g&J6gYS>Z|> zZj1U>kZLDC21K}gUjbO*_w2LpY{X$kRx|z<=rV{zs70O*Pl1I|0;6E`K=6yx`>hB? zLO;`%o2pp03Em^}YyZwAonP<7Snc)L3nxl2f4Y9a=z(UmL>4`6P0Kj_dY$6J)hj&N zUM=oFhOj>kRCb2H`4t}{w13Xy{K;{d19T(C9AV*j_zfsrAZxvx5{aGIE}=zj9gYx&V+8av*vggrZ(* zMd}(0hGSPlXokF_(>0cMHc6wDff~*arp=fP;VTtu>L(X3_inQ9)$`SEM4P3LjjR1K zO&}{ch3bjjeS*&Eh0zooh(d&7_&WDo>%zJctX=FSy&pbi6v?eK1gf9U?{S^0~b2)l5Au8FUbIkD%sIWF&k$6Y|GLIQByJwS(TY!VnsZ*`ENTC^efB z&#<9K*+2lOO#C{Z(=PVi&&YoapVIXuv_AX^p@lrYFP4#CFoR>N8!8Sr{u zpAQjX@9w93c*JZW%vJRH|D*0JqvG1OE^&9);I4(cy99T4cMtCF8Z5ZGdvJFN?(Pl& z0%?->-M;s|zN7p8>^JyRoKe)MUA5U~tvTnK^SfNLPiSN6MiZgjK^dE|zhS%ci!XQS z$V}3Opk#mTOnRJzt2hLon+Ie2dT;i7k}8?;Sg77)vkG*6gT!owwbB=V zbf#r=cpoV%KD8eE_xh3}rY9)hE9#<29fdId*biH={$mAEnl-_oUyP!7>~19XuqAZp z`kVwdBr=LcJ_I(0MP*~3@l)h&Hw4h4sy= zJQMS@639`5LOXpGFn-xo`T63`DZBPM(PCe#DMAouiCqNBdOr;%=M~sMCUOaPPoSb3 z$ZCv1Q^{5)tBWAeL^jq|f^fi6@;mF#vjK<}T%N)Um3Vx(aQ~#q0a3<7hT$>&k%xr# zM&Zlty!xJyz-c9sKQ&^6Mxg(~%qzPZvZ}3d(#^A7$jm9oHX-xhgxOdc4t zd6Rb=-Mb>E;`otUy7P8dgqFhLGR$2`U`7BWy+;zRxYyB@2~1XFD-uEu51+K&q4Qw| zdmiAgfQUK$({WFKAfBjpQFKeh7f&^mq5apU<(^J7=6Dc7Ly#s~kx#0SnUNZ-Y15Ek zIn@p(IxI77=C)jr>Z;=A6j*LlIp5%QC5|;jLI1BPqY*_p! zRL@guV_hzz8J;ANL*`%-DCRp6FJs}%sUf*O47)m*cux@)7{H=Ne&Q6ScN7;0X(qi8 zelGp&i(+8lr92j^pI>dMVA>L2+IFJ@K2OyScHsmOiAarM=A?YDu{71UbCbiN|+Rhe} zRXT5Wpfu2zm#RC?BG+pGB(v9^obRz{Xx$NKT6b8}4kgA7h8Ka!8zhDW>qWF|ehtnA zIq;#)uGZ$)dKG9mQaT5GBuuWuqo4+e`MVc)f?!JNk6OjFHjPx@N+Zuw0}0UKq2qVe zWW}raQLYosjx)($_>qK%w#!;T^}^hgbbo@meAwZ@VV0i|i1smk(_-%s)7eT(NR(Sw z4i}iyWeXJwJu*;ve1YVu#Si`4vg8k`0f2+^FR`W^e^3tpJ>0_YBIG~nl0O-e|Las1 z<8LbE-=?xy*xBis-o1ToU97Ej{!N_0@mIp)pNvp(a?rCeGZC`APfRhf5VCNx(KEe= zDzLNCzsm#(bzm5T3ANsfz+XS_zX;hm8k;!&^@`xTjGg26Koksv1R;YY%)h-G&R>7` zt26#L`h@cz3fCtzZJgGckl(8G{OxL)x$uCmSef7S+g0;otZ6toZ74?FbGRi8`?#|u zv&;4tAAx}rfG$O=P}LH6Fx+}{Xfc;U+oip@3`x5$MSe;$eLNV;mrEIf!eoJhjx`@c z9G;jdkIX-o6v3jvTnseFVjNAR9h)U3!=9+)fC9;mk0g8AU)JbaSxZbT(@t3KNSOGM zA~QTyR>mMoDbC6Ag$>ENK+>X_9!SsPt#-gnFr^8qc<=r?+P$5f<2NL5{ zo1|DHuOOjfFLC++a+QX0g|r2h(v450YW?yum?gKBE03vwh|rumzZrSdch4I*JW6_<><0`%k1XI@)fYBFE605!7A1W z3yo#w-p}|%cke}}AYC_X#i6o($o{nBKhn$^EGeecU_&s7s`|>M*%CpzLExLwRIp>m>gE=Kayru{lU1bf}Vn zu}lhSgufdcw`j|c-hHPntEtc*X%BmE4h>wr!p!kN&aXX`&|JxqQRfm>y#3kTsV!ME zOKW_3O`wd(JT#c*V*(*5K_WA6c2&0Lcku{um$5!i=pd1_BEwHVbq3S;1`bv~I(x$lh^cs0wR3-7~2|f=!~pf4PeKv7+2_dR31z)u+b5h6QH%5e0&YR z?_f9K>U9MqJ{ZEu`5O}LFrAeJ7XFaMr-lTXCqFlG9hhwO5hiK3j`Jb96nbc)!XcHD zU|;A=w`&T30S?pV_{JKEsf@4*OYM(B`mv_g8p&p+YK@~LvuEo4Qf)sJkADu1)@_;~ z8Q3i8?qe~!a+g6YfwB-|1P655@OLC-n<%`93JJn{0s2gcCXpXGum{kXc&qaA*!vpywpt&>5ek7WFv2>Mf&?DV@#Z9$ZR= zFKa)wY~R1QQ50|bdcDqlon+YX{lVyYJ2#YiSiG4Rad(*!jh5eak3INhD8Jnqv;Phe zVWeuTcD->{?DWI%H-W};;`up)pt$haNm2IlIuOFSO3yw&C8DiK!rG@es@;bJVIswz zAmErF#C3$tzzfEx5HInuSPL~taTb(opOS=@F2Gr&lKnQJ7#vbD2ZX)caMK)GO5&G#X zs$(A>0tpQA2t%lN^oivEokLqV>FB3 z_v4g=2n&)!w>5|Dul>lA^}ZkF=(?l2QK6=4S!1!YS1#kPU*=%sHfx3ur@~GV3oN?p z`@3Kdt@;mL3iFMh&&|M$38;xymtmd1>z3#%;^a`vGNa-ctt8IHu6=@0@0E06PM?Oy z%;gt2mNR$>fH3s!qDdnkwtb7p!Pcl}e&1P3;+AgU!`%sbhFRqoz^8ZVBBru$qm0i= zlUA5B?ACHvufA)8!n?^2c1byg{f^|7I&*Vm6uva=-=(2oUxiUJMHC`HB*3Cp5xp)) z#V)+(Ec{7D*${r(n}R+ZI{Hu%S4r#jycmHD8#x_c8`sB+zJ(qe-K}l&^me~A#5X-n z*WY>06^61b?^lg-bIum4M?fnP&3>FYo`?n^SkRjKa4JjeQ{TB5J%1& z!eSS0C}$GHzVX6XEy#&Ge*$*W7Lr2+tjkiZ%H51*yVBo3I;!p;So;|qC%t>->H-#@ zao+@%g&|eJ4iFw&#qP9QzwHMb&4E51(vZ^D9UV)r*4D|{SEroj@oYRu;*qlSK1km2 z*=F@p`mCzLJyacMG|;vNy6xX8GdFjB$#$_#DK9>BRFaN0YGdcMaFdYxk~Pk=vS-^B z(RP->%R61IG zb=z7bFG#THxXV5I+3a?jf-T=r5#w+P-*q2{S-Z_Fygw*J@U!QZfi%~$yB6Dmheryz zVQ2{OPc90#=~g3(urwHnTNV>n3W+*p*0@|y#7|IDyHJJF0e*Yvt9L zO!qaJi%a;)Qx9_ZoS;pTywlH4bMm+DMy6)RQ;K|g1Q2~m!Fbo=*Q{_AwPUxMF-28F zVpd*j>DFpFMD>x|*|gASuyu+MFNCrqpGWt>h(Kukpj14QCb$=iytiofp;4e-RiX0m zSIjK!kv7J0uo*Zp4^=#ZTLOhd?xfpspSc~xIoNoSlOU<`z*h}DapveW^*={ysm!ex zvhvd!hUDekLy ze*C&7XG8mUUB>Tv^f!OQ#=`dN3BMi#SULY-K7LJ`{;sS4ZQ7Lc56JZY^CskfPn-T; zkK!*N_bQQw=8{}q`<|vbrFP{2O4>jf(ROF! zmeHVPT&uBkB&~xMB{C#pGDEblfBT4kVj7KBPM6u8E$nE@!E7ecr42yoKK$lOrXg|D zw;&w~KykzoAw_HG0lo3Mw{U7~!wd>GuIFZm1`+Ec9jjxJloYF{MF=1qA3hLx`+k*E zK8NUNH{oC5M04sTXFGB^+C~@KLKLOo`bx3i{&WGSu0MjaVnMV7F2)$38G5JNJ|#&HzinUVW)$iQt2$ywRGte7>nJ zXnk-h|0&L5YN=W_siyxLQt@%J$~if;Sg5jX*qM@}MRB3NDhbpLclf+erM!3VbzZ9^ zxvM{&7}^3uuOgl$Uoxr3j;QUNGF1z{F}*t*Z0X6XuF)A5*+704`SxT7%k04rjEPe8 z5(xE2*1i@!R%?g{6*|@7Uf;2w$mLe8*mQm!8Hnyjn2{P94JtZhb=+Z8A@aNihT@{( z__DqPr-2f@E2fIp=~g!MhvNB#&83vNP>O1}Bev@u%1Z0q7a!%^$U@+GHR86C-e)xp z99SwkG>b5`5=A;wHWZdCDdHJqQ=$3&{z=ux@CgnRhs^IwlBAbOjW;=EIDNrF#6cEc zIf&RHHP9gp_;i<=5;1^hiLTK(x+}7C+Lc&$Aec@fXL+=~S{L7rw1MFI;z=M%oo2h$&g&qUmZHWhj z>Kp_{=0V6AUy?s?7cu6u|2B$!}nZGD255Km99!pi|Z;qC{@+%-bp2-#oE!2bSy zY&YQaKv`=yC17BC_Ux4E!Y(>rDr-jH|2`Kfu{U#_9g~V*FP74G47@np4?j9MpS5vB zHoQAJIXSScYG^Ca%WBmHu|mZMWan#it&JWP@6~A2qBERxs1QR_fud0f_nqhU?rv(W z`Sy`^#X3j(e5Y2I`z+_JF?#&oKB@F9p7a}~q6z{7!RZv?Jt&)6b83+EM0PP%$Cp_@ z2X~6eiD%QPk?Eu2YEIzt?TyZ>Ox%!3&^ObM96#hRYS6M_75E*W3}EKek2dp=MvmK) z$N)DDixY`ZZG+2YKYxI3tLFb!r~c<$9qkKX`*6H2Art?&7Yg(AcsOLLG{6~avisJ&=qLC#VLCCQ@u@a!5J_~NoL6mO&qQMfOhvK@CSpDc5G3wE~j@NDB*H1*TqpvLp)UfwEpPK zci-RgvE^mla7y7+wb-(E`l|szK8wt>ge3}P0HJemG*|ED+Sw^?_fCIdmNQkUv75)d z$&6X{fHS-&OJ;kCrGA~%)tlt&-HH}9TZyd_4I*LxF@(%W1)`2O14T0cl?&X~+Jk^d z#3Q6^m`|#$bUY)fZXV?`7HK>gH3R?%27nDn1y~TbsQtjV*-=p_j;7Z{KmF80HZe0x z|DG11qMeIoW0j$Cgxt^|3QlbjrRtzjwCE6i1FpuiY&soZaKuKpXwejyGlYcJ7Xsr) zpA>5U`5*&iAfv9O*&`E8f1v!)s0`pHHQuldRG^|`3!GpJa^-bdP>Qq*7@-pN_2S?M znzOHHbZQCj7(KN_ZQq7TI-smwfT6!QZ-~muSX~mkPrG< z2`2|^14m59H)=aBpwc34mmMG>r3TsQ;q;$xCq<$}oQFrL%f(YUaV*|?28k%+d)=9d z#z(~6M9C}51bMl9Xcw!w%+Bm2kO&86E8m*+PqDc{q9upJ`7nS?Hnb@Bd~dZ;dyv#q zrF?6q(w$|F``Kn;ZcRg}PnwbW0)w1Qs+((w4{v2Z>n^`wnyr?Jtee$hnXtl?uv*)Y z7+XQ!^WA#fyX}vYH+eavd@JvC#fq<~)ajD99Gz6t+8mFRZL2CfL;4^Fzen7izwg8S zh)DTeW_cTreXsOxuLFl0Q6&qn9<%`a*<5 z6;2y)1PvSCCe>#)+V{A&@SvYV3~pSE52a2V8b+AE2S1m)dks)TA>yys*Qx zwo)LrXdp$e&-BVq4fMI@uppHV+dGsO~r(a9?o7!zhuYJfYIXKB$_Jy=EZ zKozgy_=Ivtcq z1YxQk1_p{M_xTt$u|}hK;V7gGhRg}G-OuY3--2Qw}hNpYMbfFv*)H0Sn3Q0e1Ng5igK>O)@>J= z#H)i1ekZ9z0z%vK#3Oi(43{tLcA6fBC`OtNUZ8I?e7e79-)GY6RQEGM_{Q>ELZz81 z#mzo%dZ>%s(H&y}BM_(q@M-jr$3gCe4F00xy^8NomxY7MuL{{=E=tB4DNoIUX8V1)$L8ZaD{() zw=NxaA2u7dZg?r+Uh6&QN;p4P6AeFU>G)_RA28AEFr+B&#(!nDs22RPo;1KDYJ!l; z-#3Vdi($VscaGdv*&e!fjt~27P+Ik@8Gha(KPzxk2pA2nBMfGhL z(r1=&xIga5pW}y3`}T(+hdyJK%kagSP>TpEN^oogFZSpI1Dw924*R;YUw^d6VLkC|shEm}Yhb2=s-PmN_IGTQB&l(4I+3HA;{i6vCi5qq z(?<>@lTFTU!i#7%eSdij+9%hnrW9NwZol;ve78JTK{;o97&@dhmYQjm`D|HTm)PF+ z;X(0t4G%C`B`&twz@0P*^a7M|E~p)JTa_+CU~)8vsxUZ=NfV8__te`XzCEtXCCGc| z^di3UDbVp`Q@NzSNt?p@BLSJg%)#F_hJP?L0QSEcT66x%vHZ8lVmNAXY$+%)cP-8#39ADu4l^Cmh@H8;xb=BF1_%e`y*`ex43Oq(OHs85 zFvT+sVJU?_z&}6sEtZ|@&E&JfKbO~((fH(W-^Dgvgcptz3ZdLw^Edo-daT*>4%{+} z-MB}}Dkete`_YVEL#xwm2t*VA1hSkZ!-Em^`6|9y?b4=r z&F^52B(^ymIUjnfCoQf=xHLAJiUFd$V~=U105R<*`M9$Z?HQ_EBwZrG=`PnUrLL~H z>k~lQq}1r$74|0Fq=C*b6mq|Tngp`aK^lCXXe>RjbT?dyU|`mz!W?$aRdoP4g{k6c zxml-Rp*s20dA0I^+4$BHK`A>9?O7%)t{(zsX!JwQPXt>I@aD;5#>|_;LdDoXN+Vrp zV(7jNc+T71{91!MQzb^)giHmh`b=$L^U-`($XCeyO;sep(XO^hh;2Ukb+w#>}r+m_k{gLz717M zjY89JB-$+2s4?UoGpqqI&xJOyBV=7t24H2LRc(2Ly!&d8B5>RBASE zPT05`?uM!@D4&0Z!jhZC{t~?tH7S>ysVOuOY6W9nR)uHQ5Y2OU;EnR#mtUZ5;z^j8U%0o#p&OwkvHO4NdRVEOI zV7v+?@@jQR=Kug3(+TC2xyyWIt4n5jR{Q5~LbZBmwCg->32>wY`pXBVC}Ff;wF`-Z z_3d;_6rT7jMp=2Ju5OGM7q(3|w6XcW+wv)gwlQVVqjBlgzXgCNO(PdwR)l(05RKqF ze-=LMjao>%tz0Ku`+l4Ty{#93Yd7RznSNy_+P{T~jUOkT_=(As`kCfhP7-hF{7w z9kB?$UeRkTJHva#&u4IiF7>LkRh5&{@k*ts(shH<6cfV5haj-HwxtL$mDD4tj!?_q zjEWIi_YnuNg!h3Evxuv&EsivI1eLoj)_A$z>*u$@sFeoWqmmR&=*+cDM$%TKOi9KP zr{%|`gTcc%8wBnQny%vY+QjpdYAjWhq7yu8Asqy@Ts8|SbWxS(i4B28JL!JVVHb{H z&b$lum%C(;>z)UW$JrGLw;e2Z#BDovtikSocPbqdcFgFH9p_c*PYck~dt~b6)Rgk! zK~NWH>4{TGKm_qec8?^7nzJ_p6Hr1!eXOpStAi(j1Fgv)CcY|d zh?DayuOTe|+6tS9CtlkMGl%x=si@BQK%xlinv7ZO1flz-cc-HX@r?XRevu8k;%q<0 z^$`{kGkBY@FaWMVC?$uD&Nb_}CecX>gen@khJdX2ymR_8av~rv4Jxi65E*+~_j7EF z`4K3T8?Rw&D4(?mWrT>vT;vhRw=u;~*bJY={;9bG-^352baB3LNl?1?S@()n-lYrNz2XV>`LdK)S z&z0BfSWEP^Kd0EN*dPZHYE(%iq9qBBPzhVR(ON#*T1AOYtzx)l@pQD6jDe8*j_qd# zLAdc%QmNFfK81i}hb~VPIx#erKeH`Y+;z$-UC}3dL=pT_Vy+} z)(6{{=hBBr-4@vXG#=Yyp~3?pvaMEGITiJjL_hTDCjr(m<#y|igu5&@;>y)jFSlm| zLklWRbEQ>ToA-iELGl1fE)eY+jMg`c;C+=RkW&n`t_dvT8mR=B;>(LI?Wg2Y{05+TqYvV*KN2t)FLRZ0k4tP42z{OUthFiCPgQ=d$OM_?dcD} z=+|f5s6ajta3m14SYCPaNHTw6%59r?yMH4t(s9QMEw;lx;A#U;=A^y$c7ilXs7w(G zX9>UAcdE%kZ8P%v{O)A#O{~BTZ(RH;tGG03L6hJWdL5q;*P1f;JVGvYx}P)y?&lT$_IC6Kn*d;D|5L)n#`vcw z`@f`y{@2atKki3=qJ)GDDvFYXl;+OP_D)<33}!|~^k%j$^mdMB40g8G7PcnFc1BLW zF4F&~yPfSm_x7 zY=lhj+Abz$4nk%&HhN}eHbQ1b4tkDvcIO|dy4VZ5hIk!1=SFlbeLn|8n%l7^$eJw=4Sgp-o&iycX z=g!X}8bXW{1xX$$B;kce8;zbM&cgt$CtJr4hu_WYW~9z`}DY&Qr%@BM(O9K5_nne4htx zx!g6t(GIPt@Pwz>-1YI(p(&=en=~p~Gmw2{4YRI3Q}zxInZ8{*cVg!$7pRFS(*^mW zjm`s?acLY7^Lj^#ovs*Dpy)SQ*gzW|^V|la!;74<_P`kTjK24Ga(HT69qFiqQIl>y zT9lOwGtzhw(WI^15|e^q>uf(3zbq0{3c#HRXI|CUFR+?F{j^CqT~6TaaFw`oy=6KC z$v)N1-vdxg;B;A34FwVAOB#$Z2L=VM#=!QU%Z5|5M``QID*ACyP>nPgLqT?k^7_&@ zK*9ly%mGk32n_5zet1}8H{Cw1quJWYT}wHoIN(zhLAl#KRUl<`@N@daCBqm4&iYU+ zm_~@z2?|<5Z7<50b?ZdXcQL676n>c2w?ZVf5C$8@1tE=dQywQL$SWcXMb{1a#EC!h z`e^NDDomOJEqdz3C?lnkg zv0Ud`*-Pjh8(oFgWyx{Dp6kCmM5;mf6HC?;F|dbrxrEag*q@1n=sKG~wu)s9X?LC$ zld?My$N=(;4hB{qH+6I;Y%|wy#u#AP;ZtA+ymW1M{Q;<+gFKQ0`C3XN_LTN8_wz~X z1|#;$`i7G_$#qM-5J<=?QnQqjFqX zhCw?O)ah|u`({jEv+OtNlzMI~P_43S4BmN<2e8f;jjLBf_UpmtDtzp3znNFvQJm%<-&`^KU-TlZ-!X5<$2*MSz-9f z(a|nXj0)A{`5#TL!(d?CnIS@@=}VvL&+ODz^VCb5T3%hvgwl1D6Pe6))5hzq6{etu z?&Lv>R1kUh`Hnv3prrEyZDF%O8!TL-o{XMPvPMnAQ_i0S9te=wiEdU4P%zo4QwFfW zT_Zo>jzSl^dz4a06PIKtjxgR?Go|h#Xbasr-M>$;VO{ZhcsL*@2pgc*g>-PNqo4=} zBh@J*uCpOh&1!V6gMw$t}c=|&KG6vD#RoTM{mDCYp3@&dNm?R;ZV^jS!m^}BUrRTQ0TYI_XqgIKas zu|aINEeN@HaW__%UZr6;M~;ocQYn^=AfKCmVZze!^bY;RR;m|9M=ewVTa-KRTqc=7 z5ol4-mW(AeFIi}|@ad2`IbNZp^V#`>W3Q0J_hz|b|2a3VAk;^(n3#l(yYcnM8+9|XZLL*IL$S(w`rDeL!wr*`s&WMLr zCQ;1&hz@9hIbi-Rz%G>qu$suuOh(4_@QC`}!{95dC92$4?zeO>hL!(7f-w3 zD8|*v@$9}hM=h#M93ms8*iH|yw+S@Ze{k}r!s75hn8kLljwlKRy?uUNrEvy5JzCK8 z-}UEY@NE&ovB`-2dYY$~%zZ_SdMZ2Mdy4{3gi_~UhCF;Gh=kW0BCK;9EIuI_QV*us zg>~3f6Z};S-jUKYn4bbABNf>BA&!1aJeXh3iSlln$u0N|8Gm#F_NP80<&RuhGYU%| z5`oNa=8~sF^At;;mS7F-8tNyLu*`_!8o%|{`j=bk8zcQO(Kmkmf#JN&{89X;d6w^=`M^QKQQZ;vScPv@ykS7tom_q2Q&)jKA^4Id$BFtBvJVsGa(7fQ zeR*~?h$R82@~@0cEqR{F&P<%py*(}C9pf>0R9oUPq_b#;-Nn6}lfM>)Plfe^M;xV} zhpZ7~syqI`ysL;LJZXD=`PG9{5$^1iJ0S<#6pkx^CDorK`5Rr?l#dF{dps3SDyQ`A zmJZ#(QJz2XE&0UJ^AYR$&X}3Ohlv|BEF_ofWYP*Ai#q>iyvi8x-_MKOG8 z=pt|$VtTl4?|PiKYu8204?u1)mm<7ueENzFj0s0(KhSgtHFj1uOkV^OCaeHoh!XB# zQ^~sGXY%bJY?uxWz9W-&{`>&7$Y7yc30qsQs}C&O`{+O@0v!p!=`Fef&V&7V(U`r9Mi?J(r@c4oX5R_jdFsl7 zspR=A1J~sSu*XlybkU_*@1|VhcJAV90uRv*L)R-hq<(P?~O8{BtH`i&ADdA4=uF6ESy8i zwh%t9qLv$GMo>y7a70K7C6XFPg$J#f?JctNFaNj_;!_qCuGkX3pR z&Xl&>kzpA&8NpY!c49=*{iq0piE%dUctA8*(6xli8Gj;yL=Ks(J61fqNgF*5GtLQV zY{*`iCZ@-&hGllNSR`_?DdM-iMKZhbpbFVH?Xxd75ElV4Z96j@y_!cYvv}>%w*6Jzh)Gb*l|^QwhiKHn`0%P#E#CNjYw44cqS%;8>9TPZc7>0^;DC#Gi!sA9=;@q~U| z_`%IU)Zm!KZM&Lg=U{QY7@u4ZfVk$4Bu`XbecOw5VuhrsM)Xv_zCnb@azBD2qnedb z?5quEd*N(P8*mJN$=hBxXxSub3qs^}+^YFnP}~KcL2(Ad;)WsVhT(_eUew!_aj=4l z2g-fW$gg2$W4q@y7*8y!5mrL%vBZheDQdj3G6YJ?1T{KpeLl9jDy$R#c6fVOzcsjv zwM{jcr|7I0_J|5bE=TY{UgCB&J&}jj17=8C6J)45in)3g@NBi7M$5=xvNA5cjU0ep zW8SiXPPJO8(@V@b3Z*s~WRT=>uW`?H(9I9y1#6 z?r!g3i3H0ol$r3g!s^hPZTz72j--`hk}jWc4EKjaz_61m#y&VQhcLbrNAp?jq`4P> z6jqcpktN{@5`C0ta~`U<{cbr<=UM-e-hqGB%litntK1u@9No%@YButR=+}B*0!2y_29oo}}}Cq|3h? zgV#b<7WD}R%cRuPo=JB#nK6_k5|t1}VBJnKQw5(FO_PtQUnPa;gQEdpsxCx?fKiL`YQiVneGrWDM8t6Mvo%`KYo`df(M-h!)$Zq zI)Lv*$5IpSPv+4XwnrRBJvEZ7DT4iYlXWg~(#7}8a+o1sSqzF5>5QkNFw|O9Bl$)8t;+nJDRomhT zI2BG*tuojrvhNU_=HX+%QrMko&6hLQXh6Q_@U)KQ{&dvLUB+atF4HAQTwFZ!g`q-K zZjWgAavbMX`&{@cheVI}MXT04rkSldgYChyo1L({w^(i}^o-}G zXxfE6I|)@O1Hp>qqmg>PY^73?mL_}XE7U>{Nj8E-*R@$}Gh3e@&)4tvbdSUK%^X9c zOI3Os4Rk-a&65&hs}@)TlMN|4G3<@iJ$^cOXVxSwM4o2R@kSdL%tq>frTWwmd3YQkgAS=~3lCMphd>5iM{(=jBL z6E}_Zvs-A6deu9bD9(`S+&91EmYDd;EbVFLyNROkBNvs;HJ!i8WRJOMetT2oGiFv@EJS5NY+&%wVJNbYa5yqY zj0zJ?Z<>^Tb1|4Ql1w!giS}SgTFIoTO6NUs^Fu_ql;*?Z;yoh`T?FNju6yr~&JG?s z=t3iG;DT@ds3N)a&sU*oKP^j)`j4+>&H8qe%)+4I!~4HNgT^X=l^B>lfl})3P9Cl| z#~(k+4Pz1E8%w*r;(Sqc`T7%h5NKrlZ;PHk5Mux*=bvt=Y=A!@-v1Uj9PoP};NK)A zfWHNX0sjyfPFDMu-1J3l%X~^52^i_eaHZsl3|E#Uvw~CUCqGFEF=7-Jfwsx7QvpE| z5)D{xEF=z?y%($N&9GP35jjwNG>?hzvbTkW{6%CD>=;84&Wn5G6}`@N?aE6IVl*4q zxo;fAX+<8{W)>linTL{SqAcPWFt1Lp#bxbg&SuWRU1(wr1E89@)w4@_QPOxho;`DO#}UPD))#Y4T}fJ6exick?sCjw7U7%z0a=jnzi z<|}F`A4$z$kVOnIWMSt&*V7AW02UN& zJ56nrmVY|*@goSSwHL-gt&&{sAVnRVOJxOt2>Mz22i$zzd}FH7Zs99R5N5tiI_Va; z`CvA&rrsUNdr^pug2r6*b+~;8u@8`ousY{lXqssYd5327_*WoxNL*Pmvr`E^!F-}1p6;_afxgpn@*}r+ zktlNPY8~I?@aciEVQm*JwvP7Uw?tYvIU-YJUUFY3Bn zeu6l|!8D4c54qu4rLfX>x2!uRz=E`5R7t1>}(8=nVOWY%$*awy>(9^UiatLJGM8?~^Xy8AZ@!Vzk!swOq z6;^Fujv$3&&I8nF%C5*xZDNsxFZatsZAnx1Tt`)`TN5gE^eRNDIqc%XN zfv}XviRi#ZaxcG*sP?%G-bZkIfh7b^x3rs4>H5TP$Dwn$VQv@?7FzUVjWcE^-olgS zW7+2V?B8%>|A611+}bDHuUBJAs6{OhU!{$9NRriEKctWs_nZ6MbN>${2EfGhr$-OmRD9I~WELLald2)&Hmq{|p0We-8s@ z{6Bpx*xvJj|8$P{2b?GKd*mz#PG5u9}^nYFAuW$6<%sSZEndw6w46k@bDe@2?DC z0nh{f=^FpFlD~^PW@GwW(1Piof)<*azuY=}zJ3LXy@^5?ltUSpA;23tE|?pfRJS3> z;}PIF>Q5s5NGhlBy66UscL|h0VUpRB!fJ#}=z4A7|LTf4{~Gb`b#C=Y!+=GdvGAH3 zOFRfb4wF24fnKTV>eTFf`{i}Ma4z{P+C>*Fcod!5UcopBNj0Y&;??W=v22|`?~;2p zC)T7m^ai1F=Bv!2o>LFqyVtqe*PQaNl^Z&hJ^>@0V#QqJ*|5RM8E?hdj8rJE-rq0n%~n~5lJqgAX=xJ)b@eskB!2LI3jUU` z8(_-Wwsbs;Kz3Wy^AA^5KD5L-bJpRF*oi>1?9fwC2^M=994%d+&0(DfQCI zorxMeP7n3^ob3?<@;Lue?#gkc#Tsm9dATCuLf|hQ%(KU#4vusgYIEOm|j z!tsY#NWw1!et0oqpaVfrIaMgH34!6~fb4UHJP(6qwC{G^SV3jRFQoR8#2 zPe#Ul>5#co0puu8>dI-~M$iq_788SDEyXb}&ex(>Ss3W=LlMkom`|LWWbXOqhNIKD^MmU z{y=yjq^yH^fXMkzL^-z)&^_H*Ag?a>w+w_e*Oxw^wxE0os4i8-Vg#soOk-lNN-QjR z(2q_csn-so2zU)kx%Zq)#3oY$Mj{3v8NeLhW-Q3`Cais4h?R$yZhf0EP88 zH~4McBf<-BYGCae;eBtD5M~f&0VR>VAf`wB@Q{yxr%~;S0wW+{mMR?O^Qe9wcugdM zB*RR=YrQ~$-`2kAX(%i9xd5A3pQ~W)Cl|7%4Kwy!v1M5kHBHtImCZ`_G;Ju4e*kir zyk%Fn)!_F@Cs>~FQu7{0lQ?!XYe6)M`mWZ^3@-5UFPh;Vcw9Oza!>*?_~f8$b5z>) zAJ`kzSEfNQE(Pj^D`Ze`c#aVGeYmD>1ufQh>nYaIox_6AOY~9v{W81cE+qP}nMpbOv zwrx~wI~6;riYrMaxvAP`?X}iv>waf{|IYoDG3J8Aa_BQj5PYTQ8htu2;QqJB&^he8MRMK%p2y zL;a~1i2My)VG+1Uw>c6?5yEdFVQeKNPH^6bCjHrJL#;K=r_)7~xKmoGZ{H|3oRXAz z*eHw{3>?&gnjfTlY<#)_S43l)aPPBCKPc|PJ|4!Y96yE%D>pDhMexO4Nk=(#n0@h8 z{As=ovP*zz7FCF85z=bV0Ad^_c79ItF41O|At)5Z)EW$(3fpr@g|4BA_$>AYXIrS# zU7DIOY0%YUhnTHKJpGfFa>n-3UQ;Da69GKNN=x-c)`lmcQfKcykDY*fn*G53Cld`N z331EueMSF|6G)Gw;Do?#^Ggl8@uRtku&MHaJ(zfIKqL@7fOz>i8bnUoy6jN+ z9X}4GZ7CK$6hs z@e>R5z0JyRgl{SlV#9{v2AUlI3}DWhOH~?>o1=LK92qq~Xwp|tx6?^dW#Yz=$4K}EOqSd2D4He;MS>#eM&zCdyd$+I8H}O<1b2_(C z_7Bax4?ziwyxBDpx{qZ?JG!7PB!&nYsP-kjO zB8_+}78Hy)1Fzw`FXDf-z3>%6DQ{wP{!MV3h*act3_E(GPuG5D< zQr_IBGHGoQ;Z4I~niO$z^Nu&psE_+LgLX;BXU8g&QdM$p)9QdoL~@{Y)sl(|{V-S` z!9KIG)9;e3w~9{1DBrNQJ z@N^yfz_H5Kv9Hbiai~a%5V%3jk^dIPT2YC@XhUQ*GUQV^fD8Y^jT2yf>Snc|2vZ zu?7nRd64oQ$_$)&NCTM2bxgy@&b>?AP(1fTk#Ddb8lddwX6E^0ou zrJ7>`(982sxQfH9$j|#J#`)cxJik3@cQKNrf+z+)Kb0SFLLR>0IkkZv(vO(Sx~Mo; z7{ex@OD&78_mcF=fXI`b0JEk&3`6415tj-o{Xq2b&<6Il+!*fr7j#h<9+8vRltHrZ zZUR(wwhxQ=@HqOS+z^iaDuA%z*HcgYpB0cgt?>p3NYmd?gOng=6~oR_7&5gLe4KaN{)c>*B?O}7gHxYLl;v5dJ$7MOJh@UCqvI)7ycLm$j0iPB2KeUPXMH!s`HI>#Q%h~W$)I<*Z;)V+;7i{$ zK}wpA&JG5`&L98?K{E`-&IT)(7=o`RdMA%wUq(V^Do_zTfTNm}l_L`{a3NfrZbCvP z5Q@1DfQflhDoPRq1A`;L8qpe|;Iu#sOxzT>B0Lxn7QqB6)2)iRK!%t zKqLVH2u$D#_$R9O`yu?^R1AO4u4iNZgXwA0O9~4M89JMq5Pa;Z-(>19TZ;MbTT0H* z_TyXs%h z76eSJzm6qLEzK=l2tMWlf1C(ex;QJCItkm`I@sHN%%msa`1PrVP44!L`zKJG=LT{$MMTPZyUES!n%9o zyiKo`BuGJrrkIA2XvAVN0Nz2~COyoV*O$3og_AbI3~j&?WqP}<2&$X1#F_nKaXU*6 zjqjV%2r8nzp2rRd>!nk9j3Ioy!?3QM}Ac}>N6Ajzs1EpLj%p{jek!%k7E!>m9)fI|42fCQh1{H{L{<* z{iOf(a{ufWz{dPncKEj(u)DiE-ADS@)x*rm-qzXJ$-p$g~o&F;a z%t-&w$zSIGpA3{3zMT4m4Av|C6P*-L@^(m;exC$_5}72f zDUsQ!-NUa%qdO%C{J@5}0&3V2fm9MnoKeyufnr!AF0L`_=gonxT9f;MtLo7KOSMa) zUOeejZ28%(LJ;Y0)=g<|LSt*Bx_M-*K^Hb+Xv;D&;sVB$KMw#|FgP^{Pl*(0lq38W zQ+`-zJp-A}yoltF$zoA-R;CeHH4 z4#sveYvK8ZvdoHLN-?(#Zs&!Jf*^2Cx2+^gNf|l2sTP^WW<6}K)o8d&DM3{XV5_;8 zyUByjgcDuWZPRwWRD<~nZYipKm}DRqa4K2GR|l68oiO3d3lf4{zOFWKGaRKrs{D(s z+lp;VmK9mo>?Mxl&I=}OeuEbS0@Bgm+;8q2~D8oyf=_24!I^b zXwzl-x%D}6kpce;SfjGZbGO>)myasa>9q(usb~L%z*qYvtr-zUv~t+)OolUcuh= z!oEdrWzBDGR>);X>m!iT?22QqYA?X}JUNc_G87}WG%Ef{HWgPSU?V&DQhK)0ynQc; z;THzN2e!*etZS!DHZrn1n|MZ|vc{wmL}8v1P@hbuH`zLaU+-|(uI4PDNk1bJ_!`Y^ zLcDw-_;MjSzT@EpjDzolL2)oXW=GKL30zs#I$aa!>DE5MJ0{l$jAckh{+UnxdG&07 zP6~yXU+_ytlkGDAW{|MY#fE9}`6a?7va0y}QO&$3255V^jy0#iaoo4IhGuTEBH{8t zgDPF_t1=04?a{U};>K(K2MzV?&`r$#w3>9o(8sA8f?Ft{)g;I-u1qHB+b%($b)p(& zTZf6hnab&t$5k7I1^bmTRi3W;B**67KQz#0)s%xhW<_1XY_hg6?BG_?g3*CUTU98o zcW~(W{9s`lU(VKbE5)sTAydx$IUD>*Ih+ng6CbQS@Lt_8`P8l=uD2ee{eID7%1>W4 zN5PwR6;$@fUE_tfMbq(6dbtPHzz`-F`K!xZ6b=_waTr6gI*dww;< z6sE!Md+&h}a(DUgy)O@0c}0N6lD?qOVmhVBcaw(-Q=E}EOvmYh%_)`~!A$RiP!pj} zM(JJ6SJB)(`#YMo4l)j8*May=B!&=$k!~K;JCQBB|p?# zuWm_~St%XjeU&Y@H|fat%{-m^kzZ*{v0iT%!rHLVzN8wGm&Z4xx)|p|5SSbHXusY2 zy0Vd*ldI&^gmi$o9OHZSQE0+MXOra9N*nvk1!0^a5#>*69>UQNZwtYit#ee`;k1>22VYdf?YSNnP61$xT7WJ{Xc= z&3SaQBe<}3Oyb-0wr^0>FqQ=cBr$1NOpDhV^)}UzCifB(#FZCM2XUpsm`Z`WlmmDO zIAhkIF?n<1UX&GUnMpJVkQ1ypxH`1yNm6U177ic|qi%^_*YqxGV?)wHyYfnn`Hyhh z(QknWw1w&!`E0$t7Si1DxEOO8B8oZnFs8uxtQafrA%OfN%;>%&^G!nZlX_sAY3qNU z!n^>q5Q3t*(Bh%P`yM!T+t>Q2DGr@AvnA_3M7SgUTu{hn-7q=&SXpH;8cPduBb9i2 zI|wkmkLunOJqEzr{us^BDNswJ?cG z18G!s<|+B+H@(d3B#XAm@4#;P5>6b7YO*0vc^#{uMh!2Z8}j5uM3NW^>O=k%IlE{W zWz$^m23siF^t?ZwOV!K5O`-*iC(MiP8$pb`_`y617m4blU1EVCbTKmb*3rf07vI@` zqbcH*YpPlzo+>EV6ugbP?Ql_1b#X(hboG_utYm3pa1lD3FhL_8Zu>RBOCfO|7NW>D zxqO3GZ&vW$u92LXkN|Q-422rZ`WP{e_z^;a(Z?~wT|330#8%#3N?=+zG(f1!{7Wt| zO^{aLk{1XKizxGmkOR;?vyj6q)bsL+fisvlK!(weo(k>A5m70=I!~qN2R`m`MWz^w zi>*v$@68Q~*QjfkA70s@EIW+*@lm|RHQWsAq;KzCV=d9;IkfT{kv$n)z>K`CQ!|>* z_i$y0IYC08pTMemK~HT~BYlL&-)?M?rl?R-Ldb$Y{>MVjkR@=>z88y}7Ts=37H;@# zi;z1?gNq;1j=|Q(&3J+=@^h1-jbWjfgdA!5i>*Cinar!gvj((CooKN%8N3F!b3ZSA z-B>bE@rIy2g@C{2r@0COV?VRS7G1=CRn=CnjI7eY6>Bk4>Bpy2<-pxBtqCIVR4c87 z*43vaEc|LKo0uGoTNgq!DuZ7=9NT>Ofgv0!7yx)p;2Y8WZ(%#ocIPUlu^Km=D)J---!2bY2=Rrwm+PpUqnR7)Y;zE$=KAH z;Lp_Wzlf2-e=!?bQxi)=A$t!3?O&9O?IWGZ&dH?vo5VQTJN)AXAsbUulYhLT;$&(2 zj~5gSoqmy{-&yJ3%i=tybPDPEt+VU3@luT|A!6<2ji0W^gUE=JLEICvHfMXkUs!k?C+Sbu*2I?R?UGgAh8XEhR%k?p|mJSq3)%f!*8&#TnnL}ba=2^L=2 z=e45g=DJUpc~u*9+9uBK&8QeG(8V}Xi!ZF*i2XJ`^Wu}~$;;%(4{NQWne4^iO64fk zM4=N^7fdfP;l=7OK0wAh01UWI2qq;Z2)ONSHPy{<5a~lMB~=^!L>s&WB*?I z>07W{;4BEiJ059XD6$haXLsovJBlG|GgcKPma9O=5*aNfduPS&Pav3y)}epe%D>;z zFDAsy_Lp2e%iqcS|JtqkXVW;g-<$C7;?F<1x&L3bB;$t-$^K!rva)`VP1X+wmi^=O zgL8h26kz@+BK^;*P5}NL4h?j3_TCzIlim&qAmV7+9z`@_Ex62UyM_oKQ6P^zQ&&ItI@Sy0ivxs{O2$+vnPA> zK9!yRgdlMh>wb*KSzBYP?+j$b1E|r>1I+4Zx+2MW2boQjk+g+gK#dL3VkR=GlQ>s7 zv0X%5c~l7rI$KghTaKxng=E(2Eb=<@gs$Q*4HoMipUs3SvnQDCi&H``PGsBZBbPIi zH;Y}l6X%;W<8gS5k{9vH$f|iMpLEySg6@>HjqyFXv}?dD^h|pk?8Q1))e_9b2OpAh zs*Z4dsUfwQ&OT;7vy(M!R2FsligpZ_g|BEjd7BQ$>M9vjs;>3bC4J)H$}wr<8BDMy#^-!Y<~EV9b4My&?ly%9Lp#Hee+9{qM18B2@h+SYkw^N*SA9W-KXSE zvhwbyT-gk6h17@qyOJbbZEq&Iu=ZMAAv>k>n$ZY<@|nv9`MTp|+fUh|c7^7+^L-%t zs4%9IxpJ-XpPuPWwr?jYc#2%t?f_;~{NZk9#)x4gW`df^=hw~jQm01dieCL@Kq%aY z6Ua69q5aTy`I+%+SAs*%1l$YLuA zjP5{s#ix>pAA-s62kOPUjOQ58+8d;#GHasrzDF~}q z;6NoRJ)p*raFUuv1FF8e|H=$nC@@rpx)+TBmDXyiXFA(Xi}P3(EMb)QL?}dMN|cfsf!mQ90Xk2v?j_Y7SwCS8Y&MBl8`C(H#S+!Q)fN{B`?(ILmnfD3 zvhx|1={wGp7T6IZte4KJ>QB?Ks<6~L0sr;0*H)SKUMbawQ67VH%13tvrCe4{eMcl( zON@S3U``Lo`*vRnXvi6h&Iq;KG2PT`xS1zRsaps?w4r>g1&W3gSYDG+4f(Rf=n>bG zKAGD*lx;#-0uDkNx(eU1I>7x-DlC(Ah`0gM>YemLseVMwrfbIyvGk~5^}`{9;X zx%=27oO6v-$Y%x6cvc!|^Zp=@cX?G$C20G4FicUa49`dgF?Fd9g75wk>i2=wooC-_ z8zXa|B~QYLhebX59UHez4Hh>#Xf}G&HbRRFK?$*xOmwP4Y`SYlTl|R39vs)aV&XQU%p}Mwo=Xoxk#}h6(N`|9~Obuj?TU25tf8ly$AJo-={0)7fG$g?`^`V6oX3zNKMYNo6k~ z=YmwlpPvme@wt8?$7lUg)f)OX9H^6m_YgyIq)MVo(>IqXT7jTorp@b+wCA7n< zjY+SD7w_QE3xBxwU?))84}9QhcG@7b$#HnvF}i3V`#mn-p4nMv&t!a&P!D|p^qAzQ zs9>?J=*W{Q6to5>eiA(314giuiej`=$vD#8jW4i1lDCApNpIUJq>(6irF$oy;Fz{^ zu@AMdqXruf^-2;HbhyHBd<>YNf3;j)1llw1C;6Ls&_ktR9yB^N)KzJWK9C@sZ@Onq ztm+5d)^gD7^i^GP3*e{9Zmrm#U=Jt7tW*NtC1XzG2twq+H_jT<1sC=mGf^MAF~hd^ zN=jJ+8waoAK>$r>1u;(Mh*K)PR2io=W;OJAjFjyuZcmLn{QOcsM!+||R;hgtYt`L~ zDft+eqM<~{BHW2roi%y$iCW9>iH>~VJ?`_Vr}-mY9%(5WnQm$*oLM4n!ZnrOTOdSn z=-M^2eprdRoGxfKf{Lm$7+(MO=j*9Md)>6*;P#;r%V~bsYYA@&@inF|mSV@MQ{Q@N z@6_A>5sUpHk~1;<)o@|?BhB>7#QTkD{zfZU{vad&%aeEirWL=}^WSO3Z*cVA;M*T` z>hHATx6$;EzTDqv#V?V5g9GU;N54Oo7NL=d@~l{Z-^BT}AatXM{`3+kQ#5Z?rl8Wa z-D~XrVdX1xl1Y3+_CZHyDv1CQ9P7a#q50A7sy;jj^mpz;e@CjdE{-4T6CjBZ;Dm`8 z+Ma!OaDE*89`|a@glkXtWmsUJCOBjlNaQre7g(S^36xxP8T9u25bv?-t#4J;tdqZ` zvOa3H8U9s(CKOy@BIIy=!|wL>_&M?RGkn@+jD)azm;r8UwCZ9SSmJED=Po2rGDE&6mL(7LR=#wbS{806VJ-5KOmw_SdGx(Y)YkPh%>JvyQQ21l@QuTYU78 zCC{xiqJ7{F5A19?51TndeA*6YdG5!J(EbJeV4PV5^6dL$q>U*5S@Tkqnp*M z+4JrP1ckK>WjwKq+n0TB12V=HNI2=DXH5AsSFwfUNfev-6=xow3HzHNU}t++k|rbm zSB4Xcb=&I0w?P6UI_0bl3F%`Ni0SQqkTs@_)qsAtOx&Jh9|)W{k$sSdk^R@TQup4v zR2#G#0>y~#JXcKh@6GoaYhK~7_BY&F=;AtR3?o*~30Zgm&RYAFEG{Ou&3n zsaq#d^)gHrATeU~O1ZX4e|+~Wd!zZ4&zNpp5pDAvoDrxp;$cKV>g_kh4z?9TS#z_DG=h1q4Ex__1{(tz0= zsF?pIya;=ZkODGR*~opA!&yq_!KCb}eFV61(AB#x!KMgRPwX@VsV@1c592|v?MmtX z6f4Ym_^Glzlf=ATLXElqQX5%cl2qQ(a`%h6So<+G!{=k{4;@w9x}{{#l0egyIeqpz zRl=!&#Ij??G7r^F%YTO?;5x`ZVnJs1!YM-nmYT@HVyx$$cQvaYFM!N7h`m5ylz%Do zE$;9F?zzwHW%hm0jOpT|pNO=>g2(=9?KWz{Yc&oJybZ-&dZP&w0O=eEwItUJH*Ka3 z{TKl(=)S_hVmKZP#T->6R7_-48wEVB;@tXAb|^MVM-)Owx4S(1OjO3T@uP9Yj)qe= zn-|S=ZeIL#n`Q?`RWn^8L-i|*!!6-D8f&~vP2cN+DtbLR4G>MzqAE_OS|VXP{dCY2 zP+VZ#*dbh|Jj0bW+_&v?s^01Fi0aBN22a&bZVbQ;1JBw}b?S!&uh}P0*<*y@t@R~o z7zUAB5(pQw8&!qa0$ex{QHHjGmJ^kvtGq#=of9blmXiDyYMRwyt&LB%igbD}@oHou z4#fPEa6aY6Wh|t`!ZZ765Z$;tm*xV(JQVU{f+`4H`LCFc2>7cD&Ip@B z4*AjuGyCF-2v(t?U?5D5fMn+Q4P2!@+4ov<9=2VJjp0LWuP4~a%M zCikCmh#$A;m%?N-h{0@_ z@40u~hpPobTYMg|6={BygIC9UcSPU1rf088XyFCKhf#&8S>C5UNY}kAz{gadDY7O>x(9&g4 zAWlYQiaJV1EC}tC3#$-Uzeb?lw2cHEwMM5c&P|$0Y2LoUvh9}J(pXQoyKFub=M{YzR{T0(71e~<`x3Yq z912{Gj61EBu>|5pT~Ub<{dTPD`}6zBW+zN#a+b$@I<1G;)>JW3Z;VPbb~Ldb40~A* zZ|~Gq)I!M&Tvkc#8Ox24Et=<{M2OZ+OMyQ6)yLR7-RMfmaL<)8R$q}h?ilu22YDPc z{f^ORp{fO2`K2Z_88TS%jV3xoM1b;!!=uZWkGNIOt~=OzzCTu*_h3J zJBe@|$n0Uuk&lFJ&2~~JXLf9-K)lc@B@ggAo9J!Q3PpqW{71uyYnG2atzXEJEG&%B zXhIY0vxYwcq(f>Hq=YGv{GfT{3;lko^jb8H^qFpM*0M?XQb_8)2A=x!qad0b7-9uI zU%>YZj9@GJtz*tfALiQ>DKX4S+jT)QAq0_wRa7XV2x?`xuGY7 zu7!AXX^L+hRPy0`(`YNd7;!@OIQ*Cj6|a_=Zow8I&#j%VogR)fHr`ImCtLDb)reU38Tc5MFpv$Ah7#r6ipAg%i2Kz%CxNg6%k4Df)IDO z#M>_}s&W3CKVWUV_QgM9&_6_KCT5nugnn55lz9JFYuA4f1X+H;$G;;=)<2?4e?ycX z<46B91?~e;?tjESa`Xj3z-`dVOs{1NfSUU3GISp8?Cm?p?%`HZf{EtpI}%P#h9uu! zVMQg;NH-Y0)W0z7S>RcY?#9i)gx(B7iqZL)J?G*hpqP@w(}p1C$4nsX%6;xUc{_NW z8v7YREHgW0R5-44fxr&|vGA-L0CBMsz|m|ts-pV;Lmq#isz>#7o@+9bk!7fCa& zJzge+!Tsa1_TKo+Hr3 z(}@kP*|^w2V$>NG4UK}P65+(S*q$OWDi5J8g;IJo@^()7Mk|_1Dr*}k`dEthu=H)E z0goJ#2i(yY*Wh#6kWCCFmkwlnMJ$e_eE|@@+!HRfcl3rbJ-lKcsVh@6LHOpM`op^8 zUxkg|4a^{&E&2?{Kv!3_*nMyERL4!+)G44NieE+2lF()|)+P$kzD0T!<3K;-pzUsx znP^INerOC{6zn1xLSCb8-zvFa4WoU{0}Zo8!pHU5yiJ5!l!6^weMjudltk&sV@e0E z?}_@Outr*$+0y%UE0;>;b|5uOl4P*G4V#TFxDBu;xvopcEl|;tMe1b^J@J+BKibft-MHc`MtQwIIIqn^V1L9Tr09U#Ej(gL zD6pP@x$@L~AvUf{w|_m29t4CD%>*@udP@^52}hR!Onn(XoV~ZHd)`!cR${OGs#bXe z3?j*(YJyNga@kC4oQ{kKPCa`7F2LtIG1~__gUD_!F@$a;t)7^}{PncnOz+TZ^qkV8 zC*qxNqiHJ#wGZv~K7KkNEwJ9cV8$?*gXRK;+emO2Khp}=Qk!>$0&$u`Ytop+Ppb7R zU$6A~Q@$`rU6G)e^*O;4@wQ^J_Ss7HlV0~rEGt>jz~2vNVQun6sb~da1rr-At!Ahf zqyE@p_v2^M(hR``tme4e{j?;4p_k+;UaA=+$KTuebo$bJVxJWJmE`%RR=!vFquIh? z={bC_&YPRFr?2ztE3-+91!bXq>B|W@0WdVL-JIK<{DS-~Z)d7%#Z@BCmQXk-C4J}v z(r8lMt5_t1uF!O(sh(gqkU`oODS^aE^H?H)Z&!y~NpftZG=6r0qjrgJe7aVs1YzS! z>%$}Q5pos!0!u2KL*$dl2s+G4j^VQi-dS`yf14-9E#xvTzBC`M_HD)_dD7rf*Y%4d z<5#we`*e8-8u}7sDnr_P($s&%%0YhESTQXOj}D z`&fw{lZ?2rWzGGzR;R1^6V)+N#-3&D`O8N~fr~eJ7i>@?0@d-XwNkW#xK=;?Oconp zxPh#mc9YgUD{K&14 zz@Hd%0!?=UY`t$klPZDIeRbg_!WrsQn1K(nN45*l4l3kv=sNm7ieN+Z@uq^XH*pYR z1T7&eSBJPYz~kp2qm~it>};mkmKo=wC9uKwZ?#WjSJ^BsNEdioc~`lakk&(N$#-+V zHD+fO1##M*rdH3{L?5|oPJT=9*}fveZU-^&ijxi|z60cfC4)_>V@+?J%LiXL+Sqf)0MH+ za7)uoGiMjL^~{xora3kx4Jm2L38VDnpv=0!Vx+;!kryQEus{dB8Zf2uwSZFWAbE3d zFZPrHGt?*?kl6106|eMNbu(_`QS$PU*OGqnPHjc%*&7oa^_u?3>rz3lR7AgNk& zaGtX;@$yzO-|a>1t*if26V$E8d0Jiwp$@u&?G#un+v_yON)oqrkYcfzgq9TaD3!E| zB~Mc3lqsi33R6>#Mn!`ZjR{G56<3g-x+GuH0?E7C*n_U?SNcpis@4u*qL|XHzzttJ zv|G1`^0|qgX5@vBQ9=1M1nkz8sjjeGAj`mn@>qs8m?vuFD-gpjCeA zgh|`lBM>jL=))8qoz9xUOH5i=kA~S|8SXYav&V=kQHLOV;hG;kycq{7N)f+fYzP2K z7vv5SW>}qzS+J#SP+|(WZrAsYNIlgp;r8%H$RY$da-VhtFpW>dA+*3AZlfhd*v>e~ zlvoh%BP!9`5F|U95?7SjBu!VjhfsEHYKk`^S$2XsP{h_?H#n|^1=`=(qrLKSW2ll{EW2e3 z7*M^*>zz`nmM%BG>Cp6x-3b)O_1&eOL?W4M+)UNvbi7o!RD5UnhLiCL5nR}~WXFEUc zrVO@$1%!Q*-HCN2IMok|qSKU}g>Q<9I!0^i_i}YvKv&^VI|1sfqbuswWxIbq%_!hY zo>8OQBl-<(99+fxc?!1*I(VQ0&anRxTW)pxggszNk(@`3jB|DLhD6!cb;bIMCAHt^ zi=FgVIcSDJqHf8t5;!wpeN+>+VPh_rMUwI%G%C9*`Ft;N7#E@4*{ntZ0vV&7*rx%( zWGgd~_lQ9kIOyw%CD0;VvWFV(ScFiIFQhDa*!#S0Y1hby@1fUt+^ZfTxM#P0j~!L( z7uN8Nz6CFYpJ_5Ai>#Vbg6q3frm)S|h_RJF#`ZowN?)2wFr3hpKiqD7riwW=0?%r` zZj5mW)#O&RkJ%)p`N0q@s-Fijpx>jiK9)E?44hCY!^W(@v#20?(YUw* zXpq)D>G#gSO+Nk_0njR!BBIOYqSIOnCG{Gkk1Cm5?({-`(}uvMclji#=Wneb_E|QJ zYgI8wpDUL?V%LADYgl3V)n`R6{ed(Xsx=mBPPQ@{d9Ak30Xl#(#VAtiP$l zf1ojIerU{W2ya&(i~uwP2yqHsu?Xs5Fr!5{6wMml{zU=(Gtokf!kCgMH}vzl`(mc3 zq+AD(C@wLhvX2K?rCCq9J@ay|OJY-gh07%r3a8b96nTc+b+QW@ElN#8QmD z50JEencZ5Ge0_V#VwD|wy3bJ5oj*en8FsnrI0~S^0f~dSPP!1Zf0qgO84~2libm7* z0TotuExza`V5Lb}F(BJZBEZ)}NXkFEtB5%EEP%sOOt*HDqO%CMN!W!G=RBqsDOt#{Z-b;-Y!$DPNU+d1y(XqjyB36tHhP6{O$a+|2sa0? zh&k*!fh4hP$g0;)Sie4AiXWj!JO0t`UG%IrUSBz>@WXDaB)raY-LKwFj{>y>9VtXG zo+*Th078oqG`je69!4+|LmlJrA8^}y%{MRsCFuyQHbaFH)QVvc`t-O7j{_MiPyKj# zrz^k#6zA1qG)!jiGwCFXmcDklZqU$k9G|SLjmQ(!Rph)vE6Ok+1G~DBh_1lFA%axD z5n^fCe|~j2DXLN!%M-rlzt#Ya-7%24cktkiCE%ZuS#oRd<1%`U2dhX+n-AZC;DAde zB0-Qf>bp$=X1(buSUf*?bLwFy&3M+N6W+yu_TC+AznJGzPB4TXjX#ZZCbY|<4XhmOc zK@KW?kjXSoNBh$@=~OZ~3g`(??v%gCDKoaoPj3FsNdF>1=20R;Ajb6(8VLxF%1&Lk zfqBd*npo$*|epD5gv4CdmewBKM&90>&WuFu|lE3>+To6s)xqWHzjG< z2gcKRXN3X=ss$_pk;lb{T9hy` z!S0&U(0NpTe?eHH!W#qv2k&ipu{1SBUv*J?0~F)RNDq9htJ67Z9m$}1_Q~oJ0LbDE zfPfMXThDN!cH+bnQZkav|9&ZhcaaqaeaI*P3T6P2~S70`J~f_K{J{8=;p zCX;_#CXs)$PU_xn8M?mL*Al($zHf;qF1eyjzM&_dDU=%532P_rM@dkeYHMG-p*Fv$ z*wS4MKd_~>bypo@yX9S$eI}S0sJ*!+ThJQ%HoYyC6#YfiJ}@9tvEgACWU!1^3EZ}W z-Zd+Y0+_n0uomFUK$n0hTrEa%<||r{S4zaKs%pJiSraO#iYc0uF@cA=Z|%OXtE6-3 z0-)^^Uq6nJW84q;K{!iDp==)hi^rjmELV@^!YTj@&Zbl=agT}C71-oi$k}CpNfc|) zDqs9aSg)c}U-+h+2Jtw^0l7vvhd|lH)!5cGMY&thj|OK#wCF8aZlPV=CS#L1^T!Tm z86&NxIo~#oUD^Blq8vpAr(w!&ZmB5a)$dd?H_8@oY1Y^ES(goG6Xh|kp2ncA}Pf@35HHp#YFcz<; z+lTO&xUqJ=hq=tiqAf2TQ=hneAaiwbGulabxIvaM@A}frr{hlLKs-r@fCKlW3g^>) zkg!JV@7Ff|<@;=IPb)eUlHK>&A>YR`bVL9M#~-*53PTJyFB#+`@1Xf0Eta1cD8=3b zA<}@GRHuq#!?|dz_}>AaY^wMF5%m0FqB62^{6)`W{X^#aOn8e2Vr;hoTYEQQRFshoZ_0i6h4bAVdwy%&kF%RTh7T;yZ zshoSmM)>(!s%j~4V%$)<#3(?y>&^K~AUk5740Gm}lxae^@4GuX{au?3d%NGnZ{tn) z#ws&Y14qK}73fL)M7VpzbL`*VJZ=YP5Dob}H}yq?V-@+w8favd66R1e$+`20R>l~ zu;n*=S{rb!jMWIzD0Uif6gT08oD+P~t3?BKD%Qo8fbz-WdXq{ISa`tO23bikLMhw~ z{YxNKv7R6X*&@6{j3rtuMDCI$@<6afD1t%~Pq`8b4hFPjj;i8K+Wniyt)PDc)f z%%9iXrgHN`rNK@|7PcMLI0jN#NwWoZZH#5qnKGC*&)syDad)mm3!l@A4=Kh2=&*Q~Sq**7~5BVl>s83ZkWB_(YXEGzw3s2tr0 z!4^GkI8%v`C!*yMIY}Iy;DxL7r`rPDKU-t^KEeW7mv;=Vp7L&JTPi4%KEtqj8=C!A zzG1Z?hThPt!ckb!>V32T;J*{hR&ILe042Udqf#0&c5*rLsPC-NH06yTsy*0tTRXk_ zdGx(WvvcDm)O$5-$c4~4lZ`NkKT@j}*#CJw%snKHpm}eQ=EmaSg+ODz(k05!`CNm0 zhNF-MCa&OV&bjv$<~ON6NY1u)ArX;NCn!Q=#jq3t;ABGa5hx(gf2QA!ltc(^ak+z#=-I@$2-S6#5ML#sUp3x(ohyq9wHo|&;s$mE1E4`aL?#%fk z;CL?X-gCM{)~lKG_6sj#FtOW}vA?}1IvZ2+1Xk;7znQgR7534OIaCM4TO6>#y^>pZiZg>iO7?Co6 z{fvR!G%o0Hyv*5RJCUK4I5U__WHtD;Fc)piZj_7ejWmrui^ZX${xLGIE2UJy4EVVp z1J0u%g$A4)ll}Z;&!-g5=3&f64GP{ll%kU$=cy?x(UE71>67(BvS%{YAp9v`mm8@3 zEHE-!MzJS2HFG<+TN^29b5VYtQmDyMe-}O*NofxWQA#K6V*ga4xy?8!3l^}FhInQAYqC`WVSNNJ z%?z*IA*Qi;if*#@PHklcq`9DcK*_?$PYV5#_YYnv8E7}}2)>9Py>-UB z&5qZNVv5gf77WOW>^fC?3>CS$}Qo3s{>5uw6mSCl4D}5||3a&WTc#X4lHLu^5i z(}%H+cR{}Map|QIZ5%g7dGK$j8HN}ABfuICY&66-pEuq1py%>uStL)2Szqn5Q+>+z zP-n37pXXC+zhal7Ea#XaVk0gcN3RUm93)dyA9yP$6I7X8zqyK}k+PVb!0m(q7p)+h zZG>16`g~2c)#%!lzjSmHTmZ#Nx(|IZb7WXnB z00Lv;ox*K2zto2Js~M}AUPKhlO_xuoT}+{82eBamXyHeuD*#x7%sE;~Gq0J+VD&>b z`2beNF#=8+*0n?~&PQl0;RT9oOD!pGlurcDIkAav$%&L0IjCPJdWJV~n2AifznJH+ zi#>Pq*xd#PAEc`Bq=zWO``$kShV!CO5KhR*FU~wxnRu_O<W1;U#gK3YNk}Te)W)Su0Qx{8FhOajZ zSsh)x%t^*n_$}kEV&>5;c+$M3I=8;g%l&05>dkmFv_Ct55~GIo((;w1ha=Yg+L!eC z(^p)tv}>gqa_RSbMq-r?et2ApzTKVN><}x&1MtTHNc*0J?kBdsO9O>4e%0|MnP`2Y znW8D$-xNeD*y^gXdV2%ae5695P5su{m_HgZ{99*Z`%|I%UyUjMVj=%Vi+=}@ zY=5eSe+7{LC93^TwNBNV8+My5Xugl?2)+$~nW(PlH;ajj77-<_Z9{<5cY({Z%rYcS zGExgH`d>w*GUg=03(&wl9Yib>t-r1u@#r%m?R?FCNkk>2Jg+?Vi;ia~5R@4RdcF_1 zsCm0}xWD%m(vZN*nJ#ebvq(b~jW_3{v`{P(LzwUYcFqvz)Yf(HWB}297=YyckV>P^HQX$?}9oCE_E#5I*YmWMY=Avcot}Q4hgp!n& z6{XERT270{ED~|WEjNAqC_W5IET5sMFYYGh>!0xe{Dg`bN=1(ZN*qJavs0{+g_y^_ zX)g&7OH-9U{J7nOnh(nur4kL6KZJ(iPMt$e_Xql7G*R1*lpfury)8tVY4mN8ER z_c=hcJGjC%C3|e^Hr8AqhaV$ZMPBY6rl^|d0pq-oIO1W*DtfhLTKLZjT%z8`_ zUu;O~9e--aqgbr5&YBGM0q0Gqx;g zv85EUW=Tm|Bl}uWvI|kx3JD=3vZg{3N+DTBgb&)}tZ-rn(k{jcl)`(Mvh zo@bad_uS{4`~KYb{W<3xkqB|RWO@as)jT?lPc-B7wVIwFu;smYVY7CkR+_=XlhRa= zrbNf}r`Fx{y+u=F6Ghq6C*8&GJJ1%hUlROrf7mu^oq%TAn~ksT?6sFpy(5skJB<-+ zk6822{M~8}30+${UxtyAO;Nh-$0NOYO81*dtQ-j7yPum`jcurZFc9>V@|1$E3n6YZ z`njnGO?H%nl-cJMim!H}6&z!ulleuXuKA(%>llY!vd6ACpSU~Y?#&G@V%|#f?hLjX z^)yDWS}GFMI)!Q;VJjs+Hiid>?`Lw!v(uSgHPC6AVuD_ys!iu`F|=*--uq9M>AX{V zVRMGkZts{3>PBWT4YzgahjjbflgI3X0{P2YUOmGmDuniizdJMBNcGS(A{E2%p(BS% za{EZD=vTQT&#*#r##u+PRvXrZl&e>B=^eUvjs4LE+RT96S^lM!-(5{j&XzvwQZyXC zRqC9W>v8m;=7!E)r3C^ZE!q3q&G#PQ-(^~|)j+;3<$BbuBijWTZ|GRaZ#kPMc2V1d z(aw6a%f~fceaglix!*koM4Wb|AJ#@6o8n)$?%kpDhlMWhU*)KkT62*bpL_FlG3PuA)IWCc+uE6B_^i--qAD9u%tpC;B4FD!_lAsR8XBdJt!7iI!o7jj9(u+% zTw87l{9^E{;JEh8&0IoCCM#n%U$+U0S>b2Zx{HTLA8$A2^KDh7`(9W*++=C!8NR;I zigmcz{)luYCm)ttorNx;G*}325xV@^`_(&F7ISBqV^(HY=34QFt=hP6f4wmFRiMnr z#EvMG(#0|#$#HX@P-+qG{iVlT2>xM_S3HIkJFY97$={!KEr9x*Hm*lGwJo?{{O3sD zcSflWMSsug?Gt(w$~3RV9U^gioN2|@#NCv7UVHB_w`d~!#mM_t8BHnK(0HpN^PAzv zrdE(-5qccw?!Y$J;r>~No zz|%{mSgTGtmySK)3HdZ-QMTS@KTpxsq7T=%Q+?a+>C2;9ins68iF6qtbOiBu-<9F8 zI-ua0V=DRN${WQ&quA^|S@qT(>uH{8U@zSGm}z2XyuQ%>#ZT^{mqxh{9d$c{)5KbA z(uKC}#H>)1d=^|O8+CrTA@PncF7o0x?6$oh_PGj9rZx?=9}$kkW#zI*?`&S$+`Z7&Wvo6( z7k4PuPeW&S2fwfQqf0caIs5WnXxe272IEhEHuuL1XKK?O5v&Y+W||`*F!J?4> z?}K$~LYDb$HLWoSS$R6~+lv6bgR2gO?7i4je$ZMmIgqkfztTgBkN(95239pGAH3B& zd@_a9DejihQr|}($GoY2TJC;x?>n`0zpK7DqljrN-z&aq*G)-z6_=!%U#R|?Dq=_p z4~TX&6xYJz&# zcDt*`0v%PBhkDW`j95rco9vQ2_W*x(U&ORriFfOY?x%JkC3m+~C*-=ht*q(YTR{?1 z%`P3~=M@o}2dVz5(EVS5R0w|h4N}c73C`8vgvi{CDMj-X$jNPnIk|KE=Z2OAFPP40$@v~PSU7EYl(oJT?zYRf3dxY$!QQ&zlN`QlR9|)f?f#Fa=(1Gq z98}AG^-wE%&*da5am|#E>Y5`m4`V!9|1bWl(;!#7# z6*1|~`^V&_c#cr`&Qa7di?N7)`XCdaD-+a?|=YG|zpi9G(p?};!| zfND{XEQ^`p_frpXKT=!QR%C1__+-mR+xbGhZ2eiTp7mb0DZ5pIM?IBuo*;_OVF z|jKZo*xUl#4!=leOGh(2EgS3WmlrQ> z8?}fNH(g2HP0$`zyYFr)IBAqGkJewNZk-|Va{JQ~x=?zyyDJJZ9e}rfwo?DuyH^{1?pbd|QTFK5?}!N9QaE9mTrc}BMwd}B>LB$m$)_pP*PjJ6()7RF zaCL+27kT$1?fOZp1D3f_U#uT~Npo?}?Sb=tXO64KDaw8OWN3Q`TWEId^z9zm=DyD= zR3b0EWrPewWCOXrQPoS923c0#`joDP|8y^c(FD3 z*_vC&yW8yN9e&kNe^4bngrk+QTXl_dZ<5(#mfGsptfx}Hgbd|RcyBJ)g~f26KgS@l zkxfchoO%1}@**kDxOZPW6b|$?C*~jI)w;lKY$KtOSr|xF7qLFHqW+!QvGP?4YwBbQ zQn}8$7;BfG4{Qv6Nm2Z0lOkTGLmw$tP|v`}}P@$I_UyLN|eS=+~x)8r2P2p9S8z+GC5{ zl;qA|x_8-I^jydJQyke30tBTFi=8miJjwX@i8xJFj*@M4!4G=pwKkEvWZVU`z737H z4gC7WJ0&5%b;Zi0J#Xt)MVKG`YPNQt+SD4GXv)j9em5t!MD1KBYV*PNobo&G6-gX& zb)xG#XwRg5o|4hHJsNUn!d5}?uZ6I0@}bbrK%snQ1x}PkBG=__BOE=a;kA>ei)RtDjF^9>sL&PB1bsw;9T< zWfvT{bIM>J-y^!dt;{Yd(tE_qIm-4JJt(lfplz~)qvdeUXj--_?zY$WlPNh&6Z=He zR%Km_yl92~T))hSlS80KyM{yTc#)rtL9LsgZKId^=jB(IAIO+$r9cI)%66}-U58#J zyK0q^T5`fQA(w`)+7!{NUB5MRv8P`1oV@AfwmUH9Ni$XA`NrkUBLNdlffZpZUj{OC z9ceATw^uK4lrcH*L;cCnmj)+a8^|QQY-#FwldJcgqyF&tCccl^nb#QT9yqApSernV zJJ9L6A_rAv_3Lp%Ytsik&Ae-^cQ=-WHbyy(ie7gd)t89ay7hf;33Fz7*4xfK9QjN& z;yc;~A72)|v)PYl#|8CKnW}gSwtRNJYh0zt4I0g|-g>2u4C_`jzjG)P9PT(rgFR-X zDXPb|?82nZH3fmlmkoSp1%H0A)5n|Xvov2-vpJdjyy65;NQucwtLP83`1)JU*ZE~C zgamJkeRc~hE%sr2c*sb+G<-{d%axniHxrlfxBXhaJ%%^2%gmm+7R5+?_4rx0jVbM1 zC#6{*3=e#4)h@q%_w&GHu5@i-OAq~ zNXXnFS-O_J#}qfcNm{OS>zc|@96dvZk2u~ce)+2J5$6)y-g;P8X`UjDtx8)MqH zu7>QS?&(*jz0uA*L0E5Djh6v|U+<{$uV8*X68D1^yOI)dVM=z?RR&?yS z-_eeWHLJ4dzD-zh?>9Z9KIPw<*J43+=t9W)vJaOsXh+^o(|=X!j;3w7!S;~TWp_CD z!F4){ex5YFtCpu2mae&eP~e8fTBexp_!CJK^@qb+sD1G_!+T6Z(Hbvth^1*{X z#sw(`+t(>=*>yysgaYeN>1U`Ad*y4DenFjO?x%2P+lqkD30CV3ob=k)c8@ZXZ8l^Vw^b_r7#_Nu?!&UTe%&06kz4v~e z{n5C?MR2t@0k^6A&a>n@hOq~k4qvS-tNPXc-uX2X)@TDeq4S&G1<~&vKMPUkUaoqu zIfvOY@>So@zS^IY1uIIw^;}@v$H5|=Sr-m6oOQ+u9NCvoze-RqqD}5!-co;hEo$g% z*7)xC-|X~+>koOa+rjd4#3*ONVYJ_PbourGI`^Juj(a!qogJszqOahuzgGX|#Yzsq zjJ|Sg1%twk<&SRFu4`0ewZ6$N-`ZByrPmeGDyXEt>1WXOr$;o!0{yKnbJ4n|TDL|# z@Bf-=`}EfbgKAHi?0wrdO{eWXaVF4@V49@2GwA5lk6VwY--Y$AYsyV!@UG$7ryBOg zQ+JEUDkg5j&F_*=zr5C2`Opg^p38ERIT+o&(;dUj(>igwzgOJ+XyiSSkXWkZy?sw! zxVoHY+spD!|KP=s?vC|ObPlRs<2iduP*jM)yU}2PBHxR7va>#W7Yz-460KVkhLfeq z;G%H}2 zpl}f|_)OooW7YZ1Z!1KuF$z4t9k+a!ts&;9m*HfDmYu{hR*$PFqZrB9m&{czhl7+~ z)kf#?W_Sd!&@1%%5nKd0MVTg_|F~OHNpU7;KORHPx>f0{H2&UsyE9Ibx7IrHtFVUo zT{XMXHEkAm_wvpI2Whx&p>HauOiU_O@i8^iX74U-axP4rIzI5L*`faPm)A#H3puCg z6TfU5=j+^g_@X{TX2j=+j7ax&USaAfm~(WlKHc;iW6KnG`3BrA{V1Z)eI(h^h&{bJ zz4*I;=mkCr)@xxe(hn2LObZg7D@<(1E6nE+L8ejgPFa1C@>EcAqBPrhMiE44>^nq-h z^jCZLStXYc2FlX!_6DT!aoDw=Q#PeGmcuu{js7P zXmseQ@_ruQC>DL5tM}=8GY_8J*XMsfQ0kP16-)Z(;>vxWP!@^eBLUIoYGo^p-#>J{ ze1xg^d+MPhf zN;8+6Y&%`Z-lMTUTG-D1qgdJPA?M5Lp3F7p$A9AQ2Zo$~V3cWk8TFmwX|(B7*4r@y z$F1U*i?@me9x{;LXQMnk<*4~xqm*!Z7hwdAy|?*ku@=$=NTiBlBg_}``IAYmey+YYE~R0UD|0GrW>W^_{J!7tyEcx z(Ctk$sOVIMoNl$1+0Awgb%oqMbz$kj(ZY1o39sGXm)Nmy*FEs{p+8oeHAm;C#k<$9 zEgadq56P4C4C;$ATiR73(r5nzh6d9IQQt@wdlOl zud#aS>(d)Zxe&ylA|!SJ-g(;)3eP5s{_j8~#9=JV3JL#}+nOValOnY9iy;1IKKuNi zj^YxYpJ*b3dyW?62D`xtg9Et0(Nz2b+yZ<;jKTs!-27y21&4eElC*Q-S&&O63my%& zKSzTdC5f`2Mfr$NOC!r)$oh|p7T}#>$^Aw1|3^j7hq>e{8tfm>%LvZ|69QXh3iI=E zi;$~mgs;Dj#A#>3vnXp3iUw<)g%MGpp5eoiNFwqVvilb`lf6Jg2P?G9GJL7Sr9#grzMi*FY`C26;g&n zfOy(HIfer)H2EuRBj@WOhC@h%AD9Y0G*}7)zo`Hi+~jQ`DT0guQo~tfu@(&ISpb|3 zLlgz-8F^Y7SxDG0(t0M_K#PztMPv+UA)sL}poPK0AfRYr5iq>TR5Vg!AgSoZS}-`E z!A@L4h%Cr}hEGc)3ke%WQqjaiamX3aq9lwF8Hxt`qC!sy6f6k7sUX>oPy|VEkkYg0 zVoexyguMKWLWn3(&&bo#$U?%1k<>GC0?vYyG5^UCijuHJWawD{*bgwEft?25R8W*` zKPZYs*d+D5SPKTnGgvkUw$%lqAmbT6EsZQBj2LM>lkEvbN!TJX^vo}actT-reqmrZ z1R%~M&v1wmQ+p%;hv;HW7@}xKa3&WJg{bGHl7xf_Bdum+c9LZ_NLV5=)Xc|=_(4H# zG#o=bxB*TO;)O7etl=ySPE>-K>c0to?$+8HE2tS&-oj zpO!`z5*Cc4qKWklvJ_3i6p^85fTe&N1ZP6?gGd?;mz0yM=zod_g?Sfi!Jv5t02+Ncm>nTU(a0eVzcopQqS5@&4+;W52#;6;_Jd46C_Hm=1qs7} z1XqiZ1deDhoe)uw0Sz9OMiLSxjI^4O=}DHFN!TJX)C^9D2l1dF$Zvo|5*lDBGX0=1 z9|D9(*=N4RnlLz?1sKtYD9CUI4@)Bn2@^(I&B){=OU)!K5gBR*nK~E_0zd^$JOx=Z zvfUu)m4C3$e2X<;P|bkBhDKyT^bDVtMivq#jHIH8=^Anr&HtamK{T%@bc6!Hcz_dS z(cr{JavdQbf;dTyXMPe`>W^Ix6%D{UQ5Hne@M&peApycjE1KLmMVOz2E&AivLlB1` zz;)0OqQRCYeBi4>lt&)om^t#7gndTN0A8eh7Gxw!f~a|^gppFTAOexd zQ#1)nM8;?qf)x}vnnl5(!GZuvk?RJDXAF}v8*^t8FCxt^0HRA^qk$}lqT$oh$U?$| zkyJEs+XZs$^W0gz_+mPQs5D2%kCku(BXiY8%=$QaQe^$Z-Lpdhy>0N{dx5ayAo=zoj|k+X;wsc1n^ ztrSFLK`bI(T6bg-;MzM&L1%}>e zP^uOL(2iVZICEeM3DhxnUd+5v^hZgcqCtt0C<~%!@U%p-kicRj6-`X_lBH-8*65F4 z4;j${!my0OCkWD$AX6qF3c((kBl;hsLQrj79MA-c76kB)C<|hv;nUK{Lc)xZQZ$+u zv4rF(dckh#WLLcfz=n-5Dg@CWfb0UoWYcAYkv--~qK>(pI~Osc1wk>4C<~%!__Q># zkcbM&7=8f%5JNbAuvL|S5ZT-o^goAi^ET-s&$Pqg2Pz8!h%AU!;M3B`Lc;oy9Dc-O zI>{P-{|So;z^W;doks&wiU2UIi22ffUFV8^Zxa zKokYhGsFi=BMX^83_W`q%D=Kah375FTEu|n2S98lnF-i2{32wtTZBOd{ht*5Uw{}R zQ4&PWOC<-nAZ&Jn>3>)9yahpvQ8FMz0WT;3>+fLiY+4+?dn&H#Z$U*{yku=YI89pqHBqYoiX*I(?Bu~vGEYTmo98t}H4+VT68tknP7@qu~vPW(r z6O>H;!8ViPz5h`X2%f=G2Yy5rsAuG9X=EWYH4n>dWGZ^m%y*)q0g?hv5KzO>AX~%F zM?STMC>g2ojN}9ti8cg4B9kAH1yMA7S{hkMKroUc8ex2sHKG?yeMc0{2Pjd%5eoBh z^8tg)&kHdgd1)Vn^H0(~124Adv=1;8j6_)w%K@I2NEQ-CjHIFwCNg=7CSi^KIAMv3 z22^+82w^e-n0P(_>&SJ4#34X(L@(BeLDK$cTndOCk#?#yn|7L!rr1^rE@% zL`6e-CxCX4X9;XIsP2*L3X!isazrD%@kN>rK>$+_swq-FMV^*M77{p&l%j=r$&S2% zo)$M@iHZiaDBy-bK*$SBE1wYg^cLb=BQ>HC-uR*v&Ce|YXi0pCENGA^MxK^N77}KR zq@od0A$cR3gf$|=bO3M%BSIwdhP(iBi+Tv_pY(uUtPO(@8pPUsh$zr8PfCj86FqF_}ZhlZ*hQT4ZzEBjgX(R@;2*Mm+)PM#i8YCzA5Lplt z4WE`q7BYiExVn^FMUyZ_WDICPy$4?kWPC;8m;#83OkXGh+!c_Fq@ovV!=Nt&NQDoP z1yMA7S{hl%3=4$-%pq6NB#hC&D;msG;0nP~FcDx1_;|@CxQGya2T46I)`USlqZtuN z5G|vZN)QqzjHKBhmd(hhsE90@{EnCnK#Br`7$z6MiOM2mb6Z4sky%Dc$E1kwf9!0i zV*uX~Nf0H2hozB(%z#h`*;9cm+q`JvJECL&>R>zw#xp2{gRe`b3lt&xW|B%?tm%SE zhU*QXB#4s1!_r7H-*nCH1|)(o*MUa=Z8xB(W}Pt3GMl}fP6Y45H)kTleQy=CpX}=RbosfK4H9*v)ZiAO_CSBL1`xz}dGy`cx z>^x=TZjwKzjh;*lj-%WL(k!O69TNL&-yExK94SKaOb`3$5k|L952%kT_f%L+{|Y6FF=V7I$yTYh=rhB)8 zZDQS?UBu*vSnZ$wHtjs#H$CQ4MCjuo5S#~k{qc2aX_5vlov!0WMfhTV$*FT$uDI8c zxZHwC&mkU$_PVO+eCJUN0YlY=!Eouh-9)8vm01$F`i|94VQR|ka`O1i8_p%vH{Z$5 z`*roQ=$@uMO|1EhXOcZsUJY%?&KkTnq?5CCt)~a2M|INIeOW_YwA`~^e(?XvaHzgsy-K^#`-mNE3Ri<*H2;8 zNM0jEW6J#H$Wt%n~4n-cZr6Wj79H6DJHQY337{6?yHlwct>LBmBH8RVKA2aUQN^w~1 zUf_wnalvc5&ma14x5{GoLQd?B50>vfpOG)ri0+#5XqAlI98Fy)b}!*I)3@c{Y~^y~ zbB@_diyZki8Rj5il``~Tn0vDP+R5mE?k*`Y*?SIdh8$QnrLMG=L~BWrlp(1OG}@xq z%+!WJSKvHaRN=5$6o+w0q<7cWWNMZQZXoxwC_io0mH>skpD3 zse4EzF>Y79&^Rf&|{qK)DsG-sx_p<0IN`G&U{w+#aghqdo@T`6-P{oa*usJ?YyK_QHb>PMCtcbK0#IQbrzAjgobK2&?3*Vt%i%Ci23iZAhxenxE z+(tU;^_)efYo?f=NQ|0vjZ95m!kUkMbm>n$lO5YXh4puE>(Fs=Dm<$o#sNAG{$!Wf z1Ape8%2f#mqZH9axfRsx(NLl;n%pn%?;}p8%hC_zgLpCW;$ydAA_|=@B8U3uGPA8c!rGsYWw!{Bt8ux~c zhjYSNWO{z*%ysWPycW!(O<8g zelr}%M1qDx{0%=<`uoG2nYRqLrN3tm)hyvp*0`{>;>lm5QG#9cUAW12mkE_jPjD}l zj_TM!^=MoClRTr=umagGh6MVqzSPh8Q2{&C+V75z?sMCPdS^z})}o#SCYV^MR_rtU zE*Iy3ykqq#kwqG1G*sLLz2><3UyM;9lGFZ~PfmAj`8LIs--VdmsjcAV_$!@P>tEq} z?W#RhUNL_mdM>6J&lO4ZT$_RCT2FzaIYPa<*oA_|L;5mGn&K>VlPt9aDwQ!OfbsfM z5}vD-VBYLH6kX=-8JssvFyB36ab@GJl^qov-Lf~;NMC{zm1tI7m~Y3GSjEUwbTfzI zRhdD@NruURp`f%kND%3^hPV90tDGOX5c78eF@JO2MjTjS8vQIjd$>aJADH1NDBC8l z#Tk3cP&M6mAK0aBrst$XiI;pRycU=dM#PM;&6p8lrwviV{=;}j^YKT^v&ARGVREC5 zK1l;#lAYVtU>$3nFdSqZ*g?p4;W62?yZlVDslPzOQ5uQw`=}b|3jOI_Q??*2`qPRuO*Jq1^Z;nE2p6$ zVuuwBjkBASoQhc^yw+|l&l;>wbqrO42b%{j6#V7kS1VsZlweEqlUd}*J@r!-)rnOXSurBXosD#)0%mJGIttY_1C@Ab6zr4J-Ab0I6#+-T~ zWMrrdNo!Co{a(bqzFGL}a@B%S;XQ7tP z-=P)&NYw9FQVcCC7C*?le$9pD#hi?Hw^C$Y*H@!{zwi2Sq`3_=`L>3VRR`bbjCJi5 zsuxKNLuWMUsPy0;ob2W4k`grY{Av#{>v+VFBi?@er#kRm7O0*SOq)xhgRA0u2ZFWX zb9}_4{Z#YmE*>ojp5)%*({?4@gyZhSK`~4)b4LdJ^ebsG_T$KC``d^kx|-P$2f@Wc z#|5AUz!!gWT(hogf#V7!?YJ75LQ`%T?l)-g)_A@zG{xI6dDiU6keCU-!2!gfLO4Kg zu+vkcl!*u{R*y(Z7bu;?ZuyL-_@8h0j7Z8CC@EuuKjZ&!TivS_?;7%xszyrq#f#O) zSVz|$q`D~+|2&WFYnTsl#e zh97${@FEFJ;Pb-m%ixc%dHti4*75^S$L^1fFBcePlH+Pr8MrWDK5%qk= zPi?_%nw$*VP_)=bUyo-+7z@{)O?s{BnRr4a>XF!Sn|nR{wT4MPs<=Ze-oZV(rh5hs zB{>z-l*rrgh&>cZ?7tyPD_naasZuo}@g{OTN_>=f!ObN&=A6V62<$BDac8T<-P*ry^Bx*V$l`!$&NY{SGCal1J}LltIskC#13w zxsI#AtM8BBc8IZ7TnD}gHlzYeivRNXwUZ$_1zU81@nX5RZadetnWnq{j_Dr<}rMKGRa@BXr=LhxZ8Xd7zF(WGSt}*cnHx4&8uXQMN zsUB3!-|pjCLRnIFc4jnaaz$?w27O(jx;?Rfl^iWwZ2^TBXl*+aR4o4|Z1=xibm9b!Kt&9N%L=H%qtZh)4MUVjX_sQK8Px#s5g&1~VMl8mlQ+DkNzhM@Gzrq_as*IV$h&y_Fq^i3ydxZ#A|a7E7S*{)7S+(|#P zw93Z!v7nlN#^RfF=(2}0hH6fu&N!;?jKMmB4&t5Z8P~$zQ{r5b9Pnq;U(;r8j32oH zRLHh(GY|Y9C_&=XZ7{?oPCdv;ggX4Hh@QQUqmQGrjinU!58bop*+%6<OPtFbbPO2k%FSE0f*~IL_$26**~Zh5#%Jf@Vg~wL6MxC~0L*Hybzr=~`3JQL zuS+u*oPV|p=U)Pxe~)sJ>Ef;mX3lJ{Y(siQ9-aKxH=XFaYgRd=($ymx*x;#v=yLN#CgWyO4kIMhxCW&2DL;mAB0%Fd44E4hoy+2 zWG_?b2=z?NyDk06QBD(@3aye1we%-Os}4nX8Yp~LX9$pN_#ZF)0x8D>B*;n5xR)%A<@S$JSL_l3ECvZ*rzSt(cFLwm=8UHPXr`jx97Br{saBIa6?hkGoQ3oa;ZW~((xg14Ot)M;^!$3yp!vP!w0 ziY`w?{bd7Cb^{WILH3#U*<%mKq6OvQd@b}m4n95taYfKX=?buU1^1wBt^+G-(hu9- zs{}u0bkA=_6q-9wYPu0Cga(`wUEQd#Do6UVi&XtX!P-qa_JmW}0tW;b&e+$}Vr6&S0{>n$un3q&;MQ0po3@VYhRw0F&C37#tyXqO z9ap@~u}jU$f4J3YPd`;hS7uK=JzlQTspP*QujuKsd?#nu#4e-U0!(W_f>B>^YRl^L zPU55E>L9#rRw}D1i;Ogj3VV)snzSFsCy#n!3cjZMTDsNh$mdJp4>`&^x((j2R-Tyb z6N%ZO7Glp_AT@djru+(|h7Q4$AN-3J@E73=6U?&-bz*|Kqh-S>kmbof6avy~e$=d7 zp-#Jw$f>6{MKCJNChQi2Fq*V?D}XGbjAtM>XjK%pdVCXX)#tE$Fo~4iAG6;bE#)VH za5z2>Ynlr78Ki-vk^c9%myBSS7!Bv2NG+uk=yjRsdUUA%OOhYjC<>>3rw$wKre{o# z-SjRzTLtTxLRB`-TtpZ|NliD$NPgCKD~kUXJ@tKj*%f*-@tjXe7FKqKMSi*gvGfD2 z@AATNlVie;n!S_aBZ`xgld_1r9H$9vI}6RDum@ru7rL#PSa%k*_ev*?FxEN-8gs>I ztxv2wl#~@{oD!FdN&YQb*@#4vzeOtxBIlz?eT=oXfyM{qvUbOPU6=U$P*O^uadO<( zeTmO!&COy0sZ!}A%RpoLIJz6Ev4O_4%6b2B#KMpgALABXRrZjPdyrh&>9)ww{UB2{$><; zk>o*BQWq%FcKkWGnrRYg>?VlZWO+A(;7XQvF3GW|;0j2BGy#Gu&;$tnuEXGpX2btG z!Ih$o-LV6Fjqbwf&M9;Cdj1~a2?lR?>ezHin(}K{G zCK*|c?n--&|7w>;6+I;4uYt3h7~5+X=C3W<*|I0K3Dl~1Vq#cXiA6mZSN{+sSeT^d z=)NzA6xLvc0VyQ9&o3l0SFncSZ|#A3ZpO7WM>%l=azWcFTttFE798cb=hDKm60xWh z1PXpI*SDaQB0pP7VPgb&Zrr#mw0ufZLBR551~BS?oVxSxt&vfrYNDivtqsUPp>kkq z9%V++y)P86&mtepx|G?z@3nYew1UIQXPAWfvDI)bUOWa?X7viHhq_IUR!zq|DDMr5 zjB$Ffd8D6dtY@WF!HHm43&Fmur|lM_?G~OMR6;q)txZ)?A4?xEkj4JrS_ zoOBaq$-x~II6l5=&-H8i4;z3)JpR@Wkn@&gTn$Pvu>8NJm>Rigi-{Kr0)Wa40U)RP z+BM!a{VMuMTHoj;YRLve1V+N` z-V2!!M>kC`*!H4(Cq1&C-ptPsgu3F z)()9V>ixC*(z`U;2{m~Nwmd6zr04^Ou#a$bC*@$F1-Ig)91Od0JxX%I3U&&x>iv(C zAYW*+`!fyQ##<6G+y)M2%&RY@=Rc=*lGG^~{CaRh&1}k>SVJZweeTe=1vX*37Pji- zA+5!kw)<7Il6rdnD5d*sT?(m!|6ck%K%(@UamK)*Zv|{{bQzH8&EVJN8*0Ey)2rZT zOkWq&RQ}(R>12b7Gs%)|_Kg%jT_%EALQQIA17e>M^xr5OG)qwE#fV5rrW*E_>`vpk zLb(0DPFE7|$>TcBWR5kG$Co`Gnv^y&0|Nc-0&D92*tg5 z4g3@S!0pXQ$Za&K7^!4f{RU^p!Wz8|%0plvKk9FB<&RjV^x+c1+pn;NueuCaggq&oXTclodDzqFHw&x^2% zGfmd9N$iC6w<5H>(oK8{Ll@=OT>GA^t}A?HbW=O1Qn|+UwVxLZl!%0|5i1(+572YPje8FDNwnaecTKCANbpn*wCbWTo&8@eeZH8~Xo-U!WR`T}^d_n- z21Ut%^wxoHd2tZ2{xLM}kqq(#ilpke4H82xoKzsyj(UF>(Nic$3o+1MFu?#3A;V+}SBWB7K^NTaHDYoD02}p{KzxHU-y!^UzZ>WNsAUa2h zO1=nvtojj=RfN%sH~J*s&C#8$(A_XBIblSf)yMHkXEOL)M17{)#Hr4Ki{DiSr=ne* z-aVt*t0g7Me6gj9N?$5pu`;Zh(CLFMnr_1sVvMFka8rGR(6icQ4kPXdriS<0ZLew+ zNjr0{MbEB&bBq+V2dw&b8A;DngkxfsGerVVv%p>40)<*w2`2Kza+LJ119veL2EEQO zEA%=}pm4jY*ky1t;H^Q|vlsY`!^ovV0WV@r`O8tHrp$!YlurJNGbrOC(hRggnOcEu zOHH|lH9u37qTGMD<%m*LU<9=fm>rsDUf;PZn-XwgH!CKss3G%C?~{B&*tvV1eUlr8C+J4%zA}899IU_=j!zuU zt8B!x9(2OzIJ$l~pf^BF6~0N+NJug^4ItT*;u; z`;~tOj~%+NGBGdGuzHhtK%pwQN?8L(XMrPS4Wuv>SW_7-T|6MNNNA2ijcpp=^${#9YWO!J{q0c zSd|L8YEam~IK~)#BC67&pgNO?TChW=jxjmI&$l${Ag+#Hu3Sh{uHTFfH z1G@Mthw3ca?>lRM91_O34kS?Z2|+@QY-4!Y_yIZxx0nEn0YXiInb}SgKN?(Ei%qsu zy_Ou6JXXSl34x7O!{Yv??OwwzY1*cniu zY+7l6uEqL)K<)HCWszH$vT!Fw*!wM?V)F=T;v;M|%7_90ixUEl5dVl(teNY&MU?zI zYz&YF(|}Ag6}``xLHF6HAulC@1_9#uUkCtyDD}_d0#u`4ho{%QrDS=eol0+4auJ^Fla#nU$;$wvc<)RZ0uG(kj{9b1Hq)MzQ z&y-m}=7X3Jo=tv$JjnjUI)$XHzsldQK?(e|>L=uaCBeDO@>!4phOL2;Aj~WiGatlU zFp~V(k0d`7l2T^dT8wWZCO>|IBpd&8rhZ<6e_qo554YVmC7*3tl_YPuSzW!tb+5-T z=!M#84Yri3xhBi|?rn*$rC~2?BWJu{!2VQ6bSm{Ro3^Cca+4gk=q_ zmp=l`VlO8$X6cYI8$g^|N0{fP)-Hr#NTe9{zxFbCa!(-I3)}9shsY}^4B!Yt#s^Am z&%o0hVkH-JTaS(PZIBoiD_jGU#4Nrr*UTpaQqaBZEMBvqV*U{Lgw%!S1_9({{51%A zY{rn*mLZj!!-23hX*pQA+kNx*@){X{r@&t+2&9{3*iU&$Whr?;XBiE={?cvVd>9Lg z%@$H2+Gg1GEkn!iGvHS_<`sP`!{y{zH$M!`D&_0vDKH7b;UoarFgmD3Z}ci;?mD`C zT8TKgg-lCGsGi5POgnlQIVOFHLw zZ-h`&)7yOb*T^cb0$fu-!fr6RaHA9ZM(R@gdI=L4!f+ne?SkHmcC}th`i}g`euSo0 zQxJjCFkx_T>(+6}L#>Zi(#s2xiXmoT3T@flB;jl;e9q=33CV>-BI`fU_d3vt|Vtvu`C%SrLdg{M?b$NU3z-LiRQ}-D5%z zXDoOtn5#3l)d|TOOT{t#H)7#Tt%X5w*jDlb5h~uPv2P6Q@2{!BVAp4tNjG4kWCW|H z3GIbeEWmT23JGoaIqD5=WxSQ^uZkw^h7xz}sbOxr?W2t%Zl7ZrhKldljr6rVq;GTb zvGRiPuF@KBge9=817t{qf2Zs%EJWsJC&Yr#cVo{UT{#DZBLV?q@%d

ngYrArDUK4Cp(hjsbuL3=v4EGzMeb7$z3S46#`^Q9UbLXDs#bYM zh2vRE-SN)OKA^A?<6f=zbf|`bDz#w0Z*_GsZ49lH6r~DGAGx}2sw%j%USWWKlP=k%MDnOoK(0)kev}OgV45x;zzm-g88EFgn zXbWf!K&~<<*H%r?Br$&#_*?!8(l~!dv2)a;c>o4dj|vQYKpLptR6ak@xX|X9p`p{h z1>_sI-q2`&I0G=b@d@oyYMuA6Lm#O-gENy%q>4n^%>bz*l;A2=D4})$wN*;Y&$y)u zH8x^cr9M^(midi*bAFN2T={tvtAfE)Nn+jX!cZ2!2uVX6=NP)&zDDmXEb2++kVNtC z0gFx~4djRw=n3ciKv<6vo4;h>w*t!CT9kA9;BpaVX}A{U6s&$+RRG!lG8GbQQTlm| zqN_Qs_)=DH#({u(supA;V6Ga+&$K&)0f3)(9@eq*3JKANV0#DeQ3yLx}AQ3yEke>)gD&7H_;$E;6V`in$fnuma$;+_3Wp^zYs6e6>mbb9W*nZ1* zkW=2;RRCKPvH<0+g7OHUN{fNjP>b%ub2NeZfx*AwL#JKBKx-{;Ho^|xW)54uhO~;= z`8-zzawax1>`c0Y&!`xU2L5LZwrGM7VNp2oRQ*QHE=x^0 z1u&)l3&p%qdWIVS0%9UDAm}$@0Qr>YzlFsMEZyn<93Rh%ga>;<-_dDCD?me#X3#y3 ztXnj`6RiZRRy<&ZY5$GgvQqEFOWnt+edR_O6H-O|TLz0y8;0ajcA5x|4seJAZm;tT z-LtwzW0PF~TU2&ooTogg@D{BuAM-r*%Eqg|jHlhA%$_LM>F18jF7$7I3|4sM?+>Y_ z(x-(?(HOV)v_z((l+;x~y8ex9KIcSOVX3_UZ~-9M98v^y*T8(Z6UXm$ce0$wZJ3@v z%@3PA0n7R7@8lr4e*a&Y`q@Y z71W8;`mt{p?@FYMw_^z%K2#mgx0@8CSyfZ9#n-lr#2BHP`eP3i6bbgG_`4E{pU8%_ z+$p^W>R;Frgk)o>F*B{^@ieUu@FI<*e2^H6|VILZNwQ`_U`>L`n0@y#~p4G5f| zCD=XekZM1#Ir1SH?jbGggb-%9xMfB{NYjT+F67toE@m^H0&HB?w_tUI@ns17vwNqEa!Y`(m5s$=6aBykjVp{ zbN)*Kn^iZ`v?5x$W&?T?~uKW<#@t=xGb4>u?44MG7Nrb4g;dhD-8N9_@BZNZZ z4hwM-?r;F@^o5un$op48^1pBo|3EFA$BF{C^&2kimhBt*=hnn9a5F}@A>lI?&4$Ge4s7gC z_0{g58mxK)3ML(cl0N<8!;(ImkW5mqVpvv{Qm|4SPScuLG0FVFh`=tRkJ7}&#(!AS z-qCXPH~?VTdhQ^VQ!pM5eSZPs``giTzJLA_{@*BqzvbIo^k8dt>JX3=)Iuy}goYFm ze9|0(T0jvYuC@3Zfng4W<|RO2(sBvF9OB9b;bZ@0&V5ryBXDsF$ z{{O$UY6;Ay&T;Ic7%#UZOvO;}t1-*%@p;E8?5AtT>h!9H^D&` zV1?tovgR$r$E4hRBqbl7YpH5H(|9Z;J8ZmidT2_@ZD_>Pw()>O0ne3csosKu&swY~ z=#83mzFKs}c3IM=Gl2DTyJ9R}Z=Z%0@_#=wrBWOD%CycY#r3Ba zB>UmM1#E^ZJFu@+8?lmf(bO@A!&NN#Zly`oeS2&ppMtATD~e3`(w#hY&UZ9Wkz zhu~AX+LaR9?+r`hX^<4T%P*FhjTCSX0)Y1mp53d0ZzrT`D&B-t&0r=F$d{cz2rBlH zdk_DovM+p}!HaNM`0{~^_()v=MZi@3yBZZt3if* z=C%{o_f6LPMbubC#%7T26%>dG2n0%H^IJt^1N*-G_x)t%A%s8QnygW2V^0ad4<~fe zrI}dOX|bR-sP|Ltz_8qPdD1vBc5!HE_cxmwxJWf#%59`FTQ8qM#g)*KZ*jJ|+G=D+ znWgV&t2qkuV=Bujxo-$N%s%jg?Ztj)oLb{%6fH*EY%Xb?#RYwp{ercG3zt5nP$t&7 zs}lVb$Tw_5mS`3Q=H`v2o-HiwrUV-!^yaxzL-VJnhjT|3 zJxr9M-ppU;IFr(!-5lX>Fd{1mEEs{DiP=RS zh%4rh#dCklfd5a#Q*&Ii|5%0IM1|hiQ}e0#sA*jDDyOYS{7{5<1A|IM zV;$iAD7QO2U6^XP!5(VVxl%cx{V|JPo!Ru=uIcGMwy7e?2~oG4D|xonlNBcY(?iqC zM^-F*%O{NN;tN_9p4s&k+`v5>kynttt>Ld`WEP&;O%uE_BeU?#){kIs z`x%*q!Dh3>w-fhP1aIe?`A}ix0DIUna@0F=gB)=HUzz<-K`*v{31yN??s3zoB zv!4!5xFY@vIe`cM3ONAh|Do+8R^7VDe- z#m{g3+FGoCh`0W{@@vj-iUM!<{CX(cuNVGnYq7rdX#aW7udT)U)=d2E%CCq1A)@*E zkMV13{n4NK^&YlgTZ`>grsi#3Y`?Y^+aHRMKkxbTp=@srT7Q1)*VbaA|6|G8zx|K> zeCQvYpCR$^Xcdg@tsU(QjqP9C-@ZNI_1YgIL2~-0#y{_nHa0TX7qE80)BJe@%j?ju zYtsJtiJ+ae&0l^XU}GdS4qq#`rLM`S}4>cp-*rv6)QH1-}DDymfuk28Vsisn2JF@zy(f zJ8G-?qiVkolmM}f@OL-J+iKRZg==?^@NR=yL1N-7%H zTwM=U1M7+keU29Z_CKcMXVapx0Q$h)uivAzkF8Lf;8tFK%VNcLi_F3AbAGWEkQzjw z1{{GeWzV(jv9b!;6)dFdK(5qS=T!7f!k?@6JO-r#sDF3?+K8we|+F)S(9`%&2rHgvU6vz*oED(L1o?K|Wt?(HP z+5EKlIa1FKc!vF09rGWXH#^YMNC?Jsd^LM+9;zP=RK-)en6;%eogmAL9n7%s@?Dh&;$13hwD*qaR$sdyoq%qAwug5kVkXS7FtTMLQ3rR z=`aYFkG7ujy_UlQ=vDAuTl|!l`xEBP>MzSW}1B;jF@So26V{%T*1}jnO=ndbV~vg?bD-5m^(W8m6{KfFQy(wjKP4D=z6JwteJqI>V~z2+W|NZ9>^=* z^DflKc=3icG!d~3cH}M@nkT}Atkn4iZlQt>;d!Cj5Cv@0b-m!o+Ynibs~6a-;*4Q+O^rcXckRDY1`ufVvK6!Slcsixjt^MN5mKneC_W`RbGE5-E+ zlLP4ZWx>vCDad2BXGyfvvBRio>qw^BcC{n~9I$k9J)evX1VTlaJfU$OFW*xaIyG#@ z`#^~97m*axs~42npgM^&&LWuTFF!MUlh@__h9F}Wa4kk$u>1PHq-SPWd1R%vM6!EN zsw_B+?B$uwN1Xjub(1ngdUSm9m`LPw6qUZ~C`NHLY(20WqlYwt!>W9-5`=W!+J_lD zaFRtYE-1zl7o%Iqw+ZHY?Zz15)s$cw3f8_t`w>-TENY0@nD7j3GCzq{jK$C(F)<<| zi6GMwEfTayTocA3)*_uWlg7G5=x|U3~Dy^a|$1i9-Z;DxwJfQZsZf2 z^N#~s^|nUaG3Un{80F*ayOHa~HuDM*{T6?`d-x7$QmqpW8C{|c)9{C|LNVzRgfH=g zd7O&`F#*YKsxOaFt429nKW*Z_L9U;6@C|)2F#d+P-eARlfj9Ww^#9>&e>45BXyiB3 z|EI*=U-evPdsUx*^(B9&=lYv`?=NrizYh84Hh&+I=~dU1`4t~oIa*q3L;f~Twl~Q3 zKL-8Z8mKe8YBICG0wbo^F7E8FBQi0+w#t760!*)RJwFlH-%>1H1+ug)_;Sa_h|9ht1Wm?MeP)UkR1?gS77mCSAh8z8WC!UynZnl8Am72( zGpwVmAkttvrf%4Yu*;Mi#~BRu<6=6}p%zhrW+0xulY=ThKLzNl6RJDydiY zyTCwMm{Rrngh0o3QT%ZmzmTPQXVEU`GG3HYLrGmdmYcvnTuj{nLnx^URQ@Q;F{G^c z0-rKQ7y@dw2=0;!97;lKNCkqPutwWwnrM4AmR_&GZY#EJ>ufQ97>TYFf5^boY|^!* zY);%p)sNPu)-jY8Zb7^5$LCW*!KIFVR`>S^7sbfl98V+gClv~{8=lYTzRqYqM6$35 z9TnH?-0}#}l3f&3jb(T|%3f(o-EJNFe!}u4)xLMCL7}Tcj7-I7wi4{5nE<(!BItJF z(A#%nR%8f}s>E_QSNWTnE4Y&sSq0?Kh{jxn(A-HiLO?*epIunGZCD_yl*PhKfcP=$ z=5hcrVU1aZB3kY~uAXoLNPq)cXVdD+>rak6Ma<*|6o)k84eIlBW!9`Le$CSVNYG`^ z*N;U*veu>C_!3yae9ldU#=F>u?KuwW$Ulx!#9~aS7leKN0;^CB!*~NOU4u8KAyIoE z17hc!GRDxns6RStayUd=9W;m9+|)J6Z53Cp>(TJ#1-(5&HhNq`;N4x);hyut*@)o6 z@i0>QdVavCiaq*q&x8- z-&2L6n6Uhhvw=ysH|MB7G^ z<(oVD8`e^N+4|L5df)1H*5~<4Uur4@ahIrTTB_BfNY@4B!4(N{S`rOs<`4-^zIcj? z*IlpEB9k4V1&?Nbz9o!o-`scM%?j=?-Dqp^$t1&GW@QLP>leZ!u_Y!o<8gCkPHsyG zW^iC$EPxcCzx2a95n`dr(q!U)F-uvs>0}fl z&l~5>Eanv{FB3WKbYafIY^pnfzNr$_KEMlyW0JlM=xer`GxV`h_P5c8H+10 zZ~Dkm511t!C?Zy?XQRUUn5#n7a$7Er381AQvHEZ$a`vh|NEeY7EudenJ<*!=TUq540ivTkw4&$U}&0>s#VUJ2*%0{YZ&;0}C( zIAUbYMk+oL1Pfa@WAVs?p}{%g`EAb(Al9})Po?t~zbJ?;0OZ?v`5d;Ttj0r7s%4=? zqN7i#;6bEL4h5`Y(3zm4mX>M8STjqMhl2fw zBsPmFJ!u&j+q#f$<(`Nt2Xl?^({q?OddK1HCXWw;oF0Z1LJCF6TFWAu+2b`TyU|im zc?+!SkWF##z zSX|VZ_hvE@WFQL)ttX~^g|HQj8S#EgLzAJwfe7SSiVtX8P-1d=$y2&%vL|8`Ohn!& z{4!>aIwYSY-}OhK9Ts54P{_?9OdBf^9!-QORt{eARj;m)!8FWVVTlvDxMA|^)8dS^$5ix?$Q>J_=@ifoIo zA}SulM(vu&85LJ%&-(V8-(Q(K;`HO?PkjE6Pb`l+D((t=*fz*G9wLgZXWBss(HL_I zSl+lwprEZHb|XLNT<(u-$5GB6!(*meGNHSM>?b&&T&DG!;+^(5PReT*Lho1Mfq-dHCqJF>TrP7+ppvQ=zxw!t@pCowx|HRmP{F3>XpH?Gp9IV7pYo3{P0Nt|p4T)+A~L zXLN=*(;F*1rZ8hf5x20G;L&cr)CIPt+IN++`p^&d#Vtk6{G!&E%FaN*YCzQl>6RwO z*Mcf2!&L==ek$il+<`B%rTr7%4_K)@^%YntT=EC>u9rUX)nX%Ex@x$auRaC2C)zp{ znqfVqRAPLl=q>(!Ux{hLCIi;(0yEeeF3lQ~%y^B%5h!FMQkaGn1JuPE9RSkuC2WlF z!@;Jqcv|-G6pDVEHFsPG&5TQ@+u~_zJuPUYZoZjdbec&)z??Q{7%@36G`()hk(MI= z$fqEnA+wiC>;X`Wxns?0|3njBLgz_P^-%G|kdr*}y;0pc8sy{D44(mISK&!&zB*|+ z1e-KFW6Vw#BrY3W@M)}rP9}Y*UeUWwBsB=O@GaPfMOx`~=HcTm?)tpLvTy2856JvQ zi>ets-BKlPPOC3nhH;IYq60J!bL~t~*g3_O>?4ssFpEzvd7aYwLH-f|{EDf)#=+Tt zLjb?XBp28JX&3(+Yy2}L{+mCie~ah-Vn6>I#rq?8{yW8EWn_C*Tl#l`$M`pOso4Gq z%>OWwwNs+=>whM^hRnEoGFE4cLAz^D6^i|*pL+yi!)CDwq(AJ)9htCG-nQotLa8;)v;mw_$#=kKqFQlC_`4X0W{Cwux2Au6KxR49S=+tv-pdq$VXQl;(`ck78IZY;*KGpUm04TLvwW4Np9E`t2dW-p+wBaL{&K{9L4kMCGkRs&9C+v_-D(ay827DdxT5T>PwxL<6S zu6kBsm#+yYSum%YVfkplzx(Nn$ra(e#!$M?j-hP=))5frNaxqn>g>3!aHJh_awWx& zgYcT49*pX`kkEm{fEpXxu*!yj07zn6Mf~j}wlRiF7aTAq?xFmGTC{Z9T)a8&KX|b6 z6!1;yDC|-EaF5TK9!8B-ofU*H`v$|upm~S!a4!_ICbsh0kDQs2MqjAzS4(#46z50h;K7G&ql3Kgq^`mj3=8<=F);BxN zYP@bl_k+-G;G*p~@w^YdP0l9e5j*4aw6b5w>B~PeJ5nU!<5M%_siDGo*zye z_sMn4z0EsYDHr3i57C5i3|hEEY!N;^A2fuso+6z!wz1~9BIgZyKM(DlPPHNq5sL=h zKhQE5t@e9$Rw)uw3wy`Z|j|?Rw{Rpyd6P=X*0}KaJe0^d{p! zJ>Ofh^ylTD-1pC1>Tlfl%~Skg8vjo_#(yN&{!ISy{O>mZCnNqF zT7aV(AMKaw5T46)eFwMvnX>)QM0_gxrz^FaZ5O3d@4tHmGhl>@4qATRg5aXC@bYwm zhyjanCXL81G>$MniGku$JA!grZ$^?qd!#zUH3Sh4i*5eg9}*QuPC)Se0=<#jwVJEZ z1s8#4;KGEo2ra)$?Sml_l4R*@IKBR06&`QeGdFDt*u{!6$X#5MQHmD{)J6HoY@)(o zsEy3s!no1hT&(kOEUx~AlMvSTaVsS$!_?<~^a`;EJ@GEXqFTN1$O&pHVXpAOq_bcR z>`ul=uBIfBz?fUtMvJ<;CLJ;h@=KQ+syGDm!f>_$%x$nAzNyilf|(-*_DRHxKcdhD z+P>4#h+mXM%LaEDG)c=JWN9xyn6#mR5LeBOkklgEJ;6ZE0zB2$HoeX^bpF0dZ$+VM zV&3Kk2~_@-k1{%k#6S-6zALc;T_#l zyF}le8izZ&zOyRP(DA}yB7HYF=*JwXTRtt~G!u=e{Q57F-?D4p zi|dSEWf=}lY9vK)wyxc?WEk7c8RZbL>fz<6syNE9#9!9Q-#_vD`SdPrk-2;=6^}5$ zAUrfSB0{}K*{o6T(2GX0;pfZ zxVqNX<~}&PzH;n6fN85Ej1N6^1}fN7FeUTXxHQd+@kr~)wXMB2w%p*FL|0X7#ME*E zb$%6B7>z-k3r)GR^TAz0z|hmxD+a`O!pI@rwnD;6eR}8Lfo%g6F94OIN@DrJfa6$& zd~31KQj?5cvk zJB*@5?$L#T;^!HV-H%>smmNX^jhW&b!EO(SJ`9@CLq&-NRKsgT?>z=FtBp6%p`iYb z>N9hulZwxWr!1}OvXh=-SwYLt2J+s+7m|Sz$%ajBm=xCHPpDjAGj5G$%;Tm1E_! zQ82EX+r#VtodrT`(M+5GaFuOSka&;QyD^~{S|#t7wbavc_|J@OjxY|D`GTh<7UmgN zaJ>#5>qe~Ce0;?T3dL*Bqs2utu*BrvZJ>f}azu6UJ;tHfg&cI*79T|y!GX#GiYgV8 z2^M2Vb&`{zlfZS^rpT>l#Lhap&kV%!l+-m+Iwy&(G0E*R=Zpa-0*E-ISs&v2+SQqY z#6Vf#p$b*C{i$(!_WCR)m?=REIf9}|E6|RQlK}-Km4o2}~3xiv4 z4J>lGu}=}~Rt#LmP)c^~+I`K9k+Y=-JjW0O_O%)jZrVABP1Y!by*@h>U5qnLr0Y%> z!Uh+F-GOJcha5IbSpXMv$0PFlX)@noX~;Ejvfg$mmEMuc#dEW)!%mWdItG-@NRng1 zRh{&m%gH53AJMj?SOW(O%jbS_-nB>to>Wb;FvGrF*>gsYxRkudHRGrY`E#%;Zb%#2 zGw7-(k+MEnauu0W709M@Lf@+%(DI^Nb7Knaed@m${v1-;3Y-ED%q z?TQzJXe+ZE0yUqQWql07;cr36!Ok?rDc2~1tL!sSa$cjU67+mQ@hKRb${o1u@d|#B zTpKp0LO&nRp?t<*LqSeWjA|z+vRPgNc&20LZ7O+k^TL9!V@zNas+yY^@rF#oG zD<*Jr_HGaE+_-qPx<0w1G{Z$y!(z708T4ppS>wJ8v^Q)@|GNy)vk?(?IRT%t%=_se z<&V(D8uWnqMX)j|`8046+w~EPB%+B%_yv4KfkSxT&3Ey5Nx44J7iEmB;C5yxMXeu01R`Ijt+djIu;mLmQ!>a!M`rYSJ5&L(A zy>y+*k2#18TH{(SYH%ycW^65fU+-dUMOh5(_AcSDR*zPrJ^NoKz>JlRM0xidSU{Px zwCZH)3}<55cVpLj`NbknW1Whz;WSO1VLXV3m}E(kNXb2N%ppECPn}^Mw#DwmAji1w zyms`LHbVfJf4AovTcS1h1WJs<=pQ_p#LrIBOc}7!|J4Lcaer=k8;k}%3v=%K4+>9F zm_;6&$GqbKuSKx2^*nIHI71yBpb^$)9w|M>7AXD6=*T$OO6LzW%GJFn3)G^ zX|2x4=|nHF$bk6(52v>!xFE+Ft+yO-jhS*PIA4t7t&4r2zfLZuo?@van&MYXiZ(pq z6RLkA;&5bJmPchu5({T;;eEN$2cggYXk-ipNwH|>#@O&;fL#S|QcTEt*j>Cv222+m z(2fL%BbZry&l>a+3E&ZU`%x;%>_!*3VU{rGX?}_fGPj?O^7#?Ah#>&(FY(~7;6DQc z1M_cq@K=E3zb6v%XPMu>L_&V%uz#Vu|1}cwXEl|Yx&|J@tKc-#tJ3seM?#qX_K<(( zPyRXNt6n(`^J^L3zehse$`Jp@JpW!KgzeA#ITOvRIyNI4`~O2AppmBE%;J%iJ9)IL0ctEQ==R0rY}|4r|NPXl)GLfX4((BTk)f!+A%S zB1KC~2V0#|Y9WTc9!)PIiUCb8A}`VCs}8&RnJ0hv0D(q3x?B0^h@;IPz)Mz(9W|58 zhra7`d-qZPV6WxHd(v`hx9QO%`GSy}X>V-6*mZyefV>ceR0S43RJ4tAISM8^@$i^= zlPdoFU=o`zG^n#2qeFN^ffJx(>5dBUfntL0_w60@z*>|9>t@EA25DEon9bbkT2yoP z`06XM3(5(7PH8;I+a0OZPi2%FL+W#L_P6n>1l$Y4>LlCMb(*`@AgrG>No<>3ApH7x zxy!|T-A~f895&x4u7w%j>s=ZxxCo)KY3TL8U(}f^vRhOt{HTiMFl0{9^YT9lKH8*4e z4Mn7;a_#Y6WzV>w9Fgp`>)$bYJs84p4GU9l&6 zJ^WEqmHItgXsbG0g$O$@$#UlBz90=zA-5!n0GJW=m~zO9hSf;(laJIfli$($TFy11 zRU%L}sOHK9=;UGco?>l#x@@?}x!2DY6RY2`p(}Dew~(oR8&~Cv=_a6_q#QJK3xnn1 zx|>%RSl@+9`+UZQPwbs6A|PBa87JZ)Nf_QidgU{E)Cb}f$wFk~qe5pB95aHp0y=@3 zxE6gvF6h~{NuZm{{cy@U;>rs#QIra+ z@%quu!Lx13JDan#zP3GhxL)rbZ5|1OgNW3K7UV3Lo;68S_wF~}$uEOjUeCJ)EUAdA zk43`KA*sg6?SG({R^c*b2D@XLnc?Kb>LHX#;>EET;OD-J@`tvnSE2@l;qZ*mzS)Pl znFoXFID^<&cd1j(J_8LlMIGhY&<91`v|TS6iNv>%;tJ}eTQa!*W@Zv*!Q1}`cH$bN z)Bqd(jsUufhJW{_d~1T+*Me!797n{LR-cfqcZSk7P=Eev%fA9a!0<*H*|f~x zc;@u*7*y8!%(#d6UQ0Ab*ilVCwQGa~KVT|Umd--J20pZ#i$$cX1o2o{ z2D&|ju)@I$9aGSaLcldg=kt!6iKE@>8WFJHb7XG;n3-w_;b*#W7J5H}INifm{*|MB zGoL?=Dm??+Z;tk@-u&m~pMjS@%h7)iy!@ABB>oY2d0Wr_EIRnJy8buU%=T7Z|L;EL zttR?E`xsC8N||mt*I=~!_uiF zo!gw9FFJ^V+0>h$DGJk*T=`hOgX>7dutmIeo(hqpthN8n{;7L|u~30iQ7T!2 ziBue}**?3mLUfLa7hK%8{x7%NuVNMkR)&AVI;LM}@4pAu{do@KU-r&F!Rc=WD@=c4 zxc``_(NMR>Vny_tD__foQA3V2!R4>=*;EeKCQ`?guY!}WFq5_ysd-Sq4L#Cr$9+iB zcb1JLfugbmuSgMAsZ?{0zO?Ct=w8izq74RKFhYfU7mkEaeijLF=X>>s(T( zF7|EO7d+ONmWH-Qm&j4h&;*Be_q9(|DGU)A}@(W4Qr8+rpXI9>zb3@gYHClFE6(X90f=ixoZ z7A&@gIAIu)MM-hWm6MLxszR|J<&ACq$3=LVL9kh&6EOW)Wi=Y_t5(lMOpO5#l+TT- z*vQ4Q+#OUS`~p!16Llhi>kjfP@J};h?^ugPx6DOxN_Jz%0drBD!X|H@<9~D--&?F;9z< zxc6~z`CN7Z>HBLR9FYyQrr~#7H}c+2__fb;lZq%QgW?-PyfrsJB!|!5VW>;0u2)Pu zI;leM^zW@SG|SG_aq?|=;8MAx!3KH)z-Yk|{+RrB^qs;fga|FNZ3U17T-`iX?fQT& zR}n0i3h~%VgWdn8%u4E=vw}sJyL|T*^hIO@lO+BpKZ)Yc{6cPuJ?v*;2_xSq#2BwK zSWjpxtn@p}xgQTlqXfi>-y!-#?ud!rtbyAVA0Csm5@Ig|OMbndU`D1%;B>r06R&YI zi~c(37A0(sD2{iZS)XB-n=%^D{HciL>vd7BB#jwfC!~}YzoB`qpEwcSD#Ug?XtSZ` zq%99?r1j10ba!tq&|D}e^m;cTx;)PT_7RQ*YP!tYRCX%9o_GiKv&YfK(*r@fUPl~Y zXxV-aiZg@2FTk97`Ub>8&xUJ*f zQ*QwL{hena^nn67Mmv<47+n$%vQ^yu@y7L5l%v&j&dnNU18%_+P-s>eEi2`#DZm zZwkVe8$N=o&Cv`H3W2v`WH*x}CK~6~@9Z}h*XfL(tm)bwK>ct*i|Dm0?dKslRTN)N zC}1xsm!-U=0m|WsAa|Yq1SlN}=!gUAk)r;j4vpqB4FKN-KC`xlV$ZWeNZsO{#6Epp znXG?3w{}ZIsXMbDjljhWno&NuPa5tCB7^HwOlPD8+&XP^F50jJ<~1})AScQIlg(G^ z_MH$z$w+C+gubxZ4Z^;l7$ZW${7Z&B>_jmBry$EcxrZ^kS-9MqWj4(mLol9m5v40L zU-f{#`pdT7`Q8-H97fl4Sqcg zX$Pz5bWcaZcV7d8Suk4x!hie?M zc@NQyf)q)y^R~gMJEdItI3Aiz%0qd?NEI8Obvy%W5ydllL=-D#?<1+9Y@ElM=J12D znesrfCOG$Q9uJ;Y0>@0ncY`d>^V#TFiFgaVNQzv%slxv4DH5#pQ;G3+Q1Zs&{Wp-R zg^kS^9tD_lw`O2?*LC5s$NL2l&ah+t;Uz+%HWl4y;pqlpeVs zF7kxi<-fXxt^rXwS6Ody1d)YM>6( ztl`cY;D7$frQ zX2tFjDSStg`DfjR?g_)J5Sk&?!QBY0>+(b2KzAW5eJxJk1ts?66fAw<_ldo!E)+8` z=yCWk8kJu+2PPeM7gW|bsFz8)ib*)sI4%SaYvL2#X=H)V)yfuLs(&}ettlv+U$BJ0-5xBzCf>>J3=O!g%zT zSoIglVPInX4XnN$v;Bi2{GU!b|5lCl=MmxG!Rp%?;eR7Ke;gS8&qOB|W6^4v?Sxx5 zvmZsQrHZC5oX3&jxX%BGz~2M~gykUv>yYT+9%Yeq?`V#8yV+8m{W!zy!$mN%a5S>` z{vCl3+OyV|myLi7L9cVJH31A^3-IFH%V2+P-c;V7g(_g?bS4uNAB`~bykF%kJI*hBb=}EIR5CNzwd_<>DMxY2ygdV_4=BxM>4ta%8FPIp-W~^Ypu&4F zUr8Ab+Ec({F{mLa<6=NLwGhLNb$1*wJ%b^(3v0wSgH_5V&vHuimQx8 ztg~8j@~1Doyi5@ut<3Y~N_R0Gx3E^619W+xDuJDl$RdV-01M4wqe~XK%OO)GzE&eTtlH7AwC=GSTA4>mb5%+?#i}ZWH#K_=Pc=Ix(V6M z&X_%$`xG{$Vma&V$X0te>jET+mOKE2k$s-Qpl*DRr&*yHx!J*vkRnKiNP|-9+}@Sc z;R}Q)^m;5w9#y@_9bO%)GB&?y2M@xOIQPg4`aCk2cVvx-M)l~mhrk8T1}ga~ z6RH!5E+0D*g$A2PX9wR5ELO*5#z$_XBt-;^qiW&pga}42XMoU5MmwI89)qWk-v?p& z+0czH)e|s_E*M=VCMl4Y764it?MG$D61k5kpa8IqrNM{*>i(BYQl?;bFcJZ_-ErsL zAoKOdZ8qTdk5`Y-u(mjz5a9HK?B3P9y#A92zzg%+)}}J!8$Kcg2tdt8FGb(KE+2Wt ztwmLQo#SC_#uc@336eQ>N1>G(1MsEmqZwMxsG^ks8pDE|2S;fZGIthUPXfatqtB-q z+CCa}p&9S;oQuTBN;>rk=v=DEsSw2;J~^9Y#}aNV%b)j#0Blu3Hv+Js!_M&73yo|Y z5Vb|r6F@?M*ht!l9}rz1F+ygji((Isrh#23r1T;((nAN{H#WM#W`~blpg14Gxhb8P znohpK0dhzTI%5kahz&}$!_?U+_y(6AfNeJdt}r{Qjm;`i&LwDqbZBIIB31+A#U zGlg6%Q2^fAzI-!;Cko)QPNOkiomWSxB*u~UBeprfcsZmt08#~|U++Iof`32knSM zRX>=ID{iXH+p#RPYkA%WJBk5fQx##fBeL}Pql6<|8hd~Aql(;6Ikf`fETz_q1O+hy zTswx2IW46tFNpfW)_qTMlrSH|w~fMfPp*3db0mEGY(+@w{q-9+YI{U!ZlUsmi^G=` z#P45Wq9~#&TmtJ95Q|jYdvrpu{94d?tgSL2gB#KYlrQVj4?!l=g&C zZb#6eql``Jzz3_g@$5DRirk)PN~6mbFwKh?1&m>XTB*+=3RD0H2(q)F^jJkwV`yr+ z#Ll$&2IdDo4dqENHbstX5X(}29Z8rv( zFS$;qZt(K@Rkns(F4R-1GFz2lj_jw|5!MaQzi6%*sWKKhSEFNDTJmpJ)ZEP#$!3!_ zENV=HQ^9I{7YuT6@{=Yh3neuVb8(5G9U{?6Dya_-?4E)(QmkEae6RnEQM#oltO_?0 zzI>}`;+$By%`91!qk-goGUS#GB>}|4X7K`n?xj|l~{(3Gk^P=n(R z&%N_JDy2Nndu^=uvTQB;!i`j*!-;c)nXsDk!CX+2quKjmto{>xZ)tEcjP!Ofydr1g z7lefgA)O4jMT{~n)VLJ+RT<%C3}&tDwL1p3SXx7I?r99pT6sHZ*7SI&m16p8H|j3_ z{!^77pMq%Bew;XbVc#p2V+!(tzr@?QbOSSk1|T%pd`TSERc;HAL8)PT$X^ee?%!bS ziAGooj6O$oHw_B8M~Rb#ldq9rKy8+Y^*PfQT^+4Rf2t83kv9_fxP^5V*1$mM?tIdo z_`GCTqK&&iWm=@v?2~zU!-yd;x{w?67KQJxM6d35WMC&XHwy14-lN)JQmBwqkTU2zUA+!5RGF=&<}`VDuc! zuA{q3osJVx6ppK+t`lEyP8MMdo)0kmZVY|iFU}$X_%}UWXNS#ts9jTW zMF;eg#PHF5B67G^FmuV!`wXv$$9FZnoe64|X^|)&7LU}ulWINtVWSLEvji(CLgf0p zWFC0AXDbI!&F;-o-Hc%KU=Ee1v)+m8m*)FI=4NM8O!j@13N#|2M|vnD zF_FZrZvKHWv+uwFkNMqj0qPvPaYY zM_9xeOgpYwfVG)B>7&DKB<5|bI*m}2P#bIYwCp9EsyIA8q_-+?CLW;vChbGHw|)}) zBE9dD+mjiK6r$u*G;0L<{2f>E-KBTfyAL#f#UI|l^iPP*z{dDnYUQmL&wm$x__LwV zzwn3OdjR|+8PEJT&$7p>ssBvId)=0=ZPLJ3Z)E!KX;w?a#ZH%wyOE;_l+KegubHt7g`%%pjv?u_ndfk6ZU4#Mns3$w(ZPZ61Y# z!zVyKz9FQ91JA33CkR0zs(_b=2Ug0^_HFZY85uqa#<9@O@Sf7B+o$}VRbFJ3j%JF1 z;5XQRYIgguv%9>*h_xcglod2>n7-D7^|J5|#STn`>(hG|wIYq&CJ)@PW;=vvJ=n!} zhzyapIB3et6mbVstGk83kLNZ)Quylaj(5#gBi71wwIf6dATdFSWlT$Cga*oz<-%7nn% z!ap>1u9`Svfa1d<&STJ@Fn*W&)&VXK%|j2h`M?D&<^~-O)rL&nMMwW}zisXU@46^O z2)Unx4#L#G0E;U#Q0xP~{#Ei$1{-2;pE%?(;>AszeU==v^H{Q7x=3>b=2$|roJoA2 zA21k@Ulh{GyFTw&^-}tw&Vvl{^d6pFpfy)2s;&@#cO+4RWqO&HY65}epEQGgRyype z*0=AJzF1DZ(8tmkeKB`V44DI|58f1SI>>DT6(v>k++!^YJW!bBP?k2Nqc&nj@O|jo z#$QdX!pM>Q8*pN<+}6Z%_#C7maNm`t5D6i`2{urS%7 zGZnWki4+U!lpN-9?T8i}I`m}AO>?t;TybLOAod`;f48^bA%Qe-JV6eMMYV?Oi|NUu z$5Uz7LkU(xXUEc*P>AAJw8G}O^J8;lyHh&37ITZ;Ybw-9R{*vkEb^)Tod({y~D42LAy zU_-#c)mC>M0gaIObcY^)WJ@Xp4SF``#RgHj4Io3mbn~$yWKfcD1 zV>5VAFjW?BLPUH5=`f#|t}-W>SM!4;1wW)Z}~`jl>f(orLZ96q36A7&vF7ovU-$+EF5)1C~CpO+x*Ydj(?WzdHPQ@=UIh<=ltr_dCed~p!1n!YIng>%j{M4z zvo0S>1fI~-_8bC2lHnMs^*;e0*sB!vSf_0FQtd^iKD3l zy6RN-1FTFIIni1HYqPq7wYL`$u<9tpos*as$u0wDbxiQXbv&F+Mb|TWwR6dpd^n=a zEkcfw8Ubxi#nB&z4Wvhy!}h}INxs>E(MIqH>xUP>ZW@B^SA8fkTrPYOJa)TfJ4N34 zp(Y~`iWw;QMPvg6&(dhzc$r9=*ME~b0_D!4iHxn!RQ9te>0+hEZYBgNF*jHN{64hx zoy1F-6RIJ@lPr;J^Z3nkjby=Gz`~V;DNg__3M__$Y~$Hf8t#OW!{|q%G~r-6K^2zx zmY8=)klsi^D|%yK?6A*yBZ{Z6uelm`bu3BR72`23=e5WwGJ)>`XfB)K6Hr{ji&114 zYH??zZ{soWJCU$pA|PnVbcYdEs(ZywyKU&t_wf1xZ<=Xj0#HA(bMCHrDcjyYd~VDd zQ^JEYI|@9E>Mj_5S3cLUrmX#b??J!0Zo}^>LWYu&u1on&->(@9Sp$vT_H;RDO}e3g z$fzY@CLL!EuJ9WpI5INu=nf*D^JyPH>A)F4ri(0DfK~k{DzdRuG+3SF0%UQIm*0j! z$Yhx{GGkKht4+vkjBhZ+}8Y<5TUh zj!zR_i&~fx7o(DMp9$-O=_{Wp8XY|NYs0Y7JL#lNWo!B@no_nECX=ad_v~4VkRY0O z85CB^q{AA+3iB2>15FGKGG(8R0j?Bo-ZfW3=bK)stZJtIy69hU;AaxkDAkQVnMw$N z8aUm$0bEsIeQ+3iOEGZsmbp9_+}W+v2I`1}E(tRB4OSfI>m2Oe)Q4hTBt{**7ky^A zobW-6S-5#EtywQ}=pKe0Zz6cq6$B0fYw@TLd5<9YwKoguMrKR=Z3COyqvnl2IqG91H_~)a9x1k;Y*Ro9d zYukm|{eBN_o|F|^w)&32@KTq|VB>vkThk5Q&2vMxIFsaOeYNRclI;P zs^<<4+&a!_``S(WL=lkuS4J?Ny-v3yEJ^K?EiBpy+`5?v)AJ+-0P3$QSJO`=NM$i% z<*=oDSzErX6(EFf8{^@|h_J!2N#8clZ4(xj>H%phJ7n};H?NOqxrl(vT`F1)Z?*#2nU9+Fc}GG8=YH-CPn+(2&5m0~43U6=!oyf1;W*dj zOCT!5JH=;I9Kqd#?Y4z25s4u*#xg#;l=A(}Pr@W|WXt+82K}7S9WHuG#wMaqUkamc-xxu%xrntlRV8NwPdd(j^^)rMsv$uwFLhf!W0-Zh@a49#yrjN<`FIKo=Tf45@l z^|5eVi&~emd2{<)^c<;)7%@7OzFiv4K(hgA4)-}9c?4J*r#~3!#};#9 zl=z}rK!zp3gv3VW_pEp;*+E+*KR5I?Mw!byb6LEi zZ+HEVJ}ls|I1*ho%;C8rkakEPzBt{fw!Q#)1KW}vllnBc*#D58MTL;S2ElzqbRM`R zAx;6a(zzXA3t|HCoveTunLY%@!oI{9oZwI^Hh~URzG;4Sn#0P>OW2+poU;W|QyTXH zdWS7yLxkX}vh6sIfDcyooW3Nt2eQT9f ztT@YR_0jruO|bY>V+>KAEJkS{v{HZ*FYDWSl{!T|d0OKE8bgcm<^5Gj)j)qJMCqOc z+oTp?4!w+S@XL{l1g+sB)wTJ|$(Qgv#exB)DPZZd(g5s3Q#7Yum#X0+|&JVfgQu}EIX4&_hImBHEd2{W{ z#x^=b=en5&diR1%3YA&^X?7&;!VGWoI*-l$$Kg5D~} znR;A}XS)!Sxf@Pj4J}rNekilnxfqX$k5VIK<5+ydv_`!;63DAwynoLQM=HbZ?r838 z!#fjHCgE&Xv3g`KbVNk^6$ntcMa{Yny_l-dxsDol2veBC=~nCqz3E78nRYTnBbSQ} zDXcMu{!%#jG}_}JBh=t1w46GRhJZ#(mpIge0BUi2Ym!l1{ehehHw0bEXJRFMd@}RJ zcl^xM1|#bv!8at|HaTuF5FupI8}`uL`AjmR-Bj@llJS(ggYtpLfTRaO@0o+}7B7Hw zQx8A|yaHSi5^Dl?lbc%#ZOT5_@(rY{dfb1A)ROF&J;U|dUwE}BbhnG?Hc=`$+y3AR z8OoZDpV>cSUzV8#cY*J+E;#POuEgg1BpMiNWjP>e$~Tg7>Tz$Ms3lwkbD_h$33P9j z1fPb!4m#)OG`w3lOt9-6>?#7q-+dfnbjTDlL>^BZf_QI3MrwwH|xb<0c6Q)(2gcqS>2S-{>)(IQSoC`$;>(JX$^2L-iS7v-WZCC59zps^wCZ`C1y+KIE* z?NbWTN!0p5n!UTDuH91<&mHS3hx*gu;_N%NJntFrSQ(gQdcd;%p^cSe;hu~J53?~r zz)JuJY7Q8_db`)U;9A#5Oet8uNdvwRilV1m%RmocHnjjDhr_B1;yrB+exK*^4@?5z z*EsOIGCb!5mLC(1oU=o4K*pS0d z;XrWaMdRDM-AC3%+4bQ)z4!bvkn%&2*v}0S*zF2-hM((ohZh6NNvlHw@N7d6E-*f& zQWvN&m@WIpE`xPjktF!LV&P}z{E3m@w6%YG!_VIVZ(OB6cv=4~n;kzZgTE9D%s(~J z|AqAb&=wc`TXj~B-=`A97$sr;(p%v8V>O+Z_m|!R$8Q~nf1+%EA z#IrD29XXHfeiA_HM}2IcmmC^eZ%cxX3%>}>H7QG*mN{pEmStdrmK?m1W#9B4oaZt% zl#1dq1?)|IP?+jp)5UZ>f@~@*i8E18FR#*sIS|(2RHacshwkhl{7Ut}3Xt=6wOiG= z&gVI^H%hrVT{{7uo`m{LqMyPX=g2IC$-R4FS55~#nl|Z%*(7X=1vIfUXMhbN5xtE| z?4S^3-Va%9YnEa%Lt|S@U2>|T`aU9VYA1VOO8KJE;#@S{pjd0xeHt=tn%A~3+g;Y& zyZsi&Du8HJJd-{`6Rc1%f@pBq82oK)EuV0(jC=S!L{wSYjT~Dv9mSWU!~=fZ{^;c) zhZ(l;_+fh-to5U(2T*=wN}U><*bTvWs`23p@on5LxPQTORs;3!+C{6W1k~fvj+p3! zfdxI`x7yGYC$-OF!-AC`PE`j4nk4F}&%w_{dF8$RE;S=-XE1+Qr{~mppVTWeK!|;{ zRlV^>>dM9#F+b4~AvX_jrs}|CPhb?gOlHkP{^Y-WB-bz8`q97HS6H!^sM}4U-^+5U zD%AJEqbCnZ-3mQhmY8-4+V@khSiGkdme>mtPQ-1!XY&cLSst1;1mQbD{nasVU_P#R z4}&o&3^v@2i9V}ixyjISh}VT|)VKDzR_M?RUiMheT?Ns{x?vu#kO1<|=+DLFMx=U6 z+E=QSMJpD9J>J1sy=k>+xGQJR$6%hL&i2)PUtoogUFUkcBjTME4V^UEOEBA8+mc^W zwJ1W|OzF2WT)S>Yc&yz&E6&)qzp1b)Qg~^MB%6XhgqorhO)fg+;vfd&ChjgfYjGJe$c@#Rp!PQGEj)jE!9=~oY6 zD0!#dSGq9RUn=-uFtE|EHRQzmeQ9gV=CZ$mG{>!G20w{MkxhIjN-%nQ=Ot{?6zmw9 zX&}@45^ghgi8*v^%ye*}q6DNmjA% zX;|U98UN8CMfo}xv^-N*XydMDbJAz(48Tg&Ja<8Ox0^Ds&AYdY)5n{&OI5i%NO=`#6k1 zz0F(D%l>U*If~U5MYt(XSJ5vAdhf#g^PJG6()%_)d|s(~Tun_s5K^ppZKScTc5qe{ z+?ZW@9In&TZq*)p?jPw|Zpxom+h@;#G7FXT(}D_$^(fG;J<%hP9H>}QF($!L38F2h zBsvv*Gm&_qce$~cNZ$@pOeZPMU_+L4NH((Vjw&)xUuTMF^ltCYSUjr{L8QX=WN_I# zQ!8d?UC5KV)#XML3pOTtaRh-niH>+2IzQV?3PVCu#vvD#6_@n1E(*2xwu9fobZMI` z|GRSL=bz)Z+sDfG%a#4>Rln8C_jn z8LZ50oZU?ETKj|KDnnw~B^=^=-b-&i+>2yt&%2Gchr+{`QlDjo~+)s(+>w z|MP5rOLhN?!v4Qc{rjOEEe)JaOc-p8ofysSoSn?A92x&Fr}|?Q^jk&q4^GAMM$~72 z+ZASJdE@cF`N1%={YKyi{L@qYYi#p371mGtpMTxRUxUd%t*~$`ZI>G^ znm>ZSqX-(!yN?;jq(|x>BMxa{a4DyHo7It*mub*a$IaS5y=@H?YAZxXp80arA)A`! zVk7Kzy4$tmgNJsUg*`ATppmEM*kWK34KZzm!YpqoN`!$XR>~TNf4n@lRs1_p3@Mc01yaPo1# z#-&@eXDfZ0A!Vp!8~(w8ENv%87Yq{C9fN}6HkD3gwM`r-i3U|F1pF0rQVJ3cSj?8+ zho-(PpArO;n4*=J6_-4e+O69vQH(DDu`oQoYKDh^iaO#pJWMZOlV&`wVf1tuVzt;% z=}3ulpWDVMtq*<*H}f$)$5LK&qNBuD=)zkI2rq^6oJf)_QA9+|9ykt8v+;XsaUlEA zCGk>^d6>dVd^1IUvVBhEL^xs>hjlAEtjn!iWy78C)xnqTed6k>+Ecy-~b{J{h+iB{5j<&s!yNn$drHF zCVbcAr;Wq2q8B-gP~Oj9m_7+zX*; zO0+m4)`+yOps5X1<;QJ|X+b{$?`N_xQx2Z6uLAOPLiq`LD(yVjpa4&zVuAj2Vf7RU zIzTgQo42PFRPI1T(*IIs#mEpdClE3 zADhihr167eXo(UUD#W9FCI&IAzNc`IBoB#huuI2Y zgY^JCs~Fy8qtxsn-lJhAz0!AdFhEew17xw*oIV~^xpWFq+8L>FMXyjUlC`hm@o4RC zC(E13an0ImgR7_$%tbufXM2Y5@Z6|8ZmSDbaw{e+!@Cy{+iF|W2e4WT7KnR z-86oEmq`6lg=nC)T=jsx&6@KeyU`6zzmMqUeW6!=$)+~;&B;DkXd-nS5hzTJAW2{s zB!xJ4(Nh26W zHYS5+!3j}7LB5QfQcM7-5xi1;;rZm5RPgV%kgrQ>QP|ljBut+;S7Z#V(Y;)=pm{zJy zKfXH8CjJm)Dx0E0wgbGM{!~G{tLPM$H8U(nIIcqNfw^|z{85e(0s@(V-WWby zca0RVs(LP0J~9}-C35@9uZ9?D5_ zgxZMI1+Lj?E7X~Q8yOZKO&3ZwIV z^bEbL$%l9HQx1UO{FdE`GzlKOd4Xqq7-CT(7-5tO0fZA$HkvxFN_a`wl*NQ3nK?%w zg5m)c&U5`%`nXcMO+2|x+$v54@Z9kZjxKM)2CURiRs44}?>O*VFjM8RHwMi&2dTh&UBKjsIQplaN9K*v3>J@G%zN`0=f|UE&N&My$)Q0AP7G1C)7soW z-tJDXsVwE|uur6Bw$*BsEBGbKV`+#8DH*A2Cudq+w`UUbh&3Y+R}*9A)JWIicJyy? zeP?(kf)ko3f)n4U@Aus3hwj!A^jP<9h}4g^LGgJC`Iwo^t|TaTgJxhyHi}AP5=pOQ z8&QBB*QO^|o@|W58zVHN&@&sK+RRom`DS9g{FPtHc1zFvCpuCGbrmEJvMpB2N5w;ASS45-DvWg^e1(q$hUBe|H= zjc`q%WEqhi^FHRW+OLiKBFKF%&?-NoYn@ynVt}zHo2bqO*C`8V@PLSXNe{q+u)`P` z-8`9bOd5=2aKId!9enH)$09*g#FtBMN`}s69rEzMm@QiZNG@*0QaTkwWkpiT+ky{8 zT_3tAV)Pfm`*rA8YPrGu;ciG@N z!`rM=3q5dc)}J?j?9pipz9AnDGZBSfpLRe|#A;f2V*wj(jj%E=@0a6CU1YY;y|`%- z?R%jLU+k4Rbq9GS zfFpFY5*YuY5zBNloYw>kHJ>F6a%&)75ysqmj_yUNZ z$4q%XyD&whngIKO;<#iLrY(J}ZEzR!Q|Q`lOv`b?_;Kmepmn&hK{8-LahDl#+!xfm z@CekvSsFc$>&E!G3$8`5uqe=8+qf5aOTkQ6*yi#Kua@@8FwpN5RZ%vP%wkOakj?Ux zV9yN3g4V{yDO5(!IDO@~92qBG#(FqSnS$oa%X~90V2=a7naNcYM7H&S#bnI7e|dD} z#-+6{$VSyAa^?~*73!P`piW9++Tg>76iuvzna~94$8XC2UQTh-)p**4xjT#H=*$8K zb4uI6P>9XimFJB2ki;I+*bZp!2yhS%0hzkJR2tp<0>f}_jf-jhxsRWd@K9!t9zh6m zlmc{UDrpYfB7Ohp0ylANOT813I^Dhy29OmuNk{;a(M1_ZDE~3cMC(dtudrB9TpfK6 zD}ApCcW3#|26j=$Hp1J(yAn_QG+awRA1eWZ4o4*DL_tE!ukoN-bP0hV8Dtn)6`YTV z)g8Rak9w|M$WDdahzH>Q+NM=1fxzc8AL(nF+~BX&1mS6cS<4Purh~3(cc{(hO8B{v z+KhuB;`M&5eG{ZFUJ)_gBZBM6oR=F@t^dbljwt8ScOPxz#^ZB1GzUD%eW{IYM>wah zpab8GUULn`VnsnjxvVvqtk&d9`-bC0F1=kRF5aaQ2l01gQv__fT!qb+hN;GMi+P1o zcE;8q3*O{GO0#&LPs2@Nx$Qb1R-e++!NrxE3Wg;%1VFIf+t?Pys#l)Orv~hpWD>%{s4Ye(GRa-Z zm$e@tPt&s}e+!iUSRZ2HVERR0{io6CZ*}Q!;Ql8R_|4SucSF=)Q2tM|%KrjH^>38_ zyMyarQU32HoWH`KpXQtYqcH!M+v|Tu`DJRl(WwBWk85%p{n|yt1|51ewyL!Xa;}GE zE=x(n2ixG3me6(*zCT;_z}lOr0#xm0uYx( z^6(J>*5h6T!T>llH9X&LfdF9v!Z+fAR<=BgZM)(!O{7E| z^25>Ea!$@}QSBBe(qUv+{T@57`M^)g>YDo=fb?h%u0q0MkIC+$$;Z|G)(6RSDJ% zaIwAbq1RK?+ku@k$R?~=8HHfbh-Ie9b{TFokipD*Sbfv{Y`4dpsGI44KRCrk%9#01g3LW!$t_ ztZgaZ;fk*mqf{RNmKk#DhT@t|$9CXg$Al!RTCDzl!v|(E@SNHin=WEX0KQtlxP9~k zh&m_992RS1@m-TjB)3`3*hB(HCPpb3I=wUnvAj}8V+y)SE?mfc4oBh$(~mVF4Sp5S z?U2UO)3^mYdct;#Z6lJooUF3_JHyl7WDt(*oUl5y9Qzf1(3pJX!kltctdqhz>%W=iJ z&D#^e=yPdt#UJ9vu#A*~bJLofhqiR_S-&5inWpu7U>fRegjoEs4QEN( zG#LezYHmmFnyARkj`~flDj%C%ByK7gI&&vBPwj91n-hG+3g}pV`;U2rpW}tM?RjbM z_3%Pa0Z-XtOokaGeOYakQ({CtU%gfWnFBtfNv#`vM7=HOR$OLZ;ARH|66zSwYQ*~z z>X}Dxwhe5d-rE~G5w9dt28d`jPT##Gbm6&ro$_FK@n>{2yH*r*#PEJufjMUSXa)`# zy7RerUwX&)-cf$xpmp@7dr#aGR4>GIKIX#_>y3~cO0X9S!wW|0(cOUOiuspD2;#NO zkaSKd96!aKpeJe~Nw8e3AQ($z8f>Au50#}E#W>{6e4;wb<u7_OrY@s0ncseoEosnff3M%jkKX8Y8+erf& z_)(`D`)zOE$>(%g>v3k@axdQ!%*%s)7;rb`c3^W`G}L$kXV0d zRsQZ*{g*8IYZLL`TU!5eNdM1S^cT@~+e#j8yj2PRltIWPXBHa^&B_Fq{15rUu@foG zy0Y7EdE}^BDu&nhyQFNIl4+#1ekV8q-T5(tj*Top|Gc{EN48o_4R0g1Q5uwF3JFPO zYg+8+;BZ9zO+E02zn0dSGWwR1h&|qsM0|3e{Qwp!b0gKD-1uvT>I(itU6GVS2FD=7 zi-gKHVZJ$IUL5;I+U4H6_=xuOmNvixF!z~ePrmh8?39w>-8(v8@Sy;5=s7kxaKmNc z`f%z^eQAp>P@E9p=P}R-1U4}8HCW3rnzN6b-di-!!nMRha z2}BK4%1m#J!x#^uu4k95lkrYU%7i;nb9N2JhTj6Bu)yQ@pJ&Iv#=n`qxDf=k%lqtI zr6}ve>v;ntjW0jT7{XLV^KHr6e`Tg8foymQ&8Kmg)BRRrEh0FV%vLvw2E~*Es%Il? z59Lr8t7&~~#PR*AFL)eDinKt76H^{yDHsF#OjclC=6wT3hOjMhDZc=uSWt?Yi==t6 z_Q{M<1=ezvHhRWBjpRGOFoiA27X=fT>MPO2-qUb9zA-yx>(x`B#BZth9-`XTCKZ;1 zhACF2g{)We4K(e8emvz+pJe$uBYGcqX!1#vK8bc#z-Uw-IN-@^a7Hf3kwndO;2}-d z1p`r+!zfY+EKm?*yh^afN#XnOHD;#9qf5IFP+{VwVNvVP1Wd0pElnk2X7En2A;IAh z4t)5i<8t%ru8__&k$~*R(9RM%|2;Q9oGn<(Gs+gc1n)C9omEN9XK!%dPxpm`NVsS- z@?eqKKjvO-@U-WsO#Plp67iE*PF$A594sU0o7$^^)V`Vsi^BKG=8)` zQz)z$`VW4Qy0HEV5oY7r(}}wwb*|$!I6cS{o9THDVAm>7O%uwcPf)?qcZ zu@5U4NPB@(HwDZT9a-1Wi^GEzR7;gm=8NfImsA&b4vMgLM+g^?uIVD%0#4JjS`Qlviq_%z38dm|z4si_ zE?$Ieo{{FZc~t;eKPo51Q8691|1cSUGH&KlYFr<9cwf!KM|h8mfCw48N<@eV2wtS5 zaXkuN=v}d6=fdX**D7&lJ-lZIcLQieKV8JSzAwOloy5;19j6I;hXx3 z_x>aIYo(vBN-`1PyB{Q+)cmwH=Ogy=D>ZZQn=U0U&azyzETu12@ z!G{r&iCgQaLKhWC0|xa@DAm7mrVQ_GW7fFo5)G(?t`2O=AiUR$U@7AEjmFFIxyAs# z#m}j}$*w28%dVezTel=wGHa!3_PE+VQR1G|gjwW7B81u~%qyKm4m{`j@+8!duoa4g zm(U~s$Ty$XM-Y%-dxLTjE9yiz|APE7Ucb-@#Ml)Iva+dG99D@fcKdCXQ0Hs=!`zYT z*;@LKr{nIYv$1yd`XgPL=JLZE)q&n4uW9z-)|?45WrS0WNBFv<*6QH0M;wj8!y0W+ z!HaJ??K1o+M|fsmR1r_UrDU)7>epi+hK}Qajt$vVczz4QEm>YD9<6eL_7ups_dL2< zjrDASv{Vdo(06ZpJBQ;cPvY04TB-9;KV<;O(D)>;@obb!blFOD#1?-=!T4fcDAgX0 zTUqc4qqbZidC5#2aK?&v_30wSd-YX{iX-h64ClweuuC`zZc9~Q7hV9Y5Ho>U%|rgs zH{!|ec(Twb%{||q3DbdPmmer-_OzP11-&+6!dz+++OE$}cK1s2!!p1d0fG&IF0_bC zP;HbMieI z#^Zy_&92Q-(KBy-8JJx+4W8dpMvnXY`mzp73Cp`Jho!f#%XR5}XJ&V(Jx5woQVbGb z40I6^3o$)0K4Nfp3hRiEOUHUHafM}|R|&1lddiZb!Kw5jJr_E70&OtGIah7cQ(8DV zyg+$?pYT;xN&Wiwwo6tnbZQ)pAj9?VaHH`KG%5+|&4kzmyn5mt)blx45-j-*!Zc9t zcl~nxV|{yLCIx4QdyvwOZ^k><(V!%fltQ;|L$?R`NWfY0g+xEWn?goZm2gtVDL%N1 z2!WfUNBK%PvdKx3)p#16_-Kh-`tk9_f>0Mm`66n-gh;r{MHq-dpigZ`j8k^&oW>HP zxeXItRJH0pUsV-^1RPom0>hbeR3qRE2{eRdp;I7M3W0yu5%d~VI+7@P7l_Wvc2`LP z(~nFHpeo9`_N?HFeC ztYSr$%BvxkS_!co4Z@a0VAjs}W{)I1IH^Kl&lR-;fWnqaiQI$Uw?6gI&Q`IA)Vd)!qj}rrN_%g%@55%FW@g!orZvdhBbqzxYtwC z8>glz`i|N!h~WS% zh#b$to`(7|?{W*EFlYQaLr?epl}~v!&VJ!cTJn5;i)Qdl&%rdByS$mE_lR8H>;lcb zMMWb+HBezX#(n@Mhd7>>a{__jYTZ7nGep~L%}W9em3QT|qA~z-GRuD-cOMHc3iHhk zl#sI4cLok9IABk7VJ4L_Qg+9-!58LYVB7*uz>H0g*m_UqttajZj2^5P zkj#pFpkJWuGjthTT32uM12VdJ?xa7L*-~%jb#yQ;FXs9Hi}PSh->!+g1kuRZk}*~O zi7}du^P?V)8Skyne$au^&OCoUaV%RJt=)DhjwM2SV$e7szXqgb^tq^1FE+%hvp zqV){@<0~XiPuBOpEsX!5Q?szM{o)r7_;Z5$|MXtTuZ8i?t-`--)&c%@vkveN=f17# zQjWj*oz=+f3(Lr)d?-LZT33M@ldO9lXgKXrDuevgF9};8T+7 z`)PZr9iu*aVPpfnGMqpTlhja;@!!=Ti83QVg;Uua057I{U)j0be92}KLR<<<1S5`8 z`)o`t^&z;L4%(k+XhPV}hwCHh@Gf@iY_Y%@=a;!uai=hT7;6>gFmxDUJe}uof;OIJ zPrws2hb_6rnM-Fi2W4;@*VE2?kcHPB6i=Y^FYYB+wB8_3(HoajccX zDvXk3(MF;3vnS_O;3khz1UZ~ctiTwksP{a?b2BOhB$}fTp+R_*; zdpAI|;krQMY?lAx!^sI1Raf>CJg>;yX&|8Oy)vw9GC07JKK7>Ei?+5< z)gHz20rA<6Vz-$2afsJ}zC5kk`BsKnZN^Km%-!7!*sSBr%VeXLb$OJQB9?q8oG(>) z4gzw+mT@37LW}^y$31-$0DfQ_lOSA1hSD5PAAvk`jO%1w^DSknQ@WF?}^6Rg)Y$MYU}uN z@wh$^Dq9Jq!<_mEH6%X!GxI0_Qo2Poeg@jje?5rmNJSVI7s8>@5>juc1&?BB;7F!^ zvBva~%!&F|%9LnbHih023Y%|wciQ-wwcOPbN|B8&W@iTcE5lr2ZQULVO2XlayJBVl zEH4C;B(tHBLoIP5BPj3oBes)9Km>=&aM?2Z;v?+<*UY0ru%d-jYH}37O0W{nu+N$G zbk(EBaSu^LDf@H0gMjWj$*zc%eT+a$2vSGzJ~tXu#QLrkrP(NM3n6NFR`w8!gyagpH+B6do4%W@{VAd`q13$xHFi&< zS{ub;x#wjl+m;XcHZZR}-WIN2C&>CKoTuztaSpl-Ih8@m71(P6cxaFjZ=TG`;G<0N z=16h5oYtVLGUhh=6>Z0Zy(*ulNR@${oXb@(5z3fn+l1&%S-n4S4bobcY5DU2jR&h+ zrYvqC@|SK%-bLqc&mf4@3o8p zr_<2$&v|wZ9Xo3Z3lnPH)ed`LVo>Hnpa@5gW-j}zkH!AXD-cHY(!3{ z+Gbij5^$58(yxXx#)-?u&e~dS3|A#kPSh`IRK2%QM!PoG!<*Ot^2hxs@C#FcBfyicgAHB&#Z=M<2@J8WiP;I z>-xCj?#$3O>3k6=2{gtkm+x_E8*@jA>M9F&2(ay1P0c$th-m6rtZ@s8msldlXq{6ZSKceL9Z$|ZWOMcTIJl1 z)-z43ud}Pb*XSJXgIf5Ut};8Zn5Gb@@Y%06{!?Ce z_v-m(^(T`)m#sRumP7y2DOrgsuKHk;F14Mpr&ID6br|HU%PLS_DsyuiUYN3~=Qkv%S!xJoVa$S`=Hr{^;iU@#^$;jQr)Y?g$Yd z#jTuj>fZ31`j^7hwrs0!^cSi5_GThm7l-4c_a<8hB)#+I9E zr2xr5f+rc|1~O+$mG;`un=)1IfY! zSop*XXWjM4bc|!8G(j4)Z+uFygNei>mUN-0J3>&RRPT8Sv`0&3F#DXT?Dr1Mk5*&X zJLg6fi>HC88+m=i><7ibQ$;S=4aHkOytxxB4a!0Ev9uZvA1|SRGL~4Jc8#>NS>Mlx z5=fBFAh{jA^Iq|&S*6df213Lvrl8~9%!9LUZf^rLa}nZ4#iA-U5ifcO1G)HJ=T1si6a>d7Il&yd^N-`$s=U*2!sXBPHft_#jP`7d*L%^S>D;J~X=1@#ZkSUEg=0N!HqoG*Dl1SMBmOTnxcR{KR^h<@b#{o|=(o0{#q zp?2aqdC9c$Etul{@XTm>Og2a#l;;n4lXe*!llbv{FU!ePgjH1Y(2LV|(Z1B!ohTh} zlV22vNSqXw0vP48$n{-R8aIqY$}6;`TIdKze8OsA7%PS-Gg7J)ZvaxkIJ7n5*6qFWwOL(nqc zWNUEY#&|^ID5D6!>hw)eq@RH>+ns6|Vy?ia!9b5eqybZvoXOrxtrpt8cmCNf zVwqkg%4v-h`(v~S((X+|f}rj0kTE!QxnX?LL5u&xe2Qc!OLB$AKzg-_@;7G6cxxRW zKr%4g%O|fXScs3SI)r|MF{HE2(w`8xIY(J;UTHe!$F3;4Lu6i)$93)b>x>vt?q7-( zQTT@wH$xx#Zv(dyrcXU1iPLE#r)TOB`!ofHr z-4w{3Y~v&Z_7NvDSbHHbBYI-_X2YL%^?Yz>0=dHU5E{t+&Ze2Qe%X%JZ0U zs}PVur?e3-+Tk*@^8;b3j*R&hL=iK_N(M^Ykj_T{-h!{U0=cxGChs20?7>5|%4%m@R$0#oEYoHyOvid@=GSK%(B!HWzu&f+I{7Ws>*1KDr1>Hlxp#lA7T{xb78b z&|=O0D9A;W(V=7wy$mwyh9LH0TWzZ`60L*v$b+=ku1(V@=ApX@BA51@#HV|rxmfcD zVPpUo>9*eKq1(^|Tk{Vs4{5<%vdM(dWuAL%vg=Jr-TP-ym@HhMT8f$IAx~dDCEO9pJUT9Vst5 zL7cep#YvIWzI&12?{ct1$B3x7q5N2)Q(-sFMt#ko`Md&Giu*|l(87Vxd|h+xiZY>t zz0H2isA>n|n)pgTH0-K5ghiM^nxxrWq*HDPB#6YPqz4gEc5H&6JH27~=}8lIxgez8 zDQyzU+*DIfCe!3>=Ep1et-b};-^TJkW^l}Jwne|a;peas@J2xVBMknx1oNMf`>(m5 z>(6e`ufhDc?#e&N{eK4Y&VGnO>{kqRJw)qS1Y8w5(bki!g8(AdF!^BzD%#<%?KxBn zxoA9{zMWBi^SphnJxSQE8fo3kAcd$(uFecNJ~O(`DlWxMzJ8q{Wo$(l zmI!shWAhlpZn1lHIxplt=v-Vd36CQ_x^aqlpUdCQN-Csd9zkpm8u5%FwXOM+;o&F~ zv42WX83+3iXSokeiI;jnW0-Baev!T$?JBL{dTN=aYpl1cUA_D{>xJa%`|G`%8RTR% zGozMa>5|N=$^|FeDzQ4D;VSC&enodx23LUWZQ*s8VB@woq$61hdKA=HM{pyC@U( zO2kFJ-K#j!J0&9J;A6RgI|0i_(fyUHYt=WOd@07)i6kkF#cnAo1$-YkxI%W3#N=bt zAcL|GDS(W`AZ0cyJLRv1C)AvObbosy@V(}}H@-dLp`vSU{J3sLiqsg(#i*Y34H^MD zxfdxO4IZAc^P|gtp6px8>EN|x;&IcnJcN^yRTjYRF|@E(JCY@^ntlAjSH zuS0g6qz^6EYCvNl#<658B}~#kkrM7`IKuMlr#cLUG+}u)z*0>K{ddSwO|;@X=m4~U zk!+}BS;?BD0^TY4)5mG`n-=V7!&d0T+xTxrs8ki1b_jtuSzOcwM5i=8FC&0NARbUz zV|i|OS?Kb+G@;&BdLKN)&wiS?Oj4<(a-vywyvgAJa$zCKP_#i*5_^-(_wiy!0%?PQ zSzJ`=FJAbuEka&X>7OMG*$T+wqMH%y-!YQBeQY_hu}p(Y@{BkN5`~3HgPX%t>|=ZB zH#=|il@Tm4)mIF!Zq~Xqt)YxY%S&kkS+4KlE%jGEYu-?qmq|7$in#V|L3thFGo6W0 zg(~ddn}gw#p1xWuHn3=cB-X$;S*&o_MwJRN`2}4j;dko9UVwMDNr5x;vKF5$S!)Xd zg|}2?ITK@3aMv)@%_{G3M+YHVuhz=AfUJF~kSWHDZu%^K?X> z#Jw$yvi3H0T>{gV6CD|=4ti5961^}OMhK2IkH^&-E+W z^M8Hh@2&ekAIZi9U|@bT+4~&?-e!KGI|ULL``wRW z2=t2#tGDu)0VczBOv4UjwD7lcXH-K7)C+_1dX`pX$kB~k(f!R&_|EM50vD+b?-m`B zlj2Ks`g~!9$n8YAxq@c4dz~(?BSHG~n_83;6OhZxYQ=CXdKMGjAd$4x{pG!PrM2z4 zjCP_O*SG2yFL>zZ&vT>F5+8sK1Nk0croU2tD~KO&a5J4uxh=6Y549iuNC2$J;!p02 z9haY`fRQCdXYWRZ4v|d4p?p7*AfANM2kkZRI)o}22f>|ccC`9&^~G;Gu|v;+UoO(s z17bhQ`vWKrPuIQ*Nl5kdR`s+$lWDNj!Kn0=gQ{R%Nl9w<2nPBW+%jvn4-kgj=&dN+ zZ3}ZJlhxy6VzAxLVwP{nsNKiI9a1{j+-N0kF;{2Lx%x=9%D*L0baLckBVP?Y!V`l~ zv#apsd^3|&i-4+kydX@EtTuTvIM}@lszsR4D3z$?oJgy1EtX4KvI||<&|CCgY0oWO z2eIiqLv^Pds+6BcC9p)&pJF-zDrg@pAyZ*Q-&7{>Qif_z3$-Mn7Gd#Wd53#+EJSM!w| zc?RrN*)}iHAW_ac_#<4=JNOZ07C<|k*|SI1pkM+w+xCqUDtlm;O+zs z?lj)GI|O%kcXxM(;O_43P6z~dcZZM!3H~yfoi#Ii&t7NFsq(2d;YTko~pzdlZ%+26()oy+tH z)mwZoPUC^GpcpD9azVz_NU%_K_#B^?VbDaEEM8tcXj)rU&0Ojt|CRIpQcWHQ|AP|Z znlbur65w;!wg1QjCVvcmlKt1QS{_uL+Y;>!Cx~o2s}!|zPnS;ocR9uR;leE)gazE)te97pB~ydoM26F zc}Z6Uh=8Fh+vY65z13<~2Lze=vbgf}Vz9y=rxw|LOskd5z8ipfEspK_@-g^o4VD=e zak0}g&d~g|eGXNDRj2qFpkGwJ1|vS<#h49b$x%l-Xd28~i9zZeEqMb!K|BuFkeG4w zw>?(eP!Ay{IC5~N0bcd&Z9oZsS3mex9dWuM_b{!^@OHoU@)w~!nYBgT z@MkRcPf)U)V@j#M!V-Hh?yb}xT-n3G0(pku>s0_XTOH%ysR~)At=5p`*EurFno%v&AxO%p8bT^2Hj3^nsHgU#Di{BjGGEQnGI6(=~1O2=B<7~et#QKO?P ztK0QZWLf{()@tM^rXxZAhW3tH?1S?LKilMK+wOo#&Mh!xuH|;FQ=oqheTh%6#{YH# z<;h`W_9DOZJ*|D(X0vKYq1$zbAI{-UQAgoq&_OjuMSBOKKpXedg&2;LgU8}n&aRSO zl3O68KOZ=x2}fUXUJmdDcZ{-gubrktrJzNvEZUDi8jcQzwI#Cs3!jy#9O&O@_3tZjKFPZvj^?ZEMmj=?C20}2Tz77jN(PG9tf+Ux0F*F^wNEhZIh|QD)tgenIO%jA$^x$( zUc<6c08_I9ns_{4J-oZ~zCg`7XX>Gydb*@@g6$4GJ-*dO!12?K$Y+_=mHXqrG&3RR~A7)`K_HI zt-hMV#Q7jU@ zj9>9E!BurGxyE^-5g~yY75&L%y*KRpFXx3f9z|CmVvT)kKaR*b6Sgd&IU;v_;7n~e zwHIyVxu2Z6tWVIS4TJQz)5v8;Rx^@S5e33*Z0A91urZLKl_blv81>P2;WfW7qF}RF zeEAUKv~t}UCFR57KaIs-2=NK1KFASjZSC!?PAlo3l_L^G)!MkdG1H;hGTz;$7!(gd z&!$FxIuoYpi(`$a<-i&MU*q!GrOh8c&mDoiW~{~V4VAbH@k+pPl5iLIe!M@+x|r$w zSCgffSJHRFrTdXwPETMP6`GabQAO5&Q~B~C*q$2H1vGOe?l)&>;~|^(*tfqa3mEIS zL`yZUyr|BP<0R;Mb%q^qWW)-j@52Vuf@x*?1Idw1=VGoygd;e0MM-Or#oE9BM*1>^ zzxlBDeMu21L|?iKAH*?|<{eU;5f!G^(4f_QWD8`DDYLaN%5T9LI4TaHc)(w@;`K?! zce8Pz1C-z;h-~28xB2!$DJ?r9eXfgk=BA;2vrrjREyCYzLA2XsbsP0E#OkgcWcu2H zBEY`tk;qDsOq|*)cy}112SpSmWp&{9DYP0ss2YS&7_{6;;qW-v`i>koQT4i0Qus1S zW@YtT+`OV_pUL^oj{K(c?a6mva~tJ(<7O*Mo?{lRnZ9@R`ed+=ABl%)Ucz=*e%Pz` z*0s43y!(Eg=-pRgivg$F@gX#k)m}_f;uEUGho!O|QHAwYsaOKEH=u!c4pH$tAZLlr z6eed>+IZm5@EV`dl&Z~ViU_U+REj=7gWTwpMm`vPz=(_MHrh_GgqDetTN(!6$|;H1 zOLfQiWTyL72;{+2)6E8Wf|Ob#X^ha_!KoFHJp6;-F8{SkE25tx2zIazms$?oy>RIo zucml_@sk$u<&E7pQxkr13{J7m)FnAN>zk zt3Rr_e%GPDNE6^M6!PD=L?Gk;aEbrRd^sTFAF0`Y4J!G&k#)a6!B+wNN5=DS-0Z)b z>B971#*>AS{dL;OZ^n~@o{fkF!0|d0R2uc zY=ubR1aV%L1cG3-v}qKrNs4I@346 zF)m$>1R}F4zg3N*yD0qR?aq!p4_3r}cilx(zH;*LH0P7bm0?Q!=0v1O`{1qQrrKPW zmhsA$m`^3R11epuB0$-g)BM$@ukDzlFyq!nn{yL8K7nSEQG?2i2HcU36GNY5FnB-u z7v!gl(^LXlUss>q;>&_P^vJa_4^*C6Op<=Gm(KfSh~EB#c8&bq>aW?f8hIYHI*j^HhQc7 zZJ&mdHodz?E}m*)jVQChi1B<|4qD5mq%bz5DRPUK%gGJZiNs;c&a2(h8;Ol!iFt}6 zF=$7SD5iIn@M@^IN}U&J{$lVk$Fu_IjKjr`Zym-cdu23&@8HkbDE-B9EmEMCI?=ej zt+TWO73AQ1d;}oUv`&CrY8r;j%~#-3PU&=vJ;$b`XOedu5pv7ThB1_%(w(xG&^eus zesg>>J(Q@N9iQJpmqMA9kB=B0&$yTZUNst))DKG15emB$BxNTT*6pSnHYm!h(Qrov zI>dU@wiHsQqy*9pkRWE{C-od*q!)G&2hSK8Xy0n5bn}4RM4UZ<>flw7cB?A-L{K|$ z_JTxyOu62s0N#E$oij@H#vJ|}yHMIyt_AAK9#(xJGuZptX_&wrV(4CoN+~9pcHm~i zd@!^6P6+FT*R@5ud^BKyqUAKeIMI^ zi$vDY@mb}fK$QyE_r^jUtKXah=#eBK9@tkOCZNEn8xibtOjqlcQ`J<_$_pTp89(6Q*$kMov2Jc1vUw+;NA$o;&# zemXV)>mR8$AmCTU!B5Bbdqu(@j_r3*_`k`q{XEZqcWggz^S{U<5b(>X{&{>T5b$#t z)<5X}Q`fa!V?%xIq3;`kxSS~zmo)I>ZLG%Mt6nUOcD$9tf~1>fW1umolLYGWJt2@u zN>#foc7eG9Fl$+bKHG7;{2;k*%@6CfJ%2W45)f(fxZ;jL4S^90?*-4veVBJ$toTmj zZx&Gf#U(#eF4IWi6ZcsBph9s_oN)dr?9;asD8<|NN9ESkS9NB}s@%D(_Z>Fp2)mU6 zNe1`#s!mTS^ZVB)6scZQM@q2`rraZK8P6rb`T=4l0Aa_>Vi;nUdK(m^}*ZUchKh8^7QqvSQQpj2@UL0 zHb$E&Kteof$s1Pj1%PuYoptIAf4QrbZqI2~Npk@R7*58(l{G8$oN6?|Z59GefJyO2 z-7e(T;vb3`WvbvQZ9G`al(fH)KxanR(cd)m8rDqnX>*{E=9EvdP|-rYSI?$v;GV3t z!z_%7#nd{rSS4z*&Y(~PjwE~Nv%O|lWU0qy<;%@1R-2wOA#GzYG55WIR6Ju-B}iBl zXN4^5j`Kz9i0X?(&~D~dph)izHj*Z#yXOXB?pIwC;T`FO!uH(6wyDUOC`hFOVgvym zQ1o&FWJGow*XUP)bZ;cVN&+O)e$4!svIuK*F);j?7t}&Nb!T#s8C$_>HV$Ky>c^i8 z8;JaM#y;xfiw&5z%U5{QG zT0*q5XTXC=h;JQ`x5iZ`<{xqx=wF3scf_`a-nYZ;Wp}=#CC8`xG31?-W5bay%qZjM zyr8s81n3+gs1D{^p2BY)2pI!e?)L|sE!I;B(7g#uQ9&qBfzT4hoca)!7nY8u5qZwk zb5?;qxzpTZYXy7xVq_q_T3(=wr0;mTItxCNfnukaq{=}ztfIf6`%;O|CK=<11qY>= z=}f&R!r-(L^RPRZ>e3v}+YQTBoH}mq(wlJNxSlk!%F^j8$idPp8#2{7g<+syZiiFXN+3cx!9hY-kGpL;Ohq? zE*E{w{5@w1tX(x450M+@=Wb^zIx`FamekB!{MqKWxr!ef+Uai#^Y_x*zG`_(YxtSB zE1*mYG{tpWN}pZQZLz&&kZKD43Unk2QP{$}hb%%PPy3pRZ0s0fmh|8x!>ug3`T z&JK1@j4=$2sGt|Fm*`;uub&7#!l)Kb<(lGlMt;b#xfhTT>*K55O2T%=c=dyj6 zPp~gwpt!dr(ofQRp@bfhXjyUbvFP&iOW-Q2_KUL^J6xH?L-Z+$UGrPdPx+Pa0g+dG_znFg4gUS09E->!qwz1hXx>`y=4T8(D(9T4uT83SLM_4&P1>p zc@Pjw@=$59cP(MBnRJ;&G&8A_`VIjS&qW+I#|7qB8_LKM>?O_|cfme;mc4s^t;BMr z-qN%Yl&PlF*H>iu*)0L)$8~_ACu7HV-t#Huo+x-CEdd`35# zu8co)wZ=Kh>_VT~pFB6yv77({psHV*ld6USL$lhD;4>QST4;071GZ0%HQ)>jXNkN~1dHbk_GWNKp?^Cm z2lbO#x80BdPFzC2vC%{Wcmh_HJfe2TBx^@3sf^`?43F;>wf^biZVI~Dp$N7|bUuTa zX{qA;xmyFHA$Vj+BqZZEOw>7o=Ta)7wmw^mZi@*af%rgEl!4=J5J-jr_sv+m7hbp; zpdEjLG%fEWd6G!7Y`gj}VAQptebX1Dq<@X%Z={aNi_dwqlmQHc!P zFh;@L&FMu#5iPN7Jxe3~<39vt7y}bN;5=P(B^iY#y^e{sl0abD$(tC7J-qZHy=Huk z7#Y6$Ch1esh$3}G{}<<9foXr+^)^`sxZsr4gCv&yH-oR%;N zle zDyaB$Rx0%0dqMmJPMa$a+%a!fx9&DJTGKLC%n689wz<^z-wA8-uw1-WyLzcF_fCHG<-TA_m14~4N98&Bob!aP`N|A_Rd1A5su3>(!>N*yy@=z9qypKgBl@k zRN2MO(p|>6`*!cfNP{iir;lY50~5u~vrJ~LfF*z3&@koaBMnFBvjX1e&C}WXVI4Y} z)AB0NPxnSWiB+%VJ^#8I1ppw^Srlj zLqo~MeD9pzsd+W?p9<)6x^;b;zoA})m6{~l&o^Xzr5oXA`P8b_m;PA?nvGORJzsSs zOR`i|CQgm#tyKC}yMjf6mk5$F8Lw7LzJqg9$w1|`S7M!))1Z)got(fEs9a3Q6ol8L`QUL@qt3L)gF-j>v6J!-Q<7c4<+D7K$+OIC4E|-MOBt3kh-%&u{ zSM%HL%9ee^RiGT#_#oW-z=nDb0k-T>H$g+Qf~Z%1w36i(Foo`o#%*%`vOeoQDd;dU z{V<(Uv&Crr@a*s1OMNH=o z^0+Z^nBygFR=-Z{b(PUsOxy)$>JN%C-s@D3#`{ppRRXURDDg2?8U{q99A(LHUQTC+ zA7oaCHROECwiH*uG#A&-4$Tu{fU9<58v}Yc?lXN~?i=!5_rA*USilKU_AZ$H`;OKg zrr@x!bCs|cB5_YL{~{A2nBXTaJ|%$=Lj;V%=o6%eb(8LvAddLcXlClXUV;zEreKb> zmg^tJRk*I+Cd*CTd6Vto3l8}#qvF=PkD`9FU({aHRfQQE)aef52u{q~1XDE6mW0;U z(url@eO$5e`PjtD#N`x<36FNna8z7V5s9aD;n=!mLypTi5U_ z(qgA=?29nO7~M7BU9-L5n@L5iUb_0ne z0(*p1Kzb`icIs(ob#>?@m_I3R^>aKcF?xfNWtBoO%Yp`~V5(>f&5KUzw#hB(CxwmS=_a_e);fi&MqlHF4y_ zN{vG2#k)vFcku?<1()_}z`7OZFCua%MA@7d(6G-d7|fqK7{o&)hZhz1R)iFF32G)P zb8&qusHAqaZOw&bT3s_XIlNH@53~q$ICZhMwu!T@Upa@b_qlr33vCk7bj!c3WJJzwEq8EFmKurOahGrlr*x-9epJI)Hp5M2!lnXbLw-)LSk$Zm@D zKGBGmqAmU?C8xV1x0qbbyx2LNoM-I2iRGgcMm?lP2YFzqnCq7X!Zc6vu>RbX%^2=A zE){5(jW1C-zA3MZaTk#(riM|3K%> zLjZSLnMaC91pd3@6gCAcA1WSDv?Vh^M?V;RyGT`JC$@|3V4fB&8_N#+SYOR18E+UX zjV&cJ4uw7B)@S8&8U3-WuCD@(b*zJ1&HTtu8wbsdAD!}+M%YvfETU%oM6bLrHcX^K z+ylxntt(7SEmh~y^q9b!<6(l@u~R{Lz{sVDI^Eh&{5dQ`y%hD{WPvgQ2cCuJ@8LOl zRA(HuK{-oSG6g9PcOyC-rVNBm9i8BUyrr9h^cP+W*m`kkTyQIOH%v_H#;}i>fx{kC ztS-^XnBMc17Z>9;svRxo6B{3t)tlXYT%qQ+-LEk`zMCX_GhWOhZHpjMieB0tPw`x~ zw$QxvFuLm)S6t^5m05m2tamqc?5L2;)P_caM@8dUg7!yPf_tv!aybXRQ*QEtzrh-W?xgj|HD|p=M|h{4k-{c z-p;{P*dvr;4hX*O zW2q*{Zc=nVVe=Tk8Y8iJy27X@7|^3t!Mvr9cnbc0wmmotF;GlSngwz!9_tTLC+5kC z@5lW5>0>6s=i);V@8$Ohu>_eB&Y*xyIN&%w_c7*=K<@w}q6#O=(>P|~$c#JHi`S*@ zk@qc25O_M7XLD3G|F%tiBx=N}ydsv53SQ#%JaU<@=aIW|QGI=Ka1pPkK^h7w zNky)9E(ass;C(sYkE|wdupp4OR^@t7vl8{A&%;pif>BY-v)hqx-Mgzlmm{-X^FC&y zKRubzHb<8mf$gZ^+PhOn+Sipdxz-Iqg#?W2dZ*!?u2X#Ae#@g4umvB|fXGcc6u0*b z?j2nU(K3q8vzoDTcmJ?)K#Vg7r%~*)+3t;zz?lenE)U7088VexgxsCVnJ3kf{hiE? zj{frgm`i3j1=nzwcCYt*KuL3AAzybfmTTfP}ZuO-f1`HVJF;vtun#}2=K@}SlpVxN6zFAzn5dg?TB)9-G&;4;I zC5UBt0;P&J%|MG*b1wqb#RejB?Fn9Ki?HO2PH0vtPZ-j3(YVF=#9~_P2SoA9!+g73 z#4|`ZSS0h2`0i#;EV_P(NkjW~7_-{TVN*tW(q!c&T==DNYlLtyFwJagCab#?Z%U1m zj|GO7n|-U-{nz@A?on*)#0Zag2xSI9a@5)uLMvgjsESFN=~kwSikY;yqtkDu6wo>m zZ35m z5}2(I!xpZ!RFAcSzvEa*I(5^VKfJ6Cr#J@_6iawc;gFuEZw)?#W{s`|-_RhdDnzGSI8r+D9QA*I#8rvSa}wn(9mRe-_|hdlwK} zMpoW;>FE?Ewrz$e>NgF~)M9`2re4rjncp`H={@?v9M)ASclV3`u0yAq6X1#AEgzPF zuWp}y`#0Ofg8b#E+ z8Y_yXGr5!|e(*b(;8BOYYEJK>NI8?x3%{Q}lzuKWqPgf2-#Oxmu-(1Iyx$MV1@Te2 z(M^(Tq@&mIAP`8}_9LOT8$+6!9SXf3`kcidlz)9u`vD4KmQo^tBSJnPkrY0_kK9Z< z*ES`mzTREPRTS$;-_oedTa@Oig=s#-z8Hl#Rm)rKl#jtjSJw-4ze<>-5|z2q2^_On@?+OQPreyA{ppnX)P+O@+n*)BHR`V3>L@^r0iM$}wxZAk7<-@Kk`) z^5`d3v1HggA@%0Tb*%&SyMe>=qIlktH%Mi)FUwjoK^L>y9m(A$vlv+l9Zud_GtP(Q zheWYq3DYG+e79QM?yELrtK=4?$9k>6l=`HISm#M z*PyD%OP=P`#t5LW()afu@OMUg&&y0~DNS#_ienrVmyOG0^K8uFi?XT0nTQc1Rt<;M z%I;d5D0S%*GcWu0j!H{g3SZMkX6rgT?{;aU8d}X4;rGnA9Y* z>roLuZr`KTMp^^O{g;8&1qrL{3pnj$KI zLVXt6@ofc{O@f}mkGnSs1O-uDg++Z`C77c(zLu@A8*#6iO3@VuolB_*3hhmd$Le8y z(y+esv0W~Y;1~QOyrnW4G>f?g?xxmxWY)<+mWrG9pwe*F{kw1HIvGVv&@n=9Gl)pRXn|-<$!uF=t}gT@ zl4xpLG0>RC&BvcRf%0I6e32T(t5atpOrLU>;6a-vbIus`US|F{N=S33TIdjLgm9Pe zlmsnjW+g9HBs$Z{GNpmiI~b5F-Eb~=<%YdA*ooOcVEvI4lp@hYuf=l=Z*03=7G}ta`@aMof3Sz zc5n_;i=w<MCinw(@ zy_9cCqorB9uGFxButR%&aoJ~|KR$Q$Aj7h^VnBm) z{bqk$t5@?jtZ&l@Je-)tOAYvR4%R7J`XmS{+I^e?mjpdIBfu8P5d!zQbpCZ;Yg-d} z?B9ZcUlt$0#K!z5ZTN!`|3^FjKh@Ly6oS8K0~5=iwc+2vbEbdV$OUBjGgtn%zw#fK z=rRAfe(k@0z}FKn1A+f9(D~1U{4F|X{so2p0!Lm~ul*xM{j9cX zv&M$(y;+mm(&#s|FH-ms#5+6#f=+|QzvWyA54%3OIsB+TxpA~ucQcQ^BjIL;i2t-n zF9XjaM2y){9Ffozo|4!91q%mJg3a^H2)>nw1%h6Jq{NQTvnloSrnnv+rYqNc98*7u zVN?tYwn0>Wk^^`oJn!RW#@OOpH$_YwEiz**3MAxS-R8<_5lUFSs9Hk4{+-3;)1fmS z*$uU;;??B>IkfW<-=5dzCK5HURB}ms$z^D5y|59XvZ-EDfTTgjD5kbBHbrgi+muZV z|99;}4qGHt&_acI;QM@f7!)Gbp5EdSo!yuT#>h1aDT7T9T1r0@aD*(hyXbe}YLyk* zIp3UaK6hRZ%=E)*o^9;gLvG+6=LtW^6_U$?LkcbMt1nq8Z&e!C*{gS6-Dq6vdqL{! zgoo-^1c8*dYwb45gYWE5$C{Sbvr}|!T^@Ffp)ooO7Y=vIHklQAjyrTwk0m)98b!$|+fKBB}ePyL4 zI&JyxHH95}%&o@+6p|tUu@MmlIY6jBJdYcH)LHx;L#*7zb;(oSYsa&fsJx=^$HK3< zQD(LZb~`vW@JW~#qE_%zx6vv~7G&zoe&Qqx6^cm69r}wR(T#Vj%>k|sgWDuA-O5ZawTC1g8JF3rRboTBz zWo&KaR+f8=cga@CJHn11$~mKYgHu@&C$J*CelVBq7pox7=y7=ljEkitZ6yZV*Jw#vK1I4N zM#qKsc^ll>e}~6aVwRmKxbda^`oUe^4F2qnij*S3(H`n4tJ59iN$Q9 z>xcKX_5}0}nR>_HB%3{j@@_dnW&oKIUK5X1_7< zpLg?LnD|er`0Z8y;jZalO#J70{yP)@dB^`nEP>2_*unpg>p<;n9i4t#5Nd2>?quuW z_`fd&1v3AQF#kKrV_{~e2fk*7Szp&^z9ukUzcbSVUw4AODjvt{GS+|8x%~S9|6cKa z1wp?l-ak;_*K+pPE;3g3*NvpFZ-$BGx2pEn_ryxi^8d%1`6KlDlc8n)uL$M;v5i{8 z`qj{)K4_wbj5El=rhI<}?t)AP|iQE*)xFCfVt1+_emNt=!G0575K73(EH_k}1 zqG+*Zu!&fB)!+f*9QTkUn;7VbEnA}(ESd=Nqmh1b_Ss@_FJi2{+jUd5K&;ZW#gZ|w_<-%m zxh0~Uf&js81O8}r=mmW^Kzs}%M#$H>wp)~sZIG)(Tc+r)OxK8C%}*{g+nC-P+u@Wf z`vu2SFH97*>&c}H$0kNJ7Yim+xV9MGSX^9<7i=}^?wdPNEQz!kSdW0s^@FwU7ecW+ z`Hscf02kmX0wsS7GY!xLT_rnjCbvS5AqK)lW87S(z8SnTdQ_69URE&CRc0!+<;A(D zTJ!xo_{;61hk_hm&|vdbSGZNKex<8%^-;VmNFQh_)tiS6+J>k?48j^o)|; zSNoN$HbNoq>$4U6v3)d_T$Y~SZ^Qb&lGIi`TT~rKZ`Hp7BWvj=b%`h~K99q}d_-jc zfKV7d8m&*|FE8jelTW8nEG}Z8NpGk1@|TLlN*Ydl2j`(~&Z#_o)sd!I}qG4T_wa zRkCZ3A-IedR6Q;Gl$9j6JgrYq#<_`{#3WoEx;=wkIjYTiG}UcTg3)8Pg?GKD&2N#a zF96N5l_U$vI6bYAR#tAoZvZkK3ymifM`o-^Mtg(hct#ki3;N$2pmfAgo z*qnJbM8DNvc0a`$m-J2(n;7)&hK?b@y5&oN_f;)jOMr~ArWoKO7N^TWsV6hO#8%8m zbzdVhWNxFMTJ%jzuV7(6I?FN5;p=jLm>rv}+05(~9KqDw#atcHEjXN%SC$=C6B<)O6M14UOis({Wz-OpXL zh4KKWwBaO#9vUnzRM|$(UHX0i$optDdbZ=ECI^qt1wu)^r1LI3pW~Pslv@X-UZ5bJ z4t%!5c34LF0u)zCMQ($7B)aND3SBkrT?dIXk}7;TyLk<^S{TiHf*ncmk9s$v`2)&5 z=cm{9`_8=Zsw(~*!Qj2hn;Bw57=zlat%TUsU?T*Cs!=p}Xt`Q-?TDjSwkCu@2A&^H z9%sJ}??>T^S`83%7|@DcZR)H~05Yf75>>u7`p>2hs&miwX7P zP(BK0_a?h$$g}6X0%5D?!jtHJ+kJ!A7kUdR%U$|xHI;(?AT;=Cs%~V2H&!o0f2v!vn52|<@Pd&J!$0U`W|@Ah(=^A$Ak!$+FuZ zL>spU@&J1D7_BuV_+5WPC_j4vK+%n0iVJp4I!3D)nv>W4&id_U>f`qj=Etv(*U)+( zSFxf!2{(C$SBr-?@SODs+zciUGXn6-(Q%YJ4j&Mw6iI87ZobV1=!V@0I+3N{M=y}o zSl6?dnaXGg34U$7W--$(Zj)m0pVR(OmBEQ^UtPE8qo^EQqYm*bsLEqnQbG0TLAcPrk{%x=8)^k6P z!68wDl}6Enu0h&z-J?Ds$s|45BmuK+A`o%Yr0D#UY@oi@oa$%t@5&u;^UF9FPy=l`$(Or7hK{N3FP=J7M<|hOLKbCD^SesZ-cEhl{5)`pZefjCp(eT>T;4IX z;eL;vsZYM$xABROg2|Ho%{OHT^>F4!sddJwckNU^vk;6;3ntlQ-@W= zx*aemdHqIgcwiq%kY&u8-kzA<(oo4s>xEKpu~JHA?r0K0YYUjGFR!3xziVEy znVoFETw6iF$@NUzl>&`XUN`b+*Os^qHEZijJbO&=U$HjO?M3zU=1d)CTGw9gw`WVX z%ZzSa$zRS;#%xYG(9O&J+>T_Q3J51L*F90_p5I<)SWoTg6jH|Xxa_M7p-@+Q9XIG; zd$zh8aw|!nYV@^NLc>J7wdufi!~TKh8QvYcgfs3igK+<6_(*loPW!xcv=x7J>uUN7?9i07tI zn!TF!ZO(!D^J=?%(K4BmpjEbPL{lvdzLt<_iZ$z@Mn))G(`&?lV^h#wi}X1+X+_xl zyIQd$^iF%4CwS3pqhG&Gtt1oJb2BhG!Nxw1el(9aK(cXUErE$2s0=_#TTO%-r$Ymc zH%74+Ubns1@ZPxLd}0WN#=I%=t`F=aD^deiffIe{X4mY&%dfy`((RMObN;2FwdncU z5d-<(dTa1E5uT1wRwd3*;|7Dn&Qe?uslVezmm5C_&UP2#fQO7!DDBcX1aG?)B!rDv zM&&6|!o+CzwOgR6S+;ODfyPe)Z~G+28^69)my z)_t=4L`BPO!tj+C7}=LnoAj}F_Jj39omi5UXp`>? z1-X7&px|H-}oSwKi47s1LMKMNYDQ2JlGf+e|F9?voh1OymnEsz5Yq2f9QgK9_?>k5X&#) z`xox_>bm|J_rtY}U1Pg=c!nk6&_W}sXfhg$%?IY5lZiy!%&?hj6;p2(ZRAeu0CSbWlt@kzk4G1YZ`{zCq72EA`mU=}Z>Fi+nPtaf024kNX3w;< zdvvqYpo*nB=_agxb#fq{KAcqBNjvtAAwMC>7;^+bQ=sa6H9JtF#Jnapsi7^#&{B2O z;yP`7rO~|ZoIuW*pEM=LCsxzl>2`mzqp9Y#XQs9~|GkkYSp9jGpD{Zdiw4o?PPAp3 z1UmvPp*QDfTjy*=K4t`)fw6UVH7{9)LC?l!Unk1&N3KOwt1QP5_PkS9>7Y$rf)=vI ztQHSV$|rzM91COt769q06Sw`QyaTPO6HMNOz~3KL2lWj%tWF^)QUIj8f1m6IV)-%I zuu8dmLu$#%XXga64=eOmjVabu$?zM9a6z^Go}Ql+5|Z#Ts|r=7&@#Y%2BI^2V3E)@ zmz^7?=}vOJjtaZXljFFJ?K8=ZDFaRIkVmke>WQKXCE_#dd<4uS^`VwwM@F*cx@_J~ zpLul|?Mrpd%apY1OuS_>v_$$=M$?7y0qTn&GX>;mG~W~p(EOmwOr$WhdmjI>d%o+8 z*TwYie26U8O)yoyJnAIOG&4zbeNaf1m$QVFc?oZdzZ1kepO8L168mEUo-7~kt~+-_ zft_H!iYPm!i-Kxi6pj+*lF!tLz5NQfz=<=_+53B2q-0TGRLqqTR!24|Q zJfWs3$)gySaHKK1gbglfGwv9I@?5~jW6@%gb0bjToTy(i`ICn{g-3Dn7WQhdiVhLK z>Y9|=_rz&kg#6IWFzZyIMEHVXw@m7k&-W z$fstR{+?+^Qf;h1Vt3C|WP=#Iwwk(DO)rU1IEL2dtUvT79yX2$`FwqHBwWiAXjANx z(J&cz5^0CIJ;5YKzKb<0M+!T^3_A6i6Sby>6!40iHYjP9WEUhp!+zjd;*0^;_6UT( zLqHB*FtvjpnIjpiy0+}V{7hU6f|$B~)SOM99VNxGbSy*T4Z(pBa9hO|!&2;qXl^r} zcQP%!4PK!>WRH%bvB(8$mvFq{_Pxqt&|D{R`}slnElZO^C?+v)pb$pDK{LWU{8OB*$?z&aC@w+#mrLhU&daYmU^$ z_k_IzL<3sQJmHEl&o+Dye|uIiOY7Yjq0(Upbx{9|?}3$5OXz!eUUCq9liQ8NL2x%> zbD61J!Uaek`kyc-vD^DL-sE@qly;nonK?y7Zdm1xIIJkKR#Fl@mJEADz2DvxT?b6O zPQCg5J{9Uqa2Xj(-_mfsh@COJ)jHght|$_2de>l)_vtzIHv zxI4-$#HYJBa2;)z1CwHG7)@OSlg$#&QG~E)xm$mfm7z*}MhwkqgR_7$(JK#$knJ{f zr?5O7n-PIfPnZ;#qz1d(Z^x-`4Ue0#$Wvpb>aDtwVn1Az_iLA;*B)J1%A z@K$kq5n6N9V|FLJRtw%kdDwq{uh+&-VX5!B7H#V^_1MZLw6}j^WQiE_4VW&GG3ddl zTblvRu8wI|B(wN}qXwpVeAQIW{K(qawvT|za8%$oEBZq+BMCzp#OtqXR%YJF(dU}V zQuFWDPSP9;5CViBT;!mFaCyGMGw&e1ubb#oEIDjV&l%zsO*jRN+1Jt?wRoeX1~uJz*jmA91&j4la3t< zU6eTr;j{g4wGB$=x<(YbGWvb(X*!XeVNflsG1%OVj3xx=dR<)nnm(!VJ7pskd6W4a z)QHfNa8-P_7CQC8GSUZjY#f5a7id%J<~Aq4ofMCH3C!`Jgu|Yu%b?!KT~yXDCgvhn zrtqMlmD=jYALaEs_@t2DbP=)KFF{6<1)2!+$UJj*wy}7h2P1Lr{=*$ELAjeKkrk9azGU&BL)g2T5N<#hX_yaXh#$aFrH> z`gs@aMs)j;qL#&&DknT!kO$^apTZVm?t?Zd$dM7DHR)V6(+Z+?jpcQRg$+V`=nJtL zdwcAl48uS&1a`!pXa{Xt^3m0ljqz2>;$+YB#e;8`$Mf}Ug*#v;;KL;71Xc5U$Q>u! zx#yI$3#?pEK_SUnD;PF^ZvA|gh#%&r;tDgtBBJX|)ns-5v=;q@ouwWupp|ZR% z6hg)R&c{B1GmpG8G8|YI!kq;t``H+41uAXfDkbnVX zbv*fIDqouCg&I7;(pEC!5CxIgU`bO>$TL;zgI$KRT>PP`bHEX)co(p=o~04sOzkQ$ zB8}2*V3RvJT+`a+Da7!U3Nj06LzQaxwqb|WVsjfuVS*Av^GK>bO2BN^)5w<63FY$I~ZOU^fl z*{@&EvJ3Y_$dV*x>g0~tlv}8Q%+2q@=n_>=u+oLt;?QT=pq$J`+vXgg8HH^-GAV-K zB|iuMpz%qmU1Q^mWaU9Tk=BI|Xgq!~61nG<;kR+Fs2k$b7Vlmtf*wSg^#0U9C8m|Q zN$@C@ZlWlGx(0npOkE(Sb|7aqb8Oi7Qs;IvrgBr<(9xi|Gv&zlBMkI#V`=6%Y;~LJ zgT=+5VG!!TTpmYt3qH$1K-$)EIRHw(;;PNL>x6|l>%}l~_O7$7jvE{5g$uVIM@uiruoVeQsnnaqnJ?UL+?$&- zd|5DEgYP6?XSCk$09T*J`<)yNitU>YdKaCf= zw~V2NBy7RDAetz$>SK*sgvHGj0>=?K0dT7;^-2%C0&u)F3qehZAmti7aec>;=nf~M ztIg)5m8?tk$Ngo>5ceWXxinQ8yjN2{l{IA`k7z8;XA%-A{NrH^;zTaB+LcVgDkogY z0DRgpf0OTls^c#|XUbvmLUGzSLl$?({LYKWRg%Gd;NA!#*rh|26Al|e=x7A?OyANq zBsZ&@8gqDX#Gm+B&z*`rzirOI@)tV@%pay@6#7w_IQ0F*5Awq6nX;hYRzBmfbc#3- zW|WF3=`B0|K6^Zme3)S~|BS8%cX-zIzF_A+hAetW43B5Fmc46?6_5v_%gVA66s^gH zcPi?94V@{bYRpNaHGT@qgo9L-H!o{0TyL*jz`b!#6a#A<;Z>NspaQ-bCkxWjQv>nI zb!QD357ha{k;A!o;befMI#TiIZW8{)GMAyvuX+FCtlW14ik-<6pze6eFmKlU4SAvT z?z%)Fg?~hb!Fb&s{hA_~o5SXs*W=j`;%#V3XFW?p{7$9Ii$R!{;lYo2kE@i&*F`4H zjU;`jA(fXbT?8U!{kS0JzDuR;gh$VB9pCILnQ!)verKbMfsB>(`13<-cQ?f6|9P>@r3=R@Q%-Z2zY+;}3@U zCky%)la1-0hRlBlvHbIS{%@1*PeS#tCL7b=&7D7qrLm*!7p?p{()>Xc|6r1~PWoR& z(u&sJ$=cD(%81s%*2vQGtHF>~;UB)--y2z&{vz=Ip>svg`bPsN3qA`AD-FZfw_#+V zqhb4s=w)I3GT8o82Kf)ZOe=~{D+cwiwD~XH;9nRd^B*d~f6!JlsHWla)mG!ZT-{?Z zXTU!YMI1jL!eaO6DB~1c7;JQVw4CSlE{_HYaCEMbSzhI@&<7~a z*Hw{gQQuPZG{$(C_hV|>zMAH3fBcKD1Y7d@yLm7e@?iuYs6>lPAaWDRTs6+T$H(Uh z+%&j~n4a!_tHfsQ+G?0v@pK=sp~Lme{6~_BQ$~7$z}GaHZl4sVInou) zL-_&XLwR)Y!OA|DLg8uzLs-auh)xbtPAi4`p(LK-R!+%?GU>Vj6cQ07;v}+J8L1ad z_qr^55v8OPhs8*-xUdtK3KpeO15Plj0ks zD;0s&Ef99_jVAzkLZj6$lB8XhW&@rG#B>tLYT-lj0zBZI$!Lbjq}4zgzd<#G_ESuJ z{R%U>Laizr$Rs-ub}AHn`bI>L zqHNE<^^rugWfErb*Hy>ZuwXq!5cJ!X!etoT)%ZPPZ6Z6RmrFS*sx`5nS%BT31j*WB zkSW~Z3gFo!8BUvT2H((;_jC5@<(UMTWXSx zyZU2;{!A&vHNgCJiIF*Q4(34`SqNR@WfY(F?_mR#YO9ub-#0pSNdPsjG(%(&E6yxB zR#Z$(K3|$9bzq#ljRGRN4nC1U$i;fc0eaTyWcM~kVaDNK=x5G`J-x?*XdlQd!z(1F zwy1g@sL+C!)%Thn{Z8u9gs8cB@7K?<#$^zgIX6UfYh=Ja(=J;_N}kJa9jbL+nIABU`0Z+)Jjl89*G z64bkpjEz~v7y6_&3;BQC^@Ar`&U5wRfIvX+%=LxT2H!zYO-3PnBM)W(x@up-GALPu zDR3c~@%KQLtNHfnBYrn!%Cv>H0ZrlP0H__}YdPuZG?BZz)MTHXx>;4Rm3jYd*K;V` zoxU>|j1BR4@x7di+S>&Lho0?Qp8ZyLmmSCpyAmGnJl_ZV%k;^SS$RxBPrbH(1r+Fp zf-7>9Hiuf%gS7I_;0NGVy~th8vXm7ju)EtTbyfvF8=VPaNb%xUvHId8l_3XpNI|D< z9nyF2PnW$UeT;0lW%42aabI}%v9`yuwbO>lG+DlG@8x5TQdDOURzXSNAJDEVLaS=m zc>~EQLtN={Z%v}jX8uz&q$J4;#42nB=awF)jQXMe6i5!^n9*@5v5COftzQ1$q$9UE za?S|yX{?;`J*FZ2Rt#@Wq8C;BHsNw!Lqwuw%gdI`E~GZx7^nKk>_SOGzB@pGa|_kC zAc*(qA%M4iH&NVfJ3}jTwY2|&_!)w`0S&}mcuFy{ds@A<*itnqf!?WW=r`15<(@ql zjwY~`jIj=6b;rOozPCB|enwXOhz8{&_0k-l!+7R z=pkaX6DiUY*(f1O34lGegy2WBqX#xLgJuFiCD^U|L6Rlsbw;&4jGY#UZATOx2^9S_ z{G(%@VBVBSx<+e*gH?(oP_;nNdvB=~K-$y$>~d{l;8XWE2VQ|hN=xC z-jWJw2Tg_k%g<){-WrM&8{9oojcdl&x4O7oihLj60bI(gl3E2aUEntKOP}i~10xQo zdc^eY?nY)LcteJ0u5|OCrHh+XKy33EWg6D@Hlm!N#%62^zq>2aj!LIRC?8J#CUx@L zmG

TS6(3Z0+Y5#hU=ewt24-cHZ~8711E&^lJ`OCKb5YH#Y&#?rJq?^Dh>r)@2xv z>9}&6=UTbDT|~YqVxS&Tp0_G(#LSKcOb%%<#gj_9+olg^V^Q%9qQ!WP$*hjtiT6c+ zi$)fOQ4!zrvi~@fPZgdp%I+Jqc(bA)sSRoHX+yBX9_TMSJnF_s@2L8BNbygY@CQ<4 zpkw%3j0f{yQv9Dt@ejE3FG!L3p9=ba2U7g=dHx@y_zz#=@5qk%->UJ<|EU_UuHmrW z^bah>fYjR(a4v}_Z6D8g(J=40=kW5SM3L%ckmZvn#P1(2yQJU?`6e1RGh%!nQ|&WC z!$V!MLBqd7%cOgvx*0F>KUm!Bs@@kA9YaP)cfOC@pxM%@S7PGntW=_Zo64yNjsn}yKaTo?a?DwwnFMMMFeGb#CKxlLhu9rErD|<~&QyUnSxLDEU`iq+ zVw~a!Mw~b;i0Qgj{d&R6*p{9fMD4edZB}$dVh05&!>W;huQ4c(a zR7X=xQ~(L?gRjm-+ghUE-qi!vn|CcpAyic9ykY_r475gkz}ZNRH_8$;!H|1wPBKyJ zHtHEDu$Wmd?VhmJYVI5+P^=AMvARD_`{jnqba@pZe&5!~FLc6y{L={Jkb&-xWi8&0 zWcm0{s;`!0knpMt=qHK-0htB8$#BnbTT=tDcLk;mS|IO-PU=fry7bbT=Vh4q-OWkVfl#HRx#F%ZJ z^R?i}&#Ee8#X)MxaDr9UOBB#|{#mD1nz14U$60~hmiz(vsL%%Xl9Km&A>S;9=E)c$ zMED(f!Jj>Lu;lh<=kC9fm72B;o2$6c9V`# zI?qIh(K6?Jw)y(Brnl;`SV+s-`2UhZt=o;^D?3b!8*cCU17<<%30$_3!eC6yIjY#b;#b@ zuc|=~+)P;rMlS(#PFL^gk%2>kIf@@mBI@akpFYh8XV~h7 zuO(eaSxtLQXFGeYTva$o1sxmPLskOF=2!%X7zaETGF`A!FJ>~eTl0{^S=E-#D69*G-}#`co1aq>(ba}Uzf&#yvTNM&q*N~ z?9tweLtaia>kygGBYFU`o30#w1tvG z>cyf_jXg2L?O^4J)n2I((Y#}Uz2z6kB*w2YN`&irjR?lOIf#|jUu9#qV<>dgSTx=A zjG8<=8}Q=oOb)GWW+_0`Yq@Yi$}dk&$u*P^r|P@!%hww}@7{lXODk=8!cey!ODd4% zGzuZ3J!58E*eL{3A#JHZOYAtaL9D-Lv_2tdk+sG@)?lZblG;@4Rr<8hM>m2*e^E+q zC!Ov~?-MG#$&>WxSk_uX*12ZqlMM;EuhBF*vr-fMQAx%@whZ$ctXFs9SSQbqHqjF$ zeRzi}gXE$U{x#_wvXB|2j(1^VAy9OqUYBA=33dwDM8^(5*-L3B^=%t_8u8FrwE z-^)S%L<1l?h@#T&#BVl1)9K93tzlJ-z$2d+a!m#N@GD?u;#6KbpJ_^R5ETe@43 zZka)K&52#g4hpaa`j!+ezqq>j*L_(wvOA+dqEQHN93{%}wWAC6j%cUC>E!<{>iVndn}Lp%{-63B^FIr; z|G$P+f9wDH6EOX&+V(Z;>aYBozm-xm|EXX7&%v=#N>UDMbnu;b-yc#Zd}FD69#$H# zIXVr+-NoGDn{w0jp@}m_r?19_R{9c+QzbjTUtG?wlU>*i`R>{5evqgExUq9)d%*xn zn?mpls`CbIp5M7QX$tiKsoI3h#4;cft0fnTL1BE=&dOsN*3j(U@3xnvyQpGl^~G$2 za(sUK+NYzu_6e4I(Dh=vb>FQXoVY!P_N;_c+RC#7Da5p%k05Kvf9u)>3e~OrXc`Ia z7od>Q`qFe^e_^bmnK=}|3*Qdyi>kYtOHx~g7`KX7#fbTVgWSlDsix#n9Ec$s;n5S2 zhKa2y7tazqlSCmDR+t0E@QID=f#5>1GtkwSC00fq({Z!~E2(%GUK-vH5g9Ae@I-C2 zR+$$(?qlu~2gMdvRn?*1#Tk@Kk=)T!Ddkmngqdj`;!9Rev?O1;wv9@s!lUK~&i$60 z7FKMPz>(|QgJupOfwJNbX?_Ncp~vIAPAppzj`WJ+B6wd~Cv%RX3u?Yt8Nre>P@(?j zES~JJZDv6W*Q8(W9JM{k`E*r-!idODEr;uDDMo(aOzZ60gNt_?BMcc-2X3WQDUFG3 z;c}2QSK1K)7xv0=TR1RJg(%ISV;oR!;8f$}aEk*x9Z)@&ZN_X|`d-t=`dIejV6!BQmD;$doqEQl1c3o z^}~FHorA_6?rdV_$nkCe3Af^hSRt+1!iu|J!~8OPIoEQIF@;DJF*US@E1B(Q6Uu~_ z`-f3hF2C{KIrqEZE>UV8xFo9NqhdDPUQmc`mL6U;#@eREQ{+?4o-Xt-3QIG*T#9}f znW@^&Bd~pFfz~kL^RHCDd0g(Zpti{62qx6xfh_!3J315#HE=CC_4Wbu3`e;8x2wWm zGBqpH-_oL(|0y>A*DMPEs9F0LV)buDYL@>{q@GmMi1~w9Jy!1+01aqv(Ne#}Xa6*v z&8M#8KFV7MuaxpwRE;MZ&9L(JGI3-y8efx|4X}hU6q0Aep1R*Z?)OIm>n8cA)s9ta zdYYNEBP2Eohmgu}6K;xFUXCblPPgT+Vil1eWJ6iHbyGH*_t zOuQjy0Ak=tyg8?k7(#ynvAlrwZCbN=j@=xCgqP&`mbW^^-+oDg(M}Q!yfAp5z0-2k zhxFA@X(4Z)PgzKNTXd2!{@mq+vUL76-``~{Fc2GU{3o&BM)4xSYGICU4LI|)RXQ1p z8hAVjJJpOfhzE_o-U0vj+9v{vT~p%Q5F(L!$1t^Jm$D z`P7Z5DN@vIO4yz9DrmxBCv_=5!u*o)-9h7xm zn06oL*XM8%By@|>_K=8B@d#EuXmL4_M=m!VhG2({E?|d#AC6r4uiJz=bh(MBK>8ge z)L2dO(Y`Yoa%|N63D;ePMP5Eh%+UA+zqkp0%uYAjwH(R#G{IqRO}-0*=sjkz>zVyN!jj?W0T81>^Juj46K-1*rz~Fc#l^uP zxxGa}kw{}yYMg~sm1cR+JS+Lzdig0V;VqPL6@DDeam=%t3 zn)=P;(T@>ikr>KeGrBZ`%<^$@0GE;pq?nMc^`|`I*oCR9O%j6LYfkcf6VfW&MY=G5?`X(M#5OmOv z_aP^JgV1&Ncboz9rG@D&vc;nm6zq^p$UqyM9OtL;8Pha}48yRm3Pyf%vlrvj!xZJl zPk@x?u)!iL`Hk8edtt?h^ShqK|0lTr4_!*!)e@R9E&>3>gxmf+{)%I!5mdY~*)A@XQ(BitBppTqC?prWiFtx&w-j1Y2Wu@(oPNBv8!Dpyz$q1Xf`zC8;)RC#u z)7>dF0%&@Z$&n1;dB&4?FM9lKL;MI9#pG;U9Llv(E2e0P$p30gzy8_1FIZR}7!8@G z9c*`eU zzMHI4Pq6hGk&>_^ZICN^ZBEPHAT9T?euTqU4d&+}QJ7|2cX!7ZcE+y$n4Lex#fJ*f zkj7jG?vZ=s3)u{`W#nR_Ux@7zK{72coMYdP(v>iHM6j-M(2SDLWtWL+Z+Yb47_CmT zuhq{0DEUV)musi{DHWA8Ah9-SN$@%f+@jNY-cM^E=O>x+mbsj=a=o97(SlRJ=riP) zF?)mWdknZGn<=W?s9@ibNV`;q-@!f}2ce+X`PHbUXpnk`c8|HYX%SNLq=GmuS z*u!I&Pe!@!{DO@G%iJ6ZU&x!_1B8H<6CRm(zXZT0P)Wftmjo=HNO7A4WwvGB*$9_Q zyP|s_TGWOX!HMX#(YP39=AL|zO=pOYo!5-HhUoDqxzUV*4up_K`I!I|!|aUW?(8s= z{zEc+q_xZHMI113p$SXoMSKmvZca9S*sIXgdqHImfV7hyfOMT_Zk4Tw^WwWugq;o~ zes9naB4SPQ4hB=QbYYq$l^dJnJhR`}3tR^2w}@dwyI4<+PTuONIn^5ItU@0hF*FT{ zHB2ZM8qz?9ccC+{)RQGluw@Zi^sn|DYid&c9(LxUbSSPyj&t+C-D*)+i1L0lNetK) zWmC(?Xno3byurk{cqqVEXL?7L=o4uJN_9_lNdiAh$ZUSeEb%)M1E_oJKW>g4MIp?~i0Apt{{t4UmA1Dyz_(_)I|x@@1mr-9Ci)|kMHF3AIA$!2>hW^(wp zWPCJL;&^+dzP4~v2^Bvsz_%=ABHH@etZZ1Q(D)REEVuN~-YMsJ6{6|Cp>!QlQ}>X# zY@qn~0M}pf^87oj^(XT9Q}?E)|J!&*mcMlG|Iho3|IWbvUlp6>pYr_Q7#PbR+V+1? z5pa>E;gHFO8GQBr-SI@R&v&kCThtzxn}+!Y@T?9<)67KZppcKYE$E@B0O+z?A%XE$lAZi>y-;%Y5FBmKhL6iO4cFA`2+RE+w-J=r~+!KLJ0PB zhwTMZoeW`KQJd&Fkm6#65^sSffBa^YQQ;CUg`yQlvr`QvF$>=6=1_^VE(L;Shgnxt z_O~cM_Ys($8F&<;)|=3P6jM%g<0P<3d=1P3a`yzt<>0puoKipqo?jEr1?CBV+p1Ng8eD~6fu+JX`xB55E7X_b-6Q8A(y6g(Mn0BtVYVUyIPXLaV{ApnN9af7Kzr_AK3YB#AB%9cDLj| z^7j_Bo6E!{$&UAbF9z-wS$PUl*&#P;gtV^QhEd5;In<7qm}1A2%oU%m=%(s^4bAH) z)g!1+-ssoIILy~1j?i|7{pC(JfSlnOEsh)ljj^+4%@Vxl#s=>PFZXTB2`P~yOZE0s z`sJs(Y_W=&SZDeRFY4Dg^?O5ilN zgh97qs4$^r3}rj`#r#_v95g*P*+E7-bWf3!WtMIAugOuRW7!QLi!^Ud?bc?_8jBxo z$M<3d3U!U8ALfJi8#v_!V-;bg9FI?|oe?XkYm2SLJa`>hB5HlJgS(Qr+;^sNT3lzD z&rA2>6<0GG#$;aY+!XtFqgLh}TP+&9+BLLkrSY$d&YvEZ#I>&*Mg}CCH3Jt6`r8It zl?Fjh#pRuM0U9{%_lL`#{g02vYGudTGayt~hfr+s|FaaC5KhkL&U?_$MB;S=y01NbS>h*6X7V~NqzZH5&1m=XSJ zHZR7&0D1;|MkIoVUB<-Xdi7pZ2$&~09OxP&D!eoCFI)1huTTHYodIB@x0PsKof;>kxO`oXTJ)g*3*D_MN8B~i2 z^5y)Ux4@52z)K9^$BOX$zU*w3dzf`S0FMXC{CS=dC)uYE>HZlUR(Y`qK^zG=EILtxop9k(MHqo-Iz zlqBX%WThZmWJT&8WPuUtXjUPn^bz1bGRS=arz+n>a=Jzeti%L;tDpck1@^6TB0AtA z_ob|Uq9-mVSlMA4Lx44>(l1o0WXzKmdx4@WCWxiof$>+@mtSf(yt*vtg`BPmn4nWK zrLrsF)p|B05*FlC>pSLuIt`?QU6kXIIwo8BTHB77r-%{~CW|+A0;9+QK!RzXQu=xk z)$SeoTFMu>akVRYZg+gjO%-Hu7o9kARJf%!9h9T22{(XcZmKbJUK?y*u5fI+_HJQ0DHR4!K~Macfi|P@3NGTF{Mwrd0+yKk-`D(5_-xsXxc? zwl1US$u2(U3SKcd<@Mzz>dBUoQ!U~O6Q{8}T(6=cYyEsrlE%i)pDS>fCe zfgB0g74PBk>W5IybBAzUE{?)Hrbqr-02G>VejL*?(g7=8TKLLO4fUbYE)#eS%X&wJ2) zn_aou$jL;=I8_^47}hI()_hy_*A&l zbhpgC!D0#?XeSl(V^qDz;UW*t6sTwYmEHu_6)oCk7&=?Uvw7w&tMs?;)zGExyQhhz zL61w13+wY#Gx`Hpn61&&(Ja-NJTC7Qjax!tg!NddC_Ql}Yq9$rRudY~2{)`1UbmOj zc4l@?riE)vTUjaixQ8vP!<7qTalM2Sr^C|So}&VD@5My1CwSgbA?>&PG!D3pDeT3I z2~@k%_O$tJ4^^|7B48KB$FlEXe3&mcI4BG=(=2%n4c}?(2Lvr1qVMG@-8pee@h=}s z{ zC<7}tI_jJ&7&&X?oMdxfUNUDe4%58}pBM_n9kHdlHK|H-hXW&mOsJ6!WeFbYPZI&& z3AJt9zPz~;VF;q|!ct-Vig0FMXikSI4f0wvN(woaXyzeT&VT^5q4W(`uWn9yB{11^ zM=dYQy;syiNPV8zl*g)TYFjORIb(sk?;!n@CSMnn6sxCIGBn)8a4GL$NxL5$BquHV z=4|l{u99KiF0H$M|3-8=;jEOT*qz<1Tmi9nY^7g-rsi;ak6_11rn4-Z9ZOy)F!0k& z=!Y8I+=_i&^4Y5*GRvO?GHPME zD0_H8{=uYw{)ZZMeaC@=_RdtPk5+497}3U$u5r2qXliHtaMh@lc$q*PFt+2Ga4VauH9JqV2#Elv(%Y-gH83;ue@iC*sv2QnWBOY| zFUwyp&wme@_>(#OtDVF0PgCmeWa3YW_kXr?8dW8}l5ya>URADV0)Q*bz8X$To4HuX z!>wy0Fgq8xXBZ618wEuY=X8C%LgJ|u@~K%vhWHU-nfq;crX<|55RiLJ^nAhs^O-IgWgFbt%Yy-X6^X?VBhX3M#PabWO#PMFUkpAZlozg! zTNl`0sHu&TE@y$>tHkS#3Fg1@a4tUt%fAviRO)SPT@7Z_t!2>kA`Lv=SmDs&z-!P6 zu^o5kB6nkl zbrS|E^IrD}B#e?e%>wHB6mRjH*WO$ic5j6GW>^X56*1~JJq27$dw~FkXEkvpyg$|X2fjnEO!14p!x0BpiW218X?(-E(x5{eKW1C=MH=sbH zD>VdTm#AHD$;-LrOM;ktEd=R*u|x{2o$?rF{3!aKG{#tc3s#*S_oE3AX2sNZ=A(0S zWzn7H?i;!?yZTa*X5ZGFd;4a^6)9ghgve4CensPFVp5rUeQ44uc-1x|W8ZZtc;S}P z8f0&Pu=zus;&>&`C>nCYPNJ|Bp=_q$@*O?|JtUIoY;Hs+nb90WKp^rCgbEn-7u1w2>4*Y_0waQ4mo9LBdjS_P z)j!}5L57Viimo-&)O(XZuBnWPvtT{R=A!`axInVD+|!x;ll*|K=1^ekmq5y70*sru zPLf+CqXA=P5L-B*-(irm3bj%+fU1KEwVz3^6Ak3T+D~X0ywPto6d?-+*!on2XboB* zz@Dc#{u?NwjE=_08B^M8fhRjBdF7=|&sCF7&XUHINpLG(m5VdNfX|a+Jd`dEO|Jew z^y?{43BmG#Fz(d@fT-sr*C3?xc#4xK0Xa8bNoJv!@Iok4`a1 z%aTLR+XY2*W6tYf)r(QBT-Vz;g1#dZOdPup6Vu6@I5^C!&1SA{mEZsZ zB$PTtAc&Vpu}cs#wQ|drvKE>zb;3nMv#$IUjMTpdOX})#7>7mPViBj^r^9^lQQqY1 zCzQP47Lv9&cRwR0mw`J>VpUQ;9qU{(<6A~~1DRiimL%m~RJdlt3$mZ5Ad7RO)IRXa zjqcA(5!8bZr0ac7-dx+yM~yACHJ~@~q_dISdr0JQArXb2*nysGY`5i1Aliau@_w@a zJX?NUlmY(U*seZ3DHWAJ2_cdXGm%t=z3VpW>;!q!)aAf>>Uo_yK@dWUZ)2Vy-d!@w z*6T;Yi;#b&p;2O5XEr9hy3MlZjx22!ywO;nyy>6lM*~WvT;$8$@_w%gytcMrmEU|; zN`WOTh3Q!N-2EHR_wtNw6G`}IwBbdS^kzL86LFS`*5f(oGEr(DQSs_y|1m`fJ1OKv z#5@VF=GTWUzFdX=iNUe&H0@n|m93)bl793Y2B>s&xEir`c(T&6#)VN>z!Z22RezUJ zsp;{&lnA3SV87|?YduY_u{YJo(hC1IHRrM1_%vpCSJ8EPU>DlescI_!~Lqyq`cuM9cyI zc3=6+NvCII_*+aY%U?d>f6>13k2s6JJAy3#^fmv!ul%WI{m=W#q}sauIve8G0P!9A z(r{f(NZqmrz4!@9BXim`oU6-zS6p2vdszaZw4at&-tR0B@?c_N51RWe`q1$0b~AiA z^8hv~$OunrA-rRBi7DmlT`~WASlB(1W4*gaYul4D;n>Wthgn7V@HB=Y)55skA;Um; z;~AqcZ})qZZceUTo3k=O-or+#I~mickBig8aA<7;aeA+J#T%V0gYCgP)mkGQUonH=hbbeA6rG z!iXV7!N?RCVFb+rTZFX|iPMpQ5k@XIO-#|^#Sfx;SR%#`EIQ86m38diFP6c9_1CM0 z_`P{roYSj2@8tq#Ax4*glz2GqeoLz_#C5J+m_}>BRu# z1|-K6pMBjG<9H2{XA1;50z^=Y#Iu#FWjG4eYJ6qhuIAfM;E!CA0%eCfIS)e?IkYj- zvuk__2Ip)(6^VSTf(0ux?=3{5)mrTfe0JKK0{A*4^tur4FcFDQyw6Pn?7?E?;YLGWhkjawt1)&l87)o0jO!9~)o1F&F@9n`zemU`cE`x)xJZh$TKXScHK9;O-{fX* z%oG`y0$&0c$;nLde^GHNgY(7boM!<;>dA9u#~vC` z7eGg@SP8^s)d)3%hhVAzqlbGce)Fw!5n@JW4Ov1vBh2i-wp43{aR*ca#$fu;B7=eb zc8H|sTL#ghj!8Y-7yCOV(9a^*j*Wh{1bE)qoH;4zU|bND?|KkJXh&^lXKDwOyzlGH z3gv=Dz@kl@dfIh{lDD}+MS$&{_kGkM>js`R0K5SbaEw1`f)0fUF8(xmoAY*#SO(-f zz=i?A8>^JnYz0rjQ)m07u>hbXx(bHMUumKKSoG$idNuCn>VB~;mhLT)UVBi6-LKe%5b8e05e@@qFOzivSSPRS-WVV;}HE=EGE;F_*K zp%Kzj0D(mD#i=irNpbn6lL3K3HG*H$A=Pl&MKnqJ8-GH$AiXyp{LD(9EIEDJWK5$J z6@Pq_z%Qdur5#mZ*mxOC?WW4c1oi;rG6G2!4^ctq+AUSpK%4GbkCW8v6PQ0funy7t zUA6WV8}Pk}-K)}JZ%iC2CXh^4J` z(|Zn7vnk6F^fc2k$=Q5aa_uoA#7;(G<*X?^mHE@^)_JdknzB93QR)Krbtxrbbt7r_ zC+B5*PK^#)TBJU;9^C2f`SFaGt6F0NDP;hTNR)9tuSNI$au9gc#D$&MInsBAJGrMb z*QsHt#;<`u`51muWsWi{R|yhlIyEH5-fa@#vMYNvcAH7S_Qzonp~Ph9EUT-DBLWYU zddTO!xD6J!Ys3AHr2KnZIHyZ2&`8sQ@PMJIdodbM=g0&dZCKc+&uPDS^F)uQem8@+ zTf7fhw^4RF8o?9@1$6_*`5`$1e-EqDUcFsoIRRdm-C&Iky_R*bc~q&MtrCa=Z>71I zqhcUmYLuqoZ|m^b;xcaX>9Lvl{X^qNv6Y37 zmudN+ZTWSd0{mD#4?PEqEAC916`mdX>wd_iFPX2Xt0mII*-3M+{8>#ssx~-YxA+0* z1Mc3nk3OH1>jk@~!^a>CmvH|$M$y4}CyRl8pyTyqQjZ{SG^Y0loaYnR)4zo}f7J)k zv$Orpk7NBW$-4TRANMD&`Bw`4l~4O`Dk53`!)*5`mH$JbQvsq0<(Hs6%+b_x2We)k zHndN1O~Y!#k_3Z()|vUdPaW$;#H+wZ4jjt%KQl3IPh30w2!qQ3e+yR-uCu>e8zF`f&!M+Tx%)sG#}* zBk?YUDr9moWHAtz($nv~6T&!YqIM(jF)dc9L>eg<2ukx;>CC z_!BYsF?37M8NY|SxQC`ON?F>Li5Yw%2D@~kU`IrSA4q6B@lMk&C?P6zZ2k)Lda9ru z+zDrj^Vf-|w8g<^nF-6nu|*y3gHT#y;_$GtblEtvOB0YTxrgX_M)G4B9EIznL(!N4GfqqNPlsWdJ_4 z|CXvoq3*oZ!#waBpDKax(oQo^)J==fB+I1}VpsI4p=P1h#LrD23gsJD0Mddrhus?C zy;%GZ0w^68@6uWmNDqa7)hi9KSl8dea?3bL^ZW6DK)iz-2zQg&SGR*ky(or+y~VAg zE7`Y}DPW3DJ4KW7LLJDMTm-;qMeRqMGNFd>C+TbOfk3%$pq?so0-8h0 z#uzIkXk)c@GdJciO-j`uI%Tc4Of*yWfs2BMXqJ;+7R4hd_*U@TfCNR?6b8}^N+%2U zdKl5!4oCi|{fL4Hd1O}3cFHQH$~snXEBgk8LyJo@W`JPf%!;+Oi?cuEPl2o&$xTJu zlnpAugx;0CTLb*E*1?5BK>X`Ga6aw83b;`XNG|o|<-@UMR|c>Ir3DZFW;08wME-qi zXU(=Mk$rz6p9IYEN$3110tcbH%Nhl)9RCjKoplNg29mt+L4*`M456(auNy_?!!LAH;upk@QPHKsdgA0g{{q`ffVBZw)OAF|QzXu-qs?^`u~w+vGbcuSJS6MwOKHy=&OU&;bZQ#t9bidp1nk-0aAiL38)LwrNESpS zrI8r2Q+Q_zj?Bq-&<`<}MstAh+-%>GQ|fchK}-#aoSagGIom~l!KYfVzn;Cd#kZrb zh$b8CtL|z8v;~bm@s&qt=?)EpL_RV*$9!GqwCO6^847aEDwhj+w_?5W{2YXeTL5F@ zbMrUk|5nt>`j=w*-$P;lT*Uvc zb^V_L@82ja>z`crKcTP^4jU|pUDMS)1mLaW0lfh`L`v){b?4+smWfFn?1B_%1AZg} zo{@a=&JW8r0W!Y*7_D{DIOSYFm{y|TqArKPC;Gz)fqX1pQAl74pHK5rbKaw?d{nb^s=fVsH6oTAS>2Hb*qZu3>%b*JaH*nABl}|!1h^f~ zKs2}luhHfF5@dTAQE=MOMPLe88>g1iK--K{Mc9tvsU?$gefvNvgXk_L-y*a5W#9`E zvLwgVqb5gB$;HR>yLSB#3j{A2vc}YTlNZS?_~iOM0GZbiZ0?C#Dl4wZ*=fxgqly`r zJ1ffC9IlasUFJq=<4!7>U{@fG3(M7i%>fp0;IU^T5FFAA^7p+KrX1$gB5?}QU6p~j z7DEh`Gv|g{yOIM`3$#*Fx`E@lUb{D3-IMo)HR25FnY^n1YDXN+qToH%w3cW9AlGB$ zLlw44w|2FiY6f3U1MB@r{hgT4nqnfND<7|GUJ&5tUGAWL@e`+7kWxfLtMK|-Zu{f{ zDd0*&pFoJW6Fspd%7|cPS2l#tNK8_6XOLs?7%1~=K8!n{-(!&~H{uHu3_TL^ZO7wL zp7yrR|17lyaK`?K{k}ex58zK-_gncOHh?qq}`|U(hKMWlTT|N9kF0YM; zdv{eh3ZN7&zuq;ckRVt>BzWrj3|U(shN?r z>C2O@5CXQN6-E^MF;9La3E*%@p8^X<@RJ9^2{{CdX7 z*FzotqjV3TEUlOt4LH7fXTo4l=A*`lV_+1}5Clxdw0Td$k>=k@WU5T@_*k65km1xu|05Stt4i#)=Fk_Mta zG%qiHnLcOtl{8Ijp3P>I^?oLfJx~Rzs;+W1rl32K$~(`oDA!{8wSk0cb@HvcWvG+! zDEzsZ0Vs%6>Z{2oh6lJ~b6~_7#$AoH>97H-loOI?;#r>oKRi8(Ip2PBnY1W72Pb6(!`hL^br^WxU^^~=~- znS~e0AI75a^NzN*^Af<`)lr-ZeXl9?^mownsc>?ip{|)4&V1!xel$`5Mt-7!RTuLw zn8K-0^ie--&LR=(ss$#{S=bl(r%ZD1_UV?aC>p3QJNzazMqzF1MZ_($o^Z>La6P`iVR zew`G_$yus6iu9dmxSopm?%)!}8xT~$p!855OdESy>V%^1UT$y-MC@ggB;J&(#kf5Z zRfsc*1ai!h=_LPsy}}RQ3C^JX6mcxJA_>J_G1<^HXF^dvSKmNtxrFhIgttQs^K|`gSb|5wan6&m)TWcVoPImVq z1i)t)GxQKWko=bS&#UR!7zfpe=aK(K-8V&Pwx!FaDy>Ra+O}=mwv9^Lwr$&)m9}jg zm9}|v?|b*@-RJZeryp;>{bT(vYmTwzTJc59h%iVlTr1`7ndN~gvUr3@!LxiV&?=Zp zt;ilqKfiGUfZIPubs~UbXKCCzCp^Pj++53@5Tc$QL(m3Rw}A@uoVjy${hsIRJun;t z51?$@i@#ZXZ@+9j#1TY|cW$*k3qw>gG`^V(&maH6z28m+@*aqKu&tYN5_*?z5P4Ow zrq))DomE0b)Ok=9=2GVxdd(h;o;+UMhp&1GP+|a$Z0)Vz#EVrCodIy!V1ax?q=nN{ zl`%C>@34hjM_T?YIo2Z2fatIkx}2;H>l~Y3P`tm@re95MIvWj}Mlhgb9uyJllCj?eX<-CJFaCF@{Qr!2R9U;V@ zIVXrYMqjs>IRKk$qPKC)y^krr4dyhU&}_IhR?WJ!==GsfgI}C3BRh^Y^hL?Zr;quJ z@@yHiT0C%ByemKQw02|Pnj+W$aEn^v~ZYPW@ zqIJ47DfQ#h;oI@fG4Mp{TqV7u0SZ64A&|(X*f2ILz0w#nrW!~GJP}rWHpm>EK}^Ff zIy%j^=}zYcmB>ZN3+JiETn`|}EXBbp4#Xs(g3>`Jy>hAEGItwl@R_`fTg|~FwN2wT z(QCN)ImhJzn>Dh5KWo=)I&Qda@+nZV*1&lMj&sL6_Yh;VT9R$1Cwl*-Tng zmxO!Hkb}|LhAyU$sM>EOyip~1e zRn?wpwWUB2^mkDV&2_CdQ#cEQjNgI=-Lz64=x@`{s#`sR@OBp6w>TA`a*?h?R0W%}C# z7s{Y=UtiVFddEe?wzobp>T~M>-t+h3vu|U!bUb~$4=liazy9Ic#T^oqC8HK+q?T4d zn6HN7o;5^&(}~Zc^C7VK4*Z-ehx|-t2S{p#3mjM2O}o~~jQD9Urvoih zm^vhC-=@PL&S?P%#~+Dn5j;lT%LykLL?=r4A;_=LP20eByme^Kz`2-Tqb~a4bbU($ zPa5R@SmP(6#;74pK=eG~>VY&g_YxFf<1|+1$i+KM$2w3-5f@Z7?^)oybf?8^~>$Ip$0dZU0&ZLbO6 zH$u0?atmiS&QB6W=Yb!U4}jvu7*%-?Rh&X5Gd_$t=ISNf=ZoSn+8Gh^^=%@radu!| zdv8%jXFlaUacO!5j$kmP+2V#9zj}Uv{2Xhtt}YmDyD`{Mr^`8Y z5PpX@qp`Jk1#}{Bj~-7m<77_sCwiSfXT0g_599cQA?8YTw`GRu=Ba{{f)X0=JhuM2R4a!`vf)wM$LSsT^yeE zZ0*@^3`d>#g{}+90aNfyWHRtvjpzn=D0zbUhu4+z3=f6tO5Ad)(fHx!EzVT|-CS9g zoAKLTUCVu)C95F`t!gJu73-ea9TW?TykpUI(?(ksO$8fE`9a&vXsZ_2c6F9YA1>|o zaqS`YAJ9PFzPg$9&yWYF-9-0hx@RA#P%^>GOVkEAi8sKJ_I_^r zVO8{HaQ(v*WO~{WHR8DmHp+Zvh6!>vKva3ZU=fO5#e}#W>NFEyj@otD)#&vpb7Oz^ zMYhu|cdaGT|ITa|V6iI6<+1AWWSo4b<*b9Gfpl2huxA_)B{2y1rf9uj0c#~|4z#r2 zM6y?ra1OVX+PMVRkH`J9TCj1y6MLV zIthZEVlHXXQAHi4Bw{{1G3u%ESXG`w0(Dty{dX%j_jT$ZMjMv{>iik;#hV_$rAYYf zKw!tn3Q7R4e5Z#!mfhT=@(nr1m@&i-HZ%IN`j#n@rk5B5l6`qlvooNwq!!y;Ep4mc zAuD_sW?DJVAXU`!Wy)SoOPiy04nA?s8$iEmeNQF&Zx)3I^UDc-zMqxIO^?0Ws^8V; z&n11kWY4m>W7zX4V(-v`9l_U?poG(Y3cKo0Y%hmuOE3`Za-R~~}^W?6bWVc6VF8v&*|ey}%$q4N$Ca6JkJv|Gzni|h z2#?rEw$#uzYUB6_jMDCT_SO_FiK5vL0~#jVj4xs<5Q`hT7Ve#+K*9u)kb#&_{KKz=>9dMW%|W`{QVoV&9t!>HNhL1q)= z720&d)}w2i^{!iU;x(-t0?UX^1uzYgcR#cZGBU*7$=nI1!gxr{Fy7H zS!KV_Jc0ZYS4Y#oFn?Y7#u`Cd$0xe}!+jzv&0*L*T8h1H0nhCM;B1!FC|-%go{J=^ zop}`;X3|BeT-5V789#UF?c2Eo<~L|5Fa=Bh<=%F!?`8zMu3eM5Rq3uzW{Ym82SN+|{%PP17cs2#Frl2NF~-r2~R;XFC( z)Z*g=QgtuLE<`bnAZJEYdjzXhw73&+a4+$~7=9OAzS1v}C1!;83MdmaCt)Rx)1pgT zSHYsGvtPFBn7ehGvwxH?M#ggsdYHTbJJDeYE)wrO=PZhsVtu_N;918}3J%oY-UhK; z5W^yYLN_`E{{6}q5Rn|FH|%FWEelTJ?ydl z1J9t8st>H9e+{4)P2MWNMcZvVg)LlN?6(Kg7)GXp_j;e_b~tG&Ide5X2*-q3v@yQi zoUgGImlR?fnL#c*T(q&(e^3#^SsN5rN-J^**=CX5gHJ{pNKvnP3NU@LizgJdo@GCA zk2;LG#fA?0fG}o3J%Q7qTwHQ~OrT5NrfzN#s(aK1)%NSLdwwJz-5&0gzWnYA)d-CH zm$3J*Lm~7`w0~=dWcf=S`VWG=e_-5yrVCmBA!hwo;h}+pnT_?IA+sVjiZ+lmg18!V zY=18I3kj>LspHZ!Q2)_-$iz&|{1p#k?PzJK^-oxu_3zr!zfopF|5c;N_7&0bNA@f| zE+f-dwd2=N!Ti-~O#5#p(f+xNf7xZi`Y(NFtpBF(Y(P;edhRRv<5gw+JK^sA6G0Q( zO)Yr8(E?EL2A5!IvN9ozlppV#+n`-slc95L4E)aoR)(y{tf4(NS`a>haGX=31SXCM zW{}cf)3`7=XF%Nbs1{CkW&lJLmr=RuxXFKb`+=uArUKz-`&xreNiLmVZFsiptjtvt zt!9!nhPMq&+b{~1fI~2|H+x^O+&hd_1i5jAkNT|}_o!!er~-bx|Dvp&zH!>R7edbQ ztrl9j+j$=M&`kv-W8;S*W?3gV7bcQ$G@tRqsGC07v(&r~Jx|SX9E~d&v8+hppRt3n z@@cE@FbvWqyvbl@ND=iJAQKjJdRf@JbE*Nk4BdH|fYwv^3`4C> zu9`_k>&m@@E+UCxWfyu)fulsvU9EPh|N^0;63a}IzD=S3?~ zsaDAL=H!*b*Dhi8tyY<~O&WGmfvh|?V+v?G7KO_d`vQB?Hlfy8wf>0UquoeqdeoeH zJ(e*_$Bvp*@?Y)$KcAI9`C?7q(pOnCa#1ZOpg$ZZWop%RH9h|q~=5JG4z-6Py7=6q^>jE)_` zY)HuE(3BQ9zCnU5E0baXg*K+}({0Y|IVV)cl$$QEDz1@jB~wd)}hd_2uzH zmeOlMNmATDS0`bP?T>=XZe_(yTIZUw5SvM=mCTLE%}Aa?5^D;!n%3S6z3=G14pl~S z2LmXrK-H@;dMG%r;p&%<`0Gr<-SPUY z2tXtS;oSr2V12)Aj}J{A;(ga!M2bpfGqMS#Hl3DN#H-lJ>_Kz)0@M?F?-Iro+TMPs z#0>@2hRs^QoG-$z**I>dZDOgGunK7{)N;@!oDOD%ajqhFssT^14S{jh--9W@Bmqd! z8tCZlmb}E{smn%>4SfN+llgEG#XqHJEXpVvYQ@#e0>|N-8$)ZJ+f&4QTQ}WY$iu)Z z@y$)I4kUuA7`-44d9@fuzXO0rH`D*O!O#LW=2NDM(Km%QqixC+I7y|mbh{D1#ITEP z9xE;Fn}oTHPcBBcu3$EY+|#G;6*-7;YQCNZ$NY0@bHU zc_cfC)D*f>%d6KLu~I%yAt(<}lqKTUq|k*OZB)V)v5AW9#sDa~(OuvgX?9Th8;p1r z5LKsXiik_GKx1$B55g9}K`EC6>^kE7wjY5Vk}l|AzVd^`p;5p~{xO~uq#NX44gk4n z*Jlsy_p2hcD0#f!W{Q`WyD&@2o;f_GKdM-3>2?HAuSsbPK>aIlJ7^9&dlxbe1bR?cSh)}K3Vya<=o%tj{iLWexoJUlje>Ft-79G>^ULA&ucy@I)Hnh( zFsPxFbuI?n^-!~1t-GXGRif`Z-qvwvzi|YCof{-^H!zz!+}&Jtd+dN8pO?j-=q6rv zM9Ab5TMn*J4_QTF>YOLlf=)32k^$?IE^P-L&!Y!R6!0tg5mWO4r0t-WA7sZ6ocs$` z3`i@3M5Ga|rvrx`eW`M@ImM4xcQx3W0e7$7WoHlQ1$fzcmvM2^Z%Bl7 zlEc^Oc{`10GGy9{Yzl}lh>?vk2ZB{ZO?#?}6*Q22x@9&mwPFanAl=8oT6Qe2FsNo$ zp7a7%gv5xWUEaUE+uL6EE)G9-j(ol-sW8`JUWx`XU9= zXjqO>&88|#mhKKxO(B%MqOpjyK(DH>(>aQwy!FjI7f#xh&tA*0JHoVkZ+fx8oCjK+ zr{7B8G8ik6(_04Bght~6- z?zUlU1JaE+m3s;R!pD1%1vqBQwKd|%YDXr$m5ZEKh5cyP(Yq>T2iTN?q3jeae&APC z0QpEDV>9m%cbT8ov|DE)WXPrN2JAOG)Z2FPa3ffou}$&eJok-a0L;Qm81&NZot@ir z%pjizDKAM_c$7^DwY=y<1b~uU4GoMVK9$SzDft3PK1ckpJhDh5L5L{O62h;CxTBOJGD%s@J#`AqtZ@f+IB{Av7A=ZK?a^0tzEukxK)UYeBMr=JsN*wh^>z6 z2{T=@bazAdOhC{?DaT!U0sD(AXO>mT1Coke3ef(l*t@X~C%bHBv%je`#s97{^)Ad4^ zqg?$-<~A`>Au5#uQ%w+h+i7heaFXj<)AEfK=ruw-kPF&v0-3y`?w%Xk^f<)m3k@?e z3or7d;1xY%&>5iMVG^qk-2N&p%RNb9iRcqmG%KpwSX~-AT5wxRl07XYRa4j@&?4@! zO9XF<)Pt_EAzlQ;xCeu!Zi-@{!5Z++1a95RmzT?1>VtxEe==K+>Pfy4Aw@gFUzb3l> z&%xQ>PVjv-b^MRf?H>c^-;fyFzZqXvs3!G=#85U~RcwC%hvLg`jd2oqipJub?K$1P z$=WjBrPO@kuzmE8d#-|lA7+fo5J=iCq!S&S?b*M7W>t|wTtD`Fj6n*IzMPnO2t$PX z(GpWatl!39R(;sJ-(MF8$O>Cu%H-LJ0w*C0#hS2@`Q?fB(HeehsT}#-^h}ic)zg@VI||I8m{@U{qh|yHLvjYuWf%Largy?jD`g z3#6b#X4$Y_KJTRq;|#ezh#{U4zqt)xhv5?;KN*hpFq-#0BQhw& zRZj!rQ+v%5Cp7l{f?7OZJSnU}Qv(-kshB{AH|`Kn!WeCK8LCh6Z0jt`gpb{Y9fPi< zkI$3_oMJ`BT}}L3v#osi;1#gG<*O*lrVAdc40say8$z= zi*P3`S1>n<*lsS9ewMmbqk-<_5rXFBbd3wjt23++kixl)8Jgx!iN)v2bvirb(p4kD zq`~!b5$*9+3APqIAR0i36I3hs?>Q75Ql1J5WlNnuWj{F*e(h>5m<&Yk|1 zR`o_*n(S{IEoJIC%FLN)(2gsdW@v)Yq1knG*IGNdFKTAB2XPhP^yNgM#cnpEO^@~? z;tvuV=Ar7HwgKm=HK3sMLH5gTb8Vcl>+2l~hZiqgY~5kQ>NM+W==;#$xTKohqOTomcdCu?c=)R z`Dm+LX}3?x_X>6$eOs%&*o*l#*@n=O>UPBx8iqR(>vx27n|Kl%Vjw$}U5)ScQK#g- zlp6&ncuU!m#q;A?!2spwqVDa)ZzvFZ7;(*s>~l6|Z>Z&yM2c>WnS}lv3h1w*@QG@i z%lAB2D#$rM*wx{f?Q;cW)(6_LZ@L8SsWZU+KYkt06H=}P3$eG9EIP3QtTn8-$GB(M zp7N@Jv;qgfb7PS%KVzE{c^QliVH7_D{`8HicvZQn93W$dM@?trvF_}Fspp~rq{_n$ zyNQvOT-)iNR)6K^QmF}aD1Ds05>$&JG7GV$g$e-JA<=mQElKpF;_Mo~*Y-oK_3z*~Wb_!+A)f8<#L%0Ab!8%Yj2uDOG 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%0Ag(_r5R*S(NTl4Zq>fZCh6bir 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 z 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

Q}||Pm=1tL@}Kx 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 q*Z~*D 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

}#-Gk77#?2-a0xFg3b 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%0ANth!8W^GmEOv)}C3aGa>4Y#KQ#ua92HldzF%_ig z_OKO30%x3>)e;s?Nf-eu;@HyQRH4Z;#MYLWLCS?%w^ z%4P?*8tQ&xAzzo|o>l;ibVht0AqKHo?=dp+r!9oQ(r;8~B_~6)+TeX@+H#`PC3S5` z%^g9BNLkcCq|DrMkcm9WNGF_6#I4@k$WFl;>6)5g{Hg{@65_RJ-8v*DRu>k9aj}_w zDsBncya%_1oJS3nv9%ndv5A%XxsFN0(CtaE;tL`qmwja4YS5|D{^%p#1qw*cGjwi( zW``qPIucD>dy`SP*F>-)Mu4TCnjM|^JQ1=fTmwu(o(FoKD-utIxJ(CH2FCbTN| zoAR{nN^SGQ_ABj|@v1%cE;Xk-Zi2*xb5R5~@`=!~D(dQjJmja`!1r7+*roHV1sfM_dIB*&pIDwzBCnvbV_D(ufR*-*O3b za_a8C!=ELu582CZ3iphq$O2=E&7;@&xwLJLH`IlI%KoL$7G?;PLm7&9d%mJ0*=tMF ziblF9BQImnNYQ94#NlrOOALyHlMBAl=haP~#7hd(#J+&1NlSij)|IUx+e4qF?~y$s`=#2IIn^Yf zigtZr7uWzLXAg{GKbdPA{B5Xcm;4) zJOTxyA}KO$%4rh!{rf%AYVS?3K~=v_TqbT~5Ym1Z;$Tb_<~a3~j+Hi8;gBisM2CT)6;nL5VEeS9O<&8 zSdUONx^;PxGk#qjxC`w#2i%D5600TJBia-%d3~`+9Iolwjfv*g>%%u7i`&p9dgx@@ z1eFnOnl^6fMViH06xn*RKl~arjDGKvT_lagPql@F?^NWGN%PcAnh9>T)}%Yqg(Xv+ zxm0T?aff;{rJU78PZ+IO8DqpHicP#%B<|D;cgL-ma}>Mq)r%O1 zzwhxb)?Y9$)?RQfV>s+q?$IvZ9AtVlrZxe8jUH#Cu$Gf~ zi9H}MX)J|xQOrcN=8wc$wv}ZK=(W?_Bp_UpHj-v~ZB1fAdY?QHX)AdRuf?>z&st7@ z;}`mj&bO~Q=E*vdB3_sBOhjuQMY`n5wDmv%DcFXfh465VCMfB6a4L+YV5YU3=*$6I&00)-j=4+(3_mlA1so-vB+? zdwUbuB|x`!NIF$oEi)=D@#%1qg2AK>n*)obC z=qHvY9I%VAruXB8vU~@xNifc1_{bt$$>JjtJQkOHxiM%lu9idUM12(a>9skijA(Oh zH-UF&!xVq%{mGc&Ln$JX&+BCJlhd>SJVHf_IjD>K1fi z(nPclD(tVCdyu-^%XGXjlN%NWLKo{E>sXPgZiu765y3{|jMP;*`g2cTP86$J%OyMl za+%CJut6KBlT4x(EAZjKqKHntJ@A2QS*s~x0*=5kuSDS@69I=Wvi|Rv;kEcW zm4RGc$tf#ml*FF4vbqaC0!ulyWC^)$Vku;NVT`zd00U=FYZwSBn=o)+j8qHKjKlFf z4B%q%!NRQqE=kjp0Ss`3o2r5t1vtBTjYE+ZVBiQ-d;Tt%4#Q4FYqq$_Jv0nz`Uudn zQ9gn~j{qH2Bwlkv;2=U3sf$pVJ83AwM@VH8Sq~hFClHGhz9HQ(<;yfQ!O#*ai8XJ+ zOuR#)K4LFCEXLtd3l}=cu0>-vql1MnsdgNQj`=#9KwF!t@k5KegQF)5Ds~_#h#fU< z8Sys-xX8d!)*zNNC5$@}vDr0+duSNc#05-0%)*9YqbKWmawj^!EO5kOqn4~#4zZAo zjU>8sk}sdkI`A>cB*ctk&D~9R)W*8-G^h)9zD`1l396YEHdAhCyYC2`6HbX05s>&2 zIq@CiP-NBc9cgekE-j_&y1P@#K%$EYqgiX`;kZ*TyvO0D9Z~`JK!s>sBh>B@+669p4zg`ca7Y-1{ZLwF)L}8j(nt&f!#(5{h z=h< ztdsGowGsHCM1igfylPGePDG+2^4d-h#=e{=R#Mff% z;896nW8AStctGOJkvsXCf>w7@^UCukl*a2?s}K%*WEow60qp#Tu5~ zt{Uqiy#R-1&dfNJ@XEvl=LCneOl+(#$!UQ@N^Bkuy7nv!2Y)QEA#fmfqE7Z}PIx#3 zi3(?Giwn-AR;{HPFouInVjXUSll|5pz7`|ggF&o$ijQ;UneBTPs91cUYsH(3keXY< z9WfRG5YCi__$riOH2~pvKVm@W`l=QkbHzM`fFOEOhuBPi83$zhiG|8A0)(#~Qp6UX z<0Ctrj8aT&9uWFcq%0s12W`{>o#S_2fMB6MiVrtxjtDSBvLgE0^nydl0)5V>A<8#$lIE03yg|fTX5|v$O*zCn9#xMJ}t6=Q1ux1*Szho%&;a zun`V}Yw%&ab;qij86F!!sKT7u4g(twI7*WAeqc@(=rWOYV54*bwKRbXgJ9AqO)$k# zI1%4=-u{K1tB9p~_}99&NHjket&;1y3cJ`G=YuJu zO3qEXu{IB7xL*2kahjt{Z(x-cry0cJzJl42m9I8#x$`MDw{o8B*XYo!$qLhG4NhuF z-@{Mt{)yjtjSigXPN3t!8IO}7Vc}F%sxeLr%*MubP0ce80=!IW9XOe0GGf|!EuIGW zx{5YfR-Bd}weZyWqfa;$3vyhP-in#PKw+2|mVg;&d4oIgJ$Rbyak)V~HbSM-k?EW?g2x(nE8cAj?3iT1KWZZ&H| zy0fY4Xj($ClvwI(g&pGLIDKqXQ&<`n!Dzil>b(4w<9KpCqw;iSYB(0PjM6R%DH?0U-%&f$+feg_&TB8RaR zK8+&Xai|6h@R0?fz(??=S29E2hAoCqX$e->-62y5AEHMaJ+c|ibNF$v16~_Kt|q}J zt$rHo0-6^1q{I$zwLRSclj4UTs)@Dmvw>&v>}s&1+MiR){J;&tibz$kB2s1Uq|5w* z!Z!-hWFqUq3i-;lClHAfuEhnIvF@=RYtBPWDxAX~zhnDJxZfOEjIF>3925N!Ya+l1 zcT9O;_=}K|m@IAA>F$yW#I@*}t8FL)hAt};zk(SzVzPj6nOMCj1Ta!FsY_%gA~wGV z)^a&fWN)$5*swLe(<$f{mJxlG#8}%r4~`&N;ZSXZ!J%~7Tu{#jK!nMx2OJEHvPslp z1wc|n8@H4ZKyVO${En?yv#jMf5;YPFBKYuSQDMyz>U0{8BfZdW%=JP=_~0<83?I6F zEZ~E(nPWrXZ_f;QjN_<^0Hy0GBXv1X8$J?Z^J^A+Hr&n>jWGkS>aG^gRz~No?Ek&H0RqU zvmS6vFo{~M07$yd)c2SLJBq{hEjT(@{h4LA}hp$Kpjw4hbHSysFiosi2 zh}3n$h*d7XL98pWq6s(f5$Z~1Vgh`^N17_?PHuzrTkw$*n|B z-3qycQ(gBl4&3nA2vQa9)OHx$Nljfr`4<6QCbCX!luV!&Cvf5ZP`YQHx>q=LKW_2# zo%8$Y+`WApIIv7uB<3R^Lso5m$-$*SXy9bE- ziG?I*LWZ#~s4Gs|kikk66Pvw6%`Fl&v6iugrQa}QNX8$OlNF4NuwIu3&In3G!lD9V zESXbj@L5m{MktXD?= zSRCuk&cQyX`&ULagM}G7D%_}}co=l)94hth!=c*C3Y_tn2@)1gDa@pCsZmqn)UMfk z!f9cwev(WQj%;)$I<~G{kVlOekkQu+p76eM5_u^Bu)u~&DC!STR0Ye}l#+jF(9=kz z5R<898uK$N3;WLGe$CC>rqh`T7lo^}`}5P#$K3^$cVvk~RlG&QOA{xIasxK(5{1NS z>Ic!LB1$ZgHAHH@IYs(rSmji5WB=?2!A`>NOlX| zZ9>r&KR!yF55%?U42!J940(FOph0JvtpH?&?9U|eJz3&xnemjxYJiuNO`nL^K@avG z-!~MT9;%78%#b7qz|F4v7z#6?)*3y%nGi~G+4SHuB2^K)NR_$cEOs4*(U=oWWIgV> za00bBJH6!6YK%d8tT|7%64?zq&N^c=^`%)ngDwX~v3hJLlTDGpIAN5;InGVvL1Jz^ zK0;kbW6|eR`(mc*d#YMg&YhqZ;)Ce1CaxBJoT?7YQA@kvcod=dz(CD*0XDDK)uun{nASxvP3!((-O+>jb#?^LAB9=T(7g1X3adZ_^b{j>`sy4#o0GYH% zl%`KqP)+%ED(L}Y7jAeI1t|-+M9R#qRPppxZEH?!9VnuNr)ef66GXy8&+nxx-Ar95 zc_bt}oV>6LD@Ju=WWx_d?DOpM#YAKc(2MRe?k!er@XNj-5y8{X)AQK`~Bwdj}aOxbPCSAITdu8w93cB8QTl2Of zmI;f*kcdACiQR$>0cryoKKoZGn+m2{l&yU85mQzx4Ozip$_-=$i2I58G9Ox^W02HB z>hhe4h|ME|AF5&8R4CYc{9Av7CW?iz*oWX;mvYbe_jonqm4;$hL5Z_zVXf!aqK;EW z;LY!sPij3VnS3&ln6WN&+cHWgNxwDmgc#&M9KEo*x^UhqEo<8L9wYvVW{Fi1$b`IZ z51CLv(u7PJ?dn$WZCc1UEpsMJk2U8eWCZ&%G5MPy<4c)hUh0aSiHN0EPJLumq#+nz zQKpHtAmg3Lx=wmMWWxOn*qoBeWiEZt&c&C92G|5C3%6=p4Q{1zf>DdrHnDZUX4(nW z;_md4G9k<<^^OD`Y@Z&vxWaeaBOq(p4ghlG3Boe*B>_3kF8ecJ+!XHt%e7nUophle6)PwIRsC zSi#BgHh^0ChnwlVqX~r%Ui?A2WM6z;Rcv4Q{k2VjOlUobnQS7FcsmH<;8C=Ab$Mh^ z8|=#;y}Yo0b9c7w76L0r_@hl@)BPxG4BcZuC)FkyPapwWCA z4#pQthDgJg0=Y;dxnLYRq2M@c9R?p?FU!AO&4br1|uiv{!$36d3v zh{a@x7~-V&%O|rQh+q|6ItiH+RxN$M!>e#j`mBj2M}m}zBj;Dnq`PiVeA?fTgQ99mJQD=3z<6jJ_yi-6(BV_^_FHo0>$=@V@ zU&0i#QdjCsMC_o4YE$HCrXiTFf66)%$u3yWdR`Dh_7~&uY9;Pe5OKsKBuG{`B+)l> zsF|MwrlnDf1$UXudJrHS}?5Y;G zE{F`KmJaogI`VibacE1&ix}t)Ot=k5a1%1UJ#IqXNE0{d8c>&vw5VcvRrV0O?Xkm( zCfta=^u=KKo)`qOoW6`H)&yOwGZC@5bUgo1?fWfryb)*m;#&~7^kCkp#I$#mTA&1u zc&r4;is)-I4ayC1();C;Sr1kwm_#jB;$ngiUGW&y1!wz5?_XHnjnzr}_E%tKc+ZZNGS_cHsY*aJPCrH&=ZGND|&-CaK$4f zNLR#P8)mR9UCXodHTNx~$b{B|lnEzNix)_7N~{cF>IO+|a5jI;zJ=8TtBZS9fR^^H z;lMo4EMGQNujoU@x5r8-ENOZb$K{wlT~pGcer|19h83nqOUq5V5q0@&;IQZAD}tO? zaR;9&?Ne9sOhoLU2cMSSUp;g;r)yd*&Dw|qdVvbY;!E8~)975q|1^7g01aXpJ#>Pw zMH}Kpe$p8k6D(Wg%LLa0opnx3CW>@^m*J}yFRb=jQqZa%4)l*(Siv>WyZI zF*)LKLc+43NTA(BQEHxa%}JYLvI8hY5q;L0Zv#ca9QcX(>LHJ!lvpm!2;)vfY~JJO zVk$E>gQ{=jX+B+C?y|uEA$^J;I3kd7Znw5GB3bguz9dH(#kJjMJel=CrhF2SSOE{i zlG95;tP+!<56jGsh2=fiImRY(J3<26M3Ka@2tq>2vPVcLGie~ihmSE!buC1T(z%sS z8A6yIYsyW82-Ia_@;A#r-51q0J`)k^c8;z5NqxCf79ksWcn`l)uUzy_Sh#J@BP2*x zI8@tWAS8`ijgqaV*Cd3#gB{u6w+(W~lS(tc@5)H$jlehWs@fh9wMXhkip>)xnkp8pQ(J}@D zhqU9k(*aN+)=?lNQg>=mOP#rwtfAfe_tX*OMT1LIS{+1FK6^UIq^}Y~O|sjP#5Pbwq-pa3zrU zP@y)bfg!)vj4{N$sRDg1YU#dPh9O<5E7CSJM8Uoh$prb*ZkRm`B+B<*N0**S-!@b{@NK>;?SSRKupvW2R;ECMz zO~`C)qR5e}P^3b#HWcwQ3Q?roTQqI$i8{d?_=$yb0M?0=ox0#=B4YD#o>87*DH^o? ze+@-c1^^}GqRqGsH6Sh#yP!xUEvir(@nOeT(kSuL`&t3pCby9&DxXv&_Q9N=v6=+w zyPgDjA|wkudjG<{lTSVl$DwoW2ck72Mb*Uo2!_JFQQi~zE0|IYISIt{mDX$Z-Qu;Mf*ful4Tt)nleVqz^dgN@uU48iNj zIU;!U_)pi-7p^L6 zJg{%q(#)=fnQeP^yF*fVno;Y%T+K`2ofsKGO}KH&`x-8%BJFFUCf%$lE$14z-H9?^ zqYK)CuW6lVl6{-G@$?EIA^WqjE78+uy87N z$-d-9iM7mq%A__5GKG^7u~Q0x?*pQUPZRC{8T9&_*>V2rnOvvYL5*|kwm_mq%ETu9|1 z$3l<~&^F=#mD?Iophnx#e7~DUjWEHZCJ0xUR2yxe#z87ZO+m>Wp++XO4%AFK5t$fy zo3vW8W0cnsQjl+O`~o!vz_w0%FJD8U#KHum$b!)$B~$=uXEXArrZHbjYrkmksdy(q zSHA_MG;<9cZ=#)mkPl8sNlULfx{#*@DJijiY*|*u)uDLK+OZ62me(lJFmepx01%#t zPc)%@ygtFtZCGt@!|UWo=(EzZm%m5b02q^V3TQiEn}SLx#TBTCbUjppbeT)(GL_$7 z+rh|${7)v#6HFN934zG%gk`LMHee!=cmb7^aIU=5gcDS_TkrCM+W|n3-x`<&<_WXJ zt_W6qN>JD}3q@W{tT>P^tGuUORUVR=!&<171~vgCJLJe0x!PG@P z6A_zV{~IMAmRo@uZP;SQt7NFGC)|)alB=Oi0v((ME_v((X$#kCYYpV5;Vf%I5HU-m zZG!8;&N?Sni@!5S3y?eZt!I5?5NthjVdq(JJDvU-Yn;GK&%02jCQ$MvUja&?V5k8l zV{5#$G;H7srplnCi{k>6k_3WKk17)r8$nP?E3`VCxfYb71xhKgc_?v4e;72YX;AeI zg%Yi803l8uI8wQtz!eXjAYI{-#OKVVG>k1M%)^7%b>)KhrPP3$d*K&Oq!usSjzPG+ zAAm%GqZW7jjpuHA|4awBD3S?3e;i4up%zTZ#jj;8{6#!E(vx- z+Jc?hS|gn(Jt@@pm#sO$^|+n&O)L_BXJo8)j1oNx;i$L3{JCej&NWe3GiWxVP4!Kz zjsVG5gaxM)%Eg*MN<*U3%CV8_epv=2T{{WzPN9fTjTU**IMNS)(NY`z66vw%N$S=>V_I9@pz6`Ii;0hqjWne+uo_8 zYvTe+lH7n$wCX1o^6Sanq(xdCUHsF6l9X6FvKhd7q?>0(iHNlbfKqH2O8AHd2%*h0 zSm-s}P2iFsN2D!WlTCc)TDs6KsMDiRO(wV=~Y(m%=--Is&C|F_w?q{DobOZRpBh5Eqv!cS=jhMsB;k%;D%Fx&Wml zVZb*i4W$MlADopUHK+Rerxqxs#FE45qV0(RB{ED}Ko*qbY~63)LgA+0T!Yr~W&v%i zarCBEIe{x4IzhT3{@Q-S;H2?wK>;5@M<%o$=u9{faRIy!?Pd`}#VFPzs31|`=#x%8 z66FMQ?TIykagI@#7$i$89*>jCcbXEHQ-#8@rprlas|st#s>*E|7U9IvqgBsMxUsPo z>Q`lAVgP^>N0~}Ts|v53vWUgX8?HWuNmX$F5or|`9~F21p7x`hvy%be`E-ZBsK% zm?U;2z{5SWhKJy_36I3)RHa2=Be%g`2oIviny`jPjdMS-kQL9;Pl@HtzA$c!8%c>} zH)5U9RQ%8|sJU)|smHd^hT>yLM;}mA-IBKEh~PscE20<45{J^g&&s&tsELnwGV8=g z;UprlBE`~yC2}8hbY`gw4*ZYVanjO()rE={_gM9|1zR=iM47~t2ughURzOL(u%v+! z9~j0ImX>*qTxX#&l;}b?3AS)z+eC@LT_z@fvks&-vh*e?gIGcd_6w3&t17s{i1bR1 z$TuR^0yyA5*pblrU|6=0vra}D^&_`)=?Gyy)c5OiymDpdD0;gf1)X?@qo?Nt@Rhv?CE zo4jf>5uggCr+#97XOX+tRB36Iivz>BElwsSc7POf3q3}$hGmt#VhM`y=kzNTN~XsE zx*DM7g&;*_D!h@vn@mf3itc0{c$4*&G74hbuQICV2p%~8-!Z?s^Gs^A(SDIY%{F0^SeSqiSt0tc%pFEFYtE`(+B&o< zE#n%y4mh#WWlv*}Wng;T=Hb6%O@xq;vd!{OO{Xr*$s@!dHjfZ~=-LQ@Q`jiSLrWSy zv!t_fiiy;P8#Px1B_drBe{GM4m9MOc;~kcM`GnSik_jggiMKOOyV6ufp&TIvhx@0@ zFC#$fww|=qeDiz?Wn=;qUy>CZNvPLqIugh5n5U(sTVq!bR0b1WycQfu^Jw4kC5DOM zpJ0+!PgS}Wrv)Y{vDteADx)I9awM?78wL}C2X+yLdZixp1v9bHV=d59Xq(u2kuv#&B5`-d z>6OA2UvH-;Kx%~J`^PNq-HgjJ(Kv9_zB)-XOstDQhfBf8I16+H%^o^EytQQpemY5$ zs7ed7#?En;K}VOS1*g(HzIVKdoJz>XX6U3=NY~u7Kqn=(58!r@?wf8Y^Fy_OEDe*> z?hV*d?h{OCVXrQtskz~y5~S*(64%63=@nO%Q4`}d4STO!(N1sij04N_)NKNa7p;cj zpu`l*gXM3*sHoGHnf}<=jpNH;$~owF6#!M-_ell={|k$83ON^X3cCe{(x>j1IE6fc zZ3lKOoP&M>)f#7^HP1viZcn046$phu9+Tl(A&p5W0^E!~eb;pjEo$yGqzscxj~0@f zbK{gJRG`Yl+!EMrQyYh7x|(DnVriSYV|5;^jDjHxlfckMxw9Twe*EV$F#28f->3pt zJVb(Yg-gy@c`iA;#BNMqqZKUT7>cH`$qJ~@nLJtqB9C_ZO^@yxS58;DppYNk#>;h} zb5b7GJOfIdPg6W2NF^FOM7qN9^ZPa*Mfp4^z-~=hsO2Wi64NHG)59;g&XDD!kkK-Lun<{*cn45R=Oq0;#2Bxnh=cn z6a}%cM048^at!c(h_Y!tN-(7@99rJtL+nf=-mod7?_v9$KL>uPQe8P$pmAx7o=hG& z<9KX}=%pM9pXniN>8n!2s>$o1g&uAJP0Z_bGnL;DT4~y*m@(_IO%Zbn6(>>@*r$|u zqfitcbx8M6EHCZczp{DX8HglslV0mZ-!%_~XA*6RiQ-$nqUb(TR@F1kkW0&|#!gU5 zmr*-8FcX#Ztz+WLFz=>`5?kvh7S+|jM5SR*X<3y)Y<~n|aj2D=sDiR8(lDs~Mnw_? z*^rzIjm7W|uB3qksi8Jk!XO ztZIk==~P@EwiyTH2hM}b$CZukTd<8w#Hx_|E_ezxI6gAZR9E%f{!5(fUU8~LuvaZ! z)D^Fk;mNM9!o(YRY81p&;d&0%jMP4rR#%NvVh2?Z_f462BEba?WG%K=Gr<+RC+~8| z%}mlsg0gqxYIw5V@zFRZWa-n3z$uTZAaSuovVp>!OZORABg!Ya9!zb(~Eab zIywES)RS%1?v?$^OJ}U$TmuPrtxdwKz*FI&*rfm~iL*ScGUZr3BQd$K9E-Gw z7R!aOvLopv^CZ{@Ke4DDXIQ1>SXE&;mPPEKg7HFiMe3#s%CX3b`v7PoU`2~HYWPBX zwhYPGy5m{8=|pWs1yUky;aa?p>smW2%UMv46;E&-kXq-&BJsmb8McA+K7|u9O-??4 z<*YqRXYArMuJ&bVqH|)91Wci1N5CW?Z!AlVRI|c@EO3}bSOzA$AZwW9n=~tE;)1Ly zyIDXb0i z(wK#Su$y7T!irM@Qx+l{20S}wao^%9HT+)#!J2X1P#NYC+zq8+4#C)(^K$hF?)o#C zbbGq1E2XkgCW@9g=qp07qsN+bBgzbwQKFA7u;iUhN158J?&_k6iHObC@OO3nSvJaq z3;W+d@KDZYXthSDR;|pP`Vc}Lf@?_&$3)VIE**Os98+6yYff$*u8=M)5VJJtq-wDP zLxvejH)kyy3r>=R*Z|OW6bRz2CcMDE)4ChRL7K0T{iMH%@NE?5(|`Ib*-~#)X=5(+6@R`Mvwseq1~sf0|qyM36^M)WdsW@*V*gNsJ|d&_ay& z7QHY?SW>b{zsGwDt|v1DfiLqSEfIvdZEH%8SPZm;? zs-21!$K=u%%e<&jqQ%qKPSkO!PHgDzY`HmW>(f0n3~K5v z^fRl!fX6qV9wM@4-^^ME9ZpY&8hkG$y@HP8Dc(uSdxC`V~3Xpa7yF zq5$Mv(?hwgu8?eR`VPHD&Y6BvSmj^m z=TZ1Z%*V5~(`OsLMeRU%ClzakWL$`5h%FJ@5efsn?eOO#p{Yry@60A1%+4SNq^^`} z10+8+HXi*7cT-qtu6l9PBk;xI~Pd`Z!Ns-ntL$q5gim7ur zYR-7)6ZFF?P$;4b3M7kRQ6Pb*+JqT)(}RMpt|Xg`t1#$2Y!De-RUS=zFDEOpH{ZRY zTzQbZ%ufJ9rZcVF#pYtHo-H)Hl*d@-hxWmDHy>C^&=|Hfy&gypYBmh9rsw1?Mg;mn z$e{0u{CNy9J~URVVNz}=@J@6^RKfEyR1Fa?(@nUpQJ17amM_A04W&@G5!!(Lc-h+aSZ-5Acu6rSxP z@63=8gSM zZdfYGmZD5>iGvU?L9tBnsS~?dk0a7sD}E!+GZwu>-Sx9x63`6B1T=v^M;O5K1gqPK z2Kqj|<|WqD0yVbB8HWg@WuS?_Cm8eN@aqbTN~$3Q5Hnv}K}g2=0415ybz7RL+aC{R zkzr&ArrZdMfJmJMYBah3UkC#ouIf+Y~3nkWdVE1jHA-(Fl#BDm=00ifhx@J1_cr$EeCs|P~v7eZg9I)u|n~VOR%qPQ0H}UY_z+$L}G-T z5JRKrp<&S0b%$t_|4H1?5%t;}Vh$45$;gAfEVUAiB;!nGK_pC&O{8YSRk$s1_1yML zXt(w;HnVsuG%#i&ZlkIXm)cnP<%fnri@1#$EBp!vM90C2*nJU)6<6u=;2y6K$!J2i z>34oj-t&uZmX2_mK0}|yi(*`5jg=Zo&?tDM?|4k|CNJR!*h=Uk4UlKyRFvQMbn*Cj zfgOi@&eKDmV~pb$ri-+R=Al=*3DyK#B7JemgtcVX8!wfvd{g6%n@VOe9|LPfJ#8-V z$86cn5+}uaW5%rWgd6%@EE3P&anQsgq{|vX_z@06N{pv?j96-3@+=AY489+`VF^Wf z9MT|2Q-!?hHtfXu1^kIb;>|l>`K+v8VW8v7tYhn!TY>7L=^``|>O>x7e~9<^ne#Zr zBbF6u`v2wa-I^QCm29zh{|Y^pAJp9vsoRs|%Q>9L1BVOu6e{fDpDt`HZDFmBAWW#A6_97Id_Z~SC&`Oldk&62Z zGOUFs1(GGnu)Io{9_LM0;}i$yGEmC;-#5q2ZoSoekAK?4QE zEgxBYF&B5!%VMrv^Ny|Mva@_W-UnXfo7(d^2dSRLa)ImL52Ry~Thf|+obt7qmUqVg zZS%BA+k{$l&4zKjS{Rx2Ijm>a>!Pe&uXP*!&T^J_iSo_RKb2WLH}ezD*+(Iy_u=yV zs^nF2yE&~Mx3Al?R`~zDe?#TJuFkmldhy>j$J6$7-t5ksi`@!#*LI&*QXv1hf78gg z82f*2j=RlkDxIk5(iGxSu83XDUYFyvdYk9?7rX1+irv`|rYvcOMdj;gZTsIgFUQsC z0-5+9xWTHK-S1Yf+wZHVRomE+Xg~TcljgWzs5u(tNxmQbr*edM2chqJ&ni)RSk6;F zO)7%K_eXUE@rk003Ybv(zL9GUs8mKoHmUTuKAbBaq_FJ5$$6#NSe6lLnJ#57qIY;{ zdFgq3@O>UFy-_gz!7J;q9jY?t548tjnafT)fEp8g(zd+bzg;{v((dBv{qVY7ubz_N z!vU%bHqV_4KFy60)7UbK*}mFjAS|<|zgrok45m^gI)0#vQ+wC|h>2?mP z(d#cI$D8Gjr1GgC(|97 z`jpyizsa?o=EC|~cr!$m16y0yTj{pS<_o3gLPQV2TYyzw?l1n!@o(>#30(ZVIj?^{ z;+@*puRpC}CLxLc;9NRLG#77AJ{F2;1XIV%DG@qJiN5#Qm}J;r>@ZfzaMW~Lk>)yN zy{$e@ln>CJDA$fcqR7k93uX#HiU-pr86?ZNA(kS#Qu@3*lK%Lu&fFy((yYmhopyzWSLk3CLFOx; zo7Tv{D7>O@y$8469y5SjxfZrXW) zM$KYwR`2LzGCxT5kFshP;lt>K_^Ny=BZ!Y)=#E2om3e_^%SasQ-uSIuGmR)s*+bK6 z9NYik+pT!ELJOmvw%x+E6WbTg<|61Cx`;kMaFhJ~r?-76yCSAK{h7W&MHzZ~_F+gS zkK+@w_Uz{$Ya}9zQRz|ue?->z4aS8?OewH#&^3Wf9!p1!#?#1Yofb*MY2@^6t9g94 z7z)AX|6T~~07%4cwl1NqKsz-qpClVid+}mUf(gN1)~fHneb~9fR)HtOhYCyq?uhz^ z-sb#cbT&%OHm>r<&5(W1ZU}Ur4!A&f ze<#q(^YE!?(n4>(wh{A9-HqHUythRjA6R@~r~u7C#{`#u#MTgZb+B7(~NK*uR`2NgHnT*0eKW$CyO&sMkSU;;)VLz~Ie z63qY9Qt(grQOmp!B2o}q=sqw@LEwKce^p;x(k6w~Ugsa@#nJFf4{Iz-z(njgm=hZy zkh$nzzIoOybGEy~`}w$TdO1l$*URHViQM2(^JRH5r}Qjvkp@_to223NdGq?(uC>M_ z~t4Spv&g6ozm{Ey!Q(VV(!Dw6B*H>zAI9Fu0Qj>aKQ(|d)TY8Xmb1glT zl9bv9)6-&@+O2!}yPLA%0mTE`q-(31nGnGi(|o_<`E*`AHVquT&I_q57ov>3lhxVX z^;I!?nvx*&u7M*7x+y7^TlD3uhmTqM?xVBxeT=9#AK=S?78X$QX5F$_NJ_~|WBmsM zntj_&=%+U37ug()O&~PS-F2X_Fyk5XvKHw+zWTh#FA4vt#NI*^o3G9F>UXXnU!%1R z7kz$MpLqiYO~)$4*YOO$b$vC8bguB1rf^X*-s-%DOG$+h5iO~49Q?qn1j`hJRE&u- z&PY!b872!$$s`1#^h)ielF44aAxz}lA34bm8H*1TPZn0w!M`aypFChutZSAcDYU>v z{z?TQ4XxbOgI2F3Nq;+jqJ??a^+NXM=grZ_GR#nkP5gy+vp?Q)N(<70Y6{sGRX@5{ zr4=Ewq913ZX&qR_6R{`)3-cnrR7W+3bQpUyGEOG7m z&OA{5Q9C*IR%9~jb9)Wb9#|KRhriiU&~)@IHToYMg=1Ra!pKWUgwbf@W|57g%*8gz zF>;G{ika#KF;>CEw&z&d6FQHysdnci?kIpJZQ-BMuDoq&`@{F**Y8B?iDZ=RScxZo zX^S#*mo|>Lt(1)KY5z#=ElRXVqG(=T!c`KXgl#NnNAW*u+lG`d?$zTgnl&lm`G zyEms7IHZ7l_>h7sVz?F0QfPgJ#5bsnwlF6hbtpJ*ie7L&Rnn$u8v&`{{*)w4w`x%H zDv=~($jC4zdaX;#KrY!4W3&)&Va>4c;E!8aZBbBlvw^P`Oj#Sy+K&Mo zUFpL`lGHA0UTfG3!&^kFOwcb>nmKofTOXOr1h?4#i36Qt$p5+={M3w~x5%eCBcHDH zp8vmI{Btt+-Ykf$^`JlFTRBIP<%K;b*`8t=eZxaUCCzI8L9=%+`eJqJ>7HW zEPdZpS@!h;5kr(5kR2>1{%r#bJ<#Y9-4;8e{C837NoS-3|C&YbFuq0<{-c$*MK(-T zruHzC2djA(tC#(8^}l_TU4IA8N_5zIMDnIW2VEp)5up4=~Tn_HThxMdGV`ynFh zfd`shx-E8l6Zht|{F|odrskP(P*NC;7Qgtaq)Asd;YD7xhMVi!@ zl(w`>{CX`$je4d;{d6|6KT!fPWJv#CXjH?#Gl#q zjS*aGs>z%-M}+wHT%{asDH}&fO=S%6-_3Su*1|e}P`n$X#Ap`LO6i z|Jzx+=n&Q=T`A*2ABrBY_6-?7eOnzqX6?Cj*4{Cc^{^&ck|*g=<~TzfSwqw8b-(`d zF?-Lcv-cjL?8k|cnid*zj>CI(ZIYti!pG=vBtn%oBWTs zdtRNpcR=Mn4iHT1A7TYBgbeJZ#r=BRoR7bMT>75hl7g@iqA3^!8!_o3f{jVG_3LJ} z`%wXShMj$#CBuBlDDKF;3}G+wPPG~v!MZkef)8^axpnqFNtE1=7t@#7N{&sE!JbJx zwENZTZgc*azh~F^x8iQRe!V1SW+eMe-r?weeNL+VgRqS^+?~4%0?qv>?$qqd(Dw0c z!dUoBabV={xpn?7355TsqqNlfk0XC3^ic5M_Q#I}PqAVXL#-}R%IxfFeBpCRmM~KI zT=4ClPTLpUNBDTai5s0>0xl1<1V-7HU#ySz$AsT;^9bW~AGf|v_QkQGa33FXTxJ_T z!JP@e&#TuT@b;W~&Rq~F?@{s*!#XJZYbN=yG(O-8Owt`0+g>O4imZ|KEAl?dJ*5wA z58JlZ_NBM!i*rA}?SDMaD7U1d|JH}sFmDGx1wsADp}}b3lr%kQ~A^8_;tJ9 zoPOROzAi6untk533LE2OKJ2fQEXVRi%2>7X((wgWn3TVWw;BJ-}yvOPiik1kj9b@XO0mMk$lAy=M) z4}EqwwdnrfKjK}Ho!9C zpV`zZ+jUahaXgFS_bn9JJs7H_>;P2tn2(FoGvF)q@>)SHK95j}&rFUZvqYXt5YKGM zNIFY%Wj2zbXkTb=nt8<0_9uHs(gsVr^=%A~6DLlxIaan$(tZ*?bSdRhs}7QQTfpY3 zsZ9v|<4l3OcNp1I(!~6c%y~^Av2p}^lPrYSgqCG|RE#IwD+Zg-4@Gr1C0ytqCtP~6 z@6i33go}ibCRsL|r1#75)37B8%zlH*o3YfK*QjElDKC+hn`8=SEQDHHxOX^CY1Cjo z&GbJ?lbCEC$9}8C@m(`%mf}W2lg*G}TfA-*ix40iSB*WM|K;N1=l`yUy8n#x4)Oi_ z`{P*yBpA0NE`I)p)oCMC#N57ZPM81njAM$mQ2uGR-al=3FBd=mKil1Z*`2l?kPccJ z+cAF+yMNffKK%)1^-S>3F@rccZa2q2!Aa&bR<(Z@r^|nReBJ)-ee)+cO8fecaFn9_ z^IYqkjo31)#aaLSVxIJ$IyDizsXJeKT(IR6#SR%+xC3A z_oqI+rN{@lU@UR%f8tZv#{aH*#kk2cj7( z*;ojyfBwtA07?EfI2!0eu0v_hH3Q{eFqPe%upN8xDVz;ngvm@r2k#EF_GAqHUQ++p zfBo;klfMm=2Ku1Wq10a5p#1yqa=7}_8+J`EJ~f^OvkAo&2NUfbbnT7}^lFU>{ORct zz~O9QBkTg^RCVy^Kx=PHps$yYo9F#;qp;ygz!54&?pa;ep4CA=ZKNDl>(@(hb)ZTF zq7H6dVr$nK5jWT#si^83ku4I?b>Y;Z)2IX++p3)x}qrQr;Dxo{raew^Ms!xHGCp050h@>6%MT>GRtelPOKAJ6lu_ zL-uXv-6fWH#h1}wc=W)1#8`;cb(*0jo^p%9WEW&R(N0%Mwb-TTq&)Eh>~R~<=yNk zV8@g;1Ob8wmvoP}W>(X4N)QMF1d)EaJ{#rJ=}nS>zioab@aDm`6T8ykJ>>Lu`Lfw< zj@Z0XwD4ur2nM>npV^`F@#=imvXY+`PlI7VPKvji|W>9T>9c)Cp#gdqy z^R6OzI&^+oxwFSDBdggi>hjL}NkQ_Vwe=EkA6#vlKQlayq*?JidZ>B^NrArh;`AGZsrrI#k zpb4XBvSiAWo_-#gMSH9T=Ru5_)1>Ig;GZrQjm)BLR%RZ=m^n?F8JWAJt5GAf+Da?8 z2xIJmDEx@@PZx|5zt5Z1(?;bhDy(=q4ju)Kn`9;3Wk}F(OB^Fuk5Oj_Yh>6XCzX*N z63(EjF99mf9#qKyC2~7m{(Q zV=aP@_>l!}QpX-M7YnJ%&Vv{?r(x6~C26y9+6WK(?M{~+$f&tH z_!0r@j&VkRlXTisCXSnCkSv}K*`ok@Y-u-X^E^SH)+=3$BE{<&K&@j!%n>Pp>+KqzBGN(9tK#%}O z+IG_EZAi(mke_MG%{6HtswlDNoy~NBQ#v3aX_x7pxa48m6dr}dsF??>F>u3NSR^ z8Y(FzGCS#iwkeG^DMjF(Tm~L0(4>Bna%T%2tx=%elc7CSpothtdYdhDZH0mzz6>70 zf<8_IZ<1POMTZ5k^Y-=Bw2dyL<8KQ67M^)eo%<(M&>jsYL*8bohD zeb9uFMMrK(7f%|MW4T3h`2+ z$gDP~$}PeeyC4cbBJq=UWWx`JWkpnOO~;JYHf12Vw@3DHB-YGD zbPVVYlP0q4Nmlm&?QNHIa#i#jM-0h)v)2>YgY3%@QP8BTt492UM>Ieya4H0qM?^&V zkZz#|C=(vh?g|h059QdJUV1md_@ze&$r z)lMYq8o7rh*)Gn6>12SC#+M#Cs-RG^f8D=muHD&!dKmIfPD$i3VK!MjZl7LsF=CDu zu#f;pBvE?&r>60J`wCU8lOB#dR!<9CLoe=4Ev&0>KC6A-ecv8*Syx;Mvk;M1A~4c> zJvFW0*Q%=WsJ|_m5r9Qnx~epc9qRk~O_Udah2M-N1U!gEMh~t+^Z5N~`z*Wq#gWjA z1UNGCaV?t1?|8mKH7nee01FX_M0)6v4aw|tAet*77UE(_4t#FX6D>_u1fV(+o{<1Y zx}TnwkOY>NqAezYDFIld*QLi#nxx^A80b(ZjkiaRXpr}$8K%cZItFD%r|9Aypv!n@ zMuKvONiV^SxIU3{>|s1i1R2Xoch>^r1s&s`v{)$}ANGbkI6-)@3gB~6#f)LD@NoaY z!wJHJH5finDUUkH6($ida0!aAAzhIx-e~d2W+OI9wSS|u+}pG8aEK0argp;>Zyvwn zI*#tAnInN332>x()3XIl6M8dUugCA|NN`319BJvwVrVV008i_0U4FBj6Rt(GzQlDS z*&;5ECOJ-8EZO#v?s|{O!JXC5*pd=Jceaoob^*iGL^g8$8B=?bzb%yLLLq6ap-4X% zleRioy7V_8DFIk4MYR8{SBEpU)>Wsex-+InSS;D{Ej?!tjl%{{`J1p%KR_WpkL$+Z zdnm3-6__JqDG6{ySR|A0HBs8eawF4L#?~j=RK~J@#++65%Gc&-Q&dRMWg&ft>%*+E zw~3kA>hX1RX_i5OJcPAO2I7Sq1bR~^!%QAYNUS7)Gt#JwYc@CJT1E|<-`}9utf#^xkh6NJ?SyVJgGO6M!Ni`GiC#YPfO0y8o$RcAfBKsa( zPYIl!VO`&3)%#(Zu`-r4jaU%k`NeLlD*H z6=tbrMHC5Xf+^RA4oz`#9FH5ZlhMeE>Us6IHk0CIj5Hb;jK}e}T*)bN_SxHt@e?m& zpwaHg1{JhoKFq)t2IQKSAzp^B(U5_$YVi2^hYa3U+t*hZ94&Jp%SH`k%qsN)uR4$I z57(AHX1P5c_s7hz1W|S#9r+u_YpA(?$V^_sd_Ur1UR#VckTI;(3!c5146(u!iE!F& ziVW$(7{B_#of*hYA`8djlMKE=XARFK;}l$(q;=qgmf24tUEGsRc-xO*)6R-=SgpTc z>?=i0!e{L3hxcU99@~9CECJkrg*`aJ*@EYc%V+mwb06j%CVb`Y*urX7|61D`LNnKa zd~r|IDQ>xX7zB=dkH_BkJ6yZJTs^`z3k-o&&Le4LKgK~_6QRd7%lb6viV=xXgG73* zmZXM6`XF5-_C_@1 zeUO-lb8%1Z6W?-GxIPV|=!m>YJ4@sb(vspKJ!Di!h9%osNn)sW6~UR*RFFPMN5nzH z9`_4xlXb~y8eo1Yq*zK^A$-8!KfNbM;kR7vPHF^)g(vINr^k114_#o#wWD6#leNli zvM8DITR)d`mD4*`k0alPH09pJK^n$g<6ExRS9AR&c0}G`0IO8FrL2Zh&Xs&|PcEb2 z#f_QhR`}dpW#(;Fkir?`6alQsgd|y!9LxNKd%4K)W(Rw@szDUYI|^gpML~fR>CM#$ z!3KuhVEf?mzx{sx?3{B@W|?UhS9Es56$>jf9jKl*rdLXXDbw~dJas|D30FI8IIQI| zeD-rz67lMeiBPV5*kIzyVP+x$oQp;U8 z$F`9+Eagg2&K*ECkmt~;!g5>+-*Sz_T9~5ZoY-jqWo1$EY#Zr*Tog=Sfm!X1p}| z)h#hLb<4FYE3RC?kss(M)DOT;H-~vwIrbB({D_=!Bt@vE45 zQn!1S0M1LJq6~>xQE|;SU<#WTxoFtRFb$w=EGl{!nXYri&02;p>pXyppEHq&S9io> z&n;KzYxky9^cv5;?ZM4BWY>uKb+lO#I78#<5xt4kb3CRPzh*#-6DsyzOdC%n3(|3KEk2-kTO*R z+Jd&2OTh+sp7BQ@XB(efFW4}~)m|&hFOTJ{w{#8hQ$`vQJjnLzL>D$DGGAcEKebj3 z;9N8+_CAQ*nyAbMo1z$8^QHlmjYUPXB>iuqN?X}rR8e!54I>NUtV(nY&19A_QL$~A zZC&_gMRO5 zzHemPOxNX&$vh5B)P);1xPDmlZHv5s{;~w|{1^?ZJaX&pcB)L=ARp?}Snl{Zz*c4LnrRK;+$=J72#8cvUHA_=z}q1Y;o|39BqFvlNsrc@o)39E=N;3x z0|F*oBr4bt$vagME`_#RzaP#1aP7w)MwvMg{D|Ss+o@Wx^V{zJDyA_TZW_XQS!7fa zk-t;5;KFGSyK1LXo`QH7<>o}>jOg^+GWvrG(}VStGYg@-N@Vn9($IAq`Xf%8W6lW5y~?bWN9E|H;kJLOkCey@=6m4k)RnrjSi8) znEgOxU2N34u5A32kw!%8AWP|~ny+Ji#(UF6VJHW2P9-{Ka74^cm3Qvv?@qc&a-9|`)W=g=Er&BRrGc6TvaIiKOpnsKTSX0}K zz!}T(30RWGGS&Spxje&=Z#xQzpEA;jkdvgbOtpTUM|ZG^M>r=u^kDOrEs&-PzRqLw zTUFNV!gzlC15B+*zvgBNYgNfw{t_MgJ#UmY!IW!5mz{eu=x~#TmGM_RCEr$<_$e!m zh|IA@@q_)5-`-wDc`Gy=N_jTHlw(7ep^o(Qsh+QM_@46i+jpKdghMtGTSvE3wcf(u zJJu+Pg$B^vSXAt0js=MKc0S$&`3}4JnT-T+HX0SV89SDpVzCK`tfWp!Eh2?vMu~*& zD{=yOH&yDjkLyWy<7ZsTIX4C_6i_}1yPN9u7EBy!s4|olTpvie)lVKM$Jw+az;#Ow zZT)n*>e#lF3GX(_#XZ@Gyql`}k_413D@yrc0`T$GHIdDC+^QnPiSvoIS{uOmY1FH0 zqT6EI@$;6d+V~j2@kXI*O&PmPU~F>?VW0wu0B6HH0&?$PdJn z)7@0Dw=nW^c9}BdAj-<4W3O`@gKQo7L7~;!Sso|!D1V&^A3B`R(QQJe8X2-dYXlrp2YbjFDt@Ch!DczoUM7bw$iA+)Wj7jlCb_g^w}P zW4tS3?7+@C<|SM;zze>d>QN4Q+;??F4*c(?>bHg&CogpZ>_Lo^)6itdY1$pPAsUjP zIn6Nc>@cIHfDPF{vrXQ4x!L(d%@8@sC`|Os1EVDo|J;mdWF_{c4N1JLylhwciX2Mc zO?7DvG4?X6mod<2SS^#~&s1%;Ao`wREhwno>AoXnFz%u-irE7u=F5>Ze%Fkl&0Y1YnVVGSiEN4Ym!Qc`Js%EQvWNbI3Fp z03-J!?q=Gtg_+q|eJMAsTAm$+vF@T=T>YY=vs<*xbZ0FEHW`Dl^|!dkV!_7$F_bV(AKepe)w`McZ3Dmkj;)fWZWYu5XDrJnC|t6!z%9F? zS8CS~&1mqujC=hJ=aEJdFh;^9T_PN2db*Yjoy<3^%}>~sh)nV9j+=$`oVIs<8%`;h zFidpZfo3gfvUOuwoA=tDLb&%)E*{v%Ah#)tjQdSSb!2!YE$mIEuGi1>bfICP1t-4= zObNgu1Grj1A`)bMuuDtwo3VrdEV4kGsnu@QU&3H8hQh|1kel!eSb-STbna$~v+||c z6*lzFu5b+$BepEz!iy9_!7X-$1E#ktoC(5%445J0YpZynOf?LoJoGOLu7X+NDlfD$=7Q|OG7&GA6fNQ)a?X!iM?%zpL#c}%1`H9rXk5a|gs zE3M^fJbqFpB^W@YC(N`hzuI{leiD!b3+tWQCJeX{os*PBEz07F=cQ!v4IM%M`_;r z+aZI1G9g`fqVi}L`0%&IkwBo3&O6a!w7W|9+oDL|;)ZPpPV^M9b7BqI92rYVfFnJ3 zqKUYFJ*q^}-wY;%#SKyGwfi??MekqV-&CZSBcmw^a3pCH-NF5vr3^m_N`e7I1j$4r zaQ}9IQQBWO+S{rpgGLm*r%VRyi6S7@$Cn$wa9%wLx<*<2LKIT(Ci;JZ_JX~0J%y{D z9=b%id0^A{iK?HVz3Kp5Ts^1|fk@`s6CFOm!T1Jc=SMYDlKee-jR+pB8u|H>V4gxb zxAFD(9%*sSv;roIdWsiHuAf9LU3QK}mDohM01qMoCc1j%(@=y>{vj8kF}t`Xa_@ek zs3(|3kv2n@KnKrD z%I&<_onf5Jc6niuHN2Tm4M#U7XC`K;_5%iG2O>C#pR&-1;4x00?kBb~12e25Nx_vA zdl=>AL@cGrv!`Z=<%2whNujv45gmzcjsY2CB%aO+4kCr-S$!tubc*1n%;!bL*$`9_rm z&P?<&IVaQDwD;8W0>C!=KFC%xQcr?$>4fUzl2Vfc8QmYLnic`+u-Nx?g`Fe$sBLdTt4mA#*sgmm<e93 z2QhX|6B$VQ@5BORFstT|8g>y#83q-0p~!`9GYvW~(#G~tWmy9m%SuI?B(ux=iISV= z5*NZ%*Sl>m5k?ut2at+H>Q9u|f?u61TOYUCGv#DakuAoC@684qH_em-C>x84F@>>_ z?)O23nGvQ&iV(9*O%l{96FN1KjT0p{|JapPlb>a$D61~Wa=@(P&T~`sQkx9bK+dfy ztKO4Kg!dEWwa7*>$CUh(kw!$(k=c@337co@<=_6tKeWwT{fvi2gfL`0_=c^g+m&vU zpYl+{P|&#@*O>Pc{j$I`V^6J@a!^xGOR}qI=A}Oho7`L+*4CX~z>>D}z z-n>y8F4HSAiJYi;#h39OUl+nM<1g`HaX~uoMCB`R%P~{(Q!W}2lQ$x~C#qnM={A&- zpYgDWXac0?PE^DKvsgr`4L~F_Oe#@6B{HNc<0PVdUirW+28|lt5;EbWkx_1}8+|-G z0HNrB4j6eTK;J$)z=Q>K`b*)yMT%;%aANJ=gk`L*O;xO z;69j2$`l!ANuDM;UjA*^J*s)~AeJYmff-SCxu58JIkUJ|kOLT_67`B5L)}k|BL-?Q zk(B(DiQOw;r?U4G^{>FJrjBaKRijCiTm1yhk8Ctdw84U9*emKnD6WY z4P!-J2<22FV`L(;u!&k&;Km~xT?pk=BIAw@=}!}NF~`M~>9C13gfVXQ1MF=OK|V2* z=-B1rN$X`??BdCinEt*N5oBqTmS z^JDyE3Nsgdz-|s=1Jc51?&1URBOPm^m*)8^S9n@4<6>8M9*9ES{X|(U5c8>EZ;B{I zLt|qlCOe?>67vf|O$B)n%}Lx5dSIJT6BRd4rtC_G5u!1WF>F4;9V;RxCI%55J&w(- zF^HG3(P(G_L^@2=NVg%9g z-0V>DGY%FJ4UbG8CYpAEsfL7ViKz`D%0nZ92ieM>DBz@3SjYb3ymZ6CV@C@No*L!dI47%?F zQSwB_w~6*%d>*RpsC`d^hta$_QTP!dJ<;$B>`-%W_<0!R=S1O0=0G!DK+j86cyAa+ zAmtcTVM*4>6U9MQj?UXCs=>%kR3^%Thn1@L$xoXy4PHQ(3w@zGil0~_JXm77)M#?p zs%)Yl*qYw?q_0(OtBLyH>F{bM z5zWz}77~h;w5o~9;Q9Evdc{=>-SDZN7Pf{$hmtK1CMttxJf^5Z(i{oWNDHhCNdu77 zj{?#x4dHJKB!NI7QsRLw%b)P(E^0=98XOB=*yF8zdla!cBBH`u+5ff>DA#aSVa)w6*OTsO7{n@r3V=)H$>3h}^o@=)n^ z0#h6b&q#|~qT=_UwLX@HocBJZhaBL8JR!Ti4_vQK?4t>Y{IsdjU;vFX%m;2RP7oFa zY0*Q0u&|fXI$^|>;lgNJ^j}S2n*Mf)O*GUp*}Z?@Dsh#W_T`3?_$eEWh?Ybo7k@K3 z@$hbs0<%;DZs_;}QCjXekFza+v0=pL(Vv@qc^J)`6QvBt?v%`k z09;bx+$0;YcB?m?=oDARG~(ix+!r$y|FH?ZZBAmU;7Na5G$R0u2vV+~_Ov@a;T_uT z&eNFuEp{S6W{~?=5BweBC%vL1e_K2Wym=tIFm~5|%(dKHe@fTZ;gf{0hQcSD?{5cD zxKyCxY?Bn^#Vxtf^}sEaJ>jb_o8KK&ogJu=0ZN8#t~B=aO;%X)w}q0xn|reJ_rOhz zA+N{H=J~ji*3x(y%qA2?Nh}pV@F#ku7}s*sxi~VUk`}kbjOzne`4SYUg1q2D;pQ2O z`2w7RIu?m0B9VxEuJ~1%*|3uRlua2{$kEvY*ZoSEWmp-*X1weJhf#h`6n;cHbIq{IuZ|H7!w94tgDNaZALNQ+o9peH z*-&y<0xv|ga+V1?Hg2w8S9sn_8@IUJux7t;3e#J_;qN;C1wn#uH9h<9dZLZ&UPkRMcN5V7` z;K*>nb+b0h_3`(EEHd2H0y=TQ9+-XLnpm6VQ;1`CCQK&-l(bW>dIcM7nrHcG!88~^ zWa`E(Z*5*ofz*CmC?hP`+tm-;hSuh<_TaJowpd007U?!z9SZjuHcz_G=B^gci9jUX zhU+|ScI)fkw8xmE#Ve!*dn@aK>o5WC<$a@eQp1@c3mKrKt8nX7o84DwdH9>45C{~~ zCAe}DzCXRgzNkT&GvgI9KuO2odPtkU$v(3DZJ{J^!QMf9;Mzs_{`%#(I>79LU=?>p z^a#Ku{ei0!;q_F#YAUeqY*9T7vro1ZpSWgX)YjaG~N9LBwd;)#gh!FrH{P0A-4ZQJ1iFt$$* z6=)(-xcR6GU0Y}YB2BcV2pb|&xY|u&6KzlGR=_-9EGMT38`2fHs!c(S=I3lYU}WPI zVMC4*xWY|gQ`?{OiI9;|kc1N%Rk)H3IBnH_MR8`!%&R? zTp|d$HVm*%vioDd8BYicv*p^IRj6vuAXJ~9wkO%5vfmcV2*4sOpKG){%R{GTXyj9M zx0p2oaLK^PHCLX?n#+C@o-W1~W*xK7ue8W9zfhi#?8;Azq`?3pGMDR`2to)_#dBW= z>%r)AZ2Ow4p(wh^+Hm%`N=8Q}?UAdbI8u?a$xFa38W@nS&9zk&F@&ZSihFwo9xlZ~ zL^xMiQ3fF{je&c61|BZ5jx;r{t)dL7m^2RI?^y&vc#!VPRak^a*>4VKhiqgtM^^OG zA4$93iSn2>ZF42aLR{SGw5RJS+}@R3iZ{5V@nOLLB7&8xu*esBo=_Y)VM+oVYsFG+ zET>OzJ6Ws?p13+dB?6IE2py3GCm+BnbPDQtB$_ngA^EUfB@-Z;{5Ur)nW%osrgU`O z0!dW|9@2F_<`KQ!GYPnUT2)KHiIS(GhQW{Og4WNYS2rc-VKi?}6n;Zv2R})}2ltA)z6X7R@zmo-x(cnWp|GFeLzsv=FXg^ZcgrAAegM30&NbwkME5 z-pBT8Ao5v$S{w}q5RngDKSoZFMU=}=3#7pSB7%)ufhy<4`qKj0SuvV3dU!ViaE%s0 z_-TDyz1hIq_&V5#v@pYhJv#3{g17nYd@Y#{caLllfJ??kuB75viv~9-V>J|4~D{eyR z`79b9^0x(&K%kILrD0=HzVFuOEmo%4D&?nV8s2iE5n#@eb!e{m^89YEu-k9KR>H#U z74@x+_Bz>`NOnmPfbYqm#5G-t{U-fsQewdXBHfhhwa6DSTlm!aI@pMWVTUwQuI8e6 zHl+w>k6We`<7yp3jLsMxsZ1%7mw@|}VpK)~13E=i#F#5sp}4na;NdbF6B)*pSCm1_ z6^wy)i{+>k;ga_%0Tth{9eBB&R=#J8wr6IYu=iuSe##t%R zsUu#?6|4ea;|_PD50{|csf{*g6kASLUQdB zK`VWwxH{0%Q^sXKtp3tjUqSSaVyNmHk-eLYI&47a{SbINF?lX*;OH=ggpwt)f@_}$ zO7tehbYBPT!Dy|cb#^3{j%I>>TAP%>t2TdnTr&g&T+-jT7R!s757eI)&5Q+Jjk{PdbIrRMzG#F( z$^LA0 z_qY}TxTITiJs80%wzR_8p+=V>O@%AIyvXeeeelU$39=B8Ofpm9YA$%R9*1Upcs_`2&NyhbvNKl(G$Ig*c;%`pNZ@mM88DnZrds0% zC~JUH62tlrNVr@eYhKZ2Y<(HJMq1eI)o!HWR%Cz&0cXJC$e2n39O;5w0R?aeG@_DH zb7sgw1}Nz;T-^kq&|us?71ZL+upR-pq~~zG6X3!)O3A#sGNut1c6YBUO|E595M$7j z>Jk(W81bEg`OByTjrSS&YOSE^>^OLck1)_kKqu2Lu4v+Ej*+$HFifRuQhYi+s){2Y zvmU6W6GLop@(_|ACrOEsPQ=wsJWny!1}6_8oSY<_hz#KBCeEo2xxp%e2(O?CGa_TT ziI>9cCw=a$@r(>K3Ys#3=ISX0ZL52Djc0_`D1at%oU5v+iRWnepOUwQ$I7LyJa4Z? zLw$HpgwIa(%hEf-JwSWUUX#SbXHIvhj_`-Xh1# zCpeLy#}9%Y&FoX_>(C<-N`tg_t`j48(ZCeleI2?7OIeet16PO<^xCi#KD-@%gbM>Q zuyAddcnI~AyIR+O*v8tj&k(N2qG zY|DyRT64GuXlv2e>;RCz^`@C`+q7eA^JVy@U0;t@kLMUPvdzp>FpFKdaUBPuY>hq)b(g4 z2k3mwiS+mw<<1`0`!p+7-row64^yp|fJcWOrQH=*Tai+Y{%eIC-kw3zn@5{Icy*1B zgu)>DsFk{Vdj=jZeQcZ>n9&_xtF?O?hw%3-f*?Fd6Xc34FGuZn_?z(LW}jVY?Rqd* zVR0d67IrPOPZ}Te1S6U~%CPbF$Po>_gEVBW z=3s6C)CiGYDiP=pN`zqyKxW@RI{G~Cq#3lXi8 zC7iDzVFJV8vND7Q1BjI}AMuX+*GC&n)R7aWq{RbK$usi^tUzD?y0nyuqk|I?;K+E) zbze|i2eF1F1ZE<8YB`qGvX{Ftk zWd-+sSgCPA0GcyH7BWCdyPGJx2$ETeR8VpDph^ZP5wa7-7Xf|Syp@71?jF`6EFQ>V zm)&*dC194-G_m3wP!Wb&BKv4|L70O^N|V7*Wulc%HURBrDSfoYEz;?Ul!FJaeU z2*=R?4$5INUde~s{ps?wIlr4I${_=nCNlCty6i-wMN+MdAYQ^`z#x5WqR}ELZHMs2+ow39fdMIsiGqtT5L+2$JVGv|c0!+a0t})wGRf!M!~P4;KbxZZJ`N5e9hSOiUVk9^BhA@Ni*3 z<_r_X7h&+WT0fR&!ZZuv?^y%^JVrAbXg`w~rtsM8-d|7W>!#1PK?A2YI+zi`IZ>3+ z41JMdiJ9)XVbyjQ<{!DEAJHPH*I_(vWd5j;o_pJ>%sK5WzT^6>cO=~-0lOLlVb z$T8DVLrjuSv~7$r-T{D(3$Zm*SbD(7%qd_q-oQs0O5-4N2x-}0j+@i^J)~p!854^L z9z+C8bZ#swkTJWb)$4xO@M*$EUJX(5L?psQ7f1N*pQYT2c}Ok0CZy-pkicoY6O7WE z%Y|4^S{1o>;BkP7beZsDIznW@L{mqyg6+S@C^Pf);3W#u&Y&k7KY%`N9`U}sx31#r z!95btiGZ1C@JPasSj%sYmu@{yYaxY=oZ1h-kI0*eqL1=(%}lEaUxW`_JQ`|ZJo~$v zsQw58n2y^X&X@kwy=Ewd^{f&RO^aOP!;|#Wj)^%aCSK30_t&VSHfZ41Mh7z@xnLrFsO~* z$|(Fjiy#OO)&!-#hidqItv2)Yr$Mw}G(j?QaSfr*W&}}x5|G$N1Q5wJ*9ZEHXG^*p zXhTrTV2FOh?tfl!4IxFA*Wb{#tGkD{2*?C!8(c9+uxywqz{S%cdz1ycWPio2+I+^d zf&wZ(Eu01~e<8|Crc^do{pPo#bN#uv5?mnyk&IYe-RJZEblz&>%+cZ%65xp3;hH@H zSLTZ0>>!Q2v;*tz(1z>rd_Fv%_htb!oGoaO0ZN1!SK|5nZC!3{yQ_tCA`nTxfTm5aZ zjIbm&-S15=iDCKH72wR75epfhV|kg95CMJKf0IN0?Xx-(pph2rI-V&5P2jq*-=I_A zz$Q`gssY(6HdQmiQbrKWP>=<4CGbK-nT!p7GLgL3<*d^_rWd z**@!ehyJ9bNig29W9i~O2SB-;kissgW00exSXs-Zvq~6>`t4D#gSxAQb|T7QoLZQI z$ylt|C(OpAK5hG;#G{XXdp%lAgvADWU{jIHP!^oTPucijM*0p{@ku;%<{9=S^O3=e7KPN)!lReC9uKiQ_#UR!2^DxTKi89KNCdc)JD!)2PH4Gz= zatx}lBwdQz#o6wj#aO=nBv=Vv5*wvxZ_++U<9^<+^(02H#MQwm5s0L_aLpmXIm2Y8 ztl6u(LoE@2%Sw6DvA5^TFbJaHDIjr36bLJ#0&3@xq(JcP>*nj`RYmiz`g#T)>DI34 z=P9x6By#k!=z~$3^QF3b*V?+x(P9?T(l#5rv4|^9$xi>Ly#246|Lh{D&4$MO9@c6$V5`4vdW?YNu=dXT z@L{bF>;Wr3v1b7oZOFwun_07T>F9k}C#5`M5}bXVXjnHe7lEX+2!$DY6pc9F<>r4s-sVCd`PW^B`7o zP6IP?a&3KnUUVUiDl-pa%$z37#&cgAx#!HPEUMfhjIj%%@Egw%ZD=6;zTyZL%lR#~ zMsYT8`}WqlIVJJtQLs@#RKlz=(G+MqQE~BgY3`0oiGV#9)*vSx{_D~*R)CAAL-r_u zCUTgoOl^;UgUJVhHAf3sNRR?#dcn1$wx|86i1gxW0i6g$(m%L5)L*x|zpfgolKl;O zCP>R6<;&Hf%BLnz8qbKXQ2mZE~p_6oQ(&JY@8zX!CH|FdP6@dY^oS=J`pl93X*UlLn&8y`s-fr9qLbusliKj z?b1qXO!8^J`&A7L|FyVUI41&;^h~b61eMM@mNuRSw+ThAiQ%tnZgWV!v&QbO4zx6L za$n?{D=ihA(#Bigi0rMK7;nDjDoTPE?e$aZ>(C<-N`n!i52ucySFRF!&X#b(!skGXod$l3l2}<~l||D*F%a%8*7xb0#vD zKdJ?sqb(`il@X1IG?MY28!P&PS8OEH^3!5zFo1{<;MzihU`pKX>fme-hpD_>bDg1r zb5oLs?{E4fYS_h+X*6DQ14Uo(ppTr}+i#mhBLIs?SgtMf1uaIPPuxGt+$-svFbpf0QmuzCr2h%45f=(yJf( z(;!;#k{y*_bM+wkLX4W)ZwCbeu*g`zRe}V=-pz7Xho?j!lA`3AK(CM3)BCcKUA=I& zm_c4ZzX+3|ZbO2b1yWQ0+0efPE$Pt@R|9%|`swjmWI%DWX(}YZk$Emx0|Ls6y+Giu z3}{3kl3v7hfPiz7lN>u3jHHnc%Qbt-Eg}7B!So&E zC7lv+tsOy#;owv2>tG`igd-8}Tun#uY|IE}k6XqJa;^88tK&FQ88ecXfcuz1td(AK z{ToG$!N3Z|y*&dDhqxtb%-7sDk1~kCz!FmE!6kl?cR9<}dh@Rd`}X(b8*28n|Sm{DMD3 zg%5DIS?;m9E2XOtfjCytfFGytc@eFYAV4o*mbV}&asp2D40q8KK4;_3jE zxV$D89H1pIMLZmFm?Neh6t(zzWRG-nL#z-jxGs+1o%e5Bc@v?!JLD1psUAn%1=qPz ztg{&Pa958hM5L4-)7gc)j4eAuk zGQ}|l;u+C>nnOyTzb#dveWDZa8bDdZWQR09ZbzrEiFu3{lLw4!oFWB9`XSe(DQsdk z<7_-&WaAWJGoEuT_(N2MO`Xv=p9mQl1xYxK>;47Tun|t{E9*iP_s(U(Mj{;~iVsS+ofj<7O_Q}K9!5aDIhNzJ) zbW@87LIu^OW?``JOIBcY$w{<&7F+{HQt0ELIJ$%i3CSdN#dTZ^?sB(}kp-Z|J3xCh zFd%)B>$M1j_v2}E`c~Rk@pRxG1tNCb0$=d=ssR0@Q$zjDfI_&rA=~K-uAu^~&9$6Y z7Dq-?65xpV*F7Ls`K@v_x{&8bJ!s$2IW+<&+ogKE3Z*It5@`5Y780bdT z4y${B)d;{P;{exdQLOW|KG|8_J+4InE-M6SP^^tUKW$I)_$pw{nNbV*26rLGSs=IN zBS>l}s5m-6A>mFCYZ9|A3b^Rqn$YSWz$4=AHL>!&;Kq9_rBw_F!%+-)DB2m(30rWR zJr%l&fdWLtKuZxeWH!T9PYRpp+g?l_FqV^3gbk54TqUKjiN5V@JYZzw6k$UKIj*Nt z*wmiwd?I9I6eQt9rnOvKML3n=6u%v+4yR1wbM+L#+8^J_m~YMw(a7jcq>FN86o8gx zTQX{C!8bRoA#xKt@`b*ESR6TJN&*}!xLLO>Z@noVo_Fg3<;6E3l8(;RM+67YOqncF zSBI!XAd*3g+r=q}zlzZ>m-GVc0VBRsE^cm#mGA{uE)h2NRtsDu`PJVssRZFcIv&?D zsXPv4a$Q)$OF2k1Fd#D_u5?lvoQ`Gpp>PmCWuXyoZi$k?f~%eg554qL9385V07phe zZVSgye$(w?MTT>L6f!_bf8#190%|tm+|@xU5tD2(9&()$;C$Ym&ikY8idRp@jVOR7 zosesm0D5~aJw_ZEQb~X#J&>!F08S38tqH3u0~!&7H%s7bcKRCoqUy?sM!dNtSK=33 zzXWM~J^KnsT^*tlfk@KG^-C0S|LfuP{YCZHvcE^K5y69$ELS%X%f zk!@V*1c;^L`)Wt<%`Lf}v*1c603H>ynj&lr~!h?oMSAERGIQNJu8>tP@=mB+X7m z&C$c*1QNSIWMwl^H`zY!VG7#bXhgQ%lVLqnph-`iD4lE{4=bFsmd;e%8Q3ELm-Nwz z-U)EmxX4mW{UXuT+o9KJH@9pqKT$~m;`XqCfjZGt6@2$~@E(j6H?hEg_l_p*!SP}> z-7@h&&daG67}UueX`;navrt#zk%)0Ao=CFbBVuHt(ULjUMR^NJR^|g)xUv>8>$(9D z3-45>9y%#hCrhc4t~1etY4RHD@WjEtt9|v?;Se~Fus;krqUq+8$K_5FN%nwh|Py1If zOox=i6tK8^WQzdYu~on}?+mx>@*b0M8eswgws*&UDcF3SV4dDpN4&nQW*UG{y*Z^d zTo{b=X4oj5F;ER1Ag4Q|!b%3tJ7P=;1~{i!WmrEA!@7h3j#w3i)xRlRIV?Jz`V(>q z5xB8a!T#M0?)>!lUe1e7=I#oyL;x=7T~oaoV3kRox&};{c;1l}C#+u0Q@Zxecfo{v zM3o4@CEaPNE2B>MWB>U&}>-|r+ zMT2BLdO%-e8QRLJ4cUM)b-i}9& z1_tBMhx_xhtf*xF)z_*f#l_n(sL^ij$eI;b*k=r26~vm1*azuhmAGVE?YJlU0bZ~hRMG)Z?G+{>i;8g8K znAyGN($+dl6-_8qaLC~l)Q4wHIW`;5qY|bDL12)r94OLG5Z@mI(ww;@3K^iRVrPB$ z{b^ICIqK>lm3VVUwr@}xvt*vPMJkBRxK1i)5He2oZkAJpoA-Cul2lihMkNA~2!N^1 zP1*ncy-OW}0Yv6=Q{9^HCjY*7KnTX!HxU|BO`7i*%nO#davqHcMAEir`ZPN`O2<#a zl3>&w8AoQCG`n|OaL8|l5(3WYSiw(v1u!mGhwY^pP~IHd+alWuspm*Pzcnq;tQorG zMqkvFenRnqpijXtB(MmOIOLdUIa95Xdf0qGjy=IJ%4FyEQ1&qAaDD0IPJr9 zcqAzg(t&2GJUy=%HAp&~_F+0alB9z)%$crFpN=}Bkc0&B!<0lUNeU6kGi4x2ikpBg z%!_wm=h47`$eNjAkT7W5JZnj$@Z}Dh^AIb z$Nd8jCrAa5Y1K?;NO(juDm>gj@Nk0g821>L{0T7YW3_=4CJ``j35u{8H{F&qT_R*< z0hNElhpPt`BF0^YI2qo7c&qmhMNGieBMK3SWX3nq7W!hgYG3uYMKc1hNZ*;L1nDtf zzVL#eC9Ro>x{o~krh7EzXcJUOfFq4*qSLcqJ>i;}?xVP~h4e57MTuR66y_+vh)P43v7eRkBm?$X#i{x~o*|UGKMIjz20b(kw78WD&@2u$>N_IsU+%TL0RU;vR8 zI#J&NLXnom)xjwdh@`(yw08FXsOxKSCB#BpF36>T716Ra^R zmi#6xB>;5}uI&NBYCWQp zVWKnxgeOyNDy|Mri9jSBW1=eqoMOdH^cU6HVHP`Pc68Cz??h4N``cbkOaoFJ8Bj?} z7#|yR&DCPwunhWyKMjlo0fKZ@uKV(~tlI$9od6@kt=(bmb1H3dm^=eZ7xzeBf3w6% zfFr{N*J816%A&vVA7;u2!O{j`n1Q;@+NthfA@H zg?_^|OO!#hDr4Z@o`Hu;^B9GO85rS3R9lvD2!GEa2*P6=8g97iiDW_#m5ZZ86%rca zI1j$ziY9_m#CbS7NEhd1U1*k3NIA$}P^a&$%HB(ifPbJ;Pra{%XGAakg=kNjxfNCjl3aWjJ;vcRfU@vjL$pV3xK>IjmFN&&Odc?@ zaf%ca>6~0irLc)^;cPr$WaAWJLz*L3TPbX6*Kj@&GBOI1a2n?^H(Z@XI31vxFO#lmf4VfS+GiKR_wlPDlEx7tA8*j%%sBvAED4eb-2Orj& zGf^sr2sp0VQu#$gtrbLPAyMM-0m^V3)6J022W1#7w&CYtv@D${bwcIok8fel9HN{EHHT#_9&v(rRc%kj(m;k0^A)3-h>ap{Rtb)@%k zT^4AWIzR8?DS&e-ot#)2z2OQjnN18>EvvDc4^+t+5y0H=Ov5tzEh;`hJ&@wd1E$XfI_Tp;Morrc% zYKv>zygl8V-et$HI9j|y0vu`9T;~QakIHR!{b`{z7$Sp+Hm+&|guV7}{moE902Ud# zxwegB#W*a9+wa`lBYQZig{YC;=nQle9*S7{akvNQ(tF9HFlN_jj_V!Qv4=jJ2$FVI z&{B&N9?|Ve>9~K$gA;@YYh=8CYVx9=6&~&%csN0Lj2i@Iu4%bY%bn#9hA2(Pg}V@X}<|g z3FtCJ&~Uwzw=WyBMpGOK%}CI~Aaf(GV)FLod8-dJ7Ds|J65v=Rh(I3e`im;-11y~e zs2`Gn9CzGsl@a*@mc6YOiZiFJkO9hSmiH(DT_0C(6}R|$XpaO<6V}doUlMd^uZseT zCSTn>vPA$c>7!g_#IY6)?jr3j6~>4FTrwhX^%2L_t=j^TcW@&Rxa6F~Y^TvS@Y5R} zI~6@jWn!MbBuW%OlktM$=jEmT4Au?1gQk{ zdeXJHa>?75(>K*wDUO6@B*2lb#g$9mzMMB|!lO76oRI)Wrb%3<$e?;Ly7eHjqo_DAH6Ydc{>XgczZ6ZBPKuMeD$|6V!EHPic zLW^j-)A>*i$P7|cJQ70$4Ob#DHY&UnKMTVWB(D@RL=iY+r?QW-*3GBFCxs4KfZB2U zjNHvV+kxilCIuhQ6H7y}B#39^p;4gJMS2IycS|nG&QN(Bu#=yNj0}q#SCj$W2%TWfkK^TYd_bh@SJjld`E9<j;X?H_g$(2?=ndMRR=}f!n|7epYdH zfJy`+>498jM-g{&o6lW6q7aui>~M$c?f_?_TU+{@(S!gjR?Cv&u`dAQH`N0YRB?59 zN(3SiXwfP4sw9FGbM{iR?AK zJV+2pujeLe@DWy%C57tBNi-sK^2ta%QQ|qhylswZB@E!^%$S7?P|{)e<4Qn!-$hB9 zGlLc~KuNcmDDDX8R&-qz9g7>f>+u(xrHDw~=*~iC)eb@4@NX%p7g1 z3TX-B5$G9NNy}`Aj=e>@aWXpcrk$5u0lnoaIHF7s1IM52w@FVSAUR`KgGEKwd5e{> zI=*)SExK79i>S8?l4~<*I^^0>ZJ=*`gnDW z39b-vUw9leZ@CGXf|FNoj-EnCPKhi_KE{>z_RY7KElf9w{`4-~i9!2dwmRhKPYb5OOJ+CP%ny$(cf0$mn7i5OZ-P<+uvqJ%OEtv^ z@o$js?U6lPgaeV|+)j)!C}V^qSQmx^bQvGW(*|ZSnHNH%VibJ(1z{#g+DYMXJsA5m zM13h8_YZk+g76@%f-A%rj}Y>Ohx-Q}P7ofXIderB<57isVG;oYm!Jq6A~Cr3jJ}JP z-^7z3G)K}}xRsZkEV1yXO%Z}{z)waat^u>#e|}f7rN1qZ5r9R;2(IR`+v{B@NmFqp zyg~#bD2Hf>ge5Z&4r7LNo>$I5cKX|5839;CjB>q`-DxdnQu@;(X)u6D zTjQ!EyVGW8t2}olxIzRX=^^IfaxA-VE}sCn3L2L-}CIoLI$`xI(X zppsUHV1sZ^c6M(0gGchkvOpz8jzYL%54c+;(PZ5eteaNy2^I*~OsT@20H9bniahS^ z)n=T_=)STb4Z&Sm4)lwAwpqZ9n+OBZL9yQs83Z&?(%!k|$zgRmeUtIMI1-wX07u4n zu4e)iHGyHj8B7ge+>(>1TdrpUCGEASaNBRfQo{0<91&SsNmb#KI!Y;|dwXOLhuk3c z)9qn}2?HCS3|-s3&eui%mA@hhR=Z_j0W(+e{;BnqH@Q8>gA2QeA z3M$4Ue&w>A9>ifY+}w zJP4AAE!(+{3O<7E-0k(#SJ~}ueL1N$63|H-=N3{9o6VPJm2>83F$)QnP{xCnTds(5 z*c`<;rv4--2?h|6zg+D^5JKQ6p8Gmj4;HCJqz6|!QS>5|gi$Y(JWN2ze2i<7IH*gc z0@6>Eb2Km@Wy1AI^vjSkRw(Z6OU1(_2c$9RpgJ~QNpgr7W8mJNfrkqNvR>gDCYpmP zU5rEcdlo?u9z?fvidyt=mB#O8IB65!_eh9*?CQ5!gC=h@}IxkoG0M-}TeX`$-B?MrRZmV6HWbmLX zxh;MYk_6+VnE-K3kHhxs{`~6^TDzLE@FdU(MH-1#&n;K>IDCN`&hB|Dn;q5N0@nz@ zCFRJqJ_1X}&IWrJOC8@LLXs1?!1X{94iYy+1O1%ajRYA9KIJ<2dP9Lj$`W`Hv}U% zvZ^YO>g+I$4A60ewFjAKGVzs4dc#k)T??1l6=~{Zq}tBiaP^)1mKdM!&OQSa$)S{xR3VLcoTXP zj(ARW%J^MPzYReNzK?!K_E2nMI@YD|dVkt(cB-$TeB9gf@bHT}vJYhMcTxP!@whsR z4u_x@PlxSM?#Np1j%%0*7@m*cK$}TrWb5tFYqUGEziM-An)0SG0^WTcx(B0<$+4Ne zMMly0$CuS^`+apT%U!TYK^>n&ySO78GIv}nMM?_)kDI@}Z%=4cr&1L;tmBr67k6YI z%@!0iYcN&5ds-d!YPPVi{*Fy0fCUlnTvtUP&%Yn`x-8Q*K@RAcv{CQKj@TX7RuL}W zK0Ca)I$R~*ksUi*A+eJ2C7+m+!Qw9i8WGKi6$GF69yiaX+>6AjDYsv-!iSCGHE7lk1M}aXkXw3(6GA86k$UKRIU+I*fi@p1M`5foSY(T$mD}7%M>=g zbd$kK3*7@oHck;XWbVXGvJ}+1By&CyGBOI1a3am08*Blm^S->nS=|}kBiuYNsmN7q zfTcF*?Kk5I0X=|~hNPPaM7%SoR-X??b0xe&1R|?O=>sF84sPk%vusZ;@5y4&7Ig&T zdG+*k77-}&=u~}e;+kMVC(W7b%K%RlYAbs9GI|6HI_d6QM+WF8+*dm^_>DhvXb9jz zbPjEy%F5@r2EVv7wnqRiktbX!<{-A%wZ!E&;VA)Fr15i|m%~Yn%QRaD$)B)OM5vmv z^h)iLa?nqUXf+1CXsw~>yW|y~yNUiweCMJy2aFj2V~Ywl;}*{yx7<=nDdZ&@yJpD) zMmA27+^{A;>63~Y^3vIOz{tia!e-pWxtr+JSmLX+bUqO>G76G#A_F%!^KwAf*_d!p zN5VA{jM0pnd$uJ)8j^hT({ER*@}$`68DK36pjk?#oJQ#LO4p#he{rv4ziUAK1D2&RX53>qzH_@>%MI!u7=@TU)cG2XHn{YXN zTiIMse_JFY0E-A^ZolR5ZLO*m@{^DxczI8>Tkp8#766qKBXeXhJ2AQ^nyxngAB*3# zr0_QZ$=2dM(VDbPErz0+Ti>2?iHjdVM6vL0qU-YQeHZyF&Xh1G1C(@tiDt|1IDo~O z&ZmPpTEIfWWfam?Cu%LfpFhLy-Sv5InAMknYp@(9kx^@+&|>KRb{^8KK;s*GnE=^E zbHGO}!z`m#^^ED)C=iQ8MoiRQ0?kLQ96(vbsKrW&PZ|w1h9WN}4;a}vMGA@xjuU+t zV-rJ>v+;nDjZ9dMKe-yr5p%xQf)e0TK!Q#bTtj51AY2*d zh`W7~R{3cmH5hlZ$<&Bzyd34V*;m=5a90cG#N|D))pEzJsR#}pacnH`_8}dI6d4_a zba$@$61XNyl9%x)@`OBBVLL^`$kHMfi82ID7`aqoGbL_uC6Gf{Xq9N`co1XeG?6Vt zgmJZ*U=|{yGV>tD%xS`mtW&r~O)#rsqjHNd#x97$kF;s7byN7slqZ}cx=wwFwHMph zrfmT`4ltS_^KQX)UkB~Mn0gRnHMX_N&|gLK)u7FpaSM5QPp+lkajPuHjfkQwWRUV9 zFfkgakW1_!m0NBp=;e5;^^Hs{5;8>QQe2tG@L)3>`wLo9Rn#Uas9E%Aiz}LZx==J5 z>zAkFI3yCQj)Z0; znEE8kSg!U16uUcJ92w5;Pv4VUQ+Hh3=eWUBiCU8Ko4}NSq>%xdYxMwY`@Pt-t?rEJ z5tjEvlm3p|crh%w`(X(MhI$5MivnmO{J5nTK<{6_{)Baf4YJjj!E2~@kisUz8DFNvkyV^ZB_9BP(MVmgHEn<*i19$9jwg)_B zR=z4a2a2lh9@ZiNcN_=r`HM=51*Lz>}VIvw9_5Lt0Co2XwFtl+d)_^_%A#1ZGf*5oqU;VlkSWtWx4Ux0d%5~rb8#d%BP}0@ z1vc9}C%MKqaG!&+Bh^drFd5 zTnVrcfk=7|SA992-&CjGeiND!VA+{;7_Q=SJgbt6{v;#`1`z2XT+yYR`A9DH7$||+ z!4Tj`-_T9^u@YbeSbK*4wqQnBToL_@du|j3Gi{6+QUT^jXhvE-keSUrS5^Va>*nj` z)isZ@KZCas!Gm---BBXh#~J!bhfvt06<5YJA`r)c>7Ktfbo{#Ae3LTJ-xkdX%Lih| z?Vc;407J(m`N>E+HW9@(+d&_)=@ZLO#nFH{3F#tTjjNK_H@IgZy{+*KuoeZ-q|b5v z5ktdcudgdnB1zr>-lO5NF6oH6j-3>RG`R5>PiAS!is9x-NfBlCw7{@(sz?mf83^^oRuXafi>2d}ztkeF;r`csu+E$M%ILwX0072m+HXPp9q6 zZl%@@T3>>1BEf7LsaUT6(cpDE12YQenm@)K0U0K^UdU-9CMxA`LKf4M4{UtoS|Bhp z_7!VUtKs5Icut0D$+(|<&rPpjK`MH$nmltQ$U;OiS!SgQNNYK-)mR*$#gXxp1UNDv z>dcD5$t&}g!nHa(NFy(<*p!}Ygh9 zK9JS+J-48uI53#(kmBqyl?+gpOp!6H(4Y5e9$(L9>*L)XA^StlutFC*7TKqsRC*8&0h zX=@{_Ix?n`@ai!c3{~o}?879M%=G}Qt_)~IAd+PQSL^`J*Yoj34w}N5F$)=>L=bZw zj??qg_M{!z94%lW;VEV!x^&V%=2|qD@N8QPgCIZo!UmX)Yff@+slu3w*L zaPs~3n(sq(B%t=U-pM)0Npg^bG><&>vz%J1)zIim9yUlbV81d54@`3Q;eakz>^$i1-*>tx zzy;U`ZaKSjK=(J_|M?+x{^I`ko&MW`NHnLZeikOLI<|!R^$%0ua_Zqq;@5Kyl-=An zqUwXZq}BVAk;x7#z}YoqSF=(O{^M`HUH6$7^Y^@cf#jtJK014iY}ya;H^UOZHRZ{C z)?reey-9X84>>s11aLKZGSwV-;_OzktNAJpr=ADmiXM-qrc=Mo*m)KF*KZyyGC%Hg z*CUwYH0<*+2Xfz!qZ2y&ZzBQx>m9jOaDT+Yc@oRdxm13DF1!7#;rmxnUJto-{;(mO z-A8`-*FRmy*7fg=+Ij%3!_IK_5&7X?e;h6H`sYSzU<;q7@4uPk5<_eMdP^=3p?F|~vv z#}D8CY4m^VpBt%xA#~U>&b}Q#eE;Q7KmM?!t>+SIeJ#t&%JmU(#pcuQ?RqG<>AI(uV4W%+tu|K5qs185yMY<;>vbNmlx2-d$h zTI&H_~C-|6QrakU-+VL+9KjJG!E^>lX~61M8fVmHhDKH~(}kLf4PCU$!4X z?!Y}~--wAl_``44{Mx^61oy+I_lKyB*R$)xie{LOpYVqpPcGmcv<_@^c69jR%a^qk z%s;nw4Gf_J8=X^@{P5$n=*Jropr`i-AN|*}r@{|EE+J;oxqiKEQ656^Fx}7o3VVmH z?RoC6hRR{0pWPJpg_-N0w=G)tXrlf&boSXnVJO^n7{3ry72JzIy&l4mU(X&4Lz$gp zS^mEMF7mqo;{1VC&mIgz3mfl@(*9L6*Fz{CIQQ(hu;{EUW(eMQnG0dK4$gY7XHSJ6 z{`@=AMJ7?r+rMrNeNzbP2X;PtF#PcEe;D7*_0L;+3x0Zk(xjh#7jR1Y=M{0ff82;& zk05uNThmsr#*5s2y3ooYbOTk*?I|u;hk*LaBjYbrc^O|;mrP~*PgRp*AKxDi4WG|G z5Hz2wb$`1QHu-rcydR^M_A&JHIX_5CiBeEq5%kpDtOG2t9S zK`u|5zub+FgXh=E0-Y+$vl%n9(dV=8#pBB!$Iq{o1v*uhXH(f}D$YLom%r@m5%gFY6^0wDUYb> za3=qJb`S~O$Gm*h6y#7-9?dtMroeE~U+lfFQ}R*O13J|8cs7-J_x*f!F5$EO4Qufa z*A|@Lck(H~wP2?SHiLEgh<}?4`yT83e8UZ?I&Os-nA2qYOFVzkeaz*rf1c`C#i-!0 zsGPk|9u0rY(68ST=r2^1wfPWp_IU}2f4Sctlk{t4flig>+05w!_xuI_l?=&ao_?(? z(5bRKo63B2`1}_TN7sAZvjJW=JL-m56-k-M1vtJ87 zc#F<0xM+b;Ieq?-tLMstMTUQF%^4U%r$HMY&o z=-kY#3xvvH3q1R;@WRF8S7$%|xHav8GJ=OJN}ta;PKNZw)cI9J!^(%H_3XT|>FiDE z?O&$+;N8PodUjqJdJjHifWH1!)E|ZDjYCJDbD0di2jea3`Kzc0p1wY;*Jsa_q5hT6 z7Wv1YMgM_M1qTuO?7Z^jn;-sPEU;_FUB7N*_d{mhVc|bJqkQ?N#ZdhBEu{gWavHQV zJ1yqE^EMEnj3*Muy$)ZCuiM<4Ki)R$O%ZzSG+~dM+fdsquzwZN%>svDsLR3E%g040 zEb!(pQw|FpbR?h8{wUMl$L#*a+rNtXqY%Au=;*W4$aoin)mk48{N0XsNk>?o}Esh$PJG^Rd zx*kF9H11~}Vi($>I8WBbmp9qn)~Prmxv-Qz}(OD!9Ri%5KlmAsr&hKA(M4 zW@@f4x%+TmFx_%swzF3XQ5(Pe@Xa4anf>^AYiS-oy+1^OeLnlCEK1jv7LT7zbUlXX zK|nuyt}IGdu*~CU6J3uXdJrGa&MQL+Khz0AdHgJ**W;)6hhVkOXU~;I>0iEovs+9p zUxBXR>k}55LyE)CXGfM)vv-bN$NY7uVDBI&{yw|2yrG_5m}dxbqje^^?(j_J)TWv zhn4c|`|^c59KZj~GEhE#z9s&6%p^XXWX=vQU;gFG7{b>-H(~=r=&(kfU0A-XD;DOz zZ^;b!^x@!;`T6Xj^5u8meM@}Tv}pgjQQHrpchu-@4Ew$?bv<{ogIj_l= z@7KP5GseY`0QeGxiZXuZ&aqgKODR(KcC%7zI^}Va*)3My-`{ZpmkuFvs=lR zKVDrv|GcHNUlO{_IWiWgpJwpSQ#o457n}Kl_n<*^VUFzc*6L!vtD~d4F~#xoqiWN?+j9hm%#{ z>^}14$3N`A^Za_-syu|^VfLS$NWT1>9Ob`w{CrFE@fe~9PB^=g{P@qm|K__tUc>P9 z_ZzZbL8i+|bA5Iz`SCX^(tQ2%mfC``wjZ{xvroxTxC^Gg5L6Z1i*tp;sj``)5}+65 zKYjbdhZFx?hVteK?7VXYUqPrl0;uF7(yf{qsgPk0E+$@0qX25JD`-KjOx<{QZ8s{e2^U zEBN%`#JgvYmajCI3+C<5V+~V`3J&Y<*}(;h6Nt9{xf2A2&|%FzyS5No&CO7Y)cSEF zc0GFfa5~?eeOVy)^UChEf85EfN02-4_1UB4$3NhHz3y}d^{35x2+z4Ke zASY&r+-xf*N1!3un1|l}^_E~BLQ%{E#WVBp5;@m4#rahf*TW}v1KM+Q{D9&N`>~Bz zj+1F)WjP5%Ct5Ox;_>t{FO4nc`nTH0189jopf$bf)_wWi@BagA@Z(QkRTe)Ads~Md za$a?QaO#^W`#-Di(p|i%tkf6vWRAtBi7}u0|5MFYV%!O~9^>$Isubh#Wiy-pXH`BF z6u)>wG~l@}^K?2>78iWI&Mf+MEFPMQw^ar_SDB~tm52Fqb}M=FL0=UXZ|i)Z=Sm-s zr`7{kF1|YS?RS6NR|Wt0W&ga<&*P_$K2*|sXIB65ch}Of{(VdCdH^l0md{m(`hljKN&hCwEAH!mXF^>br*R0=%XbqJu>{iUAddqKX0gAFoX_E z`8lD;zGC%1tV^Q!@cZ9yNncmCrr@~`j$FJhM&>_niA|=7k3OsNxks-2x8MEd+wZ4! z>)#up^?<;F!yunMH+H_0PIq#_H0m&&&t4h-_PgJXVSfE{Ytq0^AARn{FY~znU0G8q zY03hjB3TP6M@Ha!kCT>Y{c|HWFoX^rdiKZox9@g<%>MC~*nR}L!|0zKFs4y|e!G^f=J?Rf zcOCbbKYz2*0Iq-DH06SyKKi%~p(6|Z`5T=5r!ni_8>#gGS_cMSYp%AbKaX<-|9MMg z)cYTOzNR_TS0?eB%c=j*>)*G8t_M#aeV~Tckq7?#ucQVY*?9kWOKm@b++oJA#oJB$ zSMEjI^sZkwg8Ly94>SJkKJn*&o!w~ud!q#S^zkJ4o!umO|C{e771RE4r?nnI?l95M zei48E-5;;0>HXs^x%~)ohlzgng81q6`5&J@(YpQP4Y@pe`shG6JoAt9{wMBvm?6FX zeM{_m0Ih@2vbH}B=ub;VoBzJ0Ga!P%=>w0u#7}em&UMx2d9;xrwM=DH16;2ZTkS8 zKa7SvHt~aab#{<=L;bN$zwOF^=PL7*uRP7Gvn$1$Dj$3I+bRQ|tIX4>QvQ6zlN@Eg zH&uS!&fnJgK+lyv9#5@@Bj?!@gIfPQfo#{mcgpjC8Gjn5Gh_eo<3Igz49!1XKi*Q? zkDdg>jKmGhwI{*6nZKJ*xU?@*bJ9FmGTQrAgGyHx8xx*%Mc6+#}guxeq^~b%T zZy0(heru^ZJ2^o5!Ii&w^T(a^qX?}&%)zs(1JoYeH>C5&opjJ)mBWI5c7A}`R~{SM zkH7B3AMj8=>_KOzh@XDOKs*z4{d=Rh9y}fHDkEC#%sD^*^LL96*S~jK^8i|>cAfXe zpMUf1$b>(we{ZzbgQvr7G_-5zdyD#cpEn>j2ah|obrgZzVe>zGNBs2jxBEV+{JIg` z521J(;=jN`|MH-C{kl=y521LNk7s9zpMHK2Tt9B~u18OY+>?an9nV5P{Y=u^B|Kd} zZse{Bgh?AptHZkzmpajV(Xtbq%QdBlLI*T%;Qe- z?<-Z?{P!)H0ikkO!Ojj6o1>bcE*L@w9ymKlY<6mHy5Ofn5Fg)lWPr?nP5=D>T8G(x z_L2B`D^Rb0-}KXd0IkEkKYK?!7-|1_OYOl%_R#_s?a>q&k zGdFs#`^xu^8@cPz(y;QI4sd;|A$q=45d^C-wOG4=YRg`sXdB1wV09qlfP7^YHVZzWMIbROQ!Oa(M{F!!mky za`>6NIWv9dpSQFY455S6aCUMS3U4^=&0j_KQRtaOHHQyB??OXwb6S2j-Ei9J+mEN3 z)nwiZr)|Q0WVjb&4jopXvm?ZM^T9%^lOLyuZvCSe-C|b0ZkUsFx+-|E&{aYH>8zC?^cLiq~R8YGl2H95!? zoiRVs=1c26NZNeGhYXT7Umg*Iq|KKqdXTjFS}H*<{qp=so3F)hkhJ--1`U!nUwYp` z(&lSj0=bk`^CNA(=Exvv^QAx-ByGM<(1WDSm(F64-R8YxzkAs`>-^Yl-n+;kyUlxZ z9Avk7uM&goHgApqxt6{8vD-{0qgeMAJQQ<)nO9jaYh6kU*gHPc>E+*TB!-G%ZL2l;A zqs)!);8S>zMEohU=f?9THNWFx=S`W2>8s51CCSaBP5Jo}PzTv4i6HQ zoJV_ZV3Y}x5eyF^)$B*%!RPScb9nGMJop?Qd=3vjhX3gD>I1m+;_Ac5*~aB559y4U&4bg;lY>i;7fS$B|P{N9()N8zJv!~ z!h5*~aB559y4 zU&4dejnl|c{BJiSJopkGd3gV)Wz^Llvjx;S?s>F4m^OL*`lJopkGd9L!-Fs3!I$vhb@wHOuZt_!k3E9dO_2-P{d`@=xR6cxy7q7(yEm?@ z1{bpD#&x~lAmPE+@Zf8B@HISm-9)zv@7{O~4_^1Ptw*689()ZCzJ>>1!-LlyU-MRY z@Va1YA!&1X@HIU68XkNN4_-Gh&0FEY*YMzLc%+UKqGMtE@FmCU2;gRkMieMQnd$_R!B_nkTOC~Xc8UiThM z3&Vr2;lbDJgRkMiorrb{X9UB8JA>#vN}I!jJBKBY!h`!x=0Wzl@fsf7cO1{7j9_?h zCz#+-crvVq9(>I{h|m4Cq~PY8AA7CC6D-K?jVl2s1ot(x^J7y+>z%^8%~z7fDI6Z$cf$@6 z%HhF%z3V*Mz419bxG!m)N1+@Z+_$arC_MN%Jh(4Rokx4tea=3(FF&0}X>)jRUu4Ro z@Zjg{gZom_d6eD=5AF*_=TUki`{2GQltkevT~qIXt+pA)MFK8{xry{TYw44}K00?t9GU zQFYXg!1M=kWk({2olPh2NB0YdGCWD zp}ctzB$PJ~f`szk2SGx4^B|W%hw|n@kWk({2olPh2SGx4%c3Bm93H$Z5r6*<$#L`G zz5`*9&4ZWve3jWe_&z-NK0LTDDVVo5555l%?#l;w6drsZ9^AJG%%e~a5ALf0=Fx8R z`|#k-lh32@;QR34PIy0$c5l275ANjk^JuRd@56&T^E{8jgYUzGJD2=CN^gV*cV75; zwEOvecyK3go=548@Ze4&%A@e$`|#k-3_6d}8{xs7>vJBZH^PHEdnb>=gYUzGJ0<5l zN^gV*ch1Cll->vr?nH<@3J<;y555l%z7G%X^m9`nPw+Gpr@;*HHK0LTndrg^)V0dunC!0qZ!SLYD z-NmEu;QR34&WJRR(i`Eyo#SX8r8mNZJ8{uFE}-5#_#yk?&OkJec5i&hKDZMK&7<8L zAF>bbEI~X94}Qo#xKsbkqdlKLWFOp_eCE;ajStxecW$0}w0q-2_Q9QVhezST57`HI z&YXF)d*eg)!JPtU9_`-vkbQ6`wc$~C@I&^&otkDIr8lwzai+PmZ2oLTw6+Fs5_#r&F(@e~x^hS8_LwN8*_Q4O~ z!4KiVolt_;!-F5P5AHk=^C*epB4x61vyEi_D z2Y2)@kHUi=!-G4XcOIq9;lUk5JCD*E;lUls%A@e$$ME0|PMt^Tjqu=(IGsm(ZhQ<6 z?vTKFl->vr?!Z1Cg$F-|2Y0C6JW6kb2Y1-rJW6kb2R~*X{1_hm7#`d)a=aBD{1_hG zA#d|2y%8SVp=>+~4}J^}?#Q%xl->vr?kKZ)l->vr?r^brl->vr?ies0Wgq+)9^CO< z^C-O$9^A26^C-O$9^7$OJc=y(F+8}#rsh%RMtE?CEzP6!MtE??cf3Pgx24=q;lUlN zF^_g{dy!h<_Vf=A)OPvODs-9C?YZ+r?5ZfEs*w0q-I zcyRlk^C+_Dr|{tRBcDgRH$H_2w?p_m+P(29Jh(l(c@$Z6-z7iDUN=5P7X1_++#c6c zCcP0J+}_jkD7_IL-2Tu!iY&VCF&QLnjx4(G@|Z_yb7ax@$)H2c2u2o-pA3&Of{{hz zC&Qz(IkIT{WO$S|hX>;)gPJzI5m_{TGCax%Mi$)}muY->aHo(42@l3k1|*cjgWKJ8 z3WsudFn%&T%G?MK?j$C>m3=UNG9c-V?1MXMdJ3mEvJb{jhDYg*?1S->K{K5;XCK^w zHV_OC?nskCGJ@g3_{qG+Plg|Rw~C(($Zm7|WI%Rr#7_ofQ;weu$Zm7|WKfxha(FO) zGCbO|j%@7L&KN%#9))svkhGz@O!mR}$)Jqiy+Pu@lnLeVVEkk#9LnKAvLo%c!h`XX zLAxKy;X$I)Q#fr755`Z1xAxqKpA5!<%_;Gd0SV>ogYlE$Q7C60#A$k08Xm-(ZX@Br z_{m^@2<7l#{A73(%HhHI$?zy`4iCmp<~4pY{0QanVEklw6w2Yj_{s1nlye@8pA3eP z%#HA1{A75Pehv@DPliY7jqqUnWH7L#pTmRkli^Y3MtJZk`(XTJC=<%r2jeI68b29+ zq|M>M_{s1nZ4M7UMHY>p3}w;)!=v5i_{o6m73n!V7(W>vg>rZ>elnP?_S}e{3`i)42jeHhqqI3Z7(W@T zUV8-NCj%17;lcRH@F=|z9*mz1k9I%DPX;quC`T534iCmphB9e$crbo4JW89xgGAe1 zJcz$+ex#qngYlEWb{ERw!T8DWD3rs4@sq*O7s`=E<0r$T%#FyR@sr_EMliBy{A75P zHfJAVEklwl-|fb7(W>vrOlB=<0r$T^hS6velnP#)8_1h@sr_E`Z@bx{A75P z-Utuks(bNZ{A93chjR8o+)Ps@l(P@UPlmTbIs0JzWU!5A1hWsmga=>3gYlE0aC##= z7(W>vr8mNZ@sq*oo;HUE<0r$Tv^hK&KN%jS&EdiL$-Kr-h999E9*mz1k3u;-i1~ka zRCq9cGI#-`pTmRkli^Y3MtBfw>!y=^Fn%%=PMfn2V$Zt@V~5L+-Da#@LG}n@LkhC{ z84FF2O&R;gMsgmEpA4Q0p`7zz{A73(%HhHI$?zzYvk#(;-Bsi~7(W?&BGTsYVEklw zls1P4(RqbV+8iE?pA5bgX>)iGZODEr`(XTJD4gENJ{UilSI)`%t?YyGli^X?oPCfZ zSqi7k*#|kFs`*-g6^F8c$7A0AB>+2kJ2022jeG$H&c2e`(XTJ zc$9t)55`Z1N9m35VEkkl?Tlb_GVzn)QFF8c$D4<55`Z1N9m2d55j_1oB46g4Srmd z`Ej+GAJ^RA$3>YRSDX29^#(sK%KW(63{Qvh=0T89-aH5r%6lIK3FXa$Afdc@kVPVt zHxGh@^5#L1P~NgANGNX}1PSHMgRDBCyk$|4P~JQU63UwgK|*=&gCL>2d5~o+ls6B8 zg!0}8cSf2_d$?Q-aN>P z8_JspK|*=&gCL>2c@QL&HxGh@^43hg(7@v+Rt{uwi2jFquW;$(2qi}f+5vupw%H>2W&aP@Btg|Pv~EEi)_ zOdnCZN97x}WmIMfVv2?!r{x@bac;U=mcwqgb{ev0!(Lu;uFWAfTXs&a*=TcIeg9zX z{Yj7TjLpS35M`OlY`y-bv+`g!A?tJ&<;?;(Qtbt5ue-dtC+uEZab()SUMSwj0)lhU zRV$u5dp_abaZSEhx^bDg-sZ=(HsWn`Et|N^K!)qLA z@p;;x8b;01v^fvP+Z>V23g@#;H5(B`Hu;@8_ucy#H1KoUeHz6iUOW2>t_072{|=9w zRIyh$czbi-l@XRQ*;4qC+V{eS>)YwEj+rCod6$LQ=`CJq$%x9yRMn*)w+n{u2Hm?-~D|V8_&7@?H~6FgbUrCaj{q9OPA@nm+<$o81rL) zPE5Y^%5GuovH08VhQ-#3o84|$OpzeFVKFn}c(*H!4G<5!)U|gcCR-?n6=DZt5!ua1 z$Te)Y=V}Z-IOpxx6ZHH(rW=0jZi!ij`5ZI*9P!^LmIb%JJtY#S0+PBi{StA4 zYv8UOsp)D);yGAkc1I=Z0@uLZQ8~2XBe?6zsS9M+l@rzboS*oSy0%<~L*f3eoO?j_ z2j+D0K4%erq&>UMI2~T?;m1XXAJgH(69DJM5Zpp8gOg_LZ^y4OukRU-gJT-DKM+sH(AjGp$klcDKJH56zl;;)em%a) zcth^jBiDfJ*W*)+qh#LNrwTkKAIR>X`0(N}nMa%T@R;1)5_eHtCwGt0ziYPOL%A!B z7bG5&`>ps7;ug6_Co48?kwNy_0ECnB8z~sk%J(fd!4R_&0 zwBu{Idn`sXoDTQr#E^y4;ci%rOCJ&;jniQsrLO43aUa~h5v?=G?iNCyu8tz=CqH(j z(GBBkxGCf6f0c=r7w^N}=4fz1Hswee*rj&=?A%1t?%GmuR=S}|s5C}$~%ehXjB-5b$ef$ZLh@(DN15Zot{ z4^boWBTe1AFpit4EBuwU?nBl(e&j1Q$Ki{4bvS;F*CV|BuJ6M2?W!I3uM5E!Y9onX zN0z)Q#Z%;JJXuAq!Z;ILl-WfuCVG1eIMU-1hF5|JM)Sro=q>uitz}QQlvl^H*;UuJc)6+xxfQb6EY4 z|8ZXV+h?-rTwS#Oe3?Jj;I2PE&!4N8)}NeL__y7D4-+p=b-+%ev{^oDr{qpa=<23!B_P@WTUrC+*KZfxC{eS$^ z|MTrXr_F!&-TQafl$>XO_uYqgm-6TO>*Kq(8fm+e7vG^Z6Yi57+0? zTTuJ;_rL%CPyg^oZjq&f-u?1#zWtYPe*FEHzyII<)4OYi{qpaA{cD7y*Lm-nE4=r$ zqxaZFNAO>N{Ep01zgndJ;oUF)gf8LT`>%if@*lpu`!LvtJN9v~k9X|TV4v>T(_l|` z?0K-~JN7cz%N=_ij16YKlBWI5{K=y5`15Pq9u58*N`9eTQ}RLW0zWVC_5M1ug`#xR zjVP=4phcC@D^mlZ9J<`h!rA^d^#CbW0F$L*eliS6R3h zl!feGc6|jR*d1M8f!Ms!tAAnWp-}CGj|Z*(g`Ed|w0Bcj?d3Fhqf5_HmL>m=t~Rhg z-qFV{AZ?I&R;_ z*bG|V#@Gy6-^SPsTHnUl3|ilY_&;cU8)GwQeH&vlXnh-F13F6FTZ8HF1y_sd@da0t z>GB0vo9XifSEK3l1y`%-^#xb6>GlOzyXp4@*Pzhx3$9V2=Lcpvy?rHJzu@{x`hLOH zK)Pn}Yo)%HYScvcM!x4Tv&vTwOw{M#tYNp0nvl?_$9oyjPovom_a0HY%A5uWp+-%2mDw7LCh=_jg@O$@^YQCg^hLGh&y#8R z!mB+K*f@Ca{?qV<*Q}j}FTCko^J*dk@9nwf)kN{#aYVDB)AQuRHBTmj?p_{k=9KSo znRvRvd(E0axrJB1%@JbZHC_`v2R@-?_j<1dV`6n~_=Fct`Ce`3!2j2O{q_{HPXrM) z|Mqu(`r*qQ6Sj2DnS;N{S9MA6HxYG2@Vxgo-~RArof$6q_G`JH{`Bp?{ME1KH1YaZ zD3$jAs9_RE{>!@uHadm*-@89NuoVb($FB2bV{oTT5p%TJV+Y9EJ1jsjI~MF-t5mb_7uH8$$LJBHec5h`qE zbYm-Os>&_(b79Mmy0Dd?tFWavy<@~p_P1eV7%fDVTc*RpR^VY_D`cmzl>@Y}?q|ZZ zN9k1MRx+JCMjT|%mk$`^dhQZJt@(#Oa+Gm*dRP$k9So7am+X3a7r$Y>d*!aZ*KxTP zG^TmQvN1ZaTRCbSHBDn$BT%T0vaQN3eMDg^WaN&KOS$=+AXV3kox1y;&{eG)AF;2h zE!ehuZZMRiExWgcfFZxT;$80L(5tFnuGCLmZnTki3>B){a>cAwInM)vN=Ng3FGs#2 z^$VU@JtwjBX}%C9TI(}jP+aoL26d|gQ&+Kh*c zzJo2Q*Q;43)u)6v7+Yx{t9{Gu^NwKx()c2W9Wd=>(RcG1Hly8Gbs%E);uhgc#x8{e-ne^{5%fv02l6^7Vx2)MsXrljsGu3vB;kb=nX zE~lEJXPFDh(QU?$S>M5dMtwy#nqHfTQWqZ)ur6Mu_r{I&-o6n$g)MLFD(5rUTqdhN z<(Q{_VKdVlLVuv|y)Fv9*URFr@8zl$ziS-@w@PS_Lh{ibh4bM!I^XNXk5S)-I!tqe zj@Gvkudg-}a_>4;AZyjTg81$j5#|~rL<_ZryAIT5t}D=ZTsJLM9V>fAVJo=2uoYNa z*a}IzWB6g|dpX)`{t@b`Z^O%6-@&r0?;ymp`+%-eUxDeILWsWh1y1&ohrl$)iP+cK zh2a>5`K=G|7ZP6*(y#ePbid{X@%`G%7>xtHQ~Or#>3dr)ugAhxKFGpW0=2?c4x++V zu8zW1l=~ec=}7Y`_ikt%C)z^e%S99}hhtUG18$|z8Joa+ohxuL)cQvhzIcYP`Ed)o ze+Pm0Et^qp9EYpi^1i)eS60HpmfL1wE2QU!!EKt)VAAi7DWUlYOy5h0xz>$gLBH#{ zhAXxDeo`4Vuj1+GI*_xwuUMVO+3xir08rT;5>vMEt+xinX~<%3+9>|l6g(u4gSh+HKfP)_G9u;s{ouLB{j_=9pQqgRz% zF4l#uoFj!T_ut0ce{5XEzi6{pg5vwT$Qv3r_{i_BfRlQ6#d;LB{J0zI^&VUEuljt% zjx0OQU@h~5t$b{^I`}xXnM(Q`z`H9VCC4oEuYeq6$5dvm*Z;fc@$dlTvcu*yDV&7r&!p^gH_nd7gN~E!g0sg-qaS( zZ_NwL($@bGBPV+!*vd^=b;veGIq8B1>-__4U5s+4hoPzVw~5Ycy&jnMZm<=(S@c$d z#llubvclGtVuh`gB6kcWt>!727S(3>yw_MHd99}-o;IJOtuxP%-^k@w_L_V9utD}Z zNj`VaT~hP7+zOb!(<5+0bBKhL`d-q@h>xyJSw)ZJ?X|YUZhfAC-G0?NEwGgZ|4xrc z)LuK$jChRL2Gu?SXpODl=Bi_5$|-E6O1WY9A84PMsITs4+_+k&ic8?ibzJm3cUfJu zccb=JUlA51-k-3p9!pL$t;?Ndt@XuVD^dHseVogBEb)D7KLFlcu~7ByN=aAPiXD6Jym*>S25tAl60@$jxYI)wq%lV=s{R|}MDZn-owlD-$I56}b;vJ>ax3T3y&Q_s z<~PFRTF*+*;9;&I*Y&k8Fe8FGTV8`Ip7O zW5l%r+EX}vXr7X6MEe4+6>VQd43ppCh-RA41g2^}gX#Q1?t#{WKu@+9u$6%6-lq(b z`jijp`G=a{^8k~z-}RbEteEB+*B)pc|40ITjS(j1mWMb+X+OeiNozLE)0us?kCr3A z+|TH#)fUpV>U+t-s`*D|RLya+oHh?4K6?(KqG-OPtF)eSdeeHvYVY~X`l9w-_etL8 z0qz1CbJmw$6Pcxla`I1PVfv(V9`U0dH%!NBA8K3mAMO_Fzblv4{X1-1Z`VBdx!mqhI@+%qreKKw$Ds0h1pi znEV*Qya%u|N-u?4&)>${)N=z>pVl?J=5%&prnOCkW9Nmq1Hq~fF%PX z=}8sY4=o@=N#dJV$@E*X@ckYFjF~idM?A8?TbTNW4I)!@J~rFP>qSk?hSC9qsRp zQ>px9z~tW!Cc7z^Y*}E|gFKOjqt~?wX;7P4pL<_rB&BD?yH5KD(u?LUZu*kjF{?>_ z;aJ;#4=7(&qLBM|pw8|!V$2#n@4Nn9_r#^U#-b$oomx}QRZ{q=`W}x!&1ae?ohnB<&0R3fU079pkN=DK5={FgpQbet z7L+UiruJcd>p6s)Mm}v=yyTOBfkknogK2y@Hnu+|<*Y}?TTk*XSo`b{y6rO)%ZB=e zB|>~OYOdxPW|hW>%X2j+;TXvvNb-`e=BnA|eN<`E0dPZs&Ib6BNFGPSt@#Y+Yd>Q7 z^LG&6-0KEzGMayLlVR9Q%ZtKw8?WTFfjcdkyzGOM@c;L|AdmbsXTK9kxqt_BN zppvCVT~c!U+(RHa46BvS*xWYNXU=)o^8nYQ-ru;bNoy?ZD?K$gM0m`(u1IqdH($+X z7RCBD(m2>Rg(X(H%?Tmu{hX_3bk3W*Vl+1h1*m9-Ok-{%H*tyDR(TWW61)b*Id z=ze!y`1!UD-c=kLby%;*PUd;a2dhtKgi8iN^y$484YK9zxg)~w$`*rGPd@aRb*%#! zQ?KR~@{q;@dB~V`6y)KTEpXI--DW;ldjO)I&J}p}NS8MG+`BEP6E)XJb|Aenh-7cV z)q1Wm!PkY+Z|4Enx<<7z$!3_vdn|c(-Cy+fT`~c#41#Yl%2@|M=v<#yNq)TU6}Z1k z41)TZ)C7g`u6Y{Iea$PfBKDd%@5&yEyQAhfZUDU|@*;uJHSftxu6af7#g;A5a@mee z_@MSTcHcfPu2TeZb9KaqIyt-vbjIgakI)=7d$?VEy^x#vBK!jfrtSH9RN z^w*___c5niiht)_t@oeVSF0RKF3a+$(alF}=jtm`KKC9<%3t#l_Gy>%*%VJx^ECG9 z>K7(B?rJ@5*r%)SDTkurUJfT!#ZV5W{=?kZZNV@h-z_SY9&=nPT4qJr&ce}cK?trs zopQ}vVDd>FkG4J|4%T`LFt0ge9_N5u-5B=t@M!ha`?B` zxN*{z?q)2mEpH6gGA7u%+V5Tm%vJMcBKlh{9?WfFL9Ka8ISx%VZkRQCy~2qM^MuPa zA5D^D%}I^{y&h0bd=4i2AnTg+LxZ&*7)<_GNK)%6xm*8XV$pif6&2chxI4aO28R4s zn!B{F&jF*!=yT{`Eyv=rv(j_l+Q%`ab&;%f>mKwfr`Q5cc`GIFy&M(SxN?Orw=Wp)%KibiuEM^znRuaI*KjlMSTbCXRf^JOe8_|DaWn0VIc2H2MVUW2R9?>;73;0nmu7Q&6kAE^zb2WKQqO9FGDdW-vuz~MZwlZ4Mh)4fAs<8vOaI|?z#fA-jz&_M@C^>TIBjFB?pIBbe3~qM2GY<6Zd@ zgROk*xAu*?z2_;{ql&k{TDD-o*Cn8LdQ2G6V@>RSW~FNz0a_$NMQV(|`g}g+#Ba1j z`!pAlwyugS@sjTc6JHXN-sgDADHq6Oo!45&N}@fF9kk^&JP5G**Y|>H4MRQI=LLcd z6bk^RGZPXG4rf&dXH%_zbAep9WiDuId2Np8rEfx@kv}llx@P+}H^$Yad120`y(WTa zZh*C(5Jq4j>TerKOqkBjyeoexuytAQz0C*tiZfm7PkC29Cul&|r4)C1_$ujeG#x@-JxAAlX|MOjeu4{MZs z0+XHsc(-|8PT|6^b?@?e_9hx4~ zuXq9FuJ#Hrtzlqz$QC_ZQq>1wZQmzZ%et!OHkRzZy+=`Q-HBD@WIv*u&YWQDHuic~ z_E5@67GTs+&h@upLo4~2av$6F3Ffh6i*Nldvq1V&un(q(!lZc>PsCn}=kkr-E5MY~ zgy=1H+xj-JUhi?xRQw0lTCW=u`qguYbRMm9!+lr2GlRKa!mYaR(S)mCz%*aRy{`F) z)um+%oZIC)h(b9+S455eRk4CZ;jZX_Q9&WM_8lcJ)>11X}{CR~4?`#ks&m8$lAB0@BWaOG@0 zChsbj02qh+dq3mSrd*hm<0N%22evMtd%J%yl%9Vx{d&E^pQg`3L?o^2n%>e|YAN*< zn^|G(mhz+JU9WZH&RXBg^`obHvBdWG;8#}+jy6q=8mxm zdaq#6`+Ui}(ghK~D|`HSF-j(!0qOmX<)H0791tz@Pr8DyNWjjlYRqC z`VBChFTwb_uEYM><2BO0U=yX;dQmXxv1Ujs)fV}9;RGdLY%tkGz?26A zO!_M@>4Cv4M@;jI2PwDijl0iDbh*WESP_Y&?{BlOB;{l~W^fh9M>+XNfT_&{8xXdl zdZm-$T?DavIlNz#Cm&}s9OCZfz~4L`@o0+yQt$vG9PJUltWb3@Y`#k6AqDMLT z)`H1zX)wu1tW2#_WwqjF)_c8R`VKJJNx-C|1yep>FvWs`Ngs>R;8!~PjasVLl5w9@ zo3Rx&|Kc{RHTIBWi+Yv69ZWVpuyrZnZ7ex1XuTgDt=d9frrIw#R>;-{wr=9AIye;f z7@=~jdCI%WKg3NS>n7GaJ&a>LuV#s;`NzA8eFbBa@3z4G-993|TOZ3o2n9mDJE;!( zJ0@JM*B6dVI$MG1Y{e;A=N?>fIxc|^lYMpE5BweI@6~3U#?-!7#bYmbhB}K6)-oZO zTc2rI{{|HEgirDvcV zJ9XFb@~O|_Q%CFJCbX~D=LzHMxi(nqPf@IMZ+F#;DzevD$|~?ve$A& z0ir~=kAqpQC6tq|28=IX?7@271@js)O2Hmq+{1dkLZ+6yF<8qlgSBkS;w*g$<<=d= zH{QqHO#I8ct+O0@t+ND^y#mka5A7Q@So;%#aR8~lXF=#abS!OZ3ryI08eAN7&Ku11 z2n*~viQcT`U7}$XQw^rQ8w;P#repQ%{Sr*R(Dnu`bold;hJtUN3dQ`=UR^* zOGJ>CUr?72QPT8CY0`Z#DFKbK64kro;??zzE~DEArab_?Ma!Z@RLi$}FpV4M>6W=D zCmRNsY#3+?6iW-{{SwUeVnA+bztp-@oCNm-S=}2D7lVu zvN?b$2R3SN6xubGlQy)+4etoeKdfb%yLe}7zJRq3k6KxJyI!0*)fVpmaJh9+{cX)A zU556Vaoy@Ujz2@|JJAGrP2`l)elqj`Qcbm)rAhra)1b!)OnWHtLXugD4U%k&6;|sr zaV*mLBJ#KX{u7w`o*rnOISOg{^?~VpG+5hMz?5$oj1yA#6@%V#1SW#ElVFgO%@Apb zjkW19H#8oju&Z)t9b4ytu&X#0F!^Y*yLk?QX&s+Dy}cfgr&oI@zSCMK@mOpfErO$L zEQ4v?1#4Re<)lyKkmB`VR4v_q+z!#cN9bPVZ#!7G8Lw-UBlo_iobo$@y|&y0roCtA z_1qn-Z3$r7r`e?C=P_9GB`cWj0HE`f(|E9!C(!~^b$_pObn`9=Bvg(|mKwu3>VWk* zo_bly>s`)yz5Zck$H36#*j8(va&nem)nLu5oTg9uN!-f24p>X|V#qGuA9~FngY}#Q zll>R_hipKD^;w)lh4QykPWvht3itjF=No|@3ga&KBAY)Oy!>ckeEF*k);cXjOvy-; zQ;u3N+1|lqvjNk+bCb%V*HbX%I0BP>6-@bBMl6<%YWzHU9*l!=tvQI#y6wlG{;fj_nM8wYMudWT@~d}C{|m> zQK9*F92NRIsI_g7le(kN3xl=HIu@$l<8d;7?U=p6I;I+PsP6w@#N`V%nAR5*Y%Tks znbTeirn3gvp$>dRy8p&Uq-14I3(6;mLV-+y)%Rdp$KeF^%lM7-7$NYsu8KP3yM+se z?4g5c??EtWAB^#gYWZ}qmY>0-&qgZIxneN!8;sQF>8B?GBD$Z!+&;F;USqM0sh`2r z&uDYp7LISdmQ4E7-j6sDYfqW9_PvLK>0M6thj*1%oG=IZk+Gr7h3|7rdFZ4E>$BQm zt#<@N!_n{Jquz6OOpE#s-#bEdp8WI&(^`U>P-_mJB-$&$w5}cPi0Gud&DhmipTo&T zx^N5_in9UZuv`7Y>9_TNlTxS8Wnfqh^{!AO#mOMA0nkyFRS5mpdc}EKdo5V&+@L3)a&BdmPaDgX z^d*Do+ykaDXZcg#6K~Ku0G2=V7P0W!qYkms_+*)XNhP3u#zfHe89cIJ^cs(`oA%x~ zHqz#!v61#XMFk)}|BOwuc^a(sJ~JBK7F3(^3mUBFB$#~U=mE(GgY~`zract*Kjrux ztosiP1^&JNuwW24VXV(2lq30s%IS=ar;y^Tmn&lN5tw|%!B8o79bW$^r#lqDwEls~ zRz5C}&A(uZbpw+=2TZ;~VDc3L)43K*`f)J0roR_oA!7*rDyJOw~q0#=e-#VD&L@?R>!IVb{O!6)mD{r?Cy=}L7E{5tpMHEn9jd;-g zOoUzUwTN}fB|4&>`idPue1s0AWtHKW)^U$(t-g&Vw)X|f$z}tFlwSQZp-{%;7tXt0 z*Ek)u4ID96Ipe@&R|CTZtJ}iSwAOLT$<73(yysw&Ex_bw$>G;s(y|Zb&^C9yb6^#AXdf2&(s^(+kUuNfp?$bj_1caJsO>^?)Ht+HwjGj1 z${q@KXdlP!-e=GfwhY3%hxR#77Ujr5)O|Gu$Hr#n3)A@*H*?9}V4Sk`uJYIbNJj=H zoe`L15HyVP7XZVE*7dUYXbofUQTy0?)GzEk#^gs!z4HB-jACBHn9i!#{s+8^$3TCF z{SPQd=c}B2fGCGWO63&SFotmfU zXw^PU6RpQ2Q~?)`>Vq*?7*h^E-c{~JFxj0^mdG~+OgRR@lw%M~IVr(V4|kg#mqj_* zallXt_PdT*CR#|oreM;8fN`^e=;^K*%5f}FIpzK&j6i-AgY~%wRf}RH!SJ%FI%tXd z3as@dqh)P9(qtg+vm_YOMc0Aqu)hs@E;o*^{q7_zXbe8;`G?N3ZO7wo(YBM(4EsCg zQc=~RoK8beXCbiGb5TzI@(5<`XE60M+4>|WqF7cx<3Xza<5VV@0ea$du+}k-D@of8 zupY^GdNB1Lxf9wyoU)T>w#%*kd8ufEY>%*Z_J!sFYa8eXTZv- z{F8&}Y&!bM-WQ0?&^igGb2q0(?E(1Wv>uoPvGkK*%HcAn(6-kOruo8-tnnZ&!F|us zs{0BJqvT2A5)S1ED=a?3dqZP{2-5magjmljFpV2agw{H|LDYYEhiQCqVQ#%GVKyWT z>NeB&2TW@O>gU!qkE&Vpz*^T#IoVUdbeHL19XrA_K+>r;)0DQeF__k3be63rgr$`SW7u5t86O~>*`cR-3Z`{! zT%vnjLqDm022(#Xb33Mn(}&kdFzN8P$*OJY6Gqjx4lvpMz~pmG=P3?tFrBRkffk>m zq3yYb;$Qg$Cw!~>iU}#-OECFf4%TZ4Azh07nr!twMqtV_i!vJp>YYCZ>wX4fFjY=I zRFqSGDa>0sH)7t>y?BE)AB`ET?Id9GzrqYA{mTkDD;@-61+4GDiqmIALeq3t3YgAJ zbE8GCorAR;28I_#*E@-$gu$4?2+wGY`KRw-`K$F0!I2H5-ktM@%CSatTR49-uj09i z36%YhKirx?2>JdF)^Z}4@;h>v@p=HJ^)dmEax8QofJr`>_z%D9wFDm)ttD*d zEnkgwu;o)Q=_gT&dLFRYX`Zr(wVa5;7pLgz=W!Y9@1T7c-LzZID02EG-VS91?X%W#~9TK9#ki(-OV?PYHq ztaZaIbjmkJ_7d4w2WwfG;2FgXkO)NnYlCTyBQdm}DvDtOHfr2B=}JaI5@_Ai0E?TSuad_1{%j8bvbMfqKDs7jXCe)fU0+;1DMmQ zzYUj|;)P+4UfaRgeX0)R;+6^71eO19u+}3XTq$=9CpG1!8m#9%nC#~qlG(hweFR*U zOh`ErH&!_$!ai#t#LBl3Om{8tvGU6WlV9#=1$v&2s-<HV57X*1L+mA^1pp0GNFJz!WP3CjBHBMu)DKZL8-2 zOL6OgX|UqFW{Yo`i^WBD61YuqHiL^{J1*yD=>rTf`B z+K~?WEI#7Ufu4MwnHb8&#qNvLTI~ZF$np!EU-8KUK>?`21BUju{##VUa5Zq&Ke zQv1T3D|(EO__bFc!L^MZdK_N5eYgNM4^mF!!ElJ**lAlIMvqGOKfT<#NHFD#oUEbR zQ@~nZH|1LP29s|9n9f3&FqEHlu+}$$DK80_pKXO)Bb_ye(U;1 z;?ll~dbiK)ltU1!J^*nYd|LO_TtU&}F?Zng`iwSA@&;xN$(U$Q{T&D~=6x{vrhqBtaj=fzfTih}{$64|jFCvB%h4@0 zhse$#{oi1{r+~@ta56hIzkx~KV9Alc9uq_N#SG>?Wdl~5k&zBq%fKvQ;w>=wn+?|M zADGTFEPu*R116pUlTS35a!7(HZyp$(RpSQMdS%M#&dI@Aex|47XFk2xIvy~R_;tOL zELIpNTVdw6am~|r;PdG^JjdBm`W(fULN9c^bMv7v>7aNQMp8M?zX{FNx3QHqA02da zqY>cuXpvBa$5a))`3`;hvNsat#Z+z8V98<_Gb zjQHa5B`1;UApPV4Yng#Vx6Ur(%GCN7FzLgUDkLBjp{fug^^%j&nwC}^Aedy~- z_U2v1cMqm{#R;~3c4)BtM!@7N4klj`Fx_tern}j|q_+h-w2x&&^MLhK{WlqDd%n;V zzbpF@nbk3b>0NF?5vCk!yes=4nDPU2(pBCqFz-=Fz}f>y@zH1YIXP?1Mncm1%&nlU zKj2-QKKt7^Td5E5i!>%(_}n(;zGqL-cyL_kJr7Gq>j|NUCu6toMfQC(1+rsy z13mfIQBHRcfMNVpTcm%%#H>32z~myV75QDJBl=FurtOk1t-=eLm+<>+zjbti502z1DVE-j$7SO#Yqc z6O4|jKHx;GGZS3t_Mww$K4O_{`##z$_a7o_>;EX{{zLPnwH>u`+qQA?RSsP+c98xy z7ULdYGH7@_SU7raAR)ECH+3KosSd@&acY#UZBCLpmvMs785>OJ)$#l4@0e?IdpwAw zkQ{-8r1g&_R_iVnYt4fv^y9rRV5)4r8R{_E%E4fo>MNv4%`37WNC&_S*B(IYB*&uO z)p|Ba7L6rKzJr5_x5lp4`v-Qlwlndr@=k-vUIwNZ6EOMYgUNRW zOz~SNJ9S?h7(!f+5!(?IhNzr)sxVqozai{+_x!<4hWiQsyD2feI*Az)nVA73UO zM1}0{z`{a0dojRiEO8%Fz3`U$6uHjt;sjJ}=JeJv!I&3h{{T}yK`=b< zMNhUO%6X0D)ZKnil(SqyiUpl@C$OXY8BF`uq)qO=njj9pi)VO$2Wo~Mx4C}0=Niki z)}dLln?EKPz?kBM(Qqrz&X{b(Z)mEtuZ}~%#@9LBp=VhX2W{!dz_jMj1DemIX!IOn zU)A@bRyKwkRrfsx?*r!Xh21okEU|vq=WdQ$T8Cgu$(U$fbtb_36|2UpOL)-_RV&{)S~jV~$l)Iw-WF(vh+1x-IyP^q4b5 zZVNH^&4W1XX*{S^^3XWR`CZ#9=K4nUv*Rl`Ngl=*{%GDp9#0o;ZORZF|75tVKCDiXGL^dP(^mX;P)VX2}S~q`6w0CFDMmy zkLNJ1wT=U8`#3NOxW1v*NnF(1AA}@3wz-0}PY30cr<}+KjPzXx?m0aVa65Ec=Af*1 zl{adlE3~e07}7k&byf48omT54g1hEDg0bnL25z32>qIn0gdb^)IQwZHOw!x_-bwf% zj01x(`8(oVN49L0(>;ZhD$KJs=tE;q1R{9YIuA{^Qd=;jud9S3a$a|$B35DavfmlbMPQQR=$77U@Qo?dIy8~ zh2iKStZjVrE?H7kuGhLL$4c4da7xg-Y-RU3&bt`A)fU7TwRr-!RY%M1L$Brb!SD*y zyRd&_7~s_AF;b~q$Ba@3=UUZ)3Po*3fiHTzdY?nkW9<~Z2`=rnjPtp$-YcL-Ov9b` z2jiApz1z72rW~t#mqY2Habx|{cd#wo*CFWX9=5?y?5U2vONeqzKhaaJmnqjV1A`F- z({&)Qsa`f#^*tM_`VWh(`j0d~{Vskowa?(~gJVng73%hqOD3VG=RKJEd0ZuX9$?nh z_l~Jo_0A1?)i2~()Vvy#aL+$hoYFJU=1Jz$^zeyR9jK7I|L_7;pMsU&19hN<@3CYw zN)AIdMSXQ&iwEN}uxcM%UV8xLa7|GiV-)UpQ9X2@j{Udi0k&SZkF>g~L$R;4g_~fy z|Il`pJV`keNiNs1c$DKnsP=In?D3fJLG>R(m)bm<{_Yp~$l*lBUeWb}mE1`=9Lc&~ zY&+U3CMK@O5|_%dlRys>P`8;I`ZRY*YoIab&XPJyjx$`Jg}|s*ZD9*-p5c~O%{4gR z?@knD^(i}}<`9|g-7k!X+A;!f)04cx#!Y(G9wRXA6_}p%9pk#y^MG{WnroACs{3Vf z8|qy^wMA!a+Kh^^`wC2bkEKZKJr)e@t6XPO`k@hM+NK1Cr*!u-nD`Pkmt-0=L8UWi z?US$lV11`D7z<#}XRy*!Q;s0n?iWrPrIV(dbk~Em9UE*6i8Y77TnEOiUQ4huY5xGL zGaYph#?pO?Nv?Ewl*3G?KEUm|+ea*!#t7_Cu6=v384xns-vK6B1@)xHW9|>_xeKPX z4!eQYI>J-LM=b5)qp=Y*ACd4-`{g7->^|jqsWltjzxI8kFpb-o8(VHdGopC~R(fjs z6qm(rGodnN3nbqKLGHZ=OoFNY4m2L6`{G?xcs&o$nQJ^a>Pq$oll(U>Hfl2}g#%Xh zP}+jeyV|V$&y>SgsOJkFEu=+kzC;C3`Uu(#YxVbnNj^mduQ5kepm_>b_7v)v zfVx@}(I}K&igNg_HqT6ePp@I4W9)Cki&p)Ij#2Y~UY48)rnQ7wRr+VnOX%hMJH|n= z=OjA8(*5%;OLp@DnD~QL((Oa`>3*5`BeeycR?R;Sb!~ScD1p3w^)6WF+?$AozI$q6 zrQ-p^j9u#xjD!?-AM?SwU%=R47&DNGnf%lu&N#|Si+8B|+1 zn)Z51xzE0=1NWTf8MGz6hw?6~ zaleakw%58jBkFr!+m1u~FhaUq$4yMR_BR`>@4f}Y459D9Wl>|q2BPm6V^Mz_M=Om7 z0iv1*=*PPcCj6+sjT8`Ci;>V<9>UWK$NFjumi#`?P!35}<=QUE3d@?^>l){2t##ad z(J~00wFszP2kW!3j+3Ka!rHp;Ibmyza2M6Sh3c@+5U38@Uxhlx$-mn-iYa03FEH<7 zJn3>cF{@8;$M*7O)6jR#ubws~=o{CFsb zVZ6Qry^q#Ew7aeUgB}J^z1#Ua=iuBq{08e7tijA%nBL2;V9Iq2)?hkg57uWPFz;oP z+P}vV^+xN*G0x!d)8DHYG1|h~q&{VB>am1n+`hSlyX%6{@`uJiSQp(IoLa9-8ioy1Jt7R-pM7X_AhW-`s{-OeXCZIO-wli{!2_wq01 zU7Y>Izql}~ErjD3Yd^f9*SW_AlU`~v*lVxljvKGpM9PVeP;jVEab{AV;stK3V;O1R zII&beqq}a~1eYQXuD0GQ5d9~Zjn{5u!5cAs(tYuz>VcFa7-czoZ~mQlrZ`>-=L zf8bFh9R+R$S~rM&kZguqq}B~Ad|Ee<2qm9l*_I5<@v`ll6I~(s6fsA<&vKx3_j!Uh zyAQC9^?HxXgxg1c*4_h%>=XZjwGR-xuVwkUm%GQ8U9k0-yxZ|_3>uD`epmL;xf)Pw z@uYigp5f{w?bB!l+&;w4<^?o|ttX^j*}(`dlU)N$wr#MFnv*P7nv>%b-D5dE(cM1G zDQX`ht}`sVrPfozYt?_~+tq*Q+jRy*%OxHh7xiA7P!&k78}mZ1O_&$7hT-O0KB?U5 zfzMOVQ-z%dT?81_i?g^ej9HD5!(MX@Q=2jGjf7!H_kcP~x}^~< zOpmk(-4+%O&D}Aqsa*Rt(+5m8%~P_r8pBW`dKj~Wu^2ao@yS@n6Vn!qJ1*Dv#7#LQ zRMmlHR~WNgm~7xE6FX-*3nyMr{Vu9V)q$6)>fm#=Povq?`3PH^>lkZHwHa46?F(#! z>icmq?74xYtaX=e));~LJ8-D!b@wyMpq^JqW|Ak7HZ)&2scCIOjMdp?(*E{dfz_(* zet4!3@X~#S`apev%dF`kkn7!!#bX|DjOsOU(f~Ct5Dcm{VuCW&7KX!E``=H!9e*?! z-t66G`@fKq$hu8VbXs3^9?*ueMAk5tZvaX!HRSTHnh=(04FMz19(Mpmm&`r)7}I zTG8_WjG(xC`@pb-36qVFa@rfgB%^~N-HKk{Q98;$=}N&!)Y0#9F01)WIr*1>p`Fva z^7o+}Qo72?w*u+3V^wK0@~PU#cCP*-U!O6piO}m@iBks~f47f|8q{Xo?`w^KVbDwW zyEvt)UoeB!yqff3Z6^lnd>V;D^h2vuTV;BEK%ILoP2C>4M3BrI%K1#949W7lg<)hNap}B$&;ha?)3^x zb|Em?g}|iC0OK^-?W3F3FN8L$UsxhEpUG#gzDML&AE0M2y+iv@KB%8@2iChRO=>eo zFs&~fFkKF-b@#zIhzUbmC9LmWVNMdPDjvisOMNhzT$>(KS8bWBL@GxD9bqJG5GH@t zN%iOU5s21fi3^a{tBI0uxy~;&8BwKE1(Uxhn9i$U1QgeIAQiVvNI4u2yBun2W77HJ z%q5==FzHk$TBCKUVA8pP$wzKdC2GEaY3|}yC0-bxC-nh3L46zX?8XR;>3*3cYQm6Y z8$(sv{ENn|bx@>yln!8Br_}Qq#~ZDabiL*{$C;Lkp$CI>`{sg4VV%32`A5(|^ARdv z?V+5KJ;%|Zl&l9mZm3heL|PkbzgN8FF@APA_8DWHQ;hH6c&YE5%Me9R@khKXT?W{J zXV`l*59|ju5>m^jV4bs&HY;c0VDd=-lb#<;dg{pl(dRrc9OkbZPWL}j%W@| zR_LzRdi2S(q5T(Ahvzuko96Q*?N=Qb1cdpFGlz}t7X;`&zu~MWy(n1U#l#AWAlB`h zm_1{bhgh<;=CJwb9I!Tq`Zg9Z?W-&%T617btvSOqJzp41tvNHmJvXLfnx~09Z2tqS zQ9eV^%i^~w*5igHOZr}zy^k>o$T1thoQDX#g#&ZzlPP0@VDp+% zklMnIqP84-teLus;~VTyujL#hDam2up4fXlr-0V^!X7Y4jS(%@nnNkAIhee}=j0~U z949k@)*SMXYE48W)SM*so#{EQV_3T5Q^35ZaP`1}Uf*Aa^o%-I{et6b@2jZ7+m6Um zf|0NL6!o~@RjfJhDu!s5rUSjs?Mj>BUyV7saJ9wx8F<(03;yzwS;t?#_lohCH|F&P z=}$VwQ6s6%*yPmrh^)Ql;6vZOh~o*-egI$u&h~f^zS?UOOS{LCdlfWpZ2QIz?Ze#N z>nXReNnT@09_aNQD08Ai5!~N_xS{Vrc2xT?T5F6@!S~)ngqY3-SctlCV7iRL(WqPtw@2WAf8B&T_g6Pn(|XV#c< z7!VzglT!2V+yE?0K5e|~^8)!Tq`${S$$aTNN*ska33R=L`)R)5%5Kc^5UE+TpOZR4 zdor;ZT07@n>8=B_OiJGwD}E{rPe0m zHPojQuhDatUe;PSZe%^LCSIe*ZQ?cby&UrnnD!pLU$i!1nU&6sOhejxCSId?6){`< z%N+{tKlUE=J%=V^ieu)Q8lSQ8FqF;%sZQrww3yn@S&FsZqfOKr!F>)|?>Rzf%|Uyw zGsN88pfOio&dDftn3Ka?J;#}Vng^43M&%UaiBQ*f1yC>l(_EXN2GKjrNzw!B+eoKi z3|Eh)M_$fe+sTe}pm*RI#||@d<--D|yjBR_o%fPHAP0`xN63${zGr#fh5P&4h)Fl5 zoHe}ba~ZK2(j#FO*Ex#V49{`g4^*%7>!EIvzw)S{B!h6pFrOP^rgop=&}HnvGuUQ(?xIT59G~O4%aN6>>P3{2-i+7`t-DNn+3qGqW4C!y zObf$!+^a2ME2ejtlL&0R{>}C5;u+Q^jXCNP z_30!HuJK?gmY!i!%=EfJM62{y+-@K~C(ELA1>7wmy#=QL@i~?Rt-GkhwC)nxr*)U3 zi{?02$7znE?bIA6GDGVI=33d0unx)|HFsb1cz{XwimScW-MRb1?<$T8g>>KfM|u_h z-*bo-OU@yyuJjD!@}zgUgskTfp^^SJ+;V%~PY8L>Q&u(i6)6T?F9zVAlgNakN8TCr z)hKH8Zs*vatguMSDrcFHu+Ia%zQcUzdH+QOaoQhuf&HJcP+&*N&UU$(@NH33CK=J_|Eb>#pnqqn{ zmRWJb^IXIIK;Pz=6)Z{zJ|}oieKmn-J#MJ4#7Btj#;jvRdiJ`@y$|X?uFcTABFIE* zHttAz7ngFq%cTc?*SdP*5zVVy?e2H2tDktp?gP41`#z$#<}UGw>U%JK8|opgiL5xX zVGyIJJrvI#ozK};bv9*%)x4Umw)qz?TAc%Cy7YXRxJAF~voj_Ze;amKy^BoP<3TK= z)_bO@eN2;5qg)s zr}sfzw{+eovRP|8s#2}(Sg}2B97NRzOmU4bU7+tc=)wt=k!%a*`Ny@E`ZnB=)Gvfj zi$6$VrFRiL)jq;6MUUlK{fr&fSl@kt!0P-FV2Ab*L@s(PcE(r`dTzj&T6dYy8Y2eX znB`)&9``-EaPb0hN}@-ck}>Oe@V@dM!1m!fe4a)%;yI3MRFCDPw=l+Gqxui;Nv$uK zn00o+i&5(pag~}wL@{eU#d@SYnXOxUJSrZYr@^FmB-T>AH6da>?=eki4iSH;ImGOf zObC~2-5{T;){Sv_>iGwz{fHT){SD2b_DftoB}YsO64!xH(_@J)y!nGtIF}^H zONWQ|i{#FA(P)1gc36EIc36Fz?x@1v%C@g^C^Ixh9QTdkgw}0Ag=`E5Cza!HB~1A! z(CR5KHW?~(?+qA2X4512gfaWy6UFSgOU@OwnIzMiSCeGA>t&HO=6Ff6wMbUxYo%M_ z=%PKId#gOYbd1&)hPS?h3~Gw~0+W6NO!>6Hlurvx`M$suFA3K7k`d5KYP8}lFvUx< za?0j4UM($Ofobmn)7}Fn8F;XkF~MZ>0_%IF`HpdBzt00OJn)4n2Q1|jR}QAQaxnQW zfFZf74%uOuXu5M_ZfNfLGFZ!)U?`xw4jdy@FR42;*D&F#U(m^@++1+bb-ZeS;~-98 zzRJnxiE`W`*yRvvO6HntZ(1G))4d8{iX{VM!B-tDyuuFOHi7R|ZdA?vZD`heUm!q2 zF%pC6+c-fS=n+_?dd-(BQ+}7DlG+=wuqXxr427}YJ+u$=mihp`^t)&oMGuD>VeA5p zO;n*UoW+HiFWChT^gQp;$cm3RU5PK*ZF?U?@uhqZ<3iv2{$MTBfb|`g_-o^wtnWo8 z)b}DzYAgvm?)gl#LCdVT^UHq&?9e_O0Gk)^itKaGga@?D1tz;Bn9fn-#n`%x!L*K( z5~0r|l#?wV%zVx;?>Ix;ZJFKBLBM}{R@J~3d@k&VT=&t+iJk%1lBM^}lb@sH^J7c-*9 zl9O}m9$1-_Z*xL##M5A{{~KvTJUG{V_S|6g(>%bWsd<3N)wT&jeuxaLF~@^c^8oj3 zt*5-%dK&2IoHAiWeWnA`eFQG*n$%fo| zDZIVqj|s-=)b!YUnrD!jv^TQCYOlq_ti7AS4(;6&LfPvJnlIBsAEEw3AE7zK-lI8g zzi^BY%DD&Ty=O!L^)n$@s)M~p^A9mr{l}3>-@)FazDFHldS2U+xFkP=X&=PJ#`A!^ zr`K_uY&@^53m+><`}=_La?c^eVq=QE=3VI{h=^1E$%&FPJsbhlf6gV(yV93{DGm)x zIaa|GCx-%FcLIaK{oMzsF^$Qefp?Yn7fgA7!ITdGO!)xjMAteVFvTQ+AwG7SIrnJZ zBhqN@V!{yrV#+#Tnv)#(H77Y_YhRc{aq|&}Q|${M59c1lZ0&h?mxzDo;MhFPL9cBN zI5A2`1|}WZ3h@*@1X*L!k@2qg9)t_+Wo-QJgV|VXEZGF4qnMB%m(zWpgr%bJ6g}OQ zM>z~bD#s*hjE**@czZnaD5!UpzlmbXj|Ap9$+o3A38pn0Q?J%t!f+)YaB37!n!O4VkY}tToQ~a-kx`r8xjmpOVPutO_<_)cvrco z84l@1!KAkZlin8WFeec$)PD@QF%-t#X6Nie@IK5*=j@`~VNPPg=>3f=ZgigJMBFwE z=qZQBVCHF@PI}#CI=8KIBr~sTgg9xymUDM;J+xw?La59V_U=?}C| za~+k(gLnr_dU9BeH*&)UOP#f;0RdAq@Uj+!*lJ?3PJl}->{=p%ZK#YAwRcUXr=x30c=Ijlp- zgl?a0UZV;Uy@O1M*F*c=Amqrm5lsH9U>F#oKk+!hIIz&nx)q$f? z?>$T_^8)T`>MNW{#77)cdL2UAkPVGkLG5|$$g-i~-6WYG7a+|wVg(QMybckiDPADL z-SkMt+I>2y`1^bDdQe|YtYFVwFn=2=neO|E6?DDaG*IJ9{GjPMCTTpU{cR{|P0#WM zyQSm*LZ4&nzjPf@*kUXcVx z{el3k`HU%{d4c1!=K+4Rzuk07jj?A&M`;<-3nBp6Gmjzny za{G@k@8@L1mwbTgTJi>%R3C8EHD>z^Gfn44 zxI_EGsO81K`{N9P_=naO@cW2y4^X ze&S(!4oy6)G2Kl>AQ=f;YMxF!tlo8;I`1kD4S+>L^eh7-a*02Pht>K_?5oy$v@h;I z^bz_F^by9CONtFtIqkrF7N1bT-WQ06)%lGy%x)iw{$9h_ePzSoWFTE1Jth7?TOwU4 zON4Ych^*odvI(}oH-{PJx*Dsl*1u7;G#?Rx;Q2x~>wD3K_r5jeyaT5Fa#C{i+QjlF zSqc@c>>u2qAR86CwD_0wQtrPImU})UP#!SJ#T)}XUl1BJhdB3$XP)hgNQ!RB40wgh zPljHW3_?7tWExDQvZ>>};W^0w_ZmCbQi!*lL!8u*${`L$#7p-nImC?}cm@_!TgV}9 z41q&+D8Jcwvr69OSmrg1qnhR)ficDoa}rTNZ9x}q>@X+iGOPX$-;=~b$N#F_gcx_9 zvc=1$gc(9QErvt(j|ma$xr-%6d(@cEd;h>9qVd3c&Fw=M-u*)CtL6)*eeo|R1N9Z$ zp|b{JiS)`~k~g>|So&D*QIx#)>NxdDIV#@5-Aug2v0HWxPGFLs(GF>E9CfkAcajP8 zJitFfz9q<9(+8_f-(qQ%p5 zA1}mcGDW*WT1(~pUpSVDsYr))>gG@-Qpw6Lik>&xCw`>H& z1!~@764AI3E2w!&tf1C=q-WVbxE4=5h*!AI>=PQ)^K?ux#_&$*zDFO?^NOh}TRyRZ zIvY%^pvDsJQoR^Sdo4M{3gVpOv){xDnx1kw@~(1}fhjiunC0w=6;vOf=F;4qM2p>j z7#RF6jZrxiHJ2tmB)=RaPqU_^A> z6K(|^cQ-d*DE}>FffgJHx;fM}?J6cg>9DuH{ZJ#ZiIDw+u{o;eesV z>+hJ0jf62sjo~v<{K0BU5-^pMPsgmft%n2CeV<^;(+j410l;KmK+{Z5cU#zIYEDv4 z=T$JBSHW~wG8mR2)q!?I7*cR!GwQ}XhsYPMzULTVjO^Q@hgC_K>>n(;IcNlJ5fZhPywJEmh}2=m>i#HkyTA0G884jfE2xp8CEdcZc_J~ot7 zoH`gcU3B~Kgz7myX*rE49u|5i`D&XReCA*z zhUhjU5*p*043)!sUzluicsxlTHdxD(U^0E~UsqU%(Q%*K8oWZ(%>^;3tj|xxY zOS%kW%8^1HEQ(zR(^-8r313xC@gM(RVRzHA*>Rk4e6LTTjn_dhGnxTou&oHP3OLJ< zg%>siLJW!)A)h|KngoKbe?#EeJVoE<^y#jy*Q=^k3@}zQE*Kl*B%U)axNGB*+eS+* zfb2}Lh-k@eqk+Tjd%<{0%iUO)0ou4X+NYk?3!LpcsQ9d@m|NCBaHQiN=bXuv{onwv zZX^;HQ?9r+`0=Afo;oqH+qEo=eJ|p%K09fkYuv1X?j;+iKKOI=!kPCgi|-80?)YIX~tO%W&$l3O|yWgwHE zMoZtf%T$KPZTaSQjEg^wmOid%^;fC9@TBsn$YQkeBs+2K9Bt2|8$oMx-mZRd&%)IY zW-kTiv*+x@yq8E^d2scE`K|CqX^;7}eh_#!cdnr&R(iD9?N>jz-*)wbD|6HjZVZng zseHcr!CeDpNo*fhan3Y1d1LzCA!;<|<552dIQWknFj@)gKf z&H|wR>Hv_Few);1_!Jnszm-wmJ(o_&Z$ZJr8!olT^OT5%uYfB1+tfl?dCl~8E<{s* z8$6uIQfi^lf;YPeRQZazk@vQbtKU+X(geQrJ%ugz{zfFC>T|d}w)8=?}s6hYbApJJ|npOV> ze~*@$Otj=2(9&}Xt+HJZDrZKJCu=3Jvb72l*1;H}rFSn{Fpy~6joA-QUHs{Dq?RZB z@-Y`3U-x+~pD*p3=;Slfmk$`)kynh{$g49(mrrS}@cmuAl6NpTN~?`Y!7bj0kW3vA zTJqgT+gcAa=)7I4LtKQ`bAFqi{h$W(Ta(^%@~vgR%jOqwu)Y z2cR{lr1Efa8OA;4r`TxE@7<@FH4vjH?XiAh6nUN)MQM$pa1mn{EAxuKCDIZ*+kKje zXKU4-7=`S4=O;d%ZxbIc%}HM#5+BdE!3C8Dv6tUMLM@HoQ(EmI>=JuOxk3CWCQa9% z_g7%Q=4^z`x&~T6MCPeZ*#{hT6OpL*YI`T!6FO~sgX^d zPCe}AogFulJkQIWYsO)=jDzM3Ef`23)yMplgyg+TO*t}OzaMxK{Exsw3 zNA_1KN_@$?K0fQLL08^^4N9~6`yB!+eO`TW=$zQGZZ(QO!}N|nb8wZc3kPXsyBgW} z_QFWX!(J(9_JdJaTI#&+YUAh>nab!W5!&c!mSglZ(H=d0ZM!p;u+wY<|&_@RdkuY<|^8ktGmHiPdA>oFkP%eO`O%T}RoROD0!j`-PvEHDU3(C@yccw#wA|B51LPjI(+bhkAF2J72Q0401EMZE1q3qkg*B8o zA((#RIZ_kxg?Pk^+hoc=&bbn?mG`zXIvxrj&x4eVosAYhfrcKj@|EUo%ad1A znE9zG%)T80df&^`%kyN9^IN*7zpYNbn!^6Jy5~e#$2G3!=C0(dr2_kHLdfBRhwibH zkq4ys<9U_sB9Z+zaS(?@+tc-=?P`rBAZu9qBP` z9JKh3^BHS<{{Tmk=Ye4Kx9O$wz0L&X1HDwjYfOu*se1Mucj@lk5AD*TFI7Ut9%r`a zd@v89-wxuxYkyY+l~x~{hKkQAD<1m*oF;ZQ)`*?0rZ74ME&HYmTKI}flC}Tj`0iek zusMS~p~U*`D%k9Y)Kh7>-{2~0;3&EE?3s~0k4=LX9WON&-{6yL2Kv18sRRzI9D>e?j3psr zGjL7gpX(SL9pJ6q54fQ05ofow=8m=Lh<|>qM8mssv+J9lIbK?AOm(w~$;iA%=gHW_ zmvpkC&xzg0PLbiRskF<=dz~lZA8C^s{|$mPF&-J4*ix!0duDvv>OpDK*yu9Rm0>V^ zISV$Vw8xowVEEi3RvD(AJ^W1fWX^O?X^%5Qlw_UN&6ZX?!`02MJm9KDMnLDpr@Ok@ zT^DKR$Ou&vkLU5wN9M@RBz7Yb+4%vkFW-xzN2lB}cO1dC@8$QD_AxR?`aJugZZA(#{T>4KBcwIKoTNza7JVfT4FMHHQ>r(tym++rJiDQsgW&DI)XVf!Vy^m zjYvy-oEd)4+FYW=(OWWY;VB2N#V zn6+Yp^c}eqoi=Zc9oohxC6Cf`4=pj2OYv>4*RJJmHnd?~fqgHN zX3m0f!EPOG&kS1l3N4rfEsc}&M{`Tn&PBLs^sjNrSD>W_4w?vRo)$Id;AcUT=9)x#Zdc*GB#E zyx<9q3!aeYoSsSNO|SoUD1fz3(SmnG3l+B$&!wG&2`yN0mwl!e7aE{Pew(}ZjAMvpT<&BrPNV1@CtVRf zm10@lsKtKtIY`lBHCVv@@(uy=&{8+%hmwmsPMuQb2P?j^*sYsucgldLjub6@Dlb$1 zcwR81#sv?D7CaowBE96%(qjQFaYwYo9nlhZL`&QeEpbP*+`R|RmHs(s!Fiyijub6* zq-d!lMGFoEEin|d#2pp-28V(M{5HIyJ;>(YjO+Z+Hm_@3@(XCGb4824ik7&e2xH=o zXp)~hXF{>G^jNrvWn|*HDJ!q;j?L0)53zh=zliW`j7J4!?IE2QHV0$`Pv+Gb3U9?59wIfa& zwb6-m!*Pt}nv5eyk4Nb{PY$>8CJkDBMoYqzQZ5|d4$~EuM`8>4L!uxId zo(nbsv+r+-q0&;%>9<<0=eOLy(9#FZZ&M$DR(puWu-GF}mEb22iXHi^3}|yU7m-N} z@9x;l`Z?5lX6}y7d|R>Nq+hV&vV$0P*Ma4vlciTvC5zTy00$l*E=qvln9{!krp-G-VR|-V0ub1`QTka#^02 z9=f7+sY^ghej2TIB1-%>HHGot)DOld5rvD4xKgsU510&_n?1CAWSBI2{4LTi{C5pt z_AKzkBXdB;B4dSUx4s8}K(uAn9xZzg{=E1hzpegIKe#zuS~=GJv4 zI5KC`>u*zs%W(;Y9xe5GXgwdyy6Cbi&Db*y3Q-=qqQ_llsnqprk@~$-G5u}o^Dy&c z{lvnKR@DZg2zi~JJbbeX{g#U=E($Yf%@-p|Z zp`{KSE%!&EJ?3Y6`40M{w8#ADkIb3=C@uXbuhOV%pjI&ZA+51ANyD7COD-Ctp>b1 zj{BCiYOSD`2D^&Z7<-znrz$FPy8$oU0Yg{xa}OYYh1e)O<(lj|AXx$F6~tSAU!S zn0}kOHnd>IWE&epK1H4V)j=n7xoY^GA7NY?A(nB$++7)8WDZ8id9#_F-&xiB4yJN= zoOzIOu7%1tp|7kn*_7`9ILo>KgN1jcV&%jp)Hxw>hP#4i*O>*E{61RjQ&IHjS~HGMC*7T#oVy>R2Spyj zlQMFN)uScfc=tiB40DBQVl8g+OKjxI19pEQCW4tj3m-_^C$6HtF>y?hzQ|pceE7f$ zL~p5dOAG)l_B|^n_Wgy|mS41`D<3@k^Sg6$c^oY^97s{l!kKH~E61bH%YEglKWckR zN5%F=OWgKgv}^CGEsY$4j)+}+&@3Y3Ag1y>Q|UMv zu6@TvUqe%@6TfE)LF?~dg^k_s&Z56P0 z?t4c|FJ&}|=iv>s*zMqivD+Q}$R-jedRonL^z?;fvi86lyO*jaqNioqlP6(?g(rD* z;Yp$?JSmzTo_y3hyCt)+DmBpINj1>n$!k}Y?`<8LcL0Cveq6KIr9JGXEBWcT+D(sI zX)R4^H=%Vu9(EIpu=~Mo%6G7vIzJT_`)%zx`r%y8m36YPu^FJ-V>9R~8DCPUFE)eP z>%>dIk)kiJo#o16YAgEk2X<4(HQ^k?vn=5`<#V#86j zvEf8sW5c0!Ka{$4evRRYGr-W8KgKl`SU!Xu^zg(?( z<_FuI?{Fb$$3ejC8YpS#IKi}x6QwP!`yt-cag8_KweTHR%*mBJh9||FBG(>xJ@xE~ zGq|lIHXOKo&!td(_}lU@n)hc)Z0f_phZ_epLPuZEi-5Frse0W%kQ}KK~sd08s4LI4FJ>nJl(05 zH<;e*gI&v{_0=H!Bb(47o0OA8HXY1&&p!7pvWaMlY~pQ2Hi-^JHlamd-Zcn0AJ-Ur z*8p%NYX!2HJ)#yej@^_smG91)vYRp&VkmQAH+5WN;iPHL!X<3?+t^K=b1}2LysiPe zDbHg!<$0!;HQ<(I4X$D2&X3)+x`$O)K43R>T>6dZLQrfYcRxDnAmw?UB@LfmkbCER z0prr5qja}T9!yoo){z2p)ov1wNZyL7?HaI~Iu}*=nV-gBOJjCsKiEwjm!2k8Q~`CK zmtK0tDN@WhVXe?|my6#Prv)Vw%=Yz3=<_t0*>_M}8Al0(4+zxo0pZkf&_{Vk^P!@D ziTkMNN{&jq;pC{?O`hC@-Hq)i`%(GKZp!@FO_4bs7akJg$y%|SvZnHM9oKpiNSDO_ zR5q6<<>~so;`xQwqN8pJc7ABdQHf55CzT_HCq)X9qte?U=TasnJc%R2lW5_|yE13L z_qHwH!EVYpc2mcxk{F)6z7QSP8bzJBvL6r**$*Mh$OsU~@Z_b0m)Fn|`;ys7Od9ex zG3jd=l5b--<=eP<9hZJV5c#>k>`?k$1FE~vtKFpcMAv}blr>;Ct&YE|GgoHwj&d%Q zB*k_V8jkJg_{M%dS7^^UT6Bf>ld&1}vgjJHo3i%ormPjaX=SG8Kq)N;if0QMyznM|G__v%imc(?J|MuJI<(=dQsc-gG@Q z`n<-Qu60|-rB9oTT>4R<6%)-(j_t_0irqx2#co22-K2v-V$wXx#6We>NDLHWEPky@ zTJgmsYfsteqdR(Q#TsWL$kZVU_L&^S;k3zUj*RGme3<@o^=Y@n;|_V#{9} z!}WVU6R3S2^z?q4cvHu<9{>-#`jXw$=jAR9@TT;CA^d{hMGL+dO{17!&-rMJwL){* zOvdG&72{GPil!divIdPe z`7MM==Hi0M&_uOL>l$#oGmhPq=Lz$7Txtdw?ZNb-X+*ViVSg+a$`$q>9>TYvCz&LJLfyp#N~UP>Wl;S8++HBb5Ga7J9}28w)?!q8T>Z6 zUbMsyyf-nZqpiJh^V?VkXeed2>mop&wSr9!pDInu8VEAx{0itqK7aaLnx)U$(}UyB zfVcwD@0_W@ytj3CzE?r#{8m4nwHa>Q+A3(lZ=eO|fyR*CcVOqd7nEe@EK;?;1`u9) z{ekZ)3*L7yH$u~1VAoXNp2%I6{KlnN_mwZ?LD!F3&3o^n>Ybk^0n0<47aN4C&3U_a zM#~2xBWq*IfX6qmqPf4!xWqirf*V0gO^xSiNU`5WW-m{A@A^XaGIznEX+E~k6T99s z^9{Id_L3i!HRT$F*Ia^<{kV%M_Pszw83$0a{4D#{=UtL-p2y4ExCO{|a#^6=$?F=I zdozqnUrDsb`eE^%3k{m@fb7|LqW5Z!JKv$#MxG~IyE!V3czUUzX>7XB>wVG2RqpER zl6AgTth;Y#66PI`v#*Cs&Ks?|v1?v@b)M>g$YRgioSfgP9NX`G$PK4=eS1Mxg_`?Y zvBNzJAZY9B`fV`&p!-SR0nX|22x$&(lK=*7h$0JKf z_Q-6A*^SLzr_=Q%C7Du#V4NJTTOzlIr?ZW8cdrj=Kru0YF zPslQJCL*%-5*vAkpk;q6AhByD2%q<|J2O8qp8YocP@+>rKsT=eg_pV$3t!!%;xYCR z>ppr_BqO{lgB#wJh6wLotL$9^U7f?b*RN$|1o!;$-tw+$``C#hrP<%>uadb4z3$q} z0CmoA(!1xxc=*)rMqi4IL}qIP8M(&n+&Hk(s_Hyxoai#o+nDrS`4^i@CVFuI#--j0 zO+;dN_e#2!$I%w!<+t@iT?-mrt12OS!ENR7x3nnh`l;30bA(HyFNI__hpW6Scjb}J z!KxWoA6rNF=ml!ObEYp>Cem7oxv8Sc*>{sc>`5V`jn$i9YF5yK_eOi{FI~2B{H{C6 zo>R#=A6&nz{aLrmFN)pzJdN!$juWvo>>OTetr38*NOgYOc%8TQEVQ2Ks=O*o0Lk(l zLJyHwK#=*i19F8cdyzWcg+hj)2p(J4+*&K3{5-%C8_dxa>L zPxbfdT&}U{@PSNLY!#XJ$9q#7E*Vf8UG%x@Oc5@>7}vGe@1f%wUsIV8xuI`QbOrA` zu?*3s_?N~do~Vb=VoiN-{bZ^l@o^o`y1yDEW#9CM+%w2!kK7gFjxQINzNt?> z>6de<(xW`74d2SnYp)#ILvI~SA>SrWo%05&k^L3pSsftzws~D2@i=dqBIF&c%$0Q{ zSb1ELQ|FSq)b6&xuAlaQc`w-Ytbt5<@LZmk_@4l6&bcIF>J5}xOE~`e{9f7JzSlSg z$FIks1)GePITLijjTqP1ze=de5^8JKz;7$tMbRUldBj~)AgahU@Qr*MAWFy8RuL(U z{$<(5Zv=mNjO*FIYbo}8Se3-@9k-k<8M(wBd`0X!A%*C8l^(HK_1TF$1<#4iD$SG_ zH(K(N9~i-VK4jHmBZ<7mKUbfViu_gzeC6{8QT;wIy#kOz@ zThEcgn0y-?ch&%;BkyS60Bs?HGh$d!X1hmnhT*ll_%P#|*Y&*Ef7q)0M>OSmZ11e8 z_)z92-j)^(G;4JU%>9l_goXBy z*^-d`Hu`+mz-fyuDru8-mNmq75Yfe_j5uOM>HhahO* zE1t7_f6iLo%YNRoz=@3?KpZ4*DlicHPaq_AB10lJq40RWL(758g(HwG;vLc0rI=KSgz z61z^QuWQe4U)zE=7+jDpMOpjn8It!hPnQp_-$?e{=jOfOFUx-it;o2CEEaiCIfo`>dbNOxa(KXn5^9((ax!@B3Sqw`N@J zh)Y>#?ZGiKXPKAKm|^*jLvQVS9hs~>#_G6Y?sz!S0s3IX@6pR5aR#1W@|UDW^uCS* z@xfTOkxfo?d6GSzwSV9MAUWeR>6jEh0O~9HSGhs#l2bidQ`?a>RdTU%T&Y6rQ*hDf zWG+N`=n)H7i5LCLl7GAxqJMaUs_kAX8rW}RMMN*?_Ym0$?H!qOJr?p_z4MoMuRlZI zo4(0c?b7!u72NZotRrVZUxUaio?p(#K|`0XJTEZ?nZTT1-g#_CEEL~Vm-n1=VYuk? zD@DorefM}CUD0vr^#^U+JmU2x$oEQ|uKc@eDORqDaK{&S@}pBg+PX*V_Ut*epYOO} z%knN=v1f~g89npKPxIRg_T_o1-IjI@MwfQoy_VL#_ILYg>><&==nu5=28dGDUKFMC zt9_*|zh_I1G;6A1WY%6RW9@A9@rnJb^bP*`>ge;1_7ze*U0j-UV|+DP>|j55JzaZE zQZi>unLSsU5q^2#WYnK0Pb{m}^|O`PBNxMGP31$EU#=cIYsHk`-%770cjvW{r)tQ{ zFAA>qOkbhHu7R5G@T6+G2QX_SaU%H>GOBe=Li{EY%pt9=aOntUb^~ctcKedH3p~^KA#l89AgY zQ*v#t7>;j`oy!Mo`8`Lhu=o`s_5F?uu4gVi(^n_lccd4qASNRu&vP)B2GN=`qXs7L zxN5Eat>Aj*EMAg5f)~wiImLZPF-2esk+D}3-0x^T-PHu=+Zd?%t%i{~=fW!aHV)>> zE1VJ8snd95j<7)dBglaGx~!}C=fcX7<06OAA9t-s)>(=^-^-ToxaMa*>o=0UZ2vVO zisaCQGSZLCxWs6$Rc!J?#BS^++4J(f1)Mzs?u>ur9jR$R3qBDoz4*~Yd4A3JXvyPv zFU_#yuE->`+{fa#xkDOF)-bP1u04>*@UwA=$=I~?$TKcF3N3x|kG44_5!&4A<{hH{`@Q6D z)(YfgWU=3-j`?V7|6RCl<*B(O_lXuf653-gxyj*E3E+_j-W$D-mR?9`>1T=d;6Fz? z>vG7_UBBi?uQl`98)&fw&;(ZYc^AkGEw+GBu?5hg-+)SkjpB6Y4iq$A)4o>_AZsr^ z9^Syt;VaHi&KA`e`9f%ymROqa5SickF&?u=XAosvY@Z7audjxdoU+-;{)tYO_Fhm=^IzMVO-9Zh~@f-ev1=k4ct5snW%HZ+S$V6v6Ve9b??UIE>q)j z=c#eIE0oZ9d>e@2o-Ma>Z$94hf|Eu|?*z19qP>?PHtV7mB|1PFBI|PL(6ObYE7EHh zEq534?1Ni3F1>b*!;~{W&=Ko{c}L|RSFQZ)R*OBqI*6CA#5YzR z9J}mUh45ONnvtD4xs#Gvd#xunCv05m8_`lfgO+~q-kbhmXo3dqza@$?F15p))#?D5&*&|6N}K->l!CI}cNBwbTzz77cUya7 zT<}~RI>y<)!vwRYAlsQs>$^QKcSxhv7GQG4Zl|?2&VQ-=jd!92lYj=~wco+r&zz}+ z@c8$^M|hr$z&=lCX=Rg|xQ+4HjLKM@%;HyEU0dEEgq;1j%JQ9yt0}Wbz*boU7DwJe za&%n!TR1ZsGVXgVRiD?m6s@|LG0#hWi||YTKeS+G(b7ZhXp#3;IkH$}cw@AFD-gWj zMqTE6iTl+HST{bg)r(!MoBrnaIeEdpp{0HrE!a1-DJ z<2kBRqEnQ_EnePlIqjJ<128m=IYZ0+=M0P7|ACg;SG333@*#O|@8|T}+U-!K-8b=r zoO3XMe6NDAl_g#gANxvHR_9UYk8!-AT`Oj1cta>MYpTw$?+8xtx_Oj`VBhi`Lc^Jh zykBYQ=L=5w_>Kdq@3#S(XW!cA&hvme@>}TX&{DJKx9Kl%aL3rYvWd=1Z0DDpChISKw~khM#eT`!_Z|elO@CXo+&_c%kew36 zS*wR#B7GG5MJu@Ym&8kW7bGjTt-8waz3$49CB7o^Pxv%8q58|nPIa2`4R|i`4RpJS z|3M^%ug)de{ZJztd9R&E_U+PiD>tAMv*!n+SiZm7%{}KzOp@c%eW>$eTCB`g-kn$) zc->+a0bB`*IY*EBP~&okmIgh!4-L(v_jyunrS+^n>OMU$eSi>}@0R6^o{_4IA8IGd zlN9yJ7p0r=+18Jj_Nn5tjaZNA$!?A^dd5;D?(EoG~ag3!I!TbkHY5Z%~ZU)0)vlcB)`24}G7yA|6C==I2$! z=2DRvA4h3bY;P9VgZ4Oslyc551sA@Oj?ent&3(IX`W%Oc6uyTK9FWo;b5>fA^Q&!H z-V0LH=LMe)c@%6d1Zm?^b|^NrI^nJhR?GZ&7Nw=0(|al4T|cd#N(0=?xavV_KRFiJ zt;OY@_U#_s<&^slM<#nI-IH&l2QxpuUubs$+`dEla&;NYF}jxd5*-CR-Ludh@f=eX z&v|cp^cYuP{NOLU258w|X}`n?0XGvr#cGj5xZpv{{gQWO_G26qaJ~(wE&2_5sN?9y zT^F#R=wGzRhyx_;UXl>uHRfdUY6tjPUORwJzT@FH9*AYnJ}^o5=$eD?x+r(foW-P< z|8R5H00?8{pU~1{TroDl29c9Y>gc=!Ib;pQt~=-Y&X;Ikxp4{feA@&2D;yTNf!6ht z?9G}Afo5H>L20RhzKYhK8OgxxFWueurfycEvN_K7sJOSuE3t;9QrvfX-%B8k+-QiLT`uB!+SjzP^K|$$L|W=Dm%TijYM<3&V9y4=}Lr5EjVV zOGank+=sThk&BaGicp6tdX@BzREj#9}osF*8bYut!(0Mb$=iF+>N$9s{+B< zBPFt>0ch`V%Kp8OUj;kN44OM(e-J80XYX8FUOfM2JHV?zbr->TlDR=~@?sukH%6tf|<;%82Xj zu=3ziJDH0-_VTXK*NYZ?1hyGoJ5#yOlil7m5NF65C5CTs{CYrS{iF;_Yt0$RZ2TzwC?eN* zN6`!1net!nKv6tc`$a2(=nAy>?0Qc`e;iCEYY+TUng&kGSK<*JS6fskpTySBRm++p zg*Ra2!b31}eQ)DKcjtX%9oH(~!32KLDmRG4j;sChxbyypyYoJLD#4I%yM~*)&T77M zwk{~Wk;(5XD&o zj$YPJW3YT1(;~da5y<*6zWdw9UV`cOz3G3Yxj=nHEi@7fhl1+4?EN#hQt{cPHDdos z??1*hPI#@A^1Z?!Su639jtiDpxFlF&G{up><~6in8_@uzGcG-YjY}T~wA^usmU}7C z(nt7cYZs%Xf0!S}KSE0^2rc&zp#@8fmiq|Ma;F|zFq&wx6T4Q5b4vrD+;MD`;rqLN zaC1Otsli7Jz6mWhHCk|ZXzBll26dA8rH_|!siQ~B9YJV`zfhL(kI;g*K#R|gmVP{F z0CqcPRUOY5WfPJ232l?LK4=dG{{v~L^17AvR{Xw+k zKhP3uM&syZe#zq)mzeogBrRqPE%$w*rEeZuV&-V+n}-%$^U*f;ik3JlTKWN?eOkW< z?eoUXc#`S$jF#LYT5^kM>92y88WXhi?LJz+4ZJve1bZ3&>s_@R?1!uaVqTku3lW=3 z2(<5DGvq8#N8x8~W6rNFTAfEk#I}H>+dPx+NbX(gIQO8U1&4>0e&J{j838Pm`N48V zwyQ$OnFb-~Zy#q15+Lg$Lf&^IHYX62cn%s+`JP`no4kX)QCeaEo|kwrTH?h=i>)VZ zzwsC2f<;6NPXB0?_nIz;*97MC9fIMdr5_oknjV*ExzF&jU_Ecm;}{2hv}?}>$yxAe zOXFha41)b{%uN*w>bwIj=R>AEw!rnZTHg3pY@~BZob@`?Zapy?2FzU22hF(jfB8gp z=gfdv#=q2UDf&n?;>OZEFZH@;wZkCyV~6qLBg0&)@SvrirFW#46bB+XIke>D(31Z^ z3!VloIXSe%S`>RZ{QASZkUhm!f}gWI_zC+EGv6rm}a-@U}*dB=4P-f@8S;f?FW zmvO;|u?`y3`c_&kdgdxl^Ss6$uD4v)N^YmmOCMKrNqzU-LbSQIyH+N)z_$mc+xY>P zWiG_{+E?eQWv$pReO`LP9IUVFB5jp@13<|730da+!klC;g>tigY?bg@?ELcqQnHzwr0S%#*0})iS<#x;UTn~4(>$nY*LL@wB9QoZN zVZHFiHFM0k)Tx_G>Qk;WZuAkZUks$AhUn|QgBg+cy0)t0Qg7vXxxWXkdJE^qwg3@M z90{#wpBU;~n(LMFN?ZVpCourD*aFwvFl*3$O9x?&EqeV9BXfk&v%kIP*7H)!h$h{( zd!*1mGEvSZXTdSgT3rG9J`ellc}$BwFMZI!v(uXoE!fMWbzQ)Qa|VTNv-Vd=nmJcj zFwqyQCi0NJuxQQsv%)HiLGJQisw^_QcWrq`>hdoNQoiCI^&O2{=qp(n%l*jyUX**+ z>b%p?G>t2*dn7Lu-uM(Ou?gp%Gqmb`JtPy8W)W`RqeH~R7rGvjnKR5uc<2Co`)yuP zTCkVi+q?nyEw&GIXKX#RtlyOz?Acd&lew@QBNO$8%(`6roZSzlhl?L)i3)Dc8t4Q0 zm|yM!^V`RFJYp!U#LiDrWY?MZ7F&<28(U8$#e zN93exy69xI$jNih^SuHHtK+X<wgz%t3)0=@<)0|#*e!8{MjR_JNrw- zmR4-kwIj=1zzV{XLRI-T*p%!CyQJet)a5Jb{jA>)xwnso7nI3w8$)3URDWRStkoeO z_IYwed50)eFFFOAx-CH?-`Vh;(vZ!rqC)$;NjL?y{cD zrLk+`K01I48<{QY)48y7mS1ED9<Mg}+W*z0Gx{C6&PzE?mtYp>r| z-8{ZS~{z<*dx1-tt?U9{FNn z!b8GRS?6nLxogFZ55G_|t829_i>(4;)A>o8t}c_ds{E6t%eOg3nTw`z9Y-4PcZk2_ zdtqxMJ2eK&TFDiamcAMqvOzKLd$}%|v+{t_QorSSxzhrzxJ|I;$|iA@tn)P&$^2@Y zF=H#6*fjYzah0r}3`qD-X3eNl6he62pJoqop}+k?oM!iAU%Wns_2K+~awTXS=#4 zGE9Ub=Nv8P{Eq&9o3;kwQyL{X0<`d-YksLR+3BViUIjMT~7GB9pw@g~yk7 zRe8nc=WPXRb?qqj9I^g_nIP^vXO~Z{Ecqx**ylBWsSM*Wt{8CH>BpRlJ(3NL&3Zjd zSC*h9$0BV|-es3$O)mhmJS3Qr?-f9J(8}ZLd-}ZG1wraIzi?Mj*T~U3G*0ZnXr*kQm4l*>hH!kQ}Q6PPus^wjKqAq8e(1|<{r+Ls4r=bDjJM;3o zRu-_&E6!I+DfSRrbTZQ?HA$?$@|rYk_=Q`RxhT1fKDwI2IqqWg!w9p;5XY znzCh&xQL}S$HMxn&bvyHoins)z5_ZSGMi}6T8S>@e7L8&&jWDEd(%V6rg?G3rJsUv z4}B?ilRaYld$F6yCRcd$z3IIJ>D=7sr8#%4gcD=?VBPp6 z`oczE>I<8>=nEU2eCGYGJx@10bSc-}bF{?fvx9IQb}Of%ti7;qgmtFHc_o z*gXqqiQD>$elI}go_+meV<$qD#?~Ve%R};3ouA^lIp@OOT`OtqJx4TN; zl6O$Hp|!q;WO~e{m`W>9zL#Llw~5{4JGj4@v!qwfppUlgM@z zp4}sOn#}nTli{*Io|k^5yjoGbU3)m0@EX%6->Y=4w1<2Vr^&jU%FQH9l0+MtvN%qU?nYIY!#g>dImLS%37&Y%Gn34i0o7*+;Pg>^KGrW z1J90aMuR2~cHz2RE40|f%-wu1=@Xxj1~* zg*hJoNM<(nfyjF7gDU`DzPh5@zN5Vuu4r_5+zEWpTKn&4#eU{OB#(_2|40E>VuCD& z*ry7RVn=vu_!KQM9=nkk$`zR`pI*Vn%GfJl2(L*6W=$=9e*3Urcr%@!zAk&-z5sof zHvnl@P7+tKX@D;yPt7>kMu5H80te#jTw1d%@>Tw0=VT2)qDyOyEWl6npiXPSQ4q!D zHOrFyfG^IzaZR)5fB;!j7dYm(64^N)a#VS5?~W6xZ!G9bvU2xVm}})JH4}S7+8{cL ziyiC-TI_oXmE^Y$M$zwZ3Chmzk>9#Ly^)Eg5*`u+?ekj0cI`$wuKpG;D)ACQfXa4Q zoa`^>IrDqqhE*;0oIh~GV6Qz}9D&H<2X2^oQ2G484KsdXZ+z1AJ8K2A6CTnfFMC9B zWes#E$XO+Lvwp&-{cYpzpud%g4nyCe@NRic)8)>&*lEc4^1VKHSp(RfJdb@9zGq)$ zP1#ouT6{Wasme~GGqQwu$^6(-kxfj(zPC9CUmN>?haEc%E%HS_-^7(^?!-l9?Gr-* z*$)3%((H%GdgQavT;%hW;O|8Fo>_~YfPKL7rk zZ+`sl+n>Jw{Nv{zfB(}rfB5n9AAkDY*Z=>Jf4OJ>)4%@LU+!g}zWUwozWR?}{`~VV a|M~M@{`%GR^A%V9>Nmgn`+xlDtN#Z4ugNh0 diff --git a/LFS-BOOK-11.1-pt_br.tar.xz b/LFS-BOOK-11.1-pt_br.tar.xz deleted file mode 100644 index 548abe68f197562f536410730ab21fde52d953c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270072 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

ER1_y#(O6QJbiBopqb_J|aer+vWG&B`D`R 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
-
-
-
-

- Linux From Scratch -

-
-
-

- Versão 11.1-systemd -

-
-
-

- Publicado 1º de março de 2022 -

-
-
-
-
-

- Criado por Gerard - Beekmans -

-
-
-

- Editor-chefe: Bruce - Dubbs -

-
-
-

- Editor: Douglas R. - Reno -

-
-
-

- Editor: DJ Lucas -

-
-
-
-
- -
-
-
- -

- Direitos autorais © 1999-2022, Gerard Beekmans -

-

- Todos os direitos reservados. -

-

- Este livro é licenciado sob uma Creative Commons - License. -

-

- As instruções de computador tem permissão para serem - extraídas a partir do livro sob a MIT License. -

-

- Linux® é uma marca comercial - registrada do Linus Torvalds. -

-
-
-
-
-
-
-

- Índice -

- -
-
-
-
-
-

- Prefácio -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

- Minha jornada para aprender e entender melhor Linux começou em - meados de 1998. Eu havia acabado de instalar minha primeira - distribuição Linux e rapidamente fiquei intrigado com todo o - conceito e filosofia por trás do Linux. -

-

- Há sempre várias maneiras de se completar uma tarefa. O mesmo - pode ser dito sobre distribuições Linux. Muitas surgiram ao longo - dos anos. Algumas ainda existem, outras se transformaram em outra - distribuição, e ainda há outras que ficaram relegadas às nossas - memórias. Todas elas executam as tarefas de maneira diferente - para se adequar às necessidades de seus respectivos - públicos-alvo. Devido ao fato de haver tantas maneiras de se - executar uma tarefa, eu comecei a perceber que eu não tinha que - me limitar à implementação de outra pessoa. Antes de descobrir o - Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era - o que era, não importando se você gostasse ou não. Com Linux, o - conceito de escolha começou a emergir. Se você não gostou de - alguma coisa, você seria livre, até encorajado, a mudá-la. -

-

- Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. - Não era mais uma questão de certo ou errado. O problema havia se - transformado em uma questão de gosto pessoal. Com todas aquelas - opções disponíveis, tornou-se aparente que não haveria um sistema - que seria perfeito para mim. Então eu me propus a criar meu - próprio sistema Linux que estaria totalmente em conformidade com - minhas preferências pessoais. -

-

- Para realmente fazer meu próprio sistema, eu resolvi compilar - tudo a partir do código fonte em vez de usar pacotes - pré-compilados. Esse sistema Linux perfeito - teria a força de vários sistemas sem suas fraquezas visíveis. A - princípio, a ideia era bastante amedrontadora. Mas eu me mantive - comprometido à ideia de que esse sistema poderia ser construído. -

-

- Após lidar com questões como dependências recíprocas e erros - durante a compilação, eu finalmente construí um sistema Linux - customizado. O sistema era totalmente operacional e perfeitamente - utilizável como qualquer outro sistema Linux disponível na época. - Mas era minha própria criação. Montar um sistema desses foi muito - gratificante. A única coisa que poderia ser melhor seria se eu - mesmo tivesse escrito cada programa. Essa foi a melhor coisa que - se seguiu. -

-

- Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema - Linux customizado não serviria apenas para as necessidades - específicas dos usuários, mas também como uma oportunidade ideal - para programadores e administradores elevarem suas (existentes) - habilidades com Linux. Como resultado desse interesse amplo, o - Projeto Linux From Scratch - nasceu. -

-

- Este livro Linux From Scratch é o núcleo do projeto. O livro - provê a base e as instruções necessárias para você modelar e - construir seu próprio sistema. Mesmo este livro disponibilizando - instruções que resultarão em um sistema que funciona - corretamente, você é livre para alterar as instruções para - adaptá-las às suas necessidades, o que é, em parte, uma - importante parte deste projeto. Você permanece no controle; nós - só damos uma mão para ajudá-lo a começar sua própria jornada. -

-

- Eu sinceramente espero que você se divirta trabalhando no seu - próprio Linux From Scratch e aproveite os benefícios de ter um - sistema verdadeiramente seu. -

-
-

- --
- Gerard Beekmans
- gerard AT linuxfromscratch D0T org -

-
-
-
-
-
-
-

- Audiência -

-
-
-
-

- Existem muitas razões pelas quais você desejaria ler este livro. - Uma das questões que muitas pessoas levantam é por que ir ao longo de toda a - dificuldade de construir manualmente um sistema Linux desde o - zero quando você pode simplesmente baixar e instalar um - existente? -

-

- Uma importante razão para a existência deste projeto é para te - ajudar a aprender como um sistema Linux funciona de dentro para - fora. Construir um sistema LFS ajuda a demonstrar o que torna o - Linux de interesse, e como as coisas funcionam juntas e dependem - umas das outras. Uma das melhores coisas que essa experiência de - aprendizado pode prover é a habilidade de personalizar um sistema - Linux para se ajustar às suas [de quem construir] próprias - necessidades únicas. -

-

- Outro benefício chave de LFS é que ele te permite ter mais - controle sobre o sistema sem confiar na implementação Linux de - ninguém. Com LFS, você está no banco do motorista e dita cada - aspecto do sistema. -

-

- LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão - usados ou entendidos. Esses programas desperdiçam recursos. Você - talvez argumente que, com os discos rígidos e CPUs de hoje, tais - recursos não mais são uma consideração. As vezes, entretanto, - você ainda está restrito por considerações de tamanho se nenhuma - outra coisa. Pense acerca de CDs inicializáveis, mídias USB e - sistemas embarcados. Essas são áreas onde LFS pode ser benéfico. -

-

- Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de - segurança desejadas. Não mais é necessário aguardar que outra - pessoa compile os pacotes binários para consertar uma brecha de - segurança. A menos que você examine a correção e a implemente - você mesma(o), você não tem garantias de que o novo pacote - binário foi construído corretamente e adequadamente conserta o - problema. -

-

- A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não - estiver afim de construir seu próprio sistema Linux desde o zero, - então você talvez nunca se beneficie das informações neste livro. -

-

- Existem muito mais boas razões para construir seu próprio sistema - LFS para listá-las todas aqui. No final, educação é, de longe, a - mais poderosa das razões. Conforme você continue em sua - experiência LFS, você descobrirá o poder que informação e - conhecimento verdadeiramente trazem. -

-
-
-
-
-
-

- Arquiteturas Alvo do LFS -

-
-
-
-

- A principal arquitetura alvo do LFS são os processadores - AMD/Intel x86 (32 bits) e x86_64 (64 bits). Por outro lado, as - instruções neste livro também são conhecidas por funcionar, com - algumas modificações, com os processadores Power PC e ARM. Para - construir um sistema que utiliza uma dessas CPUs, o principal - pré-requisito, em adição àqueles que estão nas próximas páginas, - é uma distribuição Linux existente, como uma instalação LFS - prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra distribuição que - abranja a arquitetura que você tem. Note também que uma - distribuição de 32-bits pode ser instalada e usada como um - sistema hospedeiro em um computador AMD/Intel de 64-bits. -

-

- Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma - construção de LFS-9.1 de teste em um sistema baseado em CPU Core - i7-4790, usando quatro núcleos, as seguintes estatísticas foram - verificadas: -

-
Arquitetura Tempo de Construção Tamanho de Construção
-32-bit       239.9 minutos  3.6 GB
-64-bit       233.2 minutos  4.4 GB
-

- Como você pode ver, no mesmo hardware, a construção de 64-bit é - apenas 3% mais rápida e é 22% maior que a construção de 32-bit. - Se você planeja usar LFS como um servidor LAMP, ou como um - firewall, então uma CPU de 32-bits talvez seja largamente - suficiente. Por outro lado, vários pacotes em BLFS atualmente - precisam de mais que 4GB de RAM para serem construídos e (ou) - para executarem, de forma que se você planeja usar LFS como um - desktop, então os autores de LFS recomendam construir em um - sistema 64-bits. -

-

- A construção de 64-bit padrão que é resultante do LFS é - considerado um sistema 64-bit puro. Ou - seja, ele suporta apenas executáveis 64-bit. Construir um sistema - multi-lib [de múltiplas bibliotecas] - exige a compilação de muitos aplicativos duas vezes, uma vez para - um sistema de 32-bit e outra vez para um sistema de 64-bit. Isso - não é diretamente suportado em LFS, pois interferiria no objetivo - educacional de prover as instruções necessárias para um sistema - Linux base estrito. Alguns editores de LFS/BLFS mantém uma - bifurcação de LFS para multilib, que é acessível em https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. -

-
-
-
-
-
-

- Pré-requisitos -

-
-
-
-

- Construir um sistema LFS não é uma tarefa simples. Essa tarefa - exige um certo nível de conhecimento de administração de sistemas - Unix para resolver problemas e corretamente executar os comandos - listados. Em particular, no mínimo, você já deveria ter a - habilidade de usar linha de comando (shell) para copiar ou mover - arquivos e diretórios, listar diretórios e conteúdos de arquivos, - e navegar entre os diretórios. Também é de se esperar que você - tenha um conhecimento razoável sobre como usar e instalar - software [em um sistema] Linux. -

-

- Devido ao fato do livro LFS assumir que você tem pelo menos esse nível básico de - habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão - respondidas ou serão remetidas à lista de itens essenciais de - pré-leitura. -

-

- Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: -

-
-
    -
  • -

    - Software-Building-HOWTO http://www.tldp.org/HOWTO/Software-Building-HOWTO.html -

    -

    - Esse é um guia compreensivo de como construir e instalar - pacotes de software Unix genéricos no Linux. Embora - tenha sido escrito há algum tempo, esse guia ainda fornece - um bom resumo das técnicas básicas necessárias para - construir e instalar programas. -

    -
  • -
  • -

    - Beginner's Guide to Installing from Source - http://moi.vonos.net/linux/beginners-installing-from-source/ -

    -

    - Esse guia fornece um bom sumário de habilidades básicas e - de técnicas necessárias para construir software a partir do - código fonte. -

    -
  • -
-
-
-
-
-
-
-

- LFS e Padrões -

-
-
-
-

- A estrutura do LFS segue os padrões Linux tão rigorosamente - quanto possível. Os principais padrões são: -

-
-
    -
  • -

    - POSIX.1-2008. -

    -
  • -
  • -

    - - Filesystem Hierarchy Standard (FHS) Version 3.0 -

    -
  • -
  • -

    - Linux - Standard Base (LSB) Version 5.0 (2015) -

    -

    - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em - adição às exigências genéricas, há as exigências - específicas de cada arquitetura. Existem também duas áreas - para uso experimental: Gtk3 e Graphics. LFS tenta ficar de - acordo com as arquiteturas discutidas na sessão anterior. -

    -
    -

    - Nota -

    -

    - Muitas pessoas não concordam com os requisitos do LSB. O - principal propósito de definir tais requisitos é o de - garantir que softwares proprietários possam ser - instalados e executados adequadamente em um sistema que - respeite o referido padrão. Sendo o LFS baseado em código - fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns - dos pacotes especificados pelo LSB. -

    -
    -
  • -
-
-

- Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes - adicionais que estão além do escopo do LFS. Esses pacotes - adicionais tem instruções para instalação no BLFS. -

-
-

- Pacotes disponibilizados pelo LFS que são - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- Bash, Bc, Binutils, Coreutils, Diffutils, File, - Findutils, Gawk, Grep, Gzip, M4, Man-DB, Ncurses, - Procps, Psmisc, Sed, Shadow, Tar, Util-linux, Zlib -

-
-

- LSB - Desktop: -

-
-

- Nenhum -

-
-

- LSB - Runtime Languages: -

-
-

- Perl, Python -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- Nenhum -

-
-
-
-

- Pacotes disponibilizados pelo BLFS - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- At, Batch (uma parte de At), Cpio, Ed, Fcrontab, - LSB-Tools, NSPR, NSS, PAM, Pax, Sendmail (ou Postfix ou - Exim), time -

-
-

- LSB - Desktop: -

-
-

- Alsa, ATK, Cairo, Desktop-file-utils, Freetype, - Fontconfig, Gdk-pixbuf, Glib2, GTK+2, - Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg -

-
-

- LSB - Runtime Languages: -

-
-

- Libxml2, Libxslt -

-
-

- LSB - Imaging: -

-
-

- CUPS, Cups-filters, Ghostscript, SANE -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- GTK+3 -

-
-
-
-

- Pacotes não suportados pelo LFS ou BLFS - necessários para satisfazer os requisitos do LSB -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- LSB - Core: -

-
-

- Nenhum -

-
-

- LSB - Desktop: -

-
-

- Qt4 (mas Qt5 é fornecido) -

-
-

- LSB - Runtime Languages: -

-
-

- Nenhum -

-
-

- LSB - Imaging: -

-
-

- Nenhum -

-
-

- LSB Gtk3 - e Gráficos LSB (Uso Experimental): -

-
-

- Nenhum -

-
-
-
-
-
-
-
-

- Justificativa para os pacotes no Livro -

-
-
-
-

- Como declarado anteriormente, a finalidade do [projeto] LFS é a - de construir um sistema em nível de fundação completo e - utilizável. Isso inclui todos os pacotes necessários para - replicá-lo ao tempo que disponibiliza uma base relativamente - pequena sobre a qual a(o) usuária(o) pode personalizar um sistema - mais completo baseado nas escolhas da(o) usuária(o). Isso não - significa que o LFS é o menor sistema possível. Vários pacotes - importantes estão inclusos que não são estritamente necessários. - As listas abaixo documentam a justificativa para cada pacote no - livro. -

-
-
    -
  • -

    - Acl -

    -

    - Esse pacote contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir - direitos de acesso discricionariamente mais finamente - refinados para arquivos e para diretórios. -

    -
  • -
  • -

    - Attr -

    -

    - Esse pacote contém aplicativos para a administração de - atributos estendidos sobre objetos do sistema de arquivos. -

    -
  • -
  • -

    - Autoconf -

    -

    - Esse pacote contém aplicativos para produzir shell scripts - que podem configurar automaticamente o código fonte a - partir de um modelo do desenvolvedor. É geralmente - necessário para reconstruir um pacote após atualizações - para os procedimentos de construção. -

    -
  • -
  • -

    - Automake -

    -

    - Esse pacote contém aplicativos para gerar arquivos Make a - partir de um modelo. É geralmente necessário para - reconstruir um pacote após atualizações para os - procedimentos de construção. -

    -
  • -
  • -

    - Bash -

    -

    - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. - Foi escolhido em vez de outros pacotes de shell pelo seu - uso comum e extensas capacidades que transcendem as funções - básicas do shell. -

    -
  • -
  • -

    - Bc -

    -

    - Esse pacote disponibiliza uma linguagem de processamento - numérico com precisão arbitrária. Ele satisfaz requisitos - necessários quando da construção do Kernel do Linux. -

    -
  • -
  • -

    - Binutils -

    -

    - Esse pacote contém um linker, um assembler e outras - ferramentas para manipular arquivos objeto. Os aplicativos - nesse pacote são necessários para compilar a maioria dos - pacotes em um sistema LFS e além. -

    -
  • -
  • -

    - Bison -

    -

    - Esse pacote contém a versão GNU do yacc (Yet Another - Compiler Compiler) necessário para construir vários outros - aplicativos no LFS. -

    -
  • -
  • -

    - Bzip2 -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. É necessário para descomprimir - muitos pacotes do LFS. -

    -
  • -
  • -

    - Check -

    -

    - Esse pacote contém um conjunto de ferramentas de teste para - outros aplicativos. -

    -
  • -
  • -

    - Coreutils -

    -

    - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. - Esses aplicativos são necessários para o gerenciamento de - arquivos por linha de comando, e são necessários para os - procedimentos de instalação de cada pacote em LFS. -

    -
  • -
  • -

    - D-Bus -

    -

    - Esse pacote contém aplicativos para implementar um sistema - de barramento de mensagem, o qual é um caminho simples para - aplicações conversarem com outras. -

    -
  • -
  • -

    - DejaGNU -

    -

    - Esse pacote contém um sistema para testar outros - aplicativos. -

    -
  • -
  • -

    - Diffutils -

    -

    - Esse pacote contém aplicativos que mostram as diferenças - entre arquivos ou diretórios. Esses aplicativos podem ser - usados para criar correções, e também são usados em muitos - procedimentos de construção dos pacotes. -

    -
  • -
  • -

    - E2fsprogs -

    -

    - Esse pacote contém os utilitários para manipular os - sistemas de arquivos ext2, ext3 e ext4. Esses são os - sistemas de arquivos mais comuns e amplamente testados que - o Linux suporta. -

    -
  • -
  • -

    - Expat -

    -

    - Esse pacote contém uma biblioteca relativamente pequena de - análise de XML. Ela é exigida pelo módulo de Perl - XML::Parser. -

    -
  • -
  • -

    - Expect -

    -

    - Esse pacote contém um aplicativo para execução de scripts - de diálogos com outros aplicativos interativos. É comumente - usado para testar outros pacotes. -

    -
  • -
  • -

    - File -

    -

    - Esse pacote contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. Uns poucos pacotes precisam - dele em seus scripts de construção. -

    -
  • -
  • -

    - Findutils -

    -

    - Esse pacote contém aplicativos para encontrar arquivos em - um sistema de arquivos. É usado em muitos scripts de - construção dos pacotes. -

    -
  • -
  • -

    - Flex -

    -

    - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo - lex (lexical analyzer). É necessário para construir vários - pacotes do LFS. -

    -
  • -
  • -

    - Gawk -

    -

    - Esse pacote contém aplicativos para manipular arquivos de - texto. É a versão GNU do awk (Aho-Weinberg-Kernighan). É - usado em muitos outros scripts de construção dos pacotes. -

    -
  • -
  • -

    - GCC -

    -

    - Esse pacote é o Gnu Compiler Collection. Ele contém os - compiladores C e C++ assim como vários outros não - construídos por LFS. -

    -
  • -
  • -

    - GDBM -

    -

    - Esse pacote contém a biblioteca GNU Database Manager. É - usado por um outro pacote do LFS, Man-DB. -

    -
  • -
  • -

    - Gettext -

    -

    - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. -

    -
  • -
  • -

    - Glibc -

    -

    - Esse pacote contém a biblioteca C principal. Aplicativos - Linux não funcionarão sem ela. -

    -
  • -
  • -

    - GMP -

    -

    - Esse pacote contém bibliotecas matemáticas que fornecem - funções úteis para aritmética de precisão arbitrária. É - necessário para compilar GCC. -

    -
  • -
  • -

    - Gperf -

    -

    - Esse pacote contém um aplicativo que gera uma função - perfeita de hash a partir de uma chave configurada. Ele é - exigido por Eudev. -

    -
  • -
  • -

    - Grep -

    -

    - Esse pacote contém aplicativos para procurar dentro de - arquivos. Esses aplicativos são usados pela maioria dos - scripts de construção dos pacotes. -

    -
  • -
  • -

    - Groff -

    -

    - Esse pacote contém aplicativos para processamento e - formatação de texto. Uma função importante desses - aplicativos é a de formatar páginas de manual. -

    -
  • -
  • -

    - GRUB -

    -

    - Esse pacote é o Grand Unified Boot Loader. Ele é um dos - vários gerenciadores de inicialização disponíveis, mas é o - mais flexível. -

    -
  • -
  • -

    - Gzip -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. Ele é necessário para - descomprimir muitos pacotes em LFS. -

    -
  • -
  • -

    - Iana-etc -

    -

    - Esse pacote fornece dados para serviços e protocolos de - rede. Ele é necessário para habilitar suporte a rede - adequado. -

    -
  • -
  • -

    - Inetutils -

    -

    - Esse pacote contém aplicativos para administração básica de - rede. -

    -
  • -
  • -

    - Intltool -

    -

    - Esse pacote contém ferramentas para a extração de - sequências de caracteres traduzíveis a partir de arquivos - fonte. -

    -
  • -
  • -

    - IProute2 -

    -

    - Esse pacote contém aplicativos para redes IPv4 e IPv6 - básicas e avançadas. Ele foi escolhido em vez de outros - pacotes comuns de ferramentas de rede (net-tools) pelo seu - suporte a IPv6. -

    -
  • -
  • -

    - Jinja2 -

    -

    - Esse pacote é um módulo de Python para modelos de texto. - Ele é exigido para construir Systemd. -

    -
  • -
  • -

    - Kbd -

    -

    - Esse pacote contém arquivos de tabelas chave, utilitários - de teclados que não são estadunidenses, e um número de - fontes de console. -

    -
  • -
  • -

    - Kmod -

    -

    - Esse pacote contém aplicativos necessários para administrar - os módulos de kernel do Linux. -

    -
  • -
  • -

    - Less -

    -

    - Esse pacote contém um visualizador de textos muito bom que - permite rolar para cima ou para baixo quando se visualiza - um arquivo. Ele também é usado pelo Man-DB para visualizar - páginas de manual. -

    -
  • -
  • -

    - Libcap -

    -

    - Esse pacote implementa as interfaces do espaço de usuário - para as capacidades POSIX 1003.1e disponíveis em kernels - Linux. -

    -
  • -
  • -

    - Libelf -

    -

    - O projeto elfutils fornece bibliotecas e ferramentas para - dados de arquivos ELF e DWARF. A maior parte dos - utilitários nesse pacote está disponível em outros pacotes, - porém a biblioteca é necessária para construir o kernel - Linux usando a configuração padrão (e mais eficiente). -

    -
  • -
  • -

    - Libffi -

    -

    - Esse pacote implementa uma interface de programação - portável, de alto nível, para várias convenções de chamada. - Alguns aplicativos talvez não saibam, ao tempo da - compilação, quais argumentos são para serem passados para - uma função. Por exemplo, um interpretador talvez possa ser - informado, ao tempo de execução, acerca do número e dos - tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma - ponte a partir do aplicativo interpretador para o código - compilado. -

    -
  • -
  • -

    - Libpipeline -

    -

    - O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos de uma maneira flexível e - conveniente. Ele é exigido pelo pacote Man-DB. -

    -
  • -
  • -

    - Libtool -

    -

    - Esse pacote contém o script GNU de suporte a bibliotecas - genéricas. Ele esconde a complexidade do uso de bibliotecas - compartilhadas em uma interface consistente e portável. Ele - é necessário para as ferramentas de testes em outros - pacotes do LFS. -

    -
  • -
  • -

    - Linux Kernel -

    -

    - Esse pacote é o Sistema Operacional. Ele é o Linux no - ambiente GNU/Linux. -

    -
  • -
  • -

    - M4 -

    -

    - Esse pacote contém um processador geral de macro de texto, - útil como uma ferramenta de construção para outros - aplicativos. -

    -
  • -
  • -

    - Make -

    -

    - Esse pacote contém um aplicativo para direcionar a - construção de pacotes. Ele é exigido por quase todos os - pacotes em LFS. -

    -
  • -
  • -

    - MarkupSafe -

    -

    - Esse pacote é um módulo Python para processamento de - sequências de caracteres em HTML/XHTML/XML com segurança. - Jinja2 exige esse pacote. -

    -
  • -
  • -

    - Man-DB -

    -

    - Esse pacote contém aplicativos para encontrar e visualizar - páginas de manual. Ele foi escolhido em vez do pacote - man devido a capacidades - superiores de internacionalização. Ele faz as vezes do - aplicativo man. -

    -
  • -
  • -

    - Man-pages -

    -

    - Esse pacote contém o conteúdo atual das páginas de manual - básicas do Linux. -

    -
  • -
  • -

    - Meson -

    -

    - Esse pacote fornece uma ferramenta de software para - automatizar a construção de software. A finalidade - principal para Meson é a de minimizar a quantidade de tempo - que desenvolvedores de software precisam investir - configurando o sistema de construção deles. Ele é exigido - para construir Systemd, bem como muitos pacotes BLFS. -

    -
  • -
  • -

    - MPC -

    -

    - Esse pacote contém funções para a aritmética de números - complexos. Ele é exigido por GCC. -

    -
  • -
  • -

    - MPFR -

    -

    - Esse pacote contém funções para aritmética de precisão - múltipla. Ele é exigido por GCC. -

    -
  • -
  • -

    - Ninja -

    -

    - Esse pacote contém um sistema pequeno de construção com um - foco em velocidade. Ele é desenhado para ter os arquivos de - entrada dele gerados por um sistema de construção de alto - nível, e para executar construções o mais rápido possível. - Esse pacote é exigido por Meson. -

    -
  • -
  • -

    - Ncurses -

    -

    - Esse pacote contém bibliotecas para manipulação - independente de terminal de telas de carácter. Ele é - frequentemente usado para fornecer controle de cursor para - um sistema com menus. Ele é necessitado por um número de - pacotes em LFS. -

    -
  • -
  • -

    - Openssl -

    -

    - Esse pacote fornece ferramentas e bibliotecas de - gerenciamento relacionadas a criptografia. Essas são úteis - para fornecer funções criptográficas para outros pacotes, - incluindo o kernel Linux. -

    -
  • -
  • -

    - Patch -

    -

    - Esse pacote contém um aplicativo para modificar ou criar - arquivos aplicando um arquivo patch tipicamente criado pelo - aplicativo diff. Ele é - necessitado pelo procedimento de construção para vários - pacotes LFS. -

    -
  • -
  • -

    - Perl -

    -

    - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e - ferramentas de teste de vários pacotes do LFS. -

    -
  • -
  • -

    - Pkg-config -

    -

    - Esse pacote fornece um aplicativo que retorna metadados - acerca de uma biblioteca ou pacote instalado. -

    -
  • -
  • -

    - Procps-NG -

    -

    - Esse pacote contém aplicativos para monitorar processos. - Esses aplicativos são úteis para administração de sistema, - e são também usados pelos scripts de inicialização do LFS. -

    -
  • -
  • -

    - Psmisc -

    -

    - Esse pacote contém aplicativos para mostrar informações - acerca de processos em execução. Esses aplicativos são - úteis para administração de sistema. -

    -
  • -
  • -

    - Python 3 -

    -

    - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. -

    -
  • -
  • -

    - Readline -

    -

    - Esse pacote é um conjunto de bibliotecas que oferecem - capacidades de edição e de histórico de linha de comando. - Ele é usado por Bash. -

    -
  • -
  • -

    - Sed -

    -

    - Esse pacote permite a edição de texto sem abri-lo em um - editor de texto. Ele também é necessitado pela maioria dos - scripts de configuração dos pacotes do LFS. -

    -
  • -
  • -

    - Shadow -

    -

    - Esse pacote contém aplicativos para manipulação de senhas - de uma maneira segura. -

    -
  • -
  • -

    - Systemd -

    -

    - Esse pacote fornece um aplicativo init e várias capacidades adicionais - de inicialização e de controle de sistema como uma - alternativa ao Sysvinit. Ele é usado por muitas - distribuições comerciais. -

    -
  • -
  • -

    - Tar -

    -

    - Esse pacote fornece capacidades de empacotamento e de - extração de virtualmente todos os pacotes usados em LFS. -

    -
  • -
  • -

    - Tcl -

    -

    - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. -

    -
  • -
  • -

    - Texinfo -

    -

    - Esse pacote contém aplicativos para leitura, escrita e - conversão de páginas info. Ele é usado nos procedimentos de - instalação de muitos pacotes LFS. -

    -
  • -
  • -

    - Util-linux -

    -

    - Esse pacote contém uma variedade de aplicativos - utilitários. Entre eles estão utilitários para manipulação - de sistemas de arquivos, consoles, partições e mensagens. -

    -
  • -
  • -

    - Vim -

    -

    - Esse pacote contém um editor. Ele foi escolhido por causa - da compatibilidade com o clássico editor vi e o seu número - gigante de capacidades poderosas. Um editor é uma escolha - muito pessoal para muitas(os) usuárias(os) e qualquer outro - editor poderia ser substituído se assim desejar. -

    -
  • -
  • -

    - XML::Parser -

    -

    - Esse pacote é um módulo Perl que interage com Expat. -

    -
  • -
  • -

    - XZ Utils -

    -

    - Esse pacote contém aplicativos para compressão e - descompressão de arquivos. Ele fornece a maior compressão - geralmente disponível e é útil para descomprimir pacotes - nos formatos XZ ou LZMA. -

    -
  • -
  • -

    - Zlib -

    -

    - Esse pacote contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

    -
  • -
  • -

    - Zstd -

    -

    - Esse pacote contém rotinas de compressão e descompressão - usadas por alguns aplicativos. Ele fornece taxas altas de - compressão e um intervalo muito amplo de intercâmbios entre - compressão / velocidade. -

    -
  • -
-
-
-
-
-
-
-

- Tipografia -

-
-
-
-

- Para fazer as coisas mais fáceis de serem seguidas, existem - algumas convenções tipográficas usadas neste livro. Esta sessão - contém alguns exemplos da formatação tipográfica encontrada ao - longo de Linux From Scratch. -

-
./configure --prefix=/usr
-

- Essa forma de texto é desenhada para ser digitada do jeito que - está, a menos que seja dito o contrário no texto que a envolve. É - também usada na sessão de explicação para identificar quais dos - comandos estão sendo referenciados. -

-

- Em alguns casos, uma linha lógica é estendida em duas ou mais - linhas físicas com uma barra invertida no final da linha. -

-
CC="gcc -B/usr/bin/" ../binutils-2.18/configure \
-  --prefix=/tools --disable-nls --disable-werror
-

- Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -

-
install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir'
-

- Essa forma de texto (largura fixa) mostra a saída em tela, - geralmente como resultado de um comando executado. Esse formato é - também utilizado para mostrar nomes de arquivos, como - /etc/ld.so.conf. -

-

- Emphasis -

-

- Essa forma de texto é usada para vários propósitos neste livro. - Seu propósito principal é o de enfatizar pontos ou itens - importantes. -

-

- https://www.linuxfromscratch.org/ -

-

- Esse formato é usado para hiperlinks tanto dentro da comunidade - LFS e para páginas externas. Isso inclui HOWTOs, locais de - downloads e páginas da Internet. -

-
cat > $LFS/etc/group << "EOF"
-root:x:0:
-bin:x:1:
-......
-EOF
-

- Esse formato é usado quando da criação de arquivos de - configuração. O primeiro comando diz para o sistema criar o - arquivo $LFS/etc/group a partir do - que seja digitado nas linhas seguintes até encontrar a sequência - “End Of File” (EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. -

-

- <REPLACED TEXT> -

-

- Esse formato é usado para encapsular texto que não deve ser - digitado como visto ou para operações de - “copiar-colar”. -

-

- [OPTIONAL TEXT] -

-

- Esse formato é usado para encapsular texto que é opcional. -

-

- passwd(5) -

-

- Esse formato é usado para referir-se a uma página de manual - específica (man). O número entre parênteses indica uma seção - específica dentro dos manuais. Por exemplo, passwd tem duas páginas de - manual. Conforme as instruções de instalação do LFS, essas duas - páginas de manual estarão localizadas em /usr/share/man/man1/passwd.1 e /usr/share/man/man5/passwd.5. Quando o livro - usa passwd(5) ele está se referindo - especificamente a /usr/share/man/man5/passwd.5. man passwd exibirá a primeira - página de manual que corresponde a passwd, a - qual será /usr/share/man/man1/passwd.1. Para esse - exemplo, você precisará executar man 5 passwd para ler a página - sendo especificada. Perceba que a maioria das páginas de manual - não tem nomes duplicados de páginas em diferentes seções. - Portanto, man <nome do - aplicativo> geralmente é - suficiente. -

-
-
-
-
-
-

- Estrutura -

-
-
-
-

- Este livro é dividido nas seguintes partes. -

-
-

- Parte I – Introdução -

-

- A Parte I explica algumas notas importantes sobre como proceder - com a instalação do LFS. Essa seção também fornece - metainformação sobre o livro. -

-
-
-

- Parte II – Preparando para a Construção -

-

- A Parte II descreve como se preparar para o processo de - construção —criando uma partição, baixando os pacotes, e - compilando as ferramentas temporárias. -

-
-
-

- Parte III – Construindo o Conjunto Cruzado de Ferramentas - do LFS e Ferramentas Temporárias -

-

- A Parte III fornece instruções para a construção das - ferramentas necessárias para a construção do sistema LFS final. -

-
-
-

- Parte IV - Construindo o Sistema LFS -

-

- A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, - configurando os scripts de inicialização e instalando o kernel. - O sistema Linux resultante é a base sobre a qual outros - aplicativos podem ser construídos para expandir o sistema - conforme desejado. No final deste livro, há uma lista de - referência de fácil uso listando todos os aplicativos, - bibliotecas e arquivos importantes que foram instalados. -

-
-
-

- Parte V - Apêndices -

-

- A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, - uma listagem dos scripts de inicialização do LFS, licenças para - a distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. -

-
-
-
-
-
-
-

- Errata e Avisos de Segurança -

-
-
-
-

- Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro - LFS ter sido lançado. Para checar se versões de pacotes ou - instruções neste lançamento de LFS necessitam de quaisquer - modificações para acomodar vulnerabilidades de segurança ou - outras correções de defeitos, por favor visite https://www.linuxfromscratch.org/lfs/errata/11.1-systemd/ - antes de continuar com a sua construção. Você deveria tomar nota - de quaisquer mudanças mostradas e aplicá-las às seções relevantes - do livro conforme você progride com a construção do sistema LFS. -

-

- Adicionalmente, os editores de Linux From Scratch mantém uma - lista de vulnerabilidades de segurança descobertas depois que um - livro foi lançado. Para checar se existem quaisquer - vulnerabilidades ativas de segurança, por favor visite https://www.linuxfromscratch.org/lfs/advisories/ - antes de proceder com sua construção. Você deveria tomar nota de - quaisquer conselhos e executar os passos para corrigir quaisquer - vulnerabilidades de segurança conforme você progride com a - construção do sistema LFS. -

-
-
-
-
-
-
-

- Parte I. Introdução -

-
-
-
-
-
-
-
-

- Capítulo 1. Introdução -

-
-
-
-
-
-
-
-

- 1.1. Como Construir um Sistema - LFS -

-
-
-
-

- O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). - Esse sistema Linux existente (o anfitrião) será usado como - ponto de partida para fornecer os aplicativos necessários, - incluindo um compilador, um vinculador, e um interpretador de - comandos, para construir o novo sistema. Selecione a opção - desenvolvimento durante a - instalação da distribuição para estar apto a acessar essas - ferramentas. -

-

- Como uma alternativa a instalar uma distribuição separada em - sua máquina, você talvez deseje usar um LiveCD de uma - distribuição comercial. -

-

- Capítulo 2 - deste livro descreve como criar uma nova partição Linux nativa - e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. Capítulo 3 explica - quais pacotes e patches precisam ser baixados para construir um - sistema LFS e como eles devem ser armazenados no novo sistema - de arquivos. Capítulo 4 discute a - configuração de um ambiente de trabalho apropriado. Por favor, - leia o Capítulo 4 - cuidadosamente, uma vez que ele explica vários assuntos - importantes sobre os quais você deve estar ciente antes de - começar seu trabalho ao longo do Capítulo 5 - e além. -

-

- Capítulo 5, - explica a instalação do conjunto inicial de ferramentas, - (binutils, gcc, e glibc) usando técnicas de compilação cruzada - para isolar as novas ferramentas das do sistema anfitrião. -

-

- Capítulo 6 - te mostra como compilar cruzadamente utilitários básicos usando - o recém construído conjunto cruzado de ferramentas. -

-

- - Capítulo 7 então entra em um ambiente "chroot" e usa - as ferramentas previamente construídas para construir as - ferramentas adicionais necessárias para construir e para testar - o sistema final. -

-

- Esse esforço para isolar o sistema novo do sistema anfitrião - talvez pareça excessivo. Uma explicação técnica completa sobre - o porquê isso é feito é fornecida em Notas Técnicas do - Conjunto de Ferramentas. -

-

- Em Capítulo 8, - o sistema LFS completo é construído. Outra vantagem fornecida - pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. - Enquanto espera por compilações de pacotes completarem, você - pode continuar usando seu computador normalmente. -

-

- Para finalizar a instalação, a configuração básica do sistema é - concluída em Capítulo 9, e o - kernel e carregador de inicialização são configurados em - Capítulo 10. - Capítulo 11 contém informação - sobre como continuar a experiência LFS além deste livro. Após - os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. -

-

- Esse é o processo em poucas palavras. Informação detalhada - sobre cada passo é discutida nos capítulos seguintes e nas - descrições dos pacotes. Itens que talvez pareçam complicados - serão esclarecidos, e tudo ficará em seu devido lugar conforme - você embarcar na aventura do LFS. -

-
-
-
-
-
-

- 1.2. O que há de novo desde - o último lançamento -

-
-
-
-

- Nesta versão de LFS, houve uma grande reorganização do livro - usando técnicas que evitam a modificação do sistema anfitrião e - fornecem um seguimento mais estrito do processo de construção. -

-

- Abaixo está uma lista das atualizações de pacotes feitas desde - o lançamento anterior do livro. -

-
-

- Atualizado para: -

-
    -
  • -

    - Automake-1.16.5 -

    -
  • -
  • -

    - Bash-5.1.16 -

    -
  • -
  • -

    - Bc-5.2.2 -

    -
  • -
  • -

    - Binutils-2.38 -

    -
  • -
  • -

    - Bison-3.8.2 -

    -
  • -
  • -

    - Coreutils-9.0 -

    -
  • -
  • -

    - E2fsprogs-1.46.5 -

    -
  • -
  • -

    - Expat-2.4.6 -

    -
  • -
  • -

    - File-5.41 -

    -
  • -
  • -

    - Findutils-4.9.0 -

    -
  • -
  • -

    - Gawk-5.1.1 -

    -
  • -
  • -

    - GDBM-1.23 -

    -
  • -
  • -

    - Glibc-2.35 -

    -
  • -
  • -

    - Gzip-1.11 -

    -
  • -
  • -

    - IANA-Etc-20220207 -

    -
  • -
  • -

    - Inetutils-2.2 -

    -
  • -
  • -

    - IPRoute2-5.16.0 -

    -
  • -
  • -

    - Jinja2-3.0.3 -

    -
  • -
  • -

    - Libcap-2.63 -

    -
  • -
  • -

    - Libelf-0.186 (de: elfutils) -

    -
  • -
  • -

    - Libpipeline-1.5.5 -

    -
  • -
  • -

    - Linux-5.16.9 -

    -
  • -
  • -

    - Man-DB-2.10.1 -

    -
  • -
  • -

    - Meson-0.61.1 -

    -
  • -
  • -

    - Ncurses-6.3 -

    -
  • -
  • -

    - Openssl-3.0.1 -

    -
  • -
  • -

    - Python-3.10.2 -

    -
  • -
  • -

    - Readline-8.1.2 -

    -
  • -
  • -

    - Shadow-4.11.1 -

    -
  • -
  • -

    - Systemd-250 -

    -
  • -
  • -

    - Tcl-8.6.12 -

    -
  • -
  • -

    - Tzdata-2021e -

    -
  • -
  • -

    - Util-Linux-2.37.4 -

    -
  • -
  • -

    - Vim-8.2.4383 -

    -
  • -
  • -

    - Zstd-1.5.2 -

    -
  • -
-
-
-

- Adicionado: -

-
    -
  • -

    - binutils-2.38-lto_fix-1.patch -

    -
  • -
  • -

    - coreutils-9.0-chmod_fix-1.patch -

    -
  • -
  • -

    - file-5.40-upstream_fixes-1.patch -

    -
  • -
  • -

    - shadow-4.10-useradd_segfault-1.patch -

    -
  • -
  • -

    - systemd-250-upstream_fixes-1.patch -

    -
  • -
-
-
-
-
-
-
-

- 1.3. Registro de Mudanças -

-
-
-
-

- Esta é a versão 11.1-systemd do livro Linux From Scratch, - datada de 1º de março de 2022. Se este livro estiver com mais - de seis meses, então uma versão nova e melhor provavelmente já - está disponível. Para descobrir, por favor verifique um dos - sites via https://www.linuxfromscratch.org/mirrors.html. -

-

- Abaixo está uma lista das mudanças feitas desde o lançamento - anterior do livro. -

-
-

- Entradas de Registro de Mudanças: -

-
    -
  • -

    - 2022-03-01 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.1 lançado. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-23 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para expat-2.4.6 (correção - de segurança). Corrige - #5011. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-15 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.1-rc1 lançado. -

      -
    • -
    • -

      - [bdubbs] - Adicionar binutils-2.38 LTO patch. - Corrige - #5011. -

      -
    • -
    • -

      - [bdubbs] - Atualização para util-linux-2.37.4. - Corrige - #5010. -

      -
    • -
    • -

      - [bdubbs] - Atualização para man-db-2.10.1. Corrige - - #5009. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.9. Corrige - - #5008. -

      -
    • -
    • -

      - [bdubbs] - Atualização para vim-8.2.4383 - (Atualização de Segurança). Endereça - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220207. - Endereça - #5006. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-10 -

    -
    -
      -
    • -

      - [xry111] - Contorna um problema que causa os - binários se vincularem a bibliotecas da - distribuição anfitriã para a passagem dois de - binutils. Agora é desnecessário construir zlib em - capítulo 6. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-09 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para bc-5.2.2. Corrige - - #5004. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.8. Corrige - - #5005. -

      -
    • -
    • -

      - [bdubbs] - Atualização para binutils-2.38. Exige a - adição de zlib para Capítulo 6. Corrige - #5007. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-04 -

    -
    -
      -
    • -

      - [xry111] - Remove diretivas bash +h em chroot. Corrige - #4998. -

      -
    • -
    • -

      - [xry111] - Atualização para man-db-2.10.0. Corrige - - #5002. -

      -
    • -
    • -

      - [xry111] - Move OpenSSL para antes de Kmod e - habilita OpenSSL para construção de Kmod. -

      -
    • -
    • -

      - [xry111] - Atualização para gdbm-1.23. Corrige - - #5000. -

      -
    • -
    • -

      - [xry111] - Atualização para tcl-8.6.12. Corrige - - #5001. -

      -
    • -
    • -

      - [thomas] - Remove sed das instruções glibc em - capítulo 8. Foi submetida ao desenvolvedor. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-02-03 -

    -
    -
      -
    • -

      - [bdubbs] - Adicionado patch chmod do coreutils-9.0. - Corrige - #4992. -

      -
    • -
    • -

      - [bdubbs] - Atualização para glibc-2.35. Corrige - - #4999. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.5. Corrige - - #4996. -

      -
    • -
    • -

      - [bdubbs] - Atualização para findutils-4.9.0. - Corrige - #4995. -

      -
    • -
    • -

      - [bdubbs] - Atualização para expat-2.4.4. Corrige - - #4993. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220128. - Corrige - #4994. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-29 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para linux-5.16.4. Corrige - - #4991. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-27 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.4236. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para zstd-1.5.2. Corrige - - #4988. -

      -
    • -
    • -

      - [bdubbs] - Atualização para util-linux-2.37.3 - (correção de segurança). Corrige - #4989. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python-3.10.2. Corrige - - #4987. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.16.2. Corrige - - #4979. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.63. Corrige - - #4990. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.16.0. - Corrige - #4982. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20220120. - Corrige - #4975. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-20 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para expat-2.4.3 (correções - de segurança). Corrige - #4984. -

      -
    • -
    • -

      - [pierre] - Atualização para meson-0.61.1. Corrige - - #4985. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-17 -

    -
    -
      -
    • -

      - [thomas] - Adicionada uma correção de um erro de - digitação para o patch de meson-0.61.0. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para shadow-4.11.1. Corrige - - #4976. -

      -
    • -
    • -

      - [bdubbs] - Atualização para readline-8.1.2. Corrige - - #4980. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.61.0. Corrige - - #4983. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libpipeline-1.5.5. - Corrige - #4977. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bash-5.1.16. Corrige - - #4978. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-01-13 -

    -
    -
      -
    • -

      - [renodr] - Corrigido CVE-2021-3997 em systemd, bem - como correção de um problema com as Unidades padrão - hostname e idle. Corrige - #4981. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-01-03 -

    -
    -
      -
    • -

      - [renodr] - Acrescenta configuração adicional de - kernel para permitir que 'systemd-oomd' funcione. -

      -
    • -
    -
    -
  • -
  • -

    - 2022-01-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para e2fsprogs-1.46.5. - Corrige - #4974. -

      -
    • -
    • -

      - [bdubbs] - Atualização para zstd-1.5.1. Corrige - - #4972. -

      -
    • -
    • -

      - [bdubbs] - Atualização para expat-2.4.2. Corrige - - #4970. -

      -
    • -
    • -

      - [bdubbs] - Atualização para shadow-4.10. Corrige - - #4969. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.12. Corrige - - #4967. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211224. - Corrige - #4962. -

      -
    • -
    • -

      - [bdubbs] - Atualização para openssl-3.0.1. Corrige - - #4922. -

      -
    • -
    • -

      - [bdubbs] - Atualização para eudev-3.2.11. Corrige - - #4914. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-30 -

    -
    -
      -
    • -

      - [renodr] - Atualização para systemd-250. Corrige - - #4971. -

      -
    • -
    • -

      - [renodr] - Atualização para meson-0.60.3. Corrige - - #4973. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para python3-3.10.1. Corrige - - #4963. -

      -
    • -
    • -

      - [bdubbs] - Atualização para openssl-1.1.1m. Corrige - - #4966. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.7. Corrige - - #4964. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.62. Corrige - - #4965. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-14 -

    -
    -
      -
    • -

      - [thomas] - Permite a construção de findutils em - sistemas de 32 bits. Commits aplicados a partir da - branch multilib por [pierre]. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-12-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3704. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211124. - Corrige - #4957. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.2.1. Corrige - - #4959. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.2. Corrige - - #4960. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.5. Corrige - - #4956. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para iana-etc-20211112. - Corrige - #4955. -

      -
    • -
    • -

      - [bdubbs] - Atualização para elfutils-0.186. Corrige - - #4954. -

      -
    • -
    • -

      - [bdubbs] - Atualização para jinja2-3.0.3. Corrige - - #4953. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.2.0. Corrige - - #4952. -

      -
    • -
    • -

      - [bdubbs] - Atualização para ncurses-6.3. Corrige - - #4951. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libpipeline-1.5.4. - Corrige - #4950. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.1. Corrige - - #4949. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.15.0. - Corrige - #4948. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.15.2. Corrige - - #4947. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-11-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para gawk-5.1.1. Corrige - - #4946. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.60.0. Corrige - - #4945. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.60. Corrige - - #4944. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gdbm-1.22. Corrige - - #4943. -

      -
    • -
    • -

      - [bdubbs] - Atualização para file-5.41. Corrige - - #4942. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.15. Corrige - - #4941. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211025. - Corrige - #4940. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021e. Corrige - - #4939. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-15 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3508. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021c. Corrige - - #4934. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python-3.10.0. Corrige - - #4938. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Jinja2-3.0.2. Corrige - - #4937. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.12. Corrige - - #4932. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20211004. - Corrige - #4933. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.1.1. Corrige - - #4936. -

      -
    • -
    • -

      - [bdubbs] - Atualização para automake-1.16.5. - Corrige - #4935. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-10-01 -

    -
    -
      -
    • -

      - [bdubbs] - Atualização para vim-8.2.3458. Endereça - - #4500. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iana-etc-20210924. - Endereça - #4722. -

      -
    • -
    • -

      - [bdubbs] - Atualização para tzdata-2021b. Corrige - - #4929. -

      -
    • -
    • -

      - [bdubbs] - Atualização para meson-0.59.2. Corrige - - #4931. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.8. Corrige - - #4925. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.59. Corrige - - #4926. -

      -
    • -
    • -

      - [bdubbs] - Atualização para coreutils-9.0. Corrige - - #4928. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bison-3.8.2. Corrige - - #4930. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-15 -

    -
    -
      -
    • -

      - [bdubbs] - Garante que as instruções de - documentação de tcl estão presentes. Corrige - - #4923. -

      -
    • -
    • -

      - [bdubbs] - Atualização para Python3-3.9.7. Corrige - - #4916. -

      -
    • -
    • -

      - [bdubbs] - Atualização para linux-5.14.3. Corrige - - #4913. -

      -
    • -
    • -

      - [bdubbs] - Atualização para libcap-2.57. Corrige - - #4912. -

      -
    • -
    • -

      - [bdubbs] - Atualização para iproute2-5.14.0. - Corrige - #4917. -

      -
    • -
    • -

      - [bdubbs] - Atualização para inetutils-2.2. Corrige - - #4918. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gzip-1.11. Corrige - - #4920. -

      -
    • -
    • -

      - [bdubbs] - Atualização para gdbm-1.21. Corrige - - #4919. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bison-3.8.1. Corrige - - #4921. -

      -
    • -
    • -

      - [bdubbs] - Atualização para bc-5.0.2. Corrige - - #4905. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-08 -

    -
    -
      -
    • -

      - [renodr] - Corrige regressões em File que resultam - em detecção inapropriada de texto e arquivos XZ. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-06 -

    -
    -
      -
    • -

      - [bdubbs] - Esclarecimentos de texto na seção cópia - de segurança/restauração de Capítulo 7. Grato a - Kevin Buckley pelo patch. -

      -
    • -
    -
    -
  • -
  • -

    - 2021-09-01 -

    -
    -
      -
    • -

      - [bdubbs] - LFS-11.0 lançado. -

      -
    • -
    -
    -
  • -
-
-
-
-
-
-
-

- 1.4. Recursos -

-
-
-
-
-

- 1.4.1. Perguntas - Frequentes -

-

- Se durante a construção do sistema LFS você encontrar - quaisquer erros, tiver quaisquer perguntas, ou entender que - há um erro de digitação no livro, então, por favor, comece - consultando as Perguntas Feitas Frequentemente (FAQ) que - estão localizadas em https://www.linuxfromscratch.org/faq/. -

-
-
-

- 1.4.2. Listas de Correio Eletrônico -

-

- O servidor linuxfromscratch.org - hospeda um número de listas de discussão usadas para o - desenvolvimento do projeto LFS. Essas listas incluem as - principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, - então o próximo passo seria procurar nas listas de discussão - em https://www.linuxfromscratch.org/search.html. -

-

- Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - https://www.linuxfromscratch.org/mail.html. -

-
-
-

- 1.4.3. IRC -

-

- Vários membros da comunidade LFS oferecem assistência no - Internet Relay Chat (IRC). Antes de usar esse suporte, por - favor certifique-se de que sua pergunta já não foi respondida - no FAQ do LFS ou nos arquivos das listas de discussão. Você - pode encontrar a rede IRC em irc.libera.chat. O canal de suporte é chamado de - #lfs-support. -

-
-
-

- 1.4.4. - Sítios Espelho -

-

- O projeto LFS tem um número de espelhos mundo afora para - fazer com que o acesso ao site do projeto e o download dos - pacotes exigidos seja mais conveniente. Por favor visite o - site do LFS em https://www.linuxfromscratch.org/mirrors.html - para uma lista dos espelhos atuais. -

-
-
-

- 1.4.5. Informação de Contato -

-

- Por favor, direcione todas as suas questões e comentários - para uma das listas de discussão (veja acima). -

-
-
-
-
-
-
-

- 1.5. Ajuda -

-
-
-
-

- Se um problema ou uma pergunta for encontrado durante o - trabalho com este livro, então, por favor, verifique a página - de Perguntas Frequentes em https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua - pergunta não estiver respondida nessa página, então, por favor, - tente encontrar a origem do problema. A dica seguinte te dará - alguma orientação com relação à resolução de problemas: - - https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. -

-

- Se você não puder achar seu problema listado nas Perguntas - Frequentes, então procure nas listas de discussão em https://www.linuxfromscratch.org/search.html. -

-

- Nós também temos uma comunidade LFS maravilhosa que está - disposta a oferecer assistência por meio das listas de - discussão e IRC (veja a seção Seção 1.4, - “Recursos” deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem - ser facilmente respondidas indo para as Perguntas Frequentes e - procurando nas listas de discussão primeiro. Então, para que - nós possamos oferecer a melhor assistência possível, você - precisa fazer alguma pesquisa por conta própria primeiro. Isso - nos permite focar nas necessidades menos usuais de suporte. Se - suas buscas não produzirem uma solução, então, por favor, - inclua todas as informações relevantes (mencionadas abaixo) no - seu pedido de ajuda. -

-
-

- 1.5.1. Coisas a Mencionar -

-

- Além de uma breve explanação do problema sendo vivenciado, as - coisas essenciais a incluir em qualquer pedido de ajuda são: -

-
-
    -
  • -

    - A versão do livro sendo usado (neste caso 11.1-systemd) -

    -
  • -
  • -

    - A distribuição anfitriã e versão sendo usada para criar - LFS -

    -
  • -
  • -

    - A saída do script Exigências do Sistema Anfitrião -

    -
  • -
  • -

    - O pacote ou seção onde o problema foi encontrado -

    -
  • -
  • -

    - A mensagem de erro exata ou o sintoma sendo recebido -

    -
  • -
  • -

    - Nota se você se desviou do livro afinal -

    -
  • -
-
-
-

- Nota -

-

- Desviar-se deste livro não significa que nós não vamos - te ajudar. Afinal de contas, LFS é acerca de preferência - pessoal. Ser sincero sobre quaisquer mudanças nos - procedimentos estabelecidos nos ajuda a avaliar e - determinar possíveis causas do seu problema. -

-
-
-
-

- 1.5.2. Problemas de Script de Configuração -

-

- Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse - arquivo talvez contenha erros encontrados durante [a execução - de] configure - os quais não foram exibidos na tela. Inclua as linhas - relevantes se você - precisar pedir ajuda. -

-
-
-

- 1.5.3. Problemas de Compilação -

-

- Tanto a saída da tela quando o conteúdo de vários arquivos - são úteis para determinar a causa de problemas de compilação. - A saída da tela do script configure e do make executado podem ser - úteis. Não é necessário incluir toda a saída, mas inclua - informações relevantes suficientes. Abaixo está um exemplo do - tipo de informação a incluir a partir da saída de tela do - make: -

-
gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
--DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
--DLIBDIR=\"/mnt/lfs/usr/lib\"
--DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
--g -O2 -c getopt1.c
-gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
-expand.o file.o function.o getopt.o implicit.o job.o main.o
-misc.o read.o remake.o rule.o signame.o variable.o vpath.o
-default.o remote-stub.o version.o opt1.o
--lutil job.o: In function `load_too_high':
-/lfs/tmp/make-3.79.1/job.c:1565: undefined reference
-to `getloadavg'
-collect2: ld returned 1 exit status
-make[2]: *** [make] Error 1
-make[2]: Leaving directory `/lfs/tmp/make-3.79.1'
-make[1]: *** [all-recursive] Error 1
-make[1]: Leaving directory `/lfs/tmp/make-3.79.1'
-make: *** [all-recursive-am] Error 2
-

- Nesse caso, muitas pessoas incluiriam apenas a seção final: -

-
make [2]: *** [make] Error 1
-

- Essa não é informação suficiente para diagnosticar - adequadamente o problema, pois essa linha apenas mostra que - algo deu errado, não o - quê deu errado. A seção inteira, como no exemplo - acima, é o que deveria ser salva, porque ela inclui o comando - que foi executado e a(s) mensagem(ns) de erro associada(s). -

-

- Um artigo excelente sobre como pedir ajuda na Internet está - disponível em http://catb.org/~esr/faqs/smart-questions.html. - Leia e siga as dicas nesse documento para aumentar a - possibilidade receber a ajuda que você precisa. -

-
-
-
-
-
-
-
-
-

- Parte II. Preparando para a - Construção -

-
-
-
-
-
-
-
-

- Capítulo 2. Preparando o - Sistema Anfitrião -

-
-
-
-
-
-
-
-

- 2.1. Introdução -

-
-
-
-

- Neste capítulo, as ferramentas do anfitrião necessárias para - construção de LFS são verificadas e, se necessário, instaladas. - Então uma partição que hospedará o sistema LFS é preparada. Nós - criaremos a própria partição, criaremos um sistema de arquivos - nela, e a montaremos. -

-
-
-
-
-
-

- 2.2. Exigências do - Sistema Anfitrião -

-
-
-
-

- Seu sistema anfitrião deveria ter o software seguinte com as - versões mínimas indicadas. Isso não deveria ser um problema - para a maioria das distribuições Linux modernas. Também, - perceba que muitas distribuições colocarão cabeçalhos de - aplicativos dentro de pacotes separados, frequentemente na - forma de <nome-pacote>-devel ou - <nome-pacote>-dev. - Certifique-se de instalá-los se sua distribuição os fornecer. -

-

- Versões anteriores dos pacotes de software listados talvez - funcionem, porém não foram testados. -

-
-
    -
  • -

    - Bash-3.2 - (/bin/sh deveria ser um link simbólico ou real para bash) -

    -
  • -
  • -

    - Binutils-2.13.1 (Versões - maiores que 2.38 não são recomendadas dado que elas não - foram testadas) -

    -
  • -
  • -

    - Bison-2.7 - (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) -

    -
  • -
  • -

    - Coreutils-6.9 -

    -
  • -
  • -

    - Diffutils-2.8.1 -

    -
  • -
  • -

    - Findutils-4.2.31 -

    -
  • -
  • -

    - Gawk-4.0.1 - (/usr/bin/awk deveria ser um link para gawk) -

    -
  • -
  • -

    - GCC-4.8 - incluindo o compilador C++, g++ (Versões maiores - que 11.2.0 não são recomendadas dado que elas não foram - testadas). As bibliotecas C e C++ padrão (com cabeçalhos) - também devem estar presentes, de forma que o compilador - C++ possa construir aplicativos hospedados -

    -
  • -
  • -

    - Grep-2.5.1a -

    -
  • -
  • -

    - Gzip-1.3.12 -

    -
  • -
  • -

    - Linux - Kernel-3.2 -

    -

    - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de - glibc em - Capítulo 5 e Capítulo 8, - por recomendação dos desenvolvedores. Ela também é - exigida por udev. -

    -

    - Se o kernel do anfitrião for anterior a 3.2, então você - precisará substituir o kernel com uma versão mais - atualizada. Existem duas maneiras de você fazer isso. - Primeira, veja se seu fornecedor Linux fornece um pacote - de kernel 3.2 ou mais atual. Se sim, então você talvez - deseje instalá-lo. Se seu fornecedor não oferecer um - pacote de kernel aceitável, ou você preferisse não - instalá-lo, então você mesmo pode compilar um kernel. - Instruções para a compilação de kernel e configuração de - carregador de inicialização (presumindo que o anfitrião - usa GRUB) estão localizadas em Capítulo 10. -

    -
  • -
  • -

    - M4-1.4.10 -

    -
  • -
  • -

    - Make-4.0 -

    -
  • -
  • -

    - Patch-2.5.4 -

    -
  • -
  • -

    - Perl-5.8.8 -

    -
  • -
  • -

    - Python-3.4 -

    -
  • -
  • -

    - Sed-4.1.5 -

    -
  • -
  • -

    - Tar-1.22 -

    -
  • -
  • -

    - Texinfo-4.7 -

    -
  • -
  • -

    - Xz-5.0.0 -

    -
  • -
-
-
-

- Importante -

-

- Perceba que os links simbólicos mencionados acima são - exigidos para construir um sistema LFS usando as instruções - contidas neste livro. Links simbólicos que apontem para outro - software (tais como dash, mawk, etc.) talvez funcionem, porém - não são testados ou suportados pela equipe de desenvolvimento - de LFS, e talvez exijam ou desvio das instruções ou correções - adicionais para alguns pacotes. -

-
-

- -

-

- Para ver se seu sistema anfitrião tem todas as versões - apropriadas, e a habilidade de compilar aplicativos, execute o - seguinte: -

-
cat > version-check.sh << "EOF"
-#!/bin/bash
-# Script simples para listar números de versão de ferramentas críticas de desenvolvimento
-export LC_ALL=C
-bash --version | head -n1 | cut -d" " -f2-4
-MYSH=$(readlink -f /bin/sh)
-echo "/bin/sh -> $MYSH"
-echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash"
-unset MYSH
-
-echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
-bison --version | head -n1
-
-if [ -h /usr/bin/yacc ]; then
-  echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-elif [ -x /usr/bin/yacc ]; then
-  echo yacc is `/usr/bin/yacc --version | head -n1`
-else
-  echo "yacc não encontrado"
-fi
-
-echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
-diff --version | head -n1
-find --version | head -n1
-gawk --version | head -n1
-
-if [ -h /usr/bin/awk ]; then
-  echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-elif [ -x /usr/bin/awk ]; then
-  echo awk é `/usr/bin/awk --version | head -n1`
-else
-  echo "awk não encontrado"
-fi
-
-gcc --version | head -n1
-g++ --version | head -n1
-grep --version | head -n1
-gzip --version | head -n1
-cat /proc/version
-m4 --version | head -n1
-make --version | head -n1
-patch --version | head -n1
-echo Perl `perl -V:version`
-python3 --version
-sed --version | head -n1
-tar --version | head -n1
-makeinfo --version | head -n1  # versão texinfo
-xz --version | head -n1
-
-echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
-if [ -x dummy ]
-  then echo "g++ compilação OK";
-  else echo "g++ compilação falhou"; fi
-rm -f dummy.c dummy
-EOF
-
-bash version-check.sh
-
-
-
-
-
-

- 2.3. Construindo LFS - em Estágios -

-
-
-
-

- LFS está desenhado para ser construído em uma sessão. Isto é, - as instruções assumem que o sistema não será desligado durante - o processo. Isso não significa que o sistema tenha que estar - pronto de uma só vez. O problema é que certos procedimentos tem - que ser realizados outra vez após uma inicialização se - retomando LFS em pontos diferentes. -

-
-

- 2.3.1. Capítulos 1–4 -

-

- Esses capítulos são realizados no sistema anfitrião. Quando - da reinicialização, seja cuidadosa(o) com o seguinte: -

-
-
    -
  • -

    - Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 precisam ter - a variável de ambiente LFS configurada PARA A(O) USUÁRIA(O) ROOT. -

    -
  • -
-
-
-
-

- 2.3.2. Capítulos 5–6 -

-
-
    -
  • -

    - A partição /mnt/lfs deve estar montada. -

    -
  • -
  • -

    - Esses dois capítulos devem ser feitos como a(o) - usuária(o) lfs. Um - su - lfs - precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco - de instalar pacotes no sistema anfitrião, e - potencialmente torná-lo inutilizável. -

    -
  • -
  • -

    - Os procedimentos em Instruções Gerais de - Compilação são críticos. Se existir qualquer dúvida - acerca da instalação de um pacote, então certifique-se - de que qualquer arquivo tar descomprimido previamente - foi removido, então extraia novamente os arquivos do - pacote, e complete todas as instruções nessa seção. -

    -
  • -
-
-
-
-

- 2.3.3. Capítulos 7–10 -

-
-
    -
  • -

    - A partição /mnt/lfs deve estar montada. -

    -
  • -
  • -

    - Umas poucas operações, de Mudando - Dono até Entrando no Ambiente - Chroot devem ser feitas como a(o) - usuária(o) root, com a - variável de ambiente LFS configurada para a(o) - usuária(o) root. -

    -
  • -
  • -

    - Quando entrar em chroot, a variável de ambiente LFS - deve estar configurada para root. A variável LFS não mais é - usada posteriormente. -

    -
  • -
  • -

    - Os sistemas virtuais de arquivo devem estar montados. - Isso pode ser feito antes ou depois de entrar em chroot - mudando para um terminal virtual do anfitrião e, como - root, executando os - comandos em Seção 7.3.2, - “Montando e Povoando /dev” e - Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel”. -

    -
  • -
-
-
-
-
-
-
-
-

- 2.4. - Criando uma Nova Partição -

-
-
-
-

- Como a maior parte dos outros sistemas operacionais, LFS - geralmente é instalado em uma partição dedicada. A abordagem - recomendada para construir um sistema LFS é a de usar uma - partição disponível vazia ou, se você tiver espaço suficiente - não particionado, criar uma. -

-

- Um sistema mínimo exige uma partição com cerca de dez (10) - gigabytes (GB). Isso é suficiente para armazenar todos os - arquivos tar dos códigos fontes e compilar os pacotes. - Entretanto, se o sistema LFS for concebido para ser o sistema - Linux principal, então aplicativos adicionais provavelmente - serão instalados os quais exigirão espaço adicional. Uma - partição de trinta (30) GB é um tamanho razoável para permitir - o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço - livre suficiente de armazenamento temporário. Adicionalmente, a - compilação de pacotes pode exigir muito espaço de disco que - será recuperado após o pacote ser instalado. -

-

- Como nem sempre existe Memória de Acesso Aleatório (RAM) - suficiente disponível para processos de compilação, é uma boa - ideia usar uma pequena partição de disco como espaço de - swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória - disponível para processos ativos. A partição de swap para um sistema LFS pode ser a mesma - que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. -

-

- Inicie um aplicativo de particionamento de disco como - cfdisk ou - fdisk com uma - opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador primário de - disco. Crie uma partição nativa Linux e uma partição - swap, se necessária. Por favor, - recorra a cfdisk(8) ou - fdisk(8) se você ainda não sabe - como usar os aplicativos. -

-
-

- Nota -

-

- Para usuários experientes, outros esquemas de partição são - possíveis. O novo sistema LFS pode estar em um vetor de - software - RAID ou um volume lógico - LVM. Entretanto, algumas dessas opções exigem um - - initramfs, o que é um tópico avançado. Essas metodologias - de particionamento não são recomendadas para usuárias(os) de - LFS pela primeira vez. -

-
-

- Lembre-se da designação da nova partição (por exemplo, - sda5). Este livro se referirá a - essa como a partição LFS. Lembre-se também da designação da - partição swap. Esses nomes - serão necessários posteriormente para o arquivo /etc/fstab. -

-
-

- 2.4.1. Outros Problemas de Partição -

-

- Pedidos de ajuda com relação a particionamento de disco - frequentemente são enviados à lista de discussão do LFS. Esse - é um assunto altamente subjetivo. O padrão para a maioria das - distribuições é o de usar todo o disco com a exceção de uma - pequena partição swap. Isso não é ideal para LFS por várias - razões. Isso reduz flexibilidade; torna o compartilhamento de - dados entre múltiplas distribuições ou construções LFS mais - difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de - estruturas de sistema de arquivo. -

-
-
-
-
-

- 2.4.1.1. A Partição Raiz -

-
-
-
-

- Uma partição raiz de LFS (não confundir com o diretório - /root) de vinte (20) - gigabytes é uma boa escolha para a maior parte dos - sistemas. Ela fornece espaço suficiente para construir LFS - e a maior parte de BLFS, mas é pequena o suficiente de - forma que múltiplas partições podem ser criadas facilmente - para experimentação. -

-
-
-
-
-
-

- 2.4.1.2. A Partição Swap -

-
-
-
-

- A maioria das distribuições automaticamente cria uma - partição swap. Geralmente o tamanho recomendado da partição - swap é o de cerca de o dobro da quantidade de RAM física, - entretanto isso raramente é necessário. Se espaço de disco - for limitado, então mantenha a partição swap com dois (2) - gigabytes e monitore a quantidade de troca de disco. -

-

- Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição - swap antes de desligar a máquina. Nesse caso o tamanho da - partição swap deveria ser pelo menos tão grande quanto a - RAM instalada do sistema. -

-

- O uso de swap nunca é bom. Para discos rígidos mecânicos - você geralmente pode dizer se um sistema está usando swap - simplesmente monitorando a atividade de disco e observando - como o sistema reage a comandos. Para um drive SSD você não - estará apta(o) a monitorar swap, porém você pode dizer - quanto espaço de swap está sendo usado via aplicativos - top ou - free. O uso - de um drive SSD para uma partição swap deveria ser evitado - se possível. A primeira reação em caso de uso de swap - deveria ser verificar se existe um comando irracional como - tentar editar um arquivo de cinco gigabytes. Se o uso de - swap se tornar uma ocorrência recorrente, então a melhor - solução é a de comprar mais RAM para seu sistema. -

-
-
-
-
-
-

- 2.4.1.3. A Partição de Bios Grub -

-
-
-
-

- Se o disco de - inicialização tiver sido particionado com a - Tabela de Partição GUID (GPT), então uma partição pequena, - tipicamente um (1) MB, deve ser criada se ela já não - existir. Essa partição não é formatada, porém deve estar - disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será - rotulada 'BIOS Boot' se usar fdisk ou terá um código - de EF02 se usar - gdisk. -

-
-

- Nota -

-

- A Partição de Bios Grub deve estar no drive que o BIOS - usa para inicializar o sistema. Esse não é - necessariamente o mesmo drive onde a partição raiz de LFS - está localizada. Discos em um sistema talvez usem tipos - diferentes de tabela de partição. A exigência para essa - partição depende apenas do tipo de tabela de partição do - disco de inicialização. -

-
-
-
-
-
-
-

- 2.4.1.4. Partições de - Conveniência -

-
-
-
-

- Existem várias outras partições que não são exigidas, porém - deveriam ser consideradas ao se projetar um layout de - disco. A lista seguinte não é abrangente, mas é entendida - como um guia. -

-
-
    -
  • -

    - /boot – Altamente recomendada. Use essa - partição para armazenar kernels e outras informações - de inicialização. Para minimizar potenciais problemas - de inicialização com discos maiores, torne essa a - primeira partição física no seu primeiro controlador - de disco. Um tamanho de partição de duzentos (200) - megabytes é bastante adequado. -

    -
  • -
  • -

    - /home – Altamente recomendada. Compartilhe seu - diretório home e personalizações de usuário entre - múltiplas distribuições ou construções LFS. O tamanho - geralmente é bastante grande e depende do espaço de - disco disponível. -

    -
  • -
  • -

    - /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para - seus homólogos em /usr. - Assim /usr contém todos - os binários necessários para o sistema executar. Para - LFS, uma partição separada para /usr normalmente não é necessária. - Se você precisar dela de qualquer maneira, então você - deveria tornar uma partição grande o suficiente para - acomodar todos os aplicativos e bibliotecas no - sistema. A partição raiz pode ser bem pequena (talvez - apenas um gigabyte) nessa configuração, de forma que - ela seja adequada para um "thin client" ou estação de - trabalho sem disco (onde /usr é montado a partir de um - servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será - necessário para inicializar um sistema com partição - /usr separada. -

    -
  • -
  • -

    - /opt – Esse diretório é mais útil para BLFS - onde múltiplas instalações de pacotes grandes como - Gnome ou KDE podem ser instalados sem embutir os - arquivos na hierarquia /usr. Se usado, 5 a 10 - gigabytes geralmente é adequado. -

    -
  • -
  • -

    - /tmp – Um diretório /tmp separado é raro, mas - útil ao se configurar um "thin client". Essa - partição, se usada, geralmente não precisará exceder - alguns gigabytes. -

    -
  • -
  • -

    - /usr/src – Essa partição é muito útil para - disponibilizar uma localização para armazenar os - arquivos fontes de BLFS e compartilhá-los entre - construções LFS. Ela também pode ser usada como uma - localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite - muito espaço. -

    -
  • -
-
-

- Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser - especificada no /etc/fstab. - Detalhes sobre como especificar partições serão discutidos - em Seção 10.2, - “Criando o Arquivo /etc/fstab”. -

-
-
-
-
-
-
-
-

- 2.5. - Criando um Sistema de Arquivos na Partição -

-
-
-
-

- Agora que uma partição em branco foi configurada, o sistema de - arquivos pode ser criado. LFS pode usar qualquer sistema de - arquivos reconhecido pelo kernel Linux, mas os tipos mais - comuns são ext3 e ext4. A escolha do sistema de arquivos pode - ser complexa e depende das características dos arquivos e o - tamanho da partição. Por exemplo: -

-
-
-
- ext2 -
-
-

- é adequado para partições pequenas que são atualizadas - com pouca frequência tais como /boot. -

-
-
- ext3 -
-
-

- é uma atualização do ext2 que inclui journal para ajudar - a recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. -

-
-
- ext4 -
-
-

- é a versão mais nova da família de sistema de arquivos - ext de tipos de partição. Ela fornece várias capacidades - novas incluindo marcas temporais em nano segundos, - criação e uso de arquivos muito grandes (16 TB), e - melhoramentos de velocidade. -

-
-
-
-

- Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, - JFS, e XFS são úteis para propósitos especializados. Mais - informação sobre esses sistemas de arquivos pode ser encontrada - em http://en.wikipedia.org/wiki/Comparison_of_file_systems. -

-

- LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. - Para criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -

-
mkfs -v -t ext4 /dev/<xxx>
-

- Substitua <xxx> - com o nome da partição LFS. -

-

- Se você está usando uma partição swap existente, então não há necessidade de - formatá-la. Se uma nova partição swap foi criada, então ela precisará ser - inicializada com este comando: -

-
mkswap /dev/<yyy>
-

- Substitua <yyy> - com o nome da partição swap. -

-
-
-
-
-
-

- 2.6. Configurando a - Variável $LFS -

-
-
-
-

- Ao longo deste livro, a variável de ambiente LFS será usada muitas vezes. Você deveria se - assegurar de que essa variável sempre está definida no decorrer - do processo de construção de LFS. Ela deveria ser configurada - para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS - em uma partição separada, então esse diretório será o ponto de - montagem para a partição. Escolha uma localização de diretório - e configure a variável com o seguinte comando: -

-
export LFS=/mnt/lfs
-

- Ter essa variável configurada é benéfico naqueles comandos tais - como mkdir -v - $LFS/tools os quais podem ser digitados - literalmente. O interpretador de comandos automaticamente - substituirá $LFS com /mnt/lfs (ou para o que a variável - foi configurada) quando ele processar a linha de comando. -

-
-

- Cuidado -

-

- Não se esqueça de verificar se LFS - está configurada quando você deixar e entrar novamente no - ambiente atual de trabalho (como quando fizer um su para root ou outra(o) usuária(o)). Verifique - se a variável LFS está configurada - apropriadamente com: -

-
echo $LFS
-

- Tenha certeza de que a saída mostra o caminho para sua - localização de construção do sistema LFS, a qual é - /mnt/lfs se o exemplo fornecido - foi seguido. Se a saída estiver incorreta, então use o - comando dado anteriormente nesta página para configurar - $LFS para o nome correto de - diretório. -

-
-
-

- Nota -

-

- Uma maneira de assegurar que a variável LFS sempre está configurada é editar o arquivo - .bash_profile tanto em seu - diretório home pessoal quanto em /root/.bash_profile e inserir o comando - export acima. Adicionalmente, o interpretador de comandos - especificado no arquivo /etc/passwd para todas(os) as(os) - usuárias(os) que precisam da variável LFS precisa ser bash para assegurar que o - arquivo /root/.bash_profile é - incorporado como parte do processo de login. -

-

- Outra consideração é o método que é usado para logar no - sistema anfitrião. Se logando por intermédio de um - gerenciador gráfico de tela, então o .bash_profile da(o) usuária(o) normalmente - não é usado quando um terminal virtual é iniciado. Nesse - caso, adicione o comando export ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções - de .bashrc em uma invocação não - interativa de bash. Certifique-se de adicionar o comando - export antes do teste para uso não interativo. -

-
-
-
-
-
-
-

- 2.7. Montando a Nova - Partição -

-
-
-
-

- Agora que um sistema de arquivos foi criado, a partição precisa - se tornar acessível. Para fazer isso, a partição precisa ser - montada em um ponto de montagem escolhido. Para os propósitos - deste livro, assume-se que o sistema de arquivos está montado - sob o diretório especificado pela variável de ambiente - LFS conforme descrito na seção - anterior. -

-

- Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -

-
mkdir -pv $LFS
-mount -v -t ext4 /dev/<xxx> $LFS
-

- Substitua <xxx> - com a designação da partição LFS. -

-

- Se estiver usando múltiplas partições para LFS (por exemplo, - uma para / e outra para - /home), então monte-as usando: -

-
mkdir -pv $LFS
-mount -v -t ext4 /dev/<xxx> $LFS
-mkdir -v $LFS/home
-mount -v -t ext4 /dev/<yyy> $LFS/home
-

- Substitua <xxx> - e <yyy> com os - nomes apropriados das partições. -

-

- Assegure-se de que essa nova partição não está montada com - permissões que são muito restritivas (tais como as opções - nosuid ou nodev). Execute o comando mount sem quaisquer - parâmetros para ver quais opções estão configuradas para a - partição LFS montada. Se nosuid e - (ou) nodev estiverem configuradas, - então a partição precisará ser remontada. -

-
-

- Atenção -

-

- As instruções acima assumem que você não estará reiniciando - seu computador no decorrer do processo LFS. Se você desligar - seu sistema, então você precisará remontar a partição LFS a - cada vez que você reiniciar o processo de construção ou - modificar seu arquivo /etc/fstab do sistema anfitrião para - remontá-la automaticamente após inicialização. Por exemplo: -

-
/dev/<xxx>  /mnt/lfs ext4   defaults      1     1
-

- Se você usa partições adicionais opcionais, então - certifique-se de adicioná-las também. -

-
-

- Se você estiver usando uma partição swap, então assegure-se de que ela está - habilitada usando o comando swapon: -

-
/sbin/swapon -v /dev/<zzz>
-

- Substitua <zzz> - com o nome da partição swap. -

-

- Agora que existe um lugar estabelecido para trabalhar, é tempo - de baixar os pacotes. -

-
-
-
-
-
-
-

- Capítulo 3. Pacotes e - Patches -

-
-
-
-
-
-
-
-

- 3.1. Introdução -

-
-
-
-

- Este capítulo inclui uma lista de pacotes que precisam ser - baixados para construir um sistema Linux básico. Os números de - versão listados correspondem a versões dos aplicativos que são - conhecidos por funcionar, e este livro é baseado no uso deles. - Nós recomendamos veementemente contra o uso de versões - diferentes, pois os comandos de construção para uma versão - talvez não funcionem com uma versão diferente, a menos que a - versão diferente seja especificada por uma errata de LFS ou - conselho de segurança. As versões mais novas de pacote talvez - também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de - desenvolvimento do livro. -

-

- Para alguns pacotes, o tarball de lançamento e o tarball - instantâneo de repositório (Git ou SVN) para este lançamento - talvez seja publicado com nome semelhante de arquivo. Um - tarball de lançamento contém arquivos generalizados (por - exemplo, o script configure gerado por - autoconf), em - adição aos conteúdos do correspondente instantâneo de - repositório. O livro usa tarballs de lançamento quando - possível. Usar um instantâneo de repositório em vez de um - tarball de lançamento especificado pelo livro causará - problemas. -

-

- Localizações de downloads nem sempre podem estar acessíveis. Se - uma localização de download mudou desde que este livro foi - publicado, então o Google (http://www.google.com/) fornece um - motor de busca útil para a maioria dos pacotes. Se essa busca - for mal sucedida, então tente um dos meios alternativos de - download em https://www.linuxfromscratch.org/lfs/mirrors.html#files. -

-

- Pacotes e patches baixados precisarão ser armazenados em algum - lugar que esteja convenientemente disponível durante a - construção inteira. Um diretório de trabalho também é exigido - para desempacotar os fontes e construí-los. $LFS/sources pode ser usado tanto como o - lugar para armazenar os tarballs e patches quanto como - diretório de trabalho. Usando esse diretório, os elementos - exigidos estarão localizados na partição LFS e estarão - disponíveis durante todos os estágios do processo de - construção. -

-

- Para criar esse diretório, execute o seguinte comando, como - usuária(o) root, antes de - começar a sessão de download: -

-
mkdir -v $LFS/sources
-

- Torne esse diretório gravável e "sticky". Sticky - significa que mesmo se múltiplas(os) usuárias(os) tenham - permissão de escrita, só a(o) dona(o) de um arquivo pode - deletar o arquivo dentro de um diretório sticky. O seguinte - comando habilitará os modos escrita e sticky: -

-
chmod -v a+wt $LFS/sources
-

- Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: -

-
-
    -
  • -

    - Os arquivos podem ser baixados individualmente conforme - descrito nas próximas duas seções. -

    -
  • -
  • -

    - Para versões estáveis do livro, um tarball de todos os - arquivos necessários pode ser baixado a partir de um dos - espelhos de arquivos de LFS listados em https://www.linuxfromscratch.org/mirrors.html#files. -

    -
  • -
  • -

    - Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. -

    -
  • -
-
-

- Para baixar todos os pacotes e patches usando lista-wget como uma entrada para o - comando wget, - use: -

-
wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources
-
-

- Nota -

-

- O arquivo lista-wget mencionado - acima recupera todos os pacotes para as versões sysV e - systemd de LFS. Existe um total de cinco pacotes pequenos - adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é - específico para o livro atual. -

-
-

- Adicionalmente, começando com LFS-7.0, existe um arquivo - separado, md5sums, que - pode ser usado para verificar se todos os pacotes corretos - estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -

-
pushd $LFS/sources
-  md5sum -c md5sums
-popd
-

- Essa verificação pode ser usada após recuperar os arquivos - necessários com qualquer dos métodos listados acima. -

-
-
-
-
-
-

- 3.2. Todos os Pacotes -

-
-
-
-

- Baixe ou de outra forma obtenha os seguintes pacotes: -

-
-
-
-
- Acl (2.3.1) - 348 - KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/acl -

-

- Download: - https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz -

-

- MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 -

-
-
- Attr (2.5.1) - 456 - KB: -
-
-

- Home page: https://savannah.nongnu.org/projects/attr -

-

- Download: - https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz -

-

- MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 -

-
-
- Autoconf (2.71) - 1,263 KB: -
-
-

- Home page: https://www.gnu.org/software/autoconf/ -

-

- Download: - https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz -

-

- MD5 sum: 12cfa1687ffa2606337efe1a64416106 -

-
-
- Automake (1.16.5) - 1,565 KB: -
-
-

- Home page: https://www.gnu.org/software/automake/ -

-

- Download: - https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz -

-

- MD5 sum: 4017e96f89fca45ca946f1c5db6be714 -

-

- SHA256 sum: 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d -

-
-
- Bash (5.1.16) - 10,277 KB: -
-
-

- Home page: https://www.gnu.org/software/bash/ -

-

- Download: https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz -

-

- MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e -

-
-
- Bc (5.2.2) - 428 - KB: -
-
-

- Home page: https://git.yzena.com/gavin/bc -

-

- Download: - https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz -

-

- MD5 sum: 632344cdb052af0e06087bd3b0034126 -

-
-
- Binutils (2.38) - 23,098 KB: -
-
-

- Home page: https://www.gnu.org/software/binutils/ -

-

- Download: - https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz -

-

- MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 -

-
-
- Bison (3.8.2) - 2,752 KB: -
-
-

- Home page: https://www.gnu.org/software/bison/ -

-

- Download: https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz -

-

- MD5 sum: c28f119f405a2304ff0a7ccdcc629713 -

-
-
- Bzip2 (1.0.8) - 792 KB: -
-
-

- Download: - https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz -

-

- MD5 sum: 67e051268d0c475ea773822f7500d0e5 -

-
-
- Check (0.15.2) - 760 KB: -
-
-

- Home page: https://libcheck.github.io/check -

-

- Download: - https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz -

-

- MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 -

-
-
- Coreutils (9.0) - 5,482 KB: -
-
-

- Home page: https://www.gnu.org/software/coreutils/ -

-

- Download: - https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz -

-

- MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 -

-
-
- D-Bus (1.12.20) - 2,048 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/dbus -

-

- Download: - https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz -

-

- MD5 sum: dfe8a71f412e0b53be26ed4fbfdc91c4 -

-
-
- DejaGNU (1.6.3) - 608 KB: -
-
-

- Home page: https://www.gnu.org/software/dejagnu/ -

-

- Download: https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz -

-

- MD5 sum: 68c5208c58236eba447d7d6d1326b821 -

-
-
- Diffutils (3.8) - 1,548 KB: -
-
-

- Home page: https://www.gnu.org/software/diffutils/ -

-

- Download: - https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz -

-

- MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc -

-
-
- E2fsprogs (1.46.5) - 9,307 KB: -
-
-

- Home page: http://e2fsprogs.sourceforge.net/ -

-

- Download: - https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz -

-

- MD5 sum: 3da91854c960ad8a819b48b2a404eb43 -

-
-
- Elfutils (0.186) - 9,015 KB: -
-
-

- Home page: https://sourceware.org/elfutils/ -

-

- Download: - https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 -

-

- MD5 sum: 2c095e31e35d6be7b3718477b6d52702 -

-
-
- Expat (2.4.6) - 444 KB: -
-
-

- Home page: https://libexpat.github.io/ -

-

- Download: - https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz -

-

- MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 -

-
-

- Nota -

-

- A(O) Desenvolvedora(or) talvez remova tarballs dos - lançamentos específicos de Expat quando esses lançamentos - contenham uma vulnerabilidade de segurança. Você - deveria se referir a Avisos - de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você - talvez baixe a versão vulnerável a partir de um - espelho, porém isso não é recomendado. -

-
-
-
- Expect (5.45.4) - 618 KB: -
-
-

- Home page: https://core.tcl.tk/expect/ -

-

- Download: - https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz -

-

- MD5 sum: 00fce8de158422f5ccd2666512329bd2 -

-
-
- File (5.41) - 1040 - KB: -
-
-

- Home page: https://www.darwinsys.com/file/ -

-

- Download: https://astron.com/pub/file/file-5.41.tar.gz -

-

- MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b -

-
-
- Findutils (4.9.0) - 1,999 KB: -
-
-

- Home page: https://www.gnu.org/software/findutils/ -

-

- Download: - https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz -

-

- MD5 sum: 4a4a547e888a944b2f3af31d789a1137 -

-
-
- Flex (2.6.4) - 1,386 KB: -
-
-

- Home page: https://github.com/westes/flex -

-

- Download: - https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz -

-

- MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d -

-
-
- Gawk (5.1.1) - 3,075 KB: -
-
-

- Home page: https://www.gnu.org/software/gawk/ -

-

- Download: https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz -

-

- MD5 sum: 83650aa943ff2fd519b2abedf8506ace -

-
-
- GCC (11.2.0) - 78,996 KB: -
-
-

- Home page: https://gcc.gnu.org/ -

-

- Download: - https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz -

-

- MD5 sum: 31c86f2ced76acac66992eeedce2fce2 -

-

- SHA256 sum: d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b -

-
-
- GDBM (1.23) - 1,092 KB: -
-
-

- Home page: https://www.gnu.org/software/gdbm/ -

-

- Download: https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz -

-

- MD5 sum: 8551961e36bf8c70b7500d255d3658ec -

-
-
- Gettext (0.21) - 9,487 KB: -
-
-

- Home page: https://www.gnu.org/software/gettext/ -

-

- Download: https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz -

-

- MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 -

-
-
- Glibc (2.35) - 17,741 KB: -
-
-

- Home page: https://www.gnu.org/software/libc/ -

-

- Download: https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz -

-

- MD5 sum: dd571c67d85d89d7f60b854a4e207423 -

-
-
- GMP (6.2.1) - 1,980 KB: -
-
-

- Home page: https://www.gnu.org/software/gmp/ -

-

- Download: https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz -

-

- MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b -

-
-
- Gperf (3.1) - 1,188 KB: -
-
-

- Home page: https://www.gnu.org/software/gperf/ -

-

- Download: https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz -

-

- MD5 sum: 9e251c0a618ad0824b51117d5d9db87e -

-
-
- Grep (3.7) - 1,603 - KB: -
-
-

- Home page: https://www.gnu.org/software/grep/ -

-

- Download: https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz -

-

- MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf -

-
-
- Groff (1.22.4) - 4,044 KB: -
-
-

- Home page: https://www.gnu.org/software/groff/ -

-

- Download: https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz -

-

- MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f -

-
-
- GRUB (2.06) - 6,428 KB: -
-
-

- Home page: https://www.gnu.org/software/grub/ -

-

- Download: https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz -

-

- MD5 sum: cf0fd928b1e5479c8108ee52cb114363 -

-
-
- Gzip (1.11) - 786 - KB: -
-
-

- Home page: https://www.gnu.org/software/gzip/ -

-

- Download: https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz -

-

- MD5 sum: d1e93996dba00cab0caa7903cd01d454 -

-
-
- Iana-Etc (20220207) - 580 KB: -
-
-

- Home page: https://www.iana.org/protocols -

-

- Download: - https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz -

-

- MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f -

-
-
- Inetutils (2.2) - 1,494 KB: -
-
-

- Home page: https://www.gnu.org/software/inetutils/ -

-

- Download: - https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz -

-

- MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 -

-

- SHA256 sum: 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 -

-
-
- Intltool (0.51.0) - 159 KB: -
-
-

- Home page: https://freedesktop.org/wiki/Software/intltool -

-

- Download: - https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz -

-

- MD5 sum: 12e517cac2b57a0121cda351570f1e63 -

-
-
- IPRoute2 (5.16.0) - 843 KB: -
-
-

- Home page: https://www.kernel.org/pub/linux/utils/net/iproute2/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz -

-

- MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb -

-
-
- Jinja2 (3.0.3) - 263 KB: -
-
-

- Home page: https://jinja.palletsprojects.com/en/3.0.x/ -

-

- Download: - https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-3.0.3.tar.gz -

-

- MD5 sum: b76ae2f0647abebc81e7c03f5fb7b00f -

-
-
- Kbd (2.4.0) - 1,095 KB: -
-
-

- Home page: https://kbd-project.org/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz -

-

- MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 -

-
-
- Kmod (29) - 548 - KB: -
-
-

- Download: - https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz -

-

- MD5 sum: e81e63acd80697d001c8d85c1acb38a0 -

-
-
- Less (590) - 348 - KB: -
-
-

- Home page: https://www.greenwoodsoftware.com/less/ -

-

- Download: - https://www.greenwoodsoftware.com/less/less-590.tar.gz -

-

- MD5 sum: f029087448357812fba450091a1172ab -

-
-
- Libcap (2.63) - 171 KB: -
-
-

- Home page: https://sites.google.com/site/fullycapable/ -

-

- Download: - https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz -

-

- MD5 sum: 18410cec436f827e698ee9ea16ada9b7 -

-
-
- Libffi (3.4.2) - 1,320 KB: -
-
-

- Home page: https://sourceware.org/libffi/ -

-

- Download: - https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz -

-

- MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 -

-
-
- Libpipeline (1.5.5) - 934 KB: -
-
-

- Home page: http://libpipeline.nongnu.org/ -

-

- Download: - https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz -

-

- MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 -

-
-
- Libtool (2.4.6) - 951 KB: -
-
-

- Home page: https://www.gnu.org/software/libtool/ -

-

- Download: https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz -

-

- MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 -

-
-
- Linux (5.16.9) - 124,577 KB: -
-
-

- Home page: https://www.kernel.org/ -

-

- Download: - https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz -

-

- MD5 sum: 4d6a704bf3e249ef6189b6f17457084b -

-
-

- Nota -

-

- O kernel Linux é atualizado com relativa frequência, - muitas vezes devido às descobertas de - vulnerabilidades de segurança. A versão estável de - kernel mais atual disponível pode ser usada, a menos - que a página de errata diga o contrário. -

-

- Para usuárias(os) com largura de banda de velocidade - limitada ou cara que desejem atualizar o kernel - Linux, uma versão básica do pacote e patches pode ser - baixada separadamente. Isso talvez economize algum - tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. -

-
-
-
- M4 (1.4.19) - 1,617 KB: -
-
-

- Home page: https://www.gnu.org/software/m4/ -

-

- Download: https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz -

-

- MD5 sum: 0d90823e1426f1da2fd872df0311298d -

-
-
- Make (4.3) - 2,263 - KB: -
-
-

- Home page: https://www.gnu.org/software/make/ -

-

- Download: https://ftp.gnu.org/gnu/make/make-4.3.tar.gz -

-

- MD5 sum: fc7a67ea86ace13195b0bce683fd4469 -

-
-
- Man-DB (2.10.1) - 1,847 KB: -
-
-

- Home page: https://www.nongnu.org/man-db/ -

-

- Download: - https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz -

-

- MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 -

-
-
- Man-pages (5.13) - 1,752 KB: -
-
-

- Home page: https://www.kernel.org/doc/man-pages/ -

-

- Download: - https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz -

-

- MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 -

-
-
- MarkupSafe (2.0.1) - 20 KB: -
-
-

- Home page: https://markupsafe.palletsprojects.com/en/2.0.x/ -

-

- Download: - https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-2.0.1.tar.gz -

-

- MD5 sum: 892e0fefa3c488387e5cc0cad2daa523 -

-
-
- Meson (0.61.1) - 1,963 KB: -
-
-

- Home page: https://mesonbuild.com -

-

- Download: - https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz -

-

- MD5 sum: 8ed66d5537275df3defffb66d1fb897f -

-
-
- MPC (1.2.1) - 820 - KB: -
-
-

- Home page: http://www.multiprecision.org/ -

-

- Download: https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz -

-

- MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 -

-
-
- MPFR (4.1.0) - 1,490 KB: -
-
-

- Home page: https://www.mpfr.org/ -

-

- Download: https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz -

-

- MD5 sum: bdd3d5efba9c17da8d83a35ec552baef -

-
-
- Ncurses (6.3) - 3,500 KB: -
-
-

- Home page: https://www.gnu.org/software/ncurses/ -

-

- Download: - https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz -

-

- MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe -

-
-
- Ninja (1.10.2) - 209 KB: -
-
-

- Home page: https://ninja-build.org/ -

-

- Download: - https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz -

-

- MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 -

-
-
- OpenSSL (3.0.1) - 14,660 KB: -
-
-

- Home page: https://www.openssl.org/ -

-

- Download: https://www.openssl.org/source/openssl-3.0.1.tar.gz -

-

- MD5 sum: 7d07e849d77d276891edd579a8832bb3 -

-
-
- Patch (2.7.6) - 766 KB: -
-
-

- Home page: https://savannah.gnu.org/projects/patch/ -

-

- Download: https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz -

-

- MD5 sum: 78ad9937e4caadcba1526ef1853730d5 -

-
-
- Perl (5.34.0) - 12,580 KB: -
-
-

- Home page: https://www.perl.org/ -

-

- Download: https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz -

-

- MD5 sum: df7ecb0653440b26dc951ad9dbfab517 -

-
-
- Pkg-config (0.29.2) - 1,970 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/pkg-config -

-

- Download: - https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz -

-

- MD5 sum: f6e931e319531b736fadc017f470e68a -

-
-
- Procps (3.3.17) - 985 KB: -
-
-

- Home page: https://sourceforge.net/projects/procps-ng -

-

- Download: - https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz -

-

- MD5 sum: d60613e88c2f442ebd462b5a75313d56 -

-
-
- Psmisc (23.4) - 362 KB: -
-
-

- Home page: https://gitlab.com/psmisc/psmisc -

-

- Download: - https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz -

-

- MD5 sum: 8114cd4489b95308efe2509c3a406bbf -

-
-
- Python (3.10.2) - 18,341 KB: -
-
-

- Home page: https://www.python.org/ -

-

- Download: - https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz -

-

- MD5 sum: 14e8c22458ed7779a1957b26cde01db9 -

-
-
- Documentação de Python (3.10.2) - - 7,102 KB: -
-
-

- Download: - https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 -

-

- MD5 sum: ffa52f0017baf72df9d32dec785fd6ab -

-
-
- Readline (8.1.2) - 2,923 KB: -
-
-

- Home page: https://tiswww.case.edu/php/chet/readline/rltop.html -

-

- Download: - https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz -

-

- MD5 sum: 12819fa739a78a6172400f399ab34f81 -

-
-
- Sed (4.8) - 1,317 - KB: -
-
-

- Home page: https://www.gnu.org/software/sed/ -

-

- Download: https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz -

-

- MD5 sum: 6d906edfdb3202304059233f51f9a71d -

-
-
- Shadow (4.11.1) - 1,618 KB: -
-
-

- Home page: https://shadow-maint.github.io/shadow/ -

-

- Download: - https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz -

-

- MD5 sum: 5a95ec069aa91508167d02fecafaa912 -

-
-
- Systemd (250) - 10,856 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/systemd/ -

-

- Download: - https://github.com/systemd/systemd/archive/v250/systemd-250.tar.gz -

-

- MD5 sum: 8929beb037c587ada4ed201f19756fe2 -

-
-
- Systemd Man Pages(250) - 596 KB: -
-
-

- Home page: https://www.freedesktop.org/wiki/Software/systemd/ -

-

- Download: - https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-250.tar.xz -

-

- MD5 sum: af3aca39abe4e990cb2a9ac63dcdf506 -

-
-

- Nota -

-

- A equipe de Linux From Scratch gera seu próprio - tarball das páginas de manual usando o fonte systemd. - Isso é feito com a finalidade de evitar dependências - desnecessárias. -

-
-
-
- Tar (1.34) - 2,174 - KB: -
-
-

- Home page: https://www.gnu.org/software/tar/ -

-

- Download: https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz -

-

- MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf -

-
-
- Tcl (8.6.12) - 10,112 KB: -
-
-

- Home page: http://tcl.sourceforge.net/ -

-

- Download: - https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz -

-

- MD5 sum: 87ea890821d2221f2ab5157bc5eb885f -

-
-
- Documentação de Tcl (8.6.12) - - 1,176 KB: -
-
-

- Download: - https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz -

-

- MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a -

-
-
- Texinfo (6.8) - 4,848 KB: -
-
-

- Home page: https://www.gnu.org/software/texinfo/ -

-

- Download: https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz -

-

- MD5 sum: a91b404e30561a5df803e6eb3a53be71 -

-
-
- Dados de Zona de Tempo (2021e) - - 413 KB: -
-
-

- Home page: https://www.iana.org/time-zones -

-

- Download: - https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz -

-

- MD5 sum: 4fdfad906ebc85fef30221c10964cce9 -

-
-
- Util-linux (2.37.4) - 5,971 KB: -
-
-

- Home page: - https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ -

-

- Download: - https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz -

-

- MD5 sum: 755919e658c349cad9e1c7c771742d48 -

-
-
- Vim (8.2.4383) - 15,622 KB: -
-
-

- Home page: https://www.vim.org -

-

- Download: - https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz -

-

- MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 -

-
-

- Nota -

-

- A versão de vim muda diariamente. Para conseguir a - versão mais atual, vá para https://github.com/vim/vim/tags. -

-
-
-
- XML::Parser (2.46) - 249 KB: -
-
-

- Home page: https://github.com/chorny/XML-Parser -

-

- Download: - https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz -

-

- MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 -

-
-
- Xz Utils (5.2.5) - 1,122 KB: -
-
-

- Home page: https://tukaani.org/xz -

-

- Download: https://tukaani.org/xz/xz-5.2.5.tar.xz -

-

- MD5 sum: aa1621ec7013a19abab52a8aff04fe5b -

-
-
- Zlib (1.2.11) - 457 KB: -
-
-

- Home page: https://www.zlib.net/ -

-

- Download: https://zlib.net/zlib-1.2.11.tar.xz -

-

- MD5 sum: 85adef240c5f370b308da8c938951a68 -

-
-
- Zstd (1.5.2) - 1,892 KB: -
-
-

- Home page: https://facebook.github.io/zstd/ -

-

- Download: - https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz -

-

- MD5 sum: 072b10f71f5820c24761a65f31f43e73 -

-
-
-
-
-

- Tamanho total desses pacotes: cerca de 458 MB -

-
-
-
-
-
-

- 3.3. Patches Necessários -

-
-
-
-

- Em adição aos pacotes, vários patches também são exigidos. - Esses patches corrigem quaisquer erros nos pacotes que deveriam - ser consertados pela(o) Mantenedora(or). Os patches também - fazem pequenas modificações para tornar os pacotes mais fáceis - de se trabalhar. Os seguintes patches serão necessários para - construir um sistema LFS: -

-
-
-
-
- Binutils LTO Fix Patch - 3.5 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch -

-

- MD5 sum: 3df11b6123d5bbdb0fc83862a003827a -

-
-
- Patch de Documentação de Bzip2 - - 1.6 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch -

-

- MD5 sum: 6a5ac7e89b791aae556de0f745916f7f -

-
-
- Patch de Correções de - Internacionalização de Coreutils - 166 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch -

-

- MD5 sum: 1eeba2736dfea013509f9975365e4e32 -

-
-
- Patch de Correção de Chmod de - Coreutils - 3.8 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch -

-

- MD5 sum: 4709df88e68279e6ef357aa819ba5b1a -

-
-
- Glibc FHS Patch - 2.8 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch -

-

- MD5 sum: 9a5997c3452909b1769918c759eff8a2 -

-
-
- Patch de Correção de Backspace/Delete - de Kbd - 12 KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch -

-

- MD5 sum: f75cca16a38da6caa7d52151f7136895 -

-
-
- Patch de Correção de - Desenvolvedora(or) de Perl - 1.6 - KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch -

-

- MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 -

-
-
- Patch de Correção de - Desenvolvedora(or) de Systemd - 20 - KB: -
-
-

- Download: - https://www.linuxfromscratch.org/patches/lfs/11.1/systemd-250-upstream_fixes-1.patch -

-

- MD5 sum: 71eac6abdad5fba2039dcd011a9ae5b3 -

-
-
-
-
-

- Tamanho total desses patches: cerca de 211.3 KB -

-

- Em adição aos patches exigidos acima, existe um número de - patches opcionais criados pela comunidade LFS. Esses patches - opcionais solucionam problemas menores ou habilitam - funcionalidade que não está habilitada por padrão. Sinta-se à - vontade para examinar o banco de dados de patches localizado em - https://www.linuxfromscratch.org/patches/downloads/ - e adquirir quaisquer patches adicionais para atender às - necessidades do seu sistema. -

-
-
-
-
-
-
-

- Capítulo 4. Preparações - Finais -

-
-
-
-
-
-
-
-

- 4.1. Introdução -

-
-
-
-

- Neste capítulo, nós realizaremos umas poucas tarefas adicionais - para preparar para construção o sistema temporário. Nós - criaremos um conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) - para reduzir risco; e criaremos um ambiente apropriado de - construção para aquela(e) usuária(o). Nós também explicaremos a - unidade de tempo que usamos para medir quanto tempo pacotes de - LFS levam para construir, ou SBUs, e - daremos alguma informação acerca de suítes de teste de pacote. -

-
-
-
-
-
-

- 4.2. Criando um - layout limitado de diretório em sistema de arquivos de - LFS -

-
-
-
-

- A primeira tarefa realizada na partição LFS é a de criar uma - hierarquia limitada de diretório de forma que aplicativos - compilados em Capítulo 6 - (bem como glibc e libstdc++ em Capítulo 5) - possam ser instalados no local final deles. Isso é necessário - de maneira que aqueles aplicativos temporários sejam - sobrescritos quando reconstruí-los em Capítulo 8. -

-

- Crie o layout exigido de diretório executando o seguinte como - root: -

-
mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
-
-for i in bin lib sbin; do
-  ln -sv usr/$i $LFS/$i
-done
-
-case $(uname -m) in
-  x86_64) mkdir -pv $LFS/lib64 ;;
-esac
-

- Aplicativos em Capítulo 6 - serão compilados com um compilador cruzado (mais detalhes na - seção Notas - Técnicas do Conjunto de Ferramentas). Com a finalidade de - separar esse compilador cruzado de outros aplicativos, ele será - instalado em um diretório especial. Crie esse diretório com: -

-
mkdir -pv $LFS/tools
-
-
-
-
-
-

- 4.3. Adicionando a(o) - Usuária(o) LFS -

-
-
-
-

- Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos - próximos dois capítulos são construídos como uma(m) usuária(o) - sem privilégios. Você poderia usar seu próprio nome de - usuária(o), mas para facilitar a configuração de um ambiente de - trabalho limpo, crie uma(m) nova(o) usuária(o) chamada(o) - lfs como um membro de um novo - grupo (também chamado lfs) e - use essa(e) usuária(o) durante o processo de instalação. Como - root, emita os seguintes - comandos para adicionar a(o) nova(o) usuária(o): -

-
groupadd lfs
-useradd -s /bin/bash -g lfs -m -k /dev/null lfs
-
-

- O significado das opções de linha de - comando: -

-
-
- -s - /bin/bash -
-
-

- Isso torna bash o interpretador de - comandos padrão para a(o) usuária(o) lfs. -

-
-
- -g - lfs -
-
-

- Essa opção adiciona usuária(o) lfs ao grupo lfs. -

-
-
- -m -
-
-

- Isso cria um diretório home para lfs. -

-
-
- -k - /dev/null -
-
-

- Esse parâmetro previne possível cópia de arquivos a - partir de um diretório esqueleto (padrão é /etc/skel) mudando a localização de - entrada para o dispositivo especial null. -

-
-
- lfs -
-
-

- Esse é o nome atual para a(o) usuária(o) criada(o). -

-
-
-
-

- Para se logar como lfs (em - oposição a mudar para a(o) usuária(o) lfs quando logada(o) como root, que não exige que a(o) usuária(o) - lfs tenha uma senha), dê a - lfs uma senha: -

-
passwd lfs
-

- Conceda a lfs acesso total a - todos os diretórios sob $LFS - tornando lfs a(o) dona(o) do - diretório: -

-
chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -v lfs $LFS/lib64 ;;
-esac
-

- Se um diretório de trabalho separado foi criado como sugerido, - então dê à(ao) usuária(o) lfs a - propriedade desse diretório: -

-
chown -v lfs $LFS/sources
-
-

- Nota -

-

- Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs - para o segundo plano. Se o prompt "lfs:~$" não aparecer - imediatamente, então emitir o comando fg corrigirá o problema. -

-
-

- Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um console - virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -

-
su - lfs
-

- O - instrui - su a iniciar um - shell de login em vez de um shell de não-login. A diferença - entre esses dois tipos de shells pode ser encontrada em - detalhes em bash(1) e - info bash. -

-
-
-
-
-
-

- 4.4. Configurando o - Ambiente -

-
-
-
-

- Configure um bom ambiente de trabalho criando dois novos - arquivos de inicialização para o shell bash. Enquanto logada(o) como - usuária(o) lfs, emita o - seguinte comando para criar um novo .bash_profile: -

-
cat > ~/.bash_profile << "EOF"
-exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
-EOF
-

- Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um shell - de login que lê o - /etc/profile do anfitrião - (provavelmente contendo algumas configurações e variáveis de - ambiente) e então .bash_profile. - O comando exec env - -i.../bin/bash no arquivo .bash_profile substitui o shell em execução - por um novo com um ambiente completamente vazio, exceto pelas - variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e - potencialmente danosa oriunda do sistema anfitrião vaze para o - ambiente de construção. A técnica usada aqui alcança o objetivo - de assegurar um ambiente limpo. -

-

- A nova instância do shell é um shell de não-login, que não lê, e executa, o - conteúdo dos arquivos /etc/profile ou .bash_profile, porém, ao invés, lê, e - executa, o arquivo .bashrc. Crie - o arquivo .bashrc agora: -

-
cat > ~/.bashrc << "EOF"
-set +h
-umask 022
-LFS=/mnt/lfs
-LC_ALL=POSIX
-LFS_TGT=$(uname -m)-lfs-linux-gnu
-PATH=/usr/bin
-if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
-PATH=$LFS/tools/bin:$PATH
-CONFIG_SITE=$LFS/usr/share/config.site
-export LFS LC_ALL LFS_TGT PATH CONFIG_SITE
-EOF
-
-

- O significado das configurações em .bashrc -

-
-
- set - +h -
-
-

- O comando set - +h desliga a função hash do bash. - “Hashing” geralmente é uma característica - útil—bash usa uma tabela - hash para lembrar o caminho completo de arquivos - executáveis para evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser - usadas tão logo sejam instaladas. Desativando a função - hash, o shell sempre vai procurar no PATH quando um aplicativo estiver para ser - executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo - aplicativo fornecida pela distribuição anfitriã, em - /usr/bin ou /bin. -

-
-
- umask - 022 -
-
-

- Configurar a máscara de criação de arquivos da(o) - usuária(o) (umask) para 022 garante que recém criados - arquivos e diretórios são graváveis somente por suas(eus) - donas(os), mas são legíveis e executáveis por qualquer - pessoa (assumindo que os modos padrão são usados pelas - chamadas de sistema open(2), novos arquivos terminarão com - modo de permissão 644 e diretórios com modo 755). -

-
-
- LFS=/mnt/lfs -
-
-

- A variável LFS deveria ser - configurada para o ponto de montagem escolhido. -

-
-
- LC_ALL=POSIX -
-
-

- A variável LC_ALL controla a - localização de certos aplicativos, fazendo suas mensagens - seguirem as convenções de um país especificado. - Configurar LC_ALL para - POSIX ou C - (as duas são equivalentes) garante que tudo vai funcionar - como esperado dentro do ambiente chroot. -

-
-
- LFS_TGT=(uname - -m)-lfs-linux-gnu -
-
-

- A variável LFS_TGT configura - uma não padrão, porém compatível descrição de máquina - para uso quando da construção do nosso compilador cruzado - e vinculador e quando da compilação cruzada do nosso - conjunto de ferramentas temporárias. Mais informação está - contida em Notas - Técnicas do Conjunto de Ferramentas. -

-
-
- PATH=/usr/bin -
-
-

- Muitas distribuições modernas de Linux mesclaram - /bin e /usr/bin. Quando esse for o caso, a - variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - Capítulo 6. Quando esse não for o caso, a - seguinte linha adiciona /bin ao caminho. -

-
-
- if [ ! -L - /bin ]; then PATH=/bin:$PATH; fi -
-
-

- Se /bin não for um link - simbólico, então ele tem de ser adicionado à variável - PATH. -

-
-
- PATH=$LFS/tools/bin:$PATH -
-
-

- Ao se colocar $LFS/tools/bin a frente do PATH padrão, o compilador cruzado - instalado no início de - Capítulo 5 é imediatamente pego pelo shell após - sua instalação. Isso, combinado com a desativação do - hashing, limita o risco de que o compilador originário do - anfitrião seja usado em vez do compilador cruzado. -

-
-
- CONFIG_SITE=$LFS/usr/share/config.site -
-
-

- Em - Capítulo 5 e - Capítulo 6, se essa variável não estiver - configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial - contaminação oriunda do anfitrião. -

-
-
- export - ... -
-
-

- Ao tempo que os comandos acima configuraram algumas - variáveis, com a finalidade de torná-las visíveis dentro - de quaisquer sub-shells, nós as exportamos. -

-
-
-
-
-

- Importante -

-

- Muitas distribuições comerciais adicionam uma instância não - documentada de /etc/bash.bashrc - à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) - lfs de formas que podem - afetar a construção de pacotes LFS críticos. Para assegurar - que o ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se - presente, mova-o para fora do caminho. Como a(o) usuária(o) - root, execute: -

-
[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE
-

- Após o uso da(o) usuária(o) lfs for finalizado no início de - Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). -

-

- Perceba que o pacote Bash de LFS que nós construiremos em - Seção 8.34, - “Bash-5.1.16” não é configurado para carregar - ou executar /etc/bash.bashrc, - de modo que esse arquivo é inútil em um sistema LFS completo. -

-
-

- Finalmente, para ter o ambiente totalmente preparado para - construção das ferramentas temporárias, carregue o recém criado - perfil de usuária(o): -

-
source ~/.bash_profile
-
-
-
-
-
-

- 4.5. Sobre UPCs -

-
-
-
-

- Muitas pessoas gostariam de saber de antemão aproximadamente - quanto tempo leva para compilar e instalar cada pacote. Devido - a Linux From Scratch poder ser construído em muitos sistemas, é - impossível fornecer estimativas de tempo precisas. O maior - pacote (Glibc) levará aproximadamente vinte (20) minutos em - sistemas mais rápidos, mas poderia levar até três (03) dias em - sistemas mais lentos! Em vez de fornecer tempos atuais, a - medida Unidade Padrão de Construção (UPC) será usada. -

-

- A medida UPC funciona como segue. O primeiro pacote a ser - compilado neste livro é binutils em Capítulo 5. - O tempo necessário para compilar esse pacote é que será - referenciado como a Unidade Padrão de Construção ou UPC. Todos - os outros tempos de compilação serão expressos relativamente a - esse tempo. -

-

- Por exemplo, considere um pacote cujo tempo de compilação é - quatro e meio (4,5) UPCs. Isso significa que, se um sistema - precisou de dez (10) minutos para compilar e instalar a - primeira passagem de binutils, então será necessário - aproximadamente quarenta - e cinco (45) minutos para construir esse pacote de exemplo. - Felizmente, a maioria dos tempos de construção é menor que o - tempo para binutils. -

-

- Em geral, UPCs não são totalmente precisas, pois dependem de - muitos fatores, incluindo a versão de GCC do sistema anfitrião. - Elas são fornecidas aqui para dar uma estimativa de quanto - tempo pode levar para instalar um pacote, mas os números podem - variar tanto quanto dúzias de minutos em alguns casos. -

-
-

- Nota -

-

- Para muitos sistemas modernos com múltiplos processadores (ou - cores) o tempo de compilação para um pacote pode ser reduzido - realizando um “parallel make”, seja configurando - uma variável de ambiente; ou dizendo para o aplicativo - make quantos - processadores estão disponíveis. Por exemplo, uma CPU Intel - i5-6500 pode suportar quatro processos simultâneos com: -

-
export MAKEFLAGS='-j4'
-

- ou somente construindo com: -

-
make -j4
-

- Quando múltiplos processadores são usados dessa maneira, as - unidades UPC no livro irão variar ainda mais do que - normalmente aconteceria. Em alguns casos, o passo make - simplesmente falhará. Analisar a saída dos processos de - construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um - problema com um passo de construção, então retorne para uma - construção de processador único para analisar adequadamente - as mensagens de erro. -

-
-
-
-
-
-
-

- 4.6. Sobre as Suítes - de Teste -

-
-
-
-

- A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte - de teste para um pacote recém construído é uma boa ideia, pois - pode fornecer uma verificação de sanidade indicando - que tudo compilou corretamente. Uma suíte de teste que executa - seu conjunto de verificações geralmente prova que o pacote está - funcionando como a(o) desenvolvedora(r) pretendia. Entretanto - isso não garante que o pacote está totalmente livre de - defeitos. -

-

- Algumas suítes de teste são mais importantes que outras. Por - exemplo, as suítes de teste para o conjunto de ferramentas - central—GCC, binutils, e glibc—são de máxima - importância devido a seu papel central em um sistema que - funcione adequadamente. As suítes de teste para GCC e glibc - podem levar bastante tempo para completarem, especialmente em - uma máquina lenta, mas são fortemente recomendadas. -

-
-

- Nota -

-

- Executar as suítes de teste em Capítulo 5 - e - Capítulo 6 é impossível, dado que os aplicativos são - compilados com um compilador cruzado, de forma que não se - supõe que sejam aptos a executar no anfitrião de construção. -

-
-

- Um problema comum com a execução de suítes de teste para - binutils e GCC é ficar sem pseudo terminais (PTYs). Isso pode - resultar em um alto número de testes com falhas. Isso pode - acontecer por muitas razões, mas a causa mais provável é que o - sistema anfitrião não tem o sistema de arquivos devpts configurado corretamente. Esse - problema é discutido em maiores detalhes em https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. -

-

- Algumas vezes suítes de testes de pacotes falharão, mas por - razões as quais as(os) desenvolvedoras(es) estão cientes e - consideraram não-críticas. Consulte os registros localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - para verificar quando essas falhas são esperadas ou não. Esse - site é válido para todos os testes ao longo deste livro. -

-
-
-
-
-
-
-
-

- Parte III. Construindo o Conjunto - de Ferramentas Cruzadas de LFS e Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- Material Preliminar - Importante -

-
-
-
-
-
-
-
-

- Introdução -

-
-
-
-

- Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar - esse conjunto de ferramentas cruzado para construir vários - utilitários de uma forma que os isola da distribuição anfitriã; - terceiro, entrar no ambiente chroot, o qual melhora ainda mais - o isolamento do anfitrião, e construir as ferramentas restantes - necessárias para construir o sistema final. -

-
-

- Importante -

-

- Com esta parte inicia o trabalho real de construir um novo - sistema. Exige muito cuidado em assegurar que as instruções - sejam seguidas exatamente conforme o livro as mostra. Você - deveria tentar entender o que elas fazem, e qualquer que seja - sua ânsia para finalizar sua construção, você deveria evitar - digitá-las cegamente como mostrado, mas ler documentação - quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as - para um arquivo, usando o utilitário tee. Isso permite um melhor - diagnóstico se algo der errado. -

-
-

- A próxima seção dá uma introdução técnica ao processo de - construção, enquanto que a seguinte contém instruções gerais - muito importantes. -

-
-
-
-
-
-

- Notas Técnicas do - Conjunto de Ferramentas -

-
-
-
-

- Esta seção explana algumas das razões e detalhes técnicos por - trás do método completo de construção. Não é essencial entender - imediatamente tudo nesta seção. A maior parte desta informação - ficará mais clara após executar uma construção atual. Esta - seção pode e deve ser consultada a qualquer momento durante o - processo. -

-

- O objetivo geral do Capítulo 5 - e do Capítulo 6 - é o de produzir uma área temporária que contém um conjunto - reconhecidamente bom de ferramentas que pode ser isolado do - sistema anfitrião. Usando-se chroot, os comandos nos - capítulos subsequentes estarão confinados naquele ambiente, - assegurando uma construção limpa e livre de problemas do - sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior - valor educacional ao mesmo tempo. -

-

- O processo de construção é baseado no processo de compilação cruzada. A compilação - cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela - que é usada para a construção. Isso não é estritamente - necessário para LFS, dado que a máquina onde o novo sistema - executará é a mesma usada para a construção. Porém, a - compilação cruzada tem a grande vantagem de que tudo o que é - compilado cruzadamente não pode depender do ambiente do - anfitrião. -

-
-

- Acerca da - Compilação Cruzada -

-
-

- Nota -

-

- O livro LFS não é, e não contém, um tutorial geral para - construir um conjunto de ferramentas cruzado (ou nativo). - Não use os comandos no livro para um conjunto de - ferramentas cruzado o qual será usado para algum outro - propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. -

-
-

- Compilação cruzada envolve alguns conceitos que merecem uma - seção por si próprios. Apesar que esta seção pode ser omitida - em uma primeira leitura, retornar até ela mais tarde será - benéfico para o seu completo entendimento do processo. -

-

- Permita-nos primeiro definir alguns termos usados nesse - contexto -

-
-
-
- build -
-
-

- é a máquina onde nós construímos aplicativos. Note que - essa máquina é referenciada como sendo a anfitriã em outras seções. -

-
-
- host -
-
-

- é a máquina/sistema onde os aplicativos construídos - executarão. Note que esse uso de host não é o mesmo que o - uso em outras seções. -

-
-
- target -
-
-

- é usado apenas para compiladores. Ele é a máquina para - a qual o compilador produz código. Ele pode ser - diferente de ambos build e host. -

-
-
-
-

- Como um exemplo, permita-nos imaginar o seguinte cenário (as - vezes rotulado de Cruzado Canadense): nós podemos - ter um compilador somente em uma máquina lenta, vamos - rotulá-la de máquina A, e o compilador de - ccA. Nós também podemos ter uma - máquina rápida (B), porém sem compilador, e nós eventualmente - desejamos produzir código para outra máquina lenta (C). Para - construir um compilador para a máquina C, - nós teríamos três estágios: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 1 - - A - - A - - B - - construir compilador cruzado cc1 usando ccA na - máquina A -
- 2 - - A - - B - - C - - construir compilador cruzado cc2 usando cc1 na - máquina A -
- 3 - - B - - C - - C - - construir compilador ccC usando cc2 na máquina B -
-
-

- Então, todos os outros programas necessários para a máquina C - podem ser compilados usando cc2 na rápida máquina B. Note que - a menos que B possa executar aplicativos produzidos por C, - não existe maneira de testar os aplicativos construídos até - que a própria máquina C esteja em execução. Por exemplo, para - testar ccC, nós eventualmente desejamos adicionar um quarto - estágio: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 4 - - C - - C - - C - - reconstruir e testar ccC usando o próprio na máquina - C -
-
-

- No exemplo acima, somente cc1 e cc2 são compiladores - cruzados, isto é, eles produzem código para uma máquina - diferente daquela na qual estão sendo executados. Tais - compiladores são rotulados de compiladores nativos. -

-
-
-

- Implementação de - Compilação Cruzada para LFS -

-
-

- Nota -

-

- Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um - leitor atento eventualmente questionará porque um - trio rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes - de componente eram suficientes para designar uma máquina - inequivocamente, porém com novas máquinas e sistemas - aparecendo, isso se provou insuficiente. A palavra - trio subsistiu. Uma maneira - simples de determinar seu trio de máquina é executar o - script config.guess que vem com - o fonte para muitos pacotes. Desempacote os fontes do - pacote binutils e execute o script: - ./config.guess e observe - a saída. Por exemplo, para um processador Intel de 32-bits, - a saída será i686-pc-linux-gnu. Em um sistema - de 64-bits, a saída será x86_64-pc-linux-gnu. -

-

- Esteja também ciente do nome do vinculador dinâmico da - plataforma, frequentemente rotulado de carregador dinâmico - (não confundir com o vinculador padrão ld o qual é parte do - pacote binutils). O vinculador - dinâmico provido por Glibc encontra e carrega as - bibliotecas compartilhadas necessárias para um aplicativo, - prepara o aplicativo para execução, e então o executa. O - nome do vinculador dinâmico para uma máquina Intel de - 32-bits é ld-linux.so.2 e é - ld-linux-x86-64.so.2 para - sistemas 64-bits. Uma maneira infalível de determinar o - nome do vinculador dinâmico é inspecionar uma biblioteca - aleatória do sistema anfitrião executando: readelf -l <nome de binário> | grep - interpreter e observando a saída. A - referência oficial cobrindo todas as plataformas está no - arquivo shlib-versions na - raiz da árvore do fonte do Glibc. -

-
-

- Para falsificar uma compilação cruzada em LFS, o nome do trio - do anfitrião é ligeiramente ajustado modificando-se o campo - "vendor" na variável LFS_TGT. Nós - também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado - para informá-los onde encontrar os necessários arquivos do - anfitrião. Isso assegura que nenhum dos outros aplicativos - construídos em - Capítulo 6 pode se vincular a bibliotecas na máquina - de construção. Somente dois estágios são obrigatórios, e mais - um para testes: -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Estágio - - Build - - Host - - Target - - Ação -
- 1 - - pc - - pc - - lfs - - construir compilador cruzado cc1 usando cc-pc em pc -
- 2 - - pc - - lfs - - lfs - - construir compilador cc-lfs usando cc1 em pc -
- 3 - - lfs - - lfs - - lfs - - reconstruir e testar cc-lfs usando o próprio em lfs -
-
-

- Na tabela acima, em pc significa que os comandos - são executados em uma máquina usando a distribuição já - instalada. Em - lfs significa que os comandos são - executados dentro de um ambiente enjaulado. -

-

- Agora, existe mais acerca de compilação cruzada: a linguagem - C não é apenas um compilador, mas também define uma - biblioteca padrão. Neste livro, a biblioteca GNU C, rotulada - de glibc, é usada. Essa biblioteca - deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma - biblioteca interna implementando complexas instruções não - disponíveis no conjunto de instruções do montador. Essa - biblioteca interna é rotulada de libgcc, e deve ser vinculada à - biblioteca glibc para ser completamente - funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à glibc. A solução para esse - problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades - tais como camadas e manipulação de exceções, então construir - glibc usando esse compilador degradado (o próprio glibc não - degradado), então construir libstdc++. Porém, nessa última - biblioteca faltarão as mesmas funcionalidades que libgcc. -

-

- Esse não é o fim da história: a conclusão do parágrafo - precedente é a de que cc1 é incapaz de construir uma - libstdc++ completamente funcional, porém esse é o único - compilador disponível para construir as bibliotecas C/C++ - durante o estágio 2! Certamente, o compilador construído - durante o estágio 2, cc-lfs, seria capaz de construir aquelas - bibliotecas, porém (1) o sistema de construção do GCC não - sabe que está utilizável em pc; e (2) usá-lo em pc estaria - sob o risco de vinculamento às bibliotecas de pc, dado que - cc-lfs é um compilador nativo. Assim, nós temos de construir - libstdc++ mais tarde, em jaula. -

-
-
-

- Outros - detalhes procedurais -

-

- O compilador cruzado será instalado em um diretório - $LFS/tools separado, dado que - ele não será parte do sistema final. -

-

- Binutils é instalado primeiro, pois a execução de - configure de - ambos GCC e Glibc executa vários testes de características no - montador e no vinculador para determinar quais - características de software habilitar ou desabilitar. Isso é - mais importante do que, inicialmente, alguém possa perceber. - Um GCC ou Glibc configurado incorretamente pode resultar em - um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do - final da construção de uma distribuição inteira. Uma falha de - teste de suíte normalmente destacará tal erro antes que muito - mais trabalho adicional seja realizado. -

-

- O Binutils instala o montador e o vinculador dele em dois - locais, $LFS/tools/bin e - $LFS/tools/$LFS_TGT/bin. As - ferramentas em uma localização são rigidamente vinculadas à - outra. Uma faceta importante do vinculador é a ordem de - procura de biblioteca dele. Informações detalhadas podem ser - obtidas de ld - passando a flag --verbose. Por exemplo, - $LFS_TGT-ld --verbose | grep - SEARCH exibirá os caminhos atuais de procura - e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela - compilação de um aplicativo fictício e passagem do - modificador --verbose - ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c -Wl,--verbose - 2>&1 | grep succeeded exibirá todos os - arquivos abertos com sucesso durante o vinculamento. -

-

- O próximo pacote instalado é o GCC. Um exemplo do que pode - ser visto durante a execução dele de configure é: -

-
checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as
-checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld
-

- Isso é importante pelas razões mencionadas acima. Também - demonstra que o script de configuração do GCC não busca os - diretórios do PATH para encontrar quais ferramentas usar. - Entretanto, durante a operação atual do próprio gcc, os mesmos caminhos de - busca não são necessariamente usados. Para descobrir qual - vinculador padrão gcc usará, execute: - $LFS_TGT-gcc - -print-prog-name=ld. -

-

- Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v - durante a compilação de um aplicativo fictício. Por exemplo, - gcc -v dummy.c - exibirá informação detalhada acerca do preprocessador, - compilação e estágios da montagem, incluindo os caminhos de - busca incluídos do gcc e a ordem deles. -

-

- Os próximos instalados são os cabeçalhos sanitizados da API - do Linux. Eles permitem a interface da biblioteca C padrão - (Glibc) com características que o kernel Linux proverá. -

-

- O próximo pacote instalado é Glibc. As considerações mais - importantes para a construção do Glibc são o compilador, - ferramentas binárias e os cabeçalhos do kernel. O compilador - geralmente não é um problema dado que Glibc sempre usará o - compilador relacionado ao parâmetro --host passado ao script de - configuração dele; por exemplo, em nosso caso, o compilador - será $LFS_TGT-gcc. As - ferramentas binárias e os cabeçalhos do kernel podem ser um - bocado mais complicados. Dessa maneira, nós não nos - arriscamos e usamos os modificadores de configuração - disponíveis para forçar as seleções corretas. Após a execução - de configure, - verifique o conteúdo do arquivo config.make no diretório build para todos os detalhes importantes. - Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar - quais ferramentas binárias são usadas e o uso das flags - -nostdinc e - -isystem para - controlar o caminho de busca incluído do compilador. Esses - itens destacam um importante aspecto do pacote - Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões - de conjuntos de ferramentas. -

-

- Como dito acima, a biblioteca C++ padrão é compilada depois, - seguida em - Capítulo 6 por todos os aplicativos que necessitam - deles próprios para serem construídos. O passo de instalação - de todos aqueles pacotes usa os aplicativos instalados no - sistema de arquivos do LFS. -

-

- Ao final do - Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação - DESTDIR como os outros programas, - então a segunda passagem de GCC é construída, omitindo - libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, - CC_FOR_TARGET termina como - cc quando o - host for o mesmo que o target, porém for diferente do sistema - de construção. Essa é a razão pela qual CC_FOR_TARGET=$LFS_TGT-gcc é - colocado explicitamente nas opções de configuração. -

-

- Uma vez dentro do ambiente chroot no - Capítulo 7, a primeira tarefa é instalar libstdc++. - Então instalações temporárias de programas necessários para a - operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de - ferramentas está autocontido e auto-hospedado. No Capítulo 8, - as versões finais de todos os pacotes necessários para um - sistema completamente funcional são construídos, testados e - instalados. -

-
-
-
-
-
-
-

- Instruções - Gerais de Compilação -

-
-
-
-

- Quando da construção de pacotes existem várias suposições - feitas dentro das instruções: -

-
-
    -
  • -

    - Vários dos pacotes recebem patches antes da compilação, - mas apenas quando o patch é necessário para evitar um - problema. Um patch frequentemente é necessário tanto - neste quanto nos seguintes capítulos, mas algumas vezes - em apenas uma localização. Portanto, não se preocupe se - as instruções para um patch baixado pareçam estar - faltando. Mensagens de alerta acerca de offset ou fuzz também talvez sejam - encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi - aplicado com sucesso. -

    -
  • -
  • -

    - Durante a compilação da maior parte dos pacotes, - existirão vários alertas que rolarão na tela. Esses são - normais e seguramente podem ser ignorados. Esses alertas - são o que parecem—alertas acerca de uso de sintaxe - C ou C++ obsoleta, mas não inválida. Padrões C mudam com - ampla frequência, e alguns pacotes ainda usam o padrão - antigo. Isso não é um problema, mas gera o alerta. -

    -
  • -
  • -

    - Verifique uma última vez que a variável de ambiente - LFS está configurada - adequadamente: -

    -
    echo $LFS
    -

    - Certifique-se de que a saída mostra o caminho para o - ponto de montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. -

    -
  • -
  • -

    - Finalmente, dois itens importantes devem ser enfatizados: -

    -
    -

    - Importante -

    -

    - As instruções de construção assumem que as Exigências do - Sistema Anfitrião, incluindo links simbólicos, - foram configuradas adequadamente: -

    -
    -
      -
    • -

      - bash é o shell - em uso. -

      -
    • -
    • -

      - sh - é um link simbólico para bash. -

      -
    • -
    • -

      - /usr/bin/awk é - um link simbólico para gawk. -

      -
    • -
    • -

      - /usr/bin/yacc é - um link simbólico para bison ou um - script pequeno que executa bison. -

      -
    • -
    -
    -
    -
    -

    - Importante -

    -

    - Para reenfatizar o processo de construção: -

    -
    -
      -
    1. -

      - Coloque todos os pacotes e patches em um - diretório que estará acessível a partir do - ambiente chroot, tal como /mnt/lfs/sources/. -

      -
    2. -
    3. -

      - Mude para o diretório dos fontes. -

      -
    4. -
    5. -

      - Para cada pacote: -

      -
      -
        -
      1. -

        - Usando o aplicativo tar, - extraia o pacote para ser construído. Em - - Capítulo 5 e - Capítulo 6, certifique-se de que - você seja a(o) usuária(o) lfs quando - extrair o pacote. -

        -

        - Todos os métodos para obter a árvore de - código fonte sendo construído em-posição, - exceto extrair o tarball de pacote, não são - suportados. Notadamente, usar cp -R - para copiar a árvore de código fonte para - outro lugar pode destruir links e marcas - temporais na árvore de fontes e causar - falha de construção. -

        -
      2. -
      3. -

        - Mude para o diretório criado quando o - pacote foi extraído. -

        -
      4. -
      5. -

        - Siga as instruções do livro para construir - o pacote. -

        -
      6. -
      7. -

        - Mude de volta para o diretório de fontes. -

        -
      8. -
      9. -

        - Delete o diretório de fonte extraído a - menos que instruído o contrário. -

        -
      10. -
      -
      -
    6. -
    -
    -
    -
  • -
-
-
-
-
-
-
-
-

- Capítulo 5. Compilando um - Conjunto de Ferramentas Cruzado -

-
-
-
-
-
-
-
-

- 5.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir um compilador cruzado e - suas ferramentas associadas. Apesar de aqui a compilação - cruzada ser falseada, os princípios são os mesmos que aqueles - para um conjunto de ferramentas cruzado real. -

-

- Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para - mantê-los separados dos arquivos instalados nos capítulos - seguintes. As bibliotecas, por outro lado, são instaladas em - seus locais finais, dado que elas pertencem ao sistema que - queremos construir. -

-
-
-
-
-
-

- 5.2. Binutils-2.38 - - Passagem 1 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1 UPC -
-
- Espaço em disco - exigido: 620 MB -
-
-
-
-
-

- 5.2.1. Instalação de Binutils Cruzado -

-
-

- Nota -

-

- Volte e releia as notas na seção intitulada Instruções Gerais de - Compilação. Entender as notas rotuladas como importante - pode salvar você de um monte de problemas depois. -

-
-

- É importante que Binutils seja o primeiro pacote compilado, - pois ambos Glibc e GCC realizam vários testes sobre o - vinculador e montador disponíveis para determinar quais de - suas próprias características habilitar. -

-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-
-

- Nota -

-

- Com a finalidade de que os valores de UPC listados no resto - do livro sejam de qualquer uso, meça o tempo que leva para - construir este pacote desde a configuração até e incluindo - a primeira instalação. Para fazer isso facilmente, - encapsule os comandos em um time desta forma: - time { ../configure ... - && make && make install; }. -

-
-

- Agora prepare Binutils para compilação: -

-
../configure --prefix=$LFS/tools \
-             --with-sysroot=$LFS \
-             --target=$LFS_TGT   \
-             --disable-nls       \
-             --disable-werror
-
-

- O significado das opções do configure: -

-
-
- --prefix=$LFS/tools -
-
-

- Isso diz para o script configure para preparar para - instalar os aplicativos de binutils no diretório - $LFS/tools. -

-
-
- --with-sysroot=$LFS -
-
-

- Para compilação cruzada, isso diz ao sistema de - construção para procurar em $LFS pelas bibliotecas alvo - de sistema conforme necessário. -

-
-
- --target=$LFS_TGT -
-
-

- Por causa da descrição de máquina na variável - LFS_TGT ser ligeiramente - diferente do valor retornado pelo script config.guess, essa - chave dirá ao script configure para - ajustar o sistema de construção do binutils para - construir um vinculador cruzado. -

-
-
- --disable-nls -
-
-

- Isso desabilita internacionalização, uma vez que i18n - não é necessária para as ferramentas temporárias. -

-
-
- --disable-werror -
-
-

- Isso evita que a construção pare no caso de existirem - alertas originários do compilador do anfitrião. -

-
-
-
-

- Continue compilando o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 5.3. GCC-11.2.0 - Passagem - 1 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 5.3.1. Instalação de GCC Cruzado -

-

- GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses - pacotes talvez não estejam incluídos na sua distribuição - anfitriã, eles serão construídos com GCC. Desempacote cada - pacote dentro do diretório de fonte de GCC e renomeie os - diretórios resultantes de forma que os procedimentos de - construção de GCC automaticamente os usarão: -

-
-

- Nota -

-

- Existem mal-entendidos frequentes sobre este capítulo. Os - procedimentos são os mesmos que todos os outros capítulos - explicados anteriormente (Instruções de construção de pacote). - Primeiro extraia o tarball de gcc a partir do diretório de - fontes e então mude para o diretório criado. Somente então - deveria você prosseguir com as instruções abaixo. -

-
-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Em anfitriões x86_64, configure o nome padrão de diretório - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
- ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure                  \
-    --target=$LFS_TGT         \
-    --prefix=$LFS/tools       \
-    --with-glibc-version=2.35 \
-    --with-sysroot=$LFS       \
-    --with-newlib             \
-    --without-headers         \
-    --enable-initfini-array   \
-    --disable-nls             \
-    --disable-shared          \
-    --disable-multilib        \
-    --disable-decimal-float   \
-    --disable-threads         \
-    --disable-libatomic       \
-    --disable-libgomp         \
-    --disable-libquadmath     \
-    --disable-libssp          \
-    --disable-libvtv          \
-    --disable-libstdcxx       \
-    --enable-languages=c,c++
-
-

- O significado das opções de configure: -

-
-
- --with-glibc-version=2.35 -
-
-

- Essa opção especifica a versão de glibc a qual será - usada no alvo. Ela não é relevante para a libc da - distro anfitriã, pois tudo compilado por gcc passagem 1 - executará no ambiente chroot, o qual é isolado de libc - da distro anfitriã. -

-
-
- --with-newlib -
-
-

- Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc - esteja definida quando da construção de libgcc. Isso - evita a compilação de qualquer código que exija suporte - de libc. -

-
-
- --without-headers -
-
-

- Quando da criação de um compilador cruzado completo, - GCC exige cabeçalhos padrão compatíveis com o sistema - alvo. Para nossos propósitos esses cabeçalhos não serão - necessários. Essa chave evita que GCC procure por eles. -

-
-
- --enable-initfini-array -
-
-

- Essa chave força o uso de algumas estruturas internas - de dados que são necessárias, porém não podem ser - detectadas quando da construção de um compilador - cruzado. -

-
-
- --disable-shared -
-
-

- Essa chave força GCC a vincular suas bibliotecas - internas estaticamente. Nós precisamos disso, pois as - bibliotecas compartilhadas exigem glibc, que ainda não - está instalado no sistema alvo. -

-
-
- --disable-multilib -
-
-

- Em x86_64, LFS não suporta uma configuração multilib. - Essa chave é inofensiva para x86. -

-
-
- --disable-decimal-float, - --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, - --disable-libssp, --disable-libvtv, - --disable-libstdcxx -
-
-

- Essas chaves desabilitam suporte para a extensão de - ponto flutuante decimal, threading, libatomic, libgomp, - libquadmath, libssp, libvtv, e a biblioteca padrão C++ - respectivamente. Essas características falharão na - compilação quando da construção de um compilador - cruzado e não são necessárias para a tarefa de compilar - cruzadamente a libc temporária. -

-
-
- --enable-languages=c,c++ -
-
-

- Essa opção garante que apenas os compiladores C e C++ - sejam construídos. Essas são as únicas linguagens - necessárias agora. -

-
-
-
-

- Compile GCC executando: -

-
make
-

- Instale o pacote: -

-
make install
-

- Essa construção de GCC instalou um par de cabeçalhos internos - de sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema - correspondente, nesse caso, $LFS/usr/include/limits.h. Entretanto, ao - tempo dessa construção de GCC, $LFS/usr/include/limits.h não existe, de - forma que o cabeçalho interno recém instalado é um arquivo - parcial, autocontido, e não inclui as características - estendidas do cabeçalho de sistema. Isso é adequado para a - construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho - interno usando um comando que é idêntico ao que o sistema de - construção de GCC faz em circunstâncias normais: -

-
cd ..
-cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
-  `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 5.4. Cabeçalhos da API - do Linux-5.16.9 -

-
-
-
-
-

- Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem - a API do kernel para uso por Glibc. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 1,2 GB -
-
-
-
-
-

- 5.4.1. Instalação dos Cabeçalhos da API do Linux -

-

- O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em - LFS) usar. Isso é feito por meio de sanitizar vários arquivos - de cabeçalho C que são incluídos no tarball de fonte de - kernel Linux. -

-

- Certifique-se de que não existem arquivos obsoletos embutidos - no pacote: -

-
make mrproper
-

- Agora extraia os cabeçalhos de kernel visíveis ao usuário a - partir do fonte. O alvo recomendado de make headers_install não pode ser - usado, pois ele exige rsync, - que talvez não esteja disponível. Os cabeçalhos são primeiro - colocados em ./usr, então - copiados para a localização necessária. -

-
make headers
-find usr/include -name '.*' -delete
-rm usr/include/Makefile
-cp -rv usr/include $LFS/usr
-
-
-

- 5.4.2. Conteúdo dos Cabeçalhos - da API do Linux -

-
-
-
- Cabeçalhos instalados: - /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, - /usr/include/mtd/*.h, /usr/include/rdma/*.h, - /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h -
-
- Diretórios instalados: - /usr/include/asm, - /usr/include/asm-generic, /usr/include/drm, - /usr/include/linux, /usr/include/misc, /usr/include/mtd, - /usr/include/rdma, /usr/include/scsi, /usr/include/sound, - /usr/include/video, and /usr/include/xen -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- /usr/include/asm/*.h -

-
-

- Os Cabeçalhos API ASM Linux -

-
-

- /usr/include/asm-generic/*.h -

-
-

- Os Cabeçalhos Genéricos API ASM Linux -

-
-

- /usr/include/drm/*.h -

-
-

- Os Cabeçalhos API DRM Linux -

-
-

- /usr/include/linux/*.h -

-
-

- Os Cabeçalhos Linux API Linux -

-
-

- /usr/include/misc/*.h -

-
-

- Os Cabeçalhos Miscelâneas API Linux -

-
-

- /usr/include/mtd/*.h -

-
-

- Os Cabeçalhos API MTD Linux -

-
-

- /usr/include/rdma/*.h -

-
-

- Os Cabeçalhos API RDMA Linux -

-
-

- /usr/include/scsi/*.h -

-
-

- Os Cabeçalhos API SCSI Linux -

-
-

- /usr/include/sound/*.h -

-
-

- Os Cabeçalhos de Som API Linux -

-
-

- /usr/include/video/*.h -

-
-

- Os Cabeçalhos de Vídeo API Linux -

-
-

- /usr/include/xen/*.h -

-
-

- Os Cabeçalhos Xen API Linux -

-
-
-
-
-
-
-
-
-

- 5.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.5.1. Instalação de Glibc -

-

- Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de - compatibilidade exigido para a operação adequada do - carregador dinâmico de biblioteca: -

-
case $(uname -m) in
-    i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
-    ;;
-    x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-            ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
-    ;;
-esac
-
-

- Nota -

-

- O comando acima está correto. O comando ln tem umas poucas - versões sintáticas, de forma que tenha certeza de verificar - info coreutils - ln e ln(1) - antes de relatar o que você talvez pense que seja um erro. -

-
-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- A seguir, prepare Glibc para compilação: -

-
../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGT                    \
-      --build=$(../scripts/config.guess) \
-      --enable-kernel=3.2                \
-      --with-headers=$LFS/usr/include    \
-      libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --host=$LFS_TGT, - --build=$(../scripts/config.guess) -
-
-

- O efeito combinado dessas chaves é o de que o sistema - de construção do Glibc se autoconfigura para ser - compilado cruzadamente, usando o vinculador cruzado e - compilador cruzado em $LFS/tools. -

-
-
- --enable-kernel=3.2 -
-
-

- Isso diz a Glibc para compilar a biblioteca com suporte - para kernels Linux 3.2 e posteriores. Contornos para - kernels antigos não estão habilitados. -

-
-
- --with-headers=$LFS/usr/include -
-
-

- Isso diz a Glibc para compilar a si mesmo com os - cabeçalhos recentemente instalados no diretório - $LFS/usr/include, de forma que ele saiba exatamente - quais características o kernel tem e possa otimizar-se - adequadamente. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Isso garante que a biblioteca seja instalada em - /usr/lib em vez do padrão /lib64 em máquinas de 64 - bits. -

-
-
-
-

- Durante este estágio o seguinte alerta pode aparecer: -

-
-
-
configure: WARNING:
-*** These auxiliary programs are missing or
-*** incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.
-
-
-

- O aplicativo msgfmt faltando ou - incompatível geralmente é inofensivo. Esse aplicativo - msgfmt é parte - do pacote Gettext que a distribuição anfitriã deveria - fornecer. -

-
-

- Nota -

-

- Tem havido relatos de que esse pacote talvez falhe quando - da construção como um "parallel make". Se isso ocorrer, - então reexecute o comando make com uma opção "-j1". -

-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
-

- Atenção -

-

- Se LFS não estiver adequadamente - configurada, e a despeito das recomendações, você estiver - construindo como root, - então o próximo comando instalará a recém construída glibc - em seu sistema anfitrião, o que possivelmente o tornará - inutilizável. Portanto, verifique duas vezes se o ambiente - está corretamente configurado, antes de executar o seguinte - comando. -

-
-
make DESTDIR=$LFS install
-
-

- O significado da opção make install: -

-
-
- DESTDIR=$LFS -
-
-

- A variável DESTDIR de make é - usada por quase todos os pacotes para definir a - localização onde o pacote deveria ser instalado. Se ela - não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós - especificamos que o pacote seja instalado em - $LFS, que se tornará a - raiz após Seção 7.4, - “Entrando no Ambiente Chroot”. -

-
-
-
-

- Corrija caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
-
-

- Cuidado -

-

- Neste ponto, é imperativo parar e certificar-se de que as - funções básicas (compilar e lincar) do novo conjunto de - ferramentas estão funcionando como esperado. Para realizar - uma verificação de sanidade, execute os seguintes comandos: -

-
echo 'int main(){}' > dummy.c
-$LFS_TGT-gcc dummy.c
-readelf -l a.out | grep '/ld-linux'
-

- Se tudo estiver funcionando corretamente, então não - deveriam existir quaisquer erros, e a saída do último - comando será na forma: -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Note que para máquinas de 32 bits, o nome do interpretador - será /lib/ld-linux.so.2. -

-

- Se a saída não for mostrada como acima ou não existir saída - nenhuma, então alguma coisa está errada. Investigue e - retrace os passos para encontrar onde está o problema e - corrija-o. Esse problema deve ser resolvido antes de - continuar. -

-

- Uma vez que tudo esteja bem, limpe os arquivos de teste: -

-
rm -v dummy.c a.out
-
-
-

- Nota -

-

- Construir pacotes no próximo capítulo servirá como uma - verificação adicional de que o conjunto de ferramentas foi - construído adequadamente. Se algum pacote, especialmente - binutils-passagem 2 ou gcc-passagem 2, falhar na - construção, então isso é uma indicação de que alguma coisa - deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. -

-
-

- Agora que nosso conjunto de ferramentas cruzadas está - completa, finalize a instalação do cabeçalho limits.h. Para - fazer isso, execute um utilitário fornecido pelas(os) - desenvolvedoras(os) de GCC: -

-
$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.5.3, “Conteúdo - de Glibc.” -

-
-
-
-
-
-
-

- 5.6. Libstdc++ - oriundo de GCC-11.2.0, Passagem 1 -

-
-
-
-
-

- Libstdc++ é a biblioteca padrão C++. Ela é necessária para - compilar código C++ (parte de GCC é escrito em C++), porém - nós tivemos que adiar sua instalação quando construímos - gcc-pass1, pois ela - depende de glibc, que ainda não estava disponível no - diretório alvo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 818 MB -
-
-
-
-
-

- 5.6.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure           \
-    --host=$LFS_TGT                 \
-    --build=$(../config.guess)      \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch         \
-    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0
-
-

- O significado das opções de configure: -

-
-
- --host=... -
-
-

- Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em - /usr/bin. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
- --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 -
-
-

- Isso especifica o diretório de instalação para arquivos - include. Por causa de libstdc++ ser a biblioteca padrão - C++ para LFS, esse diretório deveria coincidir com a - localização onde o compilador C++ ($LFS_TGT-g++) - procuraria pelos arquivos include C++ padrão. Em uma - construção normal, essa informação é automaticamente - passada para as opções configure de - libstdc++ a partir do diretório de nível de topo. Em - nosso caso, essa informação deve ser explicitamente - dada. O compilador C++ precederá o caminho raiz de - sistema $LFS - (especificado quando da construção de GCC passagem 1) - para o caminho de pesquisa de arquivo include, de forma - que ele atualmente pesquisará em $LFS/tools/$LFS_TGT/include/c++/11.2.0. - A combinação da variável DESTDIR (no comando - make - install abaixo) e essa chave garante - instalar os cabeçalhos lá. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 6. Compilando - Cruzadamente Ferramentas Temporárias -

-
-
-
-
-
-
-
-

- 6.1. Introdução -

-
-
-
-

- Este capítulo mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto de ferramentas - cruzadas. Esses utilitários são instalados no local final - deles, porém ainda não podem ser usados. Tarefas básicas ainda - dependem das ferramentas do anfitrião. Apesar disso, as - bibliotecas instaladas são usadas quando da vinculação. -

-

- O uso dos utilitários será possível no próximo capítulo após - entrada no ambiente chroot. Porém, todos os pacotes - construídos no presente capítulo precisam ser construídos antes - que façamos isso. Dessa forma nós ainda não podemos ficar - independentes do sistema anfitrião. -

-

- Uma vez mais, permita-nos relembrar que a configuração - inapropriada de LFS junto com a - construção como root, talvez - torne seu computador inutilizável. Este capítulo inteiro - precisa ser feito como usuária(o) lfs, com o ambiente conforme descrito em - Seção 4.4, - “Configurando o Ambiente”. -

-
-
-
-
-
-

- 6.2. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 6.2.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.12.2, “Conteúdo - de M4.” -

-
-
-
-
-
-
-

- 6.3. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 6.3.1. Instalação de Ncurses -

-

- Primeiro, assegure que gawk é encontrado primeiro - durante a configuração: -

-
sed -i s/mawk// configure
-

- Então, execute os seguintes comandos para construir o - aplicativo tic no anfitrião de construção: -

-
mkdir build
-pushd build
-  ../configure
-  make -C include
-  make -C progs tic
-popd
-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr                \
-            --host=$LFS_TGT              \
-            --build=$(./config.guess)    \
-            --mandir=/usr/share/man      \
-            --with-manpage-format=normal \
-            --with-shared                \
-            --without-debug              \
-            --without-ada                \
-            --without-normal             \
-            --disable-stripping          \
-            --enable-widec
-
-

- O significado das novas opções de - configure: -

-
-
- --with-manpage-format=normal -
-
-

- Isso evita que Ncurses instale páginas comprimidas de - manual, o que talvez aconteceu se a própria - distribuição anfitriã tiver páginas comprimidas de - manual. -

-
-
- --without-ada -
-
-

- Isso assegura que Ncurses não construa suporte para o - compilador Ada, o qual talvez esteja presente no - anfitrião, porém não estará disponível até que nós - entremos no ambiente chroot. -

-
-
- --disable-stripping -
-
-

- Essa chave impede o sistema de construção de despojar - os aplicativos usando o aplicativo strip oriundo do - anfitrião. O uso de ferramentas de anfitrião em - aplicativo compilado cruzadamente pode causar falha. -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
-echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
-
-

- O significado das opções de install: -

-
-
- TIC_PATH=$(pwd)/build/progs/tic -
-
-

- Nós precisamos passar o caminho do recém construído - tic apto - para executar na máquina de construção, de forma que a - base de dados de terminal possa ser criada sem erros. -

-
-
- echo - "INPUT(-lncursesw)" > - $LFS/usr/lib/libncurses.so -
-
-

- A biblioteca libncurses.so é necessária para uns - poucos pacotes que nós construiremos breve. Nós criamos - esse pequeno script vinculador, pois isso é o que é - feito em - Capítulo 8. -

-
-
-
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.28.2, - “Conteúdo de Ncurses.” -

-
-
-
-
-
-
-

- 6.4. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-
-

- 6.4.1. Instalação de Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                   \
-            --build=$(support/config.guess) \
-            --host=$LFS_TGT                 \
-            --without-bash-malloc
-
-

- O significado das opções de configure: -

-
-
- --without-bash-malloc -
-
-

- Essa opção desliga o uso da função de alocação de - memória do Bash (malloc) - a qual é conhecida por causar falhas de segmentação. Ao - se desligar essa opção, Bash usará as funções - malloc originárias de - Glibc que são mais estáveis. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Faça um link para os aplicativos que usam sh para um shell: -

-
ln -sv bash $LFS/bin/sh
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.34.2, “Conteúdo - do Bash.” -

-
-
-
-
-
-
-

- 6.5. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 6.5.1. Instalação de Coreutils -

-

- Prepare Coreutils para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --enable-install-program=hostname \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- --enable-install-program=hostname -
-
-

- Isso habilita o binário hostname para ser - construído e instalado – ele é desabilitado por - padrão, porém é exigido pela suíte de teste de Perl. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Mova aplicativos para seus locais finais esperados. Apesar de - isso não ser necessário neste ambiente temporário, nós - precisamos fazer isso, pois alguns aplicativos codificam - rigidamente locais de executável: -

-
mv -v $LFS/usr/bin/chroot              $LFS/usr/sbin
-mkdir -pv $LFS/usr/share/man/man8
-mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/'                    $LFS/usr/share/man/man8/chroot.8
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.53.2, - “Conteúdo do Coreutils.” -

-
-
-
-
-
-
-

- 6.6. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 27 MB -
-
-
-
-
-

- 6.6.1. Instalação de Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.55.2, - “Conteúdo do Diffutils.” -

-
-
-
-
-
-
-

- 6.7. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 6.7.1. Instalação de File -

-

- O comando file - no anfitrião de construção precisa ser da mesma versão que - aquele que nós estamos construindo com a finalidade de criar - o arquivo de assinatura. Execute os seguintes comandos para - construí-lo: -

-
mkdir build
-pushd build
-  ../configure --disable-bzlib      \
-               --disable-libseccomp \
-               --disable-xzlib      \
-               --disable-zlib
-  make
-popd
-
-

- O significado da nova opção de configure: -

-
-
- --disable-* -
-
-

- O script de configuração tenta usar alguns pacotes - originários da distribuição anfitriã se os arquivos de - biblioteca correspondentes existirem. Isso talvez cause - falha de compilação se um arquivo de biblioteca - existir, porém os arquivos de cabeçalhos - correspondentes não. Essas opções impedem o uso dessas - capacidades desnecessárias a partir do anfitrião. -

-
-
-
-

- Prepare File para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)
-

- Compile o pacote: -

-
make FILE_COMPILE=$(pwd)/build/src/file
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.10.2, “Conteúdo - de File.” -

-
-
-
-
-
-
-

- 6.8. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 42 MB -
-
-
-
-
-

- 6.8.1. Instalação de Findutils -

-

- Prepare Findutils para compilação: -

-
./configure --prefix=/usr                   \
-            --localstatedir=/var/lib/locate \
-            --host=$LFS_TGT                 \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.57.2, - “Conteúdo do Findutils.” -

-
-
-
-
-
-
-

- 6.9. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 6.9.1. Instalação de Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.56.2, “Conteúdo - do Gawk.” -

-
-
-
-
-
-
-

- 6.10. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 26 MB -
-
-
-
-
-

- 6.10.1. Instalação de Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.33.2, “Conteúdo - do Grep.” -

-
-
-
-
-
-
-

- 6.11. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 11 MB -
-
-
-
-
-

- 6.11.1. Instalação de Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.60.2, “Conteúdo - do Gzip.” -

-
-
-
-
-
-
-

- 6.12. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.12.1. Instalação de Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr   \
-            --without-guile \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-
-

- O significado da nova opção de configure: -

-
-
- --without-guile -
-
-

- Apesar de nós estarmos compilando cruzadamente, - configure tenta usar guile a partir do anfitrião de - construção se encontrá-lo. Isso provoca falha de - compilação, de forma que essa chave impede o uso de - guile. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.64.2, “Conteúdo - do Make.” -

-
-
-
-
-
-
-

- 6.13. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 6.13.1. Instalação de Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.65.2, - “Conteúdo do Patch.” -

-
-
-
-
-
-
-

- 6.14. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 6.14.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr   \
-            --host=$LFS_TGT
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.29.2, “Conteúdo - do Sed.” -

-
-
-
-
-
-
-

- 6.15. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 6.15.1. Instalação de Tar -

-

- Prepare Tar para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess)
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.66.2, “Conteúdo - do Tar.” -

-
-
-
-
-
-
-

- 6.16. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 6.16.1. Instalação de Xz -

-

- Prepare Xz para compilação: -

-
./configure --prefix=/usr                     \
-            --host=$LFS_TGT                   \
-            --build=$(build-aux/config.guess) \
-            --disable-static                  \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.8.2, “Conteúdo de - Xz.” -

-
-
-
-
-
-
-

- 6.17. Binutils-2.38 - - Passagem 2 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 1,3 UPC -
-
- Espaço em disco - exigido: 520 MB -
-
-
-
-
-

- 6.17.1. Instalação de Binutils -

-

- Binutils entrega uma cópia desatualizada de libtool no - tarball. Ela carece de suporte de raiz de sistema de forma - que os binários produzidos serão erroneamente vinculados à - bibliotecas originárias da distribuição anfitriã. Contorne - esse problema: -

-
sed '6009s/$add_dir//' -i ltmain.sh
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure                   \
-    --prefix=/usr              \
-    --build=$(../config.guess) \
-    --host=$LFS_TGT            \
-    --disable-nls              \
-    --enable-shared            \
-    --disable-werror           \
-    --enable-64-bit-bfd
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-shared -
-
-

- Constrói libbfd como uma - biblioteca compartilhada. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.18.2, - “Conteúdo de Binutils.” -

-
-
-
-
-
-
-

- 6.18. GCC-11.2.0 - - Passagem 2 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 11 UPC -
-
- Espaço em disco - exigido: 3,3 GB -
-
-
-
-
-

- 6.18.1. Instalação de GCC -

-

- Como na primeira construção de GCC, os pacotes GMP, MPFR, e - MPC são exigidos. Desempacote os tarballs e mova-os para os - nomes de diretório exigidos: -

-
tar -xf ../mpfr-4.1.0.tar.xz
-mv -v mpfr-4.1.0 mpfr
-tar -xf ../gmp-6.2.1.tar.xz
-mv -v gmp-6.2.1 gmp
-tar -xf ../mpc-1.2.1.tar.gz
-mv -v mpc-1.2.1 mpc
-

- Se construindo em x86_64, então mude o nome padrão de - diretório para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- Crie um diretório de construção separado novamente: -

-
mkdir -v build
-cd       build
-

- Crie um link simbólico que permite que libgcc seja construída - com suporte posix de camadas: -

-
mkdir -pv $LFS_TGT/libgcc
-ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
-

- Antes de iniciar a construção de GCC, lembre-se de - desconfigurar quaisquer variáveis de ambiente que substituam - os sinalizadores de otimização padrão. -

-

- Agora prepare GCC para compilação: -

-
../configure                                       \
-    --build=$(../config.guess)                     \
-    --host=$LFS_TGT                                \
-    --prefix=/usr                                  \
-    CC_FOR_TARGET=$LFS_TGT-gcc                     \
-    --with-build-sysroot=$LFS                      \
-    --enable-initfini-array                        \
-    --disable-nls                                  \
-    --disable-multilib                             \
-    --disable-decimal-float                        \
-    --disable-libatomic                            \
-    --disable-libgomp                              \
-    --disable-libquadmath                          \
-    --disable-libssp                               \
-    --disable-libvtv                               \
-    --disable-libstdcxx                            \
-    --enable-languages=c,c++
-
-

- O significado das novas opções de - configure: -

-
-
- -with-build-sysroot=$LFS -
-
-

- Normalmente, usar --host garante que um - compilador cruzado seja usado para construir GCC, e que - o compilador sabe que tem que procurar por cabeçalhos e - bibliotecas em $LFS. - Porém, o sistema de construção de GCC usa outras - ferramentas, que não estão cientes dessa localização. - Essa chave é necessária para que elas busquem os - arquivos necessários em $LFS, e não no anfitrião. -

-
-
- --enable-initfini-array -
-
-

- Essa opção é automaticamente habilitada quando da - construção de um compilador nativo com um compilador - nativo em x86. Porém, aqui, nós construímos com um - compilador cruzado, de forma que nós precisamos - explicitamente configurar essa opção. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make DESTDIR=$LFS install
-

- Como um toque final, crie um link simbólico utilitário. - Muitos aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em - todos os tipos de sistemas UNIX onde o compilador C de GNU - nem sempre está instalado. Executar cc deixa a(o) - administradora(r) de sistema livre para decidir qual - compilador C instalar: -

-
ln -sv gcc $LFS/usr/bin/cc
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-
-

- Capítulo 7. - Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais -

-
-
-
-
-
-
-
-

- 7.1. Introdução -

-
-
-
-

- Este capítulo mostra como construir os últimos bits que faltam - no sistema temporário: as ferramentas necessárias para o - maquinário de construção de vários pacotes. Agora que todas as - dependências circulares foram resolvidas, um ambiente - chroot, completamente isolado do - sistema operacional anfitrião (exceto pelo kernel em execução), - pode ser usado para a construção. -

-

- Para operação adequada do ambiente isolado, alguma comunicação - com o kernel em execução precisa ser estabelecida. Isso é feito - por meio dos assim chamados Sistemas - de Arquivos Virtuais de Kernel, que precisam ser - montados quando da entrada no ambiente chroot. Você talvez - queira verificar que eles estejam montados emitindo - findmnt. -

-

- Até Seção 7.4, - “Entrando no Ambiente Chroot”, os comandos - precisam ser executados como root, com a variável LFS configurada. Após a entrada em chroot, todos - os comandos são executados como root, por sorte sem acesso ao - OS do computador no qual que você construiu LFS. Seja - cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. -

-
-
-
-
-
-

- 7.2. Mudando - Propriedade -

-
-
-
-
-

- Nota -

-

- Os comandos no resto deste livro precisam ser realizados - enquanto logada(o) como usuária(o) root e não mais como usuária(o) - lfs. Também, verifique - duplamente que $LFS está - configurada no ambiente do root. -

-
-

- Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade da(o) usuária(o) - lfs, uma(m) usuária(o) que - existe somente no sistema anfitrião. Se os diretórios e - arquivos sob $LFS forem mantidos - como estão, então eles serão de propriedade de um ID de - usuária(o) sem uma conta correspondente. Isso é perigoso, pois - uma conta de usuária(o) criada posteriormente poderia receber - esse mesmo ID de usuária(o) e se tornaria proprietária(o) de - todos os arquivos sob $LFS, dessa - forma expondo esses arquivos a possível manipulação maliciosa. -

-

- Para endereçar esse problema, mude a propriedade dos diretórios - $LFS/* para usuária(o) - root executando o seguinte - comando: -

-
chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
-  x86_64) chown -R root:root $LFS/lib64 ;;
-esac
-
-
-
-
-
-

- 7.3. Preparando Sistemas de - Arquivos Virtuais de Kernel -

-
-
-
-

- Vários sistemas de arquivos exportados pelo kernel são usados - para comunicar para e oriunda do próprio kernel. Esses sistemas - de arquivos são virtuais uma vez que nenhum espaço de disco é - usado por eles. O conteúdo dos sistemas de arquivos reside em - memória. -

-

- Comece criando diretórios nos quais os sistemas de arquivos - serão montados: -

-
mkdir -pv $LFS/{dev,proc,sys,run}
-
-

- 7.3.1. Criando Nós de Dispositivos Iniciais -

-

- Quando o kernel inicializa o sistema, ele exige a presença de - alguns nós de dispositivos, em particular os dispositivos - console e null. Os nós de dispositivos precisam ser - criados no disco rígido de modo que eles estejam disponíveis - antes que o kernel povoe /dev), e adicionalmente quando Linux é - iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -

-
mknod -m 600 $LFS/dev/console c 5 1
-mknod -m 666 $LFS/dev/null c 1 3
-
-
-

- 7.3.2. Montando e Povoando /dev -

-

- O método recomendado de povoar o diretório /dev com dispositivos é montar um sistema - de arquivos virtuais (tal como tmpfs) no diretório /dev, e permitir que os dispositivos sejam - criados dinamicamente naquele sistema de arquivos virtuais - conforme eles sejam detectados ou acessados. Criação de - dispositivos é geralmente feita durante o processo de - inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário - montar e povoar /dev - manualmente. Isso é conseguido montando com bind o diretório - /dev do sistema anfitrião. Uma - montagem com bind é um tipo especial de montagem que permite - que você crie um espelho de um diretório ou ponto de montagem - para alguma outra localização. Use o seguinte comando para - conseguir isso: -

-
mount -v --bind /dev $LFS/dev
-
-
-

- 7.3.3. Montando Sistemas de - Arquivos Virtuais de Kernel -

-

- Agora monte os restantes sistemas de arquivos virtuais de - kernel: -

-
mount -v --bind /dev/pts $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run
-

- Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi - montado acima então, nesse caso, apenas um diretório precisa - ser criado. -

-
if [ -h $LFS/dev/shm ]; then
-  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
-fi
-
-
-
-
-
-
-

- 7.4. Entrando no Ambiente - Chroot -

-
-
-
-

- Agora que todos os pacotes que são exigidos para construir o - resto das ferramentas necessárias estão no sistema, é hora de - entrar no ambiente chroot para finalizar a instalação das - restantes ferramentas temporárias. Esse ambiente estará em uso - também para a instalação do sistema final. Como usuária(o) - root, execute o seguinte - comando para entrar no ambiente que é, neste momento, povoado - apenas com as ferramentas temporárias: -

-
chroot "$LFS" /usr/bin/env -i   \
-    HOME=/root                  \
-    TERM="$TERM"                \
-    PS1='(lfs chroot) \u:\w\$ ' \
-    PATH=/usr/bin:/usr/sbin     \
-    /bin/bash --login
-

- A opção -i dada para o - comando env - limpará todas as variáveis do ambiente chroot. Depois disso, - apenas as variáveis HOME, - TERM, PS1, e PATH são - configuradas novamente. A construção TERM=$TERM configurará a variável - TERM dentro de chroot para o mesmo - valor que fora de chroot. Essa variável é necessária para - aplicativos como vim e less operarem adequadamente. - Se outras variáveis forem desejadas, tais como CFLAGS ou CXXFLAGS, - então esse é um bom lugar para configurá-las novamente. -

-

- Deste ponto em diante, não mais há necessidade de usar a - variável LFS, pois todo o trabalho - estará restrito ao sistema de arquivos de LFS. Isso acontece - pois o shell Bash é informado que $LFS agora é o diretório raiz (/). -

-

- Perceba que /tools/bin não está - no PATH. Isso significa que o - conjunto de ferramentas cruzadas não mais será usado no - ambiente chroot. -

-

- Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi - criado. -

-
-

- Nota -

-

- É importante que todos os comandos até o final deste capítulo - e nos capítulos seguintes sejam executados de dentro do - ambiente chroot. Se você deixar esse ambiente por qualquer - razão (reiniciar, por exemplo), então certifique-se que os - sistemas de arquivos virtuais de kernel estejam montados como - explicado em Seção 7.3.2, - “Montando e Povoando /dev” e Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de - Kernel” e entre no chroot novamente antes de - continuar a instalação. -

-
-
-
-
-
-
-

- 7.5. Criando Diretórios -

-
-
-
-

- É tempo de criar a estrutura completa no sistema de arquivos - LFS. -

-

- Crie alguns diretórios de nível de raiz que não estão no - conjunto limitado exigido nos capítulos anteriores emitindo o - seguinte comando: -

-
-

- Nota -

-

- Alguns dos diretórios abaixo já foram criados anteriormente - com instruções explícitas ou quando da instalação de alguns - pacotes. Elas estão repetidas abaixo para completude. -

-
-
mkdir -pv /{boot,home,mnt,opt,srv}
-

- Crie o conjunto exigido de subdiretórios abaixo do nível de - raiz emitindo os seguintes comandos: -

-
mkdir -pv /etc/{opt,sysconfig}
-mkdir -pv /lib/firmware
-mkdir -pv /media/{floppy,cdrom}
-mkdir -pv /usr/{,local/}{include,src}
-mkdir -pv /usr/local/{bin,lib,sbin}
-mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
-mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
-mkdir -pv /usr/{,local/}share/man/man{1..8}
-mkdir -pv /var/{cache,local,log,mail,opt,spool}
-mkdir -pv /var/lib/{color,misc,locate}
-
-ln -sfv /run /var/run
-ln -sfv /run/lock /var/lock
-
-install -dv -m 0750 /root
-install -dv -m 1777 /tmp /var/tmp
-

- Diretórios são, por padrão, criados com modo de permissão 755, - mas isso não é desejável para todos os diretórios. Nos comandos - acima, duas mudanças são feitas—uma para o diretório home - da(o) usuária(o) root, e outra - para os diretórios para arquivos temporários. -

-

- A primeira mudança de modo assegura que nem qualquer pessoa - possa entrar no diretório /root—o mesmo que uma(m) usuária(o) - normal faria com o diretório home dela ou dele. A segunda - mudança de modo garante que qualquer usuária(o) possa escrever - nos diretórios /tmp e - /var/tmp, mas não possa remover - deles os arquivos de outras(os) usuárias(os). Essa última é - proibida pelo assim chamado sticky - bit, o bit mais alto (1) na máscara de - bits 1777. -

-
-

- 7.5.1. Nota de conformidade FHS -

-

- A árvore de diretório é baseada no Padrão de Hierarquia de - Sistema de Arquivos (Filesystem Hierarchy Standard - FHS) - (disponível em https://refspecs.linuxfoundation.org/fhs.shtml). - O FHS também especifica a existência opcional de alguns - diretórios tais como /usr/local/games e /usr/share/games. Nós criamos apenas os - diretórios que são necessários. Entretanto, sinta-se livre - para criar esses diretórios. -

-
-
-
-
-
-
-

- 7.6. Criando Arquivos - Essenciais e Links Simbólicos -

-
-
-
-

- Historicamente, o Linux mantém uma lista dos sistemas de - arquivos montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de - arquivos /proc. Para satisfazer - utilitários que esperam a presença de /etc/mtab, crie o seguinte link simbólico: -

-
ln -sv /proc/self/mounts /etc/mtab
-

- Crie um arquivo /etc/hosts básico - para ser referenciado em algumas suítes de teste, e em um dos - arquivos de configuração do Perl também: -

-
cat > /etc/hosts << EOF
-127.0.0.1  localhost $(hostname)
-::1        localhost
-EOF
-

- Para que a(o) usuária(o) root - seja capaz de logar e para que o nome root - seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e - /etc/group. -

-

- Crie o arquivo /etc/passwd - executando o seguinte comando: -

-
cat > /etc/passwd << "EOF"
-root:x:0:0:root:/root:/bin/bash
-bin:x:1:1:bin:/dev/null:/usr/bin/false
-daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
-messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
-systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false
-systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false
-systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false
-systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false
-systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false
-systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false
-systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false
-uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
-systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false
-EOF
-

- A senha atual para root será - configurada mais tarde. -

-

- Crie o arquivo /etc/group - executando o seguinte comando: -

-
cat > /etc/group << "EOF"
-root:x:0:
-bin:x:1:daemon
-sys:x:2:
-kmem:x:3:
-tape:x:4:
-tty:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-video:x:12:
-utmp:x:13:
-usb:x:14:
-cdrom:x:15:
-adm:x:16:
-messagebus:x:18:
-systemd-journal:x:23:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-systemd-journal-gateway:x:73:
-systemd-journal-remote:x:74:
-systemd-journal-upload:x:75:
-systemd-network:x:76:
-systemd-resolve:x:77:
-systemd-timesync:x:78:
-systemd-coredump:x:79:
-uuidd:x:80:
-systemd-oom:x:81:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:
-EOF
-

- Os grupos criados não são parte de qualquer padrão—eles - são grupos decididos em parte pelas exigências da configuração - de Udev no Capítulo 9, e em parte pelas convenções comuns - empregadas por um número de distribuições Linux existentes. Em - adição, algumas suítes de teste dependem de usuárias(os) ou - grupos específicos. A Base Padrão Linux (Linux Standard Base - - LSB, disponível em http://refspecs.linuxfoundation.org/lsb.shtml) - apenas recomenda que, além do grupo root com um ID de Grupo (GID) de 0, um - grupo bin com um GID de 1 - esteja presente. Todos os outros nomes de grupo e GIDs podem - ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de - GID, mas sim usam o nome do grupo. -

-

- Alguns testes em Capítulo 8 - precisam de uma(m) usuária(o) regular. Nós adicionamos essa(e) - usuária(o) aqui e deletamos essa conta ao final daquele - capítulo. -

-
echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
-echo "tester:x:101:" >> /etc/group
-install -o tester -d /home/tester
-

- Para remover o prompt I have no name!, inicie um novo - shell. Uma vez que os arquivos /etc/passwd e /etc/group foram criados, resolução de nome - de usuária(o) e nome de grupo agora funcionará: -

-
exec /usr/bin/bash --login
-

- Os aplicativos login, agetty, e init (e outros) usam um - número de arquivos de log para registrar informação tais como - quem esteve logada(o) no sistema e quando. Entretanto, esses - aplicativos não escreverão nos arquivos de log se eles já não - existirem. Inicialize os arquivos de log e dê a eles permissões - adequadas: -

-
touch /var/log/{btmp,lastlog,faillog,wtmp}
-chgrp -v utmp /var/log/lastlog
-chmod -v 664  /var/log/lastlog
-chmod -v 600  /var/log/btmp
-

- O arquivo /var/log/wtmp registra - todos os logins e logouts. O arquivo /var/log/lastlog registra quando cada - usuária(o) logou pela última vez. O arquivo /var/log/faillog registra tentativas de login - falhas. O arquivo /var/log/btmp - registra tentativas de login inválidas. -

-
-

- Nota -

-

- O arquivo /run/utmp registra - as(os) usuárias(os) que estão atualmente logadas(os). Esse - arquivo é criado dinamicamente nos scripts de inicialização. -

-
-
-
-
-
-
-

- 7.7. Libstdc++ - oriundo de GCC-11.2.0, Passagem 2 -

-
-
-
-
-

- Quando da construção de gcc-pass2 nós tivemos que - adiar a instalação da biblioteca padrão C++, pois nenhum - compilador adequado estava disponível para compilá-la. Nós - não poderíamos usar o compilador construído naquela seção, - por causa de que ele é um compilador nativo e não deveria ser - usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 1,1 GB -
-
-
-
-
-

- 7.7.1. Instalação de Libstdc++ Alvo -

-
-

- Nota -

-

- Libstdc++ é parte dos - fontes de GCC. Você deveria primeiro desempacotar o tarball - de GCC e mudar para o diretório gcc-11.2.0. -

-
-

- Crie um link que existe quando da construção de libstdc++ na - árvore de gcc: -

-
ln -s gthr-posix.h libgcc/gthr-default.h
-

- Crie um diretório de construção separado para libstdc++ e - entre nele: -

-
mkdir -v build
-cd       build
-

- Prepare libstdc++ para compilação: -

-
../libstdc++-v3/configure            \
-    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
-    --prefix=/usr                    \
-    --disable-multilib               \
-    --disable-nls                    \
-    --host=$(uname -m)-lfs-linux-gnu \
-    --disable-libstdcxx-pch
-
-

- O significado das opções de configure: -

-
-
- CXXFLAGS="-g -O2 - -D_GNU_SOURCE" -
-
-

- Esses sinalizadores são passados pelo Makefile de nível - de topo quando da feitura de uma construção completa de - GCC. -

-
-
- --host=$(uname - -m)-lfs-linux-gnu -
-
-

- Nós temos que imitar o que teria acontecido se esse - pacote fosse construído como parte de uma construção - completa de compilador. Essa chave teria sido passada - para configure pelo maquinário de construção do GCC. -

-
-
- --disable-libstdcxx-pch -
-
-

- Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste - estágio. -

-
-
-
-

- Compile libstdc++ executando: -

-
make
-

- Instale a biblioteca: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.26.2, “Conteúdo - de GCC.” -

-
-
-
-
-
-
-

- 7.8. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 280 MB -
-
-
-
-
-

- 7.8.1. Instalação de Gettext -

-

- Para nosso conjunto temporário de ferramentas, nós apenas - precisamos instalar três aplicativos originários de Gettext. -

-

- Prepare Gettext para compilação: -

-
./configure --disable-shared
-
-

- O significado da opção de configure: -

-
-
- --disable-shared -
-
-

- Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não - existe necessidade de construí-las. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale os aplicativos msgfmt, msgmerge, e xgettext: -

-
cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.31.2, - “Conteúdo do Gettext.” -

-
-
-
-
-
-
-

- 7.9. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 7.9.1. Instalação de Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/bison-3.8.2
-
-

- O significado da nova opção de configure: -

-
-
- --docdir=/usr/share/doc/bison-3.8.2 -
-
-

- Isso diz ao sistema de construção para instalar - documentação de bison em um diretório versionado. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.32.2, - “Conteúdo do Bison.” -

-
-
-
-
-
-
-

- 7.10. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 1,6 UPC -
-
- Espaço em disco - exigido: 272 MB -
-
-
-
-
-

- 7.10.1. Instalação de Perl -

-

- Prepare Perl para compilação: -

-
sh Configure -des                                        \
-             -Dprefix=/usr                               \
-             -Dvendorprefix=/usr                         \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl     \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl     \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl     \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl    \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl
-
-

- O significado das novas opções de - Configure: -

-
-
- -des -
-
-

- Essa é uma combinação de três opções: -d usa padrões - para todos os itens; -e assegura completamento de todas - as tarefas; -s silencia saída não essencial. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.41.2, “Conteúdo - do Perl.” -

-
-
-
-
-
-
-

- 7.11. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 1,2 UPC -
-
- Espaço em disco - exigido: 359 MB -
-
-
-
-
-

- 7.11.1. Instalação de Python -

-
-

- Nota -

-

- Existem dois arquivos de pacotes cujos nomes se iniciam com - python. Aquele a se extrair a - partir dele é Python-3.10.2.tar.xz (perceba a primeira - letra maiúscula). -

-
-

- Prepare Python para compilação: -

-
./configure --prefix=/usr   \
-            --enable-shared \
-            --without-ensurepip
-
-

- O significado da opção de configure: -

-
-
- --enable-shared -
-
-

- Essa chave impede instalação de bibliotecas estáticas. -

-
-
- --without-ensurepip -
-
-

- Essa chave desabilita o instalador de pacote de Python, - o qual não é necessário neste estágio. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Alguns módulos de Python 3 não podem ser construídos agora, - por causa de que as dependências não estão instaladas - ainda. O sistema de construção ainda tenta construí-las, - entretanto, de forma que a compilação de alguns arquivos - falhará e a mensagem de compilador talvez pareça indicar - fatal - error. A mensagem deveria ser - ignorada. Apenas tenha certeza de que o comando de nível de - topo make não - tenha falhado. Os módulos opcionais não são necessários - agora e eles serão construídos em Capítulo 8. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.50.2, - “Conteúdo do Python 3.” -

-
-
-
-
-
-
-

- 7.12. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 109 MB -
-
-
-
-
-

- 7.12.1. Instalação de Texinfo -

-

- Primeiro, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.67.2, - “Conteúdo do Texinfo.” -

-
-
-
-
-
-
-

- 7.13. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém diversos aplicativos utilitários. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 129 MB -
-
-
-
-
-

- 7.13.1. Instalação de Util-linux -

-

- O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual diretório - /etc como a localização para o - arquivo adjtime. Crie esse - diretório com: -

-
mkdir -pv /var/lib/hwclock
-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
-            --libdir=/usr/lib    \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python     \
-            runstatedir=/run
-
-

- O significado das opções de configure: -

-
-
- ADJTIME_PATH=/var/lib/hwclock/adjtime -
-
-

- Isso configura a localização do arquivo gravando - informação acerca do relógio de hardware de acordo com - o FHS. Isso não é estritamente necessário para essa - ferramenta temporária, porém impede a criação de um - arquivo em outra localização, o qual não seria - sobrescrito ou removido quando da construção do pacote - util-linux final. -

-
-
- --libdir=/usr/lib -
-
-

- Essa chave assegura que os links simbólicos - .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. -

-
-
- --disable-* -
-
-

- Essas chaves evitam avisos acerca de componentes de - construção que exigem pacotes que não estão no LFS ou - ainda não estão instalados. -

-
-
- --without-python -
-
-

- Essa chave desabilita o uso de Python. Ela evita tentar construir - ligações desnecessárias. -

-
-
- runstatedir=/run -
-
-

- Essa chave configura corretamente a localização do - soquete usado por uuidd e libuuid. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Instale o pacote: -

-
make install
-
-
-

- Detalhes acerca deste pacote estão localizados em Seção 8.75.2, - “Conteúdo do Util-linux.” -

-
-
-
-
-
-
-

- 7.14. Limpando e Salvando o - Sistema Temporário -

-
-
-
-
-

- 7.14.1. Limpando -

-

- Primeiro, remova a documentação atualmente instalada para - evitar que ela termine no sistema final, e para salvar cerca - de 35 MB: -

-
rm -rf /usr/share/{info,man,doc}/*
-

- Segundo, os arquivos .la de libtool somente são úteis quando - vinculados com bibliotecas estáticas. Eles são desnecessários - e potencialmente danosos quando do uso de bibliotecas - compartilhadas dinâmicas, especialmente quando do uso de - sistemas de construção não autotools. Enquanto ainda no - chroot, remova aqueles arquivos agora: -

-
find /usr/{lib,libexec} -name \*.la -delete
-

- O tamanho atual de sistema é agora de cerca de 3 GB, - entretanto o diretório /tools não mais é necessário. Ele usa - cerca de 1 GB de espaço de disco. Delete ele agora: -

-
rm -rf /tools
-
-
-

- 7.14.2. Cópia de segurança -

-

- Neste ponto os aplicativos e bibliotecas essenciais foram - criados e seu sistema LFS atual está em um bom estado. Seu - sistema pode agora ser copiado para posterior reuso. Em caso - de falhas fatais nos capítulos subsequentes, frequentemente - acontece que remover tudo e começar de novo (mais - cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, - também. Para evitar desperdiçar tempo extra para refazer tudo - o que foi construído com sucesso, criar uma cópia de - segurança do sistema LFS atual talvez se prove útil. -

-
-

- Nota -

-

- Todos os passos restantes nesta seção são opcionais. Apesar - disso, tão logo você comece a instalar pacotes em Capítulo 8, - os arquivos temporários serão sobrescritos. Assim, talvez - seja uma boa ideia fazer uma cópia de segurança do sistema - atual conforme descrito abaixo. -

-
-

- Os passos seguintes são realizados a partir do lado de fora - do ambiente chroot. Isso significa, você tem de deixar o - ambiente chroot primeiro antes de continuar. A razão para - isso é para conseguir acesso a locais do sistema de arquivos - do lado de fora do ambiente chroot para armazenar/ler o - arquivamento de cópia de segurança o qual não deveria ser - colocado dentro da hierarquia de $LFS por razões de segurança. -

-

- Se você decidiu fazer uma cópia de segurança, então deixe o - ambiente chroot: -

-
exit
-
-

- Importante -

-

- Todas as instruções seguintes são executadas por - root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você - vai executar, uma vez que erros aqui podem modificar seu - sistema anfitrião. Esteja ciente de que a variável de - ambiente LFS está configurada - para usuária(o) lfs por - padrão, mas talvez não esteja configurada para - root. -

-

- Sempre que comandos forem ser executados por root, tenha certeza de que você - configurou LFS. -

-

- Isso foi discutido em Seção 2.6, - “Configurando a Variável $LFS”. -

-
-

- Antes de fazer uma cópia de segurança, desmonte os sistemas - de arquivos virtuais: -

-
umount $LFS/dev/pts
-umount $LFS/{sys,proc,run,dev}
-

- Tenha certeza de que tem pelo menos 1 GB de espaço de disco - livre (os tarballs de fonte serão incluídos no arquivamento - de cópia de segurança) no sistema de arquivos contendo - diretório onde você criar o arquivamento de cópia de - segurança. -

-

- Note que as instruções abaixo especificam o diretório home - da(o) usuária(o) root do - sistema anfitrião, o qual tipicamente é encontrado no sistema - de arquivos raiz. -

-

- Substitua $HOME por um diretório - da sua escolha se você não quiser ter a cópia de segurança - armazenada no diretório home de root. -

-

- Crie o arquivamento de cópia de segurança executando o - seguinte comando: -

-
-

- Nota -

-

- Por causa de que o arquivamento de cópia de segurança é - comprimido, dura um tempo relativamente longo (mais de 10 - minutos) mesmo em um sistema razoavelmente rápido. -

-
-
cd $LFS
-tar -cJpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz .
-
-

- Nota -

-

- Se continuar para o capítulo 8, então não se esqueça de - entrar novamente no ambiente chroot conforme explanado na - caixa Importante abaixo. -

-
-
-
-

- 7.14.3. Restauro -

-

- No caso de alguns erros tiverem sido feitos e você precisar - começar de novo, você pode usar essa cópia de segurança para - restaurar o sistema e economizar algum tempo de recuperação. - Desde que os fontes estão localizados sob $LFS, eles são incluídos no arquivamento de - cópia de segurança também, de forma que eles não precisam ser - baixados novamente. Após verificar que $LFS está configurada adequadamente, restaure - a cópia de segurança executando os seguintes comandos: -

-
-

- Atenção -

-

- Os seguintes comandos são extremamente perigosos. Se você - executar rm -rf - ./* como a(o) usuária(o) root e você não - mudar para o diretório $LFS ou a variável de ambiente - LFS não estiver configurada para - a(o) usuária(o) root, então isso destruirá seu sistema - anfitrião inteiro. VOCÊ ESTÁ AVISADA(O). -

-
-
cd $LFS
-rm -rf ./*
-tar -xpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz
-

- Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. -

-
-

- Importante -

-

- Se você deixou o ambiente chroot para criar uma cópia de - segurança ou reiniciar a construção usando um restauro, - então lembre-se de verificar se os sistemas de arquivos - virtuais ainda estão montados (findmnt | grep $LFS). Se - eles não estiverem montados, então remonte-os agora - conforme descrito em Seção 7.3, - “Preparando Sistemas de Arquivos Virtuais de - Kernel” e entre novamente no ambiente chroot - (veja Seção 7.4, - “Entrando no Ambiente Chroot”) antes de - continuar. -

-
-
-
-
-
-
-
-
-
-

- Parte IV. Construindo o Sistema - LFS -

-
-
-
-
-
-
-
-

- Capítulo 8. Instalando - Aplicativos Básicos de Sistema -

-
-
-
-
-
-
-
-

- 8.1. Introdução -

-
-
-
-

- Neste capítulo, nós começamos a construir o sistema LFS pra - valer. -

-

- A instalação desse software é simples. Embora em muitos casos - as instruções de instalação pudessem ser mais curtas e mais - genéricas, nós optamos por fornecer as instruções completas - para cada pacote para minimizar as possibilidades de erros. A - chave para aprender o que faz um sistema Linux funcionar é - saber para que cada pacote é usado e porque você (ou o sistema) - talvez precise dele. -

-

- Nós não recomendamos usar otimizações. Elas podem fazer com que - um aplicativo execute ligeiramente mais rápido, mas elas também - talvez causem dificuldades de compilação e problemas quando - executar o aplicativo. Se um pacote se recusar a compilar - quando usar otimização, então tente compilá-lo sem otimização e - veja se isso conserta o problema. Mesmo se o pacote compilar - quando usar otimização, existe o risco de que ele talvez tenha - sido compilado incorretamente devido às complexas interações - entre o código e ferramentas de construção. Note também que as - opções -march e -mtune usando valores não especificados no - livro não foram testadas. Isso talvez cause problemas com os - pacotes do conjunto de ferramentas (Binutils, GCC e Glibc). Os - pequenos ganhos potenciais alcançados usando otimizações de - compilador frequentemente são superados pelos riscos. - Construtoras(es) de primeira vez de LFS são encorajadas(os) a - construir sem otimizações personalizadas. O sistema subsequente - ainda executará muito rápido e será estável ao mesmo tempo. -

-

- Antes das instruções de instalação, cada página de instalação - fornece informação acerca do pacote, incluindo uma descrição - concisa do que ele contém, aproximadamente quando tempo levará - para construir, e quanto espaço de disco é exigido durante esse - processo de construção. Seguindo as instruções de instalação, - existe uma lista de aplicativos e bibliotecas (juntamente com - breves descrições) que o pacote instala. -

-
-

- Nota -

-

- Os valores de UPC e espaço de disco exigido incluem dados de - suíte de teste para todos os pacotes aplicáveis em Capítulo 8. - Os valores de UPC foram calculados usando um núcleo sozinho - de CPU (-j1) para todas as operações. -

-
-
-

- 8.1.1. Acerca de bibliotecas -

-

- Em geral, as(os) editoras(es) de LFS desencorajam construir e - instalar bibliotecas estáticas. O propósito original para a - maioria das bibliotecas estáticas tem sido tornado obsoleto - em um sistema moderno Linux. Além disso, vincular uma - biblioteca estática a um aplicativo pode ser prejudicial. Se - uma atualização para a biblioteca for necessária para remover - um problema de segurança, então todos os aplicativos que usam - a biblioteca estática precisarão ser vinculados de novo à - nova biblioteca. Como o uso de bibliotecas estáticas nem - sempre é óbvio, os aplicativos relevantes (e os procedimentos - necessários para fazer a vinculação) talvez nem mesmo sejam - conhecidos. -

-

- Nos procedimentos neste capítulo, nós removemos ou - desabilitamos a instalação da maioria das bibliotecas - estáticas. Usualmente isso é feito passando-se uma opção - --disable-static para - configure. Em - outros casos, meios alternativos são necessários. Em uns - poucos casos, especialmente glibc e gcc, o uso de bibliotecas - estáticas permanece essencial para o processo geral de - construção de pacote. -

-

- Para uma discussão mais completa acerca de bibliotecas, - veja-se a discussão - Bibliotecas: Estática ou compartilhada? no livro BLFS. -

-
-
-
-
-
-
-

- 8.2. Gerenciamento de Pacote -

-
-
-
-

- Gerenciamento de Pacote é uma adição frequentemente solicitada - ao Livro LFS. Um Gerenciador de Pacote permite monitorar a - instalação de arquivos tornando fácil remover e atualizar - pacotes. Assim como os arquivos binários e bibliotecas, um - gerenciador de pacote lidará com a instalação de arquivos de - configuração. Antes que você comece a questionar, - NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um - resumo acerca das técnicas mais populares e como elas - funcionam. O gerenciador de pacote perfeito para você talvez - esteja entre essas técnicas ou talvez seja uma combinação de - duas ou mais dessas técnicas. Esta seção menciona brevemente - problemas que talvez surjam quando da atualização de pacotes. -

-

- Algumas razões porque nenhum gerenciador de pacote é mencionado - em LFS ou BLFS incluem: -

-
-
    -
  • -

    - Lidar com gerenciamento de pacote retira o foco das - finalidades desses livros—ensinar como um sistema - Linux é construído. -

    -
  • -
  • -

    - Existem múltiplas soluções para gerenciamento de pacote, - cada uma tendo seus pontos fortes e fracos. Incluir uma - que satisfaça todas as audiências é difícil. -

    -
  • -
-
-

- Existem algumas dicas escritas no tópico acerca de - gerenciamento de pacote. Visite o Hints - Project e veja se uma delas se adéqua às suas necessidades. -

-
-

- 8.2.1. Problemas de Atualização -

-

- Um Gerenciador de Pacote torna fácil atualizar para versões - mais novas quando elas são liberadas. Geralmente as - instruções nos livros LFS e BLFS podem ser usadas para - atualizar para versões mais novas. Aqui estão alguns pontos - que você deveria estar ciente quando da atualização de - pacotes, especialmente em um sistema em execução. -

-
-
    -
  • -

    - Se o kernel Linux precisar ser atualizado (por exemplo, - de 5.10.17 para 5.10.18 ou 5.11.1), então nada mais - precisa ser reconstruído. O sistema seguirá funcionando - bem graças à borda bem definida entre kernel e espaço - de usuária(o). Especificamente, os cabeçalhos de API de - Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você - precisará reiniciar seu sistema para usar o kernel - atualizado. -

    -
  • -
  • -

    - Se os cabeçalhos de API de Linux ou Glibc precisarem - ser atualizados para uma versão mais nova, (por - exemplo, de glibc-2.31 para glibc-2.32), então é mais - seguro reconstruir LFS. Ainda que você talvez seja capaz de - reconstruir todos os pacotes na ordem de dependência - deles, nós não recomendamos isso. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e se o nome da biblioteca mudar, então - quaisquer pacotes dinamicamente vinculados à biblioteca - precisam ser recompilados com a finalidade de vincular - à biblioteca mais nova. (Note que não existe correlação - entre a versão de pacote e o nome da biblioteca). Por - exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala - uma biblioteca compartilhada com nome libfoo.so.2. Nesse caso, quaisquer - pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser - recompilados para vincular à libfoo.so.2 com a finalidade de usar - a nova versão de biblioteca. Você não deveria remover - as bibliotecas anteriores a menos que todos os pacotes - dependentes sejam recompilados. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém o - número de versão do arquivo de biblioteca - decrescer (por exemplo, o nome da biblioteca é mantido - como libfoo.so.1, porém o - nome do arquivo de biblioteca é modificado de - libfoo.so.1.25 para - libfoo.so.1.24), então - você deveria remover o arquivo de biblioteca originário - da versão previamente instalada (libfoo.so.1.25 no caso). Ou, uma - execução de ldconfig (por você - mesmo usando uma linha de comando, ou pela instalação - de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar - para o antigo arquivo de biblioteca, pois ele aparenta - ter uma versão mais nova, uma vez que seu - número de versão é mais largo. Essa situação talvez - aconteceu se você teve que desatualizar um pacote, ou o - pacote muda repentinamente o esquema de versionamento - de arquivos de biblioteca. -

    -
  • -
  • -

    - Se um pacote contendo uma biblioteca compartilhada for - atualizado, e o nome da biblioteca não mudar, porém um - problema severo (especialmente, uma vulnerabilidade de - segurança) for corrigido, então todos os aplicativos em - execução vinculados à biblioteca compartilhada deveriam - ser reiniciados. O seguinte comando, executado como - root após atualização, - listará o que está usando as versões antigas daquelas - bibliotecas (substitua libfoo com o nome da - biblioteca): -

    -
    grep -l  -e 'libfoo.*deleted' /proc/*/maps |
    -   tr -cd 0-9\\n | xargs -r ps u
    -

    - Se OpenSSH estiver - sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa - reiniciar o serviço sshd, então - deslogar-se, logar-se novamente, e reexecutar aquele - comando para confirmar que nada ainda está usando as - bibliotecas deletadas. -

    -
  • -
  • -

    - Se um binário ou uma biblioteca compartilhada for - sobrescrito, então os processos usando o código ou - dados no binário ou biblioteca talvez quebrem. A - maneira correta para atualizar um binário ou uma - biblioteca compartilhada sem causar quebra ao processo - é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por - Coreutils já - implementou isso e a maioria dos pacotes usa ele para - instalar binários e bibliotecas. Isso significa que - você não estaria encrencada(o) por esse problema a - maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em - BLFS) apenas sobrescreve o arquivo se ele existir e - causa uma quebra, de forma que é mais seguro salvar seu - trabalho e fechar processos em execução desnecessários - antes de atualizar um pacote. -

    -
  • -
-
-
-
-

- 8.2.2. Técnicas de Gerenciamento de Pacote -

-

- As seguintes são algumas técnicas comuns de gerenciamento de - pacote. Antes de se decidir acerca de um gerenciador de - pacote, pesquise sobre as várias técnicas, particularmente os - pontos fracos do esquema em particular. -

-
-
-
-
-

- 8.2.2.1. Está Tudo na Minha - Cabeça! -

-
-
-
-

- Sim, isso é uma técnica de gerenciamento de pacote. Algumas - pessoas não encontram a necessidade para um gerenciador de - pacote, pois elas conhecem os pacotes intimamente e sabem - quais arquivos estão instalados por cada pacote. - Algumas(ns) usuárias(os) também não precisam de qualquer - gerenciamento de pacote, pois elas(es) planejam reconstruir - o sistema inteiro quando um pacote for mudado. -

-
-
-
-
-
-

- 8.2.2.2. Instalação em Diretórios - Separados -

-
-
-
-

- Esse é um gerenciamento de pacote simplista que não - necessita de qualquer pacote extra para gerenciar as - instalações. Cada pacote é instalado em um diretório - separado. Por exemplo, o pacote foo-1.1 é instalado em - /usr/pkg/foo-1.1 e um link - simbólico é feito de /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de - uma nova versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova - versão. -

-

- Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, INFOPATH - e CPPFLAGS precisam ser - expandidas para incluir /usr/pkg/foo. Para mais que uns poucos - pacotes, esse esquema se torna ingerenciável. -

-
-
-
-
-
-

- 8.2.2.3. Gerenciamento de Pacote - Estilo Link Simbólico -

-
-
-
-

- Essa é uma variação da técnica de gerenciamento de pacote - anterior. Cada pacote é instalado similar ao esquema - anterior. Mas, em vez de fazer o link simbólico, cada - arquivo é simbolicamente vinculado à hierarquia - /usr. Isso remove a - necessidade de expandir as variáveis de ambiente. Ainda que - os links simbólicos possam ser criados pela(o) usuária(o) - para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos - populares inclui Stow, Epkg, Graft, e Depot. -

-

- A instalação precisa ser falseada, de modo que o pacote - pense que está instalado em /usr, ainda que, na realidade, ele esteja - instalado na hierarquia /usr/pkg. Instalar dessa maneira - geralmente não é uma tarefa trivial. Por exemplo, considere - que você está instalando um pacote libfoo-1.1. As seguintes - instruções talvez não instalem adequadamente o pacote: -

-
./configure --prefix=/usr/pkg/libfoo/1.1
-make
-make install
-

- A instalação funcionará, mas os pacotes dependentes talvez - não se vinculem à libfoo conforme você esperaria. Se você - compilar um pacote que vincula à libfoo, então você talvez - note que ele está vinculado a /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em - vez de /usr/lib/libfoo.so.1 - como você esperaria. A abordagem correta é usar a - estratégia DESTDIR para falsear - a instalação do pacote. Essa abordagem funciona como se - segue: -

-
./configure --prefix=/usr
-make
-make DESTDIR=/usr/pkg/libfoo/1.1 install
-

- A maioria dos pacotes suporta essa abordagem, mas existem - alguns que não. Para os pacotes não conformes, você talvez - ou precise instalar manualmente o pacote, ou você talvez - ache que é mais fácil instalar alguns pacotes problemáticos - em /opt. -

-
-
-
-
-
-

- 8.2.2.4. Baseado em Marca - Temporal -

-
-
-
-

- Nessa técnica, um arquivo é marcado temporalmente antes da - instalação do pacote. Após a instalação, um simples uso do - comando find - com as opções apropriadas pode gerar um registro de todos - os arquivos instalados após o arquivo de marca temporal ser - criado. Um gerenciador de pacote escrito com essa abordagem - é instalação-registro. -

-

- Ainda que esse esquema tenha a vantagem de ser simples, ele - tem duas desvantagens. Se, durante a instalação, os - arquivos forem instalados com qualquer marca temporal outra - que a hora atual, então aqueles arquivos não serão - rastreados pelo gerenciador de pacote. Além disso, esse - esquema pode ser usado apenas quando um pacote for - instalado de cada vez. Os registros não são confiáveis se - dois pacotes estão sendo instalados em dois consoles. -

-
-
-
-
-
-

- 8.2.2.5. Scripts de Rastreamento - de Instalação -

-
-
-
-

- Nessa abordagem, os comandos que os scripts de instalação - realizam são gravados. Existem duas técnicas que se pode - usar: -

-

- A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da - instalação. Durante a instalação, essa biblioteca rastreia - os pacotes que estão sendo instalados anexando-se a vários - executáveis tais como cp, install, mv e rastreando as - chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis - precisam ser dinamicamente vinculados sem o bit suid ou - sgid. Pré-carregar a biblioteca talvez cause alguns efeitos - colaterais indesejados durante a instalação. Portanto, - aconselha-se que se realize alguns testes para garantir que - o gerenciador de pacote não quebre nada e registre todos os - arquivos adequados. -

-

- A segunda técnica é usar strace, que registra - todas as chamadas de sistema feitas durante a execução dos - scripts de instalação. -

-
-
-
-
-
-

- 8.2.2.6. Criando Arquivamentos de - Pacote -

-
-
-
-

- Nesse esquema, a instalação do pacote é falseada em uma - árvore separada como descrito no gerenciamento de pacote - estilo Link Simbólico. Após a instalação, um arquivamento - de pacote é criado usando os arquivos instalados. Esse - arquivamento é então usado para instalar o pacote tanto na - máquina local quanto pode até ser usado para instalar o - pacote em outras máquinas. -

-

- Essa abordagem é usada pela maioria dos gerenciadores de - pacote encontrados nas distribuições comerciais. Exemplos - de gerenciadores de pacote que seguem essa abordagem são - RPM (o qual, incidentalmente, é exigido pela Linux - Standard Base Specification), pkg-utils, apt do Debian, - e sistema Portage do Gentoo. Uma dica descrevendo como - adotar esse estilo de gerenciamento de pacote para sistemas - LFS está localizada em - https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt. -

-

- Criação de arquivos pacote que incluem informação de - dependência é complexa e está além do escopo de LFS. -

-

- Slackware usa um sistema baseado em tar para arquivamentos de - pacote. Esse sistema intencionalmente não manuseia - dependências de pacote como gerenciadores de pacote mais - complexos fazem. Para detalhes de gerenciamento de pacote - Slackware, veja http://www.slackbook.org/html/package-management.html. -

-
-
-
-
-
-

- 8.2.2.7. Gerenciamento Baseado em - Usuária(o) -

-
-
-
-

- Esse esquema, único para LFS, foi concebido por Matthias - Benkmann, e está disponível a partir do Hints - Project. Nesse esquema, cada pacote é instalado como - uma(m) usuária(o) separada(o) nos locais padrão. Arquivos - pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e - deficiências dessa abordagem são muito complexas para serem - descritas nesta seção. Para os detalhes, por favor veja a - dica em - https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt. -

-
-
-
-

- 8.2.3. Implantando LFS em Múltiplos Sistemas -

-

- Uma das vantagens de um sistema LFS é a de que não existem - arquivos que dependam da posição de arquivos em um sistema de - disco. Clonar uma construção LFS para outro computador com a - mesma arquitetura que a do sistema base é tão simples quanto - usar tar na - partição LFS que contém o diretório raiz (cerca de 250MB - descomprimido para uma construção base LFS), copiando aquele - arquivo via transferência de rede ou CD-ROM para o novo - sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: - /etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, e - /etc/ld.so.conf. -

-

- Um kernel personalizado talvez seja necessário ser construído - para o novo sistema dependendo das diferenças entre hardware - de sistema e a configuração original do kernel. -

-
-

- Nota -

-

- Tem havido alguns relatos de problemas quando da cópia - entre arquiteturas similares, porém não idênticas. Por - exemplo, o conjunto de instrução para um sistema Intel não - é idêntico com um processador AMD, e versões posteriores de - alguns processadores talvez tenham instruções que estão - indisponíveis em versões anteriores. -

-
-

- Finalmente, o novo sistema tem de ser tornado inicializável - via - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-
-
-
-
-

- 8.3. Man-pages-5.13 -

-
-
-
-
-

- O pacote Man-pages contém mais que 2.200 páginas de manual. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.3.1. Instalação de Man-pages -

-

- Instale Man-pages executando: -

-
make prefix=/usr install
-
-
-

- 8.3.2. - Conteúdo de Man-pages -

-
-
-
- Arquivos instalados: - várias páginas de manual -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - -
-

- man - pages -

-
-

- Descreve funções da linguagem de programação C, - arquivos importantes de dispositivo e arquivos - significantes de configuração -

-
-
-
-
-
-
-
-
-

- 8.4. Iana-Etc-20220207 -

-
-
-
-
-

- O pacote Iana-Etc fornece dados para serviços e protocolos de - rede. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,7 MB -
-
-
-
-
-

- 8.4.1. Instalação de Iana-Etc -

-

- Para esse pacote, nós apenas precisamos copiar os arquivos - para o lugar: -

-
cp services protocols /etc
-
-
-

- 8.4.2. - Conteúdo de Iana-Etc -

-
-
-
- Arquivos instalados: - /etc/protocols e - /etc/services -
-
-
-
-

- Breves Descrições -

- - - - - - - - - - - - - - - -
-

- /etc/protocols -

-
-

- Descreve os vários protocolos DARPA de Internet que - estão disponíveis a partir do subsistema TCP/IP -

-
-

- /etc/services -

-
-

- Fornece um mapeamento entre nomes textuais - amigáveis para serviços de internet e seus números - de porta atribuídos e tipos de protocolos não - expostos -

-
-
-
-
-
-
-
-
-

- 8.5. Glibc-2.35 -

-
-
-
-
-

- O pacote Glibc contém a biblioteca C principal. Essa - biblioteca fornece as rotinas básicas para alocação de - memória, busca em diretórios, abertura e fechamento de - arquivos, leitura e escrita de arquivos, manuseio de - sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. -

-
-
-
- Tempo aproximado de - construção: 24 UPC -
-
- Espaço em disco - exigido: 2,8 GB -
-
-
-
-
-

- 8.5.1. Instalação de Glibc -

-

- Alguns dos aplicativos Glibc usam o diretório não conforme - com FHS /var/db para armazenar - seus dados em tempo de execução. Aplique a seguinte correção - para fazer com que tais aplicativos armazenem seus dados em - tempo de execução nos locais conformes com FHS: -

-
patch -Np1 -i ../glibc-2.35-fhs-1.patch
-

- A documentação de Glibc recomenda construir Glibc em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -

-
echo "rootsbindir=/usr/sbin" > configparms
-

- Prepare Glibc para compilação: -

-
../configure --prefix=/usr                            \
-             --disable-werror                         \
-             --enable-kernel=3.2                      \
-             --enable-stack-protector=strong          \
-             --with-headers=/usr/include              \
-             libc_cv_slibdir=/usr/lib
-
-

- O significado das opções de configure: -

-
-
- --disable-werror -
-
-

- Essa opção desabilita a opção -Werror passada para GCC. - Isso é necessário para a execução da suíte de teste. -

-
-
- --enable-kernel=3.2 -
-
-

- Essa opção diz ao sistema de construção que este glibc - talvez seja usado com kernels tão antigos quanto 3.2. - Isso significa que a geração de contornos no caso de - uma chamada de sistema introduzida em uma versão - posterior não pode ser usada. -

-
-
- --enable-stack-protector=strong -
-
-

- Essa opção aumenta a segurança de sistema adicionando - código extra para verificar estouros de buffer, tais - como ataques de esmagamento de pilha. -

-
-
- --with-headers=/usr/include -
-
-

- Essa opção diz ao sistema de construção onde encontrar - os cabeçalhos de API de kernel. -

-
-
- libc_cv_slibdir=/usr/lib -
-
-

- Essa variável configura a biblioteca correta para todos - os sistemas. Nós não queremos que lib64 seja usada. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para Glibc é considerada - crítica. Não pule sob qualquer circunstância. -

-
-

- Geralmente uns poucos testes não passam. As falhas de teste - listadas abaixo são usualmente seguras ignorar. -

-
make check
-

- Você talvez veja algumas falhas de teste. A suíte de teste de - Glibc é de alguma forma dependente do sistema anfitrião. Umas - poucas falhas saídas de mais que 4.200 testes geralmente - podem ignoradas. Esta é uma lista dos problemas mais comuns - vistos para versões recentes de LFS: -

-
-
    -
  • -

    - io/tst-lchmod é - conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - misc/tst-ttyname - é conhecido por falhar no ambiente chroot de LFS. -

    -
  • -
  • -

    - O teste nss/tst-nss-files-hosts-multi - é conhecido por falhar se o sistema não tiver endereços - IP não loopback. -

    -
  • -
-
-

- Mesmo sendo uma mensagem inofensiva, o estágio de instalação - de Glibc reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta com: -

-
touch /etc/ld.so.conf
-

- Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -

-
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
-

- Instale o pacote: -

-
make install
-

- Conserte caminho codificado rigidamente para o carregador de - executável em script ldd: -

-
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
-

- Instale o arquivo de configuração e diretório de tempo de - execução para nscd: -

-
cp -v ../nscd/nscd.conf /etc/nscd.conf
-mkdir -pv /var/cache/nscd
-

- Instale os arquivos de suporte de systemd para nscd: -

-
install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf
-install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service
-

- Em seguida, instale os locales que podem fazer o sistema - responder em um idioma diferente. Nenhum dos locales é - exigido, mas se algum deles estiver faltando, então as suítes - de teste de futuros pacotes pulariam casos de teste - importantes. -

-

- Locales individuais podem ser instalados usando o aplicativo - localedef. Por - exemplo, o segundo comando localedef abaixo combina a - definição de locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales - necessário para a cobertura ótima de testes: -

-
mkdir -pv /usr/lib/locale
-localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
-localedef -i de_DE -f ISO-8859-1 de_DE
-localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
-localedef -i de_DE -f UTF-8 de_DE.UTF-8
-localedef -i el_GR -f ISO-8859-7 el_GR
-localedef -i en_GB -f ISO-8859-1 en_GB
-localedef -i en_GB -f UTF-8 en_GB.UTF-8
-localedef -i en_HK -f ISO-8859-1 en_HK
-localedef -i en_PH -f ISO-8859-1 en_PH
-localedef -i en_US -f ISO-8859-1 en_US
-localedef -i en_US -f UTF-8 en_US.UTF-8
-localedef -i es_ES -f ISO-8859-15 es_ES@euro
-localedef -i es_MX -f ISO-8859-1 es_MX
-localedef -i fa_IR -f UTF-8 fa_IR
-localedef -i fr_FR -f ISO-8859-1 fr_FR
-localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
-localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
-localedef -i is_IS -f ISO-8859-1 is_IS
-localedef -i is_IS -f UTF-8 is_IS.UTF-8
-localedef -i it_IT -f ISO-8859-1 it_IT
-localedef -i it_IT -f ISO-8859-15 it_IT@euro
-localedef -i it_IT -f UTF-8 it_IT.UTF-8
-localedef -i ja_JP -f EUC-JP ja_JP
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
-localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
-localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
-localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
-localedef -i se_NO -f UTF-8 se_NO.UTF-8
-localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
-localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
-localedef -i zh_CN -f GB18030 zh_CN.GB18030
-localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
-localedef -i zh_TW -f UTF-8 zh_TW.UTF-8
-

- Em adição, instale o locale para seu próprio país, idioma e - conjunto de caracteres. -

-

- Alternativamente, instale todos os locales listados no - arquivo glibc-2.35/localedata/SUPPORTED (inclui - cada locale listado acima e muitos mais) de uma vez com o - seguinte comando consumidor de tempo: -

-
make localedata/install-locales
-

- Então, use o comando localedef para criar e - instalar locales não listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são - necessários para alguns testes posteriormente neste capítulo: -

-
localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
-
-

- Nota -

-

- Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de - tempo de execução. Se essa capacidade for necessária, então - as instruções para instalar libidn2 estão na - página libidn2 de BLFS. -

-
-
-
-

- 8.5.2. Configurando - Glibc -

-
-
-
-
-

- 8.5.2.1. Adicionando - nsswitch.conf -

-
-
-
-

- O arquivo /etc/nsswitch.conf - precisa ser criado, pois os padrões de Glibc não funcionam - bem em um ambiente em rede. -

-

- Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -

-
cat > /etc/nsswitch.conf << "EOF"
-# Begin /etc/nsswitch.conf
-
-passwd: files
-group: files
-shadow: files
-
-hosts: files dns
-networks: files
-
-protocols: files
-services: files
-ethers: files
-rpc: files
-
-# End /etc/nsswitch.conf
-EOF
-
-
-
-
-
-

- 8.5.2.2. Adicionando dados de - fuso horário -

-
-
-
-

- Instale e configure os dados de fuso horário com o - seguinte: -

-
tar -xf ../../tzdata2021e.tar.gz
-
-ZONEINFO=/usr/share/zoneinfo
-mkdir -pv $ZONEINFO/{posix,right}
-
-for tz in etcetera southamerica northamerica europe africa antarctica  \
-          asia australasia backward; do
-    zic -L /dev/null   -d $ZONEINFO       ${tz}
-    zic -L /dev/null   -d $ZONEINFO/posix ${tz}
-    zic -L leapseconds -d $ZONEINFO/right ${tz}
-done
-
-cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
-zic -d $ZONEINFO -p America/New_York
-unset ZONEINFO
-
-

- O significado dos comandos zic: -

-
-
- zic -L - /dev/null ... -
-
-

- Isso cria fusos horários posix sem quaisquer segundos - bissextos. É convencional colocá-los em ambos - zoneinfo e zoneinfo/posix. É necessário - colocar os fusos horários POSIX em zoneinfo, do contrário várias - suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, você - poderia economizar 1,9 MB não usando o diretório - posix, mas alguns - aplicativos ou suítes de teste poderiam produzir - algumas falhas. -

-
-
- zic -L - leapseconds ... -
-
-

- Isso cria fusos horários corretos, incluindo segundos - bissextos. Em um sistema embarcado, onde o espaço é - apertado e você não pretende nunca atualizar os fusos - horários, ou se importa com a hora correta, você - poderia economizar 1,9 MB omitindo o diretório - right. -

-
-
- zic ... - -p ... -
-
-

- Isso cria o arquivo posixrules. Nós usamos New York, - pois POSIX exige que as regras de horário de verão - estejam de acordo com regras dos Estados Unidos da - América do Norte. -

-
-
-
-

- Uma maneira para determinar o fuso horário local é - executando o seguinte script: -

-
tzselect
-

- Depois de responder à umas poucas perguntas sobre a - localização, o script retornará o nome do fuso horário (por - exemplo, America/Edmonton). Existem - também alguns outros possíveis fusos horários listados em - /usr/share/zoneinfo, tais - como Canada/Eastern - ou EST5EDT que não - são identificados pelo script, mas podem ser usados. -

-

- Então crie o arquivo /etc/localtime executando: -

-
ln -sfv /usr/share/zoneinfo/<xxx> /etc/localtime
-

- Substitua <xxx> com o nome do - fuso horário selecionado (por exemplo, Canada/Eastern). -

-
-
-
-
-
-

- 8.5.2.3. Configurando o - Carregador Dinâmico -

-
-
-
-

- Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em - /lib e /usr/lib por bibliotecas dinâmicas que - são necessárias para aplicativos assim que são executados. - Entretanto, se existirem bibliotecas em outros diretórios - diferentes de /lib e - /usr/lib, então esses - precisam ser adicionados ao arquivo /etc/ld.so.conf para a finalidade de que - o carregador dinâmico encontre elas. Dois diretórios que - são comumente conhecidos por conterem bibliotecas - adicionais são /usr/local/lib - e /opt/lib, então adicione - esses diretórios ao caminho de busca do carregador - dinâmico. -

-

- Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -

-
cat > /etc/ld.so.conf << "EOF"
-# Begin /etc/ld.so.conf
-/usr/local/lib
-/opt/lib
-
-EOF
-

- Se desejado, o carregador dinâmico também pode pesquisar um - diretório e incluir o conteúdo de arquivos encontrados lá. - Geralmente os arquivos nesse diretório include são uma - linha especificando o caminho de biblioteca desejado. Para - adicionar essa capacidade, execute os seguintes comandos: -

-
cat >> /etc/ld.so.conf << "EOF"
-# Add an include directory
-include /etc/ld.so.conf.d/*.conf
-
-EOF
-mkdir -pv /etc/ld.so.conf.d
-
-
-
-

- 8.5.3. - Conteúdo de Glibc -

-
-
-
- Aplicativos instalados: - gencat, getconf, getent, iconv, - iconvconfig, ldconfig, ldd, lddlibc4, ld.so (link - simbólico para ld-linux-x86-64.so.2 ou ld-linux.so.2), - locale, localedef, makedb, mtrace, nscd, pcprofiledump, - pldd, sln, sotruss, sprof, tzselect, xtrace, zdump, e - zic -
-
- Bibliotecas instaladas: - ld-linux-x86-64.so.2, - ld-linux.so.2, libBrokenLocale.{a,so}, libanl.{a,so}, - libc.{a,so}, libc_nonshared.a, libc_malloc_debug.so, - libcrypt.{a,so}, libdl.{a,so.2}, libg.a, libm.{a,so}, - libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, - libnss_hesiod.so, libpcprofile.so, libpthread.{a,so.0}, - libresolv.{a,so}, librt.{a,so.1}, libthread_db.so, e - libutil.{a,so.1} -
-
- Diretórios instalados: - /usr/include/arpa, - /usr/include/bits, /usr/include/gnu, /usr/include/net, - /usr/include/netash, /usr/include/netatalk, - /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, - /usr/include/netiucv, /usr/include/netpacket, - /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, - /usr/include/rpc, /usr/include/sys, /usr/lib/audit, - /usr/lib/gconv, /usr/lib/locale, /usr/libexec/getconf, - /usr/share/i18n, /usr/share/zoneinfo, /var/cache/nscd, e - /var/lib/nss_db -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gencat -

-
-

- Gera catálogos de mensagem -

-
-

- getconf -

-
-

- Exibe os valores de configuração de sistema para - variáveis específicas do sistema de arquivos -

-
-

- getent -

-
-

- Obtém entradas a partir de uma base de dados - administrativa -

-
-

- iconv -

-
-

- Realiza conversão de conjuntos de caracteres -

-
-

- iconvconfig -

-
-

- Cria arquivos de configuração de módulos de - carregamento rápido de iconv -

-
-

- ldconfig -

-
-

- Configura as ligações de tempo de execução do - vinculador dinâmico -

-
-

- ldd -

-
-

- Reporta quis bibliotecas compartilhadas são - exigidas por cada dado aplicativo ou biblioteca - compartilhada -

-
-

- lddlibc4 -

-
-

- Auxilia ldd com arquivos - objeto. Isso não existe em arquiteturas mais novas - como x86_64 -

-
-

- locale -

-
-

- Imprime várias informações sobre o locale atual -

-
-

- localedef -

-
-

- Compila especificações de locale -

-
-

- makedb -

-
-

- Cria um banco de dados simples a partir de uma - entrada textual -

-
-

- mtrace -

-
-

- Lê e interpreta um arquivo de rastreamento de - memória e exibe um resumo em formato legível por - humanos -

-
-

- nscd -

-
-

- Um daemon que fornece um cache para as solicitações - de serviço de nomes mais comuns -

-
-

- pcprofiledump -

-
-

- Despeja informação gerada pelos perfis do PC -

-
-

- pldd -

-
-

- Lista objetos dinâmicos compartilhados usados por - processos em execução -

-
-

- sln -

-
-

- Um aplicativo ln vinculado - estaticamente -

-
-

- sotruss -

-
-

- Rastreia chamadas de procedimentos de bibliotecas - compartilhadas de um comando especificado -

-
-

- sprof -

-
-

- Lê e exibe dados de perfil de objetos - compartilhados -

-
-

- tzselect -

-
-

- Pergunta ao usuário sobre a localização do sistema - e reporta a correspondente descrição de fuso - horário -

-
-

- xtrace -

-
-

- Rastreia a execução de um aplicativo exibindo a - função atualmente executada -

-
-

- zdump -

-
-

- O despejador de fuso horário -

-
-

- zic -

-
-

- O compilador de fuso horário -

-
-

- ld-*.so -

-
-

- O aplicativo ajudador para executáveis de - bibliotecas compartilhadas -

-
-

- libBrokenLocale -

-
-

- Usado internamente por Glibc como um hack grosseiro - para executar aplicativos quebrados (por exemplo, - alguns aplicativos Motif). Veja comentários em - glibc-2.35/locale/broken_cur_max.c - para mais informação -

-
-

- libanl -

-
-

- Uma biblioteca assíncrona de pesquisa de nomes -

-
-

- libc -

-
-

- A biblioteca C principal -

-
-

- libc_malloc_debug -

-
-

- Liga verificação de alocação de memória quando - pré-carregada -

-
-

- libcrypt -

-
-

- A biblioteca de criptografia -

-
-

- libdl -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era a biblioteca de interface do - vinculador dinâmico, cujas funções agora estão em - libc -

-
-

- libg -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente era uma biblioteca de tempo de - execução para g++ -

-
-

- libm -

-
-

- A biblioteca matemática -

-
-

- libmvec -

-
-

- A biblioteca de vetor matemático, vinculada - conforme necessária quando libm for usada -

-
-

- libmcheck -

-
-

- Liga verificação de alocação de memória quando - quando vinculada para -

-
-

- libmemusage -

-
-

- Usado por memusage para - ajudar a coletar informação sobre o uso de memória - de um aplicativo -

-
-

- libnsl -

-
-

- A biblioteca de serviços de rede, agora obsoleta -

-
-

- libnss_* -

-
-

- Os módulos de Name Service Switch, contendo funções - para resolução de nomes de hosts, nomes de - usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por - libc conforme a - configuração em /etc/nsswitch.conf -

-
-

- libpcprofile -

-
-

- Pode ser pré-carregada para PC perfilar um - executável -

-
-

- libpthread -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha funções fornecendo a maior - parte das interfaces especificadas pela Extensão - POSIX.1b de Tempo Real, agora as funções estão em - libc -

-
-

- libresolv -

-
-

- Contém funções para criação, envio e interpretação - de pacotes para os servidores de nomes de domínio - de Internet -

-
-

- librt -

-
-

- Contém funções fornecendo a maior parte das - interfaces especificadas pela Extensão POSIX.1b de - Tempo Real -

-
-

- libthread_db -

-
-

- Contém funções úteis para construir depuradores - para aplicativos de múltiplas camadas -

-
-

- libutil -

-
-

- Biblioteca fictícia que não contém funções. - Anteriormente continha código para funções - standard usadas em - muitos utilitários Unix. Essas funções agora estão - em libc -

-
-
-
-
-
-
-
-
-

- 8.6. Zlib-1.2.11 -

-
-
-
-
-

- O pacote Zlib contém rotinas de compressão e descompressão - usadas por alguns aplicativos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,0 MB -
-
-
-
-
-

- 8.6.1. Instalação de Zlib -

-

- Prepare Zlib para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libz.a
-
-
-

- 8.6.2. - Conteúdo de Zlib -

-
-
-
- Bibliotecas instaladas: - libz.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libz -

-
-

- Contém funções de compressão e descompressão usadas - por alguns aplicativos -

-
-
-
-
-
-
-
-
-

- 8.7. Bzip2-1.0.8 -

-
-
-
-
-

- O pacote Bzip2 contém aplicativos para comprimir e - descomprimir arquivos. Comprimir arquivos de texto com - bzip2 gera uma - muito melhor percentagem de compressão que com o tradicional - gzip. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,2 MB -
-
-
-
-
-

- 8.7.1. Instalação de Bzip2 -

-

- Aplique um patch que instalará a documentação para esse - pacote: -

-
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
-

- O seguinte comando garante que a instalação de links - simbólicos sejam relativos: -

-
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
-

- Garanta que as páginas de manual sejam instaladas na - localização correta: -

-
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
-

- Prepare Bzip2 para compilação com: -

-
make -f Makefile-libbz2_so
-make clean
-
-

- O significado do parâmetro de make: -

-
-
- -f - Makefile-libbz2_so -
-
-

- Isso causará Bzip2 ser construído usando um arquivo - Makefile diferente, nesse - caso o arquivo Makefile-libbz2_so, o qual cria uma - biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. -

-
-
-
-

- Compile e teste o pacote: -

-
make
-

- Instale os aplicativos: -

-
make PREFIX=/usr install
-

- Instale a biblioteca compartilhada: -

-
cp -av libbz2.so.* /usr/lib
-ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
-

- Instale o binário compartilhado bzip2 no diretório - /usr/bin, e substitua duas - cópias de bzip2 - com links simbólicos: -

-
cp -v bzip2-shared /usr/bin/bzip2
-for i in /usr/bin/{bzcat,bunzip2}; do
-  ln -sfv bzip2 $i
-done
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libbz2.a
-
-
-

- 8.7.2. - Conteúdo de Bzip2 -

-
-
-
- Aplicativos instalados: - bunzip2 (link para bzip2), bzcat - (link para bzip2), bzcmp (link para bzdiff), bzdiff, - bzegrep (link para bzgrep), bzfgrep (link para bzgrep), - bzgrep, bzip2, bzip2recover, bzless (link para bzmore), e - bzmore -
-
- Bibliotecas instaladas: - libbz2.so -
-
- Diretórios instalados: - /usr/share/doc/bzip2-1.0.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bunzip2 -

-
-

- Descomprime arquivos compactados com bzip -

-
-

- bzcat -

-
-

- Descomprime para a saída padrão -

-
-

- bzcmp -

-
-

- Executa cmp em arquivos - compactados com bzip -

-
-

- bzdiff -

-
-

- Executa diff em arquivos - compactados com bzip -

-
-

- bzegrep -

-
-

- Executa egrep em arquivos - compactados com bzip -

-
-

- bzfgrep -

-
-

- Executa fgrep em arquivos - compactados com bzip -

-
-

- bzgrep -

-
-

- Executa grep em arquivos - compactados com bzip -

-
-

- bzip2 -

-
-

- Comprime arquivos usando o algoritmo de compressão - de texto de classificação de blocos Burrows-Wheeler - com codificação Huffman; a taxa de compressão é - melhor que aquela obtida por compressores mais - convencionais usando algoritmos Lempel-Ziv, como - gzip -

-
-

- bzip2recover -

-
-

- Tenta recuperar dados a partir de arquivos - danificados comprimidos com bzip -

-
-

- bzless -

-
-

- Executa less em arquivos - compactados com bzip -

-
-

- bzmore -

-
-

- Executa more em arquivos - compactados com bzip -

-
-

- libbz2 -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos sem perdas, usando o - algoritmo Burrows-Wheeler -

-
-
-
-
-
-
-
-
-

- 8.8. Xz-5.2.5 -

-
-
-
-
-

- O pacote Xz contém aplicativos para compressão e - descompressão de arquivos. Ele fornece capacidades para os - formatos de compressão lzma e o mais novo xz. Comprimir - arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos - gzip ou - bzip2. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.8.1. Instalação de Xz -

-

- Prepare Xz para compilação com: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/xz-5.2.5
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.8.2. Conteúdo de - Xz -

-
-
-
- Aplicativos instalados: - lzcat (link para xz), lzcmp (link - para xzdiff), lzdiff (link para xzdiff), lzegrep (link - para xzgrep), lzfgrep (link para xzgrep), lzgrep (link - para xzgrep), lzless (link para xzless), lzma (link para - xz), lzmadec, lzmainfo, lzmore (link para xzmore), unlzma - (link para xz), unxz (link para xz), xz, xzcat (link para - xz), xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep - (link para xzgrep), xzfgrep (link para xzgrep), xzgrep, - xzless, e xzmore -
-
- Bibliotecas instaladas: - liblzma.so -
-
- Diretórios instalados: - /usr/include/lzma e - /usr/share/doc/xz-5.2.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- lzcat -

-
-

- Descomprime para a saída padrão -

-
-

- lzcmp -

-
-

- Executa cmp em arquivos - comprimidos LZMA -

-
-

- lzdiff -

-
-

- Executa diff em arquivos - comprimidos LZMA -

-
-

- lzegrep -

-
-

- Executa egrep em arquivos - comprimidos LZMA -

-
-

- lzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos LZMA -

-
-

- lzgrep -

-
-

- Executa grep em arquivos - comprimidos LZMA -

-
-

- lzless -

-
-

- Executa less em arquivos - comprimidos LZMA -

-
-

- lzma -

-
-

- Comprime ou descomprime arquivos usando o formato - LZMA -

-
-

- lzmadec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos LZMA -

-
-

- lzmainfo -

-
-

- Exibe informação armazenada no cabeçalho de arquivo - comprimido com LZMA -

-
-

- lzmore -

-
-

- Executa more em arquivos - comprimidos LZMA -

-
-

- unlzma -

-
-

- Descomprime arquivos usando o formato LZMA -

-
-

- unxz -

-
-

- Descomprime arquivos usando o formato XZ -

-
-

- xz -

-
-

- Comprime ou descomprime arquivos usando o formato - XZ -

-
-

- xzcat -

-
-

- Descomprime para a saída padrão -

-
-

- xzcmp -

-
-

- Executa cmp em arquivos - comprimidos XZ -

-
-

- xzdec -

-
-

- Um decodificador pequeno e rápido para arquivos - comprimidos XZ -

-
-

- xzdiff -

-
-

- Executa diff em arquivos - comprimidos XZ -

-
-

- xzegrep -

-
-

- Executa egrep em arquivos - comprimidos XZ -

-
-

- xzfgrep -

-
-

- Executa fgrep em arquivos - comprimidos XZ -

-
-

- xzgrep -

-
-

- Executa grep em arquivos - comprimidos XZ -

-
-

- xzless -

-
-

- Executa less em arquivos - comprimidos XZ -

-
-

- xzmore -

-
-

- Executa more em arquivos - comprimidos XZ -

-
-

- liblzma -

-
-

- A biblioteca que implementa compressão de dados de - classificação de blocos, sem perdas, usando o - algoritmo de cadeia Lempel-Ziv-Markov -

-
-
-
-
-
-
-
-
-

- 8.9. Zstd-1.5.2 -

-
-
-
-
-

- Zstandard é um algoritmo de tempo real de compressão, - fornecendo taxas altas de compressão. Ele oferece um - intervalo muito amplo de combinações de - compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 55 MB -
-
-
-
-
-

- 8.9.1. Instalação de Zstd -

-

- Compile o pacote: -

-
make
-
-

- Nota -

-

- Na saída de teste existem muitos lugares que indicam - 'failed'. Essas são esperadas e apenas 'FAIL' é uma falha - atual de teste. Não deveriam existir falhas de teste. -

-
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make prefix=/usr install
-

- Remova a biblioteca estática: -

-
rm -v /usr/lib/libzstd.a
-
-
-

- 8.9.2. - Conteúdo de Zstd -

-
-
-
- Aplicativos instalados: - zstd, zstdcat (link para zstd), - zstdgrep, zstdless, zstdmt (link para zstd), e unzstd - (link para zstd) -
-
- Bibliotecas instaladas: - libzstd.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- zstd -

-
-

- Comprime ou descomprime arquivos usando o formato - ZSTD -

-
-

- zstdgrep -

-
-

- Executa grep em arquivos - comprimidos ZSTD -

-
-

- zstdless -

-
-

- Executa less em arquivos - comprimidos ZSTD -

-
-

- libzstd -

-
-

- A biblioteca que implementa compressão de dados sem - perdas, usando o algoritmo ZSTD -

-
-
-
-
-
-
-
-
-

- 8.10. File-5.41 -

-
-
-
-
-

- O pacote File contém um utilitário para determinar o tipo de - um dado arquivo ou arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.10.1. Instalação de File -

-

- Prepare File para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.10.2. - Conteúdo de File -

-
-
-
- Aplicativos instalados: - file -
-
- Bibliotecas instaladas: - libmagic.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- file -

-
-

- Tenta classificar cada arquivo dado; ele faz isso - realizando vários testes—testes de sistema de - arquivos, testes de números mágicos, e testes de - idioma -

-
-

- libmagic -

-
-

- Contém rotinas para reconhecimento de números - mágicos, usado pelo aplicativo file -

-
-
-
-
-
-
-
-
-

- 8.11. Readline-8.1.2 -

-
-
-
-
-

- O pacote Readline é um conjunto de bibliotecas que oferecem - edição de linha de comando e capacidades de histórico. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.11.1. Instalação de Readline -

-

- Reinstalar Readline causará as bibliotecas antigas serem - movidas para <libraryname>.old. Mesmo que isso - normalmente não seja um problema, em alguns casos isso pode - deflagrar um defeito de vinculação em ldconfig. Isso pode ser - evitado executando os seguintes dois seds: -

-
sed -i '/MV.*old/d' Makefile.in
-sed -i '/{OLDSUFF}/c:' support/shlib-install
-

- Prepare Readline para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --with-curses    \
-            --docdir=/usr/share/doc/readline-8.1.2
-
-

- O significado da opção de configure: -

-
-
- --with-curses -
-
-

- Essa opção diz a Readline que ela pode encontrar as - funções de biblioteca de termcap na biblioteca curses, - em vez de uma biblioteca termcap separada. Ela permite - a geração de um arquivo readline.pc correto. -

-
-
-
-

- Compile o pacote: -

-
make SHLIB_LIBS="-lncursesw"
-
-

- O significado da opção de make: -

-
-
- SHLIB_LIBS="-lncursesw" -
-
-

- Essa opção força Readline a vincular com a biblioteca - libncursesw. -

-
-
-
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make SHLIB_LIBS="-lncursesw" install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2
-
-
-

- 8.11.2. Conteúdo de Readline -

-
-
-
- Bibliotecas instaladas: - libhistory.so e - libreadline.so -
-
- Diretórios instalados: - /usr/include/readline e - /usr/share/doc/readline-8.1.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libhistory -

-
-

- Fornece uma consistente interface de usuária(o) - para recordar linhas de histórico -

-
-

- libreadline -

-
-

- Fornece um conjunto de comandos para manipular - texto digitado em uma sessão interativa de um - aplicativo -

-
-
-
-
-
-
-
-
-

- 8.12. M4-1.4.19 -

-
-
-
-
-

- O pacote M4 contém um processador de macro. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.12.1. Instalação de M4 -

-

- Prepare M4 para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.12.2. Conteúdo - de M4 -

-
-
-
- Aplicativo instalado: - m4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- m4 -

-
-

- Copia os arquivos dados enquanto expande as macros - que eles contém. Essas macros são ou nativas ou - definidas pela(o) usuária(o) e podem receber - qualquer número de argumentos. Além de executar - expansão de macro, m4 tem funções - nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, - manipular texto, recursão, etc. O aplicativo - m4 - pode ser usado ou como um front-end para um - compilador ou como um processador de macro - independente -

-
-
-
-
-
-
-
-
-

- 8.13. Bc-5.2.2 -

-
-
-
-
-

- O pacote Bc contém uma linguagem de processamento numérica de - precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 7,1 MB -
-
-
-
-
-

- 8.13.1. Instalação de Bc -

-

- Prepare Bc para compilação: -

-
CC=gcc ./configure --prefix=/usr -G -O3
-
-

- O significado das opções de configure: -

-
-
- CC=gcc -
-
-

- Esse parâmetro especifica o compilador a usar. -

-
-
- -O3 -
-
-

- Especifica a optimização a usar. -

-
-
- -G -
-
-

- Omite partes da suíte de teste que não funcionariam sem - um GNU bc presente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar bc, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.13.2. Conteúdo - de Bc -

-
-
-
- Aplicativos instalados: - bc e dc -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- bc -

-
-

- Uma calculadora de linha de comando -

-
-

- dc -

-
-

- Uma calculadora de linha de comando de entrada - polonesa - reversa -

-
-
-
-
-
-
-
-
-

- 8.14. Flex-2.6.4 -

-
-
-
-
-

- O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 32 MB -
-
-
-
-
-

- 8.14.1. Instalação de Flex -

-

- Prepare Flex para compilação: -

-
./configure --prefix=/usr \
-            --docdir=/usr/share/doc/flex-2.6.4 \
-            --disable-static
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 0,5 UPC), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Uns poucos aplicativos não sabem acerca de flex ainda e tentam - executar seu predecessor, lex. Para suportar esses - aplicativos, crie um link simbólico chamado lex que executa flex em modo de emulação lex: -

-
ln -sv flex /usr/bin/lex
-
-
-

- 8.14.2. - Conteúdo de Flex -

-
-
-
- Aplicativos instalados: - flex, flex++ (link para flex), e - lex (link para flex) -
-
- Bibliotecas instaladas: - libfl.so -
-
- Diretórios instalados: - /usr/share/doc/flex-2.6.4 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- flex -

-
-

- Uma ferramenta para gerar aplicativos que - reconhecem padrões em texto; ele permite, para a - versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver - um aplicativo especializado -

-
-

- flex++ -

-
-

- Uma extensão de flex, é usada para gerar código e - classes C++. É um link simbólico para flex -

-
-

- lex -

-
-

- Um link simbólico que executa flex em modo de - emulação lex -

-
-

- libfl -

-
-

- A biblioteca flex -

-
-
-
-
-
-
-
-
-

- 8.15. Tcl-8.6.12 -

-
-
-
-
-

- O pacote Tcl contém a Tool - Command Language, uma linguagem de script robusta de - propósito geral. O pacote Expect é escrito na linguagem - Tcl. -

-
-
-
- Tempo aproximado de - construção: 3,4 UPC -
-
- Espaço em disco - exigido: 87 MB -
-
-
-
-
-

- 8.15.1. Instalação de Tcl -

-

- Esse pacote e os próximos dois (Expect e DejaGNU) são - instalados para suportar a execução das suítes de teste para - binutils e GCC e outros pacotes. Instalar três pacotes para - propósitos de teste talvez pareça excessivo, mas é muito - assegurador, se não essencial, saber que as ferramentas mais - importantes estão funcionando adequadamente. -

-

- Primeiro, desempacote a documentação executando o seguinte - comando: -

-
tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1
-

- Prepare Tcl para compilação: -

-
SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)
-
-

- O significado das opções de configure: -

-
-
- $([ - "$(uname -m)" = x86_64 ] && echo - --enable-64bit) -
-
-

- A construção $(<shell - command>) é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada - em uma máquina de 32 bits, e é --enable-64bit se - executada em uma máquina de 64 bits. -

-
-
-
-

- Construa o pacote: -

-
make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
-    -e "s|$SRCDIR|/usr/include|"  \
-    -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \
-    -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|"            \
-    -i pkgs/tdbc1.1.3/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|"            \
-    -i pkgs/itcl4.2.2/itclConfig.sh
-
-unset SRCDIR
-

- As várias instruções sed após o comando make - removem referências ao diretório de construção dos arquivos - de configuração e as substituem com o diretório de - instalação. Isso não é obrigatório para o restante de LFS, - porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. -

-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-

- Torne as bibliotecas instaladas graváveis de modo que - símbolos de depuração possam ser removidos posteriormente: -

-
chmod -v u+w /usr/lib/libtcl8.6.so
-

- Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige - elas. -

-
make install-private-headers
-

- Agora faça um necessário link simbólico: -

-
ln -sfv tclsh8.6 /usr/bin/tclsh
-

- Renomeie uma página de manual que conflita com uma página de - manual de Perl: -

-
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
-

- Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -

-
mkdir -v -p /usr/share/doc/tcl-8.6.12
-cp -v -r  ../html/* /usr/share/doc/tcl-8.6.12
-
-
-

- 8.15.2. Conteúdo - de Tcl -

-
-
-
- Aplicativos instalados: - tclsh (link to tclsh8.6) e - tclsh8.6 -
-
- Bibliotecas instaladas: - libtcl8.6.so e - libtclstub8.6.a -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- tclsh8.6 -

-
-

- O shell de comando de Tcl -

-
-

- tclsh -

-
-

- Um link para tclsh8.6 -

-
-

- libtcl8.6.so -

-
-

- A biblioteca Tcl -

-
-

- libtclstub8.6.a -

-
-

- A biblioteca Stub de Tcl -

-
-
-
-
-
-
-
-
-

- 8.16. Expect-5.45.4 -

-
-
-
-
-

- O pacote Expect contém - ferramentas para automatizar, via diálogos com script, - aplicativos interativos tais como telnet, ftp, passwd, fsck, rlogin, e tip. Expect também é útil para testar esses - mesmos aplicativos bem como facilitar todos os tipos de - tarefas que são proibitivamente difíceis com qualquer outra - coisa. A estrutura subjacente de DejaGnu é escrita em Expect. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 3,9 MB -
-
-
-
-
-

- 8.16.1. Instalação de Expect -

-

- Prepare Expect para compilação: -

-
./configure --prefix=/usr           \
-            --with-tcl=/usr/lib     \
-            --enable-shared         \
-            --mandir=/usr/share/man \
-            --with-tclinclude=/usr/include
-
-

- O significado das opções de configure: -

-
-
- --with-tcl=/usr/lib -
-
-

- Esse parâmetro é necessário para dizer a configure onde o - script tclConfig.sh está - localizado. -

-
-
- --with-tclinclude=/usr/include -
-
-

- Isso explicitamente diz a Expect onde encontrar os - cabeçalhos internos de Tcl. -

-
-
-
-

- Construa o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
-
-
-

- 8.16.2. - Conteúdo de Expect -

-
-
-
- Aplicativo instalado: - expect -
-
- Biblioteca instalada: - libexpect5.45.4.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- expect -

-
-

- Comunica-se com outros aplicativos interativos de - acordo com um script -

-
-

- libexpect-5.45.4.so -

-
-

- Contém funções que permitem a Expect ser usado como - uma extensão Tcl ou ser usado diretamente a partir - de C ou C++ (sem Tcl) -

-
-
-
-
-
-
-
-
-

- 8.17. DejaGNU-1.6.3 -

-
-
-
-
-

- O pacote DejaGnu contém uma - estrutura subjacente para executar suítes de teste em - ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command - Language). -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,9 MB -
-
-
-
-
-

- 8.17.1. Instalação de DejaGNU -

-

- A(O) desenvolvedora(r) recomenda construir DejaGNU em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare DejaGNU para compilação: -

-
../configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
-makeinfo --plaintext       -o doc/dejagnu.txt  ../doc/dejagnu.texi
-

- Construa e instale o pacote: -

-
make install
-install -v -dm755  /usr/share/doc/dejagnu-1.6.3
-install -v -m644   doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3
-

- Para testar os resultados, execute: -

-
make check
-
-
-

- 8.17.2. - Conteúdo de DejaGNU -

-
-
-
- Aplicativos instalados: - dejagnu e runtest -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- dejagnu -

-
-

- Iniciador de comando auxiliar DejaGNU -

-
-

- runtest -

-
-

- Um script encapsulador que localiza o shell - expect adequado - e, em seguida, executa o DejaGNU -

-
-
-
-
-
-
-
-
-

- 8.18. Binutils-2.38 -

-
-
-
-
-

- O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. -

-
-
-
- Tempo aproximado de - construção: 6,1 UPC -
-
- Espaço em disco - exigido: 4,6 GB -
-
-
-
-
-

- 8.18.1. Instalação de Binutils -

-

- Verifique se os Pseudo Terminais (PTYs) estão funcionando - adequadamente dentro do ambiente chroot executando um teste - simples: -

-
expect -c "spawn ls"
-

- Esse comando deveria retornar o seguinte: -

-
spawn ls
-

- Se, ao invés, a saída incluir a mensagem abaixo, então o - ambiente não está configurado para operação adequada de PTY. - Esse problema precisa ser resolvido antes de executar as - suítes de teste para Binutils e GCC: -

-
The system has no more ptys.
-Ask your system administrator to create more.
-

- A(O) desenvolvedora(r) fez um conjunto curto de comandos para - fixar um problema quando do uso de binutils para construir - alguns pacotes BLFS com Link Time Optimization (LTO) - habilitado. Aplique ele agora: -

-
patch -Np1 -i ../binutils-2.38-lto_fix-1.patch
-

- Agora, faça um conserto identificado pela(o) - desenvolvedora(r) que afeta a construção alguns pacotes: -

-
sed -e '/R_386_TLS_LE /i \   || (TYPE) == R_386_TLS_IE \\' \
-    -i ./bfd/elfxx-x86.h
-

- A documentação de Binutils recomenda construir Binutils em um - diretório dedicado à construção: -

-
mkdir -v build
-cd       build
-

- Prepare Binutils para compilação: -

-
../configure --prefix=/usr       \
-             --enable-gold       \
-             --enable-ld=default \
-             --enable-plugins    \
-             --enable-shared     \
-             --disable-werror    \
-             --enable-64-bit-bfd \
-             --with-system-zlib
-
-

- O significado dos parâmetros de configure: -

-
-
- --enable-gold -
-
-

- Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). -

-
-
- --enable-ld=default -
-
-

- Constrói o vinculador bfd original e instala ele como - ambos ld (o vinculador padrão) e ld.bfd. -

-
-
- --enable-plugins -
-
-

- Habilita suporte de plugin para o vinculador. -

-
-
- --enable-64-bit-bfd -
-
-

- Habilita suporte de 64 bits (em anfitriões com tamanhos - de palavra mais estreitos). Talvez não seja necessário - em sistemas de 64 bits, porém não causa dano. -

-
-
- --with-system-zlib -
-
-

- Usa a biblioteca zlib instalada em vez de construir a - versão incluída. -

-
-
-
-

- Compile o pacote: -

-
make tooldir=/usr
-
-

- O significado do parâmetro de make: -

-
-
- tooldir=/usr -
-
-

- Normalmente, o tooldir (o diretório onde os executáveis - estarão ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por - exemplo, máquinas x86_64 expandiriam isso para - /usr/x86_64-pc-linux-gnu. - Por causa que este é um sistema personalizado, esse - diretório alvo específico em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar - cruzadamente (por exemplo, compilar um pacote em uma - máquina Intel que gera código que pode ser executado em - máquinas PowerPC). -

-
-
-
-
-

- Importante -

-

- A suíte de teste para Binutils nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make -k check
-

- Instale o pacote: -

-
make tooldir=/usr install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a
-
-
-

- 8.18.2. Conteúdo de Binutils -

-
-
-
- Aplicativos instalados: - addr2line, ar, as, c++filt, dwp, - elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, - objdump, ranlib, readelf, size, strings, e strip -
-
- Bibliotecas instaladas: - libbfd.so, libctf.so, - libctf-nobfd.so, e libopcodes.so -
-
- Diretório instalado: - /usr/lib/ldscripts -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addr2line -

-
-

- Traduz endereços de aplicativos para nomes de - arquivo e números de linha; dado um endereço e o - nome de um executável, ele usa a informação de - depuração no executável para determinar qual - arquivo fonte e número de linha estão associados ao - endereço -

-
-

- ar -

-
-

- Cria, modifica e extrai a partir de arquivamentos -

-
-

- as -

-
-

- Um montador que monta a saída de gcc para dentro - de arquivos objeto -

-
-

- c++filt -

-
-

- Usado pelo vinculador para desmembrar símbolos C++ - e Java e para impedir que funções sobrecarregadas - entrem em conflito -

-
-

- dwp -

-
-

- O utilitário de empacotamento DWARF -

-
-

- elfedit -

-
-

- Atualiza o cabeçalho ELF de arquivos ELF -

-
-

- gprof -

-
-

- Exibe dados do perfil de gráfico de chamada -

-
-

- ld -

-
-

- Um vinculador que combina um número de objetos e - arquivos de arquivamento em um arquivo, realocando - seus dados e vinculando referências de símbolos -

-
-

- ld.gold -

-
-

- Uma versão reduzida de ld que suporta apenas o - formato de arquivo de objeto elf -

-
-

- ld.bfd -

-
-

- Hard link para ld -

-
-

- nm -

-
-

- Lista os símbolos que ocorrem em um dado arquivo de - objeto -

-
-

- objcopy -

-
-

- Traduz um tipo de arquivo de objeto em outro -

-
-

- objdump -

-
-

- Exibe informação sobre o dado arquivo de objeto, - com opções controlando a informação particular a - ser exibida; a informação mostrada é útil para - programadores que estão trabalhando nas ferramentas - de compilação -

-
-

- ranlib -

-
-

- Gera um índice do conteúdo de um arquivamento e o - armazena no arquivamento; o índice lista todos os - símbolos definidos pelos membros do arquivamento - que são arquivos de objeto realocáveis -

-
-

- readelf -

-
-

- Exibe informação sobre binários de tipo ELF -

-
-

- size -

-
-

- Lista os tamanhos de seção e o tamanho total para - os arquivos de objeto dados -

-
-

- strings -

-
-

- Exibe, para cada arquivo dado, as sequências de - caracteres imprimíveis que são de, no mínimo, o - tamanho especificado (padronizado para quatro); - para arquivos de objeto, ele imprime, por padrão, - apenas as sequências de caracteres a partir das - seções de inicialização e carregamento enquanto que - para outros tipos de arquivos, ele escaneia o - arquivo inteiro -

-
-

- strip -

-
-

- Descarta símbolos de arquivos de objeto -

-
-

- libbfd -

-
-

- A biblioteca de Descritor de Arquivo Binário -

-
-

- libctf -

-
-

- A biblioteca de suporte de depuração Compat ANSI-C - Type Format -

-
-

- libctf-nobfd -

-
-

- Uma variante de libctf que não usa funcionalidade - de libbfd -

-
-

- libopcodes -

-
-

- Uma biblioteca para lidar com opcodes—as - versões de texto legível de - instruções para o processador; é usado para - construir utilitários como objdump -

-
-
-
-
-
-
-
-
-

- 8.19. GMP-6.2.1 -

-
-
-
-
-

- O pacote GMP contém bibliotecas matemáticas. Essas tem - funções úteis para aritmética de precisão arbitrária. -

-
-
-
- Tempo aproximado de - construção: 1,0 UPC -
-
- Espaço em disco - exigido: 52 MB -
-
-
-
-
-

- 8.19.1. Instalação de GMP -

-
-

- Nota -

-

- Se você estiver construindo para x86 de 32 bits, mas tem - uma CPU capaz de executar código de 64 bits e você especificou CFLAGS no ambiente, então o script configure - tentará configurar para 64 bits e falhará. Impeça isso - invocando o comando de configure abaixo com -

-
ABI=32 ./configure ...
-
-
-

- Nota -

-

- As configurações padrão de GMP produzem bibliotecas - otimizadas para o processador anfitrião. Se bibliotecas - adequadas para processadores menos capazes que a CPU do - anfitrião forem desejadas, então bibliotecas genéricas - podem ser criadas executando o seguinte: -

-
cp -v configfsf.guess config.guess
-cp -v configfsf.sub   config.sub
-
-

- Prepare GMP para compilação: -

-
./configure --prefix=/usr    \
-            --enable-cxx     \
-            --disable-static \
-            --docdir=/usr/share/doc/gmp-6.2.1
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-cxx -
-
-

- Esse parâmetro habilita suporte a C++ -

-
-
- --docdir=/usr/share/doc/gmp-6.2.1 -
-
-

- Essa variável especifica o lugar correto para a - documentação. -

-
-
-
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para GMP nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados: -

-
make check 2>&1 | tee gmp-check-log
-
-

- Cuidado -

-

- O código em gmp é altamente otimizado para o processador - onde ele é construído. Ocasionalmente, o código que detecta - o processador identifica errado as capacidades de sistema e - existirão erros nos testes ou outros aplicativos que usam - as bibliotecas de gmp com a mensagem "Illegal instruction". - Nesse caso, gmp deveria ser reconfigurado com a opção - --build=x86_64-pc-linux-gnu e reconstruído. -

-
-

- Certifique-se de que todos os 197 testes na suíte de teste - passaram. Verifique os resultados executando o seguinte - comando: -

-
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.19.2. Conteúdo - de GMP -

-
-
-
- Bibliotecas instaladas: - libgmp.so e libgmpxx.so -
-
- Diretório instalado: - /usr/share/doc/gmp-6.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- libgmp -

-
-

- Contém funções matemáticas de precisão -

-
-

- libgmpxx -

-
-

- Contém funções matemáticas de precisão C++ -

-
-
-
-
-
-
-
-
-

- 8.20. MPFR-4.1.0 -

-
-
-
-
-

- O pacote MPFR contém funções para matemática de precisão - múltipla. -

-
-
-
- Tempo aproximado de - construção: 0,8 UPC -
-
- Espaço em disco - exigido: 38 MB -
-
-
-
-
-

- 8.20.1. Instalação de MPFR -

-

- Prepare MPFR para compilação: -

-
./configure --prefix=/usr        \
-            --disable-static     \
-            --enable-thread-safe \
-            --docdir=/usr/share/doc/mpfr-4.1.0
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-
-

- Importante -

-

- A suíte de teste para MPFR nesta seção é considerada - crítica. Não pule sob quaisquer circunstâncias. -

-
-

- Teste os resultados e certifique-se de que todos os testes - passaram: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.20.2. - Conteúdo de MPFR -

-
-
-
- Biblioteca instalada: - libmpfr.so -
-
- Diretório instalado: - /usr/share/doc/mpfr-4.1.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpfr -

-
-

- Contém funções matemáticas de precisão múltipla -

-
-
-
-
-
-
-
-
-

- 8.21. MPC-1.2.1 -

-
-
-
-
-

- O pacote MPC contém uma biblioteca para a aritmética de - números complexos com precisão arbitrariamente alta e - arredondamento correto de resultado. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 21 MB -
-
-
-
-
-

- 8.21.1. Instalação de MPC -

-

- Prepare MPC para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/mpc-1.2.1
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote e a documentação dele: -

-
make install
-make install-html
-
-
-

- 8.21.2. Conteúdo - de MPC -

-
-
-
- Biblioteca instalada: - libmpc.so -
-
- Diretório instalado: - /usr/share/doc/mpc-1.2.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libmpc -

-
-

- Contém funções matemáticas complexas -

-
-
-
-
-
-
-
-
-

- 8.22. Attr-2.5.1 -

-
-
-
-
-

- O pacote attr contém utilitários para administrar os - atributos estendidos sobre objetos de sistema de arquivos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,1 MB -
-
-
-
-
-

- 8.22.1. Instalação de Attr -

-

- Prepare Attr para compilação: -

-
./configure --prefix=/usr     \
-            --disable-static  \
-            --sysconfdir=/etc \
-            --docdir=/usr/share/doc/attr-2.5.1
-

- Compile o pacote: -

-
make
-

- Os testes precisam ser executados sobre um sistema de - arquivos que suporte atributos estendidos, tais como os - sistemas de arquivos ext2, ext3 ou ext4. Para testar os - resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.22.2. - Conteúdo de Attr -

-
-
-
- Aplicativos instalados: - attr, getfattr, e setfattr -
-
- Biblioteca instalada: - libattr.so -
-
- Diretórios instalados: - /usr/include/attr e - /usr/share/doc/attr-2.5.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- attr -

-
-

- Estende atributos sobre objetos de sistemas de - arquivos -

-
-

- getfattr -

-
-

- Obtém os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- setfattr -

-
-

- Configura os atributos estendidos de objetos de - sistemas de arquivos -

-
-

- libattr -

-
-

- Contém as funções de biblioteca para manipular - atributos estendidos -

-
-
-
-
-
-
-
-
-

- 8.23. Acl-2.3.1 -

-
-
-
-
-

- O pacote Acl contém utilitários para administrar Listas de - Controle de Acesso, as quais são usadas para definir direitos - de acesso discricionários mais refinados para arquivos e - diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 6,1 MB -
-
-
-
-
-

- 8.23.1. Instalação de Acl -

-

- Prepare Acl para compilação: -

-
./configure --prefix=/usr         \
-            --disable-static      \
-            --docdir=/usr/share/doc/acl-2.3.1
-

- Compile o pacote: -

-
make
-

- Os testes de Acl precisam ser executados sobre um sistema de - arquivos que suporte controles de acesso, após Coreutils ter sido construído com as - bibliotecas de Acl. Se desejado, retorne a esse pacote e - execute make - check após Coreutils ter sido construído - posteriormente neste capítulo. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.23.2. Conteúdo - de Acl -

-
-
-
- Aplicativos instalados: - chacl, getfacl, e setfacl -
-
- Biblioteca instalada: - libacl.so -
-
- Diretórios instalados: - /usr/include/acl e - /usr/share/doc/acl-2.3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- chacl -

-
-

- Muda a lista de controle de acesso de um arquivo ou - diretório -

-
-

- getfacl -

-
-

- Obtém listas de controle de acesso de arquivo -

-
-

- setfacl -

-
-

- Configura listas de controle de acesso de arquivo -

-
-

- libacl -

-
-

- Contém as funções de biblioteca para manipular - Listas de Controle de Acesso -

-
-
-
-
-
-
-
-
-

- 8.24. Libcap-2.63 -

-
-
-
-
-

- O pacote Libcap implementa as interfaces de espaço de - usuária(o) para as capacidades POSIX 1003.1e disponíveis em - kernels Linux. Essas capacidades são um particionamento de - todo o poderoso privilégio de root em um conjunto de - privilégios distintos. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,7 MB -
-
-
-
-
-

- 8.24.1. Instalação de Libcap -

-

- Impeça bibliotecas estáticas de serem instaladas: -

-
sed -i '/install -m.*STA/d' libcap/Makefile
-

- Compile o pacote: -

-
make prefix=/usr lib=lib
-
-

- O significado da opção de make: -

-
-
- lib=lib -
-
-

- Esse parâmetro configura o diretório de biblioteca para - /usr/lib em vez de - /usr/lib64 em x86_64. Ele - não tem efeito em x86. -

-
-
-
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make prefix=/usr lib=lib install
-
-
-

- 8.24.2. - Conteúdo de Libcap -

-
-
-
- Aplicativos instalados: - capsh, getcap, getpcaps, e - setcap -
-
- Bibliotecas instaladas: - libcap.so e libpsx.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- capsh -

-
-

- Um encapsulador de shell para explorar e restringir - suporte de capacidade -

-
-

- getcap -

-
-

- Examina capacidades de arquivo -

-
-

- getpcaps -

-
-

- Exibe as capacidades sobre o(s) processo(s) - consultado(s) -

-
-

- setcap -

-
-

- Configura capacidades de arquivo -

-
-

- libcap -

-
-

- Contém as funções de biblioteca para manipular - capacidades POSIX 1003.1e -

-
-

- libpsx -

-
-

- Contém funções para suportar semântica POSIX para - chamadas de sistema associadas com a biblioteca - pthread -

-
-
-
-
-
-
-
-
-

- 8.25. Shadow-4.11.1 -

-
-
-
-
-

- O pacote Shadow contém aplicativos para manipular senhas de - uma maneira segura. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 49 MB -
-
-
-
-
-

- 8.25.1. Instalação de Shadow -

-
-

- Nota -

-

- Se você gostaria de reforçar o uso de senhas fortes, então - recorra a - https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html - para instalar CrackLib antes de construir Shadow. Então - adicione --with-libcrack ao comando - configure - abaixo. -

-
-

- Desabilite a instalação do aplicativo groups e suas páginas de - manual, uma vez que Coreutils fornece uma versão melhor. - Também, impeça a instalação de páginas de manual que já foram - instaladas em Seção 8.3, - “Man-pages-5.13”: -

-
sed -i 's/groups$(EXEEXT) //' src/Makefile.in
-find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
-find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
-find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;
-

- Em vez de usar o método padrão - crypt, use o método - mais seguro SHA-512 de - encriptação de senha, o qual também permite senhas maiores - que oito (08) caracteres. É também necessário mudar a - localização obsoleta /var/spool/mail para caixas de correio de - usuária(o) que Shadow usa por padrão pela localização - /var/mail usada atualmente. E, - livre-se de /bin e /sbin a partir de PATH, uma vez que eles são simples links - simbólicos para seus homônimos em /usr. -

-
-

- Nota -

-

- Se /bin e (ou) /sbin forem preferidos para serem - deixados em PATH por alguma - razão, então modifique PATH em - .bashrc após LFS ser - construído. -

-
-
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-    -e 's:/var/spool/mail:/var/mail:'                 \
-    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \
-    -i etc/login.defs
-
-

- Nota -

-

- Se você escolher construir Shadow com suporte CrackLib, - então execute o seguinte: -

-
sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs
-
-

- Prepare Shadow para compilação: -

-
touch /usr/bin/passwd
-./configure --sysconfdir=/etc \
-            --disable-static  \
-            --with-group-name-max-length=32
-
-

- O significado da opção de configure: -

-
-
- touch - /usr/bin/passwd -
-
-

- O arquivo /usr/bin/passwd - precisa existir, pois a localização dele é codificada - rigidamente em alguns aplicativos, e se ele não - existir, então a localização padrão não é correta. -

-
-
- --with-group-name-max-length=32 -
-
-

- O nome de usuária(o) máximo é trinta e dois (32) - caracteres. Torne o nome de grupo máximo o mesmo. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make exec_prefix=/usr install
-make -C man install-man
-
-
-

- 8.25.2. - Configurando Shadow -

-

- Esse pacote contém utilitários para adicionar, modificar, e - deletar usuárias(os) e grupos; configura e modifica suas - senhas; e realiza outras tarefas administrativas. Para uma - explanação completa do que password shadowing significa, veja - o arquivo doc/HOWTO dentro da - árvore desempacotada de fonte. Se usar suporte Shadow, então - tenha na mente que aplicativos que necessitem verificar - senhas (gerenciadores de tela, aplicativos de FTP, daemons - pop3, etc.) precisam ser conformes com Shadow. Isto é, eles - precisam ser capazes de trabalhar com senhas ocultas. -

-

- Para habilitar senhas ocultas, execute o seguinte comando: -

-
pwconv
-

- Para habilitar senhas ocultas de grupo, execute: -

-
grpconv
-

- A configuração padrão de Shadow para o utilitário - useradd tem - umas poucas ressalvas que precisam de alguma explanação. - Primeiro, a ação padrão para o utilitário useradd é a de criar a(o) - usuária(o) e um grupo de mesmo nome que a(o) usuária(o). Por - padrão os números de ID de usuária(o) (UID) e ID de grupo - (GID) iniciarão com 1000. Isso significa que se você não - passar parâmetros para useradd, então cada - usuária(o) será uma(m) membro de um grupo único no sistema. - Se esse comportamento for indesejável, então você precisará - passar um parâmetro de -g ou -N para useradd ou mudar a - configuração de USERGROUPS_ENAB em /etc/login.defs. Veja-se useradd(8) para mais informação. -

-

- Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa - ser criado e adaptado para atender às suas necessidades - particulares. Crie ele com: -

-
mkdir -p /etc/default
-useradd -D --gid 999
-
-

- Explanações de Parâmetro de /etc/default/useradd -

-
-
- GROUP=999 -
-
-

- Esse parâmetro configura o início dos números de grupo - usado no arquivo /etc/group. O valor particular 999 - vem do parâmetro --gid acima. Você pode - modificá-lo para qualquer coisa que deseje. Note que - useradd - nunca reusará um UID ou GID. Se o número identificado - nesse parâmetro for usado, então ele usará o próximo - número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na - primeira vez que você usar useradd sem o - parâmetro -g, - então você receberá uma mensagem exibida no terminal - que diz: useradd: unknown - GID 999, apesar de a conta estar criada - corretamente. Esse é o motivo pelo qual nós criamos o - grupo users com esse ID - de grupo em Seção 7.6, - “Criando Arquivos Essenciais e Links - Simbólicos”. -

-
-
- CREATE_MAIL_SPOOL=yes -
-
-

- Esse parâmetro faz com que useradd crie um - arquivo de caixa de correio para a(o) usuária(o) recém - criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo - mail com permissões - 0660. Se você preferisse que esses arquivos de caixa de - correio não fossem criados por useradd, então - execute o seguinte comando: -

-
sed -i '/MAIL/s/yes/no/' /etc/default/useradd
-
-
-
-
-
-

- 8.25.3. Configurando a senha de root -

-

- Escolha uma senha para a(o) usuária(o) root e configure ela executando: -

-
passwd root
-
-
-

- 8.25.4. - Conteúdo de Shadow -

-
-
-
- Aplicativos instalados: - chage, chfn, chgpasswd, chpasswd, - chsh, expiry, faillog, getsubids, gpasswd, groupadd, - groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, - lastlog, login, logoutd, newgidmap, newgrp, newuidmap, - newusers, nologin, passwd, pwck, pwconv, pwunconv, sg - (link para newgrp), su, useradd, userdel, usermod, vigr - (link para vipw), e vipw -
-
- Biblioteca instalada: - libsubid.so -
-
- Diretório instalado: - /etc/default -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chage -

-
-

- Usado para alterar o número de dias máximo entre - mudanças obrigatórias de senha -

-
-

- chfn -

-
-

- Usado para alterar um nome completo da(o) - usuária(o) e outra informação -

-
-

- chgpasswd -

-
-

- Usado para atualizar senhas de grupo em modo de - lote -

-
-

- chpasswd -

-
-

- Usado para atualizar senhas de usuárias(os) em modo - de lote -

-
-

- chsh -

-
-

- Usado para alterar um shell de login padrão da(o) - usuária(o) -

-
-

- expiry -

-
-

- Verifica e reforça a política atual de expiração de - senha -

-
-

- faillog -

-
-

- É Usado para examinar o registro de falhas de - login, configurar um número máximo de falhas antes - que uma conta seja bloqueada, ou zerar a contagem - de falhas -

-
-

- getsubids -

-
-

- É usado para listar os intervalos subordinados de - id para uma(m) usuária(o) -

-
-

- gpasswd -

-
-

- É usado para adicionar e deletar membros e - administradoras(es) para grupos -

-
-

- groupadd -

-
-

- Cria um grupo com o nome dado -

-
-

- groupdel -

-
-

- Deleta o grupo com o nome dado -

-
-

- groupmems -

-
-

- Permite que uma(m) usuária(o) administre sua - própria lista de membros de grupo sem a exigência - de privilégios de superusuária(o) -

-
-

- groupmod -

-
-

- É usado para modificar o nome ou GID do grupo dado -

-
-

- grpck -

-
-

- Verifica a integridade dos arquivos de grupo - /etc/group e - /etc/gshadow -

-
-

- grpconv -

-
-

- Cria ou atualiza o arquivo de grupo de sombra a - partir do arquivo de grupo normal -

-
-

- grpunconv -

-
-

- Atualiza /etc/group a - partir de /etc/gshadow e então deleta o - último -

-
-

- lastlog -

-
-

- Reporta o login mais recente de todas(os) as(os) - usuárias(os) ou de uma(m) usuária(o) dada(o) -

-
-

- login -

-
-

- É usado pelo sistema para permitir usuárias(os) - logar -

-
-

- logoutd -

-
-

- É um daemon usado para reforçar restrições sobre - horário de logon e portas -

-
-

- newgidmap -

-
-

- É usado para configurar o mapeamento gid de um - espaço de nome de usuária(o) -

-
-

- newgrp -

-
-

- É usado para modificar o GID atual durante uma - sessão de login -

-
-

- newuidmap -

-
-

- É usado para configurar o mapeamento uid de um - espaço de nome de usuária(o) -

-
-

- newusers -

-
-

- É usado para criar ou atualizar uma série inteira - de contas de usuárias(os) -

-
-

- nologin -

-
-

- Exibe uma mensagem que uma conta não está - disponível; projetado para ser usado como o shell - padrão para contas que foram desabilitadas -

-
-

- passwd -

-
-

- É usado para modificar a senha para uma conta de - usuária(o) ou grupo -

-
-

- pwck -

-
-

- Verifica a integridade dos arquivos de senha - /etc/passwd e - /etc/shadow -

-
-

- pwconv -

-
-

- Cria ou atualiza o arquivo de senha de sombra a - partir do arquivo de senha normal -

-
-

- pwunconv -

-
-

- Atualiza /etc/passwd - a partir de /etc/shadow e então deleta o - último -

-
-

- sg -

-
-

- Executa um comando dado enquanto o GID da(o) - usuária(o) está configurado para aquele do grupo - dado -

-
-

- su -

-
-

- Executa um shell com IDs de usuária(o) e grupo - substitutos -

-
-

- useradd -

-
-

- Cria uma(m) usuária(o) nova(o) com o nome dado, ou - atualiza a informação padrão de nova(o) usuária(o) -

-
-

- userdel -

-
-

- Deleta a conta de usuária(o) dada -

-
-

- usermod -

-
-

- É usado para modificar o nome de login da(o) - usuária(o) dada(o), Identificação de Usuária(o) - (UID), shell, grupo inicial, diretório home, etc. -

-
-

- vigr -

-
-

- Edita os arquivos /etc/group ou /etc/gshadow -

-
-

- vipw -

-
-

- Edita os arquivos /etc/passwd ou /etc/shadow -

-
-

- libsubid -

-
-

- Biblioteca para processar intervalos subordinados - de id para usuárias(os) -

-
-
-
-
-
-
-
-
-

- 8.26. GCC-11.2.0 -

-
-
-
-
-

- O pacote GCC contém a GNU compiler collection, o qual inclui - os compiladores C e C++. -

-
-
-
- Tempo aproximado de - construção: 153 UPC (com - os testes) -
-
- Espaço em disco - exigido: 4,3 GB -
-
-
-
-
-

- 8.26.1. Instalação de GCC -

-

- Primeiramente, conserte um problema que quebra libasan.a quando da construção desse pacote - com Glibc-2.34 ou posterior: -

-
sed -e '/static.*SIGSTKSZ/d' \
-    -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
-    -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
-

- Se construir em x86_64, então mude o nome de diretório padrão - para bibliotecas de 64 bits para lib: -

-
case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
-  ;;
-esac
-

- A documentação de GCC recomenda construir GCC em um diretório - de construção dedicado: -

-
mkdir -v build
-cd       build
-

- Prepare GCC para compilação: -

-
../configure --prefix=/usr            \
-             LD=ld                    \
-             --enable-languages=c,c++ \
-             --disable-multilib       \
-             --disable-bootstrap      \
-             --with-system-zlib
-

- Note que para outras linguagens de programação, existem - alguns pré-requisitos que ainda não estão disponíveis. - Veja-se a - página de GCC do Livro BLFS para instruções sobre como - construir todas as linguagens suportadas do GCC. -

-
-

- O significado dos novos parâmetros de - configure: -

-
-
- LD=ld -
-
-

- Esse parâmetro induz o script configure a usar o ld - instalado pelo binutils construído anteriormente neste - capítulo, em vez da versão construída cruzadamente a - qual de outra maneira seria usada. -

-
-
- --with-system-zlib -
-
-

- Essa chave diz a GCC para vincular à cópia instalada de - sistema da biblioteca zlib, em vez de sua própria cópia - interna. -

-
-
-
-

- Compile o pacote: -

-
make
-
-

- Importante -

-

- Nesta seção, a suíte de teste para GCC é considerada - importante, porém ela toma um tempo longo. Construtoras(es) - de primeira vez são encorajadas(os) a não pular ela. O - tempo para executar os testes pode ser reduzido - significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. -

-
-

- Um conjunto de testes na suíte de teste de GCC é conhecida - por esgotar a pilha padrão, então aumente o tamanho de pilha - antes de executar os testes: -

-
ulimit -s 32768
-

- Teste os resultados como uma(m) usuária(o) não - privilegiada(o), porém não pare aos erros: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make -k check"
-

- Para receber um sumário dos resultados de suíte de teste, - execute: -

-
../contrib/test_summary
-

- Para apenas os sumários, entube a saída por grep -A7 Summ. -

-

- Resultados podem ser comparados com aqueles localizados em - https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - e https://gcc.gnu.org/ml/gcc-testresults/. -

-

- Oito testes relacionados ao analisador são conhecidos por - falhar. -

-

- Um teste chamado asan_test.C é - conhecido por falhar. -

-

- Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. -

-

- Em libstdc++, um teste de numeração de pontuação e seis - testes relacionados a get_time são conhecidos por falhar. - Essas são todas por causa das definições de locale em glibc - que mudaram, porém libstdc++ atualmente não suporta essas - mudanças. -

-

- Umas poucas falhas inesperadas não podem ser evitadas sempre. - As(Os) desenvolvedoras(es) de GCC geralmente estão cientes - desses problemas, mas ainda não os resolveram. A menos que os - resultados de teste sejam amplamente diferentes daqueles na - URL acima, é seguro continuar. -

-

- Instale o pacote e remova um diretório desnecessário: -

-
make install
-rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/
-

- O diretório de construção de GCC é de propriedade de - tester agora e a propriedade - do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e - grupo root: -

-
chown -v -R root:root \
-    /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed}
-

- Crie um link simbólico exigido por - FHS por razões "históricas". -

-
ln -svr /usr/bin/cpp /usr/lib
-

- Adicione um link simbólico de compatibilidade para habilitar - a construção de aplicativos com Link Time Optimization (LTO): -

-
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \
-        /usr/lib/bfd-plugins/
-

- Agora que nosso conjunto de ferramentas final está no lugar, - é importante certificar-se novamente de que compilação e - vinculação funcionarão como esperado. Nós fazemos isso - realizando algumas verificações de sanidade: -

-
echo 'int main(){}' > dummy.c
-cc dummy.c -v -Wl,--verbose &> dummy.log
-readelf -l a.out | grep ': /lib'
-

- Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de - vinculador dinâmico): -

-
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
-

- Agora tenha certeza de que nós estamos configurados para usar - os arquivos de iniciação corretos: -

-
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
-

- A saída do último comando deveria ser: -

-
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded
-

- Dependendo da arquitetura de sua máquina, o acima talvez - difira levemente. A diferença será o nome do diretório depois - de /usr/lib/gcc. A coisa - importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório - /usr/lib. -

-

- Verifique que o compilador está procurando pelos arquivos de - cabeçalho corretos: -

-
grep -B4 '^ /usr/include' dummy.log
-

- Esse comando deveria retornar a seguinte saída: -

-
#include <...> search starts here:
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include
- /usr/local/include
- /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed
- /usr/include
-

- Novamente, o diretório nomeado após seu triplet alvo talvez - seja diferente do que o acima, dependendo da arquitetura de - seu sistema. -

-

- Em seguida, verifique que o novo vinculador está sendo usado - com os caminhos de procura corretos: -

-
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
-

- Referências a caminhos que tem componentes com '-linux-gnu' - deveriam ser ignoradas, porém, do contrário, a saída do - último comando deveria ser: -

-
SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
-SEARCH_DIR("/usr/local/lib64")
-SEARCH_DIR("/lib64")
-SEARCH_DIR("/usr/lib64")
-SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Um sistema de 32 bits talvez veja uns poucos diretórios - diferentes. Por exemplo, aqui está a saída originária de uma - máquina i686: -

-
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
-SEARCH_DIR("/usr/local/lib32")
-SEARCH_DIR("/lib32")
-SEARCH_DIR("/usr/lib32")
-SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");
-

- Em seguida, tenha certeza de que nós estamos usando a libc - correta: -

-
grep "/lib.*/libc.so.6 " dummy.log
-

- A saída do último comando deveria ser: -

-
attempt to open /usr/lib/libc.so.6 succeeded
-

- Tenha certeza de que GCC está usando o vinculador dinâmico - correto: -

-
grep found dummy.log
-

- A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -

-
found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2
-

- Se a saída não aparecer como mostrado acima ou não for - recebida de jeito nenhum, então alguma coisa está seriamente - errada. Investigue e retrace os passos para encontrar onde - está o problema e corrija o mesmo. Quaisquer problemas - precisão ser resolvidos antes de continuar com o processo. -

-

- Uma vez que tudo esteja funcionando corretamente, limpe os - arquivos de teste: -

-
rm -v dummy.c a.out dummy.log
-

- Finalmente, mova um arquivo mal colocado: -

-
mkdir -pv /usr/share/gdb/auto-load/usr/lib
-mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
-
-
-

- 8.26.2. Conteúdo - de GCC -

-
-
-
- Aplicativos instalados: - c++, cc (link para gcc), cpp, g++, - gcc, gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, - gcov-tool, e lto-dump -
-
- Bibliotecas instaladas: - libasan.{a,so}, libatomic.{a,so}, - libcc1.so, libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, - libgomp.{a,so}, libitm.{a,so}, liblsan.{a,so}, - liblto_plugin.so, libquadmath.{a,so}, libssp.{a,so}, - libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} -
-
- Diretórios instalados: - /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- c++ -

-
-

- O compilador C++ -

-
-

- cc -

-
-

- O compilador C -

-
-

- cpp -

-
-

- O preprocessador C; é usado pelo compilador para - expandir as declarações #include, #define e - similares nos arquivos fonte -

-
-

- g++ -

-
-

- O compilador C++ -

-
-

- gcc -

-
-

- O compilador C -

-
-

- gcc-ar -

-
-

- Um encapsulador em torno de ar que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-nm -

-
-

- Um encapsulador em torno de nm que adiciona - um plugin à linha de comando. Esse aplicativo é - usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcc-ranlib -

-
-

- Um encapsulador em torno de ranlib que - adiciona um plugin à linha de comando. Esse - aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de - construção padrão -

-
-

- gcov -

-
-

- Uma ferramenta de teste de cobertura; usada para - analisar aplicativos para determinar onde as - otimizações terão mais efeito -

-
-

- gcov-dump -

-
-

- Ferramenta de despejo de perfil offline gcda e gcno -

-
-

- gcov-tool -

-
-

- Ferramenta de processamento de perfil offline gcda -

-
-

- lto-dump -

-
-

- Ferramenta para despejar arquivos objeto produzidos - por GCC com LTO habilitado -

-
-

- libasan -

-
-

- A biblioteca de tempo de execução do Address - Sanitizer -

-
-

- libatomic -

-
-

- Biblioteca de tempo de execução atômica interna do - GCC -

-
-

- libcc1 -

-
-

- A biblioteca de pré-processamento C -

-
-

- libgcc -

-
-

- Contém suporte de tempo de execução para - gcc -

-
-

- libgcov -

-
-

- Essa biblioteca é vinculada a um aplicativo quando - GCC for instruído a habilitar criação de perfil -

-
-

- libgomp -

-
-

- Implementação GNU da API OpenMP para programação - paralela de memória compartilhada multiplataforma - em C/C++ e Fortran -

-
-

- libitm -

-
-

- A biblioteca de memória transacional GNU -

-
-

- liblsan -

-
-

- A biblioteca de tempo de execução do Leak Sanitizer -

-
-

- liblto_plugin -

-
-

- Plugin LTO do GCC permite ao binutils processar - arquivos objeto produzidos por GCC com LTO - habilitado -

-
-

- libquadmath -

-
-

- API da Biblioteca Matemática de Precisão Quádrupla - GCC -

-
-

- libssp -

-
-

- Contém rotinas que suportam a funcionalidade de - proteção contra esmagamento de pilha do GCC -

-
-

- libstdc++ -

-
-

- A biblioteca C++ padrão -

-
-

- libstdc++fs -

-
-

- Biblioteca de Sistema de Arquivos ISO/IEC TS - 18822:2015 -

-
-

- libsupc++ -

-
-

- Fornece rotinas de suporte para a linguagem de - programação C++ -

-
-

- libtsan -

-
-

- A biblioteca de tempo de execução do Thread - Sanitizer -

-
-

- libubsan -

-
-

- A biblioteca de tempo de execução do Undefined - Behavior Sanitizer -

-
-
-
-
-
-
-
-
-

- 8.27. Pkg-config-0.29.2 -

-
-
-
-
-

- O pacote pkg-config contém uma ferramenta para passar o - caminho include e (ou) caminhos de biblioteca para - ferramentas de construção durante as fases configure e make - de instalações de pacote. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 29 MB -
-
-
-
-
-

- 8.27.1. Instalação de Pkg-config -

-

- Prepare Pkg-config para compilação: -

-
./configure --prefix=/usr              \
-            --with-internal-glib       \
-            --disable-host-tool        \
-            --docdir=/usr/share/doc/pkg-config-0.29.2
-
-

- O significado das novas opções de - configure: -

-
-
- --with-internal-glib -
-
-

- Isso permitirá que pkg-config use a versão interna dele - de Glib, pois uma versão externa não está disponível em - LFS. -

-
-
- --disable-host-tool -
-
-

- Essa opção desabilita a criação de um indesejado hard - link para o aplicativo pkg-config. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.27.2. Conteúdo de Pkg-config -

-
-
-
- Aplicativo instalado: - pkg-config -
-
- Diretório instalado: - /usr/share/doc/pkg-config-0.29.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- pkg-config -

-
-

- Retorna meta informação para a biblioteca ou pacote - especificada -

-
-
-
-
-
-
-
-
-

- 8.28. Ncurses-6.3 -

-
-
-
-
-

- O pacote Ncurses contém bibliotecas para manipulação de telas - de caracteres independente de terminal. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 45 MB -
-
-
-
-
-

- 8.28.1. Instalação de Ncurses -

-

- Prepare Ncurses para compilação: -

-
./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            --with-shared           \
-            --without-debug         \
-            --without-normal        \
-            --enable-pc-files       \
-            --enable-widec          \
-            --with-pkg-config-libdir=/usr/lib/pkgconfig
-
-

- O significado das novas opções de - configure: -

-
-
- --enable-widec -
-
-

- Essa chave faz com que bibliotecas de caracteres largos - (por exemplo, libncursesw.so.6.3) sejam construídas - em vez de bibliotecas normais (por exemplo, - libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto - em locales de múltiplos bytes quanto em tradicionais de - oito (08) bits, enquanto bibliotecas normais funcionam - adequadamente só em locales de oito (08) bits. - Bibliotecas de caracteres largos e bibliotecas normais - são compatíveis em fonte, mas não são compatíveis em - binário. -

-
-
- --enable-pc-files -
-
-

- Essa chave gera e instala arquivos .pc para pkg-config. -

-
-
- --without-normal -
-
-

- Essa chave desabilita a construção e instalação da - maioria das bibliotecas estáticas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote tem uma suíte de teste, entretanto ela só pode - ser executada após o pacote ter sido instalado. Os testes - residem no diretório test/. - Veja-se o arquivo README - naquele diretório para maiores detalhes. -

-

- A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. Isso talvez - quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com - DESTDIR, e substitua o arquivo - de biblioteca corretamente usando comando install. Um arquivamento - estático inútil que não é manejado por configure também é - removido: -

-
make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib
-rm -v  dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a}
-cp -av dest/* /
-

- Muitos aplicativos ainda esperam que o vinculador seja capaz - de encontrar bibliotecas Ncurses de caracteres não largos. - Ajuste tais aplicativos para vincularem com bibliotecas de - caracteres largos por meio de links simbólicos e scripts de - vinculador: -

-
for lib in ncurses form panel menu ; do
-    rm -vf                    /usr/lib/lib${lib}.so
-    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
-    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
-done
-

- Finalmente, certifique-se de que aplicativos antigos que - procuram por -lcurses em tempo - de construção ainda sejam construíveis: -

-
rm -vf                     /usr/lib/libcursesw.so
-echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
-ln -sfv libncurses.so      /usr/lib/libcurses.so
-

- Se desejado, então instale a documentação do Ncurses: -

-
mkdir -pv      /usr/share/doc/ncurses-6.3
-cp -v -R doc/* /usr/share/doc/ncurses-6.3
-
-

- Nota -

-

- As instruções acima não criam bibliotecas Ncurses de - caracteres não largos, uma vez que nenhum pacote instalado - por compilação a partir de fontes se vincularia a elas em - tempo de execução. Entretanto, os únicos aplicativos - somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você - precisa ter tais bibliotecas, por causa de algum aplicativo - somente binário ou para estar conforme com LSB, então - construa o pacote novamente com os seguintes comandos: -

-
make distclean
-./configure --prefix=/usr    \
-            --with-shared    \
-            --without-normal \
-            --without-debug  \
-            --without-cxx-binding \
-            --with-abi-version=5
-make sources libs
-cp -av lib/lib*.so.5* /usr/lib
-
-
-
-

- 8.28.2. - Conteúdo de Ncurses -

-
-
-
- Aplicativos instalados: - captoinfo (link para tic), clear, - infocmp, infotocap (link para tic), ncursesw6-config, - reset (link para tset), tabs, tic, toe, tput, e - tset -
-
- Bibliotecas instaladas: - libcursesw.so (link simbólico e - script de vinculador para libncursesw.so), libformw.so, - libmenuw.so, libncursesw.so, libpanelw.so, e homônimos - delas de caractere não largo sem "w" nos nomes de - biblioteca. -
-
- Diretórios instalados: - /usr/share/tabset, - /usr/share/terminfo, e /usr/share/doc/ncurses-6.3 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- captoinfo -

-
-

- Converte uma descrição termcap em uma descrição - terminfo -

-
-

- clear -

-
-

- Limpa a tela, se possível -

-
-

- infocmp -

-
-

- Compara ou imprime descrições terminfo -

-
-

- infotocap -

-
-

- Converte uma descrição terminfo em uma descrição - termcap -

-
-

- ncursesw6-config -

-
-

- Fornece informação de configuração para ncurses -

-
-

- reset -

-
-

- Reinicializa um terminal para valores padrão dele -

-
-

- tabs -

-
-

- Limpa e configura paradas de tabulação em um - terminal -

-
-

- tic -

-
-

- O compilador de descrição de entrada terminfo que - traduz um arquivo terminfo do formato fonte para o - formato binário necessário para as rotinas de - biblioteca ncurses [Um arquivo terminfo contém - informação sobre as capacidades de um certo - terminal]. -

-
-

- toe -

-
-

- Lista todos os tipos de terminal disponíveis, dando - o nome primário e descrição para cada -

-
-

- tput -

-
-

- Torna os valores de capacidades dependentes de - terminal disponíveis para o shell; também pode ser - usado para reconfigurar ou inicializar um terminal - ou reportar o nome longo dele -

-
-

- tset -

-
-

- Pode ser usado para inicializar terminais -

-
-

- libcursesw -

-
-

- Um link para libncursesw -

-
-

- libncursesw -

-
-

- Contém funções para exibir texto em muitas formas - complexas em uma tela de terminal; um bom exemplo - do uso dessas funções é o menu exibido durante o - make - menuconfig do kernel -

-
-

- libformw -

-
-

- Contém funções para implementar formulários -

-
-

- libmenuw -

-
-

- Contém funções para implementar menus -

-
-

- libpanelw -

-
-

- Contém funções para implementar painéis -

-
-
-
-
-
-
-
-
-

- 8.29. Sed-4.8 -

-
-
-
-
-

- O pacote Sed contém um editor de fluxo. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 31 MB -
-
-
-
-
-

- 8.29.1. Instalação de Sed -

-

- Prepare Sed para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote e gere a documentação HTML: -

-
make
-make html
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote e documentação dele: -

-
make install
-install -d -m755           /usr/share/doc/sed-4.8
-install -m644 doc/sed.html /usr/share/doc/sed-4.8
-
-
-

- 8.29.2. Conteúdo - do Sed -

-
-
-
- Aplicativo instalado: - sed -
-
- Diretório instalado: - /usr/share/doc/sed-4.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- sed -

-
-

- Filtra e transforma arquivos de texto em uma - passagem única -

-
-
-
-
-
-
-
-
-

- 8.30. Psmisc-23.4 -

-
-
-
-
-

- O pacote Psmisc contém aplicativos para mostrar informação - sobre processos em execução. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 5,6 MB -
-
-
-
-
-

- 8.30.1. Instalação do Psmisc -

-

- Prepare Psmisc para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.30.2. - Conteúdo do Psmisc -

-
-
-
- Aplicativos instalados: - fuser, killall, peekfd, prtstat, - pslog, pstree, e pstree.x11 (link para pstree) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- fuser -

-
-

- Reporta os IDs de Processos (PIDs) de processos que - usam os arquivos ou sistemas de arquivos dados -

-
-

- killall -

-
-

- Mata processos pelo nome; envia um sinal para todos - os processos executando quaisquer dos comandos - dados -

-
-

- peekfd -

-
-

- Dê uma olhada nos descritores de arquivo de um - processo em execução, dado seu PID -

-
-

- prtstat -

-
-

- Imprime informação sobre um processo -

-
-

- pslog -

-
-

- Reporta o caminho atual de registros de um processo -

-
-

- pstree -

-
-

- Exibe processos em execução como uma árvore -

-
-

- pstree.x11 -

-
-

- O mesmo que pstree, exceto - que ele espera por confirmação antes de sair -

-
-
-
-
-
-
-
-
-

- 8.31. Gettext-0.21 -

-
-
-
-
-

- O pacote Gettext contém utilitários para internacionalização - e localização. Eles permitem que aplicativos sejam compilados - com Suporte ao Idioma Nativo (Native Language Support - NLS), - habilitando-os a emitir mensagens no idioma nativo da(o) - usuária(o). -

-
-
-
- Tempo aproximado de - construção: 2,7 UPC -
-
- Espaço em disco - exigido: 233 MB -
-
-
-
-
-

- 8.31.1. Instalação do Gettext -

-

- Prepare Gettext para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/gettext-0.21
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (isso toma um tempo longo, em torno - de 3 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-chmod -v 0755 /usr/lib/preloadable_libintl.so
-
-
-

- 8.31.2. - Conteúdo do Gettext -

-
-
-
- Aplicativos instalados: - autopoint, envsubst, gettext, - gettext.sh, gettextize, msgattrib, msgcat, msgcmp, - msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, - msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, - recode-sr-latin, e xgettext -
-
- Bibliotecas instaladas: - libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so -
-
- Diretórios instalados: - /usr/lib/gettext, - /usr/share/doc/gettext-0.21, /usr/share/gettext, e - /usr/share/gettext-0.19.8 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autopoint -

-
-

- Copia arquivos de infraestrutura padrão do Gettext - para um pacote fonte -

-
-

- envsubst -

-
-

- Substitui variáveis de ambiente em sequências de - caracteres de formato de shell -

-
-

- gettext -

-
-

- Traduz uma mensagem de idioma natural para o idioma - da(o) usuária(o) procurando a tradução em um - catálogo de mensagens -

-
-

- gettext.sh -

-
-

- Primariamente serve como uma biblioteca de função - de shell para gettext -

-
-

- gettextize -

-
-

- Copia todos os arquivos Gettext padrão para o - diretório de nível superior fornecido de um pacote - para começar a internacionalizá-lo -

-
-

- msgattrib -

-
-

- Filtra as mensagens de um catálogo de tradução de - acordo com os atributos delas e manipula os - atributos -

-
-

- msgcat -

-
-

- Concatena e funde os arquivos .po fornecidos -

-
-

- msgcmp -

-
-

- Compara dois arquivos .po para verificar se ambos - contém o mesmo conjunto de sequências de caracteres - de msgid -

-
-

- msgcomm -

-
-

- Encontra as mensagens que são comuns aos arquivos - .po fornecidos -

-
-

- msgconv -

-
-

- Converte um catálogo de tradução para uma - codificação de caracteres diferente -

-
-

- msgen -

-
-

- Cria um catálogo de tradução em inglês -

-
-

- msgexec -

-
-

- Aplica um comando a todas as traduções de um - catálogo de tradução -

-
-

- msgfilter -

-
-

- Aplica um filtro a todas as traduções de um - catálogo de tradução -

-
-

- msgfmt -

-
-

- Gera um catálogo de mensagem binária a partir de um - catálogo de tradução -

-
-

- msggrep -

-
-

- Extrai todas as mensagens de um catálogo de - tradução que correspondem a um determinado padrão - ou pertencem a alguns arquivos fonte fornecidos -

-
-

- msginit -

-
-

- Cria um novo arquivo .po, inicializando a meta - informação com valores oriundos do ambiente da(o) - usuária(o) -

-
-

- msgmerge -

-
-

- Combina duas traduções cruas em um arquivo único -

-
-

- msgunfmt -

-
-

- Descompila um catálogo de mensagem binário em um - texto de tradução cru -

-
-

- msguniq -

-
-

- Unifica traduções duplicadas em um catálogo de - tradução -

-
-

- ngettext -

-
-

- Exibe traduções no idioma nativo de uma mensagem - textual cuja forma gramatical depende de um número -

-
-

- recode-sr-latin -

-
-

- Recodifica texto sérvio do cirílico para alfabeto - latino -

-
-

- xgettext -

-
-

- Extrai as linhas de mensagem traduzíveis dos - arquivos fonte fornecidos para fazer o primeiro - modelo de tradução -

-
-

- libasprintf -

-
-

- define a classe autosprintf, que torna - as rotinas de saída formatada em C utilizáveis em - aplicativos C++, para uso com as sequências de - caracteres <string> e os - fluxos <iostream> -

-
-

- libgettextlib -

-
-

- uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libgettextpo -

-
-

- Usado para escrever aplicativos especializados que - processam arquivos .po; essa biblioteca é usada - quando os aplicativos padrão fornecidos com Gettext - (tais como msgcomm, - msgcmp, - msgattrib, e - msgen) não são - suficientes -

-
-

- libgettextsrc -

-
-

- Uma biblioteca privada contendo rotinas comuns - usadas pelos vários aplicativos Gettext; elas não - são destinadas para uso geral -

-
-

- libtextstyle -

-
-

- Biblioteca de estilo de texto -

-
-

- preloadable_libintl -

-
-

- Uma biblioteca, destinada a ser usada por - LD_PRELOAD que auxilia libintl no registro de mensagens - não traduzidas -

-
-
-
-
-
-
-
-
-

- 8.32. Bison-3.8.2 -

-
-
-
-
-

- O pacote Bison contém um gerador de analisador. -

-
-
-
- Tempo aproximado de - construção: 6,3 UPC -
-
- Espaço em disco - exigido: 53 MB -
-
-
-
-
-

- 8.32.1. Instalação do Bison -

-

- Prepare Bison para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (cerca de 5,5 UPCs), execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.32.2. - Conteúdo do Bison -

-
-
-
- Aplicativos instalados: - bison e yacc -
-
- Biblioteca instalada: - liby.a -
-
- Diretório instalado: - /usr/share/bison -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bison -

-
-

- Gera, a partir de uma série de regras, um - aplicativo para analisar a estrutura de arquivos de - texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) -

-
-

- yacc -

-
-

- Um encapsulador para bison, destinado - a aplicativos que ainda chamam yacc em vez de - bison; ele chama - bison - com a opção -y -

-
-

- liby -

-
-

- A biblioteca Yacc contendo implementações de - funções compatíveis com Yacc yyerror e main; essa biblioteca normalmente - não é muito útil, mas POSIX a exige -

-
-
-
-
-
-
-
-
-

- 8.33. Grep-3.7 -

-
-
-
-
-

- O pacote Grep contém aplicativos para procura ao longo do - conteúdo de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 36 MB -
-
-
-
-
-

- 8.33.1. Instalação do Grep -

-

- Prepare Grep para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.33.2. - Conteúdo do Grep -

-
-
-
- Aplicativos instalados: - egrep, fgrep, e grep -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- egrep -

-
-

- Imprime linhas que correspondem a uma expressão - regular estendida -

-
-

- fgrep -

-
-

- Imprime linhas que correspondem a uma lista de - sequências de caracteres fixas -

-
-

- grep -

-
-

- Imprime linhas que correspondem a expressão regular - básica -

-
-
-
-
-
-
-
-
-

- 8.34. Bash-5.1.16 -

-
-
-
-
-

- O pacote Bash contém o Bourne-Again SHell. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 50 MB -
-
-
-
-
-

- 8.34.1. Instalação do Bash -

-

- Prepare Bash para compilação: -

-
./configure --prefix=/usr                      \
-            --docdir=/usr/share/doc/bash-5.1.16 \
-            --without-bash-malloc              \
-            --with-installed-readline
-
-

- O significado da nova opção de configure: -

-
-
- --with-installed-readline -
-
-

- Essa opção diz a Bash para usar a biblioteca - readline que já está - instalada no sistema em vez de usar sua própria versão - de readline. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Para preparar os testes, garanta que a(o) usuária(o) - tester pode escrever na - árvore de fontes: -

-
chown -Rv tester .
-

- A suíte de teste do pacote é desenhada para ser executada - como uma(m) usuária(o) não root que é proprietária(o) do - terminal conectado à entrada padrão. Para satisfazer a - exigência, crie um novo pseudo terminal usando Expect e execute os testes como a(o) - usuária (o) tester: -

-
su -s /usr/bin/expect tester << EOF
-set timeout -1
-spawn make tests
-expect eof
-lassign [wait] _ _ _ value
-exit $value
-EOF
-

- Instale o pacote: -

-
make install
-

- Execute o aplicativo recém compilado bash (substituindo o que - está sendo executado atualmente): -

-
exec /usr/bin/bash --login
-
-
-

- 8.34.2. - Conteúdo do Bash -

-
-
-
- Aplicativos instalados: - bash, bashbug, e sh (link para - bash) -
-
- Diretórios instalados: - /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- bash -

-
-

- Um interpretador de comandos vastamente utilizado; - ele realiza muitos tipos de expansões e - substituições sobre uma dada linha de comando antes - de executá-la, portanto fazendo desse interpretador - uma ferramenta poderosa -

-
-

- bashbug -

-
-

- Um script de shell para ajudar a(o) usuária(o) a - compor e enviar relatórios de defeitos formatados - padrão concernentes a bash -

-
-

- sh -

-
-

- Um link simbólico para o aplicativo bash; quando - invocado como sh, bash tenta imitar - o comportamento de inicialização de versões - históricas do sh o mais próximo - possível, enquanto também conformando com o padrão - POSIX -

-
-
-
-
-
-
-
-
-

- 8.35. Libtool-2.4.6 -

-
-
-
-
-

- O pacote Libtool contém o script de suporte à biblioteca - genérica GNU. Ele esconde a complexidade de usar bibliotecas - compartilhadas em uma interface consistente e portável. -

-
-
-
- Tempo aproximado de - construção: 1,5 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.35.1. Instalação do Libtool -

-

- Prepare Libtool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para libtool pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Cinco testes são conhecidos por falharem dentro do ambiente - de construção LFS devido a uma dependência circular, porém - todos os testes passam se verificados novamente após automake - ser instalado. -

-

- Instale o pacote: -

-
make install
-

- Remova uma biblioteca estática inútil: -

-
rm -fv /usr/lib/libltdl.a
-
-
-

- 8.35.2. - Conteúdo do Libtool -

-
-
-
- Aplicativos instalados: - libtool e libtoolize -
-
- Biblioteca instalada: - libltdl.so -
-
- Diretórios instalados: - /usr/include/libltdl e - /usr/share/libtool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- libtool -

-
-

- Fornece serviços generalizados de suporte à - construção de bibliotecas -

-
-

- libtoolize -

-
-

- Fornece uma maneira padrão de adicionar suporte - libtool a um - pacote -

-
-

- libltdl -

-
-

- Esconde as várias dificuldades do dlopening de - bibliotecas -

-
-
-
-
-
-
-
-
-

- 8.36. GDBM-1.23 -

-
-
-
-
-

- O pacote GDBM contém o GNU Database Manager. Ele é uma - biblioteca de funções de banco de dados que usa hash - extensível e funciona semelhante ao dbm UNIX padrão. A - biblioteca fornece primitivos para armazenar pares de - chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.36.1. Instalação do GDBM -

-

- Prepare GDBM para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --enable-libgdbm-compat
-
-

- O significado da opção de configure: -

-
-
- --enable-libgdbm-compat -
-
-

- Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS - talvez exijam as rotinas DBM mais antigas que ela - fornece. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.36.2. - Conteúdo do GDBM -

-
-
-
- Aplicativos instalados: - gdbm_dump, gdbm_load, e - gdbmtool -
-
- Bibliotecas instaladas: - libgdbm.so e - libgdbm_compat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gdbm_dump -

-
-

- Despeja um banco de dados GDBM para um arquivo -

-
-

- gdbm_load -

-
-

- Recria um banco de dados GDBM a partir de um - arquivo de despejo -

-
-

- gdbmtool -

-
-

- Testa e modifica um banco de dados GDBM -

-
-

- libgdbm -

-
-

- Contém funções para manipular um banco de dados com - hash -

-
-

- libgdbm_compat -

-
-

- Biblioteca de compatibilidade contendo funções DBM - mais antigas -

-
-
-
-
-
-
-
-
-

- 8.37. Gperf-3.1 -

-
-
-
-
-

- Gperf gera uma função de hash perfeita a partir de um - conjunto de chaves. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 6,0 MB -
-
-
-
-
-

- 8.37.1. Instalação do Gperf -

-

- Prepare Gperf para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
-

- Compile o pacote: -

-
make
-

- Os testes são conhecidos por falharem se executar múltiplos - testes simultâneos (opção -j maior que 1). Para testar os - resultados, execute: -

-
make -j1 check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.37.2. - Conteúdo do Gperf -

-
-
-
- Aplicativo instalado: - gperf -
-
- Diretório instalado: - /usr/share/doc/gperf-3.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- gperf -

-
-

- Gera um hash perfeito a partir de um conjunto de - chaves -

-
-
-
-
-
-
-
-
-

- 8.38. Expat-2.4.6 -

-
-
-
-
-

- O pacote Expat contém uma biblioteca C orientada a fluxo para - analisar XML. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.38.1. Instalação do Expat -

-

- Prepare Expat para compilação: -

-
./configure --prefix=/usr    \
-            --disable-static \
-            --docdir=/usr/share/doc/expat-2.4.6
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, instale a documentação: -

-
install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6
-
-
-

- 8.38.2. - Conteúdo do Expat -

-
-
-
- Aplicativo instalado: - xmlwf -
-
- Biblioteca instalada: - libexpat.so -
-
- Diretório instalado: - /usr/share/doc/expat-2.4.6 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- xmlwf -

-
-

- É um utilitário não validador para verificar se - documentos XML estão bem formados ou não -

-
-

- libexpat -

-
-

- Contém funções de API para analisar XML -

-
-
-
-
-
-
-
-
-

- 8.39. Inetutils-2.2 -

-
-
-
-
-

- O pacote Inetutils contém aplicativos para redes básicas. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 30 MB -
-
-
-
-
-

- 8.39.1. Instalação do Inetutils -

-

- Prepare Inetutils para compilação: -

-
./configure --prefix=/usr        \
-            --bindir=/usr/bin    \
-            --localstatedir=/var \
-            --disable-logger     \
-            --disable-whois      \
-            --disable-rcp        \
-            --disable-rexec      \
-            --disable-rlogin     \
-            --disable-rsh        \
-            --disable-servers
-
-

- O significado das opções de configure: -

-
-
- --disable-logger -
-
-

- Essa opção impede que o Inetutils instale o aplicativo - logger, o - qual é usado por scripts para passar mensagens para o - System Log Daemon. Não instale isso, pois o Util-linux - instala uma versão mais recente. -

-
-
- --disable-whois -
-
-

- Essa opção desabilita a construção do cliente - whois do - Inetutils, o qual está desatualizado. Instruções para - um cliente whois melhor estão no - livro BLFS. -

-
-
- --disable-r* -
-
-

- Esses parâmetros desabilitam a construção de - aplicativos obsoletos que não deveriam ser usados - devido a problemas de segurança. As funções fornecidas - por esses aplicativos podem ser fornecidas pelo pacote - openssh no livro BLFS. -

-
-
- --disable-servers -
-
-

- Isso desabilita a instalação dos vários servidores de - rede incluídos como parte do pacote Inetutils. Esses - servidores são considerados inadequados em um sistema - LFS básico. Alguns são inseguros por natureza e só são - considerados seguros em redes confiáveis. Observe que - substituições melhores estão disponíveis para muitos - desses servidores. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Mova um aplicativo para o local adequado: -

-
mv -v /usr/{,s}bin/ifconfig
-
-
-

- 8.39.2. Conteúdo do Inetutils -

-
-
-
- Aplicativos instalados: - dnsdomainname, ftp, ifconfig, - hostname, ping, ping6, talk, telnet, tftp, e - traceroute -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- dnsdomainname -

-
-

- Mostra o nome de domínio DNS do sistema -

-
-

- ftp -

-
-

- É o aplicativo de protocolo de transferência de - arquivos -

-
-

- hostname -

-
-

- Relata ou configura o nome do dispositivo -

-
-

- ifconfig -

-
-

- Gerencia interfaces de rede -

-
-

- ping -

-
-

- Envia pacotes de solicitação de echo e informa - quanto tempo as respostas demoram -

-
-

- ping6 -

-
-

- Uma versão do ping para redes - IPv6 -

-
-

- talk -

-
-

- É usado para conversar com outra(o) usuária(o) -

-
-

- telnet -

-
-

- Uma interface para o protocolo TELNET -

-
-

- tftp -

-
-

- Um aplicativo de transferência de arquivos trivial -

-
-

- traceroute -

-
-

- Rastreia a rota que seus pacotes fazem a partir do - dispositivo em que você está trabalhando para outro - dispositivo em uma rede, mostrando todos os saltos - intermediários (gateways) ao longo do caminho -

-
-
-
-
-
-
-
-
-

- 8.40. Less-590 -

-
-
-
-
-

- O pacote Less contém um visualizador de arquivos de texto. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 4,2 MB -
-
-
-
-
-

- 8.40.1. Instalação do Less -

-

- Prepare Less para compilação: -

-
./configure --prefix=/usr --sysconfdir=/etc
-
-

- O significado das opções de configure: -

-
-
- --sysconfdir=/etc -
-
-

- Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos - arquivos de configuração. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.40.2. - Conteúdo do Less -

-
-
-
- Aplicativos instalados: - less, lessecho e lesskey -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- less -

-
-

- Um visualizador de arquivos ou paginador; ele exibe - o conteúdo do arquivo dado, permitindo que a(o) - usuária(o) role, encontre sequências de caracteres - e pule para marcas -

-
-

- lessecho -

-
-

- Necessário para expandir metacaracteres, tais como - * e - ?, em nomes - de arquivos em sistemas Unix -

-
-

- lesskey -

-
-

- Usado para especificar os atalhos de tecla para - less -

-
-
-
-
-
-
-
-
-

- 8.41. Perl-5.34.0 -

-
-
-
-
-

- O pacote Perl contém o Practical Extraction and Report - Language. -

-
-
-
- Tempo aproximado de - construção: 9,3 UPC -
-
- Espaço em disco - exigido: 226 MB -
-
-
-
-
-

- 8.41.1. Instalação do Perl -

-

- Primeiro, aplique uma correção que conserta um problema - destacado por versões recentes do gdbm: -

-
patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch
-

- Essa versão do Perl agora constrói os módulos - Compress::Raw::Zlib e Compress::Raw::BZip2. Por padrão, Perl - usará uma cópia interna dos fontes para a construção. Execute - o seguinte comando de modo que Perl usará as bibliotecas - instaladas no sistema: -

-
export BUILD_ZLIB=False
-export BUILD_BZIP2=0
-

- Para ter controle completo sobre a maneira como Perl é - configurado, você pode remover as opções -des - do comando seguinte e escolher manualmente a maneira como - esse pacote é construído. Alternativamente, use o comando - exatamente como está abaixo para usar os padrões que o Perl - detecta automaticamente: -

-
sh Configure -des                                         \
-             -Dprefix=/usr                                \
-             -Dvendorprefix=/usr                          \
-             -Dprivlib=/usr/lib/perl5/5.34/core_perl      \
-             -Darchlib=/usr/lib/perl5/5.34/core_perl      \
-             -Dsitelib=/usr/lib/perl5/5.34/site_perl      \
-             -Dsitearch=/usr/lib/perl5/5.34/site_perl     \
-             -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl  \
-             -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \
-             -Dman1dir=/usr/share/man/man1                \
-             -Dman3dir=/usr/share/man/man3                \
-             -Dpager="/usr/bin/less -isR"                 \
-             -Duseshrplib                                 \
-             -Dusethreads
-
-

- O significado das opções de configure: -

-
-
- -Dvendorprefix=/usr -
-
-

- Isso garante que perl saiba como dizer - aos pacotes onde eles deveriam instalar módulos perl - deles. -

-
-
- -Dpager="/usr/bin/less - -isR" -
-
-

- Isso garante que less seja usado em - vez de more. -

-
-
- -Dman1dir=/usr/share/man/man1 - -Dman3dir=/usr/share/man/man3 -
-
-

- Uma vez que o Groff ainda não está instalado, - Configure - pensa que nós não queremos páginas de manual para o - Perl. Emitir esses parâmetros substitui essa decisão. -

-
-
- -Duseshrplib -
-
-

- Constrói uma libperl compartilhada necessária para - alguns módulos perl. -

-
-
- -Dusethreads -
-
-

- Constrói perl com suporte para camadas. -

-
-
- -Dprivlib,-Darchlib,-Dsitelib,... -
-
-

- Essas configurações definem onde o Perl está procurando - módulos instalados. As(Os) editoras(es) de LFS optaram - por colocá-los em uma estrutura de diretórios baseada - na versão Major.Minor do Perl (5.34), a qual permite - atualizar o Perl para níveis de Patch mais recentes - (5.34.0) sem a necessidade de reinstalar todos os - módulos novamente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados (aproximadamente 11 UPCs), execute: -

-
make test
-

- Instale o pacote e limpe: -

-
make install
-unset BUILD_ZLIB BUILD_BZIP2
-
-
-

- 8.41.2. - Conteúdo do Perl -

-
-
-
- Aplicativos instalados: - corelist, cpan, enc2xs, encguess, - h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, - perl5.34.0 (hard link para perl), perlbug, perldoc, - perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, - podchecker, podselect, prove, ptar, ptardiff, ptargrep, - shasum, splain, xsubpp e zipdetails -
-
- Bibliotecas instaladas: - Muitas, as quais não podem ser - todas listadas aqui -
-
- Diretório instalado: - /usr/lib/perl5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- corelist -

-
-

- Um frontend de linha de comando para - Module::CoreList -

-
-

- cpan -

-
-

- Interage com o Comprehensive Perl Archive Network - (CPAN) a partir da linha de comando -

-
-

- enc2xs -

-
-

- Constrói uma extensão Perl para o módulo Encode a - partir tanto de Mapeamentos de Caracteres Unicode - quanto de Arquivos de Codificação Tcl -

-
-

- encguess -

-
-

- Advinha o tipo de codificação de um ou vários - arquivos -

-
-

- h2ph -

-
-

- Converte arquivos de cabeçalho C .h para arquivos de cabeçalho - Perl .ph -

-
-

- h2xs -

-
-

- Converte arquivos de cabeçalho C .h para extensões Perl -

-
-

- instmodsh -

-
-

- Script de shell para examinar módulos Perl - instalados, e pode criar um tarball a partir de um - módulo instalado -

-
-

- json_pp -

-
-

- Converte dados entre certos formatos de entrada e - saída -

-
-

- libnetcfg -

-
-

- Pode ser usado para configurar o módulo Perl - libnet -

-
-

- perl -

-
-

- Combina algumas das melhores características do C, - sed, - awk e - sh em - uma linguagem canivete suíço única -

-
-

- perl5.34.0 -

-
-

- Um hard link para perl -

-
-

- perlbug -

-
-

- Usado para gerar relatórios de defeitos sobre o - Perl, ou módulos que vem como ele, e enviá-los por - correio -

-
-

- perldoc -

-
-

- Exibe uma parte da documentação em formato de pod - que está incorporada na árvore de instalação do - Perl ou em um script Perl -

-
-

- perlivp -

-
-

- O Procedimento de Verificação de Instalação do - Perl; pode ser usado para verificar se o Perl e - suas bibliotecas foram instalados corretamente -

-
-

- perlthanks -

-
-

- Usado para gerar mensagens de agradecimento para - enviar para as(os) desenvolvedoras(es) Perl -

-
-

- piconv -

-
-

- Uma versão Perl do conversor de codificação de - caracteres iconv -

-
-

- pl2pm -

-
-

- Uma ferramenta rudimentar para converter arquivos - Perl4 .pl para - módulos Perl5 .pm -

-
-

- pod2html -

-
-

- Converte arquivos do formato pod para o formato - HTML -

-
-

- pod2man -

-
-

- Converte dados pod para entrada formatada *roff -

-
-

- pod2text -

-
-

- Converte dados pod para texto ASCII formatado -

-
-

- pod2usage -

-
-

- Imprime mensagens de uso a partir de documentos pod - incorporados em arquivos -

-
-

- podchecker -

-
-

- Verifica a sintaxe de arquivos de documentação no - formato pod -

-
-

- podselect -

-
-

- Exibe seções selecionadas de documentação pod -

-
-

- prove -

-
-

- Ferramenta de linha de comando para executar testes - contra o módulo Test::Harness -

-
-

- ptar -

-
-

- Um aplicativo similar ao tar escrito em - Perl -

-
-

- ptardiff -

-
-

- Um aplicativo Perl que compara um arquivamento - extraído com um não extraído -

-
-

- ptargrep -

-
-

- Um aplicativo Perl que aplica correspondência de - padrão ao conteúdo de arquivos em um arquivamento - tar -

-
-

- shasum -

-
-

- Imprime ou verifica somas de verificação SHA -

-
-

- splain -

-
-

- É usado para forçar diagnósticos de aviso - detalhados em Perl -

-
-

- xsubpp -

-
-

- Converte código Perl XS em código C -

-
-

- zipdetails -

-
-

- Exibe detalhes sobre a estrutura interna de um - arquivo Zip -

-
-
-
-
-
-
-
-
-

- 8.42. XML::Parser-2.46 -

-
-
-
-
-

- O módulo XML::Parser é uma interface Perl para o analisador - de XML do James Clark, Expat. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 2,4 MB -
-
-
-
-
-

- 8.42.1. Instalação do XML::Parser -

-

- Prepare XML::Parser para compilação: -

-
perl Makefile.PL
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Instale o pacote: -

-
make install
-
-
-

- 8.42.2. Conteúdo do XML::Parser -

-
-
-
- Módulo instalado: - Expat.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- Expat -

-
-

- Fornece a interface Perl Expat -

-
-
-
-
-
-
-
-
-

- 8.43. Intltool-0.51.0 -

-
-
-
-
-

- O Intltool é uma ferramenta de internacionalização usada para - extrair sequências de caracteres traduzíveis a partir de - arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 1,5 MB -
-
-
-
-
-

- 8.43.1. Instalação do Intltool -

-

- Primeiro, conserte um aviso que é causado por perl-5.22 e - posteriores: -

-
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
-
-

- Nota -

-

- A expressão regular acima parece incomum por causa de todas - as contra barras. O que ela faz é adicionar uma contra - barra antes do carácter abre chave na sequência '\${' - resultando em '\$\{'. -

-
-

- Prepare Intltool para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO
-
-
-

- 8.43.2. Conteúdo do Intltool -

-
-
-
- Aplicativos instalados: - intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize -
-
- Diretórios instalados: - /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- intltoolize -

-
-

- Prepara um pacote para usar intltool -

-
-

- intltool-extract -

-
-

- Gera arquivos de cabeçalho que podem ser lidos por - gettext -

-
-

- intltool-merge -

-
-

- Mescla sequência de caracteres traduzidos em vários - tipos de arquivos -

-
-

- intltool-prepare -

-
-

- Atualiza arquivos pot e mescla eles com arquivos de - tradução -

-
-

- intltool-update -

-
-

- Atualiza os arquivos de modelo po e mescla eles com - as traduções -

-
-
-
-
-
-
-
-
-

- 8.44. Autoconf-2.71 -

-
-
-
-
-

- O pacote Autoconf contém aplicativos para produzir scripts de - shell que podem configurar automaticamente código fonte. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 6,8 UPC com os testes) -
-
- Espaço em disco - exigido: 24 MB -
-
-
-
-
-

- 8.44.1. Instalação do Autoconf -

-

- Prepare Autoconf para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-
-

- Nota -

-

- O tempo de teste para autoconf pode ser reduzido - significativamente em um sistema com múltiplos núcleos. - Para fazer isso, acrescente TESTSUITEFLAGS=-j<N> - ao final da linha acima. Por exemplo, usar -j4 pode reduzir - o tempo de teste em mais que 60 por cento. -

-
-

- Instale o pacote: -

-
make install
-
-
-

- 8.44.2. Conteúdo do Autoconf -

-
-
-
- Aplicativos instalados: - autoconf, autoheader, autom4te, - autoreconf, autoscan, autoupdate e ifnames -
-
- Diretório instalado: - /usr/share/autoconf -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- autoconf -

-
-

- Produz scripts de shell que configuram - automaticamente pacotes de código fonte de - aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que - ele produz são independentes—executá-los não - exige o aplicativo autoconf -

-
-

- autoheader -

-
-

- Uma ferramenta para criar arquivos de modelo de - declarações #define de C para - configure usar -

-
-

- autom4te -

-
-

- Um encapsulador para o processador de macro M4 -

-
-

- autoreconf -

-
-

- Automaticamente executa autoconf, - autoheader, - aclocal, - automake, - gettextize e - libtoolize na - ordem correta para economizar tempo quando mudanças - são feitas para arquivos de modelo autoconf e - automake -

-
-

- autoscan -

-
-

- Ajuda a criar um arquivo configure.in para um pacote de - aplicativos; ele examina os arquivos fonte em uma - árvore de diretórios, procurando neles por - problemas de portabilidade comuns, e cria um - arquivo configure.scan que serve como um - arquivo configure.in - preliminar para o pacote -

-
-

- autoupdate -

-
-

- Modifica um arquivo configure.in que ainda chama - macros autoconf por seus - nomes antigos para usar os nomes de macro atuais -

-
-

- ifnames -

-
-

- Ajuda ao escrever arquivos configure.in para um pacote de - aplicativos; ele imprime os identificadores que o - pacote usa em condicionais de preprocessador C [Se - um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a - determinar o que configure precisa - checar. Ele também pode preencher lacunas em um - arquivo configure.in - gerado por autoscan]. -

-
-
-
-
-
-
-
-
-

- 8.45. Automake-1.16.5 -

-
-
-
-
-

- O pacote Automake contém aplicativos para gerar Makefiles - para uso com Autoconf. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC (cerca de 8,3 UPC com os testes) -
-
- Espaço em disco - exigido: 115 MB -
-
-
-
-
-

- 8.45.1. Instalação do Automake -

-

- Prepare Automake para compilação: -

-
./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5
-

- Compile o pacote: -

-
make
-

- Usar a opção de make -j4 acelera os testes, mesmo em sistemas - com apenas um processador, devido a atrasos internos em - testes individuais. Para testar os resultados, execute: -

-
make -j4 check
-

- O teste t/subobj.sh é conhecido por falhar. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.45.2. Conteúdo do Automake -

-
-
-
- Aplicativos instalados: - aclocal, aclocal-1.16 (hard link - com aclocal), automake e automake-1.16 (hard link com - automake) -
-
- Diretórios instalados: - /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e - /usr/share/doc/automake-1.16.5 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- aclocal -

-
-

- Gera arquivos aclocal.m4 baseados no conteúdo - dos arquivos configure.in -

-
-

- aclocal-1.16 -

-
-

- Um hard link para aclocal -

-
-

- automake -

-
-

- Uma ferramenta para gerar automaticamente arquivos - Makefile.in a partir - de arquivos Makefile.am [Para criar todos os - arquivos Makefile.in - para um pacote, execute esse aplicativo no - diretório superior. Escaneando o arquivo - configure.in, ele - automaticamente encontra cada arquivo Makefile.am apropriado e gera o - arquivo Makefile.in - correspondente]. -

-
-

- automake-1.16 -

-
-

- Um hard link para automake -

-
-
-
-
-
-
-
-
-

- 8.46. OpenSSL-3.0.1 -

-
-
-
-
-

- O pacote OpenSSL contém ferramentas de gerenciamento e - bibliotecas relacionadas à criptografia. Essas são úteis para - fornecer funções criptográficas para outros pacotes, tais - como OpenSSH, aplicativos de correio eletrônico e navegadores - de rede (para acessar sítios HTTPS). -

-
-
-
- Tempo aproximado de - construção: 5,4 UPC -
-
- Espaço em disco - exigido: 474 MB -
-
-
-
-
-

- 8.46.1. Instalação do OpenSSL -

-

- Prepare OpenSSL para compilação: -

-
./config --prefix=/usr         \
-         --openssldir=/etc/ssl \
-         --libdir=lib          \
-         shared                \
-         zlib-dynamic
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make test
-

- Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes - de configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, - então ele pode seguramente ser ignorado. -

-

- Instale o pacote: -

-
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
-make MANSUFFIX=ssl install
-

- Adicione a versão ao nome de diretório de documentação, para - ser consistente com outros pacotes: -

-
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1
-

- Se desejado, instale alguma documentação adicional: -

-
cp -vfr doc/* /usr/share/doc/openssl-3.0.1
-
-

- Nota -

-

- Você deveria atualizar OpenSSL quando uma versão nova que - conserta vulnerabilidades for anunciada. Os lançamentos - ocorrem em séries, com uma letra para cada lançamento após - o lançamento inicial (por exemplo, 1.1.1, 1.1.1a, 1.1.1b, - etc). Por causa de que LFS instala somente as bibliotecas - compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na mesma série. -

-

- Entretanto, quaisquer aplicativos em execução vinculados - àquelas bibliotecas precisam ser parados e reiniciados. - Leia-se as entradas relacionadas em Seção 8.2.1, - “Problemas de Atualização” para detalhes. -

-
-
-
-

- 8.46.2. - Conteúdo do OpenSSL -

-
-
-
- Aplicativos instalados: - c_rehash e openssl -
-
- Bibliotecas instaladas: - libcrypto.so e libssl.so -
-
- Diretórios instalados: - /etc/ssl, /usr/include/openssl, - /usr/lib/engines e /usr/share/doc/openssl-3.0.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- c_rehash -

-
-

- é um script Perl - que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash - deles -

-
-

- openssl -

-
-

- é uma ferramenta de linha de comando para usar as - várias funções criptográficas da biblioteca de - criptografia do OpenSSL a partir do shell. Ela - pode ser usada para várias funções que estão - documentadas em man 1 - openssl -

-
-

- libcrypto.so -

-
-

- implementa um intervalo amplo de algoritmos - criptográficos usados em vários padrões da - Internet. Os serviços fornecidos por essa - biblioteca são usados pelas implementações - OpenSSL do SSL, - TLS e S/MIME e eles também tem sido usados para - implementar OpenSSH, OpenPGP e outros padrões - criptográficos -

-
-

- libssl.so -

-
-

- implementa o protocolo Transport Layer Security - (TLS v1). Ela fornece uma API rica, documentação - sobre a qual pode ser encontrada executando - man 3 - ssl -

-
-
-
-
-
-
-
-
-

- 8.47. Kmod-29 -

-
-
-
-
-

- O pacote Kmod contém bibliotecas e utilitários para carregar - módulos de kernel -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.47.1. Instalação do Kmod -

-

- Prepare Kmod para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --with-openssl         \
-            --with-xz              \
-            --with-zstd            \
-            --with-zlib
-
-

- O significado das opções de configure: -

-
-
- --with-openssl -
-
-

- Essa opção habilita Kmod a lidar com assinaturas PKCS7 - para módulos de kernel. -

-
-
- --with-xz, --with-zlib, e --with-zstd -
-
-

- Essas opções habilitam Kmod a lidar com módulos de - kernel comprimidos. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste desse pacote exige cabeçalhos de kernel crus - (não os cabeçalhos de kernel sanitizados instalados - anteriormente), os quais estão além do escopo do LFS. -

-

- Instale o pacote e crie links simbólicos para compatibilidade - com Module-Init-Tools (o pacote que anteriormente lidava com - módulos de kernel do Linux): -

-
make install
-
-for target in depmod insmod modinfo modprobe rmmod; do
-  ln -sfv ../bin/kmod /usr/sbin/$target
-done
-
-ln -sfv kmod /usr/bin/lsmod
-
-
-

- 8.47.2. - Conteúdo do Kmod -

-
-
-
- Aplicativos instalados: - depmod (link para kmod), insmod - (link para kmod), kmod, lsmod (link para kmod), modinfo - (link para kmod), modprobe (link para kmod) e rmmod (link - para kmod) -
-
- Biblioteca instalada: - libkmod.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- depmod -

-
-

- Cria um arquivo de dependência baseado nos símbolos - que ele encontra no conjunto existente de módulos; - esse arquivo de dependência é usado por - modprobe - para carregar automaticamente os módulos exigidos -

-
-

- insmod -

-
-

- Instala um módulo carregável no kernel em execução -

-
-

- kmod -

-
-

- Carrega e descarrega módulos de kernel -

-
-

- lsmod -

-
-

- Lista módulos atualmente carregados -

-
-

- modinfo -

-
-

- Examina um arquivo objeto associado com um módulo - de kernel e exibe qualquer informação que ele possa - coletar -

-
-

- modprobe -

-
-

- Usa um arquivo de dependência, criado por - depmod, para - carregar automaticamente módulos relevantes -

-
-

- rmmod -

-
-

- Descarrega módulos a partir do kernel em execução -

-
-

- libkmod -

-
-

- Essa biblioteca é usada por outros aplicativos para - carregar e descarregar módulos de kernel -

-
-
-
-
-
-
-
-
-

- 8.48. Libelf oriundo de - Elfutils-0.186 -

-
-
-
-
-

- Libelf é uma biblioteca para lidar com arquivos ELF - (Executable and Linkable Format). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 116 MB -
-
-
-
-
-

- 8.48.1. Instalação do Libelf -

-

- Libelf é parte do pacote elfutils-0.186. Use o - elfutils-0.186.tar.bz2 como o tarball fonte. -

-

- Prepare Libelf para compilação: -

-
./configure --prefix=/usr                \
-            --disable-debuginfod         \
-            --enable-libdebuginfod=dummy
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale apenas Libelf: -

-
make -C libelf install
-install -vm644 config/libelf.pc /usr/lib/pkgconfig
-rm /usr/lib/libelf.a
-
-
-

- 8.48.2. Conteúdo do Libelf -

-
-
-
- Biblioteca instalada: - libelf.so (link simbólico) e - libelf-0.186.so -
-
- Diretório instalado: - /usr/include/elfutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libelf -

-
-

- Contém funções de API para lidar com arquivos - objeto ELF -

-
-
-
-
-
-
-
-
-

- 8.49. Libffi-3.4.2 -

-
-
-
-
-

- A biblioteca Libffi fornece uma interface de programação - portável e de alto nível para várias convenções de chamada. - Isso permite a uma(m) programadora(r) chamar qualquer função - especificada por uma descrição de interface de chamada em - tempo de execução. -

-
-
-
- Tempo aproximado de - construção: 1,9 UPC -
-
- Espaço em disco - exigido: 10 MB -
-
-
-
-
-

- 8.49.1. Instalação do Libffi -

-
-

- Nota -

-

- Semelhante a GMP, libffi constrói com otimizações - específicas para o processador em uso. Se construir para - outro sistema, então exporte CFLAGS e CXXFLAGS para - especificar uma construção genérica para sua arquitetura. - Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. -

-
-

- Prepare libffi para compilação: -

-
./configure --prefix=/usr          \
-            --disable-static       \
-            --with-gcc-arch=native \
-            --disable-exec-static-tramp
-
-

- O significado da opção de configure: -

-
-
- --with-gcc-arch=native -
-
-

- Garante que GCC otimiza para o sistema atual. Se isso - não for especificado, então o sistema é presumido e o - código gerado talvez não esteja correto para alguns - sistemas. Se o código gerado será copiado de um sistema - nativo para um sistema menos capaz, então use o sistema - menos capaz como um parâmetro. Para detalhes acerca de - tipos de sistema alternativos, veja-se - as opções de x86 no manual do GCC. -

-
-
- --disable-exec-static-tramp -
-
-

- Desabilita o suporte de trampolim estático. Ele é uma - nova característica de segurança em libffi, porém - alguns pacotes BLFS (notadamente GJS e gobject-introspection) não foram - adaptados para ele. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.49.2. - Conteúdo do Libffi -

-
-
-
- Biblioteca instalada: - libffi.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libffi -

-
-

- contém as funções da API da interface de função - estrangeira -

-
-
-
-
-
-
-
-
-

- 8.50. Python-3.10.2 -

-
-
-
-
-

- O pacote Python 3 contém o ambiente Python de - desenvolvimento. Ele é útil para programação orientada a - objetos, escrita de scripts, prototipagem de aplicativos - grandes, ou desenvolvimento de aplicações inteiras. -

-
-
-
- Tempo aproximado de - construção: 4,3 UPC -
-
- Espaço em disco - exigido: 275 MB -
-
-
-
-
-

- 8.50.1. Instalação do Python 3 -

-

- Prepare Python para compilação: -

-
./configure --prefix=/usr        \
-            --enable-shared      \
-            --with-system-expat  \
-            --with-system-ffi    \
-            --with-ensurepip=yes \
-            --enable-optimizations
-
-

- O significado das opções de configure: -

-
-
- --with-system-expat -
-
-

- Essa chave habilita vinculação contra a versão de - sistema do Expat. -

-
-
- --with-system-ffi -
-
-

- Essa chave habilita vinculação contra a versão de - sistema de libffi. -

-
-
- --with-ensurepip=yes -
-
-

- Essa chave habilita construir os aplicativos de - empacotamento pip e setuptools. -

-
-
- --enable-optimizations -
-
-

- Essa chave habilita otimizações estáveis, porém - onerosas. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Executar os testes neste ponto não é recomendado. Os testes - são conhecidos por travar indefinidamente dentro de um - ambiente LFS parcial. Se desejado, então os testes podem ser - reexecutados ao final deste capítulo ou quando Python 3 for - reinstalado em BLFS. Para executar os testes de qualquer - maneira, emita make - test. -

-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação pré-formatada: -

-
install -v -dm755 /usr/share/doc/python-3.10.2/html
-
-tar --strip-components=1  \
-    --no-same-owner       \
-    --no-same-permissions \
-    -C /usr/share/doc/python-3.10.2/html \
-    -xvf ../python-3.10.2-docs-html.tar.bz2
-
-

- O significado dos comandos de instalação de - documentação: -

-
-
- --no-same-owner e --no-same-permissions -
-
-

- Garanta que os arquivos instalados tenham a propriedade - e as permissões corretas. Sem essas opções, usar - tar instalará os - arquivos de pacote com os valores da(o) criadora(r) - upstream. -

-
-
-
-
-
-

- 8.50.2. - Conteúdo do Python 3 -

-
-
-
- Aplicativos instalados: - 2to3, idle3, pip3, pydoc3, python3 - e python3-config -
-
- Bibliotecas instaladas: - libpython3.10.so e - libpython3.so -
-
- Diretórios instalados: - /usr/include/python3.10, - /usr/lib/python3 e /usr/share/doc/python-3.10.2 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- 2to3 -

-
-

- é um aplicativo Python que lê código fonte - Python 2.x e - aplica uma série de consertos para transformá-lo em - código Python 3.x - válido -

-
-

- idle3 -

-
-

- é um script encapsulador que abre um editor GUI - ciente de Python. - Para esse script executar, você precisa ter - instalado Tk antes - do Python, de forma que o módulo Tkinter Python - seja construído -

-
-

- pip3 -

-
-

- O instalador de pacote para Python. Você pode usar - pip para instalar pacotes originários do Python - Package Index e outros índices -

-
-

- pydoc3 -

-
-

- é a ferramenta de documentação Python -

-
-

- python3 -

-
-

- é uma linguagem de programação orientada a objeto, - interativa e interpretada -

-
-
-
-
-
-
-
-
-

- 8.51. Ninja-1.10.2 -

-
-
-
-
-

- Ninja é um sistema de construção pequeno com um foco em - velocidade. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 64 MB -
-
-
-
-
-

- 8.51.1. Instalação do Ninja -

-

- Quando executado, ninja normalmente executa um número máximo - de processos em paralelo. Por padrão, esse é o número de - núcleos no sistema mais dois. Em alguns casos, isso pode - superaquecer uma CPU ou deixar o sistema sem memória. Se - executar a partir da linha de comando, então passar um - parâmetro -jN limitará o número de processos paralelos, porém - alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. -

-

- Usar o procedimento opcional abaixo permite que uma(m) - usuária(o) limite o número de processos paralelos via uma - variável de ambiente, NINJAJOBS. Por exemplo, configurar: -

-
export NINJAJOBS=4
-

- limitará ninja a quatro processos paralelos. -

-

- Se desejado, então adicione a capacidade de usar a variável - de ambiente NINJAJOBS executando: -

-
sed -i '/int Guess/a \
-  int   j = 0;\
-  char* jobs = getenv( "NINJAJOBS" );\
-  if ( jobs != NULL ) j = atoi( jobs );\
-  if ( j > 0 ) return j;\
-' src/ninja.cc
-

- Construa Ninja com: -

-
python3 configure.py --bootstrap
-
-

- O significado da opção de construção: -

-
-
- --bootstrap -
-
-

- Esse parâmetro força ninja a reconstruir ele próprio - para o sistema atual. -

-
-
-
-

- Para testar os resultados, execute: -

-
./ninja ninja_test
-./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
-

- Instale o pacote: -

-
install -vm755 ninja /usr/bin/
-install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
-install -vDm644 misc/zsh-completion  /usr/share/zsh/site-functions/_ninja
-
-
-

- 8.51.2. - Conteúdo do Ninja -

-
-
-
- Aplicativo instalado: - ninja -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- ninja -

-
-

- é o sistema de construção Ninja -

-
-
-
-
-
-
-
-
-

- 8.52. Meson-0.61.1 -

-
-
-
-
-

- Meson é um sistema de construção de código fonte aberto - destinado para ser ambos extremamente rápido e tão amigável - à(ao) usuária(o) quanto possível. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 41 MB -
-
-
-
-
-

- 8.52.1. Instalação do Meson -

-

- Compile Meson com o seguinte comando: -

-
python3 setup.py build
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
python3 setup.py install --root=dest
-cp -rv dest/* /
-install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson
-install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson
-
-

- O significado dos parâmetros de install: -

-
-
- --root=dest -
-
-

- Por padrão, python3 - setup.py install instala vários - arquivos (tais como páginas de manual) em Python Eggs. - Com um local raiz especificado, setup.py instala - esses arquivos na hierarquia padrão. Então a hierarquia - pode apenas ser copiada para o local padrão. -

-
-
-
-
-
-

- 8.52.2. - Conteúdo do Meson -

-
-
-
- Aplicativo instalado: - meson -
-
- Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info - e /usr/lib/python3.10/site-packages/mesonbuild -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- meson -

-
-

- Um sistema de construção de alta produtividade -

-
-
-
-
-
-
-
-
-

- 8.53. Coreutils-9.0 -

-
-
-
-
-

- O pacote Coreutils contém utilitários para mostrar e - configurar as características básicas de sistema. -

-
-
-
- Tempo aproximado de - construção: 2,6 UPC -
-
- Espaço em disco - exigido: 153 MB -
-
-
-
-
-

- 8.53.1. Instalação do Coreutils -

-

- POSIX exige que aplicativos originários do Coreutils - reconheçam limites de carácter corretamente mesmo em locales - multibyte. A seguinte correção conserta essa não-conformidade - e outros defeitos relacionados à internacionalização. -

-
patch -Np1 -i ../coreutils-9.0-i18n-1.patch
-
-

- Nota -

-

- No passado, muitos defeitos foram encontrados nessa - correção. Quando reportar novos defeitos para as(os) - mantenedoras(es) do Coreutils, por favor verifique primeiro - se eles são reproduzíveis sem essa correção. -

-
-

- Agora, conserte um problema com valores de retorno de chmod: -

-
patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch
-

- Agora prepare Coreutils para compilação: -

-
autoreconf -fiv
-FORCE_UNSAFE_CONFIGURE=1 ./configure \
-            --prefix=/usr            \
-            --enable-no-install-program=kill,uptime
-
-

- O significado das opções de configure: -

-
-
- autoreconf -
-
-

- A correção para internacionalização modificou o sistema - de construção do pacote, então os arquivos de - configuração tem de ser regenerados. -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Essa variável de ambiente permite que o pacote seja - construído como a(o) usuária(o) root. -

-
-
- --enable-no-install-program=kill,uptime -
-
-

- O propósito dessa chave é o de impedir que o Coreutils - instale binários que serão instalados por outros - pacotes posteriormente. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Pule para Instale o pacote se não executar - a suíte de teste. -

-

- Agora a suíte de teste está pronta para ser executada. - Primeiro, execute os testes que são destinados a serem - executados como usuária(o) root: -

-
make NON_ROOT_USERNAME=tester check-root
-

- Nós vamos executar o resto dos testes como a(o) usuária(o) - tester. Certos testes exigem - que a(o) usuária(o) seja um membro de mais que um grupo. Para - que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -

-
echo "dummy:x:102:tester" >> /etc/group
-

- Conserte algumas das permissões de modo que a(o) usuária(o) - não-root possa compilar e executar os testes: -

-
chown -Rv tester . 
-

- Agora execute os testes: -

-
su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
-

- O teste test-getlogin é conhecido por falhar dentro do - ambiente chroot do LFS. -

-

- Remova o grupo temporário: -

-
sed -i '/dummy/d' /etc/group
-

- Instale o pacote: -

-
make install
-

- Mova aplicativos para os locais especificados pelo FHS: -

-
mv -v /usr/bin/chroot /usr/sbin
-mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8
-
-
-

- 8.53.2. Conteúdo do Coreutils -

-
-
-
- Aplicativos instalados: - [, b2sum, base32, base64, basename, - basenc, cat, chcon, chgrp, chmod, chown, chroot, cksum, - comm, cp, csplit, cut, date, dd, df, dir, dircolors, - dirname, du, echo, env, expand, expr, factor, false, fmt, - fold, groups, head, hostid, id, install, join, link, ln, - logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, - nice, nl, nohup, nproc, numfmt, od, paste, pathchk, - pinky, pr, printenv, printf, ptx, pwd, readlink, - realpath, rm, rmdir, runcon, seq, sha1sum, sha224sum, - sha256sum, sha384sum, sha512sum, shred, shuf, sleep, - sort, split, stat, stdbuf, stty, sum, sync, tac, tail, - tee, test, timeout, touch, tr, true, truncate, tsort, - tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, - whoami e yes -
-
- Biblioteca instalada: - libstdbuf.so (em - /usr/libexec/coreutils) -
-
- Diretório instalado: - /usr/libexec/coreutils -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- [ -

-
-

- É um comando atual, /usr/bin/[, que é um sinônimo - para o comando test -

-
-

- base32 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base32 (RFC 4648) -

-
-

- base64 -

-
-

- Codifica e decodifica dados de acordo com a - especificação base64 (RFC 4648) -

-
-

- b2sum -

-
-

- Imprime ou verifica somas de verificação BLAKE2 - (512 bits) -

-
-

- basename -

-
-

- Remove qualquer caminho e um dado sufixo de um nome - de arquivo -

-
-

- basenc -

-
-

- Codifica ou decodifica dados usando vários - algoritmos -

-
-

- cat -

-
-

- Concatena arquivos para saída padrão -

-
-

- chcon -

-
-

- Muda contexto de segurança para arquivos e - diretórios -

-
-

- chgrp -

-
-

- Muda a propriedade do grupo de arquivos e - diretórios -

-
-

- chmod -

-
-

- Muda as permissões de cada arquivo para o modo - dado; o modo pode ser ou uma representação - simbólica das mudanças a fazer ou um número octal - representando as novas permissões -

-
-

- chown -

-
-

- Muda a propriedade da(o) usuária(o) e (ou) grupo de - arquivos e dos diretórios -

-
-

- chroot -

-
-

- Executa um comando com o diretório especificado - como o diretório / -

-
-

- cksum -

-
-

- Imprime a soma de verificação Cyclic Redundancy - Check (CRC) e as contagens de bytes de cada arquivo - especificado -

-
-

- comm -

-
-

- Compara dois arquivos ordenados, exibindo em três - colunas as linhas que são únicas e as linhas que - são comuns -

-
-

- cp -

-
-

- Copia arquivos -

-
-

- csplit -

-
-

- Divide um dado arquivo em vários novos arquivos, - separando-os de acordo com padrões dados ou números - de linha e exibindo a contagem de bytes de cada - novo arquivo -

-
-

- cut -

-
-

- Imprime seções de linhas, selecionando as partes de - acordo com campos ou posições dados -

-
-

- date -

-
-

- Exibe a hora atual no formato dado, ou configura a - data do sistema -

-
-

- dd -

-
-

- Copia um arquivo usando o tamanho de bloco e - contagem dados, enquanto opcionalmente realiza - conversões sobre ele -

-
-

- df -

-
-

- Reporta a quantidade de espaço de disco disponível - (e usada) em todos os sistemas de arquivos - montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados -

-
-

- dir -

-
-

- Lista o conteúdo de cada diretório dado (o mesmo - que o comando ls) -

-
-

- dircolors -

-
-

- Gera comandos para configurar a variável de - ambiente LS_COLOR para - mudar o esquema de cores usado por ls -

-
-

- dirname -

-
-

- Remove o sufixo que não é diretório de um nome de - arquivo -

-
-

- du -

-
-

- Relata a quantidade de espaço de disco usado pelo - diretório atual, por cada diretório dado (incluindo - todos subdiretórios) ou por cada um dos arquivos - dados -

-
-

- echo -

-
-

- Exibe as sequências de caracteres dadas -

-
-

- env -

-
-

- Executa um comando em um ambiente modificado -

-
-

- expand -

-
-

- Converte tabulação para espaços -

-
-

- expr -

-
-

- Avalia expressões -

-
-

- factor -

-
-

- Imprime os fatores primos de todos os números - inteiros especificados -

-
-

- false -

-
-

- Não faz nada, sem sucesso; sempre sai com um código - de status indicando falha -

-
-

- fmt -

-
-

- Reformata os parágrafos nos arquivos dados -

-
-

- fold -

-
-

- Quebra as linhas nos arquivos dados -

-
-

- groups -

-
-

- Relata relacionamentos de membro de grupo de uma(m) - usuária(o) -

-
-

- head -

-
-

- Imprime as primeiras dez linhas (ou o número de - linhas dado) de cada arquivo dado -

-
-

- hostid -

-
-

- Relata o número identificador (em hexadecimal) do - dispositivo -

-
-

- id -

-
-

- Relata o efetivo ID de usuária(o), ID de grupo, e - os relacionamentos de membro de grupo da(o) - usuária(o) atual ou usuária(o) especificada(o) -

-
-

- install -

-
-

- Copia arquivos enquanto configura seus modos de - permissão e, se possível, seus proprietário e grupo -

-
-

- join -

-
-

- Junta as linhas que tem idênticos campos de junção - a partir de dois arquivos separados -

-
-

- link -

-
-

- Cria um hard link com o nome dado para um arquivo -

-
-

- ln -

-
-

- Faz hard links ou soft (simbólico) links entre - arquivos -

-
-

- logname -

-
-

- Relata o nome de login da(o) usuária(o) atual -

-
-

- ls -

-
-

- Lista o conteúdo de cada diretório dado -

-
-

- md5sum -

-
-

- Relata ou verifica somas de verificação Message - Digest 5 (MD5) -

-
-

- mkdir -

-
-

- Cria diretórios com os nomes dados -

-
-

- mkfifo -

-
-

- Cria First-In, First-Outs (FIFOs), um "pipe - nomeado" na linguagem UNIX, com os nomes dados -

-
-

- mknod -

-
-

- Cria nós de dispositivo com os nomes dados; um nó - de dispositivo é um arquivo especial de caractere, - um arquivo especial de bloco ou um FIFO -

-
-

- mktemp -

-
-

- Cria arquivos temporários de uma maneira segura; é - usado em scripts -

-
-

- mv -

-
-

- Move ou renomeia arquivos ou diretórios -

-
-

- nice -

-
-

- Executa um aplicativo com prioridade de agendamento - modificada -

-
-

- nl -

-
-

- Numera as linhas a partir dos arquivos dados -

-
-

- nohup -

-
-

- Executa um comando imune a interrupções, com sua - saída redirecionada para um arquivo de registro -

-
-

- nproc -

-
-

- Imprime o número de unidades de processamento - disponíveis para um processo -

-
-

- numfmt -

-
-

- Converte números para ou de sequências de - caracteres legíveis por humanos -

-
-

- od -

-
-

- Despeja arquivos em octal e outros formatos -

-
-

- paste -

-
-

- Mescla os arquivos dados, unindo linhas - sequencialmente correspondentes lado a lado, - separadas por caracteres de tabulação -

-
-

- pathchk -

-
-

- Verifica se nomes de arquivos são válidos ou - portáveis -

-
-

- pinky -

-
-

- É um cliente de dedo leve; ele relata algumas - informações sobre as(os) usuárias(os) dadas(os) -

-
-

- pr -

-
-

- Pagina e coluna arquivos para impressão -

-
-

- printenv -

-
-

- Imprime o ambiente -

-
-

- printf -

-
-

- Imprime os argumentos dados de acordo com o formato - dado, muito parecido com a função printf do C -

-
-

- ptx -

-
-

- Produz um índice permutado a partir do conteúdo dos - arquivos dados, com cada palavra-chave no contexto - dela -

-
-

- pwd -

-
-

- Relata o nome do diretório de trabalho atual -

-
-

- readlink -

-
-

- Relata o valor do link simbólico dado -

-
-

- realpath -

-
-

- Imprime o caminho resolvido -

-
-

- rm -

-
-

- Remove arquivos ou diretórios -

-
-

- rmdir -

-
-

- Remove diretórios se eles estiverem vazios -

-
-

- runcon -

-
-

- Executa um comando com contexto de segurança - especificado -

-
-

- seq -

-
-

- Imprime uma sequência de números dentro de um dado - intervalo e com um dado incremento -

-
-

- sha1sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm 1 (SHA1) 160 bits -

-
-

- sha224sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 224 bits -

-
-

- sha256sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 256 bits -

-
-

- sha384sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 384 bits -

-
-

- sha512sum -

-
-

- Imprime ou verifica somas de verificação do Secure - Hash Algorithm de 512 bits -

-
-

- shred -

-
-

- Sobrescreve os arquivos dados repetidamente com - padrões complexos, tornando difícil recuperar os - dados -

-
-

- shuf -

-
-

- Embaralha linhas do texto -

-
-

- sleep -

-
-

- Pausa pelo período de tempo dado -

-
-

- sort -

-
-

- Ordena as linhas a partir dos arquivos dados -

-
-

- split -

-
-

- Divide o arquivo dado em pedaços, por tamanho ou - por número de linhas -

-
-

- stat -

-
-

- Exibe a situação de arquivo ou sistema de arquivos -

-
-

- stdbuf -

-
-

- Executa comandos com operações de buffer alteradas - para fluxos padrão deles -

-
-

- stty -

-
-

- Configura ou relata configurações de linha de - terminal -

-
-

- sum -

-
-

- Imprime soma de verificação e contagens de blocos - para cada arquivo dado -

-
-

- sync -

-
-

- Libera buffers do sistema de arquivos; isso força - blocos modificados para o disco e atualiza o super - bloco -

-
-

- tac -

-
-

- Concatena os arquivos dados em ordem reversa -

-
-

- tail -

-
-

- Imprime as últimas dez linhas (ou o número dado de - linhas) de cada arquivo dado -

-
-

- tee -

-
-

- Lê a partir da entrada padrão enquanto escreve - tanto para saída padrão quanto para os arquivos - dados -

-
-

- test -

-
-

- Compara valores e verifica tipos de arquivos -

-
-

- timeout -

-
-

- Executa um comando com um limite de tempo -

-
-

- touch -

-
-

- Muda marcas temporais de arquivo, definindo os - horários de acesso e modificação dos arquivos dados - para o horário atual; arquivos que não existem são - criados com tamanho zero -

-
-

- tr -

-
-

- Traduz, comprime e deleta os caracteres dados a - partir da entrada padrão -

-
-

- true -

-
-

- Não faz nada, com sucesso; sempre sai com um código - de status indicando sucesso -

-
-

- truncate -

-
-

- Comprime ou expande um arquivo para o tamanho - especificado -

-
-

- tsort -

-
-

- Realiza uma ordenação topológica; ele escreve uma - lista completamente ordenada de acordo com a - ordenação parcial em um arquivo dado -

-
-

- tty -

-
-

- Relata o nome de arquivo do terminal conectado à - entrada padrão -

-
-

- uname -

-
-

- Relata informação de sistema -

-
-

- unexpand -

-
-

- Converte espaços para tabulação -

-
-

- uniq -

-
-

- Descarta todas, exceto uma das sucessivas linhas - idênticas -

-
-

- unlink -

-
-

- Remove o arquivo dado -

-
-

- users -

-
-

- Relata os nomes das(os) usuárias(os) atualmente - logados -

-
-

- vdir -

-
-

- É o mesmo que ls - -l -

-
-

- wc -

-
-

- Relata o número de linhas, palavras e bytes para - cada arquivo dado, assim como uma linha de total - quando mais que um arquivo for dado -

-
-

- who -

-
-

- Relata quem está logado -

-
-

- whoami -

-
-

- Relata o nome de usuária(o) associado com o ID de - usuária(o) efetivo atual -

-
-

- yes -

-
-

- Repetidamente retorna y ou uma sequência de - caracteres dada até que seja terminado -

-
-

- libstdbuf -

-
-

- Biblioteca usada por stdbuf -

-
-
-
-
-
-
-
-
-

- 8.54. Check-0.15.2 -

-
-
-
-
-

- Check é uma estrutura de teste de unidade para C. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC (cerca - de 3,8 UPC com os testes) -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.54.1. Instalação do Check -

-

- Prepare Check para compilação: -

-
./configure --prefix=/usr --disable-static
-

- Construa o pacote: -

-
make
-

- Compilação agora está completa. Para executar a suíte de - teste do Check, execute o seguinte comando: -

-
make check
-

- Instale o pacote: -

-
make docdir=/usr/share/doc/check-0.15.2 install
-
-
-

- 8.54.2. - Conteúdo do Check -

-
-
-
- Aplicativo instalado: - checkmk -
-
- Biblioteca instalada: - libcheck.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - -
-

- checkmk -

-
-

- Script awk para gerar testes de unidade C para uso - com a estrutura de teste de unidade do Check -

-
-

- libcheck.{a,so} -

-
-

- Contém funções que permitem que Check seja chamado - a partir de um aplicativo de teste -

-
-
-
-
-
-
-
-
-

- 8.55. Diffutils-3.8 -

-
-
-
-
-

- O pacote Diffutils contém aplicativos que mostram as - diferenças entre arquivos ou diretórios. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 34 MB -
-
-
-
-
-

- 8.55.1. Instalação do Diffutils -

-

- Prepare Diffutils para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.55.2. Conteúdo do Diffutils -

-
-
-
- Aplicativos instalados: - cmp, diff, diff3 e sdiff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- cmp -

-
-

- Compara dois arquivos e relata se ou em quais bytes - eles diferem -

-
-

- diff -

-
-

- Compara dois arquivos ou diretórios e relata quais - linhas nos arquivos diferem -

-
-

- diff3 -

-
-

- Compara três arquivos linha por linha -

-
-

- sdiff -

-
-

- Mescla dois arquivos e interativamente exibe os - resultados -

-
-
-
-
-
-
-
-
-

- 8.56. Gawk-5.1.1 -

-
-
-
-
-

- O pacote Gawk contém aplicativos para manipular arquivos de - texto. -

-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 43 MB -
-
-
-
-
-

- 8.56.1. Instalação do Gawk -

-

- Primeiro, garanta que alguns arquivos desnecessários não - sejam instalados: -

-
sed -i 's/extras//' Makefile.in
-

- Prepare Gawk para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv                                   /usr/share/doc/gawk-5.1.1
-cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1
-
-
-

- 8.56.2. - Conteúdo do Gawk -

-
-
-
- Aplicativos instalados: - awk (link para gawk), gawk e - awk-5.1.1 -
-
- Bibliotecas instaladas: - filefuncs.so, fnmatch.so, fork.so, - inplace.so, intdiv.so, ordchr.so, readdir.so, - readfile.so, revoutput.so, revtwoway.so, rwarray.so e - time.so (todas em /usr/lib/gawk) -
-
- Diretórios instalados: - /usr/lib/gawk, /usr/libexec/awk, - /usr/share/awk e /usr/share/doc/gawk-5.1.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- awk -

-
-

- Um link para gawk -

-
-

- gawk -

-
-

- Um aplicativo para manipular arquivos de texto; é a - implementação GNU do awk -

-
-

- gawk-5.1.1 -

-
-

- Um hard link para gawk -

-
-
-
-
-
-
-
-
-

- 8.57. Findutils-4.9.0 -

-
-
-
-
-

- O pacote Findutils contém aplicativos para procurar arquivos. - Esses aplicativos são fornecidos para procurar recursivamente - dentro de uma árvore de diretório e para criar, manter e - buscar um banco de dados (geralmente mais rápido que o find - recursivo, porém não é confiável se o banco de dados não for - atualizado recentemente). -

-
-
-
- Tempo aproximado de - construção: 0,9 UPC -
-
- Espaço em disco - exigido: 51 MB -
-
-
-
-
-

- 8.57.1. Instalação do Findutils -

-

- Prepare Findutils para compilação: -

-
case $(uname -m) in
-    i?86)   TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-    x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
-esac
-
-

- O significado das opções de configure: -

-
-
- TIME_32_BIT_OK=yes -
-
-

- Essa configuração é necessária para construir em um - sistema de 32 bits. -

-
-
- --localstatedir -
-
-

- Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é - conforme com FHS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
chown -Rv tester .
-su tester -c "PATH=$PATH make check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.57.2. Conteúdo do Findutils -

-
-
-
- Aplicativos instalados: - find, locate, updatedb e - xargs -
-
- Diretório instalado: - /var/lib/locate -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - -
-

- find -

-
-

- Pesquisa em árvores de diretórios dadas por - arquivos correspondendo a critérios especificados -

-
-

- locate -

-
-

- Pesquisa em um banco de dados de nomes de arquivo e - relata os nomes que contém uma sequência de - caracteres dada ou correspondem a um padrão dado -

-
-

- updatedb -

-
-

- Atualiza o banco de dados locate; ele - escaneia o sistema de arquivos inteiro (incluindo - outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca - cada nome de arquivo que ele encontrar no banco de - dados -

-
-

- xargs -

-
-

- Pode ser usado para aplicar um comando dado a uma - lista de arquivos -

-
-
-
-
-
-
-
-
-

- 8.58. Groff-1.22.4 -

-
-
-
-
-

- O pacote Groff contém aplicativos para processar e formatar - texto. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 88 MB -
-
-
-
-
-

- 8.58.1. Instalação do Groff -

-

- Groff espera que a variável de ambiente PAGE contenha o tamanho de papel padrão. Para - usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é - apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado - durante a compilação, ele pode ser substituído posteriormente - ecoando ou A4 ou letter para o arquivo - /etc/papersize. -

-

- Prepare Groff para compilação: -

-
PAGE=<paper_size> ./configure --prefix=/usr
-

- Esse pacote não suporta construção paralela. Compile o - pacote: -

-
make -j1
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.58.2. - Conteúdo do Groff -

-
-
-
- Aplicativos instalados: - addftinfo, afmtodit, chem, eqn, - eqn2graph, gdiffmk, glilypond, gperl, gpinyin, - grap2graph, grn, grodvi, groff, groffer, grog, grolbp, - grolj4, gropdf, grops, grotty, hpftodit, indxbib, lkbib, - lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, - refer, roff2dvi, roff2html, roff2pdf, roff2ps, roff2text, - roff2x, soelim, tbl, tfmtodit e troff -
-
- Diretórios instalados: - /usr/lib/groff, - /usr/share/doc/groff-1.22.4 e /usr/share/groff -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addftinfo -

-
-

- Lê um arquivo de fonte troff e adiciona algumas - informações de métrica de fonte adicionais que são - usadas pelo sistema groff -

-
-

- afmtodit -

-
-

- Cria um arquivo de fonte para uso com groff e - grops -

-
-

- chem -

-
-

- Preprocessador Groff para produzir diagramas de - estrutura química -

-
-

- eqn -

-
-

- Compila descrições de equações embutidas em - arquivos de entrada troff em comandos que são - entendidos por troff -

-
-

- eqn2graph -

-
-

- Converte uma EQN (equação) troff em uma imagem - recortada -

-
-

- gdiffmk -

-
-

- Marca diferenças entre arquivos groff/nroff/troff -

-
-

- glilypond -

-
-

- Transforma partituras escritas na linguagem - lilypond na linguagem groff -

-
-

- gperl -

-
-

- Preprocessador para groff, permitindo adição do - código perl em arquivos groff -

-
-

- gpinyin -

-
-

- Preprocessador para groff, permitindo adição do - idioma semelhante a Chinês Europeu Pinyin em - arquivos groff -

-
-

- grap2graph -

-
-

- Converte um diagrama grap em uma imagem de bitmap - recortada -

-
-

- grn -

-
-

- Um preprocessador groff para - arquivos gremlin -

-
-

- grodvi -

-
-

- Um controlador para groff que produz - formato dvi do TeX -

-
-

- groff -

-
-

- Um frontal para o sistema de formatação de - documentos groff; normalmente, ele executa o - aplicativo troff e um - pós-processador apropriado para o dispositivo - selecionado -

-
-

- groffer -

-
-

- Exibe arquivos groff e páginas de manual em - terminais X e tty -

-
-

- grog -

-
-

- Lê arquivos e advinha quais das opções groff - -e, -man, -me, -mm, -ms, -p, -s - e -t são exigidas para - imprimir arquivos, e relata o comando groff incluindo - aquelas opções -

-
-

- grolbp -

-
-

- É um controlador groff para - impressoras Canon CAPSL (impressoras a laser séries - LBP-4 e LBP-8) -

-
-

- grolj4 -

-
-

- É um controlador para groff que produz - saída no formato PCL5 adequado para uma impressora - HP LaserJet 4 -

-
-

- gropdf -

-
-

- Traduz a saída do GNU troff para PDF -

-
-

- grops -

-
-

- Traduz a saída do GNU troff para - PostScript -

-
-

- grotty -

-
-

- Traduz a saída do GNU troff em uma - forma adequada para dispositivos semelhantes a - máquina de escrever -

-
-

- hpftodit -

-
-

- Cria um arquivo de fonte para uso com groff -Tlj4 a - partir de um arquivo de métrica de fonte rotulada - HP -

-
-

- indxbib -

-
-

- Cria um índice invertido para os bancos de dados - bibliográficos com um arquivo especificado para uso - com refer, - lookbib e - lkbib -

-
-

- lkbib -

-
-

- Pesquisa em bancos de dados bibliográficos por - referências que contenham chaves especificadas e - relata quaisquer referências encontradas -

-
-

- lookbib -

-
-

- Imprime um prompt na saída de erro padrão (a não - ser que a entrada padrão não seja um terminal); lê - uma linha contendo um conjunto de palavras chave a - partir da entrada padrão; pesquisa em bancos de - dados bibliográficos, em um arquivo especificado, - por referências contendo aquelas palavras chave; - imprime quaisquer referências encontradas na saída - padrão; e repete esse processo até o final da - entrada -

-
-

- mmroff -

-
-

- Um preprocessador simples para groff -

-
-

- neqn -

-
-

- Formata equações para saída American Standard Code - for Information Interchange (ASCII) -

-
-

- nroff -

-
-

- Um script que emula o comando nroff usando - groff -

-
-

- pdfmom -

-
-

- É um encapsulador em torno de groff que facilita a - produção de documentos PDF a partir de arquivos - formatados com as macros mom -

-
-

- pdfroff -

-
-

- Cria documentos pdf usando groff -

-
-

- pfbtops -

-
-

- Traduz uma fonte PostScript em formato .pfb para ASCII -

-
-

- pic -

-
-

- Compila descrições de imagens embutidas em arquivos - de entrada troff ou TeX em comandos entendidos por - TeX ou troff -

-
-

- pic2graph -

-
-

- Converte um diagrama PIC em uma imagem recortada -

-
-

- post-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- preconv -

-
-

- Converte codificação de arquivos de entrada em - alguma coisa que o GNU troff entende -

-
-

- pre-grohtml -

-
-

- Traduz a saída do GNU troff para HTML -

-
-

- refer -

-
-

- Copia o conteúdo de um arquivo para a saída padrão, - exceto aquelas linhas entre .[ e .] que são interpretadas - como citações, e linhas entre .R1 e .R2 que são - interpretadas como comandos para como citações são - para serem processadas -

-
-

- roff2dvi -

-
-

- Transforma arquivos roff para o formato DVI -

-
-

- roff2html -

-
-

- Transforma arquivos roff para o formato HTML -

-
-

- roff2pdf -

-
-

- Transforma arquivos roff em PDFs -

-
-

- roff2ps -

-
-

- Transforma arquivos roff em arquivos ps -

-
-

- roff2text -

-
-

- Transforma arquivos roff em arquivos de texto -

-
-

- roff2x -

-
-

- Transforma arquivos roff em outros formatos -

-
-

- soelim -

-
-

- Lê arquivos e substitui linhas da forma - .so arquivo - pelo conteúdo do arquivo mencionado -

-
-

- tbl -

-
-

- Compila descrições de tabelas embutidas em arquivos - de entrada troff em comandos que são entendidos por - troff -

-
-

- tfmtodit -

-
-

- Cria um arquivo fonte para uso com groff -Tdvi -

-
-

- troff -

-
-

- É altamente compatível com o troff do Unix; - ele usualmente deveria ser invocado usando o - comando groff, o qual - também executará preprocessadores e - pós-processadores na ordem apropriada e com as - opções apropriadas -

-
-
-
-
-
-
-
-
-

- 8.59. GRUB-2.06 -

-
-
-
-
-

- O pacote GRUB contém o GRand Unified Bootloader. -

-
-
-
- Tempo aproximado de - construção: 0,7 UPC -
-
- Espaço em disco - exigido: 158 MB -
-
-
-
-
-

- 8.59.1. Instalação do GRUB -

-
-

- Nota -

-

- Se seu sistema tem suporte UEFI e você deseja inicializar - LFS com UEFI, então você pode pular esse pacote em LFS, e - instalar GRUB com suporte UEFI (e as dependências dele) - seguindo - a página BLFS ao final deste capítulo. -

-
-

- Prepare GRUB para compilação: -

-
./configure --prefix=/usr          \
-            --sysconfdir=/etc      \
-            --disable-efiemu       \
-            --disable-werror
-
-

- O significado das novas opções de - configure: -

-
-
- --disable-werror -
-
-

- Isso permite que a construção complete com avisos - introduzidos por mais recentes versões do Flex. -

-
-
- --disable-efiemu -
-
-

- Essa opção minimiza o que é construído desabilitando - uma característica e aplicativos de teste não - necessários para o LFS. -

-
-
-
-

- Compile o pacote: -

-
make
-

- A suíte de teste para esse pacote não é recomendada. A - maioria dos testes depende de pacotes que não estão - disponíveis no limitado ambiente do LFS. Para executar os - testes mesmo assim, execute make check. -

-

- Instale o pacote: -

-
make install
-mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
-

- Usar GRUB para tornar seu sistema LFS inicializável será - discutido em - Seção 10.4, “Usando o GRUB para Configurar o - Processo de Inicialização”. -

-
-
-

- 8.59.2. - Conteúdo do GRUB -

-
-
-
- Aplicativos instalados: - grub-bios-setup, grub-editenv, - grub-file, grub-fstest, grub-glue-efi, grub-install, - grub-kbdcomp, grub-macbless, grub-menulst2cfg, - grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, - grub-mkrescue, grub-mkstandalone, grub-ofpathname, - grub-probe, grub-reboot, grub-render-label, - grub-script-check, grub-set-default, grub-sparc64-setup e - grub-syslinux2cfg -
-
- Diretórios instalados: - /usr/lib/grub, /etc/grub.d, - /usr/share/grub e /boot/grub (quando grub-install for - primeiro executado) -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- grub-bios-setup -

-
-

- É um aplicativo auxiliar para grub-install -

-
-

- grub-editenv -

-
-

- Uma ferramenta para editar o bloco ambiente -

-
-

- grub-file -

-
-

- Verifica se FILE é do tipo especificado -

-
-

- grub-fstest -

-
-

- Ferramenta para depurar o controlador de sistema de - arquivos -

-
-

- grub-glue-efi -

-
-

- Processa imagens EFI ia32 e amd64 e cola elas de - acordo com formato Apple -

-
-

- grub-install -

-
-

- Instala o GRUB no seu controlador -

-
-

- grub-kbdcomp -

-
-

- Script que converte um esquema xkb em um - reconhecido por GRUB -

-
-

- grub-macbless -

-
-

- Bênção estilo Mac sobre arquivos HFS ou HFS+ -

-
-

- grub-menulst2cfg -

-
-

- Converte um menu.lst - do GRUB Legacy em um grub.cfg para uso com GRUB 2 -

-
-

- grub-mkconfig -

-
-

- Gera um arquivo de configuração grub -

-
-

- grub-mkimage -

-
-

- Faz uma imagem inicializável do GRUB -

-
-

- grub-mklayout -

-
-

- Gera um arquivo de esquema de teclado do GRUB -

-
-

- grub-mknetdir -

-
-

- Prepara um diretório de inicialização de rede GRUB -

-
-

- grub-mkpasswd-pbkdf2 -

-
-

- Gera uma senha PBKDF2 encriptada para uso no menu - de inicialização -

-
-

- grub-mkrelpath -

-
-

- Faz um caminho de sistema relativo à raiz dele -

-
-

- grub-mkrescue -

-
-

- Faz uma imagem inicializável do GRUB adequada para - um disquete ou CDROM/DVD -

-
-

- grub-mkstandalone -

-
-

- Gera uma imagem independente -

-
-

- grub-ofpathname -

-
-

- É um programa auxiliar que imprime o caminho de um - dispositivo GRUB -

-
-

- grub-probe -

-
-

- Sonda informação de dispositivo para um caminho ou - dispositivo dado -

-
-

- grub-reboot -

-
-

- Configura a entrada de inicialização padrão para o - GRUB para a próxima inicialização apenas -

-
-

- grub-render-label -

-
-

- Renderiza .disk_label da Apple para Macs da Apple -

-
-

- grub-script-check -

-
-

- Verifica script de configuração do GRUB para erros - de sintaxe -

-
-

- grub-set-default -

-
-

- Configura a entrada de inicialização padrão para o - GRUB -

-
-

- grub-sparc64-setup -

-
-

- É um programa auxiliar para grub-setup -

-
-

- grub-syslinux2cfg -

-
-

- Transforma um arquivo de configuração syslinux no - formato grub.cfg -

-
-
-
-
-
-
-
-
-

- 8.60. Gzip-1.11 -

-
-
-
-
-

- O pacote Gzip contém aplicativos para compressão e - descompressão de arquivos. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 20 MB -
-
-
-
-
-

- 8.60.1. Instalação do Gzip -

-

- Prepare Gzip para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.60.2. - Conteúdo do Gzip -

-
-
-
- Aplicativos instalados: - gunzip, gzexe, gzip, uncompress - (hard link com gunzip), zcat, zcmp, zdiff, zegrep, - zfgrep, zforce, zgrep, zless, zmore e znew -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- gunzip -

-
-

- Descomprime arquivos gzipados -

-
-

- gzexe -

-
-

- Cria arquivos executáveis auto-descomprimíveis -

-
-

- gzip -

-
-

- Comprime os arquivos dados usando codificação - Lempel-Ziv (LZ77) -

-
-

- uncompress -

-
-

- Descomprime arquivos comprimidos -

-
-

- zcat -

-
-

- Descomprime os arquivos gzipados dados para a saída - padrão -

-
-

- zcmp -

-
-

- Executa cmp em arquivos - gzipados -

-
-

- zdiff -

-
-

- Executa diff em arquivos - gzipados -

-
-

- zegrep -

-
-

- Executa egrep em arquivos - gzipados -

-
-

- zfgrep -

-
-

- Executa fgrep em arquivos - gzipados -

-
-

- zforce -

-
-

- Força uma extensão .gz em todos os arquivos dados - que são arquivos gzipados, de modo que o - gzip - não comprimirá eles novamente; isso pode ser útil - quando nomes de arquivo foram truncados durante uma - transferência de arquivo -

-
-

- zgrep -

-
-

- Executa grep em arquivos - gzipados -

-
-

- zless -

-
-

- Executa less em arquivos - gzipados -

-
-

- zmore -

-
-

- Executa more em arquivos - gzipados -

-
-

- znew -

-
-

- Recomprime arquivos oriundos do formato - compress - para formato gzip.Z - para .gz -

-
-
-
-
-
-
-
-
-

- 8.61. IPRoute2-5.16.0 -

-
-
-
-
-

- O pacote IPRoute2 contém aplicativos para redes baseadas em - IPV4 básicas e avançadas. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 15 MB -
-
-
-
-
-

- 8.61.1. Instalação do IPRoute2 -

-

- O aplicativo arpd incluído nesse pacote - não será construído dado que ele é dependente do Berkeley DB, - o qual não é instalado em LFS. Entretanto, um diretório para - arpd e uma - página de manual ainda serão instalados. Impeça isso - executando os comandos abaixo. Se o binário arpd for necessário, então - instruções para compilar o Berkeley DB podem ser encontradas - no Livro BLFS em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html. -

-
sed -i /ARPD/d Makefile
-rm -fv man/man8/arpd.8
-

- Compile o pacote: -

-
make
-

- Esse pacote não tem uma suíte de teste funcional. -

-

- Instale o pacote: -

-
make SBINDIR=/usr/sbin install
-

- Se desejado, então instale a documentação: -

-
mkdir -pv             /usr/share/doc/iproute2-5.16.0
-cp -v COPYING README* /usr/share/doc/iproute2-5.16.0
-
-
-

- 8.61.2. Conteúdo do IPRoute2 -

-
-
-
- Aplicativos instalados: - bridge, ctstat (link para lnstat), - genl, ifcfg, ifstat, ip, lnstat, nstat, routef, routel, - rtacct, rtmon, rtpr, rtstat (link para lnstat), ss e - tc -
-
- Diretórios instalados: - /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- bridge -

-
-

- Configura pontes de redes -

-
-

- ctstat -

-
-

- Utilitário de situação de conexão -

-
-

- genl -

-
-

- Frontal utilitário de link de rede genérico -

-
-

- ifcfg -

-
-

- Um encapsulador de script de shell para o comando - ip - [Note que ele exige os aplicativos arping e - rdisk - originários do pacote iputils encontrado em - http://www.skbuff.net/iputils/] -

-
-

- ifstat -

-
-

- Mostra as estatísticas de interface, incluindo a - quantidade de pacotes transmitidos e recebidos pela - interface -

-
-

- ip -

-
-

- O executável principal. Ele tem várias funções: -

-

- ip link <dispositivo> - permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças -

-

- ip - addr permite usuárias(os) olharem - para endereços e propriedades deles, adicionarem - novos endereços e deletarem antigos -

-

- ip - neighbor permite usuárias(os) - olharem para vínculos de vizinho e propriedades - deles, adicionarem novas entradas de vizinho e - deletarem as antigas -

-

- ip - rule permite usuárias(os) olharem - para políticas de roteamento e mudar elas -

-

- ip - route permite usuárias(os) olharem - para a tabela de roteamento e mudar regras de - tabela de roteamento -

-

- ip - tunnel permite usuárias(os) olharem - para os tuneis IP e propriedades deles, e mudar - elas -

-

- ip - maddr permite usuárias(os) olharem - para os endereços multicast e propriedades deles, e - mudar elas -

-

- ip - mroute permite usuárias(os) - configurarem, mudarem ou deletarem o roteamento - multicast -

-

- ip - monitor permite usuárias(os) - continuamente monitorarem o estado de dispositivos, - endereços e rotas -

-
-

- lnstat -

-
-

- Fornece estatísticas de rede do Linux; ele é uma - substituição difundida e mais completa de - características para o antigo aplicativo - rtstat -

-
-

- nstat -

-
-

- Mostra estatísticas de rede -

-
-

- routef -

-
-

- Um componente do ip - route. Isso é para esvaziar as - tabelas de roteamento -

-
-

- routel -

-
-

- Um componente do ip - route. Isso é para listar as - tabelas de roteamento -

-
-

- rtacct -

-
-

- Exibe o conteúdo de /proc/net/rt_acct -

-
-

- rtmon -

-
-

- Utilitário de monitoramento de rota -

-
-

- rtpr -

-
-

- Converte a saída de ip -o de volta em - um formato legível -

-
-

- rtstat -

-
-

- Utilitário de situação de rota -

-
-

- ss -

-
-

- Similar ao comando netstat; exibe - conexões ativas -

-
-

- tc -

-
-

- Executável de Controle de Tráfego; isso é para - implementações de Quality Of Service (QOS) e Class - Of Service (COS) -

-

- tc - qdisc permite usuárias(os) - configurarem a disciplina de enfileiramento -

-

- tc - class permite usuárias(os) - configurarem classes baseadas no agendamento de - disciplina de enfileiramento -

-

- tc - estimator permite usuárias(os) - estimarem o fluxo de rede dentro de uma rede -

-

- tc - filter permite usuárias(os) - configurarem a filtragem de pacote QOS/COS -

-

- tc - policy permite usuárias(os) - configurarem as políticas de QOS/COS -

-
-
-
-
-
-
-
-
-

- 8.62. Kbd-2.4.0 -

-
-
-
-
-

- O pacote Kbd contém arquivos de tabelas de teclas, fontes de - console e utilitários de teclado. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 33 MB -
-
-
-
-
-

- 8.62.1. Instalação do Kbd -

-

- O comportamento das teclas backspace e delete não é - consistente ao longo dos mapas de teclas no pacote Kbd. A - seguinte correção conserta esse problema para mapas de tecla - i386: -

-
patch -Np1 -i ../kbd-2.4.0-backspace-1.patch
-

- Após corrigir, a tecla backspace gera o carácter com código - 127 e a tecla delete gera uma sequência bem conhecida de - escape. -

-

- Remova o aplicativo redundante resizecons (ele exige que a - defunta svgalib forneça os arquivos de modo de vídeo - para - uso normal setfont dimensiona o - console adequadamente) juntamente com a página de manual - dele. -

-
sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
-sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
-

- Prepare Kbd para compilação: -

-
./configure --prefix=/usr --disable-vlock
-
-

- O significado da opção de configure: -

-
-
- --disable-vlock -
-
-

- Essa opção evita que o utilitário vlock seja - construído, pois ele exige a biblioteca PAM, que não - está disponível no ambiente chroot. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-

- Nota -

-

- Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd - não fornece um mapa de tecla útil onde o regular mapa de - tecla by supõe a codificação - ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla - funcionais separadamente. -

-
-

- Se desejado, então instale a documentação: -

-
mkdir -pv           /usr/share/doc/kbd-2.4.0
-cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0
-
-
-

- 8.62.2. Conteúdo - do Kbd -

-
-
-
- Aplicativos instalados: - chvt, deallocvt, dumpkeys, - fgconsole, getkeycodes, kbdinfo, kbd_mode, kbdrate, - loadkeys, loadunimap, mapscrn, openvt, psfaddtable (link - para psfxtable), psfgettable (link para psfxtable), - psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, - showconsolefont, showkey, unicode_start e - unicode_stop -
-
- Diretórios instalados: - /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, - /usr/share/doc/kbd-2.4.0 e /usr/share/unimaps -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- chvt -

-
-

- Muda o terminal virtual de primeiro plano -

-
-

- deallocvt -

-
-

- Desaloca terminais virtuais não usados -

-
-

- dumpkeys -

-
-

- Despeja as tabelas de tradução de teclado -

-
-

- fgconsole -

-
-

- Imprime o número do terminal virtual ativo -

-
-

- getkeycodes -

-
-

- Imprime a tabela de mapeamento de código de - escaneamento para código de tecla do kernel -

-
-

- kbdinfo -

-
-

- Obtém informação sobre a situação de um console -

-
-

- kbd_mode -

-
-

- Relata ou configura o modo de teclado -

-
-

- kbdrate -

-
-

- Configura as taxas de repetição e atraso de teclado -

-
-

- loadkeys -

-
-

- Carrega as tabelas de tradução de teclado -

-
-

- loadunimap -

-
-

- Carrega a tabela de mapeamento unicode para fonte - do kernel -

-
-

- mapscrn -

-
-

- Um aplicativo obsoleto que costumava carregar uma - tabela de mapeamento de caractere de saída definida - pela(o) usuária(o) para dentro do controlador de - console; isso é feito agora por setfont -

-
-

- openvt -

-
-

- Inicia um aplicativo em um novo terminal virtual - (VT) -

-
-

- psfaddtable -

-
-

- Adiciona uma tabela de carácter Unicode para uma - fonte de console -

-
-

- psfgettable -

-
-

- Extrai a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfstriptable -

-
-

- Remove a tabela de carácter Unicode embutida a - partir de uma fonte de console -

-
-

- psfxtable -

-
-

- Lida com tabelas de carácter Unicode para fontes de - console -

-
-

- setfont -

-
-

- Muda as fontes Enhanced Graphic Adapter (EGA) e - Video Graphics Array (VGA) no console -

-
-

- setkeycodes -

-
-

- Carrega entradas de tabela de mapeamento de código - de escaneamento para código de tecla do kernel; - isso é útil se existirem teclas incomuns no teclado -

-
-

- setleds -

-
-

- Configura os sinalizadores de teclado e Light - Emitting Diodes (LEDs) -

-
-

- setmetamode -

-
-

- Define o manuseio de meta tecla de teclado -

-
-

- setvtrgb -

-
-

- Configura o mapa de cor de console em todos os - terminais virtuais -

-
-

- showconsolefont -

-
-

- Exibe a fonte de tela de console EGA/VGA atual -

-
-

- showkey -

-
-

- Relata os códigos de escaneamento, códigos de tecla - e códigos ASCII das teclas pressionadas no teclado -

-
-

- unicode_start -

-
-

- Põe o teclado e console em modo UNICODE [Não use - esse aplicativo a menos que seu arquivo de mapa de - tecla esteja na codificação ISO-8859-1. Para outras - codificações, esse utilitário produz resultados - incorretos.] -

-
-

- unicode_stop -

-
-

- Reverte teclado e console do modo UNICODE -

-
-
-
-
-
-
-
-
-

- 8.63. Libpipeline-1.5.5 -

-
-
-
-
-

- O pacote Libpipeline contém uma biblioteca para manipular - pipelines de subprocessos em uma maneira flexível e - conveniente. -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 9,7 MB -
-
-
-
-
-

- 8.63.1. Instalação do Libpipeline -

-

- Prepare Libpipeline para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.63.2. Conteúdo do Libpipeline -

-
-
-
- Biblioteca instalada: - libpipeline.so -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- libpipeline -

-
-

- Essa biblioteca é usada para seguramente construir - pipelines entre subprocessos -

-
-
-
-
-
-
-
-
-

- 8.64. Make-4.3 -

-
-
-
-
-

- O pacote Make contém um aplicativo para controlar a geração - de executáveis e outros arquivos não fonte de um pacote a - partir de arquivos fonte. -

-
-
-
- Tempo aproximado de - construção: 0,5 UPC -
-
- Espaço em disco - exigido: 13 MB -
-
-
-
-
-

- 8.64.1. Instalação do Make -

-

- Prepare Make para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.64.2. - Conteúdo do Make -

-
-
-
- Aplicativo instalado: - make -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- make -

-
-

- Automaticamente determina quais partes de um pacote - precisam ser (re)compiladas e então emite os - comandos relevantes -

-
-
-
-
-
-
-
-
-

- 8.65. Patch-2.7.6 -

-
-
-
-
-

- O pacote Patch contém um aplicativo para modificar ou criar - arquivos por aplicação de um arquivo patch - tipicamente criado pelo aplicativo diff. -

-
-
-
- Tempo aproximado de - construção: 0,2 UPC -
-
- Espaço em disco - exigido: 12 MB -
-
-
-
-
-

- 8.65.1. Instalação do Patch -

-

- Prepare Patch para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.65.2. - Conteúdo do Patch -

-
-
-
- Aplicativo instalado: - patch -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- patch -

-
-

- Modifica arquivos de acordo com um arquivo de - correção (Um arquivo de correção normalmente é uma - listagem de diferenças criada com o aplicativo - diff. - Aplicando essas diferenças aos arquivos originais, - patch - cria as versões corrigidas.) -

-
-
-
-
-
-
-
-
-

- 8.66. Tar-1.34 -

-
-
-
-
-

- O pacote Tar fornece a habilidade para criar arquivamentos - tar bem como realizar vários outros tipos de manipulação de - arquivamento. Tar pode ser usado em arquivamentos previamente - criados para extrair arquivos, para armazenar arquivos - adicionais, ou para atualizar ou listar arquivos que já foram - armazenados. -

-
-
-
- Tempo aproximado de - construção: 1,7 UPC -
-
- Espaço em disco - exigido: 40 MB -
-
-
-
-
-

- 8.66.1. Instalação do Tar -

-

- Prepare Tar para compilação: -

-
FORCE_UNSAFE_CONFIGURE=1  \
-./configure --prefix=/usr
-
-

- O significado da opção de configure: -

-
-
- FORCE_UNSAFE_CONFIGURE=1 -
-
-

- Isso força o teste para mknod ser executado como root. Geralmente é considerado - perigoso executar esse teste como a(o) usuária(o) - root, porém como ele - está sendo executado em um sistema que foi apenas - parcialmente construído, substituir ele está OK. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Um teste, capabilities: binary store/restore, é conhecido por - falhar se ele for executado (LFS carece de selinux), porém - será pulado se o kernel do anfitrião não suportar atributos - estendidos no sistema de arquivos usado para construir LFS. -

-

- Instale o pacote: -

-
make install
-make -C doc install-html docdir=/usr/share/doc/tar-1.34
-
-
-

- 8.66.2. Conteúdo - do Tar -

-
-
-
- Aplicativo instalado: - tar -
-
- Diretório instalado: - /usr/share/doc/tar-1.34 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - -
-

- tar -

-
-

- Cria, extrai arquivos originários de, e lista o - conteúdo de arquivamentos, também conhecidos como - tarballs -

-
-
-
-
-
-
-
-
-

- 8.67. Texinfo-6.8 -

-
-
-
-
-

- O pacote Texinfo contém aplicativos para leitura, escrita e - conversão de páginas info. -

-
-
-
- Tempo aproximado de - construção: 0,6 UPC -
-
- Espaço em disco - exigido: 112 MB -
-
-
-
-
-

- 8.67.1. Instalação do Texinfo -

-

- Prepare Texinfo para compilação: -

-
./configure --prefix=/usr
-

- Novamente, conserte um problema ao construir o pacote com - Glibc-2.34 ou posterior: -

-
sed -e 's/__attribute_nonnull__/__nonnull/' \
-    -i gnulib/lib/malloc/dynarray-skeleton.c
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-

- Opcionalmente, instale os componentes pertencentes a uma - instalação de TeX: -

-
make TEXMF=/usr/share/texmf install-tex
-
-

- O significado do parâmetro de make: -

-
-
- TEXMF=/usr/share/texmf -
-
-

- A variável de arquivo make TEXMF mantém o local da raiz da árvore - do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. -

-
-
-
-

- O sistema de documentação Info usa um arquivo de texto - simples para manter a lista de entradas de menu dele. O - arquivo está localizado em /usr/share/info/dir. Infelizmente, devido a - problemas ocasionais nos arquivos Make de vários pacotes, ele - pode as vezes sair de sincronia com as páginas info - instaladas no sistema. Se o arquivo /usr/share/info/dir alguma vez precisar ser - recriado, então os seguintes comandos opcionais realizarão a - tarefa: -

-
pushd /usr/share/info
-  rm -v dir
-  for f in *
-    do install-info $f dir 2>/dev/null
-  done
-popd
-
-
-

- 8.67.2. - Conteúdo do Texinfo -

-
-
-
- Aplicativos instalados: - info, install-info, makeinfo (link - para texi2any), pdftexi2dvi, pod2texi, texi2any, - texi2dvi, texi2pdf e texindex -
-
- Bibliotecas instaladas: - MiscXS.so, Parsetexi.so e - XSParagraph.so (todas em /usr/lib/texinfo) -
-
- Diretórios instalados: - /usr/share/texinfo e - /usr/lib/texinfo -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- info -

-
-

- Usado para ler páginas info as quais são similares - a páginas de manual, porém frequentemente vão muito - mais fundo que somente explanar todas as opções de - linha de comando disponíveis [Por exemplo, compare - man - bison e info bison] -

-
-

- install-info -

-
-

- Usado para instalar páginas info; ele atualiza - entradas no arquivo de índice info -

-
-

- makeinfo -

-
-

- Traduz os documentos fonte do Texinfo dados para - páginas info, texto simples ou HTML -

-
-

- pdftexi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- pod2texi -

-
-

- Converte Pod para formato Texinfo -

-
-

- texi2any -

-
-

- Traduz documentação fonte do Texinfo para vários - outros formatos -

-
-

- texi2dvi -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo independente de dispositivo que pode ser - impresso -

-
-

- texi2pdf -

-
-

- Usado para formatar o documento do Texinfo dado em - um arquivo Portable Document Format (PDF) -

-
-

- texindex -

-
-

- Usado para ordenar arquivos de índice do Texinfo -

-
-
-
-
-
-
-
-
-

- 8.68. Vim-8.2.4383 -

-
-
-
-
-

- O pacote Vim contém um editor de texto poderoso. -

-
-
-
- Tempo aproximado de - construção: 2,4 UPC -
-
- Espaço em disco - exigido: 206 MB -
-
-
-
-

- Alternativas ao Vim -

-

- Se você preferir outro editor—como Emacs, Joe ou - Nano—por favor consulte - https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/editors.html - para instruções de instalação sugeridas. -

-
-
-
-

- 8.68.1. Instalação do Vim -

-

- Primeiro, mude o local padrão do arquivo de configuração - vimrc para /etc: -

-
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
-

- Prepare vim para compilação: -

-
./configure --prefix=/usr
-

- Compile o pacote: -

-
make
-

- Para preparar os testes, garanta que usuária(o) tester pode escrever na árvore de fonte: -

-
chown -Rv tester .
-

- Agora execute os testes como usuária(o) tester: -

-
su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
-

- A suíte de teste emite muitos dados binários para a tela. - Isso pode causar problemas com as configurações do terminal - atual. O problema pode ser evitado redirecionando a saída - para um arquivo de registro conforme mostrado acima. Um teste - bem sucedido resultará nas palavras "ALL DONE" no arquivo de - registro ao completar. -

-

- Instale o pacote: -

-
make install
-

- Muitas(os) usuárias(os) estão acostumadas(os) a usar - vi em vez de - vim. Para - permitir a execução do vim quando usuárias(os) - habitualmente digitarem vi, crie um link simbólico - para ambos o binário e a página de manual nos idiomas - fornecidos: -

-
ln -sv vim /usr/bin/vi
-for L in  /usr/share/man/{,*/}man1/vim.1; do
-    ln -sv vim.1 $(dirname $L)/vi.1
-done
-

- Por padrão, a documentação do vim é instalada em /usr/share/vim. O seguinte link simbólico - permite que a documentação seja acessada via /usr/share/doc/vim-8.2.4383, tornando ela - consistente com o local da documentação para outros pacotes: -

-
ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383
-

- Se um X Window System vier a ser instalado no sistema LFS, - então talvez seja necessário recompilar vim após instalar X. - O Vim vem com uma versão GUI do editor que exige o X e - algumas bibliotecas adicionais para ser instalada. Para mais - informações sobre esse processo, consulte a documentação de - vim e a página de instalação de vim no livro BLFS em - - https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/vim.html. -

-
-
-

- 8.68.2. Configurando Vim -

-

- Por padrão, vim - executa em modo incompatível com vi. Isso talvez seja novo - para usuárias(os) que usaram outros editores no passado. A - configuração nocompatible está incluída - abaixo para destacar o fato de que um novo comportamento está - sendo usado. Ela também lembra àquelas(es) que mudariam para - o modo compatible que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é - necessário, pois ela muda outras configurações, e - substituições precisam vir após essa configuração. Crie um - arquivo de configuração vim padrão executando o - seguinte: -

-
cat > /etc/vimrc << "EOF"
-" Begin /etc/vimrc
-
-" Ensure defaults are set before customizing settings, not after
-source $VIMRUNTIME/defaults.vim
-let skip_defaults_vim=1
-
-set nocompatible
-set backspace=2
-set mouse=
-syntax on
-if (&term == "xterm") || (&term == "putty")
-  set background=dark
-endif
-
-" End /etc/vimrc
-EOF
-

- A configuração set - nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. - Remova o no para manter o comportamento - vi antigo. A - configuração set - backspace=2 permite retroceder sobre quebras de - linha, auto recuos e o início de uma inserção. O parâmetro - syntax on habilita o - destaque de sintaxe do vim. A configuração set mouse= habilita adequada - colagem de texto com o mouse quando trabalhar em chroot ou - por meio de uma conexão remota. Finalmente, a declaração - if com a configuração - set background=dark - corrige a suposição do vim sobre a cor de segundo - plano de alguns emuladores de terminal. Isso dá ao destaque - um esquema de cores melhor para uso no segundo plano preto - desses aplicativos. -

-

- Documentação para outras opções disponíveis pode ser obtida - executando o seguinte comando: -

-
vim -c ':options'
-
-

- Nota -

-

- Por padrão, vim instala apenas arquivos de soletrar para o - idioma inglês. Para instalar arquivos de soletrar para seu - idioma preferido, baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e codificação de - caracter a partir de ftp://ftp.vim.org/pub/vim/runtime/spell/ - e salve-os em /usr/share/vim/vim82/spell/. -

-

- Para usar esses arquivos de soletrar, alguma configuração - em /etc/vimrc é necessária, - por exemplo: -

-
set spelllang=en,ru
-set spell
-

- Para mais informação, veja o arquivo README apropriado - localizado na URL acima. -

-
-
-
-

- 8.68.3. Conteúdo - do Vim -

-
-
-
- Aplicativos instalados: - ex (link para vim), rview (link - para vim), rvim (link para vim), vi (link para vim), view - (link para vim), vim, vimdiff (link para vim), vimtutor e - xxd -
-
- Diretório instalado: - /usr/share/vim -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ex -

-
-

- Inicia vim em modo ex -

-
-

- rview -

-
-

- É uma versão restrita do view; nenhum - comando de shell pode ser iniciado e view não pode ser - suspenso -

-
-

- rvim -

-
-

- É uma versão restrita do vim; nenhum - comando de shell pode ser iniciado e vim não pode ser - suspenso -

-
-

- vi -

-
-

- Link para vim -

-
-

- view -

-
-

- Inicia vim em modo - somente leitura -

-
-

- vim -

-
-

- É o editor -

-
-

- vimdiff -

-
-

- Edita duas ou três versões de um arquivo com - vim e - exibe diferenças -

-
-

- vimtutor -

-
-

- Ensina as teclas básicas e comandos do vim -

-
-

- xxd -

-
-

- Cria um despejo hexadecimal do arquivo dado; ele - também pode fazer o reverso, de forma que ele pode - ser usado para correção de binário -

-
-
-
-
-
-
-
-
-

- 8.69. MarkupSafe-2.0.1 -

-
-
-
-
-

- MarkupSafe é um módulo do Python que implementa sequência de - caracteres segura XML/HTML/XHTML Markup. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 520 KB -
-
-
-
-
-

- 8.69.1. Instalação do MarkupSafe -

-

- Compile MarkupSafe com o seguinte comando: -

-
python3 setup.py build
-

- Esse pacote não vem com uma suíte de teste. -

-

- Instale o pacote: -

-
python3 setup.py install --optimize=1
-
-
-

- 8.69.2. Conteúdo do MarkupSafe -

-
-
-
- Diretório instalado: - /usr/lib/python3.10/site-packages/MarkupSafe-2.0.1-py3.10.egg -
-
-
-
-
-
-
-
-
-

- 8.70. Jinja2-3.0.3 -

-
-
-
-
-

- Jinja2 é um módulo do Python que implementa uma linguagem de - modelo pitônico simples. -

-
-
-
- Tempo aproximado de - construção: menos que 0,1 - UPC -
-
- Espaço em disco - exigido: 3,7 MB -
-
-
-
-
-

- 8.70.1. Instalação do Jinja2 -

-

- Instale o pacote: -

-
python3 setup.py install --optimize=1
-
-
-

- 8.70.2. - Conteúdo do Jinja2 -

-
-
-
- Diretório instalado: - /usr/lib/python3.10/site-packages/Jinja2-3.0.3-py3.10.egg -
-
-
-
-
-
-
-
-
-

- 8.71. Systemd-250 -

-
-
-
-
-

- O pacote systemd contém aplicativos para controlar a - inicialização, execução e desligamento do sistema. -

-
-
-
- Tempo aproximado de - construção: 2,2 UPC -
-
- Espaço em disco - exigido: 273 MB -
-
-
-
-
-

- 8.71.1. Instalação do systemd -

-

- Primeiro, aplique uma correção para consertar uma - vulnerabilidade de segurança e regressões com nomes de - dispositivo e unidades ociosas: -

-
patch -Np1 -i ../systemd-250-upstream_fixes-1.patch
-

- Remova dois grupos desnecessários, render e sgx, das regras udev padrão: -

-
sed -i -e 's/GROUP="render"/GROUP="video"/' \
-       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
-

- Prepare systemd para compilação: -

-
mkdir -p build
-cd       build
-
-meson --prefix=/usr                 \
-      --sysconfdir=/etc             \
-      --localstatedir=/var          \
-      --buildtype=release           \
-      -Dblkid=true                  \
-      -Ddefault-dnssec=no           \
-      -Dfirstboot=false             \
-      -Dinstall-tests=false         \
-      -Dldconfig=false              \
-      -Dsysusers=false              \
-      -Db_lto=false                 \
-      -Drpmmacrosdir=no             \
-      -Dhomed=false                 \
-      -Duserdb=false                \
-      -Dman=false                   \
-      -Dmode=release                \
-      -Ddocdir=/usr/share/doc/systemd-250 \
-      ..
-
-

- O significado das opções de meson: -

-
-
- --buildtype=release -
-
-

- Essa chave substitui o tipo de construção padrão - (debug), o qual produziria - binários não otimizados. -

-
-
- -Ddefault-dnssec=no -
-
-

- Essa chave desliga o suporte DNSSEC experimental. -

-
-
- -Dfirstboot=false -
-
-

- Essa chave impede a instalação de serviços do systemd - responsáveis por configurar o sistema pela primeira - vez. Eles não são úteis para LFS, pois tudo é feito - manualmente. -

-
-
- -Dinstall-tests=false -
-
-

- Essa chave impede a instalação dos testes compilados. -

-
-
- -Dldconfig=false -
-
-

- Essa chave impede a instalação de uma unidade do - systemd que executa ldconfig ao - inicializar, a qual não é útil para distribuições de - fonte tais como LFS e torna o tempo de inicialização - mais longo. Remova ela se a característica descrita for - desejada. -

-
-
- -Dsysusers=false -
-
-

- Essa chave impede a instalação de serviços do systemd - responsáveis por configurar os arquivos /etc/group e /etc/passwd. Ambos os arquivos foram - criados no capítulo anterior. Esse daemon não é útil em - um sistema LFS dado que contas de usuária(o) são - criadas manualmente. -

-
-
- -Drpmmacrosdir=no -
-
-

- Essa chave desabilita a instalação de Macros RPM para - uso com o systemd, pois LFS não suporta RPM. -

-
-
- -D{userdb,homed}=false -
-
-

- Remova dois daemons que tem dependências que não se - encaixam no escopo do LFS. -

-
-
- -Dman=false -
-
-

- Impeça a geração de páginas de manual para evitar - dependências extras. Nós instalaremos páginas de manual - pré-geradas para o systemd a partir de um tarball - posteriormente. -

-
-
- -Dmode=release -
-
-

- Desabilite algumas características consideradas - experimentais pela(o) upstream. -

-
-
-
-

- Compile o pacote: -

-
ninja
-

- Instale o pacote: -

-
ninja install
-

- Instale as páginas de manual: -

-
tar -xf ../../systemd-man-pages-250.tar.xz --strip-components=1 -C /usr/share/man
-

- Remova um diretório inútil: -

-
rm -rf /usr/lib/pam.d
-

- Crie o arquivo /etc/machine-id - necessitado por systemd-journald: -

-
systemd-machine-id-setup
-

- Configure a estrutura alvo básica: -

-
systemctl preset-all
-
-
-

- 8.71.2. - Conteúdo do systemd -

-
-
-
- Aplicativos instalados: - busctl, coredumpctl, halt (link - simbólico para systemctl), hostnamectl, init, journalctl, - kernel-install, localectl, loginctl, machinectl, - networkctl, oomctl, portablectl, poweroff (link simbólico - para systemctl), reboot (link simbólico para systemctl), - resolvconf (link simbólico para resolvectl), resolvectl, - runlevel (link simbólico para systemctl), shutdown (link - simbólico para systemctl), systemctl, systemd-analyze, - systemd-ask-password, systemd-cat, systemd-cgls, - systemd-cgtop, systemd-creds, systemd-delta, - systemd-detect-virt, systemd-dissect, systemd-escape, - systemd-hwdb, systemd-id128, systemd-inhibit, - systemd-machine-id-setup, systemd-mount, systemd-notify, - systemd-nspawn, systemd-path, systemd-repart, - systemd-resolve (link simbólico para resolvectl), - systemd-run, systemd-socket-activate, - systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, - systemd-tty-ask-password-agent, systemd-umount (link - simbólico para systemd-mount), telinit (link simbólico - para systemctl), timedatectl e udevadm -
-
- Bibliotecas instaladas: - libnss_myhostname.so.2, - libnss_mymachines.so.2, libnss_resolve.so.2, - libnss_systemd.so.2, libsystemd.so, - libsystemd-shared-250.so (em /usr/lib/systemd) e - libudev.so -
-
- Diretórios instalados: - /etc/binfmt.d, /etc/init.d, - /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, - /etc/systemd, /etc/tmpfiles.d, /etc/udev, - /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, - /usr/include/systemd, /usr/lib/binfmt.d, - /usr/lib/environment.d, /usr/lib/kernel, - /usr/lib/modules-load.d, /usr/lib/sysctl.d, - /usr/lib/systemd, /usr/lib/tmpfiles.d, - /usr/share/doc/systemd-250, /usr/share/factory, - /usr/share/systemd, /var/lib/systemd e - /var/log/journal -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- busctl -

-
-

- É usado para introspectar e monitorar o barramento - D-Bus -

-
-

- coredumpctl -

-
-

- É usado para recuperar despejos de memória a partir - do diário do systemd -

-
-

- halt -

-
-

- Normalmente invoca shutdown com a - opção -h, - exceto quando já em nível de execução 0, então ele - informa ao kernel para parar o sistema; ele anota - no arquivo /var/log/wtmp que o sistema está - sendo desligado -

-
-

- hostnamectl -

-
-

- É usado para consultar e mudar o nome de - dispositivo do sistema e configurações relacionadas -

-
-

- init -

-
-

- É o primeiro processo a ser iniciado quando o - kernel inicializou o hardware, o qual assume o - processo de inicialização e inicia todos os - processos de acordo com os arquivos de configuração - dele. Nesse caso, ele inicia o systemd -

-
-

- journalctl -

-
-

- É usado para consultar o conteúdo do diário do - systemd -

-
-

- kernel-install -

-
-

- É usado para adicionar e remover imagens de kernel - e initramfs para e de /boot. Em LFS, isso é feito - manualmente -

-
-

- localectl -

-
-

- É usado para consultar e mudar as configurações de - esquema de locale e teclado do sistema -

-
-

- loginctl -

-
-

- É usado para introspectar e controlar o estado do - Login Manager do systemd -

-
-

- machinectl -

-
-

- É usado para introspectar e controlar o estado do - Virtual Machine e Container Registration Manager do - systemd -

-
-

- networkctl -

-
-

- É usado para introspectar e configurar o estado dos - links de rede configurados por systemd-networkd -

-
-

- oomctl -

-
-

- Controla o daemon Out Of Memory do systemd -

-
-

- portablectl -

-
-

- É usado para anexar ou desanexar serviços portáveis - a partir do sistema local -

-
-

- poweroff -

-
-

- Instrui o kernel a parar o sistema e desligar o - computador (veja-se halt) -

-
-

- reboot -

-
-

- Instrui o kernel a reinicializar o sistema (veja-se - halt) -

-
-

- resolvconf -

-
-

- Registra configuração de servidor de DNS e domínio - com systemd-resolved -

-
-

- resolvectl -

-
-

- Envia comandos de controle para o gerenciador de - resolução de nome de rede, ou resolve nomes de - domínio, endereços IPv4 e IPv6, registros DNS e - serviços -

-
-

- runlevel -

-
-

- Emite o nível de execução anterior e o atual, - conforme anotado no último registro de nível de - execução em /run/utmp -

-
-

- shutdown -

-
-

- Desativa o sistema em uma maneira segura e - protegida, sinalizando para todos os processos e - notificando todas(os) as(os) usuárias(os) - logadas(os) -

-
-

- systemctl -

-
-

- É usado para introspectar e controlar o estado do - gerenciador de sistema e serviço do systemd -

-
-

- systemd-analyze -

-
-

- É usado para determinar o desempenho de - inicialização de sistema da inicialização atual, - bem como identificar unidades do systemd - problemáticas -

-
-

- systemd-ask-password -

-
-

- É usado para consultar uma senha de sistema ou - frase senha a partir da(o) usuária(o), usando uma - mensagem de pergunta especificada na linha de - comando -

-
-

- systemd-cat -

-
-

- É usado para conectar as saídas STDOUT e STDERR de - um processo com o diário do systemd -

-
-

- systemd-cgls -

-
-

- Recursivamente mostra o conteúdo da hierarquia de - grupo de controle do Linux selecionado em uma - árvore -

-
-

- systemd-cgtop -

-
-

- Mostra os grupos de controle superiores da - hierarquia de grupo de controle do Linux local, - ordenados pela carga de CPU, memória e - entradas/saídas de disco deles -

-
-

- systemd-creds -

-
-

- Exibe e processa credenciais -

-
-

- systemd-delta -

-
-

- É usado para identificar e comparar arquivos de - configuração em /etc - que substituem homônimos padrão em /usr -

-
-

- systemd-detect-virt -

-
-

- Detecta se o sistema está sendo executado em um - ambiente virtual, e ajusta udev de acordo -

-
-

- systemd-dissect -

-
-

- É usado para inspecionar imagens de disco de OS -

-
-

- systemd-escape -

-
-

- É usado para escapar sequências de caracteres para - inclusão em nomes de unidade do systemd -

-
-

- systemd-hwdb -

-
-

- É usado para gerenciar o banco de dados de hardware - (hwdb) -

-
-

- systemd-id128 -

-
-

- Gera e imprime sequências de caracteres id128 -

-
-

- systemd-inhibit -

-
-

- É usado para executar um aplicativo com um bloqueio - de inibição de desligamento, suspensão ou - inatividade, impedindo uma ação tal como um - desligamento de sistema até que o processo seja - concluído -

-
-

- systemd-machine-id-setup -

-
-

- É usado por ferramentas de instalador de sistema - para inicializar o ID de máquina armazenado em - /etc/machine-id ao - tempo de instalação com um ID gerado aleatoriamente -

-
-

- systemd-mount -

-
-

- É usado para temporariamente montar ou automontar - discos -

-
-

- systemd-notify -

-
-

- É usado por scripts de daemon para notificar o - sistema init acerca de mudanças de situação -

-
-

- systemd-nspawn -

-
-

- É usado para executar um comando ou OS em um - contêiner de espaço de nome peso leve -

-
-

- systemd-path -

-
-

- É usado para consultar caminhos de sistema e - usuária(o) -

-
-

- systemd-repart -

-
-

- É usado para aumentar e adicionar partições à uma - tabela de partição quando systemd for usado em uma - imagem de OS (por exemplo, um contêiner) -

-
-

- systemd-resolve -

-
-

- É usado para resolver nomes de domínio, endereços - IPV4 e IPv6, registros de recurso DNS e serviços -

-
-

- systemd-run -

-
-

- É usado para criar e iniciar uma unidade .service - ou uma .scope transitória e executar o comando - especificado nela. Isso é útil para validar - unidades do systemd -

-
-

- systemd-socket-activate -

-
-

- É usado para ouvir em dispositivos de soquete e - iniciar um processo após uma conexão bem sucedida - com o soquete -

-
-

- systemd-sysext -

-
-

- Ativa imagens de extensão de sistema -

-
-

- systemd-tmpfiles -

-
-

- Cria, deleta e limpa arquivos e diretórios voláteis - e temporários, baseado no formato de arquivo de - configuração e local especificado em tmpfiles.d -

-
-

- systemd-umount -

-
-

- Desmonta pontos de montagem -

-
-

- systemd-tty-ask-password-agent -

-
-

- É usado para listar e (ou) processar solicitações - de senha do systemd pendentes -

-
-

- telinit -

-
-

- Diz a init para qual - nível de execução mudar -

-
-

- timedatectl -

-
-

- É usado para consultar e mudar o relógio de sistema - e configurações dele -

-
-

- udevadm -

-
-

- É uma ferramenta de administração udev genérica que - controla o daemon udevd, fornece informação a - partir do banco de dados de hardware do Udev, - monitora uevents, aguarda que uevents finalizem, - testa a configuração do udev e deflagra uevents - para um dispositivo dado -

-
-

- libsystemd -

-
-

- É a biblioteca principal de utilitário do systemd -

-
-

- libudev -

-
-

- É uma biblioteca para acessar informação de - dispositivo do Udev -

-
-
-
-
-
-
-
-
-

- 8.72. D-Bus-1.12.20 -

-
-
-
-
-

- D-Bus é um sistema de barramento de mensagem, uma maneira - simples para aplicativos conversarem entre si. D-Bus fornece - ambos um daemon de sistema (para eventos tais como "novo - dispositivo de hardware adicionado" ou "fila de impressora - mudou") e um daemon de sessão de login de usuária(o) (para - necessidades de IPC gerais entre aplicativos de usuária(o)). - Também, o barramento de mensagem é construído no topo de uma - estrutura de envio de mensagem um-a-um, a qual pode ser usada - por quaisquer dois aplicativos para se comunicarem - diretamente (sem transitar pelo daemon de barramento de - mensagem). -

-
-
-
- Tempo aproximado de - construção: 0,1 UPC -
-
- Espaço em disco - exigido: 18 MB -
-
-
-
-
-

- 8.72.1. Instalação do D-Bus -

-

- Prepare D-Bus para compilação: -

-
./configure --prefix=/usr                        \
-            --sysconfdir=/etc                    \
-            --localstatedir=/var                 \
-            --disable-static                     \
-            --disable-doxygen-docs               \
-            --disable-xml-docs                   \
-            --docdir=/usr/share/doc/dbus-1.12.20 \
-            --with-console-auth-dir=/run/console \
-            --with-system-pid-file=/run/dbus/pid \
-            --with-system-socket=/run/dbus/system_bus_socket
-
-

- O significado das opções de configure: -

-
-
- --with-console-auth-dir=/run/console -
-
-

- Isso especifica o local do diretório de autorização do - ConsoleKit. -

-
-
- --with-system-pid-file=/run/dbus/pid - e --with-system-socket=/run/dbus/system_bus_socket -
-
-

- Essas configuram o local do arquivo de PID e soquete de - barramento de sistema para estar em /run, em vez do obsoleto /var/run. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Esse pacote vem com uma suíte de teste, porém ela exige - muitos pacotes que não estão inclusos em LFS. Instruções para - executar a suíte de teste podem ser encontradas no livro BLFS - em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/dbus.html. -

-

- Instale o pacote: -

-
make install
-

- Crie um link simbólico de forma que D-Bus e systemd possam - usar o mesmo arquivo machine-id: -

-
ln -sfv /etc/machine-id /var/lib/dbus
-
-
-

- 8.72.2. - Conteúdo do D-Bus -

-
-
-
- Aplicativos instalados: - dbus-cleanup-sockets, dbus-daemon, - dbus-launch, dbus-monitor, dbus-run-session, dbus-send, - dbus-test-tool, dbus-update-activation-environment e - dbus-uuidgen -
-
- Bibliotecas instaladas: - libdbus-1.{a,so} -
-
- Diretórios instalados: - /etc/dbus-1, /usr/include/dbus-1.0, - /usr/lib/dbus-1.0, /usr/share/dbus-1, - /usr/share/doc/dbus-1.12.20 e /var/lib/dbus -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- dbus-cleanup-sockets -

-
-

- é usado para remover soquetes restantes em um - diretório -

-
-

- dbus-daemon -

-
-

- É o daemon de barramento de mensagem D-Bus -

-
-

- dbus-launch -

-
-

- Inicia dbus-daemon a - partir de um script de shell -

-
-

- dbus-monitor -

-
-

- Monitora mensagens transitando ao longo de um - barramento de mensagem D-Bus -

-
-

- dbus-run-session -

-
-

- Inicia uma instância de barramento de sessão do - dbus-daemon a - partir de um script de shell e inicia um aplicativo - especificado naquela sessão -

-
-

- dbus-send -

-
-

- Envia uma mensagem para um barramento de mensagem - do D-Bus -

-
-

- dbus-test-tool -

-
-

- É uma ferramenta para auxiliar pacotes a testarem o - D-Bus -

-
-

- dbus-update-activation-environment -

-
-

- Atualiza variáveis de ambiente que serão - configuradas para serviços de sessão do - D-Bus -

-
-

- dbus-uuidgen -

-
-

- Gera um ID único universalmente -

-
-

- libdbus-1 -

-
-

- Contém funções de API usadas para comunicar com o - barramento de mensagem do D-Bus -

-
-
-
-
-
-
-
-
-

- 8.73. Man-DB-2.10.1 -

-
-
-
-
-

- O pacote Man-DB contém aplicativos para encontrar e - visualizar páginas de manual. -

-
-
-
- Tempo aproximado de - construção: 0,3 UPC -
-
- Espaço em disco - exigido: 39 MB -
-
-
-
-
-

- 8.73.1. Instalação do Man-DB -

-

- Prepare Man-DB para compilação: -

-
./configure --prefix=/usr                         \
-            --docdir=/usr/share/doc/man-db-2.10.1 \
-            --sysconfdir=/etc                     \
-            --disable-setuid                      \
-            --enable-cache-owner=bin              \
-            --with-browser=/usr/bin/lynx          \
-            --with-vgrind=/usr/bin/vgrind         \
-            --with-grap=/usr/bin/grap
-
-

- O significado das opções de configure: -

-
-
- --disable-setuid -
-
-

- Isso desabilita fazer o aplicativo man configurar uid - para usuária(o) man. -

-
-
- --enable-cache-owner=bin -
-
-

- Isso torna os arquivos de cache de sistema de - propriedade da(o) usuária(o) bin. -

-
-
- --with-... -
-
-

- Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador - de rede baseado em texto (veja-se BLFS para instruções - de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e - grap é - útil para tipografar gráficos em documentos do Groff. - Os aplicativos vgrind e grap normalmente não - são necessários para visualizar páginas de manual. Eles - não são parte do LFS ou BLFS, mas você deveria ser - capaz de instalá-los após terminar o LFS se você - desejar fazer isso. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para testar os resultados, execute: -

-
make check
-

- Instale o pacote: -

-
make install
-
-
-

- 8.73.2. Páginas de Manual não inglesas no LFS -

-

- A seguinte tabela mostra o conjunto de caracteres no qual - Man-DB supõe que as páginas de manual instaladas sob - /usr/share/man/<ll> - estarão codificadas. Em adição a isto, o Man-DB determina - corretamente se páginas de manual instaladas naquele - diretório estão codificadas com UTF-8. -

-
- -

- Tabela 8.1. Codificação de caracteres esperada das - páginas de manual de 8-bit legadas -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Idioma (código) - - Codificação - - Idioma (código) - - Codificação -
- Dinamarquês (da) - - ISO-8859-1 - - Croata (hr) - - ISO-8859-2 -
- Alemão (de) - - ISO-8859-1 - - Húngaro (hu) - - ISO-8859-2 -
- Inglês (en) - - ISO-8859-1 - - Japonês (ja) - - EUC-JP -
- Espanhol (es) - - ISO-8859-1 - - Coreano (ko) - - EUC-KR -
- Estoniano (et) - - ISO-8859-1 - - Lituano (lt) - - ISO-8859-13 -
- Finlandês (fi) - - ISO-8859-1 - - Letão (lv) - - ISO-8859-13 -
- Francês (fr) - - ISO-8859-1 - - Macedônio (mk) - - ISO-8859-5 -
- Irlandês (ga) - - ISO-8859-1 - - Polonês (pl) - - ISO-8859-2 -
- Galego (gl) - - ISO-8859-1 - - Romeno (ro) - - ISO-8859-2 -
- Indonésio (id) - - ISO-8859-1 - - Russo (ru) - - KOI8-R -
- Islandês (is) - - ISO-8859-1 - - Eslovaco (sk) - - ISO-8859-2 -
- Italiano (it) - - ISO-8859-1 - - Esloveno (sl) - - ISO-8859-2 -
- Bokmal norueguês (nb) - - ISO-8859-1 - - Latim sérvio (sr@latin) - - ISO-8859-2 -
- Holandês (nl) - - ISO-8859-1 - - Sérvio (sr) - - ISO-8859-5 -
- Nynorsk norueguês (nn) - - ISO-8859-1 - - Turco (tr) - - ISO-8859-9 -
- Norueguês (no) - - ISO-8859-1 - - Ucraniano (uk) - - KOI8-U -
- Português (pt) - - ISO-8859-1 - - Vietnamita (vi) - - TCVN5712-1 -
- Sueco (sv) - - ISO-8859-1 - - Chinês simplificado (zh_CN) - - GBK -
- Bielorrusso (be) - - CP1251 - - Chinês simplificado, Singapura (zh_SG) - - GBK -
- Búlgaro (bg) - - CP1251 - - Chinês tradicional, Hong Kong (zh_HK) - - BIG5HKSCS -
- Tcheco (cs) - - ISO-8859-2 - - Chinês tradicional (zh_TW) - - BIG5 -
- Grego (el) - - ISO-8859-7 - -   - -   -
-
-

-
-

- Nota -

-

- Páginas de manual em idiomas que não estão na lista não são - suportadas. -

-
-
-
-

- 8.73.3. - Conteúdo do Man-DB -

-
-
-
- Aplicativos instalados: - accessdb, apropos (link para - whatis), catman, lexgrog, man, man-recode, mandb, manpath - e whatis -
-
- Bibliotecas instaladas: - libman.so e libmandb.so (ambas em - /usr/lib/man-db) -
-
- Diretórios instalados: - /usr/lib/man-db, - /usr/libexec/man-db e /usr/share/doc/man-db-2.10.1 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- accessdb -

-
-

- Despeja o conteúdo do banco de dados whatis em formato - legível por humanos -

-
-

- apropos -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas dos comandos de sistema que - contém uma sequência de caracteres dada -

-
-

- catman -

-
-

- Cria ou atualiza páginas de manual pré-formatadas -

-
-

- lexgrog -

-
-

- Exibe informação de sumário em uma linha sobre uma - página de manual dada -

-
-

- man -

-
-

- Formata e exibe a página de manual solicitada -

-
-

- man-recode -

-
-

- Converte páginas de manual para outra codificação -

-
-

- mandb -

-
-

- Cria ou atualiza o banco de dados whatis -

-
-

- manpath -

-
-

- Exibe o conteúdo de $MANPATH ou (se $MANPATH não - estiver configurada) um caminho de busca adequado - baseado nas configurações em man.conf e no ambiente - da(o) usuária(o) -

-
-

- whatis -

-
-

- Pesquisa no banco de dados whatis e exibe as - descrições curtas de comandos do sistema que contém - a palavra chave dada como uma palavra separada -

-
-

- libman -

-
-

- Contém suporte em tempo de execução para o - man -

-
-

- libmandb -

-
-

- Contém suporte em tempo de execução para o - man -

-
-
-
-
-
-
-
-
-

- 8.74. Procps-ng-3.3.17 -

-
-
-
-
-

- O pacote Procps-ng contém aplicativos para monitorar - processos. -

-
-

- Nota -

-

- Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. -

-
-
-
-
- Tempo aproximado de - construção: 0,4 UPC -
-
- Espaço em disco - exigido: 19 MB -
-
-
-
-
-

- 8.74.1. Instalação do Procps-ng -

-

- Prepare procps-ng para compilação: -

-
./configure --prefix=/usr                            \
-            --docdir=/usr/share/doc/procps-ng-3.3.17 \
-            --disable-static                         \
-            --disable-kill                           \
-            --with-systemd
-
-

- O significado da opção de configure: -

-
-
- --disable-kill -
-
-

- Essa chave desabilita a construção do comando - kill que - será instalado pelo pacote util-linux. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar a suíte de teste, execute: -

-
make check
-

- Cinco testes relacionados a pkill são conhecidos por falhar - devido a um problema com testes que não foram atualizados. -

-

- Instale o pacote: -

-
make install
-
-
-

- 8.74.2. - Conteúdo do Procps-ng -

-
-
-
- Aplicativos instalados: - free, pgrep, pidof, pkill, pmap, - ps, pwdx, slabtop, sysctl, tload, top, uptime, vmstat, w - e watch -
-
- Biblioteca instalada: - libprocps.so -
-
- Diretórios instalados: - /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- free -

-
-

- Relata a quantidade de memória livre e usada (ambas - memória física e swap) no sistema -

-
-

- pgrep -

-
-

- Procura por processos baseado nos nomes deles e - outros atributos -

-
-

- pidof -

-
-

- Relata os PIDs dos aplicativos dados -

-
-

- pkill -

-
-

- Sinaliza processos baseado nos nomes deles e outros - atributos -

-
-

- pmap -

-
-

- Relata o mapeamento de memória do processo dado -

-
-

- ps -

-
-

- Lista os processos em execução atualmente -

-
-

- pwait -

-
-

- Aguarda que um processo termine antes de executar. -

-
-

- pwdx -

-
-

- Relata o diretório de trabalho atual de um processo -

-
-

- slabtop -

-
-

- Exibe informações detalhadas de cache de slab do - kernel em tempo real -

-
-

- sysctl -

-
-

- Modifica parâmetros do kernel em tempo de execução -

-
-

- tload -

-
-

- Imprime um gráfico da média de carga de sistema - atual -

-
-

- top -

-
-

- Exibe uma lista dos processos com maior uso de CPU; - ele fornece uma visão contínua da atividade do - processador em tempo real -

-
-

- uptime -

-
-

- Relata há quanto tempo o sistema está executando, - quantas(os) usuárias(os) estão logadas(os) e as - médias de carga de sistema -

-
-

- vmstat -

-
-

- Relata estatísticas de memória virtual, dando - informações sobre processos, memória, paginação, - Entrada/Saída (E/S) de bloco, traps e atividade da - CPU -

-
-

- w -

-
-

- Mostra quais usuárias(os) estão logadas(os) - atualmente, onde e desde quando -

-
-

- watch -

-
-

- Executa um comando dado repetidamente, exibindo a - primeira tela cheia da saída dele; isso permite que - uma(m) usuária(o) observe a mudança de saída ao - longo do tempo -

-
-

- libprocps -

-
-

- Contém as funções usadas pela maioria dos - aplicativos nesse pacote -

-
-
-
-
-
-
-
-
-

- 8.75. Util-linux-2.37.4 -

-
-
-
-
-

- O pacote Util-linux contém aplicativos utilitários diversos. - Entre eles estão utilitários para lidar com sistemas de - arquivos, consoles, partições e mensagens. -

-
-
-
- Tempo aproximado de - construção: 1,1 UPC -
-
- Espaço em disco - exigido: 261 MB -
-
-
-
-
-

- 8.75.1. Instalação do Util-linux -

-

- Prepare Util-linux para compilação: -

-
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
-            --bindir=/usr/bin    \
-            --libdir=/usr/lib    \
-            --sbindir=/usr/sbin  \
-            --docdir=/usr/share/doc/util-linux-2.37.4 \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python
-

- As opções --disable e --without impedem avisos acerca de - construir componentes que exigem pacotes ausentes em LFS ou - estão inconsistentes com aplicativos instalados por outros - pacotes. -

-

- Compile o pacote: -

-
make
-

- Se desejado, execute a suíte de teste como uma(m) usuária(o) - não root: -

-
-

- Atenção -

-

- Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao seu sistema. - Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente - e precisa ser construída como um módulo. Construí-lo dentro - do kernel impedirá a inicialização. Para cobertura - completa, outros pacotes do BLFS precisam ser instalados. - Se desejado, esse teste pode ser executado após reiniciar - no sistema LFS completo e executar: -

-
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
-
-
-

- Nota -

-

- Existe um teste que falha no ambiente chroot e causa os - testes travarem para sempre. O problema não ocorre do lado - de fora do ambiente chroot. Para contornar o problema, - delete o teste: -

-
rm tests/ts/lsns/ioctl_ns
-
-
chown -Rv tester .
-su tester -c "make -k check"
-

- Instale o pacote: -

-
make install
-
-
-

- 8.75.2. Conteúdo do Util-linux -

-
-
-
- Aplicativos instalados: - addpart, agetty, blkdiscard, blkid, - blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, - chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, - dmesg, eject, fallocate, fdisk, fincore, findfs, findmnt, - flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, - getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, - ipcs, irqtop, isosize, kill, last, lastb (link para - last), ldattach, linux32, linux64, logger, look, losetup, - lsblk, lscpu, lsipc, lsirq, lslocks, lslogins, lsmem, - lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, - nsenter, partx, pivot_root, prlimit, readprofile, rename, - renice, resizepart, rev, rfkill, rtcwake, script, - scriptlive, scriptreplay, setarch, setsid, setterm, - sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, - uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, - wall, wdctl, whereis, wipefs, x86_64 e zramctl -
-
- Bibliotecas instaladas: - libblkid.so, libfdisk.so, - libmount.so, libsmartcols.so e libuuid.so -
-
- Diretórios instalados: - /usr/include/blkid, - /usr/include/libfdisk, /usr/include/libmount, - /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e - /var/lib/hwclock -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- addpart -

-
-

- Informa o kernel Linux de novas partições -

-
-

- agetty -

-
-

- Abre uma porta tty, solicita um nome de login e - então invoca o aplicativo login -

-
-

- blkdiscard -

-
-

- Descarta setores em um dispositivo -

-
-

- blkid -

-
-

- Um utilitário de linha de comando para localizar e - imprimir atributos de dispositivo de bloco -

-
-

- blkzone -

-
-

- Executa comando de zona no dispositivo de bloco - dado -

-
-

- blockdev -

-
-

- Permite usuárias(os) chamar ioctls de dispositivo - de bloco a partir da linha de comando -

-
-

- cal -

-
-

- Exibe um calendário simples -

-
-

- cfdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- chcpu -

-
-

- Modifica o estado de CPUs -

-
-

- chmem -

-
-

- Configura memória -

-
-

- choom -

-
-

- Exibe e ajusta a pontuação de matador de OOM -

-
-

- chrt -

-
-

- Manipula atributos de tempo real de um processo -

-
-

- col -

-
-

- Filtra feeds de linha reversa -

-
-

- colcrt -

-
-

- Filtra saída nroff para - terminais que não tem algumas capacidades, tais - como overstriking e half-lines -

-
-

- colrm -

-
-

- Filtra as colunas dadas -

-
-

- column -

-
-

- Formata um arquivo dado em colunas múltiplas -

-
-

- ctrlaltdel -

-
-

- Configura a função da combinação de teclas - Ctrl+Alt+Del para uma reconfiguração hard ou soft -

-
-

- delpart -

-
-

- Pede ao kernel Linux para remover uma partição -

-
-

- dmesg -

-
-

- Despeja as mensagens de inicialização do kernel -

-
-

- eject -

-
-

- Ejeta mídia removível -

-
-

- fallocate -

-
-

- Pré-aloca espaço para um arquivo -

-
-

- fdisk -

-
-

- Manipula a tabela de partição do dispositivo dado -

-
-

- fincore -

-
-

- Conta páginas de conteúdo de arquivo em núcleo -

-
-

- findfs -

-
-

- Encontra um sistema de arquivos pelo rótulo ou - Universally Unique Identifier (UUID) -

-
-

- findmnt -

-
-

- É uma interface de linha de comando para a - biblioteca libmount para funcionar com mountinfo, - fstab e arquivos mtab -

-
-

- flock -

-
-

- Adquire uma trava de arquivo e então executa um - comando com a trava mantida -

-
-

- fsck -

-
-

- É usado para verificar, e opcionalmente reparar, - sistemas de arquivos -

-
-

- fsck.cramfs -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Cramfs no dispositivo dado -

-
-

- fsck.minix -

-
-

- Realiza uma verificação de consistência no sistema - de arquivos Minix no dispositivo dado -

-
-

- fsfreeze -

-
-

- É um encapsulador muito simples em torno de - operações de controlador de kernel de ioctl de - FIFREEZE/FITHAW -

-
-

- fstrim -

-
-

- Descarta blocos não usados em um sistema de - arquivos montado -

-
-

- getopt -

-
-

- Analisa opções na linha de comando dada -

-
-

- hexdump -

-
-

- Despeja o arquivo dado em hexadecimal ou em outro - formato dado -

-
-

- hwclock -

-
-

- Lê ou configura o relógio de hardware do sistema, - também chamado de Real-Time Clock (RTC) ou relógio - do Basic Input-Output System (BIOS) -

-
-

- i386 -

-
-

- Um link simbólico para setarch -

-
-

- ionice -

-
-

- Obtém ou configura a classe de agendamento de io e - prioridade para um aplicativo -

-
-

- ipcmk -

-
-

- Cria vários recursos IPC -

-
-

- ipcrm -

-
-

- Remove o recurso de Inter-Process Communication - (IPC) dado -

-
-

- ipcs -

-
-

- Fornece informação de situação de IPC -

-
-

- irqtop -

-
-

- Exibe informação de contador de interrupção do - kernel em visão estilo top(1) -

-
-

- isosize -

-
-

- Relata o tamanho de um sistema de arquivos iso9660 -

-
-

- kill -

-
-

- Envia sinais para processos -

-
-

- last -

-
-

- Mostra quais usuárias(os) derradeiramente - logaram-se (e deslogaram-se), pesquisando de volta - ao longo do arquivo /var/log/wtmp; ele também mostra - inicializações de sistema, desligamentos e mudanças - de nível de execução -

-
-

- lastb -

-
-

- Exibe as tentativas de login falhas, conforme - registrado em /var/log/btmp -

-
-

- ldattach -

-
-

- Anexa uma disciplina de linha à uma linha serial -

-
-

- linux32 -

-
-

- Um link simbólico para setarch -

-
-

- linux64 -

-
-

- Um link simbólico para setarch -

-
-

- logger -

-
-

- Adiciona a mensagem dada ao registro do sistema -

-
-

- look -

-
-

- Exibe linhas que começam com a sequência de - caracteres dada -

-
-

- losetup -

-
-

- Configura e controla dispositivos de loop -

-
-

- lsblk -

-
-

- Lista informações sobre todos ou dispositivos de - bloco selecionados em um formato semelhante a - árvore -

-
-

- lscpu -

-
-

- Imprime informação de arquitetura da CPU -

-
-

- lsipc -

-
-

- Imprime informação acerca de facilidades de IPC - empregadas atualmente no sistema -

-
-

- lsirq -

-
-

- Exibe informação de contador de interrupção do - kernel -

-
-

- lslocks -

-
-

- Lista travas locais de sistema -

-
-

- lslogins -

-
-

- Lista informação acerca de contas de usuárias(os), - grupos e sistema -

-
-

- lsmem -

-
-

- Lista os intervalos de memória disponível com a - situação online deles -

-
-

- lsns -

-
-

- Lista espaços de nome -

-
-

- mcookie -

-
-

- Gera cookies mágicos (números hexadecimais - aleatórios de 128 bits) para o xauth -

-
-

- mesg -

-
-

- Controla se outras(os) usuárias(os) podem enviar - mensagens para o terminal da(o) usuária(o) atual -

-
-

- mkfs -

-
-

- Constrói um sistema de arquivos em um dispositivo - (geralmente uma partição de disco rígido) -

-
-

- mkfs.bfs -

-
-

- Cria um sistema de arquivos Santa Cruz Operations - (SCO) bfs -

-
-

- mkfs.cramfs -

-
-

- Cria um sistema de arquivos cramfs -

-
-

- mkfs.minix -

-
-

- Cria um sistema de arquivos Minix -

-
-

- mkswap -

-
-

- Inicializa dispositivo ou arquivo dado para ser - usado como uma área de troca -

-
-

- more -

-
-

- Um filtro para paginar ao longo de texto uma tela - de cada vez -

-
-

- mount -

-
-

- Anexa o sistema de arquivos no dispositivo dado a - um diretório especificado na árvore do sistema de - arquivos -

-
-

- mountpoint -

-
-

- Verifica se o diretório é um ponto de montagem -

-
-

- namei -

-
-

- Mostra os links simbólicos nos nomes de caminho - dados -

-
-

- nsenter -

-
-

- Executa um aplicativo com espaços de nome de outros - processos -

-
-

- partx -

-
-

- Informa ao kernel sobre a presença e numeração de - partições no disco -

-
-

- pivot_root -

-
-

- Torna o sistema de arquivos dado o novo sistema de - arquivos raiz do processo atual -

-
-

- prlimit -

-
-

- Obtém e configura um limite de recursos do processo -

-
-

- readprofile -

-
-

- Lê informação de perfil do kernel -

-
-

- rename -

-
-

- Renomeia os arquivos dados, substituindo uma - sequência de caracteres dada por outra -

-
-

- renice -

-
-

- Altera a prioridade de processos em execução -

-
-

- resizepart -

-
-

- Pede ao kernel Linux para redimensionar uma - partição -

-
-

- rev -

-
-

- Inverte as linhas de um arquivo dado -

-
-

- rkfill -

-
-

- Ferramenta para habilitar e desabilitar - dispositivos sem fios -

-
-

- rtcwake -

-
-

- Usado para entrar em um estado de suspensão do - sistema até o horário de ativação especificado -

-
-

- script -

-
-

- Cria um texto datilografado de uma sessão de - terminal -

-
-

- scriptlive -

-
-

- Reexecuta textos datilografados de sessão usando - informação de tempo -

-
-

- scriptreplay -

-
-

- Reproduz textos datilografados usando informações - de tempo -

-
-

- setarch -

-
-

- Muda a arquitetura relatada em um novo ambiente de - aplicativo e configura sinalizadores de - personalidade -

-
-

- setsid -

-
-

- Executa o aplicativo dado em uma nova sessão -

-
-

- setterm -

-
-

- Configura atributos do terminal -

-
-

- sfdisk -

-
-

- Um manipulador de tabela de partição de disco -

-
-

- sulogin -

-
-

- Permite root se - logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) -

-
-

- swaplabel -

-
-

- Permite modificar o UUID e rótulo da área de troca -

-
-

- swapoff -

-
-

- Desabilita dispositivos e arquivos para paginação e - troca -

-
-

- swapon -

-
-

- Habilita dispositivos e arquivos para paginação e - troca e lista os dispositivos e arquivos atualmente - em uso -

-
-

- switch_root -

-
-

- Alterna para outro sistema de arquivos como a raiz - da árvore de montagem -

-
-

- taskset -

-
-

- Recupera ou configura uma afinidade de CPU do - processo -

-
-

- uclampset -

-
-

- Manipula os atributos de fixação de utilização do - sistema ou um processo -

-
-

- ul -

-
-

- Um filtro para traduzir sublinhados em sequências - de escape indicando sublinhamento para o terminal - em uso -

-
-

- umount -

-
-

- Desconecta um sistema de arquivos da árvore de - arquivos do sistema -

-
-

- uname26 -

-
-

- Um link simbólico para setarch -

-
-

- unshare -

-
-

- Executa um aplicativo com alguns espaços de nome - não compartilhados oriundos do pai -

-
-

- utmpdump -

-
-

- Exibe o conteúdo do arquivo de login dado em um - formato mais amigável para a(o) usuária(o) -

-
-

- uuidd -

-
-

- Um daemon usado pela biblioteca UUID para gerar - UUIDs baseados em horário em uma forma segura e - garantidamente única -

-
-

- uuidgen -

-
-

- Cria novos UUIDs. Cada novo UUID pode razoavelmente - ser considerado único entre todos os UUIDs criados, - no sistema local e em outros sistemas, no passado e - no futuro -

-
-

- uuidparse -

-
-

- Um utilitário para analisar identificadores únicos -

-
-

- wall -

-
-

- Exibe o conteúdo de um arquivo ou, por padrão, a - entrada padrão dele, nos terminais de todas(os) - as(os) usuárias(os) logadas(os) atualmente -

-
-

- wdctl -

-
-

- Mostra a situação de vigilante de hardware -

-
-

- whereis -

-
-

- Relata o local do binário, fonte e página de manual - para o comando dado -

-
-

- wipefs -

-
-

- Limpa uma assinatura de sistema de arquivos a - partir de um dispositivo -

-
-

- x86_64 -

-
-

- Um link simbólico para setarch -

-
-

- zramctl -

-
-

- Um aplicativo para configurar e controlar - dispositivos zram (disco ram comprimido) -

-
-

- libblkid -

-
-

- Contém rotinas para identificação de dispositivo e - extração de token -

-
-

- libfdisk -

-
-

- Contém rotinas para manipular tabelas de partição -

-
-

- libmount -

-
-

- Contém rotinas para montagem e desmontagem de - dispositivo de bloco -

-
-

- libsmartcols -

-
-

- Contém rotinas para auxiliar a saída de tela em - forma de tabela -

-
-

- libuuid -

-
-

- Contém rotinas para gerar identificadores únicos - para objetos que talvez sejam acessíveis além do - sistema local -

-
-
-
-
-
-
-
-
-

- 8.76. E2fsprogs-1.46.5 -

-
-
-
-
-

- O pacote e2fsprogs contém os utilitários para lidar com o - sistema de arquivos ext2. Ele - também suporta os sistemas de arquivos de registro em diário - ext3 e ext4. -

-
-
-
- Tempo aproximado de - construção: 4,4 UPC em um - disco giratório, 1,3 UPC em um SSD -
-
- Espaço em disco - exigido: 93 MB -
-
-
-
-
-

- 8.76.1. Instalação do E2fsprogs -

-

- A documentação do e2fsprogs recomenda que o pacote seja - construído em um subdiretório da árvore do fonte: -

-
mkdir -v build
-cd       build
-

- Prepare e2fsprogs para compilação: -

-
../configure --prefix=/usr           \
-             --sysconfdir=/etc       \
-             --enable-elf-shlibs     \
-             --disable-libblkid      \
-             --disable-libuuid       \
-             --disable-uuidd         \
-             --disable-fsck
-
-

- O significado das opções de configure: -

-
-
- --enable-elf-shlibs -
-
-

- Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. -

-
-
- --disable-* -
-
-

- Isso evita que e2fsprogs construa e instale as - bibliotecas libuuid e - libblkid, o daemon - uuidd, e o encapsulador - fsck, uma - vez que o util-linux instala versões mais recentes. -

-
-
-
-

- Compile o pacote: -

-
make
-

- Para executar os testes, execute: -

-
make check
-

- Um teste, u_direct_io, é conhecido por falhar em alguns - sistemas. -

-

- Instale o pacote: -

-
make install
-

- Remova bibliotecas estáticas inúteis: -

-
rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
-

- Esse pacote instala um arquivo gzipado .info, mas não atualiza o arquivo do - sistema dir. Descompacte esse - arquivo e então atualize o arquivo do sistema dir usando os seguintes comandos: -

-
gunzip -v /usr/share/info/libext2fs.info.gz
-install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
-

- Se desejado, crie e instale alguma documentação adicional - executando os seguintes comandos: -

-
makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
-install -v -m644 doc/com_err.info /usr/share/info
-install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
-
-
-

- 8.76.2. Conteúdo do E2fsprogs -

-
-
-
- Aplicativos instalados: - badblocks, chattr, compile_et, - debugfs, dumpe2fs, e2freefrag, e2fsck, e2image, e2label, - e2mmpstatus, e2scrub, e2scrub_all, e2undo, e4crypt, - e4defrag, filefrag, fsck.ext2, fsck.ext3, fsck.ext4, - logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs -
-
- Bibliotecas instaladas: - libcom_err.so, libe2p.so, - libext2fs.so e libss.so -
-
- Diretórios instalados: - /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, - /usr/share/et e /usr/share/ss -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- badblocks -

-
-

- Pesquisa em um dispositivo (geralmente uma partição - de disco) por blocos defeituosos -

-
-

- chattr -

-
-

- Muda os atributos de arquivos em um sistema de - arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em - diário dos sistemas de arquivos ext2 -

-
-

- compile_et -

-
-

- Um compilador de tabela de erro; ele converte uma - tabela de nomes de códigos de erros e mensagens em - um arquivo fonte C adequado para uso com a - biblioteca com_err -

-
-

- debugfs -

-
-

- Um depurador de sistema de arquivo; ele pode ser - usado para examinar e mudar o estado de um sistema - de arquivos ext2 -

-
-

- dumpe2fs -

-
-

- Imprime informação de superblocos e grupo de blocos - para o sistema de arquivos presente em um - dispositivo dado -

-
-

- e2freefrag -

-
-

- Relata informação de fragmentação de espaço livre -

-
-

- e2fsck -

-
-

- É usado para verificar, e opcionalmente reparar - sistemas de arquivos ext2 e sistemas de arquivos - ext3 -

-
-

- e2image -

-
-

- É usado para salvar dados críticos de sistema de - arquivos ext2 para - um arquivo -

-
-

- e2label -

-
-

- Exibe ou muda o rótulo de sistema de arquivos no - sistema de arquivos ext2 presente em um dispositivo - dado -

-
-

- e2mmpstatus -

-
-

- Verifica situação de MMP de um sistema de arquivos - ext4 -

-
-

- e2scrub -

-
-

- Verifica o conteúdo de um sistema de arquivos - ext[234] montado -

-
-

- e2scrub_all -

-
-

- Verifica todos os sistemas de arquivos ext[234] - montados para erros -

-
-

- e2undo -

-
-

- Reexecuta o registro de desfazer undo_log para um - sistema de arquivos ext2/ext3/ext4 encontrado em um - dispositivo [Isso pode ser usado para desfazer uma - operação falha por um aplicativo do e2fsprogs] -

-
-

- e4crypt -

-
-

- Utilitário de encriptação de sistema de arquivos - ext4 -

-
-

- e4defrag -

-
-

- Desfragmentador online para sistemas de arquivo - ext4 -

-
-

- filefrag -

-
-

- Relatórios sobre quão fragmentado um arquivo - específico pode estar -

-
-

- fsck.ext2 -

-
-

- Por padrão verifica sistemas de arquivo - ext2 e é um hard - link para e2fsck -

-
-

- fsck.ext3 -

-
-

- Por padrão verifica sistemas de arquivo - ext3 e é um hard - link para e2fsck -

-
-

- fsck.ext4 -

-
-

- Por padrão verifica sistemas de arquivo - ext4 e é um hard - link para e2fsck -

-
-

- logsave -

-
-

- Salva a saída de um comando em um arquivo de - registro -

-
-

- lsattr -

-
-

- Lista os atributos de arquivos em um segundo - sistema de arquivos estendido -

-
-

- mk_cmds -

-
-

- Converte uma tabela de nomes de comando e mensagens - de ajuda em um arquivo fonte C adequado para uso - com a biblioteca de subsistema libss -

-
-

- mke2fs -

-
-

- Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado -

-
-

- mkfs.ext2 -

-
-

- Por padrão cria sistemas de arquivos ext2 e é um hard link para - mke2fs -

-
-

- mkfs.ext3 -

-
-

- Por padrão cria sistemas de arquivos ext3 e é um hard link para - mke2fs -

-
-

- mkfs.ext4 -

-
-

- Por padrão cria sistemas de arquivos ext4 e é um hard link para - mke2fs -

-
-

- mklost+found -

-
-

- Usado para criar um diretório lost+found em um sistema de - arquivos ext2; ele - pré-aloca blocos de disco para esse diretório para - facilitar a tarefa do e2fsck -

-
-

- resize2fs -

-
-

- Pode ser usado para alargar ou estreitar um sistema - de arquivos ext2 -

-
-

- tune2fs -

-
-

- Ajusta parâmetros ajustáveis de sistema de arquivos - em um sistema de arquivos ext2 -

-
-

- libcom_err -

-
-

- A rotina comum de exibição de erro -

-
-

- libe2p -

-
-

- Usado por dumpe2fs, - chattr e - lsattr -

-
-

- libext2fs -

-
-

- Contém rotinas para habilitar aplicativos de nível - de usuária(o) para lidar com um sistema de arquivos - ext2 -

-
-

- libss -

-
-

- Usado por debugfs -

-
-
-
-
-
-
-
-
-

- 8.77. Acerca dos - Símbolos de Depuração -

-
-
-
-

- A maioria dos aplicativos e bibliotecas é, por padrão, - compilada com símbolos de depuração incluídos (com opção - -g do gcc). Isso significa que - quando depurar um aplicativo ou biblioteca que foi compilado - com informação de depuração, o depurador pode fornecer não - apenas endereços de memória, mas também os nomes das rotinas e - variáveis. -

-

- Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um - exemplo da quantidade de espaço que esses símbolos ocupam: -

-
-
    -
  • -

    - Um binário bash com símbolos de - depuração: 1200 KB -

    -
  • -
  • -

    - Um binário bash sem símbolos de - depuração: 480 KB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de depuração: 87 - MB -

    -
  • -
  • -

    - Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB -

    -
  • -
-
-

- Tamanhos talvez variem dependendo de qual compilador e - biblioteca C foram usados, mas quando comparar aplicativos com - e sem símbolos de depuração, a diferença geralmente será um - fator entre dois e cinco. -

-

- Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco - pode ser recuperado removendo esses símbolos. A próxima seção - mostra como remover todos os símbolos de depuração dos - aplicativos e bibliotecas. -

-
-
-
-
-
-

- 8.78. Despojando -

-
-
-
-

- Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for - uma(m) programadora(r) e não planeja fazer qualquer depuração - nos aplicativos do sistema, então o tamanho do sistema pode ser - reduzido em cerca de 2 GB removendo os símbolos de depuração de - binários e bibliotecas. Isso não causa nenhum inconveniente - além de não mais poder depurar os aplicativos completamente. -

-

- A maioria das pessoas que usam os comandos mencionados abaixo - não experimenta quaisquer dificuldades. Entretanto, é fácil - cometer um erro de digitação e tornar o novo sistema - inutilizável, de forma que, antes de executar os comandos - strip, é uma boa - ideia produzir uma cópia de segurança do sistema LFS no estado - atual dele. -

-

- Os símbolos de depuração para bibliotecas selecionadas estão - colocados em arquivos separados. Essa informação de depuração é - necessária se executar testes de regressão que usam - valgrind ou - gdb posteriormente em BLFS. -

-

- Observe que strip - sobrescreverá o arquivo de binário ou biblioteca que ele está - processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o - strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. - Para evitar isso, nós copiaremos algumas bibliotecas e binários - para /tmp, despojaremos elas lá, - e instalaremos elas de volta com o comando install. Leia a entrada - relacionada em Seção 8.2.1, - “Problemas de Atualização” para a justificativa - para usar o comando install aqui. -

-
-

- Nota -

-

- O nome do carregador de ELF é ld-linux-x86-64.so.2 em - sistemas de 64 bits e ld-linux.so.2 em sistemas de 32 bits. A - construção abaixo seleciona o nome correto para a arquitetura - atual. -

-
-
save_usrlib="$(cd /usr/lib; ls ld-linux*)
-             libc.so.6
-             libthread_db.so.1
-             libquadmath.so.0.0.0
-             libstdc++.so.6.0.29
-             libitm.so.1.0.0
-             libatomic.so.1.2.0"
-
-cd /usr/lib
-
-for LIB in $save_usrlib; do
-    objcopy --only-keep-debug $LIB $LIB.dbg
-    cp $LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-online_usrbin="bash find strip"
-online_usrlib="libbfd-2.38.so
-               libhistory.so.8.1
-               libncursesw.so.6.3
-               libm.so.6
-               libreadline.so.8.1
-               libz.so.1.2.11
-               $(cd /usr/lib; find libnss*.so* -type f)"
-
-for BIN in $online_usrbin; do
-    cp /usr/bin/$BIN /tmp/$BIN
-    strip --strip-unneeded /tmp/$BIN
-    install -vm755 /tmp/$BIN /usr/bin
-    rm /tmp/$BIN
-done
-
-for LIB in $online_usrlib; do
-    cp /usr/lib/$LIB /tmp/$LIB
-    strip --strip-unneeded /tmp/$LIB
-    install -vm755 /tmp/$LIB /usr/lib
-    rm /tmp/$LIB
-done
-
-for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
-         $(find /usr/lib -type f -name \*.a)                 \
-         $(find /usr/{bin,sbin,libexec} -type f); do
-    case "$online_usrbin $online_usrlib $save_usrlib" in
-        *$(basename $i)* )
-            ;;
-        * ) strip --strip-unneeded $i
-            ;;
-    esac
-done
-
-unset BIN LIB save_usrlib online_usrbin online_usrlib
-
-

- Um número grande de arquivos serão relatados como tendo o - formato de arquivo deles não reconhecido. Esses avisos podem - ser seguramente ignorados. Eles indicam que aqueles arquivos - são scripts em vez de binários. -

-
-
-
-
-
-

- 8.79. Limpando -

-
-
-
-

- Finalmente, limpe alguns arquivos extra deixados pela execução - de testes: -

-
rm -rf /tmp/*
-

- Existem também muitos arquivos instalados nos diretórios - /usr/lib e /usr/libexec com uma extensão de nome de arquivo de - .la. Esses são arquivos "libtool archive". Como já dito, eles - somente são úteis quando vincular com bibliotecas estáticas. - Eles são desnecessários, e potencialmente danosos, quando se - usar bibliotecas compartilhadas dinâmicas, especialmente quando - se usar também sistemas de construção não autotools. Para - remover eles, execute: -

-
find /usr/lib /usr/libexec -name \*.la -delete
-

- Para mais informação acerca de arquivos libtool archive, veja a - - seção de BLFS "About Libtool Archive (.la) files". -

-

- O compilador construído em Capítulo 6 - e - Capítulo 7 ainda está instalado parcialmente e não é - mais necessário. Remova ele com: -

-
find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf
-

- Por fim, remova a conta de usuária(o) 'tester' temporária - criada no início do capítulo anterior. -

-
userdel -r tester
-
-
-
-
-
-
-

- Capítulo 9. Configuração do - Sistema -

-
-
-
-
-
-
-
-

- 9.1. Introdução -

-
-
-
-

- Este capítulo discute arquivos de configuração e serviços do - systemd. Primeiro, os arquivos de configuração gerais - necessários para configurar rede são apresentados. -

- -

- Segundo, problemas que afetam a configuração adequada de - dispositivos são discutidos. -

- -

- Terceiro, configurar o relógio do sistema e esquema de teclado - é mostrado. -

- -

- Quarto, uma introdução breve aos scripts e arquivos de - configuração usados quando a(o) usuária(o) se loga no sistema é - apresentado. -

- -

- E finalmente, configurar o comportamento do systemd é - discutido. -

- -
-
-
-
-
-

- 9.2. Configuração de Rede - Geral -

-
-
-
-

- Esta seção somente se aplica se uma placa de rede é para ser - configurada. -

-
-

- 9.2.1. Arquivos de Configuração de Interface de Rede -

-

- Iniciando com a versão 209, o systemd envia um daemon de - configuração de rede chamado systemd-networkd o qual - pode ser usado para configuração de rede básica. - Adicionalmente, desde a versão 213, resolução de nome de DNS - pode ser lidada por systemd-resolved em lugar - de um arquivo /etc/resolv.conf - estático. Ambos os serviços são habilitados por padrão. -

-

- Arquivos de configuração para systemd-networkd (e - systemd-resolved) podem ser - colocados em /usr/lib/systemd/network ou /etc/systemd/network. Arquivos em - /etc/systemd/network tem uma - prioridade mais alta que aqueles em /usr/lib/systemd/network. Existem três - tipos de arquivos de configuração: arquivos .link, .netdev e .network. Para descrições detalhadas e - conteúdo de exemplo desses arquivos de configuração, consulte - as páginas de manual systemd-link(5), systemd-netdev(5) e systemd-network(5). -

-
-
-
-
-

- 9.2.1.1. Nomeando - Dispositivo de Rede -

-
-
-
-

- Udev normalmente atribui nomes de interface de placa de - rede baseados em características de sistema físicas tais - como enp2s1. Se você não está certa(o) acerca do que é o - nome de sua interface, então você sempre pode executar - ip link após - você ter inicializado seu sistema. -

-
-

- Nota -

-

- Os nomes de interface dependem da implementação e - configuração do daemon udev em execução no sistema. O - daemon udev para LFS (systemd-udevd, - instalado na Seção 8.71, - “Systemd-250”), não executará a menos que - o sistema LFS seja inicializado. Assim, não é confiável - determinar os nomes de interface sendo usados no sistema - LFS executando aqueles comandos na distribuição anfitriã, - mesmo que você esteja no - ambiente chroot. -

-
-

- Para a maioria dos sistemas, existe apenas uma interface de - rede para cada tipo de conexão. Por exemplo, o nome de - interface clássico para uma conexão com fios é eth0. Uma - conexão sem fios usualmente terá o nome wifi0 ou wlan0. -

-

- Se você preferir usar os nomes de interface de rede - clássicos ou personalizados, então existem três caminhos - alternativos para fazer isso: -

-
-
    -
  • -

    - Mascarar o arquivo .link do udev para a política - padrão: -

    -
    ln -s /dev/null /etc/systemd/network/99-default.link
    -
  • -
  • -

    - Criar um esquema de nomenclatura manual, por exemplo - nomeando as interfaces com alguma coisa como - "internet0", "dmz0" ou "lan0". Para fazer isso, crie - arquivos .link em /etc/systemd/network/ que - selecionem um nome explícito ou um esquema de - nomenclatura melhor para suas interfaces de rede. Por - exemplo: -

    -
    cat > /etc/systemd/network/10-ether0.link << "EOF"
    -[Match]
    -# Change the MAC address as appropriate for your network device
    -MACAddress=12:34:45:78:90:AB
    -
    -[Link]
    -Name=ether0
    -EOF
    -

    - Veja a página de manual systemd.link(5) para mais - informação. -

    -
  • -
  • -

    - Em /boot/grub/grub.cfg, passe a opção net.ifnames=0 - na linha de comando do kernel. -

    -
  • -
-
-
-
-
-
-
-

- 9.2.1.2. - Configuração de IP Estático -

-
-
-
-

- O comando abaixo cria um arquivo de configuração básico - para uma configuração de IP Estático (usando ambos - systemd-networkd e systemd-resolved): -

-
cat > /etc/systemd/network/10-eth-static.network << "EOF"
-[Match]
-Name=<network-device-name>
-
-[Network]
-Address=192.168.0.2/24
-Gateway=192.168.0.1
-DNS=192.168.0.1
-Domains=<Your Domain Name>
-EOF
-

- Múltiplas entradas de DNS podem ser adicionadas se você - tiver mais que um servidor de DNS. Não inclua entradas de - DNS ou Domínios se você pretende usar um arquivo - /etc/resolv.conf estático. -

-
-
-
-
-
-

- 9.2.1.3. - Configuração de DHCP -

-
-
-
-

- O comando abaixo cria um arquivo de configuração básico - para uma configuração de DHCP IPv4: -

-
cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
-[Match]
-Name=<network-device-name>
-
-[Network]
-DHCP=ipv4
-
-[DHCP]
-UseDomains=true
-EOF
-
-
-
-

- 9.2.2. Criando o - Arquivo /etc/resolv.conf -

-

- Se o sistema será conectado à Internet, então ele precisará - de alguns meios de resolução de nome do Domain Name Service - (DNS) para resolver nomes de domínio da Internet para - endereços de IP e vice versa. Isso é melhor alcançado - colocando-se o endereço de IP do servidor de DNS, disponível - a partir do ISP ou administradora(r) de rede, no /etc/resolv.conf. -

-
-
-
-
-

- 9.2.2.1. - Configuração do systemd-resolved -

-
-
-
-
-

- Nota -

-

- Se usar métodos incompatíveis com systemd-resolved para - configurar suas interfaces de rede (ex.: ppp, etc.); ou - se usar qualquer tipo de resolvedor local (ex.: bind, - dnsmasq, unbound, etc.); ou qualquer outro aplicativo que - gere um /etc/resolv.conf - (ex.: um aplicativo resolvconf outro - diferente daquele fornecido pelo systemd), então o - serviço systemd-resolved não - deveria ser usado. -

-

- Para desabilitar systemd-resolved, execute o seguinte - comando: -

-
systemctl disable systemd-resolved
-
-

- Quando se usa o systemd-resolved para - configuração de DNS, ele cria o arquivo /run/systemd/resolve/stub-resolv.conf. E, - se /etc/resolv.conf não - existir, ele será criado pelo systemd-resolved como um - link simbólico para /run/systemd/resolve/stub-resolv.conf. - Então, é desnecessário criar um /etc/resolv.conf manualmente. -

-
-
-
-
-
-

- 9.2.2.2. Configuração - resolv.conf Estática -

-
-
-
-

- Se um /etc/resolv.conf - estático for desejado, então crie ele executando o seguinte - comando: -

-
cat > /etc/resolv.conf << "EOF"
-# Begin /etc/resolv.conf
-
-domain <Your Domain Name>
-nameserver <IP address of your primary nameserver>
-nameserver <IP address of your secondary nameserver>
-
-# End /etc/resolv.conf
-EOF
-

- A declaração domain pode ser - omitida ou substituída com uma declaração search. Veja-se a página de manual para - resolv.conf para mais detalhes. -

-

- Substitua <IP address of - the nameserver> com o endereço de IP do - servidor DNS mais apropriado para sua configuração. - Frequentemente existirá mais que uma entrada (exigências - demandam servidores secundários para capacidade de - substituto). Se você precisa ou quer apenas um servidor - DNS, então remova a segunda linha nameserver do arquivo. O - endereço de IP também talvez seja um roteador na rede - local. Outra opção é usar o serviço de DNS Google Public - usando os endereços de IP abaixo como servidores de nome. -

-
-

- Nota -

-

- Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; e - 2001:4860:4860::8888 e - 2001:4860:4860::8844 para - IPv6. -

-
-
-
-
-

- 9.2.3. Configurando o nome de - dispositivo do sistema -

-

- Durante o processo de inicialização, o arquivo /etc/hostname é usado para estabelecer o - nome de dispositivo do sistema. -

-

- Crie o arquivo /etc/hostname e - informe um nome de dispositivo executando: -

-
echo "<lfs>" > /etc/hostname
-

- <lfs> precisa - ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa - informação é colocada no arquivo /etc/hosts. -

-
-
-

- 9.2.4. - Personalizando o Arquivo /etc/hosts -

-

- Decida acerca de um fully-qualified domain name (FQDN), e - possíveis apelidos para uso no arquivo /etc/hosts. Se usar endereços de IP - estáticos, então você também precisará decidir acerca de um - endereço de IP. A sintaxe para uma entrada de arquivo hosts - é: -

-
IP_address myhost.example.org aliases
-

- A menos que o computador seja para estar visível para a - Internet (por exemplo, existe um domínio registrado e um - bloco válido de endereços de IP atribuídos—a maioria - das(os) usuárias(os) não tem isso), assegure-se de que o - endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -

-
Intervalo de Endereço de Rede Privado    Prefixo Normal
-10.0.0.1 - 10.255.255.254               8
-172.x.0.1 - 172.x.255.254               16
-192.168.y.1 - 192.168.y.254             24
-

- x pode ser qualquer número no intervalo 16-31. y pode ser - qualquer número no intervalo 0-255. -

-

- Um endereço de IP privado válido poderia ser 192.168.1.1. Um - FQDN válido para esse IP poderia ser lfs.example.org. -

-

- Mesmo se não se usar uma placa de rede, um FQDN válido ainda - é exigido. Isso é necessário para determinados aplicativos, - tais como MTAs, operarem adequadamente. -

-

- Crie o arquivo /etc/hosts - usando o seguinte comando: -

-
cat > /etc/hosts << "EOF"
-# Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <FQDN> <HOSTNAME>
-<192.168.0.2> <FQDN> <HOSTNAME> [alias1] [alias2] ...
-::1       localhost ip6-localhost ip6-loopback
-ff02::1   ip6-allnodes
-ff02::2   ip6-allrouters
-
-# End /etc/hosts
-EOF
-

- Os valores <192.168.0.2>, - <FQDN> e - <HOSTNAME> - precisam ser mudados para usuárias(os) ou exigências - específicas(os) (se atribuído um endereço de IP por uma(m) - administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s), e a linha <192.168.0.2> pode ser - omitida se você estiver usando uma conexão configurada com - DHCP ou IPv6 Autoconfiguration. -

-

- A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a - interface de loopback IPv6. 127.0.1.1 é uma entrada de - loopback reservada especificamente para o FQDN. -

-
-
-
-
-
-
-

- 9.3. Visão Geral do Manuseio - de Dispositivos e Módulos -

-
-
-
-

- No Capítulo 8, - nós instalamos o pacote udev quando systemd foi construído. Antes de entrarmos em - detalhes referentes a como isso funciona, um histórico breve - dos métodos anteriores de manuseio de dispositivos é oportuno. -

-

- Sistemas Linux em geral tradicionalmente usavam um método de - criação de dispositivo estático, pelo qual muitos nós de - dispositivos eram criados sob /dev (as vezes literalmente milhares de nós), - independente de se os dispositivos de hardware correspondentes - atualmente existissem. Isso tipicamente era feito via um script - MAKEDEV, o qual - contém um número de chamadas ao aplicativo mknod com os números de - dispositivo principal e secundário relevantes para cada - dispositivo possível que pudesse existir no mundo. -

-

- Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para - eles. Como esses nós de dispositivo serão criados a cada vez - que o sistema inicializar, eles serão armazenados em um sistema - de arquivos devtmpfs (um - sistema de arquivos virtual que reside inteiramente na memória - do sistema). Nós de dispositivo não exigem muito espaço, de - forma que a memória que é usada é insignificante. -

-
-

- 9.3.1. Histórico -

-

- Em fevereiro 2000, um novo sistema de arquivos chamado - devfs foi mesclado no kernel - 2.3.46 e foi feito disponível durante as séries 2.4 de - kernels estáveis. Embora ele estivesse presente no próprio - fonte do kernel, esse método de criar dispositivos - dinamicamente nunca recebeu suporte decisivo das(os) - desenvolvedoras(es) do kernel centrais. -

-

- O problema principal com a abordagem adotada pelo - devfs era a maneira como ele - lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, - era talvez o mais crítico. É aceito geralmente que, se nomes - de dispositivo são passíveis de serem configuráveis, então a - política de nomenclatura de dispositivo esteja a cargo de - uma(m) administradora(r) do sistema, não imposta sobre - elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com algumas condições - que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou - marcado como obsoleto por um longo período – e foi - finalmente removido do kernel em junho de 2006. -

-

- Com o desenvolvimento da árvore do kernel 2.5 instável, - liberada posteriormente como as séries 2.6 dos kernels - estáveis, um novo sistema de arquivos virtual chamado - sysfs veio a existir. O - trabalho do sysfs é o de - exportar uma visão da configuração de hardware do sistema - para processos de espaço de usuária(o). Com essa - representação visível ao espaço de usuária(o), a - possibilidade de desenvolvimento de um substituto de espaço - de usuária(o) para o devfs - tornou-se muito mais realista. -

-
-
-

- 9.3.2. Implementação do Udev -

-
-
-
-
-

- 9.3.2.1. Sysfs -

-
-
-
-

- O sistema de arquivos sysfs - foi mencionado brevemente acima. Alguém talvez questione - como o sysfs sabe sobre os - dispositivos presentes em um sistema e quais números de - dispositivo deveriam ser usados para eles. Controladores - que tenham sido compilados diretamente no kernel registram - os objetos deles com um sysfs (devtmpfs internamente) assim que - eles são detectados pelo kernel. Para controladores - compilados como módulos, esse registro acontecerá quando o - módulo for carregado. Assim que o sistema de arquivos - sysfs for montado (em - /sys), os dados os quais os controladores registram com - sysfs ficam disponíveis - para os processos de espaço de usuária(o) e para udevd para - processamento (incluindo modificações para nós de - dispositivo). -

-
-
-
-
-
-

- 9.3.2.2. Criação de Nó de - Dispositivo -

-
-
-
-

- Arquivos de dispositivo são criados pelo kernel por meio do - sistema de arquivos devtmpfs. Qualquer controlador que - deseje registrar um nó de dispositivo usará o devtmpfs (via o núcleo do controlador) - para fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de dispositivo inicialmente - será criado com um nome, permissões e proprietária(o) - fixos. -

-

- Pouco tempo depois, o kernel enviará um uevent para - udevd. - Baseado nas regras especificadas nos arquivos dentro dos - diretórios /etc/udev/rules.d, - /usr/lib/udev/rules.d e - /run/udev/rules.d, - udevd criará - links simbólicos adicionais para o nó de dispositivo, ou - mudará as permissões, proprietária(o), ou grupo deles, ou - modificará a entrada de banco de dados do udevd interna (nome) para - aquele objeto. -

-

- As regras nesses três diretórios são numeradas e todos os - três diretórios são mesclados. Se udevd não puder encontrar - uma regra para o dispositivo que ele está criando, então - ele deixará as permissões e propriedade no que devtmpfs usou inicialmente. -

-
-
-
-
-
-

- 9.3.2.3. Carregamento de - Módulo -

-
-
-
-

- Controladores de dispositivo compilados como módulos talvez - tenham apelidos construídos dentro deles. Apelidos são - visíveis na saída do aplicativo modinfo e geralmente - estão relacionados aos identificadores específicos ao - barramento dos dispositivos suportados por um módulo. Por - exemplo, o controlador snd-fm801 suporta dispositivos - PCI com ID de fornecedor 0x1319 e ID de dispositivo 0x0801, - e tem um apelido de pci:v00001319d00000801sv*sd*bc04sc01i*. - Para a maioria dos dispositivos, o controlador de - barramento exporta o apelido do controlador que lidaria com - o dispositivo via sysfs. - Por exemplo, o arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias - pode conter a sequência de caracteres pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. - As regras padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser o mesmo que o - conteúdo do arquivo modalias - em sysfs), dessa forma carregando todos os módulos cujos - apelidos correspondem a essa sequência de caracteres depois - da expansão de carácter curinga. -

-

- Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele - estiver disponível. Veja abaixo maneiras pelas quais o - carregamento de controladores indesejados pode ser evitado. -

-

- O próprio kernel também é capaz de carregar módulos para - protocolos de rede, sistemas de arquivos e suporte NLS sob - demanda. -

-
-
-
-
-
-

- 9.3.2.4. Lidando com - Dispositivos Plugáveis a Quente/Dinâmicos -

-
-
-
-

- Quando você conecta um dispositivo, como um tocador de MP3 - Universal Serial Bus (USB), o kernel reconhece que o - dispositivo agora está conectado e gera um uevent. Esse - uevent é então tratado pelo udevd como descrito - acima. -

-
-
-
-

- 9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos -

-

- Existem uns poucos possíveis problemas quando se trata de - criar automaticamente nós de dispositivos. -

-
-
-
-
-

- 9.3.3.1. Um módulo do kernel não - é carregado automaticamente -

-
-
-
-

- O Udev só carregará um módulo se ele tiver um apelido - específico a barramento e o controlador de barramento - exportar adequadamente os apelidos necessários para - sysfs. Em outros casos, - deve-se organizar o carregamento de módulo por outros - meios. Com o Linux-5.16.9, udev é conhecido por carregar - controladores escritos adequadamente para dispositivos - INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. -

-

- Para determinar se o controlador de dispositivo que você - exige tem o suporte necessário para udev, execute - modinfo com o - nome de módulo como o argumento. Agora tente localizar o - diretório de dispositivo sob /sys/bus e verifique se existe um arquivo - modalias lá. -

-

- Se o arquivo modalias existir - em sysfs, então o - controlador suporta o dispositivo e pode falar com ele - diretamente, mas não tem o apelido, isso é um defeito no - controlador. Carregue o controlador sem a ajuda do udev e - espere que o problema seja consertado posteriormente. -

-

- Se não existir arquivo modalias no diretório relevante sob - /sys/bus, então isso - significa que as(os) desenvolvedoras(es) do kernel ainda - não adicionaram suporte modalias para esse tipo de - barramento. Com Linux-5.16.9, esse é o caso com barramentos - ISA. Espere que esse problema seja consertado em versões do - kernel posteriores. -

-

- Udev não é planejado para carregar controladores - encapsuladores, tais como - snd-pcm-oss, e - controladores não hardware, tais como loop, de maneira alguma. -

-
-
-
-
-
-

- 9.3.3.2. Um módulo do kernel não - é carregado automaticamente, e udev não é planejado - para carregar ele -

-
-
-
-

- Se o módulo encapsulador apenas aprimora a - funcionalidade fornecida por algum outro módulo (por - exemplo, snd-pcm-oss - aprimora a funcionalidade de snd-pcm tornando as placas de - som disponíveis para aplicações OSS), então configure - modprobe para - carregar o encapsulador após o udev carregar o módulo - encapsulado. Para fazer isso, adicione uma linha - softdep ao arquivo - /etc/modprobe.d/<filename>.conf - correspondente. Por exemplo: -

-
softdep snd-pcm post: snd-pcm-oss
-

- Observe que o comando softdep também permite - dependências pre:, ou uma - mistura de ambas as dependências pre: e post:. - Veja-se a página de manual modprobe.d(5) para mais informação sobre - a sintaxe e capacidades softdep. -

-
-
-
-
-
-

- 9.3.3.3. Udev carrega algum - módulo indesejado -

-
-
-
-

- Ou não construa o módulo, ou coloque-o na lista negra em um - arquivo /etc/modprobe.d/blacklist.conf como feito - com o módulo forte - no exemplo abaixo: -

-
blacklist forte
-

- Módulos em listas negras ainda podem ser carregados - manualmente com o comando explícito modprobe. -

-
-
-
-
-
-

- 9.3.3.4. Udev cria um - dispositivo incorretamente, ou faz um link simbólico - errado -

-
-
-
-

- Isso geralmente acontece se uma regra inesperadamente - corresponder com um dispositivo. Por exemplo, uma regra mal - escrita pode corresponder com ambos um disco SCSI (como - desejado) e o dispositivo genérico SCSI correspondente - (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando - udevadm info. -

-
-
-
-
-
-

- 9.3.3.5. Regra do Udev funciona - de forma não confiável -

-
-
-
-

- Isso talvez seja outra manifestação do problema anterior. - Se não, e sua regra usar atributos do sysfs, então isso talvez seja um - problema de temporização do kernel, a ser consertado em - kernels posteriores. Por hora, você pode contornar ele - criando uma regra que aguarda o atributo do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules - (crie esse arquivo se ele não existir). Por favor notifique - a lista LFS Development se você o fizer e isso ajudar. -

-
-
-
-
-
-

- 9.3.3.6. Udev não cria um - dispositivo -

-
-
-
-

- O texto adicional assume que o driver está construído - estaticamente dentro do kernel ou já carregado como um - módulo, e que você já verificou que o udev não cria um - dispositivo mal nomeado. -

-

- Udev não tem informação necessária para criar um nó de - dispositivo se um controlador de kernel não exportar os - dados dele para o sysfs. - Isso é mais comum com controladores terceirizados oriundos - de fora da árvore do kernel. Crie um nó de dispositivo - estático em /usr/lib/udev/devices com os números - principal/secundário apropriados (veja o arquivo - devices.txt dentro da - documentação do kernel ou a documentação fornecida pela(o) - fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. -

-
-
-
-
-
-

- 9.3.3.7. Ordem de nomenclatura - de dispositivo muda aleatoriamente após reinicializar -

-
-
-
-

- Isso é devido ao fato de o udev, pelo projeto, lidar com - uevents e carregar módulos em paralelo, e assim em uma - ordem imprevisível. Isso nunca será consertado. Você não deveria - confiar que os nomes de dispositivos do kernel sejam - estáveis. Em vez disso, crie suas próprias regras que fazem - links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de - série ou a saída dos vários utilitários *_id instalados - pelo udev. Veja-se a Seção 9.4, - “Gerenciando Dispositivos” e Seção 9.2, - “Configuração de Rede Geral” para exemplos. -

-
-
-
-

- 9.3.4. Leitura Útil -

-

- Documentação útil adicional está disponível nos seguintes - sítios: -

- -
-
-
-
-
-
-

- 9.4. Gerenciando - Dispositivos -

-
-
-
-
-

- 9.4.1. Lidando com dispositivos duplicados -

-

- Como explicado na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos”, a ordem na qual dispositivos com a mesma - função aparecem em /dev é - essencialmente aleatória. Por exemplo, se você tem uma câmera - web USB e um sintonizador de TV, as vezes /dev/video0 se refere à câmera e - /dev/video1 se refere ao - sintonizador, e as vezes após uma reinicialização a ordem - muda. Para todas as classes de hardware, exceto placas de som - e placas de rede, isso é consertável criando regras do udev - para links simbólicos persistentes personalizados. O caso das - placas de rede é abordado separadamente na Seção 9.2, - “Configuração de Rede Geral”, e configuração - de placa de som pode ser encontrado em - BLFS. -

-

- Para cada um dos seus dispositivos que é provável ter esse - problema (mesmo que o problema não exista em sua distribuição - Linux atual), encontre o diretório correspondente sob - /sys/class ou /sys/block. Para dispositivos de vídeo, - isso talvez seja /sys/class/video4linux/videoX. Descubra os - atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números - seriais funcionam): -

-
udevadm info -a -p /sys/class/video4linux/video0
-

- Então escreva regras que criam os links simbólicos, por - exemplo: -

-
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
-
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f",  ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-
-EOF
-

- O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se referem aleatoriamente - ao sintonizador e à câmera web (e, portanto, nunca deveriam - ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o - dispositivo correto. -

-
-
-
-
-
-
-

- 9.5. Configurando o relógio - do sistema -

-
-
-
-

- Esta seção discute como configurar o serviço de sistema - systemd-timedated, o qual - configura o relógio e fuso horário do sistema. -

-

- Se você não conseguir se lembrar se ou não o relógio do - hardware está configurado para UTC, [então] descubra executando - o comando hwclock --localtime - --show. Isso mostrará o que a hora atual é de - acordo com o relógio do hardware. Se essa hora corresponder à - que o seu relógio diz, então o relógio do hardware está - configurado para hora local. Se a saída originária do - hwclock não for a - hora local, [então] as chances são que ele esteja configurado - para hora UTC. Verifique isso adicionando ou subtraindo a - quantidade apropriada de horas para o fuso horário à (da) hora - mostrada pelo hwclock. Por exemplo, se você - estiver atualmente no fuso horário MST, o qual é conhecido - também como GMT -0700, [então] adicione sete horas à hora - local. -

-

- O systemd-timedated lê - /etc/adjtime, e, dependendo do - conteúdo do arquivo, configura o relógio para ou UTC ou hora - local. -

-

- Crie o arquivo /etc/adjtime com o - seguinte conteúdo se seu relógio do hardware estiver - configurado para hora local: -

-
cat > /etc/adjtime << "EOF"
-0.0 0 0.0
-0
-LOCAL
-EOF
-

- Se /etc/adjtime não estiver - presente na primeira inicialização, [então] systemd-timedated assumirá - que o relógio do hardware está configurado para UTC e ajustará - o arquivo de acordo com isso. -

-

- Você também pode usar o utilitário timedatectl para dizer ao - systemd-timedated - se o seu relógio do hardware está configurado para UTC ou hora - local: -

-
timedatectl set-local-rtc 1
-

- O timedatectl - também pode ser usado para mudar a hora e fuso horário do - sistema. -

-

- Para mudar sua atual hora do sistema, emita: -

-
timedatectl set-time YYYY-MM-DD HH:MM:SS
-

- O relógio do hardware também será atualizado de acordo. -

-

- Para mudar seu atual fuso horário, emita: -

-
timedatectl set-timezone TIMEZONE
-

- Você pode obter uma lista dos fusos horários disponíveis - executando: -

-
timedatectl list-timezones
-
-

- Nota -

-

- Por favor observe que o comando timedatectl não funciona no - ambiente chroot. Ele somente pode ser usado depois que o - sistema LFS for inicializado com o systemd. -

-
-
-

- 9.5.1. Sincronização da Hora da Rede -

-

- Iniciando com a versão 213, o systemd envia um daemon chamado - systemd-timesyncd o qual - pode ser usado para sincronizar a hora do sistema com - servidores do NTP remotos. -

-

- O daemon não é concebido como um substituto para o bem - estabelecido daemon do NTP, porém como uma implementação - somente cliente do protocolo SNTP o qual pode ser usado para - tarefas menos avançadas e em sistemas de recurso limitado. -

-

- Iniciando com o systemd versão 216, o daemon systemd-timesyncd está - habilitado por padrão. Se você desejar desabilitar ele, - [então] emita o seguinte comando: -

-
systemctl disable systemd-timesyncd
-

- O arquivo /etc/systemd/timesyncd.conf pode ser usado - para mudar os servidores do NTP que o systemd-timesyncd - sincroniza com. -

-

- Por favor observe que, quando o relógio do sistema estiver - configurado para Hora Local, [então] o systemd-timesyncd não - atualizará o relógio do hardware. -

-
-
-
-
-
-
-

- 9.6. Configurando o Console - do Linux -

-
-
-
-

- Esta seção discute como configurar o serviço de sistema - systemd-vconsole-setup, o - qual configura a fonte de console virtual e mapa de tecla de - console. -

-

- O serviço systemd-vconsole-setup lê o - arquivo /etc/vconsole.conf para - informação de configuração. Decida qual mapa de tecla e fonte - de tela será usada. Vários HOWTOs específicos de idioma também - podem ajudar com isso, veja-se http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. - Examine a saída de localectl - list-keymaps para uma lista dos mapas de tecla - de console válidos. Olhe no diretório /usr/share/consolefonts para fontes de tela - válidas. -

-

- O arquivo /etc/vconsole.conf - deveria conter linhas da forma: VARIÁVEL="valor". As seguintes - variáveis são reconhecidas: -

-
-
-
- KEYMAP -
-
-

- Essa variável especifica a tabela de mapeamento de tecla - para o teclado. Se desconfigurada, [então] ela padroniza - para us. -

-
-
- KEYMAP_TOGGLE -
-
-

- Essa variável pode ser usada para configurar um segundo - mapa de tecla de alternância e é desconfigurada por - padrão. -

-
-
- FONT -
-
-

- Essa variável especifica a fonte usada pelo console - virtual. -

-
-
- FONT_MAP -
-
-

- Essa variável especifica o mapa de console para ser - usado. -

-
-
- FONT_UNIMAP -
-
-

- Essa variável especifica o mapa de fonte Unicode. -

-
-
-
-

- Um exemplo para um teclado e console alemão é dado abaixo: -

-
cat > /etc/vconsole.conf << "EOF"
-KEYMAP=de-latin1
-FONT=Lat2-Terminus16
-EOF
-

- Você pode mudar o valor KEYMAP em tempo de execução usando o - utilitário localectl: -

-
localectl set-keymap MAP
-
-

- Nota -

-

- Por favor observe que o comando localectl não funciona no - ambiente chroot. Ele somente pode ser usado depois que o - sistema LFS for inicializado com o systemd. -

-
-

- Você também pode usar o utilitário localectl com os parâmetros - correspondentes para mudar o esquema, modelo, variante e opções - de teclado do X11: -

-
localectl set-x11-keymap LAYOUT [MODEL] [VARIANT] [OPTIONS]
-

- Para listar possíveis valores para os parâmetros do - localectl - set-x11-keymap, execute localectl com os parâmetros - listados abaixo: -

-
-
-
- list-x11-keymap-models -
-
-

- Mostra modelos de mapeamento de teclado do X11 - conhecidos. -

-
-
- list-x11-keymap-layouts -
-
-

- Mostra esquemas de mapeamento de teclado do X11 - conhecidos. -

-
-
- list-x11-keymap-variants -
-
-

- Mostra variantes de mapeamento de teclado do X11 - conhecidas. -

-
-
- list-x11-keymap-options -
-
-

- Mostra opções de mapeamento de teclado do X11 conhecidas. -

-
-
-
-
-

- Nota -

-

- Usar quaisquer dos parâmetros listados acima exige o pacote - XKeyboard-Config originário do BLFS. -

-
-
-
-
-
-
-

- 9.7. Configurando o Locale - do Sistema -

-
-
-
-

- O arquivo /etc/locale.conf abaixo - configura algumas variáveis de ambiente necessárias para - suporte de idioma nativo. Configurar elas adequadamente resulta - em: -

-
-
    -
  • -

    - A saída de aplicativos sendo traduzida para seu idioma - nativo -

    -
  • -
  • -

    - A classificação correta de caracteres em letras, dígitos - e outras classes. Isso é necessário para o bash aceitar - adequadamente caracteres não ASCII em linhas de comando - em locales não ingleses -

    -
  • -
  • -

    - A sequência de ordenação alfabética correta para o país -

    -
  • -
  • -

    - Tamanho de papel padrão apropriado -

    -
  • -
  • -

    - Formatação correta de valores monetário, hora e data -

    -
  • -
-
-

- Substitua <ll> - abaixo com o código de duas letras para seu idioma desejado - (por exemplo, en) e <CC> com o código de duas - letras para o país apropriado (por exemplo, GB). - <charmap> - deveria ser substituído com o mapa de caracteres canônico para - seu locale escolhido. Modificadores opcionais, tais como - @euro, talvez também estejam - presentes. -

-

- A lista de todos os locales suportados pela Glibc pode ser - obtida executando o seguinte comando: -

-
locale -a
-

- Mapas de caracteres podem ter um número de apelidos, por - exemplo, ISO-8859-1 também é referenciado - como iso8859-1 e iso88591. Alguns aplicativos não - podem lidar com os vários sinônimos corretamente (por exemplo, - exigem que UTF-8 seja escrito como - UTF-8, não utf8), - de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde <locale name> é a saída - dada por locale - -a para seu locale preferido (en_GB.iso88591 no nosso exemplo). -

-
LC_ALL=<locale name> locale charmap
-

- Para o locale en_GB.iso88591, o comando acima - imprimirá: -

-
ISO-8859-1
-

- Isso resulta em uma configuração de locale final de - en_GB.ISO-8859-1. É importante que - o locale encontrado usando a heurística acima seja testado - antes que ele seja adicionado aos arquivos de inicialização do - Bash: -

-
LC_ALL=<locale name> locale language
-LC_ALL=<locale name> locale charmap
-LC_ALL=<locale name> locale int_curr_symbol
-LC_ALL=<locale name> locale int_prefix
-

- Os comandos acima deveriam imprimir o nome do idioma, a - codificação de caracteres usada pelo locale, a moeda local, e o - prefixo para discar antes do número de telefone para se - alcançar o país. Se quaisquer dos comandos acima falharem com - uma mensagem similar àquela mostrada abaixo, [então] isso - significa que seu locale ou não foi instalado no - Capítulo 8 ou não é suportado pela instalação padrão da - Glibc. -

-
locale: Cannot set LC_* to default locale: No such file or directory
-

- Se isso acontecer, [então] você deveria instalar o locale - desejado usando o comando localedef, ou considere - escolher um locale diferente. As instruções posteriores assumem - que não existem tais mensagens de erro originárias da Glibc. -

-

- Alguns pacotes além do LFS também talvez careçam de suporte - para seu locale escolhido. Um exemplo é a biblioteca do X - (parte do X Window System), a qual externaliza a seguinte - mensagem de erro se o locale não corresponder exatamente a um - dos nomes de mapa de carácter nos arquivos internos dela: -

-
Warning: locale not supported by Xlib, locale set to C
-

- Em muitos casos, a Xlib presume que o mapa de carácter será - listado em notação de letras maiúsculas com hífens canônicos. - Por exemplo, "ISO-8859-1" em vez de "iso88591". Também é - possível encontrar uma especificação apropriada removendo-se a - parte de mapa de carácter da especificação de locale. Isso pode - ser verificado executando-se o comando locale charmap em ambos os - locales. Por exemplo, alguém poderia ter que mudar - "de_DE.ISO-8859-15@euro" para "de_DE@euro" para conseguir que - esse locale fosse reconhecido pela Xlib. -

-

- Outros pacotes também podem funcionar incorretamente (mas - talvez não necessariamente exibam quaisquer mensagens de erro) - se o nome do locale não corresponder às expectativas deles. - Nesses casos, investigar como outras distribuições do Linux - suportam seu locale poderia fornecer alguma informação útil. -

-

- Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/locale.conf: -

-
cat > /etc/locale.conf << "EOF"
-LANG=<ll>_<CC>.<charmap><@modifiers>
-EOF
-

- Observe que você pode modificar o /etc/locale.conf com o utilitário - localectl do - systemd. Para usar o localectl para o exemplo - acima, execute: -

-
localectl set-locale LANG="<ll>_<CC>.<charmap><@modifiers>"
-

- Você também pode especificar outras variáveis de ambiente - específicas de idioma, tais como LANG; LC_CTYPE; - LC_NUMERIC; ou qualquer outra - variável de ambiente oriunda da saída de locale. Apenas separe elas - com um espaço. Um exemplo onde LANG - é configurada como en_US.UTF-8, porém LC_CTYPE é configurada apenas como en_US é: -

-
localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US"
-
-

- Nota -

-

- Por favor observe que o comando localectl não funciona no - ambiente chroot. Ele somente pode ser usado depois que o - sistema LFS for inicializado com o systemd. -

-
-

- Os locales C (padrão) e en_US - (aquele recomendado para usuárias(os) do inglês dos Estados - Unidos da América do Norte) são diferentes. C usa o - conjunto de caracteres de 7 bits US-ASCII, e trata bytes com o - bit alto configurado como caracteres inválidos. Esse é o - porquê, por exemplo, do comando ls substituir eles com pontos - de interrogação nesse locale. Também, uma tentativa de enviar - correio com tais caracteres a partir do Mutt ou Pine resulta em - mensagens de não conformidade com RFC sendo enviadas (o - conjunto de caracteres no correio de saída é indicado como - unknown - 8-bit). É sugerido que você use o locale - C apenas se você tiver certeza de - que nunca precisará de caracteres de 8 bits. -

-
-
-
-
-
-

- 9.8. Criando o Arquivo - /etc/inputrc -

-
-
-
-

- O arquivo inputrc é o arquivo de - configuração para a biblioteca readline, a qual fornece - capacidades de edição enquanto a(o) usuária(o) estiver - digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é - usada pelo bash e maioria dos outros shells, bem como muitos - outros aplicativos. -

-

- A maioria das pessoas não necessita de funcionalidade - específica de usuária(o), de forma que o comando abaixo cria um - /etc/inputrc global usado por - qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), - [então] você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. -

-

- Para mais informação sobre como editar o arquivo inputrc, veja-se info bash sob a seção - Readline Init File. - info readline é - também uma boa fonte de informação. -

-

- Abaixo está um inputrc global - genérico junto com comentários para explicar o que as várias - opções fazem. Observe que comentários não podem estar na mesma - linha que comandos. Crie o arquivo usando o seguinte comando: -

-
cat > /etc/inputrc << "EOF"
-# Begin /etc/inputrc
-# Modified by Chris Lynn <roryo@roryo.dynup.net>
-
-# Allow the command prompt to wrap to the next line
-set horizontal-scroll-mode Off
-
-# Enable 8bit input
-set meta-flag On
-set input-meta On
-
-# Turns off 8th bit stripping
-set convert-meta Off
-
-# Keep the 8th bit for display
-set output-meta On
-
-# none, visible or audible
-set bell-style none
-
-# All of the following map the escape sequence of the value
-# contained in the 1st argument to the readline specific functions
-"\eOd": backward-word
-"\eOc": forward-word
-
-# for linux console
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# for xterm
-"\eOH": beginning-of-line
-"\eOF": end-of-line
-
-# for Konsole
-"\e[H": beginning-of-line
-"\e[F": end-of-line
-
-# End /etc/inputrc
-EOF
-
-
-
-
-
-

- 9.9. Criando o Arquivo - /etc/shells -

-
-
-
-

- O arquivo shells contém uma lista - dos shells de login no sistema. Os aplicativos usam esse - arquivo para determinar quando um shell é válido. Para cada - shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). -

-

- Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a - própria conta dela. Se o nome de comando não estiver listado, - [então] a usuária terá negada a habilidade de mudar shells. -

-

- É uma exigência para aplicativos tais como GDM o qual não publiciza o navegador de - face se ele não puder encontrar /etc/shells, ou daemons do FTP os quais - tradicionalmente proíbem acesso a usuárias(os) com shells não - incluídos nesse arquivo. -

-
cat > /etc/shells << "EOF"
-# Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells
-EOF
-
-
-
-
-
-

- 9.10. Uso e - Configuração do Systemd -

-
-
-
-
-

- 9.10.1. Configuração Básica -

-

- O arquivo /etc/systemd/system.conf contém um conjunto - de opções para controlar as operações do systemd básicas. O - arquivo padrão tem todas as entradas comentadas com as - configurações padrão indicadas. Esse arquivo é onde o nível - de registro talvez seja mudado, bem como algumas - configurações de registro básicas. Veja-se a página de manual - systemd-system.conf(5) para - detalhes sobre cada opção de configuração. -

-
-
-

- 9.10.2. Desabilitando a Limpeza da Tela em Tempo de - Inicialização -

-

- O comportamento normal para o systemd é o de limpar a tela ao - final da sequência de inicialização. Se desejado, esse - comportamento talvez seja mudado executando o seguinte - comando: -

-
mkdir -pv /etc/systemd/system/getty@tty1.service.d
-
-cat > /etc/systemd/system/getty@tty1.service.d/noclear.conf << EOF
-[Service]
-TTYVTDisallocate=no
-EOF
-

- As mensagens de inicialização podem sempre ser revistas - usando o comando journalctl - -b como a(o) usuária(o) root. -

-
-
-

- 9.10.3. Desabilitando tmpfs para /tmp -

-

- Por padrão, /tmp é criado como - um tmpfs. Se isso não for desejado, [então] ele pode ser - sobreposto executando o seguinte comando: -

-
ln -sfv /dev/null /etc/systemd/system/tmp.mount
-

- Alternativamente, se uma partição separada para /tmp for desejada, [então] especifique essa - partição em uma entrada do /etc/fstab. -

-
-

- Atenção -

-

- Não crie o link simbólico acima se uma partição separada - for usada para o /tmp. Isso - impedirá o sistema de arquivos raiz (/) de ser remontado - leitura/escrita e tornará o sistema inutilizável quando - inicializado. -

-
-
-
-

- 9.10.4. Configurando a Criação e Deleção de Arquivo - Automática -

-

- Existem vários serviços que criam ou deletam arquivos ou - diretórios: -

-
-
    -
  • -

    - systemd-tmpfiles-clean.service -

    -
  • -
  • -

    - systemd-tmpfiles-setup-dev.service -

    -
  • -
  • -

    - systemd-tmpfiles-setup.service -

    -
  • -
-
-

- O local de sistema para os arquivos de configuração é - /usr/lib/tmpfiles.d/*.conf. Os - arquivos de configuração locais estão em /etc/tmpfiles.d. Os arquivos em - /etc/tmpfiles.d sobrepõem os - arquivos com o mesmo nome em /usr/lib/tmpfiles.d. Veja-se a página de - manual tmpfiles.d(5) para - detalhes do formato de arquivo. -

-

- Observe que a sintaxe para os arquivos /usr/lib/tmpfiles.d/*.conf pode ser - confusa. Por exemplo, a deleção de arquivos padrão no - diretório /tmp está localizada em /usr/lib/tmpfiles.d/tmp.conf com a linha: -

-
q /tmp 1777 root root 10d
-

- O campo tipo, q, discute criar um sub-volume com cotas, o - qual realmente é aplicável apenas para sistemas de arquivos - btrfs. Ele referencia tipo v, o qual sequencialmente - referencia tipo d (diretório). Isso então cria o diretório - especificado se ele não estiver presente e ajusta as - permissões e propriedade como especificado. O conteúdo do - diretório estará sujeito a limpeza baseada em hora se o - argumento idade for especificado. -

-

- Se os parâmetros padrão não forem desejados, então o arquivo - deveria ser copiado para /etc/tmpfiles.d e editado conforme - desejado. Por exemplo: -

-
mkdir -p /etc/tmpfiles.d
-cp /usr/lib/tmpfiles.d/tmp.conf /etc/tmpfiles.d
-
-
-

- 9.10.5. Sobrepondo o Comportamento de Serviços Padrão -

-

- Os parâmetros de uma unidade podem ser sobrepostos criando-se - um diretório e um arquivo de configuração em /etc/systemd/system. Por exemplo: -

-
mkdir -pv /etc/systemd/system/foobar.service.d
-
-cat > /etc/systemd/system/foobar.service.d/foobar.conf << EOF
-[Service]
-Restart=always
-RestartSec=30
-EOF
-

- Veja-se a página de manual systemd.unit(5) para mais informação. - Depois de criar o arquivo de configuração, execute - systemctl - daemon-reload e systemctl restart foobar - para ativar as mudanças para um serviço. -

-
-
-

- 9.10.6. Depurando a Sequência de Inicialização -

-

- Em vez de scripts de shell simples usados nos sistemas de - inicialização estilo SysVinit ou BSD, o systemd usa um - formato unificado para tipos diferentes dos arquivos de - inicialização (ou unidades). O comando systemctl é usado para - habilitar; desabilitar; controlar estado; e obter a situação - dos arquivos de unidade. Aqui estão alguns exemplos dos - comandos usados frequentemente: -

-
-
    -
  • -

    - systemctl list-units -t - <serviço> - [--all]: lista os arquivos de unidade - carregados do tipo serviço. -

    -
  • -
  • -

    - systemctl list-units -t - <alvo> - [--all]: lista os arquivos de unidade - carregados do tipo alvo. -

    -
  • -
  • -

    - systemctl show -p Wants - <multi-user.target>: - mostra todas as unidades que dependem do alvo - multi-user. Alvos são arquivos de unidade especiais que - são análogos a níveis de execução sob o SysVinit. -

    -
  • -
  • -

    - systemctl status - <nomeserviço.service>: - mostra a situação do serviço nomeserviço. A extensão - .service pode ser omitida se não existirem outros - arquivos de unidade com o mesmo nome, tais como - arquivos .socket (os quais criam um soquete de escuta - que fornece funcionalidade similar ao inetd/xinetd). -

    -
  • -
-
-
-
-

- 9.10.7. Trabalhando com o Diário do Systemd -

-

- O registro em um sistema inicializado com o systemd é - manejado com o systemd-journald (por padrão), em vez de um - daemon syslog Unix típico. Você também pode adicionar um - daemon syslog normal e ter ambos operando lado a lado se - desejado. O aplicativo systemd-journald armazena entradas de - diário em um formato binário, em vez de um arquivo de - registro de texto simples. Para auxiliar na análise do - arquivo, o comando journalctl é fornecido. - Aqui estão alguns exemplos dos comandos usados - frequentemente: -

-
-
    -
  • -

    - journalctl - -r: mostra todo o conteúdo do diário em - ordem cronológica reversa. -

    -
  • -
  • -

    - journalctl -u UNIDADE: - mostra as entradas de diário associadas com o arquivo - de UNIDADE especificado. -

    -
  • -
  • -

    - journalctl -b[=ID] - -r: mostra as entradas de diário desde - a mais recente inicialização bem sucedida (ou para a ID - de inicialização) em ordem cronológica reversa. -

    -
  • -
  • -

    - journalctl - -f: fornece funcionalidade similar ao - tail -f (seguir). -

    -
  • -
-
-
-
-

- 9.10.8. Trabalhando com Despejos de Núcleo -

-

- Despejos de núcleo são úteis para depurar aplicativos - quebrados, especialmente quando um processo de daemon quebra. - Em sistemas inicializados do systemd, o despejamento de - núcleo é manejado pelo systemd-coredump. Ele - registrará o despejo de núcleo no diário e armazenará o - próprio despejo de núcleo em /var/lib/systemd/coredump. Para recuperar e - processar despejos de núcleo, a ferramenta coredumpctl é fornecida. - Aqui estão alguns exemplos de comandos usados frequentemente: -

-
-
    -
  • -

    - coredumpctl - -r: lista todos os despejos de núcleo - em ordem cronológica reversa. -

    -
  • -
  • -

    - coredumpctl -1 - info: mostra a informação a partir do - mais recente despejo de núcleo. -

    -
  • -
  • -

    - coredumpctl -1 - debug: carrega o mais recente despejo - de núcleo no - GDB. -

    -
  • -
-
-

- Despejos de núcleo talvez usem um monte de espaço de disco. O - espaço de disco máximo usado por despejos de núcleo pode ser - limitado criando-se um arquivo de configuração em - /etc/systemd/coredump.conf.d. - Por exemplo: -

-
mkdir -pv /etc/systemd/coredump.conf.d
-
-cat > /etc/systemd/coredump.conf.d/maxuse.conf << EOF
-[Coredump]
-MaxUse=5G
-EOF
-

- Vejam-se as páginas de manual systemd-coredump(8); coredumpctl(1); e coredump.conf.d(5) para mais informação. -

-
-
-

- 9.10.9. Processos de Execução Longa -

-

- Iniciando com o systemd-230, todos os processos de usuária(o) - são finalizados quando uma sessão de usuária(o) for - terminada, mesmo se nohup for usado, ou o processo usar as - funções daemon() ou - setsid(). Isso é uma mudança - deliberada de um ambiente permissivo historicamente para um - mais restritivo. O novo comportamento talvez cause problemas - se você depender de aplicativos de execução longa (por - exemplo, screen - ou tmux) para - continuarem ativos depois de terminar sua sessão de - usuária(o). Existem três maneiras de habilitar processos - persistentes para continuarem depois que uma sessão de - usuária(o) for terminada. -

-
-
    -
  • -

    - Habilitar persistência de - processo apenas para usuárias(os) - selecionadas(os): Usuárias(os) normais tem - permissão para habilitar persistência de processo com o - comando loginctl - enable-linger para as(os) próprias(os) - usuárias(os) delas(es). Administradoras(es) de sistema - podem usar o mesmo comando com um argumento user ao habilitar para - uma(m) usuária(o). Essa(e) usuária(o) pode então usar o - comando systemd-run para - iniciar processos de execução longa. Por exemplo: - systemd-run --scope - --user /usr/bin/screen. Se você - habilitar a persistência para sua(eu) usuária(o), - [então] a user@.service continuará, mesmo depois que - todas as sessões de login forem fechadas, e - automaticamente iniciará na inicialização do sistema. - Isso tem a vantagem de explicitamente permitir e - proibir processos para execução depois que a sessão de - usuária(o) for terminada, porém quebra - retrocompatibilidade com ferramentas como nohup e utilitários - que usam daemon(). -

    -
  • -
  • -

    - Habilitar persistência de - processo no âmbito do sistema: Você pode - configurar KillUserProcesses=no em - /etc/systemd/logind.conf - para habilitar a persistência de processo globalmente - para todas(os) as(os) usuárias(os). Isso tem o - benefício de deixar o método antigo disponível para - todas(os) as(os) usuárias(os) à custa do controle - explícito. -

    -
  • -
  • -

    - Desabilitar em tempo de - construção: Você pode desabilitar a - persistência por padrão enquanto construir o systemd - adicionando a chave -Ddefault-kill-user-processes=false - ao comando meson para o systemd. - Isso desabilita completamente a habilidade do systemd - para finalizar processos de usuária(o) ao fim de - sessão. -

    -
  • -
-
-
-
-
-
-
-
-
-

- Capítulo 10. Tornando o - Sistema LFS Inicializável -

-
-
-
-
-
-
-
-

- 10.1. Introdução -

-
-
-
-

- É hora de tornar o sistema LFS inicializável. Este capítulo - discute a criação do arquivo /etc/fstab; construção de um kernel para o - novo sistema LFS; e instalação do carregador de inicialização - GRUB, de modo que o sistema LFS possa ser selecionado para - iniciar durante a inicialização. -

-
-
-
-
-
-

- 10.2. Criando o Arquivo - /etc/fstab -

-
-
-
-

- O arquivo /etc/fstab é usado por - alguns aplicativos para determinar onde sistemas de arquivos - são para serem montados por padrão; em qual ordem; e quais - precisam ser verificados (para erros de integridade) antes da - montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -

-
cat > /etc/fstab << "EOF"
-# Begin /etc/fstab
-
-# file system  mount-point  type     options             dump  fsck
-#                                                              order
-
-/dev/<xxx>     /            <fff>    defaults            1     1
-/dev/<yyy>     swap         swap     pri=1               0     0
-
-# End /etc/fstab
-EOF
-

- Substitua <xxx>; <yyy>; e <fff> com os valores - apropriados para o sistema, por exemplo, sda2; sda5; e - ext4. Para detalhes sobre os - seis campos nesse arquivo, veja-se man 5 fstab. -

-

- Sistemas de arquivos com origem MS-DOS ou Windows (isto é, - vfat, ntfs, smbfs, cifs, iso9660, udf) precisam de uma opção - especial, utf8, para a finalidade de caracteres não ASCII nos - nomes de arquivo serem interpretados corretamente. Para locales - não UTF-8, o valor de iocharset - deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o - entenda. Isso funciona se a definição de conjunto de caracteres - relevante (encontrada sob File systems -> Native Language - Support quando da configuração do kernel) tenha sido compilada - no kernel ou construída como um módulo. Entretanto, se o - conjunto de caracteres do locale for UTF-8, [então] a - correspondente opção iocharset=utf8 - tornaria o sistema de arquivo sensível a maiúsculas e - minúsculas. Para consertar isso, use a opção especial - utf8 em vez de iocharset=utf8, para locales UTF-8. A opção - codepage também é necessária para - sistemas de arquivos vfat e smbfs. Ela deveria ser configurada - para o número da página de código usada sob MS-DOS em seu país. - Por exemplo, para montar controladores flash USB, uma(m) - usuária(o) do ru_RU.KOI8-R precisaria do seguinte na porção de - opções da linha mount dele em /etc/fstab: -

-
noauto,user,quiet,showexec,codepage=866,iocharset=koi8r
-

- O correspondente fragmento das opções para usuárias(os) do - ru_RU.UTF-8 é: -

-
noauto,user,quiet,showexec,codepage=866,utf8
-

- Observe que usar iocharset é o - padrão para iso8859-1 (a qual - mantém o sistema de arquivo insensível a maiúsculas e - minúsculas), e a opção utf8 diz ao - kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. -

-

- É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados - de Default NLS - Option (CONFIG_NLS_DEFAULT); Default Remote NLS - Option (CONFIG_SMB_NLS_DEFAULT); Default codepage for - FAT (CONFIG_FAT_DEFAULT_CODEPAGE); e Default iocharset for - FAT (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira - de especificar essas configurações para o sistema de arquivos - ntfs em tempo de compilação do kernel. -

-

- É possível tornar o sistema de arquivos ext3 confiável em casos - de falhas de eletricidade para alguns tipos de disco rígido. - Para fazer isso, adicione a opção de montagem barrier=1 para a entrada apropriada em - /etc/fstab. Para verificar se o - controlador de disco suporta essa opção, execute - hdparm no controlador de disco aplicável. Por exemplo, se: -

-
hdparm -I /dev/sda | grep NCQ
-

- retornar uma saída não vazia, [então] a opção é suportada. -

-

- Nota: partições baseadas em Logical Volume Management (LVM) não - podem usar a opção barrier. -

-
-
-
-
-
-

- 10.3. Linux-5.16.9 -

-
-
-
-
-

- O pacote Linux contém o kernel do Linux. -

-
-
-
- Tempo aproximado de - construção: 1,5 - 130,0 - UPC (tipicamente cerca de 12 UPC) -
-
- Espaço em disco - exigido: 1200 - 8800 MB - (tipicamente cerca de 1700 MB) -
-
-
-
-
-

- 10.3.1. Instalação do kernel -

-

- Construir o kernel envolve uns poucos - passos—configuração; compilação; e instalação. Leia o - arquivo README na árvore do - fonte do kernel para métodos alternativos à maneira que este - livro configura o kernel. -

-

- Prepare para compilação executando o seguinte comando: -

-
make mrproper
-

- Isso garante que a árvore do kernel esteja absolutamente - limpa. O time do kernel recomenda que esse comando seja - executado antes de cada compilação do kernel. Não confie que - a árvore do fonte esteja limpa após descompactar. -

-

- Existem muitas maneiras de configurar as opções do kernel. - Usualmente, isso é feito por meio de uma interface controlada - por menu, por exemplo: -

-
make menuconfig
-
-

- O significado das variáveis de ambiente do make - opcionais: -

-
-
- LANG=<host_LANG_value> - LC_ALL= -
-
-

- Isso estabelece a configuração do locale para aquela - usada no anfitrião. Isso talvez seja necessário para um - adequado desenho de linha da interface ncurses do - menuconfig em um console de texto linux UTF-8. -

-

- Se usada, [então] assegure-se de substituir <host_LANG_value> - pelo valor da variável $LANG - oriunda do seu anfitrião. Você pode, alternativamente, - usar, em vez disso, o valor do anfitrião de - $LC_ALL ou $LC_CTYPE. -

-
-
- make - menuconfig -
-
-

- Isso lança uma interface controlada por menu ncurses. - Para outras (gráficas) interfaces, digite make help. -

-
-
-
-

- Para informação geral sobre configuração do kernel, veja-se - - https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. - O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora - do LFS em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/longindex.html#kernel-config-index. - Informação adicional sobre configurar e construir o kernel - pode ser encontrada em http://www.kroah.com/lkn/ -

-
-

- Nota -

-

- Um bom ponto de partida para configurar a configuração do - kernel é executar make - defconfig. Isso configurará a configuração - base para um bom estado que leve a sua atual arquitetura de - sistema em conta. -

-

- Assegure-se de habilitar/desabilitar/configurar as - seguintes características ou o sistema poderia não - funcionar corretamente ou inicializar de forma alguma: -

-
General setup -->
-   [ ] Auditing Support [CONFIG_AUDIT]
-   < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
-   [*] Control Group support [CONFIG_CGROUPS]   --->
-      [*] Memory controller [CONFIG_MEMCG]
-   [ ] Enable deprecated sysfs features to support old userspace tools [CONFIG_SYSFS_DEPRECATED]
-   [*] Configure standard kernel features (expert users) [CONFIG_EXPERT] --->
-      [*] open by fhandle syscalls [CONFIG_FHANDLE]
-   CPU/Task time and stats accounting --->
-      [*] Pressure stall information tracking [CONFIG_PSI]
-General architecture-dependent options  --->
-   [*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP]
-Networking support  --->
-  Networking options  --->
-   <*> The IPv6 protocol [CONFIG_IPV6]
-Device Drivers  --->
-  Firmware Drivers   --->
-   [*] Export DMI identification via sysfs to userspace [CONFIG_DMIID]
-  Graphics support --->
-   Frame buffer Devices --->
-      [*] Support for frame buffer devices ----
-  Generic Driver Options  --->
-   [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
-   [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
-   Firmware Loader --->
-      [ ] Enable the firmware sysfs fallback mechanism [CONFIG_FW_LOADER_USER_HELPER]
-File systems  --->
-   [*] Inotify support for userspace [CONFIG_INOTIFY_USER]
-  Pseudo filesystems  --->
-   [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]
-
-
-

- Nota -

-

- Enquanto que "The IPv6 Protocol" não é estritamente - exigido, ela é altamente recomendada pelas(os) - desenvolvedoras(es) do systemd. -

-
-
-

- Nota -

-

- Se seu hardware do anfitrião estiver usando UEFI e você - desejar inicializar o sistema LFS com ela, [então] você - deveria ajustar alguma configuração do kernel seguindo - - a página do BLFS. -

-
-
-

- A justificativa para os itens de configuração - acima: -

-
-
- Enable - kernel headers through - /sys/kernel/kheaders.tar.xz -
-
-

- Isso exigirá cpio ao se construir - o kernel. cpio não é instalado - por LFS. -

-
-
- Support - for uevent helper -
-
-

- Ter essa opção configurada talvez interfira com o - gerenciamento de dispositivo quando se usar Udev/Eudev. -

-
-
- Maintain a - devtmpfs -
-
-

- Isso criará nós de dispositivos automatizados os quais - são povoados pelo kernel, mesmo sem o Udev executando. - O Udev então executa no topo disso, gerenciando - permissões e adicionando links simbólicos. Esse item de - configuração é exigido para todas(os) as(os) - usuárias(os) do Udev/Eudev. -

-
-
-
-

- Alternativamente, make - oldconfig talvez seja mais apropriado em - algumas situações. Veja-se o arquivo README para mais informação. -

-

- Se desejado, [então] pule a configuração do kernel copiando o - arquivo config do kernel, .config, a partir do sistema anfitrião - (assumindo que ele esteja disponível) para o diretório - linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é - melhor explorar todos os menus de configuração e criar a - configuração do kernel a partir do zero. -

-

- Compile a imagem do kernel e módulos: -

-
make
-

- Se usar módulos do kernel, [então] a configuração do módulo - em /etc/modprobe.d talvez seja - exigida. Informação pertinente à configuração de módulos e - kernel está localizada na Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e - Módulos” e na documentação do kernel no diretório - linux-5.16.9/Documentation. - Também, modprobe.d(5) talvez - seja de interesse. -

-

- A menos que o suporte de módulo tenha sido desabilitado na - configuração do kernel, instale os módulos com: -

-
make modules_install
-

- Depois que a compilação do kernel estiver completa, passos - adicionais são exigidos para completar a instalação. Alguns - arquivos precisam ser copiados para o diretório /boot. -

-
-

- Cuidado -

-

- Se o sistema anfitrião tiver uma partição /boot separada, - [então] os arquivos copiados abaixo deveriam ir para lá. A - maneira mais fácil de fazer isso é vincular /boot no - anfitrião (do lado de fora do chroot) à /mnt/lfs/boot antes - de prosseguir. Como a(o) usuária(o) root no sistema anfitrião: -

-
mount --bind /boot /mnt/lfs/boot
-
-

- O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser - mudado para se adequar ao seu gosto, porém o tronco do nome - de arquivo deveria ser vmlinuz para ser compatível com a - configuração automática do processo de inicialização descrito - na próxima seção. O seguinte comando assume uma arquitetura - x86: -

-
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1-systemd
-

- System.map é um arquivo de - símbolo para o kernel. Ele mapeia os pontos de entrada de - função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em - execução. Ele é usado como um recurso quando se investigar - problemas do kernel. Emita o seguinte comando para instalar o - arquivo de mapa: -

-
cp -iv System.map /boot/System.map-5.16.9
-

- O arquivo de configuração do kernel .config produzido pelo passo make menuconfig acima - contém todas as seleções de configuração para o kernel que - foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -

-
cp -iv .config /boot/config-5.16.9
-

- Instale a documentação para o kernel do Linux: -

-
install -d /usr/share/doc/linux-5.16.9
-cp -r Documentation/* /usr/share/doc/linux-5.16.9
-

- É importante observar que os arquivos no diretório do fonte - do kernel não são de propriedade da(o) root. Sempre que um pacote é - desempacotado como a(o) usuária(o) root (como nós fizemos dentro do - chroot), os arquivos tem os IDs de usuária(o) e grupo do que - quer que fossem no computador da(o) empacotadora(r). Isso - geralmente não é um problema para qualquer outro pacote ser - instalado, pois a árvore do fonte é removida depois da - instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, - existe uma chance de que qualquer ID de usuária(o) que a(o) - empacotadora(r) usou será atribuído para alguém na máquina. - Essa pessoa então teria acesso de escrita ao fonte do kernel. -

-
-

- Nota -

-

- Em muitos casos, a configuração do kernel precisará ser - atualizada para pacotes que serão instalados posteriormente - em BLFS. Diferente de outros pacotes, não é necessário - remover a árvore do fonte do kernel depois que o recém - construído kernel for instalado. -

-

- Se a árvore do fonte do kernel será mantida, [então] - execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os - arquivos são de propriedade da(o) usuária(o) root. -

-
-
-

- Atenção -

-

- Alguma documentação do kernel recomenda criar um link - simbólico a partir de /usr/src/linux apontando para o diretório - do fonte do kernel. Isso é específico para kernels - anteriores à série 2.6 e precisa - não ser criado em um sistema LFS, uma vez que - ele pode causar problemas para pacotes que você talvez - deseje construir tão logo seu sistema LFS base esteja - completo. -

-
-
-

- Atenção -

-

- Os cabeçalhos no diretório include do sistema (/usr/include) deveriam sempre ser aqueles contra os - quais a Glibc foi compilada, isto é, os cabeçalhos - sanitizados instalados na Seção 5.4, - “Cabeçalhos da API do Linux-5.16.9”. - Portanto, eles nunca - deveriam ser substituídos tanto pelos cabeçalhos do kernel - crus quanto por quaisquer outros cabeçalhos sanitizados do - kernel. -

-
-
-
-

- 10.3.2. - Configurando a Ordem de Carregamento de Módulos do Linux -

-

- Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma - direção específica. O aplicativo que carrega os módulos, - modprobe ou - insmod, usa - /etc/modprobe.d/usb.conf para - esse propósito. Esse arquivo precisa ser criado, de forma - que, se os controladores do USB (ehci_hcd, ohci_hcd e - uhci_hcd) tiverem sido construídos como módulos, [então] eles - serão carregados na ordem correta; ehci_hcd precisa ser - carregado antes de ohci_hcd e uhci_hcd para evitar um aviso - sendo produzido em tempo de inicialização. -

-

- Crie um novo arquivo /etc/modprobe.d/usb.conf executando o - seguinte: -

-
install -v -m755 -d /etc/modprobe.d
-cat > /etc/modprobe.d/usb.conf << "EOF"
-# Begin /etc/modprobe.d/usb.conf
-
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
-
-# End /etc/modprobe.d/usb.conf
-EOF
-
-
-

- 10.3.3. - Conteúdo do Linux -

-
-
-
- Arquivos instalados: - config-5.16.9, - vmlinuz-5.16.9-lfs-11.1-systemd e - System.map-5.16.9 -
-
- Diretórios instalados: - /lib/modules e - /usr/share/doc/linux-5.16.9 -
-
-
-
-

- Descrições Curtas -

- - - - - - - - - - - - - - - - - - - -
-

- config-5.16.9 -

-
-

- Contém todas as seleções de configuração para o - kernel -

-
-

- vmlinuz-5.16.9-lfs-11.1-systemd -

-
-

- O motor do sistema Linux. Quando se liga o - computador, o kernel é a primeira parte do sistema - operacional que se torna carregada. Ele detecta e - inicializa todos os componentes do hardware do - computador, então torna esses componentes - disponíveis como uma árvore de arquivos para o - software e transforma uma CPU individual em uma - máquina multitarefa capaz de executar dezenas de - aplicativos aparentemente ao mesmo tempo -

-
-

- System.map-5.16.9 -

-
-

- Uma lista de endereços e símbolos; ele mapeia os - pontos de entrada e endereços de todas as funções e - estruturas de dados no kernel -

-
-
-
-
-
-
-
-
-

- 10.4. Usando o GRUB para - Configurar o Processo de Inicialização -

-
-
-
-
-

- Nota -

-

- Se seu sistema tiver suporte UEFI e você desejar inicializar - o LFS com UEFI, [então] você deveria pular esta página, e - configurar o GRUB com suporte UEFI usando as instruções - fornecidas na - página do BLFS. -

-
-
-

- 10.4.1. Introdução -

-
-

- Atenção -

-

- Configurar o GRUB incorretamente pode tornar seu sistema - inoperável sem um dispositivo de inicialização alternativo, - como um CD-ROM ou unidade USB inicializável. Esta seção não - é exigida para inicializar seu sistema LFS. Você talvez - apenas queira modificar seu carregador de inicialização - atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. -

-
-

- Certifique-se de que um disco de inicialização de emergência - esteja pronto para resgatar o computador se o - computador se tornar inutilizável (não inicializável). Se - você ainda não tem um dispositivo de inicialização, [então] - você pode criar um. Para que o procedimento abaixo funcione, - você precisa saltar para a frente para o BLFS e instalar - xorriso - oriundo do pacote - libisoburn. -

-
cd /tmp
-grub-mkrescue --output=grub-img.iso
-xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
-
-
-

- 10.4.2. Convenções de Nomenclatura do GRUB -

-

- O GRUB usa estrutura de nomenclatura própria dele para - unidades e partições na forma de (hdn,m), onde n é o número da unidade rígida e - m é o número da - partição. O número da unidade rígida começa do zero, porém o - número da partição inicia do um para partições normais e - cinco para partições estendidas. Observe que isso é diferente - de versões anteriores onde ambos os números começavam do - zero. Por exemplo, a partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com o Linux, - GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em - hdc, [então] aquela segunda - unidade rígida ainda seria (hd1). -

-
-
-

- 10.4.3. Definindo a Configuração -

-

- O GRUB funciona escrevendo dados para a primeira trilha - física do disco rígido. Essa área não é parte de nenhum - sistema de arquivos. Os aplicativos lá acessam módulos do - GRUB na partição de inicialização. O local padrão é - /boot/grub/. -

-

- O local da partição de inicialização é uma escolha da(o) - usuária(o) que afeta a configuração. Uma recomendação é ter - uma partição pequena (tamanho sugerido é 200 MB) separada - somente para informação de inicialização. Dessa forma, cada - construção, seja LFS ou alguma distribuição comercial, pode - acessar os mesmos arquivos de inicialização e o acesso pode - ser feito a partir de qualquer sistema inicializado. Se você - escolher fazer isso, [então] você precisará montar a partição - separada, mover todos os arquivos no diretório /boot atual (por exemplo, o kernel linux - que você recém construiu na seção anterior) para a nova - partição. Você precisará então desmontar a partição e - remontar ela como /boot. Se - você fizer isso, [então] tenha certeza de atualizar - /etc/fstab. -

-

- Usar a partição lfs atual também funcionará, porém a - configuração para múltiplos sistemas é mais complicada. -

-

- Usando a informação acima, determine o designador apropriado - para a partição raiz (ou partição de inicialização, se uma - separada for usada). Para o exemplo seguinte, é assumido que - a partição raiz (ou inicialização separada) é sda2. -

-

- Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: -

-
-

- Atenção -

-

- O seguinte comando sobrescreverá o carregador de - inicialização atual. Não execute o comando de isso não for - desejado, por exemplo, se usar um gerenciador de - inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -

-
-
grub-install /dev/sda
-
-

- Nota -

-

- Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install - tentará instalar arquivos para o alvo x86_64-efi, porém aqueles - arquivos não foram instalados no Capítulo 8. - Se esse for o caso, [então] adicione --target i386-pc ao comando acima. -

-
-
-
-

- 10.4.4. Criando o - Arquivo de Configuração do GRUB -

-

- Gere o /boot/grub/grub.cfg: -

-
cat > /boot/grub/grub.cfg << "EOF"
-# Begin /boot/grub/grub.cfg
-set default=0
-set timeout=5
-
-insmod ext2
-set root=(hd0,2)
-
-menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1-systemd" {
-        linux   /boot/vmlinuz-5.16.9-lfs-11.1-systemd root=/dev/sda2 ro
-}
-EOF
-
-

- Nota -

-

- A partir da perspectiva do GRUB, os arquivos do kernel são - relativos à partição usada. Se você usou uma partição /boot - separada, [então] remova /boot da linha linux acima. Você também - precisará mudar a linha set - root para apontar para a partição de - inicialização. -

-
-

- O GRUB é um aplicativo extremamente poderoso e ele fornece um - tremendo número de opções para inicializar a partir de uma - ampla variedade de dispositivos, sistemas operacionais e - tipos de partição. Existem também muitas opções para - personalização, tais como telas splash gráficas; reprodução - de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. -

-
-

- Cuidado -

-

- Existe um comando, grub-mkconfig, que pode escrever um - arquivo de configuração automaticamente. Ele usa um - conjunto de scripts em /etc/grub.d/ e destruirá quaisquer - personalizações que você fizer. Esses scripts são - projetados primariamente para distribuições não fonte e não - são recomendados para o LFS. Se você instalar uma - distribuição do Linux comercial, [então] existe uma boa - chance de que esse aplicativo será executado. Tenha certeza - de produzir uma cópia de segurança do seu arquivo grub.cfg. -

-
-
-
-
-
-
-
-
-

- Capítulo 11. O Fim -

-
-
-
-
-
-
-
-

- 11.1. O Fim -

-
-
-
-

- Muito bem! O novo sistema LFS está instalado! Nós desejamos a - você muito sucesso com seu novo e brilhante sistema Linux - construído sob medida. -

-

- Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse arquivo, é muito - fácil para você (e para nós se você precisar pedir por ajuda em - algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -

-
echo 11.1-systemd > /etc/lfs-release
-

- Dois arquivos descrevendo o sistema instalado talvez sejam - usados por pacotes que podem ser instalados no sistema - posteriormente, ou em forma de binário ou construindo eles. -

-

- O primeiro deles mostra a situação do seu novo sistema com - respeito ao Linux Standards Base (LSB). Para criar esse - arquivo, execute: -

-
cat > /etc/lsb-release << "EOF"
-DISTRIB_ID="Linux From Scratch"
-DISTRIB_RELEASE="11.1-systemd"
-DISTRIB_CODENAME="<seu nome aqui>"
-DISTRIB_DESCRIPTION="Linux From Scratch"
-EOF
-

- O segundo deles contém aproximadamente a mesma informação, e é - usado pelo systemd e alguns ambientes de área de trabalho - gráficos. Para criar esse arquivo, execute: -

-
cat > /etc/os-release << "EOF"
-NAME="Linux From Scratch"
-VERSION="11.1-systemd"
-ID=lfs
-PRETTY_NAME="Linux From Scratch 11.1-systemd"
-VERSION_CODENAME="<seu nome aqui>"
-EOF
-

- Tenha certeza de colocar algum tipo de personalização para os - campos 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o - sistema unicamente seu. -

-
-
-
-
-
-

- 11.2. Seja Contado -

-
-
-
-

- Agora que você terminou o livro, você quer ser contada(o) como - uma(m) usuária(o) do LFS? Vá para https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - e registre-se como uma(m) usuária(o) do LFS fornecendo seu nome - e a primeira versão do LFS que você usou. -

-

- Vamos reinicializar no LFS agora. -

-
-
-
-
-
-

- 11.3. Reinicializando o - Sistema -

-
-
-
-

- Agora que todo o software foi instalado, é hora de - reinicializar seu computador. Entretanto, você deveria estar - ciente de umas poucas coisas. O sistema que você criou neste - livro é bastante mínimo, e provavelmente não terá a - funcionalidade que você precisaria para ser capaz de seguir em - frente. Instalando uns poucos pacotes extras a partir do livro - BLFS enquanto ainda em seu ambiente chroot atual, você pode - deixar-se em uma posição muito melhor para continuar tão logo - você reinicialize em sua nova instalação do LFS. Aqui estão - algumas sugestões: -

-
-
    -
  • -

    - Um navegador de modo de texto como o - Lynx permitirá que você facilmente visualize o livro - BLFS em um terminal virtual, enquanto constrói pacotes em - outro. -

    -
  • -
  • -

    - O pacote - make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema - verifique certificados SSL fornecidos por servidores - remotos (por exemplo, um sítio da web usando o HTTPS). -

    -
  • -
  • -

    - O pacote - GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. -

    -
  • -
  • -

    - Instalar - sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os - pacotes resultantes em seu novo sistema. -

    -
  • -
  • -

    - Se você quiser acessar seu novo sistema a partir de um - sistema remoto dentro de um ambiente GUI confortável, - [então] instale - openssh. -

    -
  • -
  • -

    - Para tornar a obtenção de arquivos por meio da Internet - mais fácil, instale - wget. -

    -
  • -
  • -

    - Para se conectar a um ponto de acesso sem fios para rede, - instale - wpa_supplicant. -

    -
  • -
  • -

    - Finalmente, uma revisão dos seguintes arquivos de - configuração também é apropriada neste ponto. -

    -
    -
      -
    • -

      - /etc/bashrc -

      -
    • -
    • -

      - /etc/dircolors -

      -
    • -
    • -

      - /etc/fstab -

      -
    • -
    • -

      - /etc/hosts -

      -
    • -
    • -

      - /etc/inputrc -

      -
    • -
    • -

      - /etc/profile -

      -
    • -
    • -

      - /etc/resolv.conf -

      -
    • -
    • -

      - /etc/vimrc -

      -
    • -
    • -

      - /root/.bash_profile -

      -
    • -
    • -

      - /root/.bashrc -

      -
    • -
    -
    -
  • -
-
-

- Agora que nós dissemos isso, vamos em frente para inicializar - nossa brilhante e nova instalação do LFS pela primeira vez! - Primeiro saia do ambiente chroot: -

-
logout
-

- Então desmonte os sistemas de arquivos virtuais: -

-
umount -v $LFS/dev/pts
-umount -v $LFS/dev
-umount -v $LFS/run
-umount -v $LFS/proc
-umount -v $LFS/sys
-

- Se múltiplas partições foram criadas, [então] desmonte as - outras partições antes de desmontar a principal, como isto: -

-
umount -v $LFS/usr
-umount -v $LFS/home
-umount -v $LFS
-

- Desmonte o próprio sistema de arquivos do LFS: -

-
umount -v $LFS
-

- Agora, reinicialize o sistema com: -

-
shutdown -r now
-

- Assumindo que o carregador de inicialização GRUB foi - configurado como destacado anteriormente, o menu está - configurado para inicializar o LFS - 11.1-systemd automaticamente. -

-

- Quando a reinicialização estiver completa, o sistema LFS estará - pronto para uso e mais software talvez seja adicionado para - suprir suas necessidades. -

-
-
-
-
-
-

- 11.4. E agora? -

-
-
-
-

- Obrigado por ler este livro LFS. Nós esperamos que você tenha - achado este livro útil e tenha aprendido mais sobre o processo - de criação do sistema. -

-

- Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: E - depois? Para responder a essa pergunta, - nós compilamos uma lista de recursos para você. -

-
-
    -
  • -

    - Manutenção -

    -

    - Notificações de defeitos e segurança são relatadas - regularmente para todo software. Uma vez que um sistema - LFS é compilado a partir do fonte, cabe a você se manter - a par de tais relatórios. Existem vários recursos online - que rastreiam tais relatórios, alguns dos quais estão - mostrados abaixo: -

    -
    -
      -
    • -

      - CERT (Computer Emergency - Response Team) -

      -

      - O CERT tem uma lista de discussão que publica - alertas de segurança a respeito de vários sistemas - operacionais e aplicativos. Informação de - assinatura está disponível em http://www.us-cert.gov/cas/signup.html. -

      -
    • -
    • -

      - Bugtraq -

      -

      - Bugtraq é uma lista de discussão de segurança de - computador de divulgação completa. Ela publica - problemas de segurança descobertos recentemente, e - ocasionalmente consertos potenciais para eles. - Informação de assinatura está disponível em - http://www.securityfocus.com/archive. -

      -
    • -
    -
    -
  • -
  • -

    - Beyond Linux From Scratch -

    -

    - O livro Beyond Linux From Scratch cobre procedimentos de - instalação para uma ampla gama de software além do escopo - do Livro LFS. O projeto BLFS está localizado em - https://www.linuxfromscratch.org/blfs/view/stable-systemd/. -

    -
  • -
  • -

    - LFS Hints -

    -

    - As Dicas do LFS são uma coleção de documentos - educacionais submetidos por voluntários na comunidade do - LFS. As dicas estão disponíveis em - https://www.linuxfromscratch.org/hints/downloads/files/. -

    -
  • -
  • -

    - Listas de discussão -

    -

    - Existem várias listas de discussão do LFS que você talvez - assine se você estiver necessitada(o) de ajuda; quiser se - manter atualizada(o) com os mais recentes - desenvolvimentos; quiser contribuir para o projeto; e - mais. Veja-se Capítulo 1 - - Listas de Discussão para mais informação. -

    -
  • -
  • -

    - The Linux Documentation Project -

    -

    - O objetivo do The Linux Documentation Project (TLDP) é o - de colaborar em todos os problemas de documentação do - Linux. O TLDP apresenta uma grande coleção de HOWTOs, - guias e páginas de manual. Ele está localizado em - http://www.tldp.org/. -

    -
  • -
-
-
-
-
-
-
-
-
-

- Parte V. Anexos -

-
-
-
-
-
-
-
-

- Apêndice A. Siglas e Termos -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- ABI -

-
-

- Application Binary Interface -

-
-

- ALFS -

-
-

- Automated Linux From Scratch -

-
-

- API -

-
-

- Application Programming Interface -

-
-

- ASCII -

-
-

- American Standard Code for Information Interchange -

-
-

- BIOS -

-
-

- Basic Input/Output System -

-
-

- BLFS -

-
-

- Beyond Linux From Scratch -

-
-

- BSD -

-
-

- Berkeley Software Distribution -

-
-

- chroot -

-
-

- change root -

-
-

- CMOS -

-
-

- Complementary Metal Oxide Semiconductor -

-
-

- COS -

-
-

- Class Of Service -

-
-

- CPU -

-
-

- Central Processing Unit -

-
-

- CRC -

-
-

- Cyclic Redundancy Check -

-
-

- CVS -

-
-

- Concurrent Versions System -

-
-

- DHCP -

-
-

- Dynamic Host Configuration Protocol -

-
-

- DNS -

-
-

- Domain Name Service -

-
-

- EGA -

-
-

- Enhanced Graphics Adapter -

-
-

- ELF -

-
-

- Executable and Linkable Format -

-
-

- EOF -

-
-

- End of File -

-
-

- EQN -

-
-

- equation -

-
-

- ext2 -

-
-

- second extended file system -

-
-

- ext3 -

-
-

- third extended file system -

-
-

- ext4 -

-
-

- fourth extended file system -

-
-

- FAQ -

-
-

- Frequently Asked Questions -

-
-

- FHS -

-
-

- Filesystem Hierarchy Standard -

-
-

- FIFO -

-
-

- First-In, First Out -

-
-

- FQDN -

-
-

- Fully Qualified Domain Name -

-
-

- FTP -

-
-

- File Transfer Protocol -

-
-

- GB -

-
-

- Gigabytes -

-
-

- GCC -

-
-

- GNU Compiler Collection -

-
-

- GID -

-
-

- Group Identifier -

-
-

- GMT -

-
-

- Greenwich Mean Time -

-
-

- HTML -

-
-

- Hypertext Markup Language -

-
-

- IDE -

-
-

- Integrated Drive Electronics -

-
-

- IEEE -

-
-

- Institute of Electrical and Electronic Engineers -

-
-

- IO -

-
-

- Input/Output -

-
-

- IP -

-
-

- Internet Protocol -

-
-

- IPC -

-
-

- Inter-Process Communication -

-
-

- IRC -

-
-

- Internet Relay Chat -

-
-

- ISO -

-
-

- International Organization for Standardization -

-
-

- ISP -

-
-

- Internet Service Provider -

-
-

- KB -

-
-

- Kilobytes -

-
-

- LED -

-
-

- Light Emitting Diode -

-
-

- LFS -

-
-

- Linux From Scratch -

-
-

- LSB -

-
-

- Linux Standard Base -

-
-

- MB -

-
-

- Megabytes -

-
-

- MBR -

-
-

- Master Boot Record -

-
-

- MD5 -

-
-

- Message Digest 5 -

-
-

- NIC -

-
-

- Network Interface Card -

-
-

- NLS -

-
-

- Native Language Support -

-
-

- NNTP -

-
-

- Network News Transport Protocol -

-
-

- NPTL -

-
-

- Native POSIX Threading Library -

-
-

- OSS -

-
-

- Open Sound System -

-
-

- PCH -

-
-

- Pre-Compiled Headers -

-
-

- PCRE -

-
-

- Perl Compatible Regular Expression -

-
-

- PID -

-
-

- Process Identifier -

-
-

- PTY -

-
-

- pseudo terminal -

-
-

- QOS -

-
-

- Quality Of Service -

-
-

- RAM -

-
-

- Random Access Memory -

-
-

- RPC -

-
-

- Remote Procedure Call -

-
-

- RTC -

-
-

- Real Time Clock -

-
-

- SBU -

-
-

- Standard Build Unit -

-
-

- SCO -

-
-

- The Santa Cruz Operation -

-
-

- SHA1 -

-
-

- Secure-Hash Algorithm 1 -

-
-

- TLDP -

-
-

- The Linux Documentation Project -

-
-

- TFTP -

-
-

- Trivial File Transfer Protocol -

-
-

- TLS -

-
-

- Thread-Local Storage -

-
-

- UID -

-
-

- User Identifier -

-
-

- umask -

-
-

- user file-creation mask -

-
-

- USB -

-
-

- Universal Serial Bus -

-
-

- UTC -

-
-

- Coordinated Universal Time -

-
-

- UUID -

-
-

- Universally Unique Identifier -

-
-

- VC -

-
-

- Virtual Console -

-
-

- VGA -

-
-

- Video Graphics Array -

-
-

- VT -

-
-

- Virtual Terminal -

-
-
-
-
-
-
-
-

- Apêndice B. Reconhecimentos -

-
-
-
-

- Nós gostaríamos de agradecer às seguintes pessoas e organizações - por suas contribuições para o Projeto Linux From Scratch. -

-
-
    -
  • -

    - Gerard Beekmans - <gerard AT linuxfromscratch D0T org> – Criador do LFS -

    -
  • -
  • -

    - Bruce Dubbs - <bdubbs AT linuxfromscratch D0T org> – Editor-chefe do - LFS -

    -
  • -
  • -

    - Jim - Gifford <jim AT linuxfromscratch D0T org> – - Colíder do Projeto CLFS -

    -
  • -
  • -

    - Pierre Labastie - <pierre AT linuxfromscratch D0T org> – Editor do BLFS - e Líder do ALFS -

    -
  • -
  • -

    - DJ - Lucas <dj AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Ken - Moffat <ken AT linuxfromscratch D0T org> – Editor - do BLFS -

    -
  • -
  • -

    - Incontáveis outras pessoas nas várias listas de discussão - do LFS e BLFS que ajudaram a tornar este livro possível - dando suas sugestões; testando o livro; e submetendo - relatórios de defeitos; instruções; e suas experiências com - a instalação de vários pacotes. -

    -
  • -
-
-

- Tradutoras(es) -

-
-
    -
  • -

    - Manuel - Canales Esparcia <macana AT macana-es D0T com> – - Projeto de tradução do LFS para espanhol -

    -
  • -
  • -

    - Johan Lenglet - <johan AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês até 2008 -

    -
  • -
  • -

    - Jean-Philippe - Mengual <jmengual AT linuxfromscratch D0T org> – - Projeto de tradução do LFS para francês 2008-2016 -

    -
  • -
  • -

    - Julien Lepiller - <jlepiller AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para francês 2017-presente -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Projeto de - tradução do LFS para português -

    -
  • -
  • -

    - Thomas - Reitelbach <tr AT erdfunkstelle D0T de> – Projeto - de tradução do LFS para alemão -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
  • -

    - Elena Shevcova - <helen AT linuxfromscratch D0T org D0T ru> – Projeto de - tradução do LFS para russo -

    -
  • -
-
-

- Mantenedoras(es) de Espelhos -

-

- Espelhos da América do Norte -

-
-
    -
  • -

    - Scott - Kveton <scott AT osuosl D0T org> – espelho - lfs.oregonstate.edu -

    -
  • -
  • -

    - William - Astle <lost AT l-w D0T net> – espelho - ca.linuxfromscratch.org -

    -
  • -
  • -

    - Eujon Sellers - <jpolen@rackspace.com> – espelho - lfs.introspeed.com -

    -
  • -
  • -

    - Justin - Knierim <tim@idge.net> – espelho - lfs-matrix.net -

    -
  • -
-
-

- Espelhos da América do Sul -

-
- -
-

- Espelhos Europeus -

-
-
    -
  • -

    - Guido - Passet <guido AT primerelay D0T net> – espelho - nl.linuxfromscratch.org -

    -
  • -
  • -

    - Bastiaan - Jacques <baafie AT planet D0T nl> – espelho - lfs.pagefault.net -

    -
  • -
  • -

    - Sven - Cranshoff <sven D0T cranshoff AT lineo D0T be> – - espelho lfs.lineo.be -

    -
  • -
  • -

    - Scarlet Belgium – espelho lfs.scarlet.be -

    -
  • -
  • -

    - Sebastian - Faulborn <info AT aliensoft D0T org> – espelho - lfs.aliensoft.org -

    -
  • -
  • -

    - Stuart - Fox <stuart AT dontuse D0T ms> – espelho - lfs.dontuse.ms -

    -
  • -
  • -

    - Ralf - Uhlemann <admin AT realhost D0T de> – espelho - lfs.oss-mirror.org -

    -
  • -
  • -

    - Antonin Sprinzl - <Antonin D0T Sprinzl AT tuwien D0T ac D0T at> – espelho - at.linuxfromscratch.org -

    -
  • -
  • -

    - Fredrik Danerklint - <fredan-lfs AT fredan D0T org> – espelho - se.linuxfromscratch.org -

    -
  • -
  • -

    - Franck - <franck AT linuxpourtous D0T com> – espelho - lfs.linuxpourtous.com -

    -
  • -
  • -

    - Philippe - Baque <baque AT cict D0T fr> – espelho lfs.cict.fr -

    -
  • -
  • -

    - Vitaly - Chekasin <gyouja AT pilgrims D0T ru> – espelho - lfs.pilgrims.ru -

    -
  • -
  • -

    - Benjamin - Heil <kontakt AT wankoo D0T org> – espelho - lfs.wankoo.org -

    -
  • -
  • -

    - Anton Maisak - <info AT linuxfromscratch D0T org D0T ru> – espelho - linuxfromscratch.org.ru -

    -
  • -
-
-

- Espelhos Asiáticos -

-
-
    -
  • -

    - Satit - Phermsawang <satit AT wbac D0T ac D0T th> – espelho - lfs.phayoune.org -

    -
  • -
  • -

    - Shizunet - Co.,Ltd. <info AT shizu-net D0T jp> – espelho - lfs.mirror.shizu-net.jp -

    -
  • -
  • -

    - Init - World <http://www.initworld.com/> – espelho - lfs.initworld.com -

    -
  • -
-
-

- Espelhos da Austrália -

-
-
    -
  • -

    - Jason - Andrade <jason AT dstc D0T edu D0T au> – espelho - au.linuxfromscratch.org -

    -
  • -
-
-

- Ex-membros da Equipe do Projeto -

-
-
    -
  • -

    - Christine - Barczak <theladyskye AT linuxfromscratch D0T org> - – Editor do Livro LFS -

    -
  • -
  • -

    - Archaic <archaic@linuxfromscratch.org> – - Escritor/Editor Técnico do LFS (Dicas e Patches); Líder do - Projeto HLFS; Editor do BLFS; Mantenedor do Projeto Dicas e - Patches -

    -
  • -
  • -

    - Matthew Burgess - <matthew AT linuxfromscratch D0T org> – Líder de - Projeto do LFS; Escritor/Editor Técnico do LFS -

    -
  • -
  • -

    - Nathan Coulson - <nathan AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Timothy Bauscher -

    -
  • -
  • -

    - Robert Briggs -

    -
  • -
  • -

    - Ian Chilton -

    -
  • -
  • -

    - Jeroen Coumans - <jeroen AT linuxfromscratch D0T org> – Desenvolvedor - de Sítio da Web; Mantenedor de FAQ -

    -
  • -
  • -

    - Manuel Canales - Esparcia <manuel AT linuxfromscratch D0T org> – - Mantenedor de XML e XSL do LFS/BLFS/HLFS -

    -
  • -
  • -

    - Alex Groenewoud – Escritor Técnico do LFS -

    -
  • -
  • -

    - Marc Heerdink -

    -
  • -
  • -

    - Jeremy Huntwork - <jhuntwork AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor de LiveCD do LFS -

    -
  • -
  • -

    - Bryan Kadzban - <bryan AT linuxfromscratch D0T org> – Escritor Técnico - do LFS -

    -
  • -
  • -

    - Mark Hymers -

    -
  • -
  • -

    - Seth W. Klein – Mantenedor do FAQ -

    -
  • -
  • -

    - Nicholas Leippe - <nicholas AT linuxfromscratch D0T org> – Mantenedor da - Wiki -

    -
  • -
  • -

    - Anderson Lizardo - <lizardo AT linuxfromscratch D0T org> – Mantenedor de - Scripts de Infraestrutura de Sítio Web -

    -
  • -
  • -

    - Randy McMurchy - <randy AT linuxfromscratch D0T org> – Líder de Projeto - do BLFS; Editor do LFS -

    -
  • -
  • -

    - Dan Nicholson - <dnicholson AT linuxfromscratch D0T org> – Editor do - LFS e BLFS -

    -
  • -
  • -

    - Alexander E. - Patrakov <alexander AT linuxfromscratch D0T org> – - Escritor Técnico do LFS; Editor de Internacionalização do - LFS; Mantenedor de Live CD do LFS -

    -
  • -
  • -

    - Simon Perreault -

    -
  • -
  • -

    - Scot Mc Pherson - <scot AT linuxfromscratch D0T org> – Mantenedor do - Gateway NNTP do LFS -

    -
  • -
  • -

    - Douglas R. Reno - <renodr AT linuxfromscratch D0T org> – Editor do - Systemd -

    -
  • -
  • -

    - Ryan Oliver - <ryan AT linuxfromscratch D0T org> – Colíder de - Projeto do CLFS -

    -
  • -
  • -

    - Greg - Schafer <gschafer AT zip D0T com D0T au> – Escritor - Técnico do LFS e Arquiteto do Método de Construção de - Habilitação de 64 bits de Próxima Geração -

    -
  • -
  • -

    - Jesse Tie-Ten-Quee – Escritor Técnico do LFS -

    -
  • -
  • -

    - James Robertson - <jwrober AT linuxfromscratch D0T org> – Mantenedor do - Bugzilla -

    -
  • -
  • -

    - Tushar Teredesai - <tushar AT linuxfromscratch D0T org> – Editor do Livro - BLFS; Líder de Projeto de Dicas e Patches -

    -
  • -
  • -

    - Jeremy Utley - <jeremy AT linuxfromscratch D0T org> – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de - Scripts de Inicialização do LFS -

    -
  • -
  • -

    - Zack - Winkles <zwinkles AT gmail D0T com> – Escritor - Técnico do LFS -

    -
  • -
-
-
-
-
-
-
-

- Apêndice C. Dependências -

-
-
-
-

- Cada pacote construído no LFS depende de um ou mais outros - pacotes para construir e instalar adequadamente. Alguns pacotes - até participam em dependências circulares, isto é, o primeiro - pacote depende do segundo o qual, na sequência, depende do - primeiro. Por causa dessas dependências, a ordem na qual pacotes - são construídos no LFS é muito importante. O propósito desta - página é o de documentar as dependências de cada pacote - construído no LFS. -

-

- Para cada pacote que é construído, existem três, e as vezes até - cinco tipos de dependências listadas abaixo. A primeira lista que - outros pacotes necessitam estar disponíveis para compilar e - instalar o pacote em questão. A segunda lista os pacotes que - precisam estar disponíveis quando quaisquer aplicativos ou - bibliotecas oriundos do pacote forem usados em tempo de execução. - A terceira lista que pacotes, em adição àqueles na primeira - lista, necessitam estar disponíveis para executar as suítes de - teste. A quarta lista de dependências são pacotes que exigem que - esse pacote esteja construído e instalado no local final dele - antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente - caminhos para binários dentro dos scripts deles. Se não for - construído em uma certa ordem, [então] isso poderia resultar em - caminhos como /tools/bin/[binário] sendo colocados dentro de - scripts instalados para o sistema final. Isso obviamente não é - desejável. -

-

- A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) - usuária(o). Esses pacotes talvez tenham dependências obrigatórias - ou opcionais adicionais deles próprios. Para essas dependências, - a prática recomendada é a de instalá-las depois de completar o - livro LFS e então voltar e reconstruir o pacote LFS. Em muitos - casos, a reinstalação é endereçada no BLFS. -

-

- Acl -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Gettext, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Attr e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Sed, Tar e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Attr -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Acl e Libcap -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Autoconf -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Grep, M4, Make, Perl, - Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Automake, Diffutils, Findutils, GCC e - Libtool -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake -
-
-
-
- -
-
- Dependências opcionais: - - Emacs -
-
-
-

- Automake -

-
- -
-
- Instalação depende de: - Autoconf, Bash, Coreutils, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Grep, M4, Sed e Texinfo -
-
-
-
- -
-
- Suíte de teste depende de: - Binutils, Bison, Bzip2, DejaGNU, - Diffutils, Expect, Findutils, Flex, GCC, Gettext, Gzip, - Libtool e Tar -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Bash -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, - Readline, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg -
-
-
-

- Bc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Ncurses e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Binutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - File, Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Elfutils -
-
-
-

- Bison -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Findutils e Flex -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kbd e Tar -
-
-
-
- -
-
- Dependências opcionais: - - Doxygen -
-
-
-

- Bzip2 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Make e Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Check -

-
- -
-
- Instalação depende de: - Gawk, GCC, Grep, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Gawk -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Coreutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Libcap, Make, OpenSSL, Patch, - Perl, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, E2fsprogs, Findutils, Shadow - e Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, Diffutils, Eudev, - Findutils e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Expect.pm e IO::Tty -
-
-
-

- DejaGNU -

-
- -
-
- Instalação depende de: - Bash, Coreutils, Diffutils, Expect, - GCC, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Expect e Bash -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Diffutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- E2fsprogs -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Gzip, Make, Sed, Texinfo e - Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Procps-ng e Psmisc -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Eudev -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Gperf, Make, Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Kmod, Xz, - Util-linux e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expat -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python e - XML::Parser -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Expect -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Patch, Sed e Tcl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Tk -
-
-
-

- File -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, - Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed, Xz e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Bzip2, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Findutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Flex -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, M4, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - M4 -
-
-
-
- -
-
- Suíte de teste depende de: - Bison e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Binutils, IProute2, Kbd, - Kmod e Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gawk -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, GMP, Grep, Make, MPFR, Patch, Readline, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Mpfr -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- GCC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, - MPC, MPFR, Patch, Perl, Sed, Tar, Texinfo e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Binutils, - Glibc, Mpc e Python -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU, Expect e Shadow -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - GNAT e ISL -
-
-
-

- GDBM -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Glibc e - Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gettext -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Bash, Gcc e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils, Perl e Tcl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Automake e Bison -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Glibc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API - do Linux, Make, Perl, Python, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - File -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- GMP -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, M4, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: MPFR e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gperf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Expect -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Grep -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - - PCRE e - libsigsegv -
-
-
-

- Groff -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Gawk, - GCC, Glibc, Grep, Make, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB e Perl -
-
-
-
- -
-
- Dependências opcionais: - - ghostscript e - Uchardet -
-
-
-

- GRUB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, - Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, - Texinfo e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GCC, Gettext, - Glibc, Xz e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Gzip -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Less -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Iana-Etc -

-
- -
-
- Instalação depende de: - Coreutils -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Perl -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Inetutils -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed, Texinfo e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC, Glibc, Ncurses - e Readline -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Tar -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Intltool -

-
- -
-
- Instalação depende de: - Bash, Gawk, Glibc, Make, Perl, Sed e - XML::Parser -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Glibc, Grep, Perl e Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- IProute2 -

-
- -
-
- Instalação depende de: - Bash, Bison, Coreutils, Flex, GCC, - Glibc, Make, Libcap, Libelf, Cabeçalhos da API do Linux e - Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils, - Glibc, Libcap, Libelf e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB e - iptables -
-
-
-

- Jinja2 -

-
- -
-
- Instalação depende de: - MarkupSafe e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: MarkupSafe e - Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kbd -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Check, - Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, Coreutils e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Kmod -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bison, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz - e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Xz e - Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Less -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gzip -
-
-
-
- -
-
- Dependências opcionais: - - PCRE -
-
-
-

- Libcap -

-
- -
-
- Instalação depende de: - Attr, Bash, Binutils, Coreutils, GCC, - Glibc, Perl, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Shadow -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM -
-
-
-

- Libelf -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc e - Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: IProute2 e Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libffi -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGnu -
-
-
-
- -
-
- Precisa ser instalado antes - de: Python -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libpipeline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Check -
-
-
-
- -
-
- Precisa ser instalado antes - de: Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Libtool -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Autoconf, Automake, - Bash, Binutils, Coreutils, File, GCC, Glibc, Grep, Make e - Sed -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Automake e Findutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Linux -

-
- -
-
- Instalação depende de: - Bash, Bc, Binutils, Coreutils, - Diffutils, Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, - Make, Ncurses, OpenSSL, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - cpio -
-
-
-

- Cabeçalhos da API do Linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Findutils, - GCC, Glibc, Grep, Gzip, Make, Perl e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- M4 -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf e Bison -
-
-
-
- -
-
- Dependências opcionais: - - libsigsegv -
-
-
-

- Make -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Perl e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Guile -
-
-
-

- Man-DB -

-
- -
-
- Instalação depende de: - Bash, Binutils, Bzip2, Coreutils, Flex, - GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, - Libpipeline, Make, Sed e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Bash, GDBM, Groff, - Glibc, Gzip, Less, Libpipeline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Util-linux -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - libseccomp -
-
-
-

- Man-Pages -

-
- -
-
- Instalação depende de: - Bash, Coreutils e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Nenhuma -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MarkupSafe -

-
- -
-
- Instalação depende de: - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Jinja2 -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Meson -

-
- -
-
- Instalação depende de: - Ninja e Python -
-
-
-
- -
-
- Exigido em tempo de - execução: Python -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Systemd -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPC -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, GMP e - MPFR -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- MPFR -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, GMP, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e GMP -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Gawk e GCC -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ncurses -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash, GRUB, Inetutils, - Less, Procps-ng, Psmisc, Readline, Texinfo, Util-linux e - Vim -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Ninja -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC e - Python -
-
-
-
- -
-
- Exigido em tempo de - execução: GCC e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Meson -
-
-
-
- -
-
- Dependências opcionais: - - Asciidoc, - Doxygen, - Emacs e re2c -
-
-
-

- OpenSSL -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Make e - Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils, Kmod e - Linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Patch -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Patch -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Ed -
-
-
-

- Perl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - GDBM, Glibc, Grep, Groff, Make, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: GDBM e Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Iana-Etc, Less e Procps-ng -
-
-
-
- -
-
- Precisa ser instalado antes - de: Autoconf -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB -
-
-
-

- Pkg-config -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Popt e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Kmod -
-
-
-
- -
-
- Dependências opcionais: - - Glib2 -
-
-
-

- Procps-ng -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Ncurses -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - DejaGNU -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Psmisc -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Python -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Gdbm, Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, - Sed e Util-linux -
-
-
-
- -
-
- Exigido em tempo de - execução: Bzip2, Expat, Gdbm, - Glibc, Libffi, Ncurses, OpenSSL e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - GDB e Valgrind -
-
-
-
- -
-
- Precisa ser instalado antes - de: Ninja -
-
-
-
- -
-
- Dependências opcionais: - - Berkeley DB, - libnsl, - SQLite e - Tk -
-
-
-

- Readline -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Ncurses, Patch, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Bash e Gawk -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Sed -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Sed e Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr e - Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Diffutils e Gawk -
-
-
-
- -
-
- Precisa ser instalado antes - de: E2fsprogs, File, Libtool e - Shadow -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Shadow -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, - Libcap, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Coreutils -
-
-
-
- -
-
- Dependências opcionais: - - CrackLib e - Linux-PAM -
-
-
-

- Sysklogd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Patch -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Systemd -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, - Libcap, Meson, Sed, Util-linux e Zstd -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Libcap e Util-linux -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
- -

- Sysvinit -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Make e - Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma suíte de teste - disponível -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tar -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Bison, - Coreutils, GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e - Texinfo -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Bzip2, - Glibc, Gzip e Xz -
-
-
-
- -
-
- Suíte de teste depende de: - Autoconf, Diffutils, Findutils, Gawk e - Gzip -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Tcl -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Texinfo -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, - Gettext, Glibc, Grep, Make, Ncurses, Patch e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc e - Ncurses -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Util-linux -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - Eudev, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, - Make, Ncurses, Sed e Zlib -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc, Libcap, - Ncurses, Readline e Zlib -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Linux-PAM e - smartmontools -
-
-
-

- Vim -

-
- -
-
- Instalação depende de: - Acl, Attr, Bash, Binutils, Coreutils, - Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Acl, Attr, Glibc, - Python, Ncurses e Tcl -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Nenhuma -
-
-
-
- -
-
- Dependências opcionais: - - Xorg, - GTK+2, LessTif, - Ruby e - GPM -
-
-
-

- XML::Parser -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Expat, GCC, - Glibc, Make e Perl -
-
-
-
- -
-
- Exigido em tempo de - execução: Expat, Glibc e - Perl -
-
-
-
- -
-
- Suíte de teste depende de: - Perl -
-
-
-
- -
-
- Precisa ser instalado antes - de: Intltool -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Xz -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc e Make -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: Eudev, File, GRUB, Kmod e - Man-DB -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zlib -

-
- -
-
- Instalação depende de: - Bash, Binutils, Coreutils, GCC, Glibc, - Make e Sed -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: File, Kmod, Perl e - Util-linux -
-
-
-
- -
-
- Dependências opcionais: - Nenhuma -
-
-
-

- Zstd -

-
- -
-
- Instalação depende de: - Binutils, Coreutils, GCC, Glibc, Gzip, - Make e Xz -
-
-
-
- -
-
- Exigido em tempo de - execução: Glibc -
-
-
-
- -
-
- Suíte de teste depende de: - Nenhuma -
-
-
-
- -
-
- Precisa ser instalado antes - de: GCC e Systemd -
-
-
-
- -
-
- Dependências opcionais: - LZ4 -
-
-
-
-
-
-
-
-

- Apêndice D. Licenças do LFS -

-
-
-
-

- Este livro [escrito originalmente em inglês] está licenciado sob - a licença da Creative Commons - Attribution-NonCommercial-ShareAlike 2.0. -

-

- A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob - a Licença de Documentação Livre GNU, versão 1.3 ou qualquer - versão posterior publicada pela Free Software Foundation. -

-

- As instruções de computador tem permissão para serem extraídas a - partir do livro sob a Licença do MIT. -

-
-
-
-
-

- D.1. Licença da Creative Commons -

-
-
-
-

- Creative Commons Legal Code -

-

- Atribuição - Uso não-Comercial - Compartilhamento pela mesma - licença 2.0 -

-
-

- Importante -

-

- A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE - ADVOCACIA E NÃO PRESTA SERVIÇOS JURÍDICOS. A DISTRIBUIÇÃO - DESTA LICENÇA NÃO ESTABELECE QUALQUER RELAÇÃO ADVOCATÍCIA. O - CREATIVE COMMONS DISPONIBILIZA ESTA INFORMAÇÃO "NO ESTADO EM - QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ QUALQUER - GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU - USO. -

-
-

- Licença -

-

- A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO - COM OS TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU - "LICENÇA"). A OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS - LEIS APLICÁVEIS. QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB - ESTA LICENÇA OU PELA LEGISLAÇÃO AUTORAL É PROIBIDO. -

-

- AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ - ACEITA E CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O - LICENCIANTE CONCEDE A VOCÊ OS DIREITOS AQUI CONTIDOS EM - CONTRAPARTIDA À SUA ACEITAÇÃO DESTES TERMOS E CONDIÇÕES. -

-
-
    -
  1. -

    - Definições -

    -
    -
      -
    1. -

      - "Obra Coletiva" significa uma obra, tal como uma - edição periódica, antologia ou enciclopédia, na - qual a Obra em sua totalidade e de forma - inalterada, em conjunto com um número de outras - contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um - trabalho coletivo. Uma obra que constitua uma Obra - Coletiva não será considerada Obra Derivada - (conforme definido abaixo) para os propósitos desta - licença. -

      -
    2. -
    3. -

      - "Obra Derivada" significa uma obra baseada sobre a - Obra ou sobre a Obra e outras obras pré-existentes, - tal como uma tradução, arranjo musical, - dramatização, romantização, versão de filme, - gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual - a Obra possa ser refeita, transformada ou adaptada, - com a exceção de que uma obra que constitua uma - Obra Coletiva não será considerada Obra Derivada - para fins desta licença. Para evitar dúvidas, - quando a Obra for uma composição musical ou - gravação de som, a sincronização da Obra em relação - cronometrada com uma imagem em movimento - (“synching”) será considerada uma Obra - Derivada para os propósitos desta licença. -

      -
    4. -
    5. -

      - "Licenciante" significa a pessoa física ou a - jurídica que oferece a Obra sob os termos desta - licença. -

      -
    6. -
    7. -

      - "Autor Original" significa a pessoa física ou - jurídica que criou a Obra. -

      -
    8. -
    9. -

      - "Obra" significa a obra autoral, passível de - proteção pelo direito autoral, oferecida sob os - termos desta licença. -

      -
    10. -
    11. -

      - "Você" significa a pessoa física ou jurídica - exercendo direitos sob esta Licença que não tenha - previamente violado os termos desta Licença com - relação à Obra, ou que tenha recebido permissão - expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. -

      -
    12. -
    13. -

      - "Elementos da Licença" significa os principais - atributos da licença correspondente, conforme - escolhidos pelo licenciante e indicados no título - desta licença: Atribuição, Compartilhamento pela - Mesma Licença. -

      -
    14. -
    -
    -
  2. -
  3. -

    - Direitos de Uso Legítimo. Nada nesta licença deve ser - interpretado de modo a reduzir, limitar ou restringir - quaisquer direitos relativos ao uso legítimo, ou outras - limitações sobre os direitos exclusivos do titular de - direitos autorais sob a legislação autoral ou quaisquer - outras leis aplicáveis. -

    -
  4. -
  5. -

    - Concessão da Licença. O Licenciante concede a Você uma - licença de abrangência mundial, sem royalties, - não-exclusiva, perpétua (pela duração do direito autoral - aplicável), sujeita aos termos e condições desta Licença, - para exercer os direitos sobre a Obra definidos abaixo: -

    -
    -
      -
    1. -

      - reproduzir a Obra, incorporar a Obra em uma ou mais - Obras Coletivas e reproduzir a Obra quando - incorporada em Obra Coletiva; -

      -
    2. -
    3. -

      - criar e reproduzir Obras Derivadas; -

      -
    4. -
    5. -

      - distribuir cópias ou gravações da Obra, exibir - publicamente, executar publicamente e executar - publicamente por meio de uma transmissão de áudio - digital a Obra, inclusive quando incorporada em - Obras Coletivas; -

      -
    6. -
    7. -

      - distribuir cópias ou gravações de Obras Derivadas, - exibir publicamente, executar publicamente e - executar publicamente por meio de uma transmissão - digital de áudio Obras Derivadas. -

      -
    8. -
    -
    -

    - Os direitos acima podem ser exercidos em todas as mídias - e formatos, independente de serem conhecidos agora ou - concebidos posteriormente. Os direitos acima incluem o - direito de fazer modificações que forem tecnicamente - necessárias para exercer os direitos em outras mídias, - meios e formatos. Todos os direitos não concedidos - expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos - nas Seções 4(e) e 4(f). -

    -
  6. -
  7. -

    - Restrições. A licença concedida na Seção 3 acima está - expressamente sujeita e limitada aos seguintes termos: -

    -
    -
      -
    1. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra apenas sob os termos desta Licença, - e Você deve incluir uma cópia desta licença, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta Licença, com cada - cópia ou gravação da Obra que Você distribuir, - exibir publicamente, executar publicamente, ou - executar publicamente por meios digitais. Você não - poderá oferecer ou impor quaisquer termos sobre a - Obra que alterem ou restrinjam os termos desta - Licença ou o exercício dos direitos aqui concedidos - aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as - informações que se referem a esta Licença e à - exclusão de garantias. Você não pode distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com - qualquer medida tecnológica que controle o acesso - ou o uso da Obra de maneira inconsistente com os - termos deste Acordo de Licença. O disposto acima se - aplica à Obra enquanto incorporada em uma Obra - Coletiva, mas isto não requer que a Obra Coletiva, - à parte da Obra em si, esteja sujeita aos termos - desta Licença. Se Você criar uma Obra Coletiva, em - havendo notificação de qualquer Licenciante, Você - deve, na medida do razoável, remover da Obra - Coletiva qualquer referência a este Licenciante ou - Autor Original, conforme solicitado. Se você criar - uma Obra Derivada, em havendo notificação de - qualquer Licenciante, Você deve, na medida do - razoável, remover da Obra Derivada qualquer - referência a este Licenciante ou ao Autor Original, - conforme solicitado. -

      -
    2. -
    3. -

      - Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais uma Obra Derivada somente sob os termos - desta Licença, ou de uma versão posterior desta - licença com os mesmos Elementos da Licença desta - licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos - Elementos da Licença desta Licença (por exemplo, - Atribuição, Uso Não Comercial, Compartilhamento - pela Mesma Licença Japão). Você deve incluir uma - cópia desta licença ou de outra licença - especificada na sentença anterior, ou o - Identificador Uniformizado de Recursos (Uniform - Resource Identifier) para esta licença ou de outra - licença especificada na sentença anterior, com cada - cópia ou gravação de cada Obra Derivada que Você - distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra Derivada que alterem - ou restrinjam os termos desta Licença ou o - exercício dos direitos aqui concedidos aos - destinatários, e Você deverá manter intactas todas - as informações que se refiram a esta Licença e à - exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra - Derivada com qualquer medida tecnológica que - controle o acesso ou o uso da Obra de maneira - inconsistente com os termos deste Acordo de - Licença. O disposto acima se aplica à Obra Derivada - quando incorporada em uma Obra Coletiva, mas isto - não requer que a Obra Coletiva, à parte da Obra em - si, esteja sujeita aos termos desta Licença. -

      -
    4. -
    5. -

      - Você não poderá exercer nenhum dos direitos acima - concedidos a Você na Seção 3 de qualquer maneira - que seja predominantemente intencionada ou - direcionada à obtenção de vantagem comercial ou - compensação monetária privada. A troca da Obra por - outros materiais protegidos por direito autoral - através de compartilhamento digital de arquivos ou - de outras formas não deverá ser considerada como - intencionada ou direcionada à obtenção de vantagens - comerciais ou compensação monetária privada, desde - que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas - por direito de autor. -

      -
    6. -
    7. -

      - Se Você distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios - digitais a Obra ou qualquer Obra Derivada ou Obra - Coletiva, Você deve manter intactas todas as - informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável - com relação ao meio ou mídia que Você está - utilizando, através da veiculação do nome (ou - pseudônimo, se for o caso) do Autor Original, se - fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de - Recursos (URI) que o Licenciante especificar para - estar associado à Obra, se houver, exceto se o URI - não se referir ao aviso de direitos autorais ou à - informação sobre o regime de licenciamento da Obra; - e no caso de Obra Derivada, crédito identificando o - uso da Obra na Obra Derivada (exemplo: "Tradução - Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal - crédito pode ser implementado de qualquer forma - razoável; entretanto, no caso de Obra Derivada ou - Obra Coletiva, este crédito aparecerá no mínimo - onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto - este outro crédito de autoria comparável. -

      -
    8. -
    9. -

      - De modo a tornar claras estas disposições, quando - uma Obra for uma composição musical: -

      -
      -
        -
      1. -

        - Royalties e execução pública. O Licenciante - reserva o seu direito exclusivo de coletar, - seja individualmente ou através de entidades - coletoras de direitos de execução (por - exemplo, ECAD, ASCAP, BMI, SESAC), o valor - dos seus direitos autorais pela execução - pública da obra ou execução pública digital - (por exemplo, webcasting) da Obra se esta - execução for predominantemente intencionada - ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. -

        -
      2. -
      3. -

        - Royalties e Direitos fonomecânicos. O - Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através - de uma entidade designada como seu agente - (por exemplo, a agência Harry Fox), royalties - relativos a quaisquer gravações que Você - criar da Obra (por exemplo, uma versão - “cover”) e distribuir, conforme - as disposições aplicáveis de direito autoral, - se a distribuição feita por Você de versão - “cover” for predominantemente - intencionada ou direcionada à obtenção de - vantagem comercial ou compensação monetária - privada. -

        -
      4. -
      -
      -
    10. -
    11. -

      - Direitos de Execução Digital pela Internet - (Webcasting) e royalties. De modo a evitar dúvidas, - quando a Obra for uma gravação de som, o - Licenciante reserva o seu direito exclusivo de - coletar, seja individualmente ou através de - entidades coletoras de direitos de execução (por - exemplo, SoundExchange ou ECAD), royalties e - direitos autorais pela execução digital pública - (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a - execução digital pública feita por Você for - predominantemente intencionada ou direcionada à - obtenção de vantagem comercial ou compensação - monetária privada. -

      -
    12. -
    -
    -
  8. -
  9. -

    - Declarações, Garantias e Exoneração -

    -

    - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO - PELAS PARTES POR ESCRITO, O LICENCIANTE OFERECE A OBRA - “NO ESTADO EM QUE SE ENCONTRA” (AS IS) E NÃO - PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES DE QUALQUER - ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÍCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, - INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A - TITULARIDADE DA OBRA, ADEQUAÇÃO PARA QUAISQUER - PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU INEXISTÊNCIA DE - QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA OU - AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS - IMPLÍCITAS, ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. -

    -
  10. -
  11. -

    - Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA - PELA LEI APLICÁVEL, EM NENHUMA CIRCUNSTÂNCIA O - LICENCIANTE SERÁ RESPONSÁVEL PARA COM VOCÊ POR QUAISQUER - DANOS, ESPECIAIS, INCIDENTAIS, CONSEQUENCIAIS, PUNITIVOS - OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU DO USO DA OBRA, - MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. -

    -
  12. -
  13. -

    - Terminação -

    -
    -
      -
    1. -

      - Esta Licença e os direitos aqui concedidos - terminarão automaticamente no caso de qualquer - violação dos termos desta Licença por Você. Pessoas - físicas ou jurídicas que tenham recebido Obras - Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças - terminadas desde que tais pessoas físicas ou - jurídicas permaneçam em total cumprimento com essas - licenças. As Seções 1, 2, 5, 6, 7 e 8 subsistirão a - qualquer terminação desta Licença. -

      -
    2. -
    3. -

      - Sujeito aos termos e condições dispostos acima, a - licença aqui concedida é perpétua (pela duração do - direito autoral aplicável à Obra). Não obstante o - disposto acima, o Licenciante reserva-se o direito - de difundir a Obra sob termos diferentes de licença - ou de cessar a distribuição da Obra a qualquer - momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta - Licença (ou de qualquer outra licença que tenha - sido concedida sob os termos desta Licença, ou que - deva ser concedida sob os termos desta Licença) e - esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. -

      -
    4. -
    -
    -
  14. -
  15. -

    - Outras Disposições -

    -
    -
      -
    1. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais a Obra ou uma Obra - Coletiva, o Licenciante oferece ao destinatário uma - licença da Obra nos mesmos termos e condições que a - licença concedida a Você sob esta Licença. -

      -
    2. -
    3. -

      - Cada vez que Você distribuir ou executar - publicamente por meios digitais uma Obra Derivada, - o Licenciante oferece ao destinatário uma licença à - Obra original nos mesmos termos e condições que - foram concedidos a Você sob esta Licença. -

      -
    4. -
    5. -

      - Se qualquer disposição desta Licença for tida como - inválida ou não-executável sob a lei aplicável, - isto não afetará a validade ou a possibilidade de - execução do restante dos termos desta Licença e, - sem a necessidade de qualquer ação adicional das - partes deste acordo, tal disposição será reformada - na mínima extensão necessária para tal disposição - tornar-se válida e executável. -

      -
    6. -
    7. -

      - Nenhum termo ou disposição desta Licença será - considerado renunciado e nenhuma violação será - considerada consentida, a não ser que tal renúncia - ou consentimento seja feito por escrito e assinado - pela parte que será afetada por tal renúncia ou - consentimento. -

      -
    8. -
    9. -

      - Esta Licença representa o acordo integral entre as - partes com respeito à Obra aqui licenciada. Não há - entendimentos, acordos ou declarações relativas à - Obra que não estejam especificadas aqui. O - Licenciante não será obrigado por nenhuma - disposição adicional que possa aparecer em - quaisquer comunicações provenientes de Você. Esta - Licença não pode ser modificada sem o mútuo acordo, - por escrito, entre o Licenciante e Você. -

      -
    10. -
    -
    -
  16. -
-
-
-

- Importante -

-

- O Creative Commons não é uma parte desta Licença e não presta - qualquer garantia relacionada à Obra. O Creative Commons não - será responsável perante Você ou qualquer outra parte por - quaisquer danos, incluindo, sem limitação, danos gerais, - especiais, incidentais ou consequentes, originados com - relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se - identificado como o Licenciante, ele deverá ter todos os - direitos e obrigações do Licenciante. -

-

- Exceto para o propósito delimitado de indicar ao público que - a Obra é licenciada sob a CCPL (Licença Pública Creative - Commons), nenhuma parte deverá utilizar a marca "Creative - Commons" ou qualquer outra marca ou logo relacionado ao - Creative Commons sem consentimento prévio e por escrito do - Creative Commons. Qualquer uso permitido deverá ser de acordo - com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de - outro modo disponibilizadas periodicamente mediante - solicitação. -

-

- O Creative Commons pode ser contactado pelo endereço: - http://creativecommons.org/. -

-
-
-
-
-
-
-

- D.2. A Licença do MIT -

-
-
-
-

- Direitos autorais © 1999-2022 Gerard Beekmans -

-

- Permissão é aqui concedida, gratuitamente, para qualquer pessoa - que obtenha uma cópia deste software e arquivos de documentação - associados (o "Software"), para lidar com o Software sem - restrição, incluindo, sem limitação, os direitos para usar, - copiar, modificar, mesclar, publicar, distribuir, sublicenciar, - e (ou) vender cópias do Software, e para permitir para as - pessoas para quem o Software é fornecido para fazer o mesmo, - sujeito às seguintes condições: -

-

- O aviso de direitos autorais acima e este aviso de permissão - deveria ser incluído em todas as cópias ou porções substanciais - do Software. -

-

- O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE - ENCONTRA”, SEM GARANTIAS DE QUALQUER ESPÉCIE, EXPLÍCITAS - OU IMPLÍCITAS, INCLUINDO, PORÉM NÃO LIMITADA A, AS GARANTIAS DE - COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR E - NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES - DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER - ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE - CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO - SOFTWARE. -

-
-
-
-
-
-

- D.3. A Licença de Documentação Livre GNU -

-
-
-
-

- Direitos autorais © 1999-2022 Jamenson Espindula -

-

- Versão 1.3, 03 de novembro de 2008 -

-

- Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ -

-

- A qualquer pessoa é permitido copiar e distribuir cópias - literais deste documento de licença, porém modificá-lo não é - permitido. -

-
-
    -
  1. -

    - PREÂMBULO -

    -

    - O propósito desta licença é tornar um manual, livro de - texto, ou outro documento funcional e útil livre no - sentido da liberdade: para assegurar a qualquer pessoa a - liberdade efetiva para copiar e redistribuí-lo, com ou - sem modificações, ambos comercialmente ou não - comercialmente. Secundariamente, esta Licença preserva - para o autor e editor uma maneira de obter crédito pelos - seus trabalhos, ao mesmo tempo não sendo considerado - responsável por modificações feitas por outros. Esta - Licença é uma espécie de “copyleft” - (“esquerdos autorais”), o que significa que - trabalhos derivados do documento devem necessariamente - eles mesmos serem livres no mesmo sentido. Ela - complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software - livre. Nós projetamos esta Licença para utilizá-la para - manuais para software livre, porque software livre - precisa de documentação livre: um programa livre deveria - vir com manuais provendo as mesmas liberdades que o - software provê. Porém esta Licença não é limitada a - manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de - assunto ou se o trabalho textual for publicado como um - livro impresso. Nós recomendamos esta Licença - principalmente para trabalhos cujo propósito seja - instrução ou referência. -

    -
  2. -
  3. -

    - APLICABILIDADE E DEFINIÇÕES -

    -

    - Esta Licença se aplica a qualquer manual ou outro - trabalho, em qualquer meio, que contenha um aviso - colocado pelo detentor dos direitos autorais dizendo que - ele pode ser distribuído sob os termos desta Licença. Tal - aviso concede uma licença mundial, livre de patente, - ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documento”, - abaixo, se refere a quaisquer desses manuais ou - trabalhos. Qualquer membro do publico é um titular da - licença, e é mencionado como “você”. Você - aceita a licença se você copiar, modificar ou distribuir - o trabalho em uma forma que exija permissão sob lei de - direitos autorais. Uma “Versão Modificada” do - Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, - ou com modificações e/ou traduzido em outra língua. Uma - “Seção Secundária” é um apêndice nomeado ou - uma seção pré-textual do Documento que lida - exclusivamente com o relacionamento dos editores ou - autores do Documento para com o assunto global do - Documento (ou com questões relacionadas) e não contém - nada que possa se conformar diretamente com aquele - assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode - explanar nada acerca de cálculos matemáticos). O - relacionamento poderia ser uma questão de conexão - histórica com o assunto ou com questões relacionadas, ou - de posicionamento legal, comercial, filosófico, ético ou - político respeitante a eles. As “Seções - Invariantes” são certas Seções Secundárias cujos - títulos são projetados, como sendo aqueles de Seções - Invariantes, no aviso que diz que o Documento é publicado - sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está - autorizada a ser designada como Invariante. O Documento - pode conter zero Seções Invariantes. Se o Documento não - identifica quaisquer Seções Invariantes, então não existe - nenhuma. Os “Textos de Capa” são certas - passagens curtas de texto que são listadas, como Textos - de Primeira Capa ou Textos de Quarta-Capa, no aviso que - diz que o Documento é publicado sob esta Licença. Um - Texto de Primeira Capa pode ter no máximo cinco (05) - palavras, e um Texto de Quarta Capa pode ter no máximo - vinte e cinco (25) palavras. Uma cópia - “Transparente” do Documento significa uma - cópia legível por máquina, representada em um formato - cuja especificação está disponível para o público em - geral, que é adequada para revisar o documento - diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura - genéricos ou (para desenhos) algum editor de desenho - disponível amplamente, e que seja adequado para entrada a - formatadores de texto ou para tradução automática a uma - variedade de formatos próprios para entrada a - formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de - marcação, ou ausência de linguagem de marcação, tenha - sido organizada para frustrar ou desencorajar - modificações subsequentes por leitores, não é - Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. - Uma cópia que não é “Transparente” é chamada - “Opaca”. Exemplos de formatos adequados para - cópias Transparentes incluem ASCII puro sem marcações; - formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; - HTML simples conformante com o padrão; PostScript ou PDF - projetado para modificação humana. Exemplos de formatos - transparantes de imagens incluem PNG, XCF e JPG. Formatos - opacos incluem formatos proprietários que podem ser lidos - e editados somente por processadores proprietários de - palavra; SGML ou XML para os quais o DTD e/ou as - ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou - PDF produzidos por alguns processadores de palavra apenas - para propósitos de saída. A “Página de - Título” significa, para um livro impresso, a - própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o - material que esta Licença exige para aparecer na página - de título. Para trabalhos em formatos que não tenham - qualquer página de título como tal, “Página de - Título” significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o - início do corpo do texto. O “editor” - significa qualquer pessoa ou entidade que distribui - cópias do Documento ao público. Uma seção - “Intitulada XYZ” significa uma subunidade - nomeada do Documento cujo título ou é precisamente XYZ ou - contém XYZ entre parênteses seguinte ao texto que traduz - XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como - “Agradecimentos”; “Dedicatórias”; - “Patrocínios”; ou “Histórico”). - “Preservar o Título” de tal seção quando você - modificar o Documento significa que ele permanece uma - seção “Intitulada XYZ” de acordo com essa - definição. O Documento pode incluir Declarações de - Garantia próximas ao aviso que declara que esta Licença - se aplica ao Documento. Essas Declarações de Garantia são - consideradas como inclusas por referência nesta Licença, - porém somente com relação à negação de garantias: - qualquer outra implicação que essas Declarações de - Garantia possam ter é inválida e não tem efeito sobre o - significado desta Licença. -

    -
  4. -
  5. -

    - CÓPIA LITERAL -

    -

    - Você pode copiar e distribuir o Documento em qualquer - meio, ambos comercialmente e não comercialmente, contanto - que esta Licença, os avisos de direitos autorais, e o - aviso de licença dizendo que esta Licença se aplica ao - Documento estejam reproduzidas em todas as cópias, e que - você não adiciona quaisquer outras condições, quaisquer - que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou - distribuir. Entretanto, você pode aceitar remuneração em - troca das cópias. Se você distribui um número de cópias - grande o suficiente, você deve necessariamente também - seguir as condições na seção três (3). Você também pode - ceder cópias, sob as mesmas condições declaradas acima, e - você pode publicamente exibir cópias. -

    -
  6. -
  7. -

    - CÓPIAS EM QUANTIDADE -

    -

    - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número - maior que cem (100), e o aviso de licença do Documento - exigir Textos de Capa, você deve necessariamente encartar - as cópias em capas que transportem, claramente e - legivelmente, todos estes Textos de Capa: Textos de - Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente - também claramente e legivelmente identificar você como o - editor dessas cópias. A capa frontal deve necessariamente - apresentar o título completo com todas as palavras do - título igualmente proeminentes e visíveis. Você pode - adicionar outros materiais nas capas adicionalmente. As - cópias com modificações limitadas às capas, tanto quanto - preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em - relação a outros aspectos. Se os textos exigidos para - ambas as capas forem muito volumosos para caber - legivelmente, você deveria colocar os primeiros listados - (tantos quantos caibam razoavelmente) na capa atual, e - continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em - número maior que cem (100), você deve necessariamente ou - incluir uma cópia Transparente, legível por máquina, - junto com cada cópia Opaca, ou declarar, na ou com cada - cópia Opaca, uma localização de rede de computador, a - partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de - padrão público, uma cópia Transparente completa do - Documento, livre do material adicionado. Se você se - utilizar da última opção, você deve necessariamente - adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, - para se assegurar que essa cópia Transparente permanecerá - então acessível na localização declarada até pelo menos - um ano após a última vez que você distribuiu uma cópia - Opaca (diretamente ou por intermédio dos seus agentes ou - varejistas) daquela edição ao público. É pedido, mas não - exigido, que você contate os autores do Documento bem - antes de redistribuir qualquer número grande de cópias, - para dá-los a oportunidade de lhe fornecer uma versão - atualizada do Documento. -

    -
  8. -
  9. -

    - MODIFICAÇÕES -

    -

    - Você pode copiar e distribuir uma Versão Modificada do - Documento sob as condições das seções dois (2) e três (3) - acima, contanto que você publique a Versão Modificada - precisamente sob esta Licença, com a Versão Modificada - preenchendo a função do Documento, portanto licenciando a - distribuição e modificação da Versão Modificada a quem - quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: -

    -
    -
      -
    1. -

      - Utilize na Página de Título (e nas capas, se - existentes) um título distinto daquele do - Documento, e daqueles das versões prévias (as quais - deveriam, se existiu alguma, serem listadas na - seção Histórico do Documento). Você pode utilizar o - mesmo título que uma versão prévia, se o editor - original daquela versão conceder permissão. -

      -
    2. -
    3. -

      - Liste na Página de Título, como autores, uma ou - mais pessoas ou entidades responsáveis pela autoria - das modificações na Versão Modificada, junto com ao - menos cinco dos autores principais do Documento - (todos os autores principais, se tiver menos que - cinco), a menos que eles liberem você dessa - exigência. -

      -
    4. -
    5. -

      - Declare na Página de Título o nome do editor da - Versão Modificada, como o editor. -

      -
    6. -
    7. -

      - Preserve todos os avisos de direitos autorais do - Documento. -

      -
    8. -
    9. -

      - Adicione um aviso apropriado de direitos autorais - para suas modificações, adjacente aos outros avisos - de direitos autorais. -

      -
    10. -
    11. -

      - Inclua, imediatamente após os avisos de direitos - autorais, um aviso de licença concedendo ao público - permissão para utilizar a Versão Modificada sob os - termos desta Licença, na forma mostrada no Adendo - abaixo. -

      -
    12. -
    13. -

      - Preserve, naquele aviso de licença, as listas - completas de Seções Invariantes e Textos de Capa - exigidos dados no aviso de licença do Documento. -

      -
    14. -
    15. -

      - Inclua uma cópia inalterada desta Licença. -

      -
    16. -
    17. -

      - Preserve a seção intitulada - “Histórico”, Preserve seu Título, e - adicione a ele um item declarando ao menos o - título, ano, novos autores, e editor da Versão - Modificada, conforme dado na Página de Título. Se - não existir uma seção intitulada - “Histórico” no Documento, crie uma - declarando o título, ano, autores, e editor do - Documento, conforme dado em sua Página de Título, - então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. -

      -
    18. -
    19. -

      - Preserve a localização de rede, se existente, dada - no Documento para acesso público a uma cópia - Transparente do Documento, e da mesma forma as - localizações de rede dadas no Documento para - versões prévias nas quais foi baseado. Essas podem - ser colocadas na seção “Histórico”. - Você pode omitir uma localização de rede para um - trabalho que foi publicado nos últimos quatro anos - anteriores à publicação do próprio do Documento, ou - se o editor original da versão à qual a localização - de rede se refere conceder permissão. -

      -
    20. -
    21. -

      - Para cada seção Intitulada - “Agradecimentos” ou - “Dedicatórias”, Preserve o Título da - seção, e preserve na seção toda a substância e - tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. -

      -
    22. -
    23. -

      - Preserve todas as Seções Invariantes do Documento, - inalteradas em seus textos e em seus títulos. Os - números de Seção ou o equivalente não são - considerados parte dos títulos de seção. -

      -
    24. -
    25. -

      - Delete quaisquer seções Intituladas - “Patrocínios”. Tal seção não pode ser - incluída na Versão Modificada. -

      -
    26. -
    27. -

      - Não reintitule qualquer seção existente para - Intitulada “Patrocínios” ou para - conflitar no título com qualquer Seção Invariante. -

      -
    28. -
    29. -

      - Preserve quaisquer Declarações de Garantia. -

      -
    30. -
    -
    -

    - Se a Versão Modificada incluir novas seções pré textuais - ou apêndices que se qualifiquem como Seções Secundárias e - não contenham material copiado a partir do Documento, - você pode, a sua escolha, designar algumas ou todas essas - seções como Invariantes. Para fazer isso, adicione seus - títulos à lista das Seções Invariantes no aviso de - licença da Versão Modificada. Esses títulos devem - necessariamente serem distintos de quaisquer outros - títulos de seções. Você pode adicionar uma seção - Intitulada “Patrocínios”, contanto que ela - não contenha nada além de patrocínios da sua Versão - Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi - aprovado por uma organização como a definição - autorizativa de um padrão. Você pode adicionar uma - passagem de até cinco palavras, como um Texto de Primeira - Capa, e uma passagem de até vinte e cinco palavras, como - um Texto de Quarta Capa, ao final da lista dos Textos de - Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer - uma entidade. Se o Documento já inclui um texto de capa - para a mesma capa, previamente adicionado por você ou por - acordo feito pela mesma entidade pela qual você está - atuando, você não pode adicionar outro; porém você pode - substituir o antigo, na permissão explícita do editor - prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão - para utilizar seus nomes para publicidade para ou para - afirmar ou implicar patrocínio de qualquer Versão - Modificada. -

    -
  10. -
  11. -

    - COMBINANDO DOCUMENTOS -

    -

    - Você pode combinar o Documento com outros documentos - publicados sob esta Licença, sob os termos definidos na - seção quatro (4) acima para versões modificadas, contanto - que você inclua na combinação todas as Seções Invariantes - de todos os documentos originais, não modificados, e - listá-los todos como Seções Invariantes do seu trabalho - combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado - precisa conter somente uma cópia desta Licença, e - múltiplas Seções Invariantes idênticas podem ser - substituídas por uma cópia única. Se existirem múltiplas - Seções Invariantes com o mesmo nome, mas conteúdos - diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do - autor ou editor original daquela seção se conhecido, ou, - do contrário, um número único. Faça o mesmo ajuste aos - títulos da seção na lista de Seções Invariantes no aviso - de licença do trabalho combinado. Na combinação, você - deve necessariamente combinar quaisquer seções - Intituladas “Histórico” nos vários documentos - originais, formando uma seção Intitulada - “Histórico”; de mesma maneira, combine - quaisquer seções Intituladas - “Agradecimentos”, e quaisquer seções - Intituladas “Dedicatórias”. Você deve - necessariamente deletar todas as seções Intituladas - “Patrocínios”. -

    -
  12. -
  13. -

    - COLEÇÕES DE DOCUMENTOS -

    -

    - Você pode produzir uma coleção consistente do Documento e - outros documentos publicados sob esta Licença, e - substitua as cópias individuais desta Licença nos vários - documentos por uma cópia única que esteja incluída na - coleção, contanto que você siga as regras desta Licença - para cópias literais de cada um dos documentos em todos - os outros aspectos. Você pode extrair um documento único - de tal coleção, e distribuí-lo individualmente sob esta - Licença, contanto que você insira uma cópia desta Licença - no documento extraído, e siga esta Licença em todos os - outros aspectos relativos à cópias literais daquele - documento. -

    -
  14. -
  15. -

    - AGREGAÇÃO COM TRABALHOS INDEPENDENTES -

    -

    - Uma compilação do Documento ou seus derivados com outros - documentos separados e independentes ou trabalhos, dentro - ou junto a volume de armazenamento ou meio de - distribuição, é chamado em “agregado” se os - direitos autorais resultantes da compilação não forem - utilizados para limitar os direitos legais dos usuários - da compilação além do que os trabalhos individuais - permitem. Quando o Documento for incluído em um agregado, - esta Licença não se aplica aos outros trabalhos no - agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa - da seção três (3) for aplicável a essas cópias do - Documento, então se o Documento for menor que a metade do - agregado inteiro, os Textos de Capa do Documento podem - ser colocados em capas que encartem o Documento dentro do - agregado, ou o equivalente eletrônico de capas se o - Documento estiver em formato eletrônico. Do contrário, - eles devem necessariamente aparecer nas capas impressas - que encartem o agregado inteiro. -

    -
  16. -
  17. -

    - TRADUÇÃO -

    -

    - Tradução é considerada um tipo de modificação, de forma - que você pode distribuir traduções do Documento sob os - termos da seção quatro (4). A substituição de Seções - Invariantes por traduções exige permissão especial de - seus detentores dos direitos autorais, porém você pode - incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas - Seções Invariantes. Você pode incluir uma tradução desta - Licença, e todos os avisos de licença no Documento, e - quaisquer Declarações de Garantia, contanto que você - inclua também a versão original em Inglês desta Licença e - as versões originais daqueles avisos e declarações. No - caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a - versão original prevalecerá. Se uma seção no Documento - for Intitulada “Agradecimentos”, - “Dedicatórias”, ou “Histórico”, a - exigência (seção 4) de Preservar seu Título (seção 1) - tipicamente exigirá a modificação do título atual. -

    -
  18. -
  19. -

    - FINALIZAÇÃO -

    -

    - Você não pode copiar, modificar, sublicenciar, ou - distribuir o Documento, exceto conforme expressamente - provido sob esta Licença. Qualquer tentativa clandestina - de copiar, modificar, sublicenciar, ou distribuir o - Documento é inválida, e automaticamente finalizará seus - direitos sob esta Licença. Entretanto, se você cessar - todas as violações a esta Licença, então a sua licença - oriunda de um detentor de direitos autorais em particular - está restabelecida (a) provisoriamente, a menos e até que - o detentor dos direitos autorais explicita e finalmente - cancele sua licença; e (b) permanentemente, se o detentor - dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) - dias após a cessação. Além disso, a sua licença oriunda - de um detentor de direitos autorais em particular está - restabelecida permanentemente se o detentor dos direitos - autorais notificar você sobre a violação por algum meio - razoável, essa for a primeira vez que você recebeu um - aviso de violação desta Licença (para qualquer trabalho) - oriunda daquele detentor de direitos autorais, e você - sanar a violação antes de decorridos trinta (30) dias - após o seu recebimento do aviso. A finalização dos seus - direitos sob esta seção não finaliza as licenças de - varejistas que tenham recebido cópias ou direitos de você - sob esta Licença. Se os seus direitos tiverem sido - finalizados e não permanentemente restabelecidos, o - recebimento de uma cópia de algum ou de tudo do mesmo - material não concede a você direitos de utilizá-lo. -

    -
  20. -
  21. -

    - REVISÕES FUTURAS DESTA LICENÇA -

    -

    - A Free Software Foundation pode publicar novas, revisadas - versões da Licença de Documentação Livre GNU de tempos em - tempos. Tais novas versões serão similares na essência à - presente versão, porém podem diferir em detalhes para - abarcar novos problemas ou assuntos. Veja-se - http://www.gnu.org/copyleft/. Para cada versão da Licença - é dado um número distintivo de versão. Se o Documento - especifica que uma versão numerada em particular desta - Licença “ou qualquer versão posterior” se - aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão - posterior que tenha sido publicada (não como um rascunho) - pela Free Software Foundation. Se o Documento não - especifica um número de versão desta Licença, você pode - escolher qualquer versão já publicada (não como um - rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões - futuras desta Licença podem ser utilizadas, essa - declaração pública do procurador de aceitação de uma - versão permanentemente autoriza você a escolher aquela - versão para o Documento. -

    -
  22. -
  23. -

    - RELICENCIAMENTO -

    -

    - “Sítio de Colaboração Massiva Multi autor” - (ou “Sítio MMC”) significa qualquer servidor - da Rede Mundial de Computadores que publica trabalhos - sujeitos a direitos autorais e também provê facilidades - proeminentes para qualquer pessoa editar esses trabalhos. - Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva - Multi autor” (ou “MMC”) contida no - sítio significa qualquer conjunto de trabalhos sujeitos a - direitos autorais assim publicados no sítio MMC. - “CC-BY-SA” significa a licença Creative - Commons Attribution-Share Alike 3.0 publicada pela - Creative Commons Corporation, uma corporação sem fins - lucrativos com seu domicílio empresarial situado em São - Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais - dessa licença publicadas pela mesma organização. - “Incorporar” significa publicar ou republicar - um Documento, no todo ou em parte, como parte de outro - Documento. Um MMC é “elegível para - relicenciamento” se ele for licenciado sob esta - Licença, e se todos os trabalhos que foram primeiro - publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em - parte, no MMC, (1) não tinham textos de capa ou seções - invariantes; e (2) estavam assim incorporados antes de 01 - de novembro de 2008. O operador de um Sítio MMC pode - republicar um MMC contido no sítio sob CC-BY-SA, no mesmo - sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. -

    -
  24. -
-
-

- ADENDO: Como utilizar esta Licença para seus documentos -

-

- Para utilizar esta Licença em um documento que você escreveu, - inclua uma cópia da Licença no documento e coloque os seguintes - avisos de direitos autorais e licença pouco depois da página de - título: -

-

-
-  Direitos autorais (C) ano  seu nome.
-  Permissão é concedida para copiar, distribuir e/ou modificar este
-  documento sob os termos da Licença de Documentação Livre GNU, Versão
-  1.3 ou qualquer versão posterior publicada pela Free Software
-  Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem
-  Textos de Quarta Capa.   Uma cópia da licença está inclusa na seção
-  intitulada ``Licença de Documentação Livre GNU''.
-
-  
-

- Se você tiver Seções Invariantes, Textos de Primeira Capa e - Textos de Quarta Capa, substitua a linha ``sem ... Capa'' por - isto: -

-

-
-  com as Seções Invariantes sendo liste seus títulos, com os
-  Textos de Primeira Capa sendo lista, e com os Textos de Quarta
-  Capa sendo lista.
-
-  
-

- Se você tiver Seções Invariantes sem Textos de Capa, ou alguma - outra combinação dos três, mescle essas duas alternativas para - adequar a situação. -

-

- Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em - paralelo, sob sua escolha de licença de software livre, tal - como a Licença Pública Geral GNU, para permitir seu uso em - software livre. -

-
-
-
-
-
-
-
-

- Índice Remissivo -

-
-
-
-
-

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -
-
-
- - diff --git a/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt b/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt deleted file mode 100644 index e16f0ff180..0000000000 --- a/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.txt +++ /dev/null @@ -1,21482 +0,0 @@ -Linux From Scratch - -Versão 11.1-systemd - -Publicado 1º de março de 2022 - -Criado por Gerard Beekmans - -Editor-chefe: Bruce Dubbs - -Editor: Douglas R. Reno - -Editor: DJ Lucas - - Copyright © 1999-2022 Gerard Beekmans - - Direitos autorais © 1999-2022, Gerard Beekmans - - Todos os direitos reservados. - - Este livro é licenciado sob uma [1]Creative Commons License. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a [2]MIT License. - - Linux® é uma marca comercial registrada do Linus Torvalds. - __________________________________________________________________ - -Ãndice - - * Prefácio - + [3]Introdução - + [4]Audiência - + [5]Arquiteturas Alvo do LFS - + [6]Pré-requisitos - + [7]LFS e Padrões - + [8]Justificativa para os pacotes no Livro - + [9]Tipografia - + [10]Estrutura - + [11]Errata e Avisos de Segurança - * I. Introdução - + 1. Introdução - o [12]Como Construir um Sistema LFS - o [13]O que há de novo desde o último lançamento - o [14]Registro de Mudanças - o [15]Recursos - o [16]Ajuda - * II. Preparando para a Construção - + 2. Preparando o Sistema Anfitrião - o [17]Introdução - o [18]Exigências do Sistema Anfitrião - o [19]Construindo LFS em Estágios - o [20]Criando uma Nova Partição - o [21]Criando um Sistema de Arquivos na Partição - o [22]Configurando a Variável $LFS - o [23]Montando a Nova Partição - + 3. Pacotes e Patches - o [24]Introdução - o [25]Todos os Pacotes - o [26]Patches Necessários - + 4. Preparações Finais - o [27]Introdução - o [28]Criando um layout limitado de diretório em sistema de - arquivos de LFS - o [29]Adicionando a(o) Usuária(o) LFS - o [30]Configurando o Ambiente - o [31]Sobre UPCs - o [32]Sobre as Suítes de Teste - * III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e - Ferramentas Temporárias - + Material Preliminar Importante - o [33]Introdução - o [34]Notas Técnicas do Conjunto de Ferramentas - o [35]Instruções Gerais de Compilação - + 5. Compilando um Conjunto de Ferramentas Cruzado - o [36]Introdução - o [37]Binutils-2.38 - Passagem 1 - o [38]GCC-11.2.0 - Passagem 1 - o [39]Cabeçalhos da API do Linux-5.16.9 - o [40]Glibc-2.35 - o [41]Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - + 6. Compilando Cruzadamente Ferramentas Temporárias - o [42]Introdução - o [43]M4-1.4.19 - o [44]Ncurses-6.3 - o [45]Bash-5.1.16 - o [46]Coreutils-9.0 - o [47]Diffutils-3.8 - o [48]File-5.41 - o [49]Findutils-4.9.0 - o [50]Gawk-5.1.1 - o [51]Grep-3.7 - o [52]Gzip-1.11 - o [53]Make-4.3 - o [54]Patch-2.7.6 - o [55]Sed-4.8 - o [56]Tar-1.34 - o [57]Xz-5.2.5 - o [58]Binutils-2.38 - Passagem 2 - o [59]GCC-11.2.0 - Passagem 2 - + 7. Entrando em Chroot e Construindo Ferramentas Temporárias - Adicionais - o [60]Introdução - o [61]Mudando Propriedade - o [62]Preparando Sistemas de Arquivos Virtuais de Kernel - o [63]Entrando no Ambiente Chroot - o [64]Criando Diretórios - o [65]Criando Arquivos Essenciais e Links Simbólicos - o [66]Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - o [67]Gettext-0.21 - o [68]Bison-3.8.2 - o [69]Perl-5.34.0 - o [70]Python-3.10.2 - o [71]Texinfo-6.8 - o [72]Util-linux-2.37.4 - o [73]Limpando e Salvando o Sistema Temporário - * IV. Construindo o Sistema LFS - + 8. Instalando Aplicativos Básicos de Sistema - o [74]Introdução - o [75]Gerenciamento de Pacote - o [76]Man-pages-5.13 - o [77]Iana-Etc-20220207 - o [78]Glibc-2.35 - o [79]Zlib-1.2.11 - o [80]Bzip2-1.0.8 - o [81]Xz-5.2.5 - o [82]Zstd-1.5.2 - o [83]File-5.41 - o [84]Readline-8.1.2 - o [85]M4-1.4.19 - o [86]Bc-5.2.2 - o [87]Flex-2.6.4 - o [88]Tcl-8.6.12 - o [89]Expect-5.45.4 - o [90]DejaGNU-1.6.3 - o [91]Binutils-2.38 - o [92]GMP-6.2.1 - o [93]MPFR-4.1.0 - o [94]MPC-1.2.1 - o [95]Attr-2.5.1 - o [96]Acl-2.3.1 - o [97]Libcap-2.63 - o [98]Shadow-4.11.1 - o [99]GCC-11.2.0 - o [100]Pkg-config-0.29.2 - o [101]Ncurses-6.3 - o [102]Sed-4.8 - o [103]Psmisc-23.4 - o [104]Gettext-0.21 - o [105]Bison-3.8.2 - o [106]Grep-3.7 - o [107]Bash-5.1.16 - o [108]Libtool-2.4.6 - o [109]GDBM-1.23 - o [110]Gperf-3.1 - o [111]Expat-2.4.6 - o [112]Inetutils-2.2 - o [113]Less-590 - o [114]Perl-5.34.0 - o [115]XML::Parser-2.46 - o [116]Intltool-0.51.0 - o [117]Autoconf-2.71 - o [118]Automake-1.16.5 - o [119]OpenSSL-3.0.1 - o [120]Kmod-29 - o [121]Libelf oriundo de Elfutils-0.186 - o [122]Libffi-3.4.2 - o [123]Python-3.10.2 - o [124]Ninja-1.10.2 - o [125]Meson-0.61.1 - o [126]Coreutils-9.0 - o [127]Check-0.15.2 - o [128]Diffutils-3.8 - o [129]Gawk-5.1.1 - o [130]Findutils-4.9.0 - o [131]Groff-1.22.4 - o [132]GRUB-2.06 - o [133]Gzip-1.11 - o [134]IPRoute2-5.16.0 - o [135]Kbd-2.4.0 - o [136]Libpipeline-1.5.5 - o [137]Make-4.3 - o [138]Patch-2.7.6 - o [139]Tar-1.34 - o [140]Texinfo-6.8 - o [141]Vim-8.2.4383 - o [142]MarkupSafe-2.0.1 - o [143]Jinja2-3.0.3 - o [144]Systemd-250 - o [145]D-Bus-1.12.20 - o [146]Man-DB-2.10.1 - o [147]Procps-ng-3.3.17 - o [148]Util-linux-2.37.4 - o [149]E2fsprogs-1.46.5 - o [150]Acerca dos Símbolos de Depuração - o [151]Despojando - o [152]Limpando - + 9. Configuração do Sistema - o [153]Introdução - o [154]Configuração de Rede Geral - o [155]Visão Geral do Manuseio de Dispositivos e Módulos - o [156]Gerenciando Dispositivos - o [157]Configurando o relógio do sistema - o [158]Configurando o Console do Linux - o [159]Configurando o Locale do Sistema - o [160]Criando o Arquivo /etc/inputrc - o [161]Criando o Arquivo /etc/shells - o [162]Uso e Configuração do Systemd - + 10. Tornando o Sistema LFS Inicializável - o [163]Introdução - o [164]Criando o Arquivo /etc/fstab - o [165]Linux-5.16.9 - o [166]Usando o GRUB para Configurar o Processo de - Inicialização - + 11. O Fim - o [167]O Fim - o [168]Seja Contado - o [169]Reinicializando o Sistema - o [170]E agora? - * V. Anexos - + [171]A. Siglas e Termos - + [172]B. Reconhecimentos - + [173]C. Dependências - + [174]D. Licenças do LFS - o [175]Licença da Creative Commons - o [176]A Licença do MIT - o [177]A Licença de Documentação Livre GNU - * [178]Ãndice Remissivo - -Prefácio - -Introdução - - Minha jornada para aprender e entender melhor Linux começou em meados - de 1998. Eu havia acabado de instalar minha primeira distribuição Linux - e rapidamente fiquei intrigado com todo o conceito e filosofia por trás - do Linux. - - Há sempre várias maneiras de se completar uma tarefa. O mesmo pode ser - dito sobre distribuições Linux. Muitas surgiram ao longo dos anos. - Algumas ainda existem, outras se transformaram em outra distribuição, e - ainda há outras que ficaram relegadas às nossas memórias. Todas elas - executam as tarefas de maneira diferente para se adequar às - necessidades de seus respectivos públicos-alvo. Devido ao fato de haver - tantas maneiras de se executar uma tarefa, eu comecei a perceber que eu - não tinha que me limitar à implementação de outra pessoa. Antes de - descobrir o Linux, nós simplesmente lidávamos com problemas em outros - Sistemas Operacionais como se não tivéssemos escolha. A coisa era o que - era, não importando se você gostasse ou não. Com Linux, o conceito de - escolha começou a emergir. Se você não gostou de alguma coisa, você - seria livre, até encorajado, a mudá-la. - - Eu tentei várias distribuições, mas não consegui me decidir por - nenhuma. Elas eram ótimas distribuições em seu próprio direito. Não era - mais uma questão de certo ou errado. O problema havia se transformado - em uma questão de gosto pessoal. Com todas aquelas opções disponíveis, - tornou-se aparente que não haveria um sistema que seria perfeito para - mim. Então eu me propus a criar meu próprio sistema Linux que estaria - totalmente em conformidade com minhas preferências pessoais. - - Para realmente fazer meu próprio sistema, eu resolvi compilar tudo a - partir do código fonte em vez de usar pacotes pré-compilados. Esse - sistema Linux “perfeito†teria a força de vários sistemas sem suas - fraquezas visíveis. A princípio, a ideia era bastante amedrontadora. - Mas eu me mantive comprometido à ideia de que esse sistema poderia ser - construído. - - Após lidar com questões como dependências recíprocas e erros durante a - compilação, eu finalmente construí um sistema Linux customizado. O - sistema era totalmente operacional e perfeitamente utilizável como - qualquer outro sistema Linux disponível na época. Mas era minha própria - criação. Montar um sistema desses foi muito gratificante. A única coisa - que poderia ser melhor seria se eu mesmo tivesse escrito cada programa. - Essa foi a melhor coisa que se seguiu. - - Conforme eu compartilhei meus objetivos e minhas experiências com - outros membros da comunidade Linux, ficou aparente que havia um - interesse firme nessas ideias. Logo ficou claro que tal sistema Linux - customizado não serviria apenas para as necessidades específicas dos - usuários, mas também como uma oportunidade ideal para programadores e - administradores elevarem suas (existentes) habilidades com Linux. Como - resultado desse interesse amplo, o Projeto Linux From Scratch nasceu. - - Este livro Linux From Scratch é o núcleo do projeto. O livro provê a - base e as instruções necessárias para você modelar e construir seu - próprio sistema. Mesmo este livro disponibilizando instruções que - resultarão em um sistema que funciona corretamente, você é livre para - alterar as instruções para adaptá-las às suas necessidades, o que é, em - parte, uma importante parte deste projeto. Você permanece no controle; - nós só damos uma mão para ajudá-lo a começar sua própria jornada. - - Eu sinceramente espero que você se divirta trabalhando no seu próprio - Linux From Scratch e aproveite os benefícios de ter um sistema - verdadeiramente seu. - - -- - Gerard Beekmans - gerard AT linuxfromscratch D0T org - -Audiência - - Existem muitas razões pelas quais você desejaria ler este livro. Uma - das questões que muitas pessoas levantam é “por que ir ao longo de toda - a dificuldade de construir manualmente um sistema Linux desde o zero - quando você pode simplesmente baixar e instalar um existente?†- - Uma importante razão para a existência deste projeto é para te ajudar a - aprender como um sistema Linux funciona de dentro para fora. Construir - um sistema LFS ajuda a demonstrar o que torna o Linux de interesse, e - como as coisas funcionam juntas e dependem umas das outras. Uma das - melhores coisas que essa experiência de aprendizado pode prover é a - habilidade de personalizar um sistema Linux para se ajustar às suas [de - quem construir] próprias necessidades únicas. - - Outro benefício chave de LFS é que ele te permite ter mais controle - sobre o sistema sem confiar na implementação Linux de ninguém. Com LFS, - você está no banco do motorista e dita cada aspecto do sistema. - - LFS te permite criar sistemas muito compactos. Quando se instala - distribuições regulares, você frequentemente é forçado a instalar - muitos programas grandes os quais provavelmente nunca serão usados ou - entendidos. Esses programas desperdiçam recursos. Você talvez argumente - que, com os discos rígidos e CPUs de hoje, tais recursos não mais são - uma consideração. As vezes, entretanto, você ainda está restrito por - considerações de tamanho se nenhuma outra coisa. Pense acerca de CDs - inicializáveis, mídias USB e sistemas embarcados. Essas são áreas onde - LFS pode ser benéfico. - - Outra vantagem de um sistema personalizado Linux construído é - segurança. Ao compilar o sistema inteiro desde o zero, você está - empoderado para auditar tudo e aplicar todas as correções de segurança - desejadas. Não mais é necessário aguardar que outra pessoa compile os - pacotes binários para consertar uma brecha de segurança. A menos que - você examine a correção e a implemente você mesma(o), você não tem - garantias de que o novo pacote binário foi construído corretamente e - adequadamente conserta o problema. - - A finalidade do [projeto] Linux From Scratch é a de construir um - sistema em nível de fundação completo e utilizável. Se você não estiver - afim de construir seu próprio sistema Linux desde o zero, então você - talvez nunca se beneficie das informações neste livro. - - Existem muito mais boas razões para construir seu próprio sistema LFS - para listá-las todas aqui. No final, educação é, de longe, a mais - poderosa das razões. Conforme você continue em sua experiência LFS, - você descobrirá o poder que informação e conhecimento verdadeiramente - trazem. - -Arquiteturas Alvo do LFS - - A principal arquitetura alvo do LFS são os processadores AMD/Intel x86 - (32 bits) e x86_64 (64 bits). Por outro lado, as instruções neste livro - também são conhecidas por funcionar, com algumas modificações, com os - processadores Power PC e ARM. Para construir um sistema que utiliza uma - dessas CPUs, o principal pré-requisito, em adição àqueles que estão nas - próximas páginas, é uma distribuição Linux existente, como uma - instalação LFS prévia, Ubuntu, Red Hat/Fedora, SuSE, ou outra - distribuição que abranja a arquitetura que você tem. Note também que - uma distribuição de 32-bits pode ser instalada e usada como um sistema - hospedeiro em um computador AMD/Intel de 64-bits. - - Para construir LFS, o ganho de construção em um sistema 64-bits - comparado a um sistema 32-bits é mínimo. Por exemplo, em uma construção - de LFS-9.1 de teste em um sistema baseado em CPU Core i7-4790, usando - quatro núcleos, as seguintes estatísticas foram verificadas: -Arquitetura Tempo de Construção Tamanho de Construção -32-bit 239.9 minutos 3.6 GB -64-bit 233.2 minutos 4.4 GB - - Como você pode ver, no mesmo hardware, a construção de 64-bit é apenas - 3% mais rápida e é 22% maior que a construção de 32-bit. Se você - planeja usar LFS como um servidor LAMP, ou como um firewall, então uma - CPU de 32-bits talvez seja largamente suficiente. Por outro lado, - vários pacotes em BLFS atualmente precisam de mais que 4GB de RAM para - serem construídos e (ou) para executarem, de forma que se você planeja - usar LFS como um desktop, então os autores de LFS recomendam construir - em um sistema 64-bits. - - A construção de 64-bit padrão que é resultante do LFS é considerado um - sistema 64-bit “puroâ€. Ou seja, ele suporta apenas executáveis 64-bit. - Construir um sistema “multi-lib†[de múltiplas bibliotecas] exige a - compilação de muitos aplicativos duas vezes, uma vez para um sistema de - 32-bit e outra vez para um sistema de 64-bit. Isso não é diretamente - suportado em LFS, pois interferiria no objetivo educacional de prover - as instruções necessárias para um sistema Linux base estrito. Alguns - editores de LFS/BLFS mantém uma bifurcação de LFS para multilib, que é - acessível em - [179]https://www.linuxfromscratch.org/~thomas/multilib/index.html. - Porém, esse é um tópico avançado. - -Pré-requisitos - - Construir um sistema LFS não é uma tarefa simples. Essa tarefa exige um - certo nível de conhecimento de administração de sistemas Unix para - resolver problemas e corretamente executar os comandos listados. Em - particular, no mínimo, você já deveria ter a habilidade de usar linha - de comando (shell) para copiar ou mover arquivos e diretórios, listar - diretórios e conteúdos de arquivos, e navegar entre os diretórios. - Também é de se esperar que você tenha um conhecimento razoável sobre - como usar e instalar software [em um sistema] Linux. - - Devido ao fato do livro LFS assumir que você tem pelo menos esse nível - básico de habilidades, os vários fóruns de suporte do LFS não serão - adequados para ajudá-lo nessas áreas. Você vai perceber que suas - perguntas com relação a esse conhecimento básico não serão respondidas - ou serão remetidas à lista de itens essenciais de pré-leitura. - - Antes de construir um sistema LFS nós recomendamos a leitura do - seguinte: - * Software-Building-HOWTO - [180]http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - Esse é um guia compreensivo de como construir e instalar pacotes de - software Unix “genéricos†no Linux. Embora tenha sido escrito há - algum tempo, esse guia ainda fornece um bom resumo das técnicas - básicas necessárias para construir e instalar programas. - * Beginner's Guide to Installing from Source - [181]http://moi.vonos.net/linux/beginners-installing-from-source/ - Esse guia fornece um bom sumário de habilidades básicas e de - técnicas necessárias para construir software a partir do código - fonte. - -LFS e Padrões - - A estrutura do LFS segue os padrões Linux tão rigorosamente quanto - possível. Os principais padrões são: - * [182]POSIX.1-2008. - * [183]Filesystem Hierarchy Standard (FHS) Version 3.0 - * [184]Linux Standard Base (LSB) Version 5.0 (2015) - O LSB tem quatro padrões separados: Core, Desktop, Runtime - Languages (linguagens em tempo de execução), e Imaging. Em adição - às exigências genéricas, há as exigências específicas de cada - arquitetura. Existem também duas áreas para uso experimental: Gtk3 - e Graphics. LFS tenta ficar de acordo com as arquiteturas - discutidas na sessão anterior. - -Nota - Muitas pessoas não concordam com os requisitos do LSB. O principal - propósito de definir tais requisitos é o de garantir que softwares - proprietários possam ser instalados e executados adequadamente em - um sistema que respeite o referido padrão. Sendo o LFS baseado em - código fonte, a(o) usuária(o) tem total controle sobre quais - pacotes quer e muitas(os) escolhem não instalar alguns dos pacotes - especificados pelo LSB. - - Criar um sistema LFS completo capaz de passar nos testes das - certificações do LSB é possível, mas não sem muitos pacotes adicionais - que estão além do escopo do LFS. Esses pacotes adicionais tem - instruções para instalação no BLFS. - -Pacotes disponibilizados pelo LFS que são necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, Grep, - Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, - Util-linux, Zlib - - LSB Desktop: - - Nenhum - - LSB Runtime Languages: - - Perl, Python - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Pacotes disponibilizados pelo BLFS necessários para satisfazer os requisitos -do LSB - - LSB Core: - - At, Batch (uma parte de At), Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, - PAM, Pax, Sendmail (ou Postfix ou Exim), time - - LSB Desktop: - - Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, Gdk-pixbuf, - Glib2, GTK+2, Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff, - Libxml2, MesaLib, Pango, Xdg-utils, Xorg - - LSB Runtime Languages: - - Libxml2, Libxslt - - LSB Imaging: - - CUPS, Cups-filters, Ghostscript, SANE - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - GTK+3 - -Pacotes não suportados pelo LFS ou BLFS necessários para satisfazer os -requisitos do LSB - - LSB Core: - - Nenhum - - LSB Desktop: - - Qt4 (mas Qt5 é fornecido) - - LSB Runtime Languages: - - Nenhum - - LSB Imaging: - - Nenhum - - LSB Gtk3 e Gráficos LSB (Uso Experimental): - - Nenhum - -Justificativa para os pacotes no Livro - - Como declarado anteriormente, a finalidade do [projeto] LFS é a de - construir um sistema em nível de fundação completo e utilizável. Isso - inclui todos os pacotes necessários para replicá-lo ao tempo que - disponibiliza uma base relativamente pequena sobre a qual a(o) - usuária(o) pode personalizar um sistema mais completo baseado nas - escolhas da(o) usuária(o). Isso não significa que o LFS é o menor - sistema possível. Vários pacotes importantes estão inclusos que não são - estritamente necessários. As listas abaixo documentam a justificativa - para cada pacote no livro. - * Acl - Esse pacote contém utilitários para administrar Listas de Controle - de Acesso, as quais são usadas para definir direitos de acesso - discricionariamente mais finamente refinados para arquivos e para - diretórios. - * Attr - Esse pacote contém aplicativos para a administração de atributos - estendidos sobre objetos do sistema de arquivos. - * Autoconf - Esse pacote contém aplicativos para produzir shell scripts que - podem configurar automaticamente o código fonte a partir de um - modelo do desenvolvedor. É geralmente necessário para reconstruir - um pacote após atualizações para os procedimentos de construção. - * Automake - Esse pacote contém aplicativos para gerar arquivos Make a partir de - um modelo. É geralmente necessário para reconstruir um pacote após - atualizações para os procedimentos de construção. - * Bash - Esse pacote satisfaz um requisito central do LSB para - disponibilizar uma interface Bourne Shell para o sistema. Foi - escolhido em vez de outros pacotes de shell pelo seu uso comum e - extensas capacidades que transcendem as funções básicas do shell. - * Bc - Esse pacote disponibiliza uma linguagem de processamento numérico - com precisão arbitrária. Ele satisfaz requisitos necessários quando - da construção do Kernel do Linux. - * Binutils - Esse pacote contém um linker, um assembler e outras ferramentas - para manipular arquivos objeto. Os aplicativos nesse pacote são - necessários para compilar a maioria dos pacotes em um sistema LFS e - além. - * Bison - Esse pacote contém a versão GNU do yacc (Yet Another Compiler - Compiler) necessário para construir vários outros aplicativos no - LFS. - * Bzip2 - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. É necessário para descomprimir muitos pacotes do LFS. - * Check - Esse pacote contém um conjunto de ferramentas de teste para outros - aplicativos. - * Coreutils - Esse pacote contém um número de aplicativos essenciais para - visualização e manipulação de arquivos e de diretórios. Esses - aplicativos são necessários para o gerenciamento de arquivos por - linha de comando, e são necessários para os procedimentos de - instalação de cada pacote em LFS. - * D-Bus - Esse pacote contém aplicativos para implementar um sistema de - barramento de mensagem, o qual é um caminho simples para aplicações - conversarem com outras. - * DejaGNU - Esse pacote contém um sistema para testar outros aplicativos. - * Diffutils - Esse pacote contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. Esses aplicativos podem ser usados para - criar correções, e também são usados em muitos procedimentos de - construção dos pacotes. - * E2fsprogs - Esse pacote contém os utilitários para manipular os sistemas de - arquivos ext2, ext3 e ext4. Esses são os sistemas de arquivos mais - comuns e amplamente testados que o Linux suporta. - * Expat - Esse pacote contém uma biblioteca relativamente pequena de análise - de XML. Ela é exigida pelo módulo de Perl XML::Parser. - * Expect - Esse pacote contém um aplicativo para execução de scripts de - diálogos com outros aplicativos interativos. É comumente usado para - testar outros pacotes. - * File - Esse pacote contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. Uns poucos pacotes precisam dele em seus - scripts de construção. - * Findutils - Esse pacote contém aplicativos para encontrar arquivos em um - sistema de arquivos. É usado em muitos scripts de construção dos - pacotes. - * Flex - Esse pacote contém um utilitário para gerar aplicativos que - reconhecem padrões em textos. É a versão GNU do aplicativo lex - (lexical analyzer). É necessário para construir vários pacotes do - LFS. - * Gawk - Esse pacote contém aplicativos para manipular arquivos de texto. É - a versão GNU do awk (Aho-Weinberg-Kernighan). É usado em muitos - outros scripts de construção dos pacotes. - * GCC - Esse pacote é o Gnu Compiler Collection. Ele contém os compiladores - C e C++ assim como vários outros não construídos por LFS. - * GDBM - Esse pacote contém a biblioteca GNU Database Manager. É usado por - um outro pacote do LFS, Man-DB. - * Gettext - Esse pacote contém utilitários e bibliotecas para - internacionalização e localização de numerosos pacotes. - * Glibc - Esse pacote contém a biblioteca C principal. Aplicativos Linux não - funcionarão sem ela. - * GMP - Esse pacote contém bibliotecas matemáticas que fornecem funções - úteis para aritmética de precisão arbitrária. É necessário para - compilar GCC. - * Gperf - Esse pacote contém um aplicativo que gera uma função perfeita de - hash a partir de uma chave configurada. Ele é exigido por Eudev. - * Grep - Esse pacote contém aplicativos para procurar dentro de arquivos. - Esses aplicativos são usados pela maioria dos scripts de construção - dos pacotes. - * Groff - Esse pacote contém aplicativos para processamento e formatação de - texto. Uma função importante desses aplicativos é a de formatar - páginas de manual. - * GRUB - Esse pacote é o Grand Unified Boot Loader. Ele é um dos vários - gerenciadores de inicialização disponíveis, mas é o mais flexível. - * Gzip - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele é necessário para descomprimir muitos pacotes em LFS. - * Iana-etc - Esse pacote fornece dados para serviços e protocolos de rede. Ele é - necessário para habilitar suporte a rede adequado. - * Inetutils - Esse pacote contém aplicativos para administração básica de rede. - * Intltool - Esse pacote contém ferramentas para a extração de sequências de - caracteres traduzíveis a partir de arquivos fonte. - * IProute2 - Esse pacote contém aplicativos para redes IPv4 e IPv6 básicas e - avançadas. Ele foi escolhido em vez de outros pacotes comuns de - ferramentas de rede (net-tools) pelo seu suporte a IPv6. - * Jinja2 - Esse pacote é um módulo de Python para modelos de texto. Ele é - exigido para construir Systemd. - * Kbd - Esse pacote contém arquivos de tabelas chave, utilitários de - teclados que não são estadunidenses, e um número de fontes de - console. - * Kmod - Esse pacote contém aplicativos necessários para administrar os - módulos de kernel do Linux. - * Less - Esse pacote contém um visualizador de textos muito bom que permite - rolar para cima ou para baixo quando se visualiza um arquivo. Ele - também é usado pelo Man-DB para visualizar páginas de manual. - * Libcap - Esse pacote implementa as interfaces do espaço de usuário para as - capacidades POSIX 1003.1e disponíveis em kernels Linux. - * Libelf - O projeto elfutils fornece bibliotecas e ferramentas para dados de - arquivos ELF e DWARF. A maior parte dos utilitários nesse pacote - está disponível em outros pacotes, porém a biblioteca é necessária - para construir o kernel Linux usando a configuração padrão (e mais - eficiente). - * Libffi - Esse pacote implementa uma interface de programação portável, de - alto nível, para várias convenções de chamada. Alguns aplicativos - talvez não saibam, ao tempo da compilação, quais argumentos são - para serem passados para uma função. Por exemplo, um interpretador - talvez possa ser informado, ao tempo de execução, acerca do número - e dos tipos de argumentos usados para chamar uma dada função. - Libffi pode ser usada em tais aplicativos para fornecer uma ponte a - partir do aplicativo interpretador para o código compilado. - * Libpipeline - O pacote Libpipeline contém uma biblioteca para manipular pipelines - de subprocessos de uma maneira flexível e conveniente. Ele é - exigido pelo pacote Man-DB. - * Libtool - Esse pacote contém o script GNU de suporte a bibliotecas genéricas. - Ele esconde a complexidade do uso de bibliotecas compartilhadas em - uma interface consistente e portável. Ele é necessário para as - ferramentas de testes em outros pacotes do LFS. - * Linux Kernel - Esse pacote é o Sistema Operacional. Ele é o Linux no ambiente - GNU/Linux. - * M4 - Esse pacote contém um processador geral de macro de texto, útil - como uma ferramenta de construção para outros aplicativos. - * Make - Esse pacote contém um aplicativo para direcionar a construção de - pacotes. Ele é exigido por quase todos os pacotes em LFS. - * MarkupSafe - Esse pacote é um módulo Python para processamento de sequências de - caracteres em HTML/XHTML/XML com segurança. Jinja2 exige esse - pacote. - * Man-DB - Esse pacote contém aplicativos para encontrar e visualizar páginas - de manual. Ele foi escolhido em vez do pacote man devido a - capacidades superiores de internacionalização. Ele faz as vezes do - aplicativo man. - * Man-pages - Esse pacote contém o conteúdo atual das páginas de manual básicas - do Linux. - * Meson - Esse pacote fornece uma ferramenta de software para automatizar a - construção de software. A finalidade principal para Meson é a de - minimizar a quantidade de tempo que desenvolvedores de software - precisam investir configurando o sistema de construção deles. Ele é - exigido para construir Systemd, bem como muitos pacotes BLFS. - * MPC - Esse pacote contém funções para a aritmética de números complexos. - Ele é exigido por GCC. - * MPFR - Esse pacote contém funções para aritmética de precisão múltipla. - Ele é exigido por GCC. - * Ninja - Esse pacote contém um sistema pequeno de construção com um foco em - velocidade. Ele é desenhado para ter os arquivos de entrada dele - gerados por um sistema de construção de alto nível, e para executar - construções o mais rápido possível. Esse pacote é exigido por - Meson. - * Ncurses - Esse pacote contém bibliotecas para manipulação independente de - terminal de telas de carácter. Ele é frequentemente usado para - fornecer controle de cursor para um sistema com menus. Ele é - necessitado por um número de pacotes em LFS. - * Openssl - Esse pacote fornece ferramentas e bibliotecas de gerenciamento - relacionadas a criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, incluindo o kernel Linux. - * Patch - Esse pacote contém um aplicativo para modificar ou criar arquivos - aplicando um arquivo patch tipicamente criado pelo aplicativo diff. - Ele é necessitado pelo procedimento de construção para vários - pacotes LFS. - * Perl - Esse pacote é um interpretador para a linguagem de tempo de - execução PERL. Ele é necessário para a instalação e ferramentas de - teste de vários pacotes do LFS. - * Pkg-config - Esse pacote fornece um aplicativo que retorna metadados acerca de - uma biblioteca ou pacote instalado. - * Procps-NG - Esse pacote contém aplicativos para monitorar processos. Esses - aplicativos são úteis para administração de sistema, e são também - usados pelos scripts de inicialização do LFS. - * Psmisc - Esse pacote contém aplicativos para mostrar informações acerca de - processos em execução. Esses aplicativos são úteis para - administração de sistema. - * Python 3 - Esse pacote fornece uma linguagem interpretada que tem uma - filosofia de desenho que enfatiza a legibilidade de código. - * Readline - Esse pacote é um conjunto de bibliotecas que oferecem capacidades - de edição e de histórico de linha de comando. Ele é usado por Bash. - * Sed - Esse pacote permite a edição de texto sem abri-lo em um editor de - texto. Ele também é necessitado pela maioria dos scripts de - configuração dos pacotes do LFS. - * Shadow - Esse pacote contém aplicativos para manipulação de senhas de uma - maneira segura. - * Systemd - Esse pacote fornece um aplicativo init e várias capacidades - adicionais de inicialização e de controle de sistema como uma - alternativa ao Sysvinit. Ele é usado por muitas distribuições - comerciais. - * Tar - Esse pacote fornece capacidades de empacotamento e de extração de - virtualmente todos os pacotes usados em LFS. - * Tcl - Esse pacote contém a Tool Command Language usada em muitas - ferramentas de teste em pacotes do LFS. - * Texinfo - Esse pacote contém aplicativos para leitura, escrita e conversão de - páginas info. Ele é usado nos procedimentos de instalação de muitos - pacotes LFS. - * Util-linux - Esse pacote contém uma variedade de aplicativos utilitários. Entre - eles estão utilitários para manipulação de sistemas de arquivos, - consoles, partições e mensagens. - * Vim - Esse pacote contém um editor. Ele foi escolhido por causa da - compatibilidade com o clássico editor vi e o seu número gigante de - capacidades poderosas. Um editor é uma escolha muito pessoal para - muitas(os) usuárias(os) e qualquer outro editor poderia ser - substituído se assim desejar. - * XML::Parser - Esse pacote é um módulo Perl que interage com Expat. - * XZ Utils - Esse pacote contém aplicativos para compressão e descompressão de - arquivos. Ele fornece a maior compressão geralmente disponível e é - útil para descomprimir pacotes nos formatos XZ ou LZMA. - * Zlib - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - * Zstd - Esse pacote contém rotinas de compressão e descompressão usadas por - alguns aplicativos. Ele fornece taxas altas de compressão e um - intervalo muito amplo de intercâmbios entre compressão / - velocidade. - -Tipografia - - Para fazer as coisas mais fáceis de serem seguidas, existem algumas - convenções tipográficas usadas neste livro. Esta sessão contém alguns - exemplos da formatação tipográfica encontrada ao longo de Linux From - Scratch. -./configure --prefix=/usr - - Essa forma de texto é desenhada para ser digitada do jeito que está, a - menos que seja dito o contrário no texto que a envolve. É também usada - na sessão de explicação para identificar quais dos comandos estão sendo - referenciados. - - Em alguns casos, uma linha lógica é estendida em duas ou mais linhas - físicas com uma barra invertida no final da linha. -CC="gcc -B/usr/bin/" ../binutils-2.18/configure \ - --prefix=/tools --disable-nls --disable-werror - - Note que a barra invertida deve ser seguida imediatamente por uma - quebra de linha. Outros espaços em branco como tabulação criarão - resultados incorretos. -install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir' - - Essa forma de texto (largura fixa) mostra a saída em tela, geralmente - como resultado de um comando executado. Esse formato é também utilizado - para mostrar nomes de arquivos, como /etc/ld.so.conf. - - Emphasis - - Essa forma de texto é usada para vários propósitos neste livro. Seu - propósito principal é o de enfatizar pontos ou itens importantes. - - [185]https://www.linuxfromscratch.org/ - - Esse formato é usado para hiperlinks tanto dentro da comunidade LFS e - para páginas externas. Isso inclui HOWTOs, locais de downloads e - páginas da Internet. -cat > $LFS/etc/group << "EOF" -root:x:0: -bin:x:1: -...... -EOF - - Esse formato é usado quando da criação de arquivos de configuração. O - primeiro comando diz para o sistema criar o arquivo $LFS/etc/group a - partir do que seja digitado nas linhas seguintes até encontrar a - sequência “End Of File†(EOF). Portanto, toda essa sequência é - geralmente digitada da maneira como é vista. - - - - Esse formato é usado para encapsular texto que não deve ser digitado - como visto ou para operações de “copiar-colarâ€. - - [OPTIONAL TEXT] - - Esse formato é usado para encapsular texto que é opcional. - - passwd(5) - - Esse formato é usado para referir-se a uma página de manual específica - (man). O número entre parênteses indica uma seção específica dentro dos - manuais. Por exemplo, passwd tem duas páginas de manual. Conforme as - instruções de instalação do LFS, essas duas páginas de manual estarão - localizadas em /usr/share/man/man1/passwd.1 e - /usr/share/man/man5/passwd.5. Quando o livro usa passwd(5) ele está se - referindo especificamente a /usr/share/man/man5/passwd.5. man passwd - exibirá a primeira página de manual que corresponde a “passwdâ€, a qual - será /usr/share/man/man1/passwd.1. Para esse exemplo, você precisará - executar man 5 passwd para ler a página sendo especificada. Perceba que - a maioria das páginas de manual não tem nomes duplicados de páginas em - diferentes seções. Portanto, man geralmente é - suficiente. - -Estrutura - - Este livro é dividido nas seguintes partes. - -Parte I – Introdução - - A Parte I explica algumas notas importantes sobre como proceder com a - instalação do LFS. Essa seção também fornece metainformação sobre o - livro. - -Parte II – Preparando para a Construção - - A Parte II descreve como se preparar para o processo de construção - —criando uma partição, baixando os pacotes, e compilando as ferramentas - temporárias. - -Parte III – Construindo o Conjunto Cruzado de Ferramentas do LFS e -Ferramentas Temporárias - - A Parte III fornece instruções para a construção das ferramentas - necessárias para a construção do sistema LFS final. - -Parte IV - Construindo o Sistema LFS - - A Parte IV guia o leitor ao longo da construção do sistema LFS - —compilando e instalando todos os pacotes, um por um, configurando os - scripts de inicialização e instalando o kernel. O sistema Linux - resultante é a base sobre a qual outros aplicativos podem ser - construídos para expandir o sistema conforme desejado. No final deste - livro, há uma lista de referência de fácil uso listando todos os - aplicativos, bibliotecas e arquivos importantes que foram instalados. - -Parte V - Apêndices - - A Parte V fornece informação acerca do próprio livro incluindo - acrônimos e termos, reconhecimentos, dependências de pacotes, uma - listagem dos scripts de inicialização do LFS, licenças para a - distribuição do livro, e um índice compreensível de pacotes, - aplicativos, bibliotecas, e scripts. - -Errata e Avisos de Segurança - - Os aplicativos utilizados para criar um sistema LFS estão sendo - constantemente atualizados e melhorados. Alertas de segurança e - correções de defeitos talvez se tornem disponíveis após o livro LFS ter - sido lançado. Para checar se versões de pacotes ou instruções neste - lançamento de LFS necessitam de quaisquer modificações para acomodar - vulnerabilidades de segurança ou outras correções de defeitos, por - favor visite - [186]https://www.linuxfromscratch.org/lfs/errata/11.1-systemd/ antes de - continuar com a sua construção. Você deveria tomar nota de quaisquer - mudanças mostradas e aplicá-las às seções relevantes do livro conforme - você progride com a construção do sistema LFS. - - Adicionalmente, os editores de Linux From Scratch mantém uma lista de - vulnerabilidades de segurança descobertas depois que um livro foi - lançado. Para checar se existem quaisquer vulnerabilidades ativas de - segurança, por favor visite - [187]https://www.linuxfromscratch.org/lfs/advisories/ antes de proceder - com sua construção. Você deveria tomar nota de quaisquer conselhos e - executar os passos para corrigir quaisquer vulnerabilidades de - segurança conforme você progride com a construção do sistema LFS. - -Parte I. Introdução - -Capítulo 1. Introdução - -1.1. Como Construir um Sistema LFS - - O sistema LFS será construído usando uma distribuição Linux já - instalada (tal como Debian, OpenMandriva, Fedora, ou openSUSE). Esse - sistema Linux existente (o anfitrião) será usado como ponto de partida - para fornecer os aplicativos necessários, incluindo um compilador, um - vinculador, e um interpretador de comandos, para construir o novo - sistema. Selecione a opção “desenvolvimento†durante a instalação da - distribuição para estar apto a acessar essas ferramentas. - - Como uma alternativa a instalar uma distribuição separada em sua - máquina, você talvez deseje usar um LiveCD de uma distribuição - comercial. - - [188]Capítulo 2 deste livro descreve como criar uma nova partição Linux - nativa e sistema de arquivos. Esse é o local onde o novo sistema LFS - será compilado e instalado. [189]Capítulo 3 explica quais pacotes e - patches precisam ser baixados para construir um sistema LFS e como eles - devem ser armazenados no novo sistema de arquivos. [190]Capítulo 4 - discute a configuração de um ambiente de trabalho apropriado. Por - favor, leia o [191]Capítulo 4 cuidadosamente, uma vez que ele explica - vários assuntos importantes sobre os quais você deve estar ciente antes - de começar seu trabalho ao longo do [192]Capítulo 5 e além. - - [193]Capítulo 5, explica a instalação do conjunto inicial de - ferramentas, (binutils, gcc, e glibc) usando técnicas de compilação - cruzada para isolar as novas ferramentas das do sistema anfitrião. - - [194]Capítulo 6 te mostra como compilar cruzadamente utilitários - básicos usando o recém construído conjunto cruzado de ferramentas. - - [195]Capítulo 7 então entra em um ambiente "chroot" e usa as - ferramentas previamente construídas para construir as ferramentas - adicionais necessárias para construir e para testar o sistema final. - - Esse esforço para isolar o sistema novo do sistema anfitrião talvez - pareça excessivo. Uma explicação técnica completa sobre o porquê isso é - feito é fornecida em [196]Notas Técnicas do Conjunto de Ferramentas. - - Em [197]Capítulo 8, o sistema LFS completo é construído. Outra vantagem - fornecida pelo ambiente chroot é que ele te permite continuar usando o - sistema anfitrião enquanto que LFS está sendo construído. Enquanto - espera por compilações de pacotes completarem, você pode continuar - usando seu computador normalmente. - - Para finalizar a instalação, a configuração básica do sistema é - concluída em [198]Capítulo 9, e o kernel e carregador de inicialização - são configurados em [199]Capítulo 10. [200]Capítulo 11 contém - informação sobre como continuar a experiência LFS além deste livro. - Após os passos neste livro terem sido implementados, o computador - estará pronto para reiniciar no novo sistema LFS. - - Esse é o processo em poucas palavras. Informação detalhada sobre cada - passo é discutida nos capítulos seguintes e nas descrições dos pacotes. - Itens que talvez pareçam complicados serão esclarecidos, e tudo ficará - em seu devido lugar conforme você embarcar na aventura do LFS. - -1.2. O que há de novo desde o último lançamento - - Nesta versão de LFS, houve uma grande reorganização do livro usando - técnicas que evitam a modificação do sistema anfitrião e fornecem um - seguimento mais estrito do processo de construção. - - Abaixo está uma lista das atualizações de pacotes feitas desde o - lançamento anterior do livro. - - Atualizado para: - * Automake-1.16.5 - * Bash-5.1.16 - * Bc-5.2.2 - * Binutils-2.38 - * Bison-3.8.2 - * Coreutils-9.0 - * E2fsprogs-1.46.5 - * Expat-2.4.6 - * File-5.41 - * Findutils-4.9.0 - * Gawk-5.1.1 - * GDBM-1.23 - * Glibc-2.35 - * Gzip-1.11 - * IANA-Etc-20220207 - * Inetutils-2.2 - * IPRoute2-5.16.0 - * Jinja2-3.0.3 - * Libcap-2.63 - * Libelf-0.186 (de: elfutils) - * Libpipeline-1.5.5 - * Linux-5.16.9 - * Man-DB-2.10.1 - * Meson-0.61.1 - * Ncurses-6.3 - * Openssl-3.0.1 - * Python-3.10.2 - * Readline-8.1.2 - * Shadow-4.11.1 - * Systemd-250 - * Tcl-8.6.12 - * Tzdata-2021e - * Util-Linux-2.37.4 - * Vim-8.2.4383 - * Zstd-1.5.2 - - Adicionado: - * binutils-2.38-lto_fix-1.patch - * coreutils-9.0-chmod_fix-1.patch - * file-5.40-upstream_fixes-1.patch - * shadow-4.10-useradd_segfault-1.patch - * systemd-250-upstream_fixes-1.patch - -1.3. Registro de Mudanças - - Esta é a versão 11.1-systemd do livro Linux From Scratch, datada de 1º - de março de 2022. Se este livro estiver com mais de seis meses, então - uma versão nova e melhor provavelmente já está disponível. Para - descobrir, por favor verifique um dos sites via - [201]https://www.linuxfromscratch.org/mirrors.html. - - Abaixo está uma lista das mudanças feitas desde o lançamento anterior - do livro. - - Entradas de Registro de Mudanças: - * 2022-03-01 - + [bdubbs] - LFS-11.1 lançado. - * 2022-02-23 - + [bdubbs] - Atualização para expat-2.4.6 (correção de - segurança). Corrige [202]#5011. - * 2022-02-15 - + [bdubbs] - LFS-11.1-rc1 lançado. - + [bdubbs] - Adicionar binutils-2.38 LTO patch. Corrige - [203]#5011. - + [bdubbs] - Atualização para util-linux-2.37.4. Corrige - [204]#5010. - + [bdubbs] - Atualização para man-db-2.10.1. Corrige [205]#5009. - + [bdubbs] - Atualização para linux-5.16.9. Corrige [206]#5008. - + [bdubbs] - Atualização para vim-8.2.4383 (Atualização de - Segurança). Endereça [207]#4500. - + [bdubbs] - Atualização para iana-etc-20220207. Endereça - [208]#5006. - * 2022-02-10 - + [xry111] - Contorna um problema que causa os binários se - vincularem a bibliotecas da distribuição anfitriã para a - passagem dois de binutils. Agora é desnecessário construir - zlib em capítulo 6. - * 2022-02-09 - + [bdubbs] - Atualização para bc-5.2.2. Corrige [209]#5004. - + [bdubbs] - Atualização para linux-5.16.8. Corrige [210]#5005. - + [bdubbs] - Atualização para binutils-2.38. Exige a adição de - zlib para Capítulo 6. Corrige [211]#5007. - * 2022-02-04 - + [xry111] - Remove diretivas bash +h em chroot. Corrige - [212]#4998. - + [xry111] - Atualização para man-db-2.10.0. Corrige [213]#5002. - + [xry111] - Move OpenSSL para antes de Kmod e habilita OpenSSL - para construção de Kmod. - + [xry111] - Atualização para gdbm-1.23. Corrige [214]#5000. - + [xry111] - Atualização para tcl-8.6.12. Corrige [215]#5001. - + [thomas] - Remove sed das instruções glibc em capítulo 8. Foi - submetida ao desenvolvedor. - * 2022-02-03 - + [bdubbs] - Adicionado patch chmod do coreutils-9.0. Corrige - [216]#4992. - + [bdubbs] - Atualização para glibc-2.35. Corrige [217]#4999. - + [bdubbs] - Atualização para linux-5.16.5. Corrige [218]#4996. - + [bdubbs] - Atualização para findutils-4.9.0. Corrige - [219]#4995. - + [bdubbs] - Atualização para expat-2.4.4. Corrige [220]#4993. - + [bdubbs] - Atualização para iana-etc-20220128. Corrige - [221]#4994. - * 2022-01-29 - + [bdubbs] - Atualização para linux-5.16.4. Corrige [222]#4991. - * 2022-01-27 - + [bdubbs] - Atualização para vim-8.2.4236. Endereça [223]#4500. - + [bdubbs] - Atualização para zstd-1.5.2. Corrige [224]#4988. - + [bdubbs] - Atualização para util-linux-2.37.3 (correção de - segurança). Corrige [225]#4989. - + [bdubbs] - Atualização para Python-3.10.2. Corrige [226]#4987. - + [bdubbs] - Atualização para linux-5.16.2. Corrige [227]#4979. - + [bdubbs] - Atualização para libcap-2.63. Corrige [228]#4990. - + [bdubbs] - Atualização para iproute2-5.16.0. Corrige - [229]#4982. - + [bdubbs] - Atualização para iana-etc-20220120. Corrige - [230]#4975. - * 2022-01-20 - + [bdubbs] - Atualização para expat-2.4.3 (correções de - segurança). Corrige [231]#4984. - + [pierre] - Atualização para meson-0.61.1. Corrige [232]#4985. - * 2022-01-17 - + [thomas] - Adicionada uma correção de um erro de digitação - para o patch de meson-0.61.0. - * 2022-01-15 - + [bdubbs] - Atualização para shadow-4.11.1. Corrige [233]#4976. - + [bdubbs] - Atualização para readline-8.1.2. Corrige - [234]#4980. - + [bdubbs] - Atualização para meson-0.61.0. Corrige [235]#4983. - + [bdubbs] - Atualização para libpipeline-1.5.5. Corrige - [236]#4977. - + [bdubbs] - Atualização para bash-5.1.16. Corrige [237]#4978. - * 2021-01-13 - + [renodr] - Corrigido CVE-2021-3997 em systemd, bem como - correção de um problema com as Unidades padrão hostname e - idle. Corrige [238]#4981. - * 2021-01-03 - + [renodr] - Acrescenta configuração adicional de kernel para - permitir que 'systemd-oomd' funcione. - * 2022-01-01 - + [bdubbs] - Atualização para e2fsprogs-1.46.5. Corrige - [239]#4974. - + [bdubbs] - Atualização para zstd-1.5.1. Corrige [240]#4972. - + [bdubbs] - Atualização para expat-2.4.2. Corrige [241]#4970. - + [bdubbs] - Atualização para shadow-4.10. Corrige [242]#4969. - + [bdubbs] - Atualização para linux-5.15.12. Corrige [243]#4967. - + [bdubbs] - Atualização para iana-etc-20211224. Corrige - [244]#4962. - + [bdubbs] - Atualização para openssl-3.0.1. Corrige [245]#4922. - + [bdubbs] - Atualização para eudev-3.2.11. Corrige [246]#4914. - * 2021-12-30 - + [renodr] - Atualização para systemd-250. Corrige [247]#4971. - + [renodr] - Atualização para meson-0.60.3. Corrige [248]#4973. - * 2021-12-15 - + [bdubbs] - Atualização para python3-3.10.1. Corrige - [249]#4963. - + [bdubbs] - Atualização para openssl-1.1.1m. Corrige - [250]#4966. - + [bdubbs] - Atualização para linux-5.15.7. Corrige [251]#4964. - + [bdubbs] - Atualização para libcap-2.62. Corrige [252]#4965. - * 2021-12-14 - + [thomas] - Permite a construção de findutils em sistemas de 32 - bits. Commits aplicados a partir da branch multilib por - [pierre]. - * 2021-12-01 - + [bdubbs] - Atualização para vim-8.2.3704. Endereça [253]#4500. - + [bdubbs] - Atualização para iana-etc-20211124. Corrige - [254]#4957. - + [bdubbs] - Atualização para bc-5.2.1. Corrige [255]#4959. - + [bdubbs] - Atualização para meson-0.60.2. Corrige [256]#4960. - + [bdubbs] - Atualização para linux-5.15.5. Corrige [257]#4956. - * 2021-11-15 - + [bdubbs] - Atualização para iana-etc-20211112. Corrige - [258]#4955. - + [bdubbs] - Atualização para elfutils-0.186. Corrige - [259]#4954. - + [bdubbs] - Atualização para jinja2-3.0.3. Corrige [260]#4953. - + [bdubbs] - Atualização para bc-5.2.0. Corrige [261]#4952. - + [bdubbs] - Atualização para ncurses-6.3. Corrige [262]#4951. - + [bdubbs] - Atualização para libpipeline-1.5.4. Corrige - [263]#4950. - + [bdubbs] - Atualização para meson-0.60.1. Corrige [264]#4949. - + [bdubbs] - Atualização para iproute2-5.15.0. Corrige - [265]#4948. - + [bdubbs] - Atualização para linux-5.15.2. Corrige [266]#4947. - * 2021-11-01 - + [bdubbs] - Atualização para gawk-5.1.1. Corrige [267]#4946. - + [bdubbs] - Atualização para meson-0.60.0. Corrige [268]#4945. - + [bdubbs] - Atualização para libcap-2.60. Corrige [269]#4944. - + [bdubbs] - Atualização para gdbm-1.22. Corrige [270]#4943. - + [bdubbs] - Atualização para file-5.41. Corrige [271]#4942. - + [bdubbs] - Atualização para linux-5.14.15. Corrige [272]#4941. - + [bdubbs] - Atualização para iana-etc-20211025. Corrige - [273]#4940. - + [bdubbs] - Atualização para tzdata-2021e. Corrige [274]#4939. - * 2021-10-15 - + [bdubbs] - Atualização para vim-8.2.3508. Endereça [275]#4500. - + [bdubbs] - Atualização para tzdata-2021c. Corrige [276]#4934. - + [bdubbs] - Atualização para Python-3.10.0. Corrige [277]#4938. - + [bdubbs] - Atualização para Jinja2-3.0.2. Corrige [278]#4937. - + [bdubbs] - Atualização para linux-5.14.12. Corrige [279]#4932. - + [bdubbs] - Atualização para iana-etc-20211004. Corrige - [280]#4933. - + [bdubbs] - Atualização para bc-5.1.1. Corrige [281]#4936. - + [bdubbs] - Atualização para automake-1.16.5. Corrige - [282]#4935. - * 2021-10-01 - + [bdubbs] - Atualização para vim-8.2.3458. Endereça [283]#4500. - + [bdubbs] - Atualização para iana-etc-20210924. Endereça - [284]#4722. - + [bdubbs] - Atualização para tzdata-2021b. Corrige [285]#4929. - + [bdubbs] - Atualização para meson-0.59.2. Corrige [286]#4931. - + [bdubbs] - Atualização para linux-5.14.8. Corrige [287]#4925. - + [bdubbs] - Atualização para libcap-2.59. Corrige [288]#4926. - + [bdubbs] - Atualização para coreutils-9.0. Corrige [289]#4928. - + [bdubbs] - Atualização para bison-3.8.2. Corrige [290]#4930. - * 2021-09-15 - + [bdubbs] - Garante que as instruções de documentação de tcl - estão presentes. Corrige [291]#4923. - + [bdubbs] - Atualização para Python3-3.9.7. Corrige [292]#4916. - + [bdubbs] - Atualização para linux-5.14.3. Corrige [293]#4913. - + [bdubbs] - Atualização para libcap-2.57. Corrige [294]#4912. - + [bdubbs] - Atualização para iproute2-5.14.0. Corrige - [295]#4917. - + [bdubbs] - Atualização para inetutils-2.2. Corrige [296]#4918. - + [bdubbs] - Atualização para gzip-1.11. Corrige [297]#4920. - + [bdubbs] - Atualização para gdbm-1.21. Corrige [298]#4919. - + [bdubbs] - Atualização para bison-3.8.1. Corrige [299]#4921. - + [bdubbs] - Atualização para bc-5.0.2. Corrige [300]#4905. - * 2021-09-08 - + [renodr] - Corrige regressões em File que resultam em detecção - inapropriada de texto e arquivos XZ. - * 2021-09-06 - + [bdubbs] - Esclarecimentos de texto na seção cópia de - segurança/restauração de Capítulo 7. Grato a Kevin Buckley - pelo patch. - * 2021-09-01 - + [bdubbs] - LFS-11.0 lançado. - -1.4. Recursos - -1.4.1. Perguntas Frequentes - - Se durante a construção do sistema LFS você encontrar quaisquer erros, - tiver quaisquer perguntas, ou entender que há um erro de digitação no - livro, então, por favor, comece consultando as Perguntas Feitas - Frequentemente (FAQ) que estão localizadas em - [301]https://www.linuxfromscratch.org/faq/. - -1.4.2. Listas de Correio Eletrônico - - O servidor linuxfromscratch.org hospeda um número de listas de - discussão usadas para o desenvolvimento do projeto LFS. Essas listas - incluem as principais listas de desenvolvimento e suporte, dentre - outras. Se o FAQ não resolver o problema que você está tendo, então o - próximo passo seria procurar nas listas de discussão em - [302]https://www.linuxfromscratch.org/search.html. - - Para informação sobre as diversas listas, como se inscrever, - localização de arquivos e informações adicionais, visite - [303]https://www.linuxfromscratch.org/mail.html. - -1.4.3. IRC - - Vários membros da comunidade LFS oferecem assistência no Internet Relay - Chat (IRC). Antes de usar esse suporte, por favor certifique-se de que - sua pergunta já não foi respondida no FAQ do LFS ou nos arquivos das - listas de discussão. Você pode encontrar a rede IRC em irc.libera.chat. - O canal de suporte é chamado de #lfs-support. - -1.4.4. Sítios Espelho - - O projeto LFS tem um número de espelhos mundo afora para fazer com que - o acesso ao site do projeto e o download dos pacotes exigidos seja mais - conveniente. Por favor visite o site do LFS em - [304]https://www.linuxfromscratch.org/mirrors.html para uma lista dos - espelhos atuais. - -1.4.5. Informação de Contato - - Por favor, direcione todas as suas questões e comentários para uma das - listas de discussão (veja acima). - -1.5. Ajuda - - Se um problema ou uma pergunta for encontrado durante o trabalho com - este livro, então, por favor, verifique a página de Perguntas - Frequentes em [305]https://www.linuxfromscratch.org/faq/#generalfaq. - Perguntas frequentemente já estão respondidas lá. Se sua pergunta não - estiver respondida nessa página, então, por favor, tente encontrar a - origem do problema. A dica seguinte te dará alguma orientação com - relação à resolução de problemas: - [306]https://www.linuxfromscratch.org/hints/downloads/files/errors.txt. - - Se você não puder achar seu problema listado nas Perguntas Frequentes, - então procure nas listas de discussão em - [307]https://www.linuxfromscratch.org/search.html. - - Nós também temos uma comunidade LFS maravilhosa que está disposta a - oferecer assistência por meio das listas de discussão e IRC (veja a - seção [308]Seção 1.4, “Recursos†deste livro). Entretanto, nós temos - várias perguntas de suporte todos os dias e muitas delas podem ser - facilmente respondidas indo para as Perguntas Frequentes e procurando - nas listas de discussão primeiro. Então, para que nós possamos oferecer - a melhor assistência possível, você precisa fazer alguma pesquisa por - conta própria primeiro. Isso nos permite focar nas necessidades menos - usuais de suporte. Se suas buscas não produzirem uma solução, então, - por favor, inclua todas as informações relevantes (mencionadas abaixo) - no seu pedido de ajuda. - -1.5.1. Coisas a Mencionar - - Além de uma breve explanação do problema sendo vivenciado, as coisas - essenciais a incluir em qualquer pedido de ajuda são: - * A versão do livro sendo usado (neste caso 11.1-systemd) - * A distribuição anfitriã e versão sendo usada para criar LFS - * A saída do script [309]Exigências do Sistema Anfitrião - * O pacote ou seção onde o problema foi encontrado - * A mensagem de erro exata ou o sintoma sendo recebido - * Nota se você se desviou do livro afinal - -Nota - - Desviar-se deste livro não significa que nós não vamos te ajudar. - Afinal de contas, LFS é acerca de preferência pessoal. Ser sincero - sobre quaisquer mudanças nos procedimentos estabelecidos nos ajuda a - avaliar e determinar possíveis causas do seu problema. - -1.5.2. Problemas de Script de Configuração - - Se algo der errado quando executar o script configure, então revise o - arquivo config.log. Esse arquivo talvez contenha erros encontrados - durante [a execução de] configure os quais não foram exibidos na tela. - Inclua as linhas relevantes se você precisar pedir ajuda. - -1.5.3. Problemas de Compilação - - Tanto a saída da tela quando o conteúdo de vários arquivos são úteis - para determinar a causa de problemas de compilação. A saída da tela do - script configure e do make executado podem ser úteis. Não é necessário - incluir toda a saída, mas inclua informações relevantes suficientes. - Abaixo está um exemplo do tipo de informação a incluir a partir da - saída de tela do make: -gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\" --DLOCALEDIR=\"/mnt/lfs/usr/share/locale\" --DLIBDIR=\"/mnt/lfs/usr/lib\" --DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I. --g -O2 -c getopt1.c -gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o -expand.o file.o function.o getopt.o implicit.o job.o main.o -misc.o read.o remake.o rule.o signame.o variable.o vpath.o -default.o remote-stub.o version.o opt1.o --lutil job.o: In function `load_too_high': -/lfs/tmp/make-3.79.1/job.c:1565: undefined reference -to `getloadavg' -collect2: ld returned 1 exit status -make[2]: *** [make] Error 1 -make[2]: Leaving directory `/lfs/tmp/make-3.79.1' -make[1]: *** [all-recursive] Error 1 -make[1]: Leaving directory `/lfs/tmp/make-3.79.1' -make: *** [all-recursive-am] Error 2 - - Nesse caso, muitas pessoas incluiriam apenas a seção final: -make [2]: *** [make] Error 1 - - Essa não é informação suficiente para diagnosticar adequadamente o - problema, pois essa linha apenas mostra que algo deu errado, não o quê - deu errado. A seção inteira, como no exemplo acima, é o que deveria ser - salva, porque ela inclui o comando que foi executado e a(s) - mensagem(ns) de erro associada(s). - - Um artigo excelente sobre como pedir ajuda na Internet está disponível - em [310]http://catb.org/~esr/faqs/smart-questions.html. Leia e siga as - dicas nesse documento para aumentar a possibilidade receber a ajuda que - você precisa. - -Parte II. Preparando para a Construção - -Capítulo 2. Preparando o Sistema Anfitrião - -2.1. Introdução - - Neste capítulo, as ferramentas do anfitrião necessárias para construção - de LFS são verificadas e, se necessário, instaladas. Então uma partição - que hospedará o sistema LFS é preparada. Nós criaremos a própria - partição, criaremos um sistema de arquivos nela, e a montaremos. - -2.2. Exigências do Sistema Anfitrião - - Seu sistema anfitrião deveria ter o software seguinte com as versões - mínimas indicadas. Isso não deveria ser um problema para a maioria das - distribuições Linux modernas. Também, perceba que muitas distribuições - colocarão cabeçalhos de aplicativos dentro de pacotes separados, - frequentemente na forma de “-devel†ou - “-devâ€. Certifique-se de instalá-los se sua distribuição - os fornecer. - - Versões anteriores dos pacotes de software listados talvez funcionem, - porém não foram testados. - * Bash-3.2 (/bin/sh deveria ser um link simbólico ou real para bash) - * Binutils-2.13.1 (Versões maiores que 2.38 não são recomendadas dado - que elas não foram testadas) - * Bison-2.7 (/usr/bin/yacc deveria ser um link para bison ou script - pequeno que executa bison) - * Coreutils-6.9 - * Diffutils-2.8.1 - * Findutils-4.2.31 - * Gawk-4.0.1 (/usr/bin/awk deveria ser um link para gawk) - * GCC-4.8 incluindo o compilador C++, g++ (Versões maiores que 11.2.0 - não são recomendadas dado que elas não foram testadas). As - bibliotecas C e C++ padrão (com cabeçalhos) também devem estar - presentes, de forma que o compilador C++ possa construir - aplicativos hospedados - * Grep-2.5.1a - * Gzip-1.3.12 - * Linux Kernel-3.2 - A razão para a exigência da versão de kernel é que nós - especificamos essa versão quando da construção de glibc em - [311]Capítulo 5 e [312]Capítulo 8, por recomendação dos - desenvolvedores. Ela também é exigida por udev. - Se o kernel do anfitrião for anterior a 3.2, então você precisará - substituir o kernel com uma versão mais atualizada. Existem duas - maneiras de você fazer isso. Primeira, veja se seu fornecedor Linux - fornece um pacote de kernel 3.2 ou mais atual. Se sim, então você - talvez deseje instalá-lo. Se seu fornecedor não oferecer um pacote - de kernel aceitável, ou você preferisse não instalá-lo, então você - mesmo pode compilar um kernel. Instruções para a compilação de - kernel e configuração de carregador de inicialização (presumindo - que o anfitrião usa GRUB) estão localizadas em [313]Capítulo 10. - * M4-1.4.10 - * Make-4.0 - * Patch-2.5.4 - * Perl-5.8.8 - * Python-3.4 - * Sed-4.1.5 - * Tar-1.22 - * Texinfo-4.7 - * Xz-5.0.0 - -Importante - - Perceba que os links simbólicos mencionados acima são exigidos para - construir um sistema LFS usando as instruções contidas neste livro. - Links simbólicos que apontem para outro software (tais como dash, mawk, - etc.) talvez funcionem, porém não são testados ou suportados pela - equipe de desenvolvimento de LFS, e talvez exijam ou desvio das - instruções ou correções adicionais para alguns pacotes. - - Para ver se seu sistema anfitrião tem todas as versões apropriadas, e a - habilidade de compilar aplicativos, execute o seguinte: -cat > version-check.sh << "EOF" -#!/bin/bash -# Script simples para listar números de versão de ferramentas críticas de desenv -olvimento -export LC_ALL=C -bash --version | head -n1 | cut -d" " -f2-4 -MYSH=$(readlink -f /bin/sh) -echo "/bin/sh -> $MYSH" -echo $MYSH | grep -q bash || echo "ERRO: /bin/sh não aponta para bash" -unset MYSH - -echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- -bison --version | head -n1 - -if [ -h /usr/bin/yacc ]; then - echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; -elif [ -x /usr/bin/yacc ]; then - echo yacc is `/usr/bin/yacc --version | head -n1` -else - echo "yacc não encontrado" -fi - -echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 -diff --version | head -n1 -find --version | head -n1 -gawk --version | head -n1 - -if [ -h /usr/bin/awk ]; then - echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; -elif [ -x /usr/bin/awk ]; then - echo awk é `/usr/bin/awk --version | head -n1` -else - echo "awk não encontrado" -fi - -gcc --version | head -n1 -g++ --version | head -n1 -grep --version | head -n1 -gzip --version | head -n1 -cat /proc/version -m4 --version | head -n1 -make --version | head -n1 -patch --version | head -n1 -echo Perl `perl -V:version` -python3 --version -sed --version | head -n1 -tar --version | head -n1 -makeinfo --version | head -n1 # versão texinfo -xz --version | head -n1 - -echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c -if [ -x dummy ] - then echo "g++ compilação OK"; - else echo "g++ compilação falhou"; fi -rm -f dummy.c dummy -EOF - -bash version-check.sh - -2.3. Construindo LFS em Estágios - - LFS está desenhado para ser construído em uma sessão. Isto é, as - instruções assumem que o sistema não será desligado durante o processo. - Isso não significa que o sistema tenha que estar pronto de uma só vez. - O problema é que certos procedimentos tem que ser realizados outra vez - após uma inicialização se retomando LFS em pontos diferentes. - -2.3.1. Capítulos 1–4 - - Esses capítulos são realizados no sistema anfitrião. Quando da - reinicialização, seja cuidadosa(o) com o seguinte: - * Procedimentos feitos como a(o) usuária(o) root após a Seção 2.4 - precisam ter a variável de ambiente LFS configurada PARA A(O) - USUÃRIA(O) ROOT. - -2.3.2. Capítulos 5–6 - - * A partição /mnt/lfs deve estar montada. - * Esses dois capítulos devem ser feitos como a(o) usuária(o) lfs. Um - su - lfs precisa ser feito antes de qualquer tarefa nesses - capítulos. Ao falhar em fazer isso, você está no risco de instalar - pacotes no sistema anfitrião, e potencialmente torná-lo - inutilizável. - * Os procedimentos em [314]Instruções Gerais de Compilação são - críticos. Se existir qualquer dúvida acerca da instalação de um - pacote, então certifique-se de que qualquer arquivo tar - descomprimido previamente foi removido, então extraia novamente os - arquivos do pacote, e complete todas as instruções nessa seção. - -2.3.3. Capítulos 7–10 - - * A partição /mnt/lfs deve estar montada. - * Umas poucas operações, de “Mudando Dono†até “Entrando no Ambiente - Chroot†devem ser feitas como a(o) usuária(o) root, com a variável - de ambiente LFS configurada para a(o) usuária(o) root. - * Quando entrar em chroot, a variável de ambiente LFS deve estar - configurada para root. A variável LFS não mais é usada - posteriormente. - * Os sistemas virtuais de arquivo devem estar montados. Isso pode ser - feito antes ou depois de entrar em chroot mudando para um terminal - virtual do anfitrião e, como root, executando os comandos em - [315]Seção 7.3.2, “Montando e Povoando /dev†e [316]Seção 7.3.3, - “Montando Sistemas de Arquivos Virtuais de Kernelâ€. - -2.4. Criando uma Nova Partição - - Como a maior parte dos outros sistemas operacionais, LFS geralmente é - instalado em uma partição dedicada. A abordagem recomendada para - construir um sistema LFS é a de usar uma partição disponível vazia ou, - se você tiver espaço suficiente não particionado, criar uma. - - Um sistema mínimo exige uma partição com cerca de dez (10) gigabytes - (GB). Isso é suficiente para armazenar todos os arquivos tar dos - códigos fontes e compilar os pacotes. Entretanto, se o sistema LFS for - concebido para ser o sistema Linux principal, então aplicativos - adicionais provavelmente serão instalados os quais exigirão espaço - adicional. Uma partição de trinta (30) GB é um tamanho razoável para - permitir o crescimento. O sistema LFS em si não ocupará esse espaço - todo. Uma boa parte dessa exigência é para fornecer espaço livre - suficiente de armazenamento temporário. Adicionalmente, a compilação de - pacotes pode exigir muito espaço de disco que será recuperado após o - pacote ser instalado. - - Como nem sempre existe Memória de Acesso Aleatório (RAM) suficiente - disponível para processos de compilação, é uma boa ideia usar uma - pequena partição de disco como espaço de swap. Ele é usado pelo kernel - para armazenar dados raramente usados e deixa mais memória disponível - para processos ativos. A partição de swap para um sistema LFS pode ser - a mesma que aquela usada pelo sistema anfitrião, caso no qual não é - necessário criar outra. - - Inicie um aplicativo de particionamento de disco como cfdisk ou fdisk - com uma opção de linha de comando indicando o disco rígido no qual a - nova partição será criada—por exemplo /dev/sda para o controlador - primário de disco. Crie uma partição nativa Linux e uma partição swap, - se necessária. Por favor, recorra a cfdisk(8) ou fdisk(8) se você ainda - não sabe como usar os aplicativos. - -Nota - - Para usuários experientes, outros esquemas de partição são possíveis. O - novo sistema LFS pode estar em um vetor de software [317]RAID ou um - volume lógico [318]LVM. Entretanto, algumas dessas opções exigem um - [319]initramfs, o que é um tópico avançado. Essas metodologias de - particionamento não são recomendadas para usuárias(os) de LFS pela - primeira vez. - - Lembre-se da designação da nova partição (por exemplo, sda5). Este - livro se referirá a essa como a partição LFS. Lembre-se também da - designação da partição swap. Esses nomes serão necessários - posteriormente para o arquivo /etc/fstab. - -2.4.1. Outros Problemas de Partição - - Pedidos de ajuda com relação a particionamento de disco frequentemente - são enviados à lista de discussão do LFS. Esse é um assunto altamente - subjetivo. O padrão para a maioria das distribuições é o de usar todo o - disco com a exceção de uma pequena partição swap. Isso não é ideal para - LFS por várias razões. Isso reduz flexibilidade; torna o - compartilhamento de dados entre múltiplas distribuições ou construções - LFS mais difícil; torna as cópias de segurança mais demoradas; e podem - desperdiçar espaço de disco devido à alocação ineficiente de estruturas - de sistema de arquivo. - -2.4.1.1. A Partição Raiz - - Uma partição raiz de LFS (não confundir com o diretório /root) de vinte - (20) gigabytes é uma boa escolha para a maior parte dos sistemas. Ela - fornece espaço suficiente para construir LFS e a maior parte de BLFS, - mas é pequena o suficiente de forma que múltiplas partições podem ser - criadas facilmente para experimentação. - -2.4.1.2. A Partição Swap - - A maioria das distribuições automaticamente cria uma partição swap. - Geralmente o tamanho recomendado da partição swap é o de cerca de o - dobro da quantidade de RAM física, entretanto isso raramente é - necessário. Se espaço de disco for limitado, então mantenha a partição - swap com dois (2) gigabytes e monitore a quantidade de troca de disco. - - Se você quer usar a característica de hibernação do Linux - (suspend-to-disk), copia o conteúdo da RAM para a partição swap antes - de desligar a máquina. Nesse caso o tamanho da partição swap deveria - ser pelo menos tão grande quanto a RAM instalada do sistema. - - O uso de swap nunca é bom. Para discos rígidos mecânicos você - geralmente pode dizer se um sistema está usando swap simplesmente - monitorando a atividade de disco e observando como o sistema reage a - comandos. Para um drive SSD você não estará apta(o) a monitorar swap, - porém você pode dizer quanto espaço de swap está sendo usado via - aplicativos top ou free. O uso de um drive SSD para uma partição swap - deveria ser evitado se possível. A primeira reação em caso de uso de - swap deveria ser verificar se existe um comando irracional como tentar - editar um arquivo de cinco gigabytes. Se o uso de swap se tornar uma - ocorrência recorrente, então a melhor solução é a de comprar mais RAM - para seu sistema. - -2.4.1.3. A Partição de Bios Grub - - Se o disco de inicialização tiver sido particionado com a Tabela de - Partição GUID (GPT), então uma partição pequena, tipicamente um (1) MB, - deve ser criada se ela já não existir. Essa partição não é formatada, - porém deve estar disponível para GRUB usar durante a instalação do - carregador de inicialização. Essa partição normalmente será rotulada - 'BIOS Boot' se usar fdisk ou terá um código de EF02 se usar gdisk. - -Nota - - A Partição de Bios Grub deve estar no drive que o BIOS usa para - inicializar o sistema. Esse não é necessariamente o mesmo drive onde a - partição raiz de LFS está localizada. Discos em um sistema talvez usem - tipos diferentes de tabela de partição. A exigência para essa partição - depende apenas do tipo de tabela de partição do disco de inicialização. - -2.4.1.4. Partições de Conveniência - - Existem várias outras partições que não são exigidas, porém deveriam - ser consideradas ao se projetar um layout de disco. A lista seguinte - não é abrangente, mas é entendida como um guia. - * /boot – Altamente recomendada. Use essa partição para armazenar - kernels e outras informações de inicialização. Para minimizar - potenciais problemas de inicialização com discos maiores, torne - essa a primeira partição física no seu primeiro controlador de - disco. Um tamanho de partição de duzentos (200) megabytes é - bastante adequado. - * /home – Altamente recomendada. Compartilhe seu diretório home e - personalizações de usuário entre múltiplas distribuições ou - construções LFS. O tamanho geralmente é bastante grande e depende - do espaço de disco disponível. - * /usr – Em LFS, /bin, /lib, e /sbin são links simbólicos para seus - homólogos em /usr. Assim /usr contém todos os binários necessários - para o sistema executar. Para LFS, uma partição separada para /usr - normalmente não é necessária. Se você precisar dela de qualquer - maneira, então você deveria tornar uma partição grande o suficiente - para acomodar todos os aplicativos e bibliotecas no sistema. A - partição raiz pode ser bem pequena (talvez apenas um gigabyte) - nessa configuração, de forma que ela seja adequada para um "thin - client" ou estação de trabalho sem disco (onde /usr é montado a - partir de um servidor remoto). Entretanto, você deveria tomar - cuidado que um initramfs (não coberto por LFS) será necessário para - inicializar um sistema com partição /usr separada. - * /opt – Esse diretório é mais útil para BLFS onde múltiplas - instalações de pacotes grandes como Gnome ou KDE podem ser - instalados sem embutir os arquivos na hierarquia /usr. Se usado, 5 - a 10 gigabytes geralmente é adequado. - * /tmp – Um diretório /tmp separado é raro, mas útil ao se configurar - um "thin client". Essa partição, se usada, geralmente não precisará - exceder alguns gigabytes. - * /usr/src – Essa partição é muito útil para disponibilizar uma - localização para armazenar os arquivos fontes de BLFS e - compartilhá-los entre construções LFS. Ela também pode ser usada - como uma localização para construir pacotes BLFS. Uma partição - razoavelmente grande de 30 a 50 gigabytes permite muito espaço. - - Qualquer partição separada que você queira que seja montada - automaticamente durante a inicialização precisa ser especificada no - /etc/fstab. Detalhes sobre como especificar partições serão discutidos - em [320]Seção 10.2, “Criando o Arquivo /etc/fstabâ€. - -2.5. Criando um Sistema de Arquivos na Partição - - Agora que uma partição em branco foi configurada, o sistema de arquivos - pode ser criado. LFS pode usar qualquer sistema de arquivos reconhecido - pelo kernel Linux, mas os tipos mais comuns são ext3 e ext4. A escolha - do sistema de arquivos pode ser complexa e depende das características - dos arquivos e o tamanho da partição. Por exemplo: - - ext2 - é adequado para partições pequenas que são atualizadas com pouca - frequência tais como /boot. - - ext3 - é uma atualização do ext2 que inclui journal para ajudar a - recuperar o status da partição no caso de desligamento - inadequado. É comumente usada como sistema de arquivos de - propósito geral. - - ext4 - é a versão mais nova da família de sistema de arquivos ext de - tipos de partição. Ela fornece várias capacidades novas - incluindo marcas temporais em nano segundos, criação e uso de - arquivos muito grandes (16 TB), e melhoramentos de velocidade. - - Outros sistemas de arquivos, incluindo FAT32, NTFS, ReiserFS, JFS, e - XFS são úteis para propósitos especializados. Mais informação sobre - esses sistemas de arquivos pode ser encontrada em - [321]http://en.wikipedia.org/wiki/Comparison_of_file_systems. - - LFS assume que o sistema de arquivos raiz (/) é do tipo ext4. Para - criar um sistema de arquivos ext4 na partição LFS, execute o seguinte: -mkfs -v -t ext4 /dev/ - - Substitua com o nome da partição LFS. - - Se você está usando uma partição swap existente, então não há - necessidade de formatá-la. Se uma nova partição swap foi criada, então - ela precisará ser inicializada com este comando: -mkswap /dev/ - - Substitua com o nome da partição swap. - -2.6. Configurando a Variável $LFS - - Ao longo deste livro, a variável de ambiente LFS será usada muitas - vezes. Você deveria se assegurar de que essa variável sempre está - definida no decorrer do processo de construção de LFS. Ela deveria ser - configurada para o nome do diretório onde você estará construindo seu - sistema LFS - nós usaremos /mnt/lfs como um exemplo, porém a escolha do - diretório cabe totalmente a você. Se você está construindo LFS em uma - partição separada, então esse diretório será o ponto de montagem para a - partição. Escolha uma localização de diretório e configure a variável - com o seguinte comando: -export LFS=/mnt/lfs - - Ter essa variável configurada é benéfico naqueles comandos tais como - mkdir -v $LFS/tools os quais podem ser digitados literalmente. O - interpretador de comandos automaticamente substituirá “$LFS†com - “/mnt/lfs†(ou para o que a variável foi configurada) quando ele - processar a linha de comando. - -Cuidado - - Não se esqueça de verificar se LFS está configurada quando você deixar - e entrar novamente no ambiente atual de trabalho (como quando fizer um - su para root ou outra(o) usuária(o)). Verifique se a variável LFS está - configurada apropriadamente com: -echo $LFS - - Tenha certeza de que a saída mostra o caminho para sua localização de - construção do sistema LFS, a qual é /mnt/lfs se o exemplo fornecido foi - seguido. Se a saída estiver incorreta, então use o comando dado - anteriormente nesta página para configurar $LFS para o nome correto de - diretório. - -Nota - - Uma maneira de assegurar que a variável LFS sempre está configurada é - editar o arquivo .bash_profile tanto em seu diretório home pessoal - quanto em /root/.bash_profile e inserir o comando export acima. - Adicionalmente, o interpretador de comandos especificado no arquivo - /etc/passwd para todas(os) as(os) usuárias(os) que precisam da variável - LFS precisa ser bash para assegurar que o arquivo /root/.bash_profile é - incorporado como parte do processo de login. - - Outra consideração é o método que é usado para logar no sistema - anfitrião. Se logando por intermédio de um gerenciador gráfico de tela, - então o .bash_profile da(o) usuária(o) normalmente não é usado quando - um terminal virtual é iniciado. Nesse caso, adicione o comando export - ao arquivo .bashrc para a(o) usuária(o) e root. Adicionalmente, algumas - distribuições tem instruções para não executar as instruções de .bashrc - em uma invocação não interativa de bash. Certifique-se de adicionar o - comando export antes do teste para uso não interativo. - -2.7. Montando a Nova Partição - - Agora que um sistema de arquivos foi criado, a partição precisa se - tornar acessível. Para fazer isso, a partição precisa ser montada em um - ponto de montagem escolhido. Para os propósitos deste livro, assume-se - que o sistema de arquivos está montado sob o diretório especificado - pela variável de ambiente LFS conforme descrito na seção anterior. - - Crie o ponto de montagem e monte o sistema de arquivos de LFS - executando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS - - Substitua com a designação da partição LFS. - - Se estiver usando múltiplas partições para LFS (por exemplo, uma para / - e outra para /home), então monte-as usando: -mkdir -pv $LFS -mount -v -t ext4 /dev/ $LFS -mkdir -v $LFS/home -mount -v -t ext4 /dev/ $LFS/home - - Substitua e com os nomes apropriados das partições. - - Assegure-se de que essa nova partição não está montada com permissões - que são muito restritivas (tais como as opções nosuid ou nodev). - Execute o comando mount sem quaisquer parâmetros para ver quais opções - estão configuradas para a partição LFS montada. Se nosuid e (ou) nodev - estiverem configuradas, então a partição precisará ser remontada. - -Atenção - - As instruções acima assumem que você não estará reiniciando seu - computador no decorrer do processo LFS. Se você desligar seu sistema, - então você precisará remontar a partição LFS a cada vez que você - reiniciar o processo de construção ou modificar seu arquivo /etc/fstab - do sistema anfitrião para remontá-la automaticamente após - inicialização. Por exemplo: -/dev/ /mnt/lfs ext4 defaults 1 1 - - Se você usa partições adicionais opcionais, então certifique-se de - adicioná-las também. - - Se você estiver usando uma partição swap, então assegure-se de que ela - está habilitada usando o comando swapon: -/sbin/swapon -v /dev/ - - Substitua com o nome da partição swap. - - Agora que existe um lugar estabelecido para trabalhar, é tempo de - baixar os pacotes. - -Capítulo 3. Pacotes e Patches - -3.1. Introdução - - Este capítulo inclui uma lista de pacotes que precisam ser baixados - para construir um sistema Linux básico. Os números de versão listados - correspondem a versões dos aplicativos que são conhecidos por - funcionar, e este livro é baseado no uso deles. Nós recomendamos - veementemente contra o uso de versões diferentes, pois os comandos de - construção para uma versão talvez não funcionem com uma versão - diferente, a menos que a versão diferente seja especificada por uma - errata de LFS ou conselho de segurança. As versões mais novas de pacote - talvez também tenham problemas que exigem contornos. Essas correções - serão desenvolvidas e estabilizadas na versão de desenvolvimento do - livro. - - Para alguns pacotes, o tarball de lançamento e o tarball instantâneo de - repositório (Git ou SVN) para este lançamento talvez seja publicado com - nome semelhante de arquivo. Um tarball de lançamento contém arquivos - generalizados (por exemplo, o script configure gerado por autoconf), em - adição aos conteúdos do correspondente instantâneo de repositório. O - livro usa tarballs de lançamento quando possível. Usar um instantâneo - de repositório em vez de um tarball de lançamento especificado pelo - livro causará problemas. - - Localizações de downloads nem sempre podem estar acessíveis. Se uma - localização de download mudou desde que este livro foi publicado, então - o Google ([322]http://www.google.com/) fornece um motor de busca útil - para a maioria dos pacotes. Se essa busca for mal sucedida, então tente - um dos meios alternativos de download em - [323]https://www.linuxfromscratch.org/lfs/mirrors.html#files. - - Pacotes e patches baixados precisarão ser armazenados em algum lugar - que esteja convenientemente disponível durante a construção inteira. Um - diretório de trabalho também é exigido para desempacotar os fontes e - construí-los. $LFS/sources pode ser usado tanto como o lugar para - armazenar os tarballs e patches quanto como diretório de trabalho. - Usando esse diretório, os elementos exigidos estarão localizados na - partição LFS e estarão disponíveis durante todos os estágios do - processo de construção. - - Para criar esse diretório, execute o seguinte comando, como usuária(o) - root, antes de começar a sessão de download: -mkdir -v $LFS/sources - - Torne esse diretório gravável e "sticky". “Sticky†significa que mesmo - se múltiplas(os) usuárias(os) tenham permissão de escrita, só a(o) - dona(o) de um arquivo pode deletar o arquivo dentro de um diretório - sticky. O seguinte comando habilitará os modos escrita e sticky: -chmod -v a+wt $LFS/sources - - Existem muitas maneiras para obter todos os pacotes e patches - necessários para construir LFS: - * Os arquivos podem ser baixados individualmente conforme descrito - nas próximas duas seções. - * Para versões estáveis do livro, um tarball de todos os arquivos - necessários pode ser baixado a partir de um dos espelhos de - arquivos de LFS listados em - [324]https://www.linuxfromscratch.org/mirrors.html#files. - * Os arquivos podem ser baixados usando wget e uma lista wget - conforme descrito abaixo. - - Para baixar todos os pacotes e patches usando [325]lista-wget como uma - entrada para o comando wget, use: -wget --input-file=lista-wget --continue --directory-prefix=$LFS/sources - -Nota - - O arquivo lista-wget mencionado acima recupera todos os pacotes para as - versões sysV e systemd de LFS. Existe um total de cinco pacotes - pequenos adicionais não necessários para o livro atual. O arquivo - md5sums mencionado abaixo é específico para o livro atual. - - Adicionalmente, começando com LFS-7.0, existe um arquivo separado, - [326]md5sums, que pode ser usado para verificar se todos os pacotes - corretos estão disponíveis antes de prosseguir. Coloque esse arquivo em - $LFS/sources e execute: -pushd $LFS/sources - md5sum -c md5sums -popd - - Essa verificação pode ser usada após recuperar os arquivos necessários - com qualquer dos métodos listados acima. - -3.2. Todos os Pacotes - - Baixe ou de outra forma obtenha os seguintes pacotes: - - Acl (2.3.1) - 348 KB: - Home page: [327]https://savannah.nongnu.org/projects/acl - - Download: - [328]https://download.savannah.gnu.org/releases/acl/acl-2.3.1.ta - r.xz - - MD5 sum: 95ce715fe09acca7c12d3306d0f076b2 - - Attr (2.5.1) - 456 KB: - Home page: [329]https://savannah.nongnu.org/projects/attr - - Download: - [330]https://download.savannah.gnu.org/releases/attr/attr-2.5.1. - tar.gz - - MD5 sum: ac1c5a7a084f0f83b8cace34211f64d8 - - Autoconf (2.71) - 1,263 KB: - Home page: [331]https://www.gnu.org/software/autoconf/ - - Download: - [332]https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - - MD5 sum: 12cfa1687ffa2606337efe1a64416106 - - Automake (1.16.5) - 1,565 KB: - Home page: [333]https://www.gnu.org/software/automake/ - - Download: - [334]https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - - MD5 sum: 4017e96f89fca45ca946f1c5db6be714 - - SHA256 sum: - 80facc09885a57e6d49d06972c0ae1089c5fa8f4d4c7cfe5baea58e5085f136d - - Bash (5.1.16) - 10,277 KB: - Home page: [335]https://www.gnu.org/software/bash/ - - Download: [336]https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - - MD5 sum: c17b20a09fc38d67fb303aeb6c130b4e - - Bc (5.2.2) - 428 KB: - Home page: [337]https://git.yzena.com/gavin/bc - - Download: - [338]https://github.com/gavinhoward/bc/releases/download/5.2.2/b - c-5.2.2.tar.xz - - MD5 sum: 632344cdb052af0e06087bd3b0034126 - - Binutils (2.38) - 23,098 KB: - Home page: [339]https://www.gnu.org/software/binutils/ - - Download: - [340]https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - - MD5 sum: 6e39cad1bb414add02b5b1169c18fdc5 - - Bison (3.8.2) - 2,752 KB: - Home page: [341]https://www.gnu.org/software/bison/ - - Download: [342]https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - - MD5 sum: c28f119f405a2304ff0a7ccdcc629713 - - Bzip2 (1.0.8) - 792 KB: - Download: - [343]https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - - MD5 sum: 67e051268d0c475ea773822f7500d0e5 - - Check (0.15.2) - 760 KB: - Home page: [344]https://libcheck.github.io/check - - Download: - [345]https://github.com/libcheck/check/releases/download/0.15.2/ - check-0.15.2.tar.gz - - MD5 sum: 50fcafcecde5a380415b12e9c574e0b2 - - Coreutils (9.0) - 5,482 KB: - Home page: [346]https://www.gnu.org/software/coreutils/ - - Download: - [347]https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - - MD5 sum: 0d79ae8a6124546e3b94171375e5e5d0 - - D-Bus (1.12.20) - 2,048 KB: - Home page: [348]https://www.freedesktop.org/wiki/Software/dbus - - Download: - [349]https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar - .gz - - MD5 sum: dfe8a71f412e0b53be26ed4fbfdc91c4 - - DejaGNU (1.6.3) - 608 KB: - Home page: [350]https://www.gnu.org/software/dejagnu/ - - Download: - [351]https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - - MD5 sum: 68c5208c58236eba447d7d6d1326b821 - - Diffutils (3.8) - 1,548 KB: - Home page: [352]https://www.gnu.org/software/diffutils/ - - Download: - [353]https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - - MD5 sum: 6a6b0fdc72acfe3f2829aab477876fbc - - E2fsprogs (1.46.5) - 9,307 KB: - Home page: [354]http://e2fsprogs.sourceforge.net/ - - Download: - [355]https://downloads.sourceforge.net/project/e2fsprogs/e2fspro - gs/v1.46.5/e2fsprogs-1.46.5.tar.gz - - MD5 sum: 3da91854c960ad8a819b48b2a404eb43 - - Elfutils (0.186) - 9,015 KB: - Home page: [356]https://sourceware.org/elfutils/ - - Download: - [357]https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.ta - r.bz2 - - MD5 sum: 2c095e31e35d6be7b3718477b6d52702 - - Expat (2.4.6) - 444 KB: - Home page: [358]https://libexpat.github.io/ - - Download: - [359]https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.x - z - - MD5 sum: 22a30c888752fdda9f8dd1b7281c54b0 - -Nota - - A(O) Desenvolvedora(or) talvez remova tarballs dos lançamentos - específicos de Expat quando esses lançamentos contenham uma - vulnerabilidade de segurança. Você deveria se referir a - [360]Avisos de Segurança de LFS para saber qual versão (com a - vulnerabilidade corrigida) deveria ser usada. Você talvez baixe - a versão vulnerável a partir de um espelho, porém isso não é - recomendado. - - Expect (5.45.4) - 618 KB: - Home page: [361]https://core.tcl.tk/expect/ - - Download: - [362]https://prdownloads.sourceforge.net/expect/expect5.45.4.tar - .gz - - MD5 sum: 00fce8de158422f5ccd2666512329bd2 - - File (5.41) - 1040 KB: - Home page: [363]https://www.darwinsys.com/file/ - - Download: [364]https://astron.com/pub/file/file-5.41.tar.gz - - MD5 sum: 18233bb0a0089dfdc7dfbc93b96f231b - - Findutils (4.9.0) - 1,999 KB: - Home page: [365]https://www.gnu.org/software/findutils/ - - Download: - [366]https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - - MD5 sum: 4a4a547e888a944b2f3af31d789a1137 - - Flex (2.6.4) - 1,386 KB: - Home page: [367]https://github.com/westes/flex - - Download: - [368]https://github.com/westes/flex/releases/download/v2.6.4/fle - x-2.6.4.tar.gz - - MD5 sum: 2882e3179748cc9f9c23ec593d6adc8d - - Gawk (5.1.1) - 3,075 KB: - Home page: [369]https://www.gnu.org/software/gawk/ - - Download: [370]https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - - MD5 sum: 83650aa943ff2fd519b2abedf8506ace - - GCC (11.2.0) - 78,996 KB: - Home page: [371]https://gcc.gnu.org/ - - Download: - [372]https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - - MD5 sum: 31c86f2ced76acac66992eeedce2fce2 - - SHA256 sum: - d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b - - GDBM (1.23) - 1,092 KB: - Home page: [373]https://www.gnu.org/software/gdbm/ - - Download: [374]https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - - MD5 sum: 8551961e36bf8c70b7500d255d3658ec - - Gettext (0.21) - 9,487 KB: - Home page: [375]https://www.gnu.org/software/gettext/ - - Download: - [376]https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - - MD5 sum: 40996bbaf7d1356d3c22e33a8b255b31 - - Glibc (2.35) - 17,741 KB: - Home page: [377]https://www.gnu.org/software/libc/ - - Download: [378]https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - - MD5 sum: dd571c67d85d89d7f60b854a4e207423 - - GMP (6.2.1) - 1,980 KB: - Home page: [379]https://www.gnu.org/software/gmp/ - - Download: [380]https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - - MD5 sum: 0b82665c4a92fd2ade7440c13fcaa42b - - Gperf (3.1) - 1,188 KB: - Home page: [381]https://www.gnu.org/software/gperf/ - - Download: [382]https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - - MD5 sum: 9e251c0a618ad0824b51117d5d9db87e - - Grep (3.7) - 1,603 KB: - Home page: [383]https://www.gnu.org/software/grep/ - - Download: [384]https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - - MD5 sum: 7c9cca97fa18670a21e72638c3e1dabf - - Groff (1.22.4) - 4,044 KB: - Home page: [385]https://www.gnu.org/software/groff/ - - Download: [386]https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - - MD5 sum: 08fb04335e2f5e73f23ea4c3adbf0c5f - - GRUB (2.06) - 6,428 KB: - Home page: [387]https://www.gnu.org/software/grub/ - - Download: [388]https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - - MD5 sum: cf0fd928b1e5479c8108ee52cb114363 - - Gzip (1.11) - 786 KB: - Home page: [389]https://www.gnu.org/software/gzip/ - - Download: [390]https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - - MD5 sum: d1e93996dba00cab0caa7903cd01d454 - - Iana-Etc (20220207) - 580 KB: - Home page: [391]https://www.iana.org/protocols - - Download: - [392]https://github.com/Mic92/iana-etc/releases/download/2022020 - 7/iana-etc-20220207.tar.gz - - MD5 sum: 81d865ce7fe4240d5abed48c3ca5fa9f - - Inetutils (2.2) - 1,494 KB: - Home page: [393]https://www.gnu.org/software/inetutils/ - - Download: - [394]https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - - MD5 sum: de8c1b49cbde2b30e481c61c65357ad4 - - SHA256 sum: - 01b9a4bc73a47e63f6e8a07b76122d9ad2a2e46ebf14870e9c91d660b5647a22 - - Intltool (0.51.0) - 159 KB: - Home page: [395]https://freedesktop.org/wiki/Software/intltool - - Download: - [396]https://launchpad.net/intltool/trunk/0.51.0/+download/intlt - ool-0.51.0.tar.gz - - MD5 sum: 12e517cac2b57a0121cda351570f1e63 - - IPRoute2 (5.16.0) - 843 KB: - Home page: - [397]https://www.kernel.org/pub/linux/utils/net/iproute2/ - - Download: - [398]https://www.kernel.org/pub/linux/utils/net/iproute2/iproute - 2-5.16.0.tar.xz - - MD5 sum: 994c1bad2a24aa9d70e89670c5b5dfcb - - Jinja2 (3.0.3) - 263 KB: - Home page: [399]https://jinja.palletsprojects.com/en/3.0.x/ - - Download: - [400]https://files.pythonhosted.org/packages/source/J/Jinja2/Jin - ja2-3.0.3.tar.gz - - MD5 sum: b76ae2f0647abebc81e7c03f5fb7b00f - - Kbd (2.4.0) - 1,095 KB: - Home page: [401]https://kbd-project.org/ - - Download: - [402]https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - - MD5 sum: 3cac5be0096fcf7b32dcbd3c53831380 - - Kmod (29) - 548 KB: - Download: - [403]https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29. - tar.xz - - MD5 sum: e81e63acd80697d001c8d85c1acb38a0 - - Less (590) - 348 KB: - Home page: [404]https://www.greenwoodsoftware.com/less/ - - Download: - [405]https://www.greenwoodsoftware.com/less/less-590.tar.gz - - MD5 sum: f029087448357812fba450091a1172ab - - Libcap (2.63) - 171 KB: - Home page: [406]https://sites.google.com/site/fullycapable/ - - Download: - [407]https://www.kernel.org/pub/linux/libs/security/linux-privs/ - libcap2/libcap-2.63.tar.xz - - MD5 sum: 18410cec436f827e698ee9ea16ada9b7 - - Libffi (3.4.2) - 1,320 KB: - Home page: [408]https://sourceware.org/libffi/ - - Download: - [409]https://github.com/libffi/libffi/releases/download/v3.4.2/l - ibffi-3.4.2.tar.gz - - MD5 sum: 294b921e6cf9ab0fbaea4b639f8fdbe8 - - Libpipeline (1.5.5) - 934 KB: - Home page: [410]http://libpipeline.nongnu.org/ - - Download: - [411]https://download.savannah.gnu.org/releases/libpipeline/libp - ipeline-1.5.5.tar.gz - - MD5 sum: 3e725c76bfea1985e87e851ee50c2e29 - - Libtool (2.4.6) - 951 KB: - Home page: [412]https://www.gnu.org/software/libtool/ - - Download: - [413]https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - - MD5 sum: 1bfb9b923f2c1339b4d2ce1807064aa5 - - Linux (5.16.9) - 124,577 KB: - Home page: [414]https://www.kernel.org/ - - Download: - [415]https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.t - ar.xz - - MD5 sum: 4d6a704bf3e249ef6189b6f17457084b - -Nota - - O kernel Linux é atualizado com relativa frequência, muitas - vezes devido às descobertas de vulnerabilidades de segurança. A - versão estável de kernel mais atual disponível pode ser usada, a - menos que a página de errata diga o contrário. - - Para usuárias(os) com largura de banda de velocidade limitada ou - cara que desejem atualizar o kernel Linux, uma versão básica do - pacote e patches pode ser baixada separadamente. Isso talvez - economize algum tempo ou custo para uma posterior atualização de - nível de patch contendo um lançamento menor. - - M4 (1.4.19) - 1,617 KB: - Home page: [416]https://www.gnu.org/software/m4/ - - Download: [417]https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - - MD5 sum: 0d90823e1426f1da2fd872df0311298d - - Make (4.3) - 2,263 KB: - Home page: [418]https://www.gnu.org/software/make/ - - Download: [419]https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - - MD5 sum: fc7a67ea86ace13195b0bce683fd4469 - - Man-DB (2.10.1) - 1,847 KB: - Home page: [420]https://www.nongnu.org/man-db/ - - Download: - [421]https://download.savannah.gnu.org/releases/man-db/man-db-2. - 10.1.tar.xz - - MD5 sum: b03b76a9a00d0d6b2299b823fba4f579 - - Man-pages (5.13) - 1,752 KB: - Home page: [422]https://www.kernel.org/doc/man-pages/ - - Download: - [423]https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5 - .13.tar.xz - - MD5 sum: 3ac24e8c6fae26b801cb87ceb63c0a30 - - MarkupSafe (2.0.1) - 20 KB: - Home page: [424]https://markupsafe.palletsprojects.com/en/2.0.x/ - - Download: - [425]https://files.pythonhosted.org/packages/source/M/MarkupSafe - /MarkupSafe-2.0.1.tar.gz - - MD5 sum: 892e0fefa3c488387e5cc0cad2daa523 - - Meson (0.61.1) - 1,963 KB: - Home page: [426]https://mesonbuild.com - - Download: - [427]https://github.com/mesonbuild/meson/releases/download/0.61. - 1/meson-0.61.1.tar.gz - - MD5 sum: 8ed66d5537275df3defffb66d1fb897f - - MPC (1.2.1) - 820 KB: - Home page: [428]http://www.multiprecision.org/ - - Download: [429]https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - - MD5 sum: 9f16c976c25bb0f76b50be749cd7a3a8 - - MPFR (4.1.0) - 1,490 KB: - Home page: [430]https://www.mpfr.org/ - - Download: [431]https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - - MD5 sum: bdd3d5efba9c17da8d83a35ec552baef - - Ncurses (6.3) - 3,500 KB: - Home page: [432]https://www.gnu.org/software/ncurses/ - - Download: - [433]https://invisible-mirror.net/archives/ncurses/ncurses-6.3.t - ar.gz - - MD5 sum: a2736befde5fee7d2b7eb45eb281cdbe - - Ninja (1.10.2) - 209 KB: - Home page: [434]https://ninja-build.org/ - - Download: - [435]https://github.com/ninja-build/ninja/archive/v1.10.2/ninja- - 1.10.2.tar.gz - - MD5 sum: 639f75bc2e3b19ab893eaf2c810d4eb4 - - OpenSSL (3.0.1) - 14,660 KB: - Home page: [436]https://www.openssl.org/ - - Download: - [437]https://www.openssl.org/source/openssl-3.0.1.tar.gz - - MD5 sum: 7d07e849d77d276891edd579a8832bb3 - - Patch (2.7.6) - 766 KB: - Home page: [438]https://savannah.gnu.org/projects/patch/ - - Download: [439]https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - - MD5 sum: 78ad9937e4caadcba1526ef1853730d5 - - Perl (5.34.0) - 12,580 KB: - Home page: [440]https://www.perl.org/ - - Download: [441]https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - - MD5 sum: df7ecb0653440b26dc951ad9dbfab517 - - Pkg-config (0.29.2) - 1,970 KB: - Home page: - [442]https://www.freedesktop.org/wiki/Software/pkg-config - - Download: - [443]https://pkg-config.freedesktop.org/releases/pkg-config-0.29 - .2.tar.gz - - MD5 sum: f6e931e319531b736fadc017f470e68a - - Procps (3.3.17) - 985 KB: - Home page: [444]https://sourceforge.net/projects/procps-ng - - Download: - [445]https://sourceforge.net/projects/procps-ng/files/Production - /procps-ng-3.3.17.tar.xz - - MD5 sum: d60613e88c2f442ebd462b5a75313d56 - - Psmisc (23.4) - 362 KB: - Home page: [446]https://gitlab.com/psmisc/psmisc - - Download: - [447]https://sourceforge.net/projects/psmisc/files/psmisc/psmisc - -23.4.tar.xz - - MD5 sum: 8114cd4489b95308efe2509c3a406bbf - - Python (3.10.2) - 18,341 KB: - Home page: [448]https://www.python.org/ - - Download: - [449]https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar. - xz - - MD5 sum: 14e8c22458ed7779a1957b26cde01db9 - - Documentação de Python (3.10.2) - 7,102 KB: - Download: - [450]https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2- - docs-html.tar.bz2 - - MD5 sum: ffa52f0017baf72df9d32dec785fd6ab - - Readline (8.1.2) - 2,923 KB: - Home page: - [451]https://tiswww.case.edu/php/chet/readline/rltop.html - - Download: - [452]https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - - MD5 sum: 12819fa739a78a6172400f399ab34f81 - - Sed (4.8) - 1,317 KB: - Home page: [453]https://www.gnu.org/software/sed/ - - Download: [454]https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - - MD5 sum: 6d906edfdb3202304059233f51f9a71d - - Shadow (4.11.1) - 1,618 KB: - Home page: [455]https://shadow-maint.github.io/shadow/ - - Download: - [456]https://github.com/shadow-maint/shadow/releases/download/v4 - .11.1/shadow-4.11.1.tar.xz - - MD5 sum: 5a95ec069aa91508167d02fecafaa912 - - Systemd (250) - 10,856 KB: - Home page: - [457]https://www.freedesktop.org/wiki/Software/systemd/ - - Download: - [458]https://github.com/systemd/systemd/archive/v250/systemd-250 - .tar.gz - - MD5 sum: 8929beb037c587ada4ed201f19756fe2 - - Systemd Man Pages(250) - 596 KB: - Home page: - [459]https://www.freedesktop.org/wiki/Software/systemd/ - - Download: - [460]https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-2 - 50.tar.xz - - MD5 sum: af3aca39abe4e990cb2a9ac63dcdf506 - -Nota - - A equipe de Linux From Scratch gera seu próprio tarball das - páginas de manual usando o fonte systemd. Isso é feito com a - finalidade de evitar dependências desnecessárias. - - Tar (1.34) - 2,174 KB: - Home page: [461]https://www.gnu.org/software/tar/ - - Download: [462]https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - - MD5 sum: 9a08d29a9ac4727130b5708347c0f5cf - - Tcl (8.6.12) - 10,112 KB: - Home page: [463]http://tcl.sourceforge.net/ - - Download: - [464]https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - - MD5 sum: 87ea890821d2221f2ab5157bc5eb885f - - Documentação de Tcl (8.6.12) - 1,176 KB: - Download: - [465]https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - - MD5 sum: a0d1a5b60bbb68f2f0bd3066a19c527a - - Texinfo (6.8) - 4,848 KB: - Home page: [466]https://www.gnu.org/software/texinfo/ - - Download: - [467]https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - - MD5 sum: a91b404e30561a5df803e6eb3a53be71 - - Dados de Zona de Tempo (2021e) - 413 KB: - Home page: [468]https://www.iana.org/time-zones - - Download: - [469]https://www.iana.org/time-zones/repository/releases/tzdata2 - 021e.tar.gz - - MD5 sum: 4fdfad906ebc85fef30221c10964cce9 - - Util-linux (2.37.4) - 5,971 KB: - Home page: - [470]https://git.kernel.org/pub/scm/utils/util-linux/util-linux. - git/ - - Download: - [471]https://www.kernel.org/pub/linux/utils/util-linux/v2.37/uti - l-linux-2.37.4.tar.xz - - MD5 sum: 755919e658c349cad9e1c7c771742d48 - - Vim (8.2.4383) - 15,622 KB: - Home page: [472]https://www.vim.org - - Download: - [473]https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - - MD5 sum: 3168ff48e382a1201bd0cbd0209bd3e0 - -Nota - - A versão de vim muda diariamente. Para conseguir a versão mais - atual, vá para [474]https://github.com/vim/vim/tags. - - XML::Parser (2.46) - 249 KB: - Home page: [475]https://github.com/chorny/XML-Parser - - Download: - [476]https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser- - 2.46.tar.gz - - MD5 sum: 80bb18a8e6240fcf7ec2f7b57601c170 - - Xz Utils (5.2.5) - 1,122 KB: - Home page: [477]https://tukaani.org/xz - - Download: [478]https://tukaani.org/xz/xz-5.2.5.tar.xz - - MD5 sum: aa1621ec7013a19abab52a8aff04fe5b - - Zlib (1.2.11) - 457 KB: - Home page: [479]https://www.zlib.net/ - - Download: [480]https://zlib.net/zlib-1.2.11.tar.xz - - MD5 sum: 85adef240c5f370b308da8c938951a68 - - Zstd (1.5.2) - 1,892 KB: - Home page: [481]https://facebook.github.io/zstd/ - - Download: - [482]https://github.com/facebook/zstd/releases/download/v1.5.2/z - std-1.5.2.tar.gz - - MD5 sum: 072b10f71f5820c24761a65f31f43e73 - - Tamanho total desses pacotes: cerca de 458 MB - -3.3. Patches Necessários - - Em adição aos pacotes, vários patches também são exigidos. Esses - patches corrigem quaisquer erros nos pacotes que deveriam ser - consertados pela(o) Mantenedora(or). Os patches também fazem pequenas - modificações para tornar os pacotes mais fáceis de se trabalhar. Os - seguintes patches serão necessários para construir um sistema LFS: - - Binutils LTO Fix Patch - 3.5 KB: - Download: - [483]https://www.linuxfromscratch.org/patches/lfs/11.1/binutils- - 2.38-lto_fix-1.patch - - MD5 sum: 3df11b6123d5bbdb0fc83862a003827a - - Patch de Documentação de Bzip2 - 1.6 KB: - Download: - [484]https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0 - .8-install_docs-1.patch - - MD5 sum: 6a5ac7e89b791aae556de0f745916f7f - - Patch de Correções de Internacionalização de Coreutils - 166 KB: - Download: - [485]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-i18n-1.patch - - MD5 sum: 1eeba2736dfea013509f9975365e4e32 - - Patch de Correção de Chmod de Coreutils - 3.8 KB: - Download: - [486]https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils - -9.0-chmod_fix-1.patch - - MD5 sum: 4709df88e68279e6ef357aa819ba5b1a - - Glibc FHS Patch - 2.8 KB: - Download: - [487]https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.3 - 5-fhs-1.patch - - MD5 sum: 9a5997c3452909b1769918c759eff8a2 - - Patch de Correção de Backspace/Delete de Kbd - 12 KB: - Download: - [488]https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0 - -backspace-1.patch - - MD5 sum: f75cca16a38da6caa7d52151f7136895 - - Patch de Correção de Desenvolvedora(or) de Perl - 1.6 KB: - Download: - [489]https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34 - .0-upstream_fixes-1.patch - - MD5 sum: fb42558b59ed95ee00eb9f1c1c9b8056 - - Patch de Correção de Desenvolvedora(or) de Systemd - 20 KB: - Download: - [490]https://www.linuxfromscratch.org/patches/lfs/11.1/systemd-2 - 50-upstream_fixes-1.patch - - MD5 sum: 71eac6abdad5fba2039dcd011a9ae5b3 - - Tamanho total desses patches: cerca de 211.3 KB - - Em adição aos patches exigidos acima, existe um número de patches - opcionais criados pela comunidade LFS. Esses patches opcionais - solucionam problemas menores ou habilitam funcionalidade que não está - habilitada por padrão. Sinta-se à vontade para examinar o banco de - dados de patches localizado em - [491]https://www.linuxfromscratch.org/patches/downloads/ e adquirir - quaisquer patches adicionais para atender às necessidades do seu - sistema. - -Capítulo 4. Preparações Finais - -4.1. Introdução - - Neste capítulo, nós realizaremos umas poucas tarefas adicionais para - preparar para construção o sistema temporário. Nós criaremos um - conjunto de diretórios em $LFS para a instalação das ferramentas - temporárias; adicionaremos uma(m) usuária(o) desprivilegiada(o) para - reduzir risco; e criaremos um ambiente apropriado de construção para - aquela(e) usuária(o). Nós também explicaremos a unidade de tempo que - usamos para medir quanto tempo pacotes de LFS levam para construir, ou - “SBUsâ€, e daremos alguma informação acerca de suítes de teste de - pacote. - -4.2. Criando um layout limitado de diretório em sistema de arquivos de LFS - - A primeira tarefa realizada na partição LFS é a de criar uma hierarquia - limitada de diretório de forma que aplicativos compilados em - [492]Capítulo 6 (bem como glibc e libstdc++ em [493]Capítulo 5) possam - ser instalados no local final deles. Isso é necessário de maneira que - aqueles aplicativos temporários sejam sobrescritos quando - reconstruí-los em [494]Capítulo 8. - - Crie o layout exigido de diretório executando o seguinte como root: -mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} - -for i in bin lib sbin; do - ln -sv usr/$i $LFS/$i -done - -case $(uname -m) in - x86_64) mkdir -pv $LFS/lib64 ;; -esac - - Aplicativos em [495]Capítulo 6 serão compilados com um compilador - cruzado (mais detalhes na seção [496]Notas Técnicas do Conjunto de - Ferramentas). Com a finalidade de separar esse compilador cruzado de - outros aplicativos, ele será instalado em um diretório especial. Crie - esse diretório com: -mkdir -pv $LFS/tools - -4.3. Adicionando a(o) Usuária(o) LFS - - Enquanto logada(o) como usuária(o) root, cometer um simples erro pode - danificar ou destruir um sistema. Portanto, os pacotes nos próximos - dois capítulos são construídos como uma(m) usuária(o) sem privilégios. - Você poderia usar seu próprio nome de usuária(o), mas para facilitar a - configuração de um ambiente de trabalho limpo, crie uma(m) nova(o) - usuária(o) chamada(o) lfs como um membro de um novo grupo (também - chamado lfs) e use essa(e) usuária(o) durante o processo de instalação. - Como root, emita os seguintes comandos para adicionar a(o) nova(o) - usuária(o): -groupadd lfs -useradd -s /bin/bash -g lfs -m -k /dev/null lfs - - O significado das opções de linha de comando: - - -s /bin/bash - Isso torna bash o interpretador de comandos padrão para a(o) - usuária(o) lfs. - - -g lfs - Essa opção adiciona usuária(o) lfs ao grupo lfs. - - -m - Isso cria um diretório home para lfs. - - -k /dev/null - Esse parâmetro previne possível cópia de arquivos a partir de um - diretório esqueleto (padrão é /etc/skel) mudando a localização - de entrada para o dispositivo especial null. - - lfs - Esse é o nome atual para a(o) usuária(o) criada(o). - - Para se logar como lfs (em oposição a mudar para a(o) usuária(o) lfs - quando logada(o) como root, que não exige que a(o) usuária(o) lfs tenha - uma senha), dê a lfs uma senha: -passwd lfs - - Conceda a lfs acesso total a todos os diretórios sob $LFS tornando lfs - a(o) dona(o) do diretório: -chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -v lfs $LFS/lib64 ;; -esac - - Se um diretório de trabalho separado foi criado como sugerido, então dê - à(ao) usuária(o) lfs a propriedade desse diretório: -chown -v lfs $LFS/sources - -Nota - - Em alguns sistemas anfitrião, o seguinte comando não completa - adequadamente e suspende o login para a(o) usuária(o) lfs para o - segundo plano. Se o prompt "lfs:~$" não aparecer imediatamente, então - emitir o comando fg corrigirá o problema. - - Em seguida, logue-se como usuária(o) lfs. Isso pode ser feito via um - console virtual; por intermédio de um gerenciador de tela; ou com o - seguinte comando de substituir/comutar usuária(o): -su - lfs - - O “-†instrui su a iniciar um shell de login em vez de um shell de - não-login. A diferença entre esses dois tipos de shells pode ser - encontrada em detalhes em bash(1) e info bash. - -4.4. Configurando o Ambiente - - Configure um bom ambiente de trabalho criando dois novos arquivos de - inicialização para o shell bash. Enquanto logada(o) como usuária(o) - lfs, emita o seguinte comando para criar um novo .bash_profile: -cat > ~/.bash_profile << "EOF" -exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash -EOF - - Enquanto logada(o) como usuária(o) lfs, o shell inicial é geralmente um - shell de login que lê o /etc/profile do anfitrião (provavelmente - contendo algumas configurações e variáveis de ambiente) e então - .bash_profile. O comando exec env -i.../bin/bash no arquivo - .bash_profile substitui o shell em execução por um novo com um ambiente - completamente vazio, exceto pelas variáveis HOME, TERM, e PS1. Isso - garante que nenhuma variável de ambiente indesejada e potencialmente - danosa oriunda do sistema anfitrião vaze para o ambiente de construção. - A técnica usada aqui alcança o objetivo de assegurar um ambiente limpo. - - A nova instância do shell é um shell de não-login, que não lê, e - executa, o conteúdo dos arquivos /etc/profile ou .bash_profile, porém, - ao invés, lê, e executa, o arquivo .bashrc. Crie o arquivo .bashrc - agora: -cat > ~/.bashrc << "EOF" -set +h -umask 022 -LFS=/mnt/lfs -LC_ALL=POSIX -LFS_TGT=$(uname -m)-lfs-linux-gnu -PATH=/usr/bin -if [ ! -L /bin ]; then PATH=/bin:$PATH; fi -PATH=$LFS/tools/bin:$PATH -CONFIG_SITE=$LFS/usr/share/config.site -export LFS LC_ALL LFS_TGT PATH CONFIG_SITE -EOF - - O significado das configurações em .bashrc - - set +h - O comando set +h desliga a função hash do bash. “Hashing†- geralmente é uma característica útil—bash usa uma tabela hash - para lembrar o caminho completo de arquivos executáveis para - evitar procurar o PATH várias vezes para encontrar o mesmo - executável. Entretanto, as novas ferramentas deveriam ser usadas - tão logo sejam instaladas. Desativando a função hash, o shell - sempre vai procurar no PATH quando um aplicativo estiver para - ser executado. Dessa forma, o shell encontrará as ferramentas - recém compiladas em $LFS/tools/bin tão logo elas estejam - disponíveis sem lembrar da versão anterior do mesmo aplicativo - fornecida pela distribuição anfitriã, em /usr/bin ou /bin. - - umask 022 - Configurar a máscara de criação de arquivos da(o) usuária(o) - (umask) para 022 garante que recém criados arquivos e diretórios - são graváveis somente por suas(eus) donas(os), mas são legíveis - e executáveis por qualquer pessoa (assumindo que os modos padrão - são usados pelas chamadas de sistema open(2), novos arquivos - terminarão com modo de permissão 644 e diretórios com modo 755). - - LFS=/mnt/lfs - A variável LFS deveria ser configurada para o ponto de montagem - escolhido. - - LC_ALL=POSIX - A variável LC_ALL controla a localização de certos aplicativos, - fazendo suas mensagens seguirem as convenções de um país - especificado. Configurar LC_ALL para “POSIX†ou “C†(as duas são - equivalentes) garante que tudo vai funcionar como esperado - dentro do ambiente chroot. - - LFS_TGT=(uname -m)-lfs-linux-gnu - A variável LFS_TGT configura uma não padrão, porém compatível - descrição de máquina para uso quando da construção do nosso - compilador cruzado e vinculador e quando da compilação cruzada - do nosso conjunto de ferramentas temporárias. Mais informação - está contida em [497]Notas Técnicas do Conjunto de Ferramentas. - - PATH=/usr/bin - Muitas distribuições modernas de Linux mesclaram /bin e - /usr/bin. Quando esse for o caso, a variável PATH padrão apenas - precisa ser configurada para /usr/bin/ para o ambiente de - [498]Capítulo 6. Quando esse não for o caso, a seguinte linha - adiciona /bin ao caminho. - - if [ ! -L /bin ]; then PATH=/bin:$PATH; fi - Se /bin não for um link simbólico, então ele tem de ser - adicionado à variável PATH. - - PATH=$LFS/tools/bin:$PATH - Ao se colocar $LFS/tools/bin a frente do PATH padrão, o - compilador cruzado instalado no início de [499]Capítulo 5 é - imediatamente pego pelo shell após sua instalação. Isso, - combinado com a desativação do hashing, limita o risco de que o - compilador originário do anfitrião seja usado em vez do - compilador cruzado. - - CONFIG_SITE=$LFS/usr/share/config.site - Em [500]Capítulo 5 e [501]Capítulo 6, se essa variável não - estiver configurada, então os scripts configure talvez tentem - carregar itens de configuração específicos para algumas - distribuições a partir de /usr/share/config.site no sistema - anfitrião. Substitua-o para prevenir uma potencial contaminação - oriunda do anfitrião. - - export ... - Ao tempo que os comandos acima configuraram algumas variáveis, - com a finalidade de torná-las visíveis dentro de quaisquer - sub-shells, nós as exportamos. - -Importante - - Muitas distribuições comerciais adicionam uma instância não documentada - de /etc/bash.bashrc à inicialização de bash. Esse arquivo tem o - potencial de modificar o ambiente da(o) usuária(o) lfs de formas que - podem afetar a construção de pacotes LFS críticos. Para assegurar que o - ambiente da(o) usuária(o) lfs esteja limpo, verifique a presença de - /etc/bash.bashrc e, se presente, mova-o para fora do caminho. Como a(o) - usuária(o) root, execute: -[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE - - Após o uso da(o) usuária(o) lfs for finalizado no início de - [502]Capítulo 7, você pode restaurar /etc/bash.bashrc (se desejado). - - Perceba que o pacote Bash de LFS que nós construiremos em - [503]Seção 8.34, “Bash-5.1.16†não é configurado para carregar ou - executar /etc/bash.bashrc, de modo que esse arquivo é inútil em um - sistema LFS completo. - - Finalmente, para ter o ambiente totalmente preparado para construção - das ferramentas temporárias, carregue o recém criado perfil de - usuária(o): -source ~/.bash_profile - -4.5. Sobre UPCs - - Muitas pessoas gostariam de saber de antemão aproximadamente quanto - tempo leva para compilar e instalar cada pacote. Devido a Linux From - Scratch poder ser construído em muitos sistemas, é impossível fornecer - estimativas de tempo precisas. O maior pacote (Glibc) levará - aproximadamente vinte (20) minutos em sistemas mais rápidos, mas - poderia levar até três (03) dias em sistemas mais lentos! Em vez de - fornecer tempos atuais, a medida Unidade Padrão de Construção (UPC) - será usada. - - A medida UPC funciona como segue. O primeiro pacote a ser compilado - neste livro é binutils em [504]Capítulo 5. O tempo necessário para - compilar esse pacote é que será referenciado como a Unidade Padrão de - Construção ou UPC. Todos os outros tempos de compilação serão expressos - relativamente a esse tempo. - - Por exemplo, considere um pacote cujo tempo de compilação é quatro e - meio (4,5) UPCs. Isso significa que, se um sistema precisou de dez (10) - minutos para compilar e instalar a primeira passagem de binutils, então - será necessário aproximadamente quarenta e cinco (45) minutos para - construir esse pacote de exemplo. Felizmente, a maioria dos tempos de - construção é menor que o tempo para binutils. - - Em geral, UPCs não são totalmente precisas, pois dependem de muitos - fatores, incluindo a versão de GCC do sistema anfitrião. Elas são - fornecidas aqui para dar uma estimativa de quanto tempo pode levar para - instalar um pacote, mas os números podem variar tanto quanto dúzias de - minutos em alguns casos. - -Nota - - Para muitos sistemas modernos com múltiplos processadores (ou cores) o - tempo de compilação para um pacote pode ser reduzido realizando um - “parallel makeâ€, seja configurando uma variável de ambiente; ou dizendo - para o aplicativo make quantos processadores estão disponíveis. Por - exemplo, uma CPU Intel i5-6500 pode suportar quatro processos - simultâneos com: -export MAKEFLAGS='-j4' - - ou somente construindo com: -make -j4 - - Quando múltiplos processadores são usados dessa maneira, as unidades - UPC no livro irão variar ainda mais do que normalmente aconteceria. Em - alguns casos, o passo make simplesmente falhará. Analisar a saída dos - processos de construção também será mais difícil, pois as linhas de - diferentes processos estarão intercaladas. Se você tiver um problema - com um passo de construção, então retorne para uma construção de - processador único para analisar adequadamente as mensagens de erro. - -4.6. Sobre as Suítes de Teste - - A maioria dos pacotes fornece uma suíte de teste. Rodar a suíte de - teste para um pacote recém construído é uma boa ideia, pois pode - fornecer uma “verificação de sanidade†indicando que tudo compilou - corretamente. Uma suíte de teste que executa seu conjunto de - verificações geralmente prova que o pacote está funcionando como a(o) - desenvolvedora(r) pretendia. Entretanto isso não garante que o pacote - está totalmente livre de defeitos. - - Algumas suítes de teste são mais importantes que outras. Por exemplo, - as suítes de teste para o conjunto de ferramentas central—GCC, - binutils, e glibc—são de máxima importância devido a seu papel central - em um sistema que funcione adequadamente. As suítes de teste para GCC e - glibc podem levar bastante tempo para completarem, especialmente em uma - máquina lenta, mas são fortemente recomendadas. - -Nota - - Executar as suítes de teste em [505]Capítulo 5 e [506]Capítulo 6 é - impossível, dado que os aplicativos são compilados com um compilador - cruzado, de forma que não se supõe que sejam aptos a executar no - anfitrião de construção. - - Um problema comum com a execução de suítes de teste para binutils e GCC - é ficar sem pseudo terminais (PTYs). Isso pode resultar em um alto - número de testes com falhas. Isso pode acontecer por muitas razões, mas - a causa mais provável é que o sistema anfitrião não tem o sistema de - arquivos devpts configurado corretamente. Esse problema é discutido em - maiores detalhes em - [507]https://www.linuxfromscratch.org/lfs/faq.html#no-ptys. - - Algumas vezes suítes de testes de pacotes falharão, mas por razões as - quais as(os) desenvolvedoras(es) estão cientes e consideraram - não-críticas. Consulte os registros localizados em - [508]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ para - verificar quando essas falhas são esperadas ou não. Esse site é válido - para todos os testes ao longo deste livro. - -Parte III. Construindo o Conjunto de Ferramentas Cruzadas de LFS e -Ferramentas Temporárias - -Material Preliminar Importante - -Introdução - - Esta parte é dividida em três estágios: primeiro construindo um - compilador cruzado e suas bibliotecas associadas; segundo, usar esse - conjunto de ferramentas cruzado para construir vários utilitários de - uma forma que os isola da distribuição anfitriã; terceiro, entrar no - ambiente chroot, o qual melhora ainda mais o isolamento do anfitrião, e - construir as ferramentas restantes necessárias para construir o sistema - final. - -Importante - - Com esta parte inicia o trabalho real de construir um novo sistema. - Exige muito cuidado em assegurar que as instruções sejam seguidas - exatamente conforme o livro as mostra. Você deveria tentar entender o - que elas fazem, e qualquer que seja sua ânsia para finalizar sua - construção, você deveria evitar digitá-las cegamente como mostrado, mas - ler documentação quando houver algo que você não entenda. Além disso, - acompanhe sua digitação e da saída de comandos, enviando-as para um - arquivo, usando o utilitário tee. Isso permite um melhor diagnóstico se - algo der errado. - - A próxima seção dá uma introdução técnica ao processo de construção, - enquanto que a seguinte contém instruções gerais muito importantes. - -Notas Técnicas do Conjunto de Ferramentas - - Esta seção explana algumas das razões e detalhes técnicos por trás do - método completo de construção. Não é essencial entender imediatamente - tudo nesta seção. A maior parte desta informação ficará mais clara após - executar uma construção atual. Esta seção pode e deve ser consultada a - qualquer momento durante o processo. - - O objetivo geral do [509]Capítulo 5 e do [510]Capítulo 6 é o de - produzir uma área temporária que contém um conjunto reconhecidamente - bom de ferramentas que pode ser isolado do sistema anfitrião. Usando-se - chroot, os comandos nos capítulos subsequentes estarão confinados - naquele ambiente, assegurando uma construção limpa e livre de problemas - do sistema LFS alvo. O processo de construção foi desenhado para - minimizar os riscos para leitores novatos e para prover o maior valor - educacional ao mesmo tempo. - - O processo de construção é baseado no processo de compilação cruzada. A - compilação cruzada normalmente é usada para construir um compilador e o - conjunto de ferramentas dele para uma máquina diferente daquela que é - usada para a construção. Isso não é estritamente necessário para LFS, - dado que a máquina onde o novo sistema executará é a mesma usada para a - construção. Porém, a compilação cruzada tem a grande vantagem de que - tudo o que é compilado cruzadamente não pode depender do ambiente do - anfitrião. - -Acerca da Compilação Cruzada - -Nota - - O livro LFS não é, e não contém, um tutorial geral para construir um - conjunto de ferramentas cruzado (ou nativo). Não use os comandos no - livro para um conjunto de ferramentas cruzado o qual será usado para - algum outro propósito que não construir LFS, a menos que você realmente - entenda o que está fazendo. - - Compilação cruzada envolve alguns conceitos que merecem uma seção por - si próprios. Apesar que esta seção pode ser omitida em uma primeira - leitura, retornar até ela mais tarde será benéfico para o seu completo - entendimento do processo. - - Permita-nos primeiro definir alguns termos usados nesse contexto - - build - é a máquina onde nós construímos aplicativos. Note que essa - máquina é referenciada como sendo a “anfitriã†em outras seções. - - host - é a máquina/sistema onde os aplicativos construídos executarão. - Note que esse uso de “host†não é o mesmo que o uso em outras - seções. - - target - é usado apenas para compiladores. Ele é a máquina para a qual o - compilador produz código. Ele pode ser diferente de ambos build - e host. - - Como um exemplo, permita-nos imaginar o seguinte cenário (as vezes - rotulado de “Cruzado Canadenseâ€): nós podemos ter um compilador somente - em uma máquina lenta, vamos rotulá-la de “máquina Aâ€, e o compilador de - “ccAâ€. Nós também podemos ter uma máquina rápida (B), porém sem - compilador, e nós eventualmente desejamos produzir código para outra - máquina lenta (C). Para construir um compilador para a máquina “Câ€, nós - teríamos três estágios: - Estágio Build Host Target Ação - 1 A A B construir compilador cruzado cc1 usando ccA na máquina A - 2 A B C construir compilador cruzado cc2 usando cc1 na máquina A - 3 B C C construir compilador ccC usando cc2 na máquina B - - Então, todos os outros programas necessários para a máquina C podem ser - compilados usando cc2 na rápida máquina B. Note que a menos que B possa - executar aplicativos produzidos por C, não existe maneira de testar os - aplicativos construídos até que a própria máquina C esteja em execução. - Por exemplo, para testar ccC, nós eventualmente desejamos adicionar um - quarto estágio: - Estágio Build Host Target Ação - 4 C C C reconstruir e testar ccC usando o próprio na máquina C - - No exemplo acima, somente cc1 e cc2 são compiladores cruzados, isto é, - eles produzem código para uma máquina diferente daquela na qual estão - sendo executados. Tais compiladores são rotulados de compiladores - nativos. - -Implementação de Compilação Cruzada para LFS - -Nota - - Quase todos os sistemas de construção usam nomes da forma - cpu-vendor-kernel-os rotulados como o trio de máquina. Um leitor atento - eventualmente questionará porque um “trio†rotula um nome de quatro - componentes. A razão é histórica: inicialmente, três nomes de - componente eram suficientes para designar uma máquina inequivocamente, - porém com novas máquinas e sistemas aparecendo, isso se provou - insuficiente. A palavra “trio†subsistiu. Uma maneira simples de - determinar seu trio de máquina é executar o script config.guess que vem - com o fonte para muitos pacotes. Desempacote os fontes do pacote - “binutils†e execute o script: ./config.guess e observe a saída. Por - exemplo, para um processador Intel de 32-bits, a saída será - i686-pc-linux-gnu. Em um sistema de 64-bits, a saída será - x86_64-pc-linux-gnu. - - Esteja também ciente do nome do vinculador dinâmico da plataforma, - frequentemente rotulado de carregador dinâmico (não confundir com o - vinculador padrão ld o qual é parte do pacote “binutilsâ€). O vinculador - dinâmico provido por Glibc encontra e carrega as bibliotecas - compartilhadas necessárias para um aplicativo, prepara o aplicativo - para execução, e então o executa. O nome do vinculador dinâmico para - uma máquina Intel de 32-bits é ld-linux.so.2 e é ld-linux-x86-64.so.2 - para sistemas 64-bits. Uma maneira infalível de determinar o nome do - vinculador dinâmico é inspecionar uma biblioteca aleatória do sistema - anfitrião executando: readelf -l | grep interpreter e - observando a saída. A referência oficial cobrindo todas as plataformas - está no arquivo shlib-versions na raiz da árvore do fonte do Glibc. - - Para falsificar uma compilação cruzada em LFS, o nome do trio do - anfitrião é ligeiramente ajustado modificando-se o campo "vendor" na - variável LFS_TGT. Nós também usamos a opção --with-sysroot quando da - construção do vinculador dinâmico e do compilador cruzado para - informá-los onde encontrar os necessários arquivos do anfitrião. Isso - assegura que nenhum dos outros aplicativos construídos em - [511]Capítulo 6 pode se vincular a bibliotecas na máquina de - construção. Somente dois estágios são obrigatórios, e mais um para - testes: - Estágio Build Host Target Ação - 1 pc pc lfs construir compilador cruzado cc1 usando cc-pc em pc - 2 pc lfs lfs construir compilador cc-lfs usando cc1 em pc - 3 lfs lfs lfs reconstruir e testar cc-lfs usando o próprio em lfs - - Na tabela acima, “em pc†significa que os comandos são executados em - uma máquina usando a distribuição já instalada. “Em lfs†significa que - os comandos são executados dentro de um ambiente enjaulado. - - Agora, existe mais acerca de compilação cruzada: a linguagem C não é - apenas um compilador, mas também define uma biblioteca padrão. Neste - livro, a biblioteca GNU C, rotulada de “glibcâ€, é usada. Essa - biblioteca deve ser compilada para a máquina lfs, isto é, usando o - compilador cruzado cc1. Porém, o próprio compilador usa uma biblioteca - interna implementando complexas instruções não disponíveis no conjunto - de instruções do montador. Essa biblioteca interna é rotulada de - “libgccâ€, e deve ser vinculada à biblioteca “glibc†para ser - completamente funcional! Além disso, a biblioteca padrão para C++ - (libstdc++) também precisa estar vinculada à “glibcâ€. A solução para - esse problema de ovo e galinha é primeiro construir uma libgcc - degradada baseada em cc1, faltando algumas funcionalidades tais como - camadas e manipulação de exceções, então construir glibc usando esse - compilador degradado (o próprio glibc não degradado), então construir - libstdc++. Porém, nessa última biblioteca faltarão as mesmas - funcionalidades que libgcc. - - Esse não é o fim da história: a conclusão do parágrafo precedente é a - de que cc1 é incapaz de construir uma libstdc++ completamente - funcional, porém esse é o único compilador disponível para construir as - bibliotecas C/C++ durante o estágio 2! Certamente, o compilador - construído durante o estágio 2, cc-lfs, seria capaz de construir - aquelas bibliotecas, porém (1) o sistema de construção do GCC não sabe - que está utilizável em pc; e (2) usá-lo em pc estaria sob o risco de - vinculamento às bibliotecas de pc, dado que cc-lfs é um compilador - nativo. Assim, nós temos de construir libstdc++ mais tarde, em jaula. - -Outros detalhes procedurais - - O compilador cruzado será instalado em um diretório $LFS/tools - separado, dado que ele não será parte do sistema final. - - Binutils é instalado primeiro, pois a execução de configure de ambos - GCC e Glibc executa vários testes de características no montador e no - vinculador para determinar quais características de software habilitar - ou desabilitar. Isso é mais importante do que, inicialmente, alguém - possa perceber. Um GCC ou Glibc configurado incorretamente pode - resultar em um conjunto de ferramentas sutilmente quebrado, onde o - impacto de tal quebra talvez não se manifeste até próximo do final da - construção de uma distribuição inteira. Uma falha de teste de suíte - normalmente destacará tal erro antes que muito mais trabalho adicional - seja realizado. - - O Binutils instala o montador e o vinculador dele em dois locais, - $LFS/tools/bin e $LFS/tools/$LFS_TGT/bin. As ferramentas em uma - localização são rigidamente vinculadas à outra. Uma faceta importante - do vinculador é a ordem de procura de biblioteca dele. Informações - detalhadas podem ser obtidas de ld passando a flag --verbose. Por - exemplo, $LFS_TGT-ld --verbose | grep SEARCH exibirá os caminhos atuais - de procura e a ordem deles. Isso mostra quais arquivos estão vinculados - por ld pela compilação de um aplicativo fictício e passagem do - modificador --verbose ao vinculador. Por exemplo, $LFS_TGT-gcc dummy.c - -Wl,--verbose 2>&1 | grep succeeded exibirá todos os arquivos abertos - com sucesso durante o vinculamento. - - O próximo pacote instalado é o GCC. Um exemplo do que pode ser visto - durante a execução dele de configure é: -checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as -checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld - - Isso é importante pelas razões mencionadas acima. Também demonstra que - o script de configuração do GCC não busca os diretórios do PATH para - encontrar quais ferramentas usar. Entretanto, durante a operação atual - do próprio gcc, os mesmos caminhos de busca não são necessariamente - usados. Para descobrir qual vinculador padrão gcc usará, execute: - $LFS_TGT-gcc -print-prog-name=ld. - - Informação detalhada pode ser obtida de gcc passando-se a opção de - linha de comando -v durante a compilação de um aplicativo fictício. Por - exemplo, gcc -v dummy.c exibirá informação detalhada acerca do - preprocessador, compilação e estágios da montagem, incluindo os - caminhos de busca incluídos do gcc e a ordem deles. - - Os próximos instalados são os cabeçalhos sanitizados da API do Linux. - Eles permitem a interface da biblioteca C padrão (Glibc) com - características que o kernel Linux proverá. - - O próximo pacote instalado é Glibc. As considerações mais importantes - para a construção do Glibc são o compilador, ferramentas binárias e os - cabeçalhos do kernel. O compilador geralmente não é um problema dado - que Glibc sempre usará o compilador relacionado ao parâmetro --host - passado ao script de configuração dele; por exemplo, em nosso caso, o - compilador será $LFS_TGT-gcc. As ferramentas binárias e os cabeçalhos - do kernel podem ser um bocado mais complicados. Dessa maneira, nós não - nos arriscamos e usamos os modificadores de configuração disponíveis - para forçar as seleções corretas. Após a execução de configure, - verifique o conteúdo do arquivo config.make no diretório build para - todos os detalhes importantes. Observe o uso de CC="$LFS_TGT-gcc" (com - $LFS_TGT expandida) para controlar quais ferramentas binárias são - usadas e o uso das flags -nostdinc e -isystem para controlar o caminho - de busca incluído do compilador. Esses itens destacam um importante - aspecto do pacote Glibc—ele é muito autossuficiente em termos de - maquinário de construção e geralmente não confia em padrões de - conjuntos de ferramentas. - - Como dito acima, a biblioteca C++ padrão é compilada depois, seguida em - [512]Capítulo 6 por todos os aplicativos que necessitam deles próprios - para serem construídos. O passo de instalação de todos aqueles pacotes - usa os aplicativos instalados no sistema de arquivos do LFS. - - Ao final do [513]Capítulo 6 o compilador nativo do LFS é instalado. - Primeiro binutils-pass2 é construído, com a mesma instalação DESTDIR - como os outros programas, então a segunda passagem de GCC é construída, - omitindo libstdc++ e outras bibliotecas não importantes. Devido a - algumas lógicas estranhas no script configure do GCC, CC_FOR_TARGET - termina como cc quando o host for o mesmo que o target, porém for - diferente do sistema de construção. Essa é a razão pela qual - CC_FOR_TARGET=$LFS_TGT-gcc é colocado explicitamente nas opções de - configuração. - - Uma vez dentro do ambiente chroot no [514]Capítulo 7, a primeira tarefa - é instalar libstdc++. Então instalações temporárias de programas - necessários para a operação apropriada do conjunto de ferramentas são - executadas. Deste ponto em diante, o conjunto central de ferramentas - está autocontido e auto-hospedado. No [515]Capítulo 8, as versões - finais de todos os pacotes necessários para um sistema completamente - funcional são construídos, testados e instalados. - -Instruções Gerais de Compilação - - Quando da construção de pacotes existem várias suposições feitas dentro - das instruções: - * Vários dos pacotes recebem patches antes da compilação, mas apenas - quando o patch é necessário para evitar um problema. Um patch - frequentemente é necessário tanto neste quanto nos seguintes - capítulos, mas algumas vezes em apenas uma localização. Portanto, - não se preocupe se as instruções para um patch baixado pareçam - estar faltando. Mensagens de alerta acerca de offset ou fuzz também - talvez sejam encontradas quando da aplicação de um patch. Não se - preocupe com esses alertas, uma vez que o patch ainda foi aplicado - com sucesso. - * Durante a compilação da maior parte dos pacotes, existirão vários - alertas que rolarão na tela. Esses são normais e seguramente podem - ser ignorados. Esses alertas são o que parecem—alertas acerca de - uso de sintaxe C ou C++ obsoleta, mas não inválida. Padrões C mudam - com ampla frequência, e alguns pacotes ainda usam o padrão antigo. - Isso não é um problema, mas gera o alerta. - * Verifique uma última vez que a variável de ambiente LFS está - configurada adequadamente: -echo $LFS - Certifique-se de que a saída mostra o caminho para o ponto de - montagem da partição LFS, que é /mnt/lfs, usando nosso exemplo. - * Finalmente, dois itens importantes devem ser enfatizados: - -Importante - As instruções de construção assumem que as [516]Exigências do - Sistema Anfitrião, incluindo links simbólicos, foram configuradas - adequadamente: - + bash é o shell em uso. - + sh é um link simbólico para bash. - + /usr/bin/awk é um link simbólico para gawk. - + /usr/bin/yacc é um link simbólico para bison ou um script - pequeno que executa bison. - -Importante - Para reenfatizar o processo de construção: - 1. Coloque todos os pacotes e patches em um diretório que estará - acessível a partir do ambiente chroot, tal como - /mnt/lfs/sources/. - 2. Mude para o diretório dos fontes. - 3. Para cada pacote: - 1. Usando o aplicativo tar, extraia o pacote para ser - construído. Em [517]Capítulo 5 e [518]Capítulo 6, - certifique-se de que você seja a(o) usuária(o) lfs quando - extrair o pacote. - Todos os métodos para obter a árvore de código fonte - sendo construído em-posição, exceto extrair o tarball de - pacote, não são suportados. Notadamente, usar cp -R para - copiar a árvore de código fonte para outro lugar pode - destruir links e marcas temporais na árvore de fontes e - causar falha de construção. - 2. Mude para o diretório criado quando o pacote foi - extraído. - 3. Siga as instruções do livro para construir o pacote. - 4. Mude de volta para o diretório de fontes. - 5. Delete o diretório de fonte extraído a menos que - instruído o contrário. - -Capítulo 5. Compilando um Conjunto de Ferramentas Cruzado - -5.1. Introdução - - Este capítulo mostra como construir um compilador cruzado e suas - ferramentas associadas. Apesar de aqui a compilação cruzada ser - falseada, os princípios são os mesmos que aqueles para um conjunto de - ferramentas cruzado real. - - Os aplicativos compilados neste capítulo serão instalados sob o - diretório $LFS/tools para mantê-los separados dos arquivos instalados - nos capítulos seguintes. As bibliotecas, por outro lado, são instaladas - em seus locais finais, dado que elas pertencem ao sistema que queremos - construir. - -5.2. Binutils-2.38 - Passagem 1 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1 UPC - Espaço em disco exigido: 620 MB - -5.2.1. Instalação de Binutils Cruzado - -Nota - - Volte e releia as notas na seção intitulada [519]Instruções Gerais de - Compilação. Entender as notas rotuladas como importante pode salvar - você de um monte de problemas depois. - - É importante que Binutils seja o primeiro pacote compilado, pois ambos - Glibc e GCC realizam vários testes sobre o vinculador e montador - disponíveis para determinar quais de suas próprias características - habilitar. - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - -Nota - - Com a finalidade de que os valores de UPC listados no resto do livro - sejam de qualquer uso, meça o tempo que leva para construir este pacote - desde a configuração até e incluindo a primeira instalação. Para fazer - isso facilmente, encapsule os comandos em um time desta forma: time { - ../configure ... && make && make install; }. - - Agora prepare Binutils para compilação: -../configure --prefix=$LFS/tools \ - --with-sysroot=$LFS \ - --target=$LFS_TGT \ - --disable-nls \ - --disable-werror - - O significado das opções do configure: - - --prefix=$LFS/tools - Isso diz para o script configure para preparar para instalar os - aplicativos de binutils no diretório $LFS/tools. - - --with-sysroot=$LFS - Para compilação cruzada, isso diz ao sistema de construção para - procurar em $LFS pelas bibliotecas alvo de sistema conforme - necessário. - - --target=$LFS_TGT - Por causa da descrição de máquina na variável LFS_TGT ser - ligeiramente diferente do valor retornado pelo script - config.guess, essa chave dirá ao script configure para ajustar o - sistema de construção do binutils para construir um vinculador - cruzado. - - --disable-nls - Isso desabilita internacionalização, uma vez que i18n não é - necessária para as ferramentas temporárias. - - --disable-werror - Isso evita que a construção pare no caso de existirem alertas - originários do compilador do anfitrião. - - Continue compilando o pacote: -make - - Instale o pacote: -make install - - Detalhes deste pacote estão localizados em [520]Seção 8.18.2, “Conteúdo - de Binutils.†- -5.3. GCC-11.2.0 - Passagem 1 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -5.3.1. Instalação de GCC Cruzado - - GCC exige os pacotes GMP, MPFR e MPC. Uma vez que esses pacotes talvez - não estejam incluídos na sua distribuição anfitriã, eles serão - construídos com GCC. Desempacote cada pacote dentro do diretório de - fonte de GCC e renomeie os diretórios resultantes de forma que os - procedimentos de construção de GCC automaticamente os usarão: - -Nota - - Existem mal-entendidos frequentes sobre este capítulo. Os procedimentos - são os mesmos que todos os outros capítulos explicados anteriormente - ([521]Instruções de construção de pacote). Primeiro extraia o tarball - de gcc a partir do diretório de fontes e então mude para o diretório - criado. Somente então deveria você prosseguir com as instruções abaixo. -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Em anfitriões x86_64, configure o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure \ - --target=$LFS_TGT \ - --prefix=$LFS/tools \ - --with-glibc-version=2.35 \ - --with-sysroot=$LFS \ - --with-newlib \ - --without-headers \ - --enable-initfini-array \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - --disable-decimal-float \ - --disable-threads \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das opções de configure: - - --with-glibc-version=2.35 - Essa opção especifica a versão de glibc a qual será usada no - alvo. Ela não é relevante para a libc da distro anfitriã, pois - tudo compilado por gcc passagem 1 executará no ambiente chroot, - o qual é isolado de libc da distro anfitriã. - - --with-newlib - Uma vez que uma biblioteca C funcional ainda não está - disponível, isso assegura que a constante inhibit_libc esteja - definida quando da construção de libgcc. Isso evita a compilação - de qualquer código que exija suporte de libc. - - --without-headers - Quando da criação de um compilador cruzado completo, GCC exige - cabeçalhos padrão compatíveis com o sistema alvo. Para nossos - propósitos esses cabeçalhos não serão necessários. Essa chave - evita que GCC procure por eles. - - --enable-initfini-array - Essa chave força o uso de algumas estruturas internas de dados - que são necessárias, porém não podem ser detectadas quando da - construção de um compilador cruzado. - - --disable-shared - Essa chave força GCC a vincular suas bibliotecas internas - estaticamente. Nós precisamos disso, pois as bibliotecas - compartilhadas exigem glibc, que ainda não está instalado no - sistema alvo. - - --disable-multilib - Em x86_64, LFS não suporta uma configuração multilib. Essa chave - é inofensiva para x86. - - --disable-decimal-float, --disable-threads, --disable-libatomic, - --disable-libgomp, --disable-libquadmath, --disable-libssp, - --disable-libvtv, --disable-libstdcxx - Essas chaves desabilitam suporte para a extensão de ponto - flutuante decimal, threading, libatomic, libgomp, libquadmath, - libssp, libvtv, e a biblioteca padrão C++ respectivamente. Essas - características falharão na compilação quando da construção de - um compilador cruzado e não são necessárias para a tarefa de - compilar cruzadamente a libc temporária. - - --enable-languages=c,c++ - Essa opção garante que apenas os compiladores C e C++ sejam - construídos. Essas são as únicas linguagens necessárias agora. - - Compile GCC executando: -make - - Instale o pacote: -make install - - Essa construção de GCC instalou um par de cabeçalhos internos de - sistema. Normalmente um deles, limits.h, sequencialmente incluiria o - cabeçalho limits.h de sistema correspondente, nesse caso, - $LFS/usr/include/limits.h. Entretanto, ao tempo dessa construção de - GCC, $LFS/usr/include/limits.h não existe, de forma que o cabeçalho - interno recém instalado é um arquivo parcial, autocontido, e não inclui - as características estendidas do cabeçalho de sistema. Isso é adequado - para a construção de glibc, porém o cabeçalho interno completo será - necessário mais tarde. Crie uma versão completa do cabeçalho interno - usando um comando que é idêntico ao que o sistema de construção de GCC - faz em circunstâncias normais: -cd .. -cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ - `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits -.h - - Detalhes acerca deste pacote estão localizados em [522]Seção 8.26.2, - “Conteúdo de GCC.†- -5.4. Cabeçalhos da API do Linux-5.16.9 - - Os Cabeçalhos da API do Linux (em linux-5.16.9.tar.xz) expõem a API do - kernel para uso por Glibc. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 1,2 GB - -5.4.1. Instalação dos Cabeçalhos da API do Linux - - O kernel Linux precisa expor uma Interface de Programação de - Aplicativos (API) para a biblioteca C do sistema (Glibc em LFS) usar. - Isso é feito por meio de sanitizar vários arquivos de cabeçalho C que - são incluídos no tarball de fonte de kernel Linux. - - Certifique-se de que não existem arquivos obsoletos embutidos no - pacote: -make mrproper - - Agora extraia os cabeçalhos de kernel visíveis ao usuário a partir do - fonte. O alvo recomendado de make “headers_install†não pode ser usado, - pois ele exige rsync, que talvez não esteja disponível. Os cabeçalhos - são primeiro colocados em ./usr, então copiados para a localização - necessária. -make headers -find usr/include -name '.*' -delete -rm usr/include/Makefile -cp -rv usr/include $LFS/usr - -5.4.2. Conteúdo dos Cabeçalhos da API do Linux - - Cabeçalhos instalados: /usr/include/asm/*.h, - /usr/include/asm-generic/*.h, /usr/include/drm/*.h, - /usr/include/linux/*.h, /usr/include/misc/*.h, /usr/include/mtd/*.h, - /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, - /usr/include/video/*.h, and /usr/include/xen/*.h - Diretórios instalados: /usr/include/asm, /usr/include/asm-generic, - /usr/include/drm, /usr/include/linux, /usr/include/misc, - /usr/include/mtd, /usr/include/rdma, /usr/include/scsi, - /usr/include/sound, /usr/include/video, and /usr/include/xen - -Descrições Curtas - - /usr/include/asm/*.h - - Os Cabeçalhos API ASM Linux - - /usr/include/asm-generic/*.h - - Os Cabeçalhos Genéricos API ASM Linux - - /usr/include/drm/*.h - - Os Cabeçalhos API DRM Linux - - /usr/include/linux/*.h - - Os Cabeçalhos Linux API Linux - - /usr/include/misc/*.h - - Os Cabeçalhos Miscelâneas API Linux - - /usr/include/mtd/*.h - - Os Cabeçalhos API MTD Linux - - /usr/include/rdma/*.h - - Os Cabeçalhos API RDMA Linux - - /usr/include/scsi/*.h - - Os Cabeçalhos API SCSI Linux - - /usr/include/sound/*.h - - Os Cabeçalhos de Som API Linux - - /usr/include/video/*.h - - Os Cabeçalhos de Vídeo API Linux - - /usr/include/xen/*.h - - Os Cabeçalhos Xen API Linux - -5.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 818 MB - -5.5.1. Instalação de Glibc - - Primeiro, crie um link simbólico para conformidade com LSB. - Adicionalmente, para x86_64, crie um link simbólico de compatibilidade - exigido para a operação adequada do carregador dinâmico de biblioteca: -case $(uname -m) in - i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 - ;; - x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64 - ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3 - ;; -esac - -Nota - - O comando acima está correto. O comando ln tem umas poucas versões - sintáticas, de forma que tenha certeza de verificar info coreutils ln e - ln(1) antes de relatar o que você talvez pense que seja um erro. - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Assegure que os utilitários ldconfig e sln sejam instalados em - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - A seguir, prepare Glibc para compilação: -../configure \ - --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(../scripts/config.guess) \ - --enable-kernel=3.2 \ - --with-headers=$LFS/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --host=$LFS_TGT, --build=$(../scripts/config.guess) - O efeito combinado dessas chaves é o de que o sistema de - construção do Glibc se autoconfigura para ser compilado - cruzadamente, usando o vinculador cruzado e compilador cruzado - em $LFS/tools. - - --enable-kernel=3.2 - Isso diz a Glibc para compilar a biblioteca com suporte para - kernels Linux 3.2 e posteriores. Contornos para kernels antigos - não estão habilitados. - - --with-headers=$LFS/usr/include - Isso diz a Glibc para compilar a si mesmo com os cabeçalhos - recentemente instalados no diretório $LFS/usr/include, de forma - que ele saiba exatamente quais características o kernel tem e - possa otimizar-se adequadamente. - - libc_cv_slibdir=/usr/lib - Isso garante que a biblioteca seja instalada em /usr/lib em vez - do padrão /lib64 em máquinas de 64 bits. - - Durante este estágio o seguinte alerta pode aparecer: - -configure: WARNING: -*** These auxiliary programs are missing or -*** incompatible versions: msgfmt -*** some features will be disabled. -*** Check the INSTALL file for required versions. - - O aplicativo msgfmt faltando ou incompatível geralmente é inofensivo. - Esse aplicativo msgfmt é parte do pacote Gettext que a distribuição - anfitriã deveria fornecer. - -Nota - - Tem havido relatos de que esse pacote talvez falhe quando da construção - como um "parallel make". Se isso ocorrer, então reexecute o comando - make com uma opção "-j1". - - Compile o pacote: -make - - Instale o pacote: - -Atenção - - Se LFS não estiver adequadamente configurada, e a despeito das - recomendações, você estiver construindo como root, então o próximo - comando instalará a recém construída glibc em seu sistema anfitrião, o - que possivelmente o tornará inutilizável. Portanto, verifique duas - vezes se o ambiente está corretamente configurado, antes de executar o - seguinte comando. -make DESTDIR=$LFS install - - O significado da opção make install: - - DESTDIR=$LFS - A variável DESTDIR de make é usada por quase todos os pacotes - para definir a localização onde o pacote deveria ser instalado. - Se ela não estiver configurada, então o padrão é o diretório - raiz (/). Aqui nós especificamos que o pacote seja instalado em - $LFS, que se tornará a raiz após [523]Seção 7.4, “Entrando no - Ambiente Chrootâ€. - - Corrija caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd - -Cuidado - - Neste ponto, é imperativo parar e certificar-se de que as funções - básicas (compilar e lincar) do novo conjunto de ferramentas estão - funcionando como esperado. Para realizar uma verificação de sanidade, - execute os seguintes comandos: -echo 'int main(){}' > dummy.c -$LFS_TGT-gcc dummy.c -readelf -l a.out | grep '/ld-linux' - - Se tudo estiver funcionando corretamente, então não deveriam existir - quaisquer erros, e a saída do último comando será na forma: -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Note que para máquinas de 32 bits, o nome do interpretador será - /lib/ld-linux.so.2. - - Se a saída não for mostrada como acima ou não existir saída nenhuma, - então alguma coisa está errada. Investigue e retrace os passos para - encontrar onde está o problema e corrija-o. Esse problema deve ser - resolvido antes de continuar. - - Uma vez que tudo esteja bem, limpe os arquivos de teste: -rm -v dummy.c a.out - -Nota - - Construir pacotes no próximo capítulo servirá como uma verificação - adicional de que o conjunto de ferramentas foi construído - adequadamente. Se algum pacote, especialmente binutils-passagem 2 ou - gcc-passagem 2, falhar na construção, então isso é uma indicação de que - alguma coisa deu errado com as instalações anteriores de Binutils, GCC - ou Glibc. - - Agora que nosso conjunto de ferramentas cruzadas está completa, - finalize a instalação do cabeçalho limits.h. Para fazer isso, execute - um utilitário fornecido pelas(os) desenvolvedoras(os) de GCC: -$LFS/tools/libexec/gcc/$LFS_TGT/11.2.0/install-tools/mkheaders - - Detalhes acerca deste pacote estão localizados em [524]Seção 8.5.3, - “Conteúdo de Glibc.†- -5.6. Libstdc++ oriundo de GCC-11.2.0, Passagem 1 - - Libstdc++ é a biblioteca padrão C++. Ela é necessária para compilar - código C++ (parte de GCC é escrito em C++), porém nós tivemos que adiar - sua instalação quando construímos [525]gcc-pass1, pois ela depende de - glibc, que ainda não estava disponível no diretório alvo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 818 MB - -5.6.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - --host=$LFS_TGT \ - --build=$(../config.guess) \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --disable-libstdcxx-pch \ - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - - O significado das opções de configure: - - --host=... - Especifica que o compilador cruzado que nós acabamos de - construir deveria ser usado em vez daquele em /usr/bin. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0 - Isso especifica o diretório de instalação para arquivos include. - Por causa de libstdc++ ser a biblioteca padrão C++ para LFS, - esse diretório deveria coincidir com a localização onde o - compilador C++ ($LFS_TGT-g++) procuraria pelos arquivos include - C++ padrão. Em uma construção normal, essa informação é - automaticamente passada para as opções configure de libstdc++ a - partir do diretório de nível de topo. Em nosso caso, essa - informação deve ser explicitamente dada. O compilador C++ - precederá o caminho raiz de sistema $LFS (especificado quando da - construção de GCC passagem 1) para o caminho de pesquisa de - arquivo include, de forma que ele atualmente pesquisará em - $LFS/tools/$LFS_TGT/include/c++/11.2.0. A combinação da variável - DESTDIR (no comando make install abaixo) e essa chave garante - instalar os cabeçalhos lá. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [526]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 6. Compilando Cruzadamente Ferramentas Temporárias - -6.1. Introdução - - Este capítulo mostra como compilar cruzadamente utilitários básicos - usando o recém construído conjunto de ferramentas cruzadas. Esses - utilitários são instalados no local final deles, porém ainda não podem - ser usados. Tarefas básicas ainda dependem das ferramentas do - anfitrião. Apesar disso, as bibliotecas instaladas são usadas quando da - vinculação. - - O uso dos utilitários será possível no próximo capítulo após entrada no - ambiente “chrootâ€. Porém, todos os pacotes construídos no presente - capítulo precisam ser construídos antes que façamos isso. Dessa forma - nós ainda não podemos ficar independentes do sistema anfitrião. - - Uma vez mais, permita-nos relembrar que a configuração inapropriada de - LFS junto com a construção como root, talvez torne seu computador - inutilizável. Este capítulo inteiro precisa ser feito como usuária(o) - lfs, com o ambiente conforme descrito em [527]Seção 4.4, “Configurando - o Ambienteâ€. - -6.2. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 31 MB - -6.2.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [528]Seção 8.12.2, - “Conteúdo de M4.†- -6.3. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 50 MB - -6.3.1. Instalação de Ncurses - - Primeiro, assegure que gawk é encontrado primeiro durante a - configuração: -sed -i s/mawk// configure - - Então, execute os seguintes comandos para construir o aplicativo “tic†- no anfitrião de construção: -mkdir build -pushd build - ../configure - make -C include - make -C progs tic -popd - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(./config.guess) \ - --mandir=/usr/share/man \ - --with-manpage-format=normal \ - --with-shared \ - --without-debug \ - --without-ada \ - --without-normal \ - --disable-stripping \ - --enable-widec - - O significado das novas opções de configure: - - --with-manpage-format=normal - Isso evita que Ncurses instale páginas comprimidas de manual, o - que talvez aconteceu se a própria distribuição anfitriã tiver - páginas comprimidas de manual. - - --without-ada - Isso assegura que Ncurses não construa suporte para o compilador - Ada, o qual talvez esteja presente no anfitrião, porém não - estará disponível até que nós entremos no ambiente chroot. - - --disable-stripping - Essa chave impede o sistema de construção de despojar os - aplicativos usando o aplicativo strip oriundo do anfitrião. O - uso de ferramentas de anfitrião em aplicativo compilado - cruzadamente pode causar falha. - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install -echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - - O significado das opções de install: - - TIC_PATH=$(pwd)/build/progs/tic - Nós precisamos passar o caminho do recém construído tic apto - para executar na máquina de construção, de forma que a base de - dados de terminal possa ser criada sem erros. - - echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so - A biblioteca libncurses.so é necessária para uns poucos pacotes - que nós construiremos breve. Nós criamos esse pequeno script - vinculador, pois isso é o que é feito em [529]Capítulo 8. - - Detalhes acerca deste pacote estão localizados em [530]Seção 8.28.2, - “Conteúdo de Ncurses.†- -6.4. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 64 MB - -6.4.1. Instalação de Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --build=$(support/config.guess) \ - --host=$LFS_TGT \ - --without-bash-malloc - - O significado das opções de configure: - - --without-bash-malloc - Essa opção desliga o uso da função de alocação de memória do - Bash (malloc) a qual é conhecida por causar falhas de - segmentação. Ao se desligar essa opção, Bash usará as funções - malloc originárias de Glibc que são mais estáveis. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Faça um link para os aplicativos que usam sh para um shell: -ln -sv bash $LFS/bin/sh - - Detalhes acerca deste pacote estão localizados em [531]Seção 8.34.2, - “Conteúdo do Bash.†- -6.5. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 158 MB - -6.5.1. Instalação de Coreutils - - Prepare Coreutils para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --enable-install-program=hostname \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - --enable-install-program=hostname - Isso habilita o binário hostname para ser construído e instalado - – ele é desabilitado por padrão, porém é exigido pela suíte de - teste de Perl. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Mova aplicativos para seus locais finais esperados. Apesar de isso não - ser necessário neste ambiente temporário, nós precisamos fazer isso, - pois alguns aplicativos codificam rigidamente locais de executável: -mv -v $LFS/usr/bin/chroot $LFS/usr/sbin -mkdir -pv $LFS/usr/share/man/man8 -mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8 - - Detalhes acerca deste pacote estão localizados em [532]Seção 8.53.2, - “Conteúdo do Coreutils.†- -6.6. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 27 MB - -6.6.1. Instalação de Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [533]Seção 8.55.2, - “Conteúdo do Diffutils.†- -6.7. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 32 MB - -6.7.1. Instalação de File - - O comando file no anfitrião de construção precisa ser da mesma versão - que aquele que nós estamos construindo com a finalidade de criar o - arquivo de assinatura. Execute os seguintes comandos para construí-lo: -mkdir build -pushd build - ../configure --disable-bzlib \ - --disable-libseccomp \ - --disable-xzlib \ - --disable-zlib - make -popd - - O significado da nova opção de configure: - - --disable-* - O script de configuração tenta usar alguns pacotes originários - da distribuição anfitriã se os arquivos de biblioteca - correspondentes existirem. Isso talvez cause falha de compilação - se um arquivo de biblioteca existir, porém os arquivos de - cabeçalhos correspondentes não. Essas opções impedem o uso - dessas capacidades desnecessárias a partir do anfitrião. - - Prepare File para compilação: -./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) - - Compile o pacote: -make FILE_COMPILE=$(pwd)/build/src/file - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [534]Seção 8.10.2, - “Conteúdo de File.†- -6.8. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 42 MB - -6.8.1. Instalação de Findutils - - Prepare Findutils para compilação: -./configure --prefix=/usr \ - --localstatedir=/var/lib/locate \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [535]Seção 8.57.2, - “Conteúdo do Findutils.†- -6.9. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 45 MB - -6.9.1. Instalação de Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [536]Seção 8.56.2, - “Conteúdo do Gawk.†- -6.10. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 26 MB - -6.10.1. Instalação de Grep - - Prepare Grep para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [537]Seção 8.33.2, - “Conteúdo do Grep.†- -6.11. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 11 MB - -6.11.1. Instalação de Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [538]Seção 8.60.2, - “Conteúdo do Gzip.†- -6.12. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.12.1. Instalação de Make - - Prepare Make para compilação: -./configure --prefix=/usr \ - --without-guile \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - O significado da nova opção de configure: - - --without-guile - Apesar de nós estarmos compilando cruzadamente, configure tenta - usar guile a partir do anfitrião de construção se encontrá-lo. - Isso provoca falha de compilação, de forma que essa chave impede - o uso de guile. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [539]Seção 8.64.2, - “Conteúdo do Make.†- -6.13. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -6.13.1. Instalação de Patch - - Prepare Patch para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [540]Seção 8.65.2, - “Conteúdo do Patch.†- -6.14. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -6.14.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [541]Seção 8.29.2, - “Conteúdo do Sed.†- -6.15. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 38 MB - -6.15.1. Instalação de Tar - - Prepare Tar para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [542]Seção 8.66.2, - “Conteúdo do Tar.†- -6.16. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -6.16.1. Instalação de Xz - - Prepare Xz para compilação: -./configure --prefix=/usr \ - --host=$LFS_TGT \ - --build=$(build-aux/config.guess) \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [543]Seção 8.8.2, - “Conteúdo de Xz.†- -6.17. Binutils-2.38 - Passagem 2 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 1,3 UPC - Espaço em disco exigido: 520 MB - -6.17.1. Instalação de Binutils - - Binutils entrega uma cópia desatualizada de libtool no tarball. Ela - carece de suporte de raiz de sistema de forma que os binários - produzidos serão erroneamente vinculados à bibliotecas originárias da - distribuição anfitriã. Contorne esse problema: -sed '6009s/$add_dir//' -i ltmain.sh - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure \ - --prefix=/usr \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --disable-nls \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd - - O significado das novas opções de configure: - - --enable-shared - Constrói libbfd como uma biblioteca compartilhada. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Detalhes acerca deste pacote estão localizados em [544]Seção 8.18.2, - “Conteúdo de Binutils.†- -6.18. GCC-11.2.0 - Passagem 2 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 11 UPC - Espaço em disco exigido: 3,3 GB - -6.18.1. Instalação de GCC - - Como na primeira construção de GCC, os pacotes GMP, MPFR, e MPC são - exigidos. Desempacote os tarballs e mova-os para os nomes de diretório - exigidos: -tar -xf ../mpfr-4.1.0.tar.xz -mv -v mpfr-4.1.0 mpfr -tar -xf ../gmp-6.2.1.tar.xz -mv -v gmp-6.2.1 gmp -tar -xf ../mpc-1.2.1.tar.gz -mv -v mpc-1.2.1 mpc - - Se construindo em x86_64, então mude o nome padrão de diretório para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 - ;; -esac - - Crie um diretório de construção separado novamente: -mkdir -v build -cd build - - Crie um link simbólico que permite que libgcc seja construída com - suporte posix de camadas: -mkdir -pv $LFS_TGT/libgcc -ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h - - Antes de iniciar a construção de GCC, lembre-se de desconfigurar - quaisquer variáveis de ambiente que substituam os sinalizadores de - otimização padrão. - - Agora prepare GCC para compilação: -../configure \ - --build=$(../config.guess) \ - --host=$LFS_TGT \ - --prefix=/usr \ - CC_FOR_TARGET=$LFS_TGT-gcc \ - --with-build-sysroot=$LFS \ - --enable-initfini-array \ - --disable-nls \ - --disable-multilib \ - --disable-decimal-float \ - --disable-libatomic \ - --disable-libgomp \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libvtv \ - --disable-libstdcxx \ - --enable-languages=c,c++ - - O significado das novas opções de configure: - - -with-build-sysroot=$LFS - Normalmente, usar --host garante que um compilador cruzado seja - usado para construir GCC, e que o compilador sabe que tem que - procurar por cabeçalhos e bibliotecas em $LFS. Porém, o sistema - de construção de GCC usa outras ferramentas, que não estão - cientes dessa localização. Essa chave é necessária para que elas - busquem os arquivos necessários em $LFS, e não no anfitrião. - - --enable-initfini-array - Essa opção é automaticamente habilitada quando da construção de - um compilador nativo com um compilador nativo em x86. Porém, - aqui, nós construímos com um compilador cruzado, de forma que - nós precisamos explicitamente configurar essa opção. - - Compile o pacote: -make - - Instale o pacote: -make DESTDIR=$LFS install - - Como um toque final, crie um link simbólico utilitário. Muitos - aplicativos e scripts executam cc em vez de gcc, o que é usado para - manter genéricos os aplicativos e, assim, utilizáveis em todos os tipos - de sistemas UNIX onde o compilador C de GNU nem sempre está instalado. - Executar cc deixa a(o) administradora(r) de sistema livre para decidir - qual compilador C instalar: -ln -sv gcc $LFS/usr/bin/cc - - Detalhes acerca deste pacote estão localizados em [545]Seção 8.26.2, - “Conteúdo de GCC.†- -Capítulo 7. Entrando em Chroot e Construindo Ferramentas Temporárias -Adicionais - -7.1. Introdução - - Este capítulo mostra como construir os últimos bits que faltam no - sistema temporário: as ferramentas necessárias para o maquinário de - construção de vários pacotes. Agora que todas as dependências - circulares foram resolvidas, um ambiente “chrootâ€, completamente - isolado do sistema operacional anfitrião (exceto pelo kernel em - execução), pode ser usado para a construção. - - Para operação adequada do ambiente isolado, alguma comunicação com o - kernel em execução precisa ser estabelecida. Isso é feito por meio dos - assim chamados Sistemas de Arquivos Virtuais de Kernel, que precisam - ser montados quando da entrada no ambiente chroot. Você talvez queira - verificar que eles estejam montados emitindo findmnt. - - Até [546]Seção 7.4, “Entrando no Ambiente Chrootâ€, os comandos precisam - ser executados como root, com a variável LFS configurada. Após a - entrada em chroot, todos os comandos são executados como root, por - sorte sem acesso ao OS do computador no qual que você construiu LFS. - Seja cuidadosa(o) de qualquer maneira, dado que é fácil destruir o - sistema LFS inteiro com comandos mau formados. - -7.2. Mudando Propriedade - -Nota - - Os comandos no resto deste livro precisam ser realizados enquanto - logada(o) como usuária(o) root e não mais como usuária(o) lfs. Também, - verifique duplamente que $LFS está configurada no ambiente do root. - - Atualmente, a hierarquia de diretório inteira em $LFS é de propriedade - da(o) usuária(o) lfs, uma(m) usuária(o) que existe somente no sistema - anfitrião. Se os diretórios e arquivos sob $LFS forem mantidos como - estão, então eles serão de propriedade de um ID de usuária(o) sem uma - conta correspondente. Isso é perigoso, pois uma conta de usuária(o) - criada posteriormente poderia receber esse mesmo ID de usuária(o) e se - tornaria proprietária(o) de todos os arquivos sob $LFS, dessa forma - expondo esses arquivos a possível manipulação maliciosa. - - Para endereçar esse problema, mude a propriedade dos diretórios $LFS/* - para usuária(o) root executando o seguinte comando: -chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -R root:root $LFS/lib64 ;; -esac - -7.3. Preparando Sistemas de Arquivos Virtuais de Kernel - - Vários sistemas de arquivos exportados pelo kernel são usados para - comunicar para e oriunda do próprio kernel. Esses sistemas de arquivos - são virtuais uma vez que nenhum espaço de disco é usado por eles. O - conteúdo dos sistemas de arquivos reside em memória. - - Comece criando diretórios nos quais os sistemas de arquivos serão - montados: -mkdir -pv $LFS/{dev,proc,sys,run} - -7.3.1. Criando Nós de Dispositivos Iniciais - - Quando o kernel inicializa o sistema, ele exige a presença de alguns - nós de dispositivos, em particular os dispositivos console e null. Os - nós de dispositivos precisam ser criados no disco rígido de modo que - eles estejam disponíveis antes que o kernel povoe /dev), e - adicionalmente quando Linux é iniciado com init=/bin/bash. Crie os - dispositivos executando os seguintes comandos: -mknod -m 600 $LFS/dev/console c 5 1 -mknod -m 666 $LFS/dev/null c 1 3 - -7.3.2. Montando e Povoando /dev - - O método recomendado de povoar o diretório /dev com dispositivos é - montar um sistema de arquivos virtuais (tal como tmpfs) no diretório - /dev, e permitir que os dispositivos sejam criados dinamicamente - naquele sistema de arquivos virtuais conforme eles sejam detectados ou - acessados. Criação de dispositivos é geralmente feita durante o - processo de inicialização por Udev. Uma vez que esse novo sistema ainda - não tem Udev e ainda não foi inicializado, é necessário montar e povoar - /dev manualmente. Isso é conseguido montando com bind o diretório /dev - do sistema anfitrião. Uma montagem com bind é um tipo especial de - montagem que permite que você crie um espelho de um diretório ou ponto - de montagem para alguma outra localização. Use o seguinte comando para - conseguir isso: -mount -v --bind /dev $LFS/dev - -7.3.3. Montando Sistemas de Arquivos Virtuais de Kernel - - Agora monte os restantes sistemas de arquivos virtuais de kernel: -mount -v --bind /dev/pts $LFS/dev/pts -mount -vt proc proc $LFS/proc -mount -vt sysfs sysfs $LFS/sys -mount -vt tmpfs tmpfs $LFS/run - - Em alguns sistemas anfitrião, /dev/shm é um link simbólico para - /run/shm. O tmpfs /run foi montado acima então, nesse caso, apenas um - diretório precisa ser criado. -if [ -h $LFS/dev/shm ]; then - mkdir -pv $LFS/$(readlink $LFS/dev/shm) -fi - -7.4. Entrando no Ambiente Chroot - - Agora que todos os pacotes que são exigidos para construir o resto das - ferramentas necessárias estão no sistema, é hora de entrar no ambiente - chroot para finalizar a instalação das restantes ferramentas - temporárias. Esse ambiente estará em uso também para a instalação do - sistema final. Como usuária(o) root, execute o seguinte comando para - entrar no ambiente que é, neste momento, povoado apenas com as - ferramentas temporárias: -chroot "$LFS" /usr/bin/env -i \ - HOME=/root \ - TERM="$TERM" \ - PS1='(lfs chroot) \u:\w\$ ' \ - PATH=/usr/bin:/usr/sbin \ - /bin/bash --login - - A opção -i dada para o comando env limpará todas as variáveis do - ambiente chroot. Depois disso, apenas as variáveis HOME, TERM, PS1, e - PATH são configuradas novamente. A construção TERM=$TERM configurará a - variável TERM dentro de chroot para o mesmo valor que fora de chroot. - Essa variável é necessária para aplicativos como vim e less operarem - adequadamente. Se outras variáveis forem desejadas, tais como CFLAGS ou - CXXFLAGS, então esse é um bom lugar para configurá-las novamente. - - Deste ponto em diante, não mais há necessidade de usar a variável LFS, - pois todo o trabalho estará restrito ao sistema de arquivos de LFS. - Isso acontece pois o shell Bash é informado que $LFS agora é o - diretório raiz (/). - - Perceba que /tools/bin não está no PATH. Isso significa que o conjunto - de ferramentas cruzadas não mais será usado no ambiente chroot. - - Note que o prompt de bash dirá I have no name! Isso é normal, pois o - arquivo /etc/passwd ainda não foi criado. - -Nota - - É importante que todos os comandos até o final deste capítulo e nos - capítulos seguintes sejam executados de dentro do ambiente chroot. Se - você deixar esse ambiente por qualquer razão (reiniciar, por exemplo), - então certifique-se que os sistemas de arquivos virtuais de kernel - estejam montados como explicado em [547]Seção 7.3.2, “Montando e - Povoando /dev†e [548]Seção 7.3.3, “Montando Sistemas de Arquivos - Virtuais de Kernel†e entre no chroot novamente antes de continuar a - instalação. - -7.5. Criando Diretórios - - É tempo de criar a estrutura completa no sistema de arquivos LFS. - - Crie alguns diretórios de nível de raiz que não estão no conjunto - limitado exigido nos capítulos anteriores emitindo o seguinte comando: - -Nota - - Alguns dos diretórios abaixo já foram criados anteriormente com - instruções explícitas ou quando da instalação de alguns pacotes. Elas - estão repetidas abaixo para completude. -mkdir -pv /{boot,home,mnt,opt,srv} - - Crie o conjunto exigido de subdiretórios abaixo do nível de raiz - emitindo os seguintes comandos: -mkdir -pv /etc/{opt,sysconfig} -mkdir -pv /lib/firmware -mkdir -pv /media/{floppy,cdrom} -mkdir -pv /usr/{,local/}{include,src} -mkdir -pv /usr/local/{bin,lib,sbin} -mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} -mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} -mkdir -pv /usr/{,local/}share/man/man{1..8} -mkdir -pv /var/{cache,local,log,mail,opt,spool} -mkdir -pv /var/lib/{color,misc,locate} - -ln -sfv /run /var/run -ln -sfv /run/lock /var/lock - -install -dv -m 0750 /root -install -dv -m 1777 /tmp /var/tmp - - Diretórios são, por padrão, criados com modo de permissão 755, mas isso - não é desejável para todos os diretórios. Nos comandos acima, duas - mudanças são feitas—uma para o diretório home da(o) usuária(o) root, e - outra para os diretórios para arquivos temporários. - - A primeira mudança de modo assegura que nem qualquer pessoa possa - entrar no diretório /root—o mesmo que uma(m) usuária(o) normal faria - com o diretório home dela ou dele. A segunda mudança de modo garante - que qualquer usuária(o) possa escrever nos diretórios /tmp e /var/tmp, - mas não possa remover deles os arquivos de outras(os) usuárias(os). - Essa última é proibida pelo assim chamado “sticky bitâ€, o bit mais alto - (1) na máscara de bits 1777. - -7.5.1. Nota de conformidade FHS - - A árvore de diretório é baseada no Padrão de Hierarquia de Sistema de - Arquivos (Filesystem Hierarchy Standard - FHS) (disponível em - [549]https://refspecs.linuxfoundation.org/fhs.shtml). O FHS também - especifica a existência opcional de alguns diretórios tais como - /usr/local/games e /usr/share/games. Nós criamos apenas os diretórios - que são necessários. Entretanto, sinta-se livre para criar esses - diretórios. - -7.6. Criando Arquivos Essenciais e Links Simbólicos - - Historicamente, o Linux mantém uma lista dos sistemas de arquivos - montados no arquivo /etc/mtab. Kernels modernos mantém essa lista - internamente e expõem ela para a(o) usuária(o) via sistema de arquivos - /proc. Para satisfazer utilitários que esperam a presença de /etc/mtab, - crie o seguinte link simbólico: -ln -sv /proc/self/mounts /etc/mtab - - Crie um arquivo /etc/hosts básico para ser referenciado em algumas - suítes de teste, e em um dos arquivos de configuração do Perl também: -cat > /etc/hosts << EOF -127.0.0.1 localhost $(hostname) -::1 localhost -EOF - - Para que a(o) usuária(o) root seja capaz de logar e para que o nome - “root†seja reconhecido, precisa existir entradas relevantes nos - arquivos /etc/passwd e /etc/group. - - Crie o arquivo /etc/passwd executando o seguinte comando: -cat > /etc/passwd << "EOF" -root:x:0:0:root:/root:/bin/bash -bin:x:1:1:bin:/dev/null:/usr/bin/false -daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false -messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false -systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/usr/bin/false -systemd-journal-remote:x:74:74:systemd Journal Remote:/:/usr/bin/false -systemd-journal-upload:x:75:75:systemd Journal Upload:/:/usr/bin/false -systemd-network:x:76:76:systemd Network Management:/:/usr/bin/false -systemd-resolve:x:77:77:systemd Resolver:/:/usr/bin/false -systemd-timesync:x:78:78:systemd Time Synchronization:/:/usr/bin/false -systemd-coredump:x:79:79:systemd Core Dumper:/:/usr/bin/false -uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false -systemd-oom:x:81:81:systemd Out Of Memory Daemon:/:/usr/bin/false -nobody:x:99:99:Unprivileged User:/dev/null:/usr/bin/false -EOF - - A senha atual para root será configurada mais tarde. - - Crie o arquivo /etc/group executando o seguinte comando: -cat > /etc/group << "EOF" -root:x:0: -bin:x:1:daemon -sys:x:2: -kmem:x:3: -tape:x:4: -tty:x:5: -daemon:x:6: -floppy:x:7: -disk:x:8: -lp:x:9: -dialout:x:10: -audio:x:11: -video:x:12: -utmp:x:13: -usb:x:14: -cdrom:x:15: -adm:x:16: -messagebus:x:18: -systemd-journal:x:23: -input:x:24: -mail:x:34: -kvm:x:61: -systemd-journal-gateway:x:73: -systemd-journal-remote:x:74: -systemd-journal-upload:x:75: -systemd-network:x:76: -systemd-resolve:x:77: -systemd-timesync:x:78: -systemd-coredump:x:79: -uuidd:x:80: -systemd-oom:x:81: -wheel:x:97: -nogroup:x:99: -users:x:999: -EOF - - Os grupos criados não são parte de qualquer padrão—eles são grupos - decididos em parte pelas exigências da configuração de Udev no Capítulo - 9, e em parte pelas convenções comuns empregadas por um número de - distribuições Linux existentes. Em adição, algumas suítes de teste - dependem de usuárias(os) ou grupos específicos. A Base Padrão Linux - (Linux Standard Base - LSB, disponível em - [550]http://refspecs.linuxfoundation.org/lsb.shtml) apenas recomenda - que, além do grupo root com um ID de Grupo (GID) de 0, um grupo bin com - um GID de 1 esteja presente. Todos os outros nomes de grupo e GIDs - podem ser escolhidos livremente pela(o) administradora(r) de sistema - uma vez que aplicativos bem escritos não dependem de números de GID, - mas sim usam o nome do grupo. - - Alguns testes em [551]Capítulo 8 precisam de uma(m) usuária(o) regular. - Nós adicionamos essa(e) usuária(o) aqui e deletamos essa conta ao final - daquele capítulo. -echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd -echo "tester:x:101:" >> /etc/group -install -o tester -d /home/tester - - Para remover o prompt “I have no name!â€, inicie um novo shell. Uma vez - que os arquivos /etc/passwd e /etc/group foram criados, resolução de - nome de usuária(o) e nome de grupo agora funcionará: -exec /usr/bin/bash --login - - Os aplicativos login, agetty, e init (e outros) usam um número de - arquivos de log para registrar informação tais como quem esteve - logada(o) no sistema e quando. Entretanto, esses aplicativos não - escreverão nos arquivos de log se eles já não existirem. Inicialize os - arquivos de log e dê a eles permissões adequadas: -touch /var/log/{btmp,lastlog,faillog,wtmp} -chgrp -v utmp /var/log/lastlog -chmod -v 664 /var/log/lastlog -chmod -v 600 /var/log/btmp - - O arquivo /var/log/wtmp registra todos os logins e logouts. O arquivo - /var/log/lastlog registra quando cada usuária(o) logou pela última vez. - O arquivo /var/log/faillog registra tentativas de login falhas. O - arquivo /var/log/btmp registra tentativas de login inválidas. - -Nota - - O arquivo /run/utmp registra as(os) usuárias(os) que estão atualmente - logadas(os). Esse arquivo é criado dinamicamente nos scripts de - inicialização. - -7.7. Libstdc++ oriundo de GCC-11.2.0, Passagem 2 - - Quando da construção de [552]gcc-pass2 nós tivemos que adiar a - instalação da biblioteca padrão C++, pois nenhum compilador adequado - estava disponível para compilá-la. Nós não poderíamos usar o compilador - construído naquela seção, por causa de que ele é um compilador nativo e - não deveria ser usado do lado de fora do chroot e riscos de poluir as - bibliotecas com alguns componentes do anfitrião. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 1,1 GB - -7.7.1. Instalação de Libstdc++ Alvo - -Nota - - Libstdc++ é parte dos fontes de GCC. Você deveria primeiro desempacotar - o tarball de GCC e mudar para o diretório gcc-11.2.0. - - Crie um link que existe quando da construção de libstdc++ na árvore de - gcc: -ln -s gthr-posix.h libgcc/gthr-default.h - - Crie um diretório de construção separado para libstdc++ e entre nele: -mkdir -v build -cd build - - Prepare libstdc++ para compilação: -../libstdc++-v3/configure \ - CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ - --prefix=/usr \ - --disable-multilib \ - --disable-nls \ - --host=$(uname -m)-lfs-linux-gnu \ - --disable-libstdcxx-pch - - O significado das opções de configure: - - CXXFLAGS="-g -O2 -D_GNU_SOURCE" - Esses sinalizadores são passados pelo Makefile de nível de topo - quando da feitura de uma construção completa de GCC. - - --host=$(uname -m)-lfs-linux-gnu - Nós temos que imitar o que teria acontecido se esse pacote fosse - construído como parte de uma construção completa de compilador. - Essa chave teria sido passada para configure pelo maquinário de - construção do GCC. - - --disable-libstdcxx-pch - Essa chave evita a instalação de arquivos include - pré-compilados, os quais não são necessários neste estágio. - - Compile libstdc++ executando: -make - - Instale a biblioteca: -make install - - Detalhes acerca deste pacote estão localizados em [553]Seção 8.26.2, - “Conteúdo de GCC.†- -7.8. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 280 MB - -7.8.1. Instalação de Gettext - - Para nosso conjunto temporário de ferramentas, nós apenas precisamos - instalar três aplicativos originários de Gettext. - - Prepare Gettext para compilação: -./configure --disable-shared - - O significado da opção de configure: - - --disable-shared - Nós não precisamos instalar quaisquer das bibliotecas - compartilhadas de Gettext nesta ocasião, assim não existe - necessidade de construí-las. - - Compile o pacote: -make - - Instale os aplicativos msgfmt, msgmerge, e xgettext: -cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin - - Detalhes acerca deste pacote estão localizados em [554]Seção 8.31.2, - “Conteúdo do Gettext.†- -7.9. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 50 MB - -7.9.1. Instalação de Bison - - Prepare Bison para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bison-3.8.2 - - O significado da nova opção de configure: - - --docdir=/usr/share/doc/bison-3.8.2 - Isso diz ao sistema de construção para instalar documentação de - bison em um diretório versionado. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [555]Seção 8.32.2, - “Conteúdo do Bison.†- -7.10. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 1,6 UPC - Espaço em disco exigido: 272 MB - -7.10.1. Instalação de Perl - - Prepare Perl para compilação: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl - - O significado das novas opções de Configure: - - -des - Essa é uma combinação de três opções: -d usa padrões para todos - os itens; -e assegura completamento de todas as tarefas; -s - silencia saída não essencial. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [556]Seção 8.41.2, - “Conteúdo do Perl.†- -7.11. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 1,2 UPC - Espaço em disco exigido: 359 MB - -7.11.1. Instalação de Python - -Nota - - Existem dois arquivos de pacotes cujos nomes se iniciam com “pythonâ€. - Aquele a se extrair a partir dele é Python-3.10.2.tar.xz (perceba a - primeira letra maiúscula). - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --without-ensurepip - - O significado da opção de configure: - - --enable-shared - Essa chave impede instalação de bibliotecas estáticas. - - --without-ensurepip - Essa chave desabilita o instalador de pacote de Python, o qual - não é necessário neste estágio. - - Compile o pacote: -make - -Nota - - Alguns módulos de Python 3 não podem ser construídos agora, por causa - de que as dependências não estão instaladas ainda. O sistema de - construção ainda tenta construí-las, entretanto, de forma que a - compilação de alguns arquivos falhará e a mensagem de compilador talvez - pareça indicar “fatal errorâ€. A mensagem deveria ser ignorada. Apenas - tenha certeza de que o comando de nível de topo make não tenha falhado. - Os módulos opcionais não são necessários agora e eles serão construídos - em [557]Capítulo 8. - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [558]Seção 8.50.2, - “Conteúdo do Python 3.†- -7.12. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 109 MB - -7.12.1. Instalação de Texinfo - - Primeiro, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [559]Seção 8.67.2, - “Conteúdo do Texinfo.†- -7.13. Util-linux-2.37.4 - - O pacote Util-linux contém diversos aplicativos utilitários. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 129 MB - -7.13.1. Instalação de Util-linux - - O FHS recomenda usar o diretório /var/lib/hwclock em vez do usual - diretório /etc como a localização para o arquivo adjtime. Crie esse - diretório com: -mkdir -pv /var/lib/hwclock - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --libdir=/usr/lib \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python \ - runstatedir=/run - - O significado das opções de configure: - - ADJTIME_PATH=/var/lib/hwclock/adjtime - Isso configura a localização do arquivo gravando informação - acerca do relógio de hardware de acordo com o FHS. Isso não é - estritamente necessário para essa ferramenta temporária, porém - impede a criação de um arquivo em outra localização, o qual não - seria sobrescrito ou removido quando da construção do pacote - util-linux final. - - --libdir=/usr/lib - Essa chave assegura que os links simbólicos .so apontem para o - arquivo de biblioteca compartilhada no mesmo diretório - (/usr/lib) diretamente. - - --disable-* - Essas chaves evitam avisos acerca de componentes de construção - que exigem pacotes que não estão no LFS ou ainda não estão - instalados. - - --without-python - Essa chave desabilita o uso de Python. Ela evita tentar - construir ligações desnecessárias. - - runstatedir=/run - Essa chave configura corretamente a localização do soquete usado - por uuidd e libuuid. - - Compile o pacote: -make - - Instale o pacote: -make install - - Detalhes acerca deste pacote estão localizados em [560]Seção 8.75.2, - “Conteúdo do Util-linux.†- -7.14. Limpando e Salvando o Sistema Temporário - -7.14.1. Limpando - - Primeiro, remova a documentação atualmente instalada para evitar que - ela termine no sistema final, e para salvar cerca de 35 MB: -rm -rf /usr/share/{info,man,doc}/* - - Segundo, os arquivos .la de libtool somente são úteis quando vinculados - com bibliotecas estáticas. Eles são desnecessários e potencialmente - danosos quando do uso de bibliotecas compartilhadas dinâmicas, - especialmente quando do uso de sistemas de construção não autotools. - Enquanto ainda no chroot, remova aqueles arquivos agora: -find /usr/{lib,libexec} -name \*.la -delete - - O tamanho atual de sistema é agora de cerca de 3 GB, entretanto o - diretório /tools não mais é necessário. Ele usa cerca de 1 GB de espaço - de disco. Delete ele agora: -rm -rf /tools - -7.14.2. Cópia de segurança - - Neste ponto os aplicativos e bibliotecas essenciais foram criados e seu - sistema LFS atual está em um bom estado. Seu sistema pode agora ser - copiado para posterior reuso. Em caso de falhas fatais nos capítulos - subsequentes, frequentemente acontece que remover tudo e começar de - novo (mais cuidadosamente) é a melhor opção para recuperar. - Infelizmente, todos os arquivos temporários serão removidos, também. - Para evitar desperdiçar tempo extra para refazer tudo o que foi - construído com sucesso, criar uma cópia de segurança do sistema LFS - atual talvez se prove útil. - -Nota - - Todos os passos restantes nesta seção são opcionais. Apesar disso, tão - logo você comece a instalar pacotes em [561]Capítulo 8, os arquivos - temporários serão sobrescritos. Assim, talvez seja uma boa ideia fazer - uma cópia de segurança do sistema atual conforme descrito abaixo. - - Os passos seguintes são realizados a partir do lado de fora do ambiente - chroot. Isso significa, você tem de deixar o ambiente chroot primeiro - antes de continuar. A razão para isso é para conseguir acesso a locais - do sistema de arquivos do lado de fora do ambiente chroot para - armazenar/ler o arquivamento de cópia de segurança o qual não deveria - ser colocado dentro da hierarquia de $LFS por razões de segurança. - - Se você decidiu fazer uma cópia de segurança, então deixe o ambiente - chroot: -exit - -Importante - - Todas as instruções seguintes são executadas por root em seu sistema - anfitrião. Tome cuidado extra acerca dos comandos que você vai - executar, uma vez que erros aqui podem modificar seu sistema anfitrião. - Esteja ciente de que a variável de ambiente LFS está configurada para - usuária(o) lfs por padrão, mas talvez não esteja configurada para root. - - Sempre que comandos forem ser executados por root, tenha certeza de que - você configurou LFS. - - Isso foi discutido em [562]Seção 2.6, “Configurando a Variável $LFSâ€. - - Antes de fazer uma cópia de segurança, desmonte os sistemas de arquivos - virtuais: -umount $LFS/dev/pts -umount $LFS/{sys,proc,run,dev} - - Tenha certeza de que tem pelo menos 1 GB de espaço de disco livre (os - tarballs de fonte serão incluídos no arquivamento de cópia de - segurança) no sistema de arquivos contendo diretório onde você criar o - arquivamento de cópia de segurança. - - Note que as instruções abaixo especificam o diretório home da(o) - usuária(o) root do sistema anfitrião, o qual tipicamente é encontrado - no sistema de arquivos raiz. - - Substitua $HOME por um diretório da sua escolha se você não quiser ter - a cópia de segurança armazenada no diretório home de root. - - Crie o arquivamento de cópia de segurança executando o seguinte - comando: - -Nota - - Por causa de que o arquivamento de cópia de segurança é comprimido, - dura um tempo relativamente longo (mais de 10 minutos) mesmo em um - sistema razoavelmente rápido. -cd $LFS -tar -cJpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz . - -Nota - - Se continuar para o capítulo 8, então não se esqueça de entrar - novamente no ambiente chroot conforme explanado na caixa “Importante†- abaixo. - -7.14.3. Restauro - - No caso de alguns erros tiverem sido feitos e você precisar começar de - novo, você pode usar essa cópia de segurança para restaurar o sistema e - economizar algum tempo de recuperação. Desde que os fontes estão - localizados sob $LFS, eles são incluídos no arquivamento de cópia de - segurança também, de forma que eles não precisam ser baixados - novamente. Após verificar que $LFS está configurada adequadamente, - restaure a cópia de segurança executando os seguintes comandos: - -Atenção - - Os seguintes comandos são extremamente perigosos. Se você executar rm - -rf ./* como a(o) usuária(o) root e você não mudar para o diretório - $LFS ou a variável de ambiente LFS não estiver configurada para a(o) - usuária(o) root, então isso destruirá seu sistema anfitrião inteiro. - VOCÊ ESTà AVISADA(O). -cd $LFS -rm -rf ./* -tar -xpf $HOME/lfs-temp-tools-11.1-systemd.tar.xz - - Novamente, verifique duplamente se o ambiente foi configurado - adequadamente e continue construindo o resto do sistema. - -Importante - - Se você deixou o ambiente chroot para criar uma cópia de segurança ou - reiniciar a construção usando um restauro, então lembre-se de verificar - se os sistemas de arquivos virtuais ainda estão montados (findmnt | - grep $LFS). Se eles não estiverem montados, então remonte-os agora - conforme descrito em [563]Seção 7.3, “Preparando Sistemas de Arquivos - Virtuais de Kernel†e entre novamente no ambiente chroot (veja - [564]Seção 7.4, “Entrando no Ambiente Chrootâ€) antes de continuar. - -Parte IV. Construindo o Sistema LFS - -Capítulo 8. Instalando Aplicativos Básicos de Sistema - -8.1. Introdução - - Neste capítulo, nós começamos a construir o sistema LFS pra valer. - - A instalação desse software é simples. Embora em muitos casos as - instruções de instalação pudessem ser mais curtas e mais genéricas, nós - optamos por fornecer as instruções completas para cada pacote para - minimizar as possibilidades de erros. A chave para aprender o que faz - um sistema Linux funcionar é saber para que cada pacote é usado e - porque você (ou o sistema) talvez precise dele. - - Nós não recomendamos usar otimizações. Elas podem fazer com que um - aplicativo execute ligeiramente mais rápido, mas elas também talvez - causem dificuldades de compilação e problemas quando executar o - aplicativo. Se um pacote se recusar a compilar quando usar otimização, - então tente compilá-lo sem otimização e veja se isso conserta o - problema. Mesmo se o pacote compilar quando usar otimização, existe o - risco de que ele talvez tenha sido compilado incorretamente devido às - complexas interações entre o código e ferramentas de construção. Note - também que as opções -march e -mtune usando valores não especificados - no livro não foram testadas. Isso talvez cause problemas com os pacotes - do conjunto de ferramentas (Binutils, GCC e Glibc). Os pequenos ganhos - potenciais alcançados usando otimizações de compilador frequentemente - são superados pelos riscos. Construtoras(es) de primeira vez de LFS são - encorajadas(os) a construir sem otimizações personalizadas. O sistema - subsequente ainda executará muito rápido e será estável ao mesmo tempo. - - Antes das instruções de instalação, cada página de instalação fornece - informação acerca do pacote, incluindo uma descrição concisa do que ele - contém, aproximadamente quando tempo levará para construir, e quanto - espaço de disco é exigido durante esse processo de construção. Seguindo - as instruções de instalação, existe uma lista de aplicativos e - bibliotecas (juntamente com breves descrições) que o pacote instala. - -Nota - - Os valores de UPC e espaço de disco exigido incluem dados de suíte de - teste para todos os pacotes aplicáveis em [565]Capítulo 8. Os valores - de UPC foram calculados usando um núcleo sozinho de CPU (-j1) para - todas as operações. - -8.1.1. Acerca de bibliotecas - - Em geral, as(os) editoras(es) de LFS desencorajam construir e instalar - bibliotecas estáticas. O propósito original para a maioria das - bibliotecas estáticas tem sido tornado obsoleto em um sistema moderno - Linux. Além disso, vincular uma biblioteca estática a um aplicativo - pode ser prejudicial. Se uma atualização para a biblioteca for - necessária para remover um problema de segurança, então todos os - aplicativos que usam a biblioteca estática precisarão ser vinculados de - novo à nova biblioteca. Como o uso de bibliotecas estáticas nem sempre - é óbvio, os aplicativos relevantes (e os procedimentos necessários para - fazer a vinculação) talvez nem mesmo sejam conhecidos. - - Nos procedimentos neste capítulo, nós removemos ou desabilitamos a - instalação da maioria das bibliotecas estáticas. Usualmente isso é - feito passando-se uma opção --disable-static para configure. Em outros - casos, meios alternativos são necessários. Em uns poucos casos, - especialmente glibc e gcc, o uso de bibliotecas estáticas permanece - essencial para o processo geral de construção de pacote. - - Para uma discussão mais completa acerca de bibliotecas, veja-se a - discussão [566]Bibliotecas: Estática ou compartilhada? no livro BLFS. - -8.2. Gerenciamento de Pacote - - Gerenciamento de Pacote é uma adição frequentemente solicitada ao Livro - LFS. Um Gerenciador de Pacote permite monitorar a instalação de - arquivos tornando fácil remover e atualizar pacotes. Assim como os - arquivos binários e bibliotecas, um gerenciador de pacote lidará com a - instalação de arquivos de configuração. Antes que você comece a - questionar, NÃO—esta seção não falará nem recomendará qualquer - gerenciador de pacote em particular. O que ela fornece é um resumo - acerca das técnicas mais populares e como elas funcionam. O gerenciador - de pacote perfeito para você talvez esteja entre essas técnicas ou - talvez seja uma combinação de duas ou mais dessas técnicas. Esta seção - menciona brevemente problemas que talvez surjam quando da atualização - de pacotes. - - Algumas razões porque nenhum gerenciador de pacote é mencionado em LFS - ou BLFS incluem: - * Lidar com gerenciamento de pacote retira o foco das finalidades - desses livros—ensinar como um sistema Linux é construído. - * Existem múltiplas soluções para gerenciamento de pacote, cada uma - tendo seus pontos fortes e fracos. Incluir uma que satisfaça todas - as audiências é difícil. - - Existem algumas dicas escritas no tópico acerca de gerenciamento de - pacote. Visite o [567]Hints Project e veja se uma delas se adéqua às - suas necessidades. - -8.2.1. Problemas de Atualização - - Um Gerenciador de Pacote torna fácil atualizar para versões mais novas - quando elas são liberadas. Geralmente as instruções nos livros LFS e - BLFS podem ser usadas para atualizar para versões mais novas. Aqui - estão alguns pontos que você deveria estar ciente quando da atualização - de pacotes, especialmente em um sistema em execução. - * Se o kernel Linux precisar ser atualizado (por exemplo, de 5.10.17 - para 5.10.18 ou 5.11.1), então nada mais precisa ser reconstruído. - O sistema seguirá funcionando bem graças à borda bem definida entre - kernel e espaço de usuária(o). Especificamente, os cabeçalhos de - API de Linux não precisam ser (e não deveriam ser, veja-se o - próximo item) atualizados juntamente com o kernel. Você precisará - reiniciar seu sistema para usar o kernel atualizado. - * Se os cabeçalhos de API de Linux ou Glibc precisarem ser - atualizados para uma versão mais nova, (por exemplo, de glibc-2.31 - para glibc-2.32), então é mais seguro reconstruir LFS. Ainda que - você talvez seja capaz de reconstruir todos os pacotes na ordem de - dependência deles, nós não recomendamos isso. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e se o nome da biblioteca mudar, então quaisquer pacotes - dinamicamente vinculados à biblioteca precisam ser recompilados com - a finalidade de vincular à biblioteca mais nova. (Note que não - existe correlação entre a versão de pacote e o nome da biblioteca). - Por exemplo, considere um pacote foo-1.2.3 que instala uma - biblioteca compartilhada com nome libfoo.so.1. Se você atualizar o - pacote para uma versão mais nova foo-1.2.4 que instala uma - biblioteca compartilhada com nome libfoo.so.2. Nesse caso, - quaisquer pacotes que estiverem dinamicamente vinculados à - libfoo.so.1 precisam ser recompilados para vincular à libfoo.so.2 - com a finalidade de usar a nova versão de biblioteca. Você não - deveria remover as bibliotecas anteriores a menos que todos os - pacotes dependentes sejam recompilados. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém o número de versão do - arquivo de biblioteca decrescer (por exemplo, o nome da biblioteca - é mantido como libfoo.so.1, porém o nome do arquivo de biblioteca é - modificado de libfoo.so.1.25 para libfoo.so.1.24), então você - deveria remover o arquivo de biblioteca originário da versão - previamente instalada (libfoo.so.1.25 no caso). Ou, uma execução de - ldconfig (por você mesmo usando uma linha de comando, ou pela - instalação de algum pacote) reconfigurará o link simbólico - libfoo.so.1 para apontar para o antigo arquivo de biblioteca, pois - ele aparenta ter uma versão “mais novaâ€, uma vez que seu número de - versão é mais largo. Essa situação talvez aconteceu se você teve - que desatualizar um pacote, ou o pacote muda repentinamente o - esquema de versionamento de arquivos de biblioteca. - * Se um pacote contendo uma biblioteca compartilhada for atualizado, - e o nome da biblioteca não mudar, porém um problema severo - (especialmente, uma vulnerabilidade de segurança) for corrigido, - então todos os aplicativos em execução vinculados à biblioteca - compartilhada deveriam ser reiniciados. O seguinte comando, - executado como root após atualização, listará o que está usando as - versões antigas daquelas bibliotecas (substitua libfoo com o nome - da biblioteca): -grep -l -e 'libfoo.*deleted' /proc/*/maps | - tr -cd 0-9\\n | xargs -r ps u - Se OpenSSH estiver sendo usado para acessar o sistema e ele estiver - vinculado à biblioteca atualizada, então você precisa reiniciar o - serviço sshd, então deslogar-se, logar-se novamente, e reexecutar - aquele comando para confirmar que nada ainda está usando as - bibliotecas deletadas. - * Se um binário ou uma biblioteca compartilhada for sobrescrito, - então os processos usando o código ou dados no binário ou - biblioteca talvez quebrem. A maneira correta para atualizar um - binário ou uma biblioteca compartilhada sem causar quebra ao - processo é removê-lo primeiro, então instalar a versão nova na - posição. O comando install fornecido por Coreutils já implementou - isso e a maioria dos pacotes usa ele para instalar binários e - bibliotecas. Isso significa que você não estaria encrencada(o) por - esse problema a maior parte do tempo. Entretanto, o processo de - instalação de alguns pacotes (notadamente Mozilla JS em BLFS) - apenas sobrescreve o arquivo se ele existir e causa uma quebra, de - forma que é mais seguro salvar seu trabalho e fechar processos em - execução desnecessários antes de atualizar um pacote. - -8.2.2. Técnicas de Gerenciamento de Pacote - - As seguintes são algumas técnicas comuns de gerenciamento de pacote. - Antes de se decidir acerca de um gerenciador de pacote, pesquise sobre - as várias técnicas, particularmente os pontos fracos do esquema em - particular. - -8.2.2.1. Está Tudo na Minha Cabeça! - - Sim, isso é uma técnica de gerenciamento de pacote. Algumas pessoas não - encontram a necessidade para um gerenciador de pacote, pois elas - conhecem os pacotes intimamente e sabem quais arquivos estão instalados - por cada pacote. Algumas(ns) usuárias(os) também não precisam de - qualquer gerenciamento de pacote, pois elas(es) planejam reconstruir o - sistema inteiro quando um pacote for mudado. - -8.2.2.2. Instalação em Diretórios Separados - - Esse é um gerenciamento de pacote simplista que não necessita de - qualquer pacote extra para gerenciar as instalações. Cada pacote é - instalado em um diretório separado. Por exemplo, o pacote foo-1.1 é - instalado em /usr/pkg/foo-1.1 e um link simbólico é feito de - /usr/pkg/foo para /usr/pkg/foo-1.1. Quando da instalação de uma nova - versão foo-1.2, ela é instalada em /usr/pkg/foo-1.2 e o link simbólico - anterior é substituído por um link simbólico para a nova versão. - - Variáveis de ambiente tais como PATH, LD_LIBRARY_PATH, MANPATH, - INFOPATH e CPPFLAGS precisam ser expandidas para incluir /usr/pkg/foo. - Para mais que uns poucos pacotes, esse esquema se torna ingerenciável. - -8.2.2.3. Gerenciamento de Pacote Estilo Link Simbólico - - Essa é uma variação da técnica de gerenciamento de pacote anterior. - Cada pacote é instalado similar ao esquema anterior. Mas, em vez de - fazer o link simbólico, cada arquivo é simbolicamente vinculado à - hierarquia /usr. Isso remove a necessidade de expandir as variáveis de - ambiente. Ainda que os links simbólicos possam ser criados pela(o) - usuária(o) para automatizar a criação, muitos gerenciadores de pacote - tem sido escritos usando essa abordagem. Alguns dos populares inclui - Stow, Epkg, Graft, e Depot. - - A instalação precisa ser falseada, de modo que o pacote pense que está - instalado em /usr, ainda que, na realidade, ele esteja instalado na - hierarquia /usr/pkg. Instalar dessa maneira geralmente não é uma tarefa - trivial. Por exemplo, considere que você está instalando um pacote - libfoo-1.1. As seguintes instruções talvez não instalem adequadamente o - pacote: -./configure --prefix=/usr/pkg/libfoo/1.1 -make -make install - - A instalação funcionará, mas os pacotes dependentes talvez não se - vinculem à libfoo conforme você esperaria. Se você compilar um pacote - que vincula à libfoo, então você talvez note que ele está vinculado a - /usr/pkg/libfoo/1.1/lib/libfoo.so.1 em vez de /usr/lib/libfoo.so.1 como - você esperaria. A abordagem correta é usar a estratégia DESTDIR para - falsear a instalação do pacote. Essa abordagem funciona como se segue: -./configure --prefix=/usr -make -make DESTDIR=/usr/pkg/libfoo/1.1 install - - A maioria dos pacotes suporta essa abordagem, mas existem alguns que - não. Para os pacotes não conformes, você talvez ou precise instalar - manualmente o pacote, ou você talvez ache que é mais fácil instalar - alguns pacotes problemáticos em /opt. - -8.2.2.4. Baseado em Marca Temporal - - Nessa técnica, um arquivo é marcado temporalmente antes da instalação - do pacote. Após a instalação, um simples uso do comando find com as - opções apropriadas pode gerar um registro de todos os arquivos - instalados após o arquivo de marca temporal ser criado. Um gerenciador - de pacote escrito com essa abordagem é instalação-registro. - - Ainda que esse esquema tenha a vantagem de ser simples, ele tem duas - desvantagens. Se, durante a instalação, os arquivos forem instalados - com qualquer marca temporal outra que a hora atual, então aqueles - arquivos não serão rastreados pelo gerenciador de pacote. Além disso, - esse esquema pode ser usado apenas quando um pacote for instalado de - cada vez. Os registros não são confiáveis se dois pacotes estão sendo - instalados em dois consoles. - -8.2.2.5. Scripts de Rastreamento de Instalação - - Nessa abordagem, os comandos que os scripts de instalação realizam são - gravados. Existem duas técnicas que se pode usar: - - A variável de ambiente LD_PRELOAD pode ser configurada para apontar - para uma biblioteca a ser pré-carregada antes da instalação. Durante a - instalação, essa biblioteca rastreia os pacotes que estão sendo - instalados anexando-se a vários executáveis tais como cp, install, mv e - rastreando as chamadas de sistema que modificam o sistema de arquivos. - Para que essa abordagem funcione, todos os executáveis precisam ser - dinamicamente vinculados sem o bit suid ou sgid. Pré-carregar a - biblioteca talvez cause alguns efeitos colaterais indesejados durante a - instalação. Portanto, aconselha-se que se realize alguns testes para - garantir que o gerenciador de pacote não quebre nada e registre todos - os arquivos adequados. - - A segunda técnica é usar strace, que registra todas as chamadas de - sistema feitas durante a execução dos scripts de instalação. - -8.2.2.6. Criando Arquivamentos de Pacote - - Nesse esquema, a instalação do pacote é falseada em uma árvore separada - como descrito no gerenciamento de pacote estilo Link Simbólico. Após a - instalação, um arquivamento de pacote é criado usando os arquivos - instalados. Esse arquivamento é então usado para instalar o pacote - tanto na máquina local quanto pode até ser usado para instalar o pacote - em outras máquinas. - - Essa abordagem é usada pela maioria dos gerenciadores de pacote - encontrados nas distribuições comerciais. Exemplos de gerenciadores de - pacote que seguem essa abordagem são RPM (o qual, incidentalmente, é - exigido pela [568]Linux Standard Base Specification), pkg-utils, apt do - Debian, e sistema Portage do Gentoo. Uma dica descrevendo como adotar - esse estilo de gerenciamento de pacote para sistemas LFS está - localizada em - [569]https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.tx - t. - - Criação de arquivos pacote que incluem informação de dependência é - complexa e está além do escopo de LFS. - - Slackware usa um sistema baseado em tar para arquivamentos de pacote. - Esse sistema intencionalmente não manuseia dependências de pacote como - gerenciadores de pacote mais complexos fazem. Para detalhes de - gerenciamento de pacote Slackware, veja - [570]http://www.slackbook.org/html/package-management.html. - -8.2.2.7. Gerenciamento Baseado em Usuária(o) - - Esse esquema, único para LFS, foi concebido por Matthias Benkmann, e - está disponível a partir do [571]Hints Project. Nesse esquema, cada - pacote é instalado como uma(m) usuária(o) separada(o) nos locais - padrão. Arquivos pertencentes a um pacote são facilmente identificados - checando o ID de usuária(o). As características e deficiências dessa - abordagem são muito complexas para serem descritas nesta seção. Para os - detalhes, por favor veja a dica em - [572]https://www.linuxfromscratch.org/hints/downloads/files/more_contro - l_and_pkg_man.txt. - -8.2.3. Implantando LFS em Múltiplos Sistemas - - Uma das vantagens de um sistema LFS é a de que não existem arquivos que - dependam da posição de arquivos em um sistema de disco. Clonar uma - construção LFS para outro computador com a mesma arquitetura que a do - sistema base é tão simples quanto usar tar na partição LFS que contém o - diretório raiz (cerca de 250MB descomprimido para uma construção base - LFS), copiando aquele arquivo via transferência de rede ou CD-ROM para - o novo sistema e expandindo-o. A partir daquele ponto, uns poucos - arquivos de configuração terão que ser mudados. Arquivos de - configuração que talvez precisem ser atualizados incluem: /etc/hosts, - /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, e /etc/ld.so.conf. - - Um kernel personalizado talvez seja necessário ser construído para o - novo sistema dependendo das diferenças entre hardware de sistema e a - configuração original do kernel. - -Nota - - Tem havido alguns relatos de problemas quando da cópia entre - arquiteturas similares, porém não idênticas. Por exemplo, o conjunto de - instrução para um sistema Intel não é idêntico com um processador AMD, - e versões posteriores de alguns processadores talvez tenham instruções - que estão indisponíveis em versões anteriores. - - Finalmente, o novo sistema tem de ser tornado inicializável via - [573]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.3. Man-pages-5.13 - - O pacote Man-pages contém mais que 2.200 páginas de manual. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 33 MB - -8.3.1. Instalação de Man-pages - - Instale Man-pages executando: -make prefix=/usr install - -8.3.2. Conteúdo de Man-pages - - Arquivos instalados: várias páginas de manual - -Breves Descrições - - man pages - - Descreve funções da linguagem de programação C, arquivos importantes de - dispositivo e arquivos significantes de configuração - -8.4. Iana-Etc-20220207 - - O pacote Iana-Etc fornece dados para serviços e protocolos de rede. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,7 MB - -8.4.1. Instalação de Iana-Etc - - Para esse pacote, nós apenas precisamos copiar os arquivos para o - lugar: -cp services protocols /etc - -8.4.2. Conteúdo de Iana-Etc - - Arquivos instalados: /etc/protocols e /etc/services - -Breves Descrições - - /etc/protocols - - Descreve os vários protocolos DARPA de Internet que estão disponíveis a - partir do subsistema TCP/IP - - /etc/services - - Fornece um mapeamento entre nomes textuais amigáveis para serviços de - internet e seus números de porta atribuídos e tipos de protocolos não - expostos - -8.5. Glibc-2.35 - - O pacote Glibc contém a biblioteca C principal. Essa biblioteca fornece - as rotinas básicas para alocação de memória, busca em diretórios, - abertura e fechamento de arquivos, leitura e escrita de arquivos, - manuseio de sequências de caracteres, correspondência de padrões, - aritmética, e daí por diante. - Tempo aproximado de construção: 24 UPC - Espaço em disco exigido: 2,8 GB - -8.5.1. Instalação de Glibc - - Alguns dos aplicativos Glibc usam o diretório não conforme com FHS - /var/db para armazenar seus dados em tempo de execução. Aplique a - seguinte correção para fazer com que tais aplicativos armazenem seus - dados em tempo de execução nos locais conformes com FHS: -patch -Np1 -i ../glibc-2.35-fhs-1.patch - - A documentação de Glibc recomenda construir Glibc em um diretório - dedicado à construção: -mkdir -v build -cd build - - Garanta que os utilitários ldconfig e sln serão instalados no - /usr/sbin: -echo "rootsbindir=/usr/sbin" > configparms - - Prepare Glibc para compilação: -../configure --prefix=/usr \ - --disable-werror \ - --enable-kernel=3.2 \ - --enable-stack-protector=strong \ - --with-headers=/usr/include \ - libc_cv_slibdir=/usr/lib - - O significado das opções de configure: - - --disable-werror - Essa opção desabilita a opção -Werror passada para GCC. Isso é - necessário para a execução da suíte de teste. - - --enable-kernel=3.2 - Essa opção diz ao sistema de construção que este glibc talvez - seja usado com kernels tão antigos quanto 3.2. Isso significa - que a geração de contornos no caso de uma chamada de sistema - introduzida em uma versão posterior não pode ser usada. - - --enable-stack-protector=strong - Essa opção aumenta a segurança de sistema adicionando código - extra para verificar estouros de buffer, tais como ataques de - esmagamento de pilha. - - --with-headers=/usr/include - Essa opção diz ao sistema de construção onde encontrar os - cabeçalhos de API de kernel. - - libc_cv_slibdir=/usr/lib - Essa variável configura a biblioteca correta para todos os - sistemas. Nós não queremos que lib64 seja usada. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para Glibc é considerada crítica. Não - pule sob qualquer circunstância. - - Geralmente uns poucos testes não passam. As falhas de teste listadas - abaixo são usualmente seguras ignorar. -make check - - Você talvez veja algumas falhas de teste. A suíte de teste de Glibc é - de alguma forma dependente do sistema anfitrião. Umas poucas falhas - saídas de mais que 4.200 testes geralmente podem ignoradas. Esta é uma - lista dos problemas mais comuns vistos para versões recentes de LFS: - * io/tst-lchmod é conhecido por falhar no ambiente chroot de LFS. - * misc/tst-ttyname é conhecido por falhar no ambiente chroot de LFS. - * O teste nss/tst-nss-files-hosts-multi é conhecido por falhar se o - sistema não tiver endereços IP não loopback. - - Mesmo sendo uma mensagem inofensiva, o estágio de instalação de Glibc - reclamará acerca da ausência de /etc/ld.so.conf. Impeça esse alerta - com: -touch /etc/ld.so.conf - - Conserte o Makefile para pular uma verificação de sanidade - desnecessária que falha no ambiente parcial de LFS: -sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile - - Instale o pacote: -make install - - Conserte caminho codificado rigidamente para o carregador de executável - em script ldd: -sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd - - Instale o arquivo de configuração e diretório de tempo de execução para - nscd: -cp -v ../nscd/nscd.conf /etc/nscd.conf -mkdir -pv /var/cache/nscd - - Instale os arquivos de suporte de systemd para nscd: -install -v -Dm644 ../nscd/nscd.tmpfiles /usr/lib/tmpfiles.d/nscd.conf -install -v -Dm644 ../nscd/nscd.service /usr/lib/systemd/system/nscd.service - - Em seguida, instale os locales que podem fazer o sistema responder em - um idioma diferente. Nenhum dos locales é exigido, mas se algum deles - estiver faltando, então as suítes de teste de futuros pacotes pulariam - casos de teste importantes. - - Locales individuais podem ser instalados usando o aplicativo localedef. - Por exemplo, o segundo comando localedef abaixo combina a definição de - locale independente de carácter /usr/share/i18n/locales/cs_CZ com a - definição de mapa de caracteres /usr/share/i18n/charmaps/UTF-8.gz e - adiciona o resultado ao arquivo /usr/lib/locale/locale-archive. As - seguintes instruções instalarão o conjunto mínimo de locales necessário - para a cobertura ótima de testes: -mkdir -pv /usr/lib/locale -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i el_GR -f ISO-8859-7 el_GR -localedef -i en_GB -f ISO-8859-1 en_GB -localedef -i en_GB -f UTF-8 en_GB.UTF-8 -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i es_ES -f ISO-8859-15 es_ES@euro -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fa_IR -f UTF-8 fa_IR -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro -localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 -localedef -i is_IS -f ISO-8859-1 is_IS -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i it_IT -f ISO-8859-15 it_IT@euro -localedef -i it_IT -f UTF-8 it_IT.UTF-8 -localedef -i ja_JP -f EUC-JP ja_JP -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true -localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 -localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro -localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R -localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 -localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 -localedef -i zh_CN -f GB18030 zh_CN.GB18030 -localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS -localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 - - Em adição, instale o locale para seu próprio país, idioma e conjunto de - caracteres. - - Alternativamente, instale todos os locales listados no arquivo - glibc-2.35/localedata/SUPPORTED (inclui cada locale listado acima e - muitos mais) de uma vez com o seguinte comando consumidor de tempo: -make localedata/install-locales - - Então, use o comando localedef para criar e instalar locales não - listados no arquivo glibc-2.35/localedata/SUPPORTED quando você - precisar deles. Por exemplo, os seguintes dois locales são necessários - para alguns testes posteriormente neste capítulo: -localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true - -Nota - - Glibc agora usa libidn2 quando da resolução de nomes - internacionalizados de domínio. Essa é uma dependência de tempo de - execução. Se essa capacidade for necessária, então as instruções para - instalar libidn2 estão na [574]página libidn2 de BLFS. - -8.5.2. Configurando Glibc - -8.5.2.1. Adicionando nsswitch.conf - - O arquivo /etc/nsswitch.conf precisa ser criado, pois os padrões de - Glibc não funcionam bem em um ambiente em rede. - - Crie um novo arquivo /etc/nsswitch.conf executando o seguinte: -cat > /etc/nsswitch.conf << "EOF" -# Begin /etc/nsswitch.conf - -passwd: files -group: files -shadow: files - -hosts: files dns -networks: files - -protocols: files -services: files -ethers: files -rpc: files - -# End /etc/nsswitch.conf -EOF - -8.5.2.2. Adicionando dados de fuso horário - - Instale e configure os dados de fuso horário com o seguinte: -tar -xf ../../tzdata2021e.tar.gz - -ZONEINFO=/usr/share/zoneinfo -mkdir -pv $ZONEINFO/{posix,right} - -for tz in etcetera southamerica northamerica europe africa antarctica \ - asia australasia backward; do - zic -L /dev/null -d $ZONEINFO ${tz} - zic -L /dev/null -d $ZONEINFO/posix ${tz} - zic -L leapseconds -d $ZONEINFO/right ${tz} -done - -cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO -zic -d $ZONEINFO -p America/New_York -unset ZONEINFO - - O significado dos comandos zic: - - zic -L /dev/null ... - Isso cria fusos horários posix sem quaisquer segundos bissextos. - É convencional colocá-los em ambos zoneinfo e zoneinfo/posix. É - necessário colocar os fusos horários POSIX em zoneinfo, do - contrário várias suítes de teste reportarão erros. Em um sistema - embarcado, onde o espaço é apertado e você não pretende nunca - atualizar os fusos horários, você poderia economizar 1,9 MB não - usando o diretório posix, mas alguns aplicativos ou suítes de - teste poderiam produzir algumas falhas. - - zic -L leapseconds ... - Isso cria fusos horários corretos, incluindo segundos bissextos. - Em um sistema embarcado, onde o espaço é apertado e você não - pretende nunca atualizar os fusos horários, ou se importa com a - hora correta, você poderia economizar 1,9 MB omitindo o - diretório right. - - zic ... -p ... - Isso cria o arquivo posixrules. Nós usamos New York, pois POSIX - exige que as regras de horário de verão estejam de acordo com - regras dos Estados Unidos da América do Norte. - - Uma maneira para determinar o fuso horário local é executando o - seguinte script: -tzselect - - Depois de responder à umas poucas perguntas sobre a localização, o - script retornará o nome do fuso horário (por exemplo, - America/Edmonton). Existem também alguns outros possíveis fusos - horários listados em /usr/share/zoneinfo, tais como Canada/Eastern ou - EST5EDT que não são identificados pelo script, mas podem ser usados. - - Então crie o arquivo /etc/localtime executando: -ln -sfv /usr/share/zoneinfo/ /etc/localtime - - Substitua com o nome do fuso horário selecionado (por exemplo, - Canada/Eastern). - -8.5.2.3. Configurando o Carregador Dinâmico - - Por padrão, o carregador dinâmico (/lib/ld-linux.so.2) procura em /lib - e /usr/lib por bibliotecas dinâmicas que são necessárias para - aplicativos assim que são executados. Entretanto, se existirem - bibliotecas em outros diretórios diferentes de /lib e /usr/lib, então - esses precisam ser adicionados ao arquivo /etc/ld.so.conf para a - finalidade de que o carregador dinâmico encontre elas. Dois diretórios - que são comumente conhecidos por conterem bibliotecas adicionais são - /usr/local/lib e /opt/lib, então adicione esses diretórios ao caminho - de busca do carregador dinâmico. - - Crie um novo arquivo /etc/ld.so.conf executando o seguinte: -cat > /etc/ld.so.conf << "EOF" -# Begin /etc/ld.so.conf -/usr/local/lib -/opt/lib - -EOF - - Se desejado, o carregador dinâmico também pode pesquisar um diretório e - incluir o conteúdo de arquivos encontrados lá. Geralmente os arquivos - nesse diretório include são uma linha especificando o caminho de - biblioteca desejado. Para adicionar essa capacidade, execute os - seguintes comandos: -cat >> /etc/ld.so.conf << "EOF" -# Add an include directory -include /etc/ld.so.conf.d/*.conf - -EOF -mkdir -pv /etc/ld.so.conf.d - -8.5.3. Conteúdo de Glibc - - Aplicativos instalados: gencat, getconf, getent, iconv, iconvconfig, - ldconfig, ldd, lddlibc4, ld.so (link simbólico para - ld-linux-x86-64.so.2 ou ld-linux.so.2), locale, localedef, makedb, - mtrace, nscd, pcprofiledump, pldd, sln, sotruss, sprof, tzselect, - xtrace, zdump, e zic - Bibliotecas instaladas: ld-linux-x86-64.so.2, ld-linux.so.2, - libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so}, libc_nonshared.a, - libc_malloc_debug.so, libcrypt.{a,so}, libdl.{a,so.2}, libg.a, - libm.{a,so}, libmcheck.a, libmemusage.so, libmvec.{a,so}, libnsl.so.1, - libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, - libpcprofile.so, libpthread.{a,so.0}, libresolv.{a,so}, librt.{a,so.1}, - libthread_db.so, e libutil.{a,so.1} - Diretórios instalados: /usr/include/arpa, /usr/include/bits, - /usr/include/gnu, /usr/include/net, /usr/include/netash, - /usr/include/netatalk, /usr/include/netax25, /usr/include/neteconet, - /usr/include/netinet, /usr/include/netipx, /usr/include/netiucv, - /usr/include/netpacket, /usr/include/netrom, /usr/include/netrose, - /usr/include/nfs, /usr/include/protocols, /usr/include/rpc, - /usr/include/sys, /usr/lib/audit, /usr/lib/gconv, /usr/lib/locale, - /usr/libexec/getconf, /usr/share/i18n, /usr/share/zoneinfo, - /var/cache/nscd, e /var/lib/nss_db - -Descrições Curtas - - gencat - - Gera catálogos de mensagem - - getconf - - Exibe os valores de configuração de sistema para variáveis específicas - do sistema de arquivos - - getent - - Obtém entradas a partir de uma base de dados administrativa - - iconv - - Realiza conversão de conjuntos de caracteres - - iconvconfig - - Cria arquivos de configuração de módulos de carregamento rápido de - iconv - - ldconfig - - Configura as ligações de tempo de execução do vinculador dinâmico - - ldd - - Reporta quis bibliotecas compartilhadas são exigidas por cada dado - aplicativo ou biblioteca compartilhada - - lddlibc4 - - Auxilia ldd com arquivos objeto. Isso não existe em arquiteturas mais - novas como x86_64 - - locale - - Imprime várias informações sobre o locale atual - - localedef - - Compila especificações de locale - - makedb - - Cria um banco de dados simples a partir de uma entrada textual - - mtrace - - Lê e interpreta um arquivo de rastreamento de memória e exibe um resumo - em formato legível por humanos - - nscd - - Um daemon que fornece um cache para as solicitações de serviço de nomes - mais comuns - - pcprofiledump - - Despeja informação gerada pelos perfis do PC - - pldd - - Lista objetos dinâmicos compartilhados usados por processos em execução - - sln - - Um aplicativo ln vinculado estaticamente - - sotruss - - Rastreia chamadas de procedimentos de bibliotecas compartilhadas de um - comando especificado - - sprof - - Lê e exibe dados de perfil de objetos compartilhados - - tzselect - - Pergunta ao usuário sobre a localização do sistema e reporta a - correspondente descrição de fuso horário - - xtrace - - Rastreia a execução de um aplicativo exibindo a função atualmente - executada - - zdump - - O despejador de fuso horário - - zic - - O compilador de fuso horário - - ld-*.so - - O aplicativo ajudador para executáveis de bibliotecas compartilhadas - - libBrokenLocale - - Usado internamente por Glibc como um hack grosseiro para executar - aplicativos quebrados (por exemplo, alguns aplicativos Motif). Veja - comentários em glibc-2.35/locale/broken_cur_max.c para mais informação - - libanl - - Uma biblioteca assíncrona de pesquisa de nomes - - libc - - A biblioteca C principal - - libc_malloc_debug - - Liga verificação de alocação de memória quando pré-carregada - - libcrypt - - A biblioteca de criptografia - - libdl - - Biblioteca fictícia que não contém funções. Anteriormente era a - biblioteca de interface do vinculador dinâmico, cujas funções agora - estão em libc - - libg - - Biblioteca fictícia que não contém funções. Anteriormente era uma - biblioteca de tempo de execução para g++ - - libm - - A biblioteca matemática - - libmvec - - A biblioteca de vetor matemático, vinculada conforme necessária quando - libm for usada - - libmcheck - - Liga verificação de alocação de memória quando quando vinculada para - - libmemusage - - Usado por memusage para ajudar a coletar informação sobre o uso de - memória de um aplicativo - - libnsl - - A biblioteca de serviços de rede, agora obsoleta - - libnss_* - - Os módulos de Name Service Switch, contendo funções para resolução de - nomes de hosts, nomes de usuárias(os), nomes de grupos, pseudônimos, - serviços, protocolos, etc. Carregados por libc conforme a configuração - em /etc/nsswitch.conf - - libpcprofile - - Pode ser pré-carregada para PC perfilar um executável - - libpthread - - Biblioteca fictícia que não contém funções. Anteriormente continha - funções fornecendo a maior parte das interfaces especificadas pela - Extensão POSIX.1b de Tempo Real, agora as funções estão em libc - - libresolv - - Contém funções para criação, envio e interpretação de pacotes para os - servidores de nomes de domínio de Internet - - librt - - Contém funções fornecendo a maior parte das interfaces especificadas - pela Extensão POSIX.1b de Tempo Real - - libthread_db - - Contém funções úteis para construir depuradores para aplicativos de - múltiplas camadas - - libutil - - Biblioteca fictícia que não contém funções. Anteriormente continha - código para funções “standard†usadas em muitos utilitários Unix. Essas - funções agora estão em libc - -8.6. Zlib-1.2.11 - - O pacote Zlib contém rotinas de compressão e descompressão usadas por - alguns aplicativos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,0 MB - -8.6.1. Instalação de Zlib - - Prepare Zlib para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libz.a - -8.6.2. Conteúdo de Zlib - - Bibliotecas instaladas: libz.so - -Descrições Curtas - - libz - - Contém funções de compressão e descompressão usadas por alguns - aplicativos - -8.7. Bzip2-1.0.8 - - O pacote Bzip2 contém aplicativos para comprimir e descomprimir - arquivos. Comprimir arquivos de texto com bzip2 gera uma muito melhor - percentagem de compressão que com o tradicional gzip. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,2 MB - -8.7.1. Instalação de Bzip2 - - Aplique um patch que instalará a documentação para esse pacote: -patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch - - O seguinte comando garante que a instalação de links simbólicos sejam - relativos: -sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile - - Garanta que as páginas de manual sejam instaladas na localização - correta: -sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile - - Prepare Bzip2 para compilação com: -make -f Makefile-libbz2_so -make clean - - O significado do parâmetro de make: - - -f Makefile-libbz2_so - Isso causará Bzip2 ser construído usando um arquivo Makefile - diferente, nesse caso o arquivo Makefile-libbz2_so, o qual cria - uma biblioteca dinâmica libbz2.so e vincula os utilitários de - Bzip2 a ela. - - Compile e teste o pacote: -make - - Instale os aplicativos: -make PREFIX=/usr install - - Instale a biblioteca compartilhada: -cp -av libbz2.so.* /usr/lib -ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so - - Instale o binário compartilhado bzip2 no diretório /usr/bin, e - substitua duas cópias de bzip2 com links simbólicos: -cp -v bzip2-shared /usr/bin/bzip2 -for i in /usr/bin/{bzcat,bunzip2}; do - ln -sfv bzip2 $i -done - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libbz2.a - -8.7.2. Conteúdo de Bzip2 - - Aplicativos instalados: bunzip2 (link para bzip2), bzcat (link para - bzip2), bzcmp (link para bzdiff), bzdiff, bzegrep (link para bzgrep), - bzfgrep (link para bzgrep), bzgrep, bzip2, bzip2recover, bzless (link - para bzmore), e bzmore - Bibliotecas instaladas: libbz2.so - Diretórios instalados: /usr/share/doc/bzip2-1.0.8 - -Descrições Curtas - - bunzip2 - - Descomprime arquivos compactados com bzip - - bzcat - - Descomprime para a saída padrão - - bzcmp - - Executa cmp em arquivos compactados com bzip - - bzdiff - - Executa diff em arquivos compactados com bzip - - bzegrep - - Executa egrep em arquivos compactados com bzip - - bzfgrep - - Executa fgrep em arquivos compactados com bzip - - bzgrep - - Executa grep em arquivos compactados com bzip - - bzip2 - - Comprime arquivos usando o algoritmo de compressão de texto de - classificação de blocos Burrows-Wheeler com codificação Huffman; a taxa - de compressão é melhor que aquela obtida por compressores mais - convencionais usando algoritmos “Lempel-Zivâ€, como gzip - - bzip2recover - - Tenta recuperar dados a partir de arquivos danificados comprimidos com - bzip - - bzless - - Executa less em arquivos compactados com bzip - - bzmore - - Executa more em arquivos compactados com bzip - - libbz2 - - A biblioteca que implementa compressão de dados de classificação de - blocos sem perdas, usando o algoritmo Burrows-Wheeler - -8.8. Xz-5.2.5 - - O pacote Xz contém aplicativos para compressão e descompressão de - arquivos. Ele fornece capacidades para os formatos de compressão lzma e - o mais novo xz. Comprimir arquivos de texto com xz gera uma melhor - percentagem de compressão que os tradicionais comandos gzip ou bzip2. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.8.1. Instalação de Xz - - Prepare Xz para compilação com: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/xz-5.2.5 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.8.2. Conteúdo de Xz - - Aplicativos instalados: lzcat (link para xz), lzcmp (link para xzdiff), - lzdiff (link para xzdiff), lzegrep (link para xzgrep), lzfgrep (link - para xzgrep), lzgrep (link para xzgrep), lzless (link para xzless), - lzma (link para xz), lzmadec, lzmainfo, lzmore (link para xzmore), - unlzma (link para xz), unxz (link para xz), xz, xzcat (link para xz), - xzcmp (link para xzdiff), xzdec, xzdiff, xzegrep (link para xzgrep), - xzfgrep (link para xzgrep), xzgrep, xzless, e xzmore - Bibliotecas instaladas: liblzma.so - Diretórios instalados: /usr/include/lzma e /usr/share/doc/xz-5.2.5 - -Descrições Curtas - - lzcat - - Descomprime para a saída padrão - - lzcmp - - Executa cmp em arquivos comprimidos LZMA - - lzdiff - - Executa diff em arquivos comprimidos LZMA - - lzegrep - - Executa egrep em arquivos comprimidos LZMA - - lzfgrep - - Executa fgrep em arquivos comprimidos LZMA - - lzgrep - - Executa grep em arquivos comprimidos LZMA - - lzless - - Executa less em arquivos comprimidos LZMA - - lzma - - Comprime ou descomprime arquivos usando o formato LZMA - - lzmadec - - Um decodificador pequeno e rápido para arquivos comprimidos LZMA - - lzmainfo - - Exibe informação armazenada no cabeçalho de arquivo comprimido com LZMA - - lzmore - - Executa more em arquivos comprimidos LZMA - - unlzma - - Descomprime arquivos usando o formato LZMA - - unxz - - Descomprime arquivos usando o formato XZ - - xz - - Comprime ou descomprime arquivos usando o formato XZ - - xzcat - - Descomprime para a saída padrão - - xzcmp - - Executa cmp em arquivos comprimidos XZ - - xzdec - - Um decodificador pequeno e rápido para arquivos comprimidos XZ - - xzdiff - - Executa diff em arquivos comprimidos XZ - - xzegrep - - Executa egrep em arquivos comprimidos XZ - - xzfgrep - - Executa fgrep em arquivos comprimidos XZ - - xzgrep - - Executa grep em arquivos comprimidos XZ - - xzless - - Executa less em arquivos comprimidos XZ - - xzmore - - Executa more em arquivos comprimidos XZ - - liblzma - - A biblioteca que implementa compressão de dados de classificação de - blocos, sem perdas, usando o algoritmo de cadeia Lempel-Ziv-Markov - -8.9. Zstd-1.5.2 - - Zstandard é um algoritmo de tempo real de compressão, fornecendo taxas - altas de compressão. Ele oferece um intervalo muito amplo de - combinações de compressão/velocidade, enquanto é apoiado por um - decodificador muito rápido. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 55 MB - -8.9.1. Instalação de Zstd - - Compile o pacote: -make - -Nota - - Na saída de teste existem muitos lugares que indicam 'failed'. Essas - são esperadas e apenas 'FAIL' é uma falha atual de teste. Não deveriam - existir falhas de teste. - - Para testar os resultados, execute: -make check - - Instale o pacote: -make prefix=/usr install - - Remova a biblioteca estática: -rm -v /usr/lib/libzstd.a - -8.9.2. Conteúdo de Zstd - - Aplicativos instalados: zstd, zstdcat (link para zstd), zstdgrep, - zstdless, zstdmt (link para zstd), e unzstd (link para zstd) - Bibliotecas instaladas: libzstd.so - -Descrições Curtas - - zstd - - Comprime ou descomprime arquivos usando o formato ZSTD - - zstdgrep - - Executa grep em arquivos comprimidos ZSTD - - zstdless - - Executa less em arquivos comprimidos ZSTD - - libzstd - - A biblioteca que implementa compressão de dados sem perdas, usando o - algoritmo ZSTD - -8.10. File-5.41 - - O pacote File contém um utilitário para determinar o tipo de um dado - arquivo ou arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.10.1. Instalação de File - - Prepare File para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.10.2. Conteúdo de File - - Aplicativos instalados: file - Bibliotecas instaladas: libmagic.so - -Descrições Curtas - - file - - Tenta classificar cada arquivo dado; ele faz isso realizando vários - testes—testes de sistema de arquivos, testes de números mágicos, e - testes de idioma - - libmagic - - Contém rotinas para reconhecimento de números mágicos, usado pelo - aplicativo file - -8.11. Readline-8.1.2 - - O pacote Readline é um conjunto de bibliotecas que oferecem edição de - linha de comando e capacidades de histórico. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 15 MB - -8.11.1. Instalação de Readline - - Reinstalar Readline causará as bibliotecas antigas serem movidas para - .old. Mesmo que isso normalmente não seja um problema, em - alguns casos isso pode deflagrar um defeito de vinculação em ldconfig. - Isso pode ser evitado executando os seguintes dois seds: -sed -i '/MV.*old/d' Makefile.in -sed -i '/{OLDSUFF}/c:' support/shlib-install - - Prepare Readline para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-curses \ - --docdir=/usr/share/doc/readline-8.1.2 - - O significado da opção de configure: - - --with-curses - Essa opção diz a Readline que ela pode encontrar as funções de - biblioteca de termcap na biblioteca curses, em vez de uma - biblioteca termcap separada. Ela permite a geração de um arquivo - readline.pc correto. - - Compile o pacote: -make SHLIB_LIBS="-lncursesw" - - O significado da opção de make: - - SHLIB_LIBS="-lncursesw" - Essa opção força Readline a vincular com a biblioteca - libncursesw. - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make SHLIB_LIBS="-lncursesw" install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 - -8.11.2. Conteúdo de Readline - - Bibliotecas instaladas: libhistory.so e libreadline.so - Diretórios instalados: /usr/include/readline e - /usr/share/doc/readline-8.1.2 - -Descrições Curtas - - libhistory - - Fornece uma consistente interface de usuária(o) para recordar linhas de - histórico - - libreadline - - Fornece um conjunto de comandos para manipular texto digitado em uma - sessão interativa de um aplicativo - -8.12. M4-1.4.19 - - O pacote M4 contém um processador de macro. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 49 MB - -8.12.1. Instalação de M4 - - Prepare M4 para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.12.2. Conteúdo de M4 - - Aplicativo instalado: m4 - -Descrições Curtas - - m4 - - Copia os arquivos dados enquanto expande as macros que eles contém. - Essas macros são ou nativas ou definidas pela(o) usuária(o) e podem - receber qualquer número de argumentos. Além de executar expansão de - macro, m4 tem funções nativas para incluir arquivos nomeados, executar - comandos Unix, realizar aritmética de inteiros, manipular texto, - recursão, etc. O aplicativo m4 pode ser usado ou como um front-end para - um compilador ou como um processador de macro independente - -8.13. Bc-5.2.2 - - O pacote Bc contém uma linguagem de processamento numérica de precisão - arbitrária. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 7,1 MB - -8.13.1. Instalação de Bc - - Prepare Bc para compilação: -CC=gcc ./configure --prefix=/usr -G -O3 - - O significado das opções de configure: - - CC=gcc - Esse parâmetro especifica o compilador a usar. - - -O3 - Especifica a optimização a usar. - - -G - Omite partes da suíte de teste que não funcionariam sem um GNU - bc presente. - - Compile o pacote: -make - - Para testar bc, execute: -make test - - Instale o pacote: -make install - -8.13.2. Conteúdo de Bc - - Aplicativos instalados: bc e dc - -Descrições Curtas - - bc - - Uma calculadora de linha de comando - - dc - - Uma calculadora de linha de comando de entrada polonesa - reversa - -8.14. Flex-2.6.4 - - O pacote Flex contém um utilitário para gerar aplicativos que - reconhecem padrões em texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 32 MB - -8.14.1. Instalação de Flex - - Prepare Flex para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/flex-2.6.4 \ - --disable-static - - Compile o pacote: -make - - Para testar os resultados (cerca de 0,5 UPC), execute: -make check - - Instale o pacote: -make install - - Uns poucos aplicativos não sabem acerca de flex ainda e tentam executar - seu predecessor, lex. Para suportar esses aplicativos, crie um link - simbólico chamado lex que executa flex em modo de emulação lex: -ln -sv flex /usr/bin/lex - -8.14.2. Conteúdo de Flex - - Aplicativos instalados: flex, flex++ (link para flex), e lex (link para - flex) - Bibliotecas instaladas: libfl.so - Diretórios instalados: /usr/share/doc/flex-2.6.4 - -Descrições Curtas - - flex - - Uma ferramenta para gerar aplicativos que reconhecem padrões em texto; - ele permite, para a versatilidade, especificar as regras para encontrar - padrões, erradicando a necessidade de desenvolver um aplicativo - especializado - - flex++ - - Uma extensão de flex, é usada para gerar código e classes C++. É um - link simbólico para flex - - lex - - Um link simbólico que executa flex em modo de emulação lex - - libfl - - A biblioteca flex - -8.15. Tcl-8.6.12 - - O pacote Tcl contém a Tool Command Language, uma linguagem de script - robusta de propósito geral. O pacote Expect é escrito na linguagem Tcl. - Tempo aproximado de construção: 3,4 UPC - Espaço em disco exigido: 87 MB - -8.15.1. Instalação de Tcl - - Esse pacote e os próximos dois (Expect e DejaGNU) são instalados para - suportar a execução das suítes de teste para binutils e GCC e outros - pacotes. Instalar três pacotes para propósitos de teste talvez pareça - excessivo, mas é muito assegurador, se não essencial, saber que as - ferramentas mais importantes estão funcionando adequadamente. - - Primeiro, desempacote a documentação executando o seguinte comando: -tar -xf ../tcl8.6.12-html.tar.gz --strip-components=1 - - Prepare Tcl para compilação: -SRCDIR=$(pwd) -cd unix -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - - O significado das opções de configure: - - $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) - A construção $() é substituída pela saída do - comando de shell. Aqui essa saída é vazia se executada em uma - máquina de 32 bits, e é --enable-64bit se executada em uma - máquina de 64 bits. - - Construa o pacote: -make - -sed -e "s|$SRCDIR/unix|/usr/lib|" \ - -e "s|$SRCDIR|/usr/include|" \ - -i tclConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \ - -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|" \ - -i pkgs/tdbc1.1.3/tdbcConfig.sh - -sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|" \ - -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|" \ - -i pkgs/itcl4.2.2/itclConfig.sh - -unset SRCDIR - - As várias instruções “sed†após o comando “make†removem referências ao - diretório de construção dos arquivos de configuração e as substituem - com o diretório de instalação. Isso não é obrigatório para o restante - de LFS, porém talvez seja necessário caso um pacote construído - posteriormente use Tcl. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - - Torne as bibliotecas instaladas graváveis de modo que símbolos de - depuração possam ser removidos posteriormente: -chmod -v u+w /usr/lib/libtcl8.6.so - - Instale os cabeçalhos do Tcl. O próximo pacote, Expect, exige elas. -make install-private-headers - - Agora faça um necessário link simbólico: -ln -sfv tclsh8.6 /usr/bin/tclsh - - Renomeie uma página de manual que conflita com uma página de manual de - Perl: -mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 - - Se você transferiu a documentação opcional, então instale ela - executando os seguintes comandos: -mkdir -v -p /usr/share/doc/tcl-8.6.12 -cp -v -r ../html/* /usr/share/doc/tcl-8.6.12 - -8.15.2. Conteúdo de Tcl - - Aplicativos instalados: tclsh (link to tclsh8.6) e tclsh8.6 - Bibliotecas instaladas: libtcl8.6.so e libtclstub8.6.a - -Descrições Curtas - - tclsh8.6 - - O shell de comando de Tcl - - tclsh - - Um link para tclsh8.6 - - libtcl8.6.so - - A biblioteca Tcl - - libtclstub8.6.a - - A biblioteca Stub de Tcl - -8.16. Expect-5.45.4 - - O pacote Expect contém ferramentas para automatizar, via diálogos com - script, aplicativos interativos tais como telnet, ftp, passwd, fsck, - rlogin, e tip. Expect também é útil para testar esses mesmos - aplicativos bem como facilitar todos os tipos de tarefas que são - proibitivamente difíceis com qualquer outra coisa. A estrutura - subjacente de DejaGnu é escrita em Expect. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 3,9 MB - -8.16.1. Instalação de Expect - - Prepare Expect para compilação: -./configure --prefix=/usr \ - --with-tcl=/usr/lib \ - --enable-shared \ - --mandir=/usr/share/man \ - --with-tclinclude=/usr/include - - O significado das opções de configure: - - --with-tcl=/usr/lib - Esse parâmetro é necessário para dizer a configure onde o script - tclConfig.sh está localizado. - - --with-tclinclude=/usr/include - Isso explicitamente diz a Expect onde encontrar os cabeçalhos - internos de Tcl. - - Construa o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install -ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib - -8.16.2. Conteúdo de Expect - - Aplicativo instalado: expect - Biblioteca instalada: libexpect5.45.4.so - -Descrições Curtas - - expect - - Comunica-se com outros aplicativos interativos de acordo com um script - - libexpect-5.45.4.so - - Contém funções que permitem a Expect ser usado como uma extensão Tcl ou - ser usado diretamente a partir de C ou C++ (sem Tcl) - -8.17. DejaGNU-1.6.3 - - O pacote DejaGnu contém uma estrutura subjacente para executar suítes - de teste em ferramentas GNU. Ele é escrito em expect, a qual usa ela - própria Tcl (Tool Command Language). - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,9 MB - -8.17.1. Instalação de DejaGNU - - A(O) desenvolvedora(r) recomenda construir DejaGNU em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare DejaGNU para compilação: -../configure --prefix=/usr -makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi -makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi - - Construa e instale o pacote: -make install -install -v -dm755 /usr/share/doc/dejagnu-1.6.3 -install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 - - Para testar os resultados, execute: -make check - -8.17.2. Conteúdo de DejaGNU - - Aplicativos instalados: dejagnu e runtest - -Descrições Curtas - - dejagnu - - Iniciador de comando auxiliar DejaGNU - - runtest - - Um script encapsulador que localiza o shell expect adequado e, em - seguida, executa o DejaGNU - -8.18. Binutils-2.38 - - O pacote Binutils contém um vinculador, um montador, e outras - ferramentas para manusear arquivos objeto. - Tempo aproximado de construção: 6,1 UPC - Espaço em disco exigido: 4,6 GB - -8.18.1. Instalação de Binutils - - Verifique se os Pseudo Terminais (PTYs) estão funcionando adequadamente - dentro do ambiente chroot executando um teste simples: -expect -c "spawn ls" - - Esse comando deveria retornar o seguinte: -spawn ls - - Se, ao invés, a saída incluir a mensagem abaixo, então o ambiente não - está configurado para operação adequada de PTY. Esse problema precisa - ser resolvido antes de executar as suítes de teste para Binutils e GCC: -The system has no more ptys. -Ask your system administrator to create more. - - A(O) desenvolvedora(r) fez um conjunto curto de comandos para fixar um - problema quando do uso de binutils para construir alguns pacotes BLFS - com Link Time Optimization (LTO) habilitado. Aplique ele agora: -patch -Np1 -i ../binutils-2.38-lto_fix-1.patch - - Agora, faça um conserto identificado pela(o) desenvolvedora(r) que - afeta a construção alguns pacotes: -sed -e '/R_386_TLS_LE /i \ || (TYPE) == R_386_TLS_IE \\' \ - -i ./bfd/elfxx-x86.h - - A documentação de Binutils recomenda construir Binutils em um diretório - dedicado à construção: -mkdir -v build -cd build - - Prepare Binutils para compilação: -../configure --prefix=/usr \ - --enable-gold \ - --enable-ld=default \ - --enable-plugins \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd \ - --with-system-zlib - - O significado dos parâmetros de configure: - - --enable-gold - Constrói o vinculador gold e instala ele como ld.gold - (juntamente com o vinculador padrão). - - --enable-ld=default - Constrói o vinculador bfd original e instala ele como ambos ld - (o vinculador padrão) e ld.bfd. - - --enable-plugins - Habilita suporte de plugin para o vinculador. - - --enable-64-bit-bfd - Habilita suporte de 64 bits (em anfitriões com tamanhos de - palavra mais estreitos). Talvez não seja necessário em sistemas - de 64 bits, porém não causa dano. - - --with-system-zlib - Usa a biblioteca zlib instalada em vez de construir a versão - incluída. - - Compile o pacote: -make tooldir=/usr - - O significado do parâmetro de make: - - tooldir=/usr - Normalmente, o tooldir (o diretório onde os executáveis estarão - ultimamente localizados) é configurado para - $(exec_prefix)/$(target_alias). Por exemplo, máquinas x86_64 - expandiriam isso para /usr/x86_64-pc-linux-gnu. Por causa que - este é um sistema personalizado, esse diretório alvo específico - em /usr não é exigido. $(exec_prefix)/$(target_alias) seria - usado se o sistema fosse usado para compilar cruzadamente (por - exemplo, compilar um pacote em uma máquina Intel que gera código - que pode ser executado em máquinas PowerPC). - -Importante - - A suíte de teste para Binutils nesta seção é considerada crítica. Não - pule sob quaisquer circunstâncias. - - Teste os resultados: -make -k check - - Instale o pacote: -make tooldir=/usr install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a - -8.18.2. Conteúdo de Binutils - - Aplicativos instalados: addr2line, ar, as, c++filt, dwp, elfedit, - gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, - size, strings, e strip - Bibliotecas instaladas: libbfd.so, libctf.so, libctf-nobfd.so, e - libopcodes.so - Diretório instalado: /usr/lib/ldscripts - -Descrições Curtas - - addr2line - - Traduz endereços de aplicativos para nomes de arquivo e números de - linha; dado um endereço e o nome de um executável, ele usa a informação - de depuração no executável para determinar qual arquivo fonte e número - de linha estão associados ao endereço - - ar - - Cria, modifica e extrai a partir de arquivamentos - - as - - Um montador que monta a saída de gcc para dentro de arquivos objeto - - c++filt - - Usado pelo vinculador para desmembrar símbolos C++ e Java e para - impedir que funções sobrecarregadas entrem em conflito - - dwp - - O utilitário de empacotamento DWARF - - elfedit - - Atualiza o cabeçalho ELF de arquivos ELF - - gprof - - Exibe dados do perfil de gráfico de chamada - - ld - - Um vinculador que combina um número de objetos e arquivos de - arquivamento em um arquivo, realocando seus dados e vinculando - referências de símbolos - - ld.gold - - Uma versão reduzida de ld que suporta apenas o formato de arquivo de - objeto elf - - ld.bfd - - Hard link para ld - - nm - - Lista os símbolos que ocorrem em um dado arquivo de objeto - - objcopy - - Traduz um tipo de arquivo de objeto em outro - - objdump - - Exibe informação sobre o dado arquivo de objeto, com opções controlando - a informação particular a ser exibida; a informação mostrada é útil - para programadores que estão trabalhando nas ferramentas de compilação - - ranlib - - Gera um índice do conteúdo de um arquivamento e o armazena no - arquivamento; o índice lista todos os símbolos definidos pelos membros - do arquivamento que são arquivos de objeto realocáveis - - readelf - - Exibe informação sobre binários de tipo ELF - - size - - Lista os tamanhos de seção e o tamanho total para os arquivos de objeto - dados - - strings - - Exibe, para cada arquivo dado, as sequências de caracteres imprimíveis - que são de, no mínimo, o tamanho especificado (padronizado para - quatro); para arquivos de objeto, ele imprime, por padrão, apenas as - sequências de caracteres a partir das seções de inicialização e - carregamento enquanto que para outros tipos de arquivos, ele escaneia o - arquivo inteiro - - strip - - Descarta símbolos de arquivos de objeto - - libbfd - - A biblioteca de Descritor de Arquivo Binário - - libctf - - A biblioteca de suporte de depuração Compat ANSI-C Type Format - - libctf-nobfd - - Uma variante de libctf que não usa funcionalidade de libbfd - - libopcodes - - Uma biblioteca para lidar com opcodes—as versões de “texto legível†de - instruções para o processador; é usado para construir utilitários como - objdump - -8.19. GMP-6.2.1 - - O pacote GMP contém bibliotecas matemáticas. Essas tem funções úteis - para aritmética de precisão arbitrária. - Tempo aproximado de construção: 1,0 UPC - Espaço em disco exigido: 52 MB - -8.19.1. Instalação de GMP - -Nota - - Se você estiver construindo para x86 de 32 bits, mas tem uma CPU capaz - de executar código de 64 bits e você especificou CFLAGS no ambiente, - então o script configure tentará configurar para 64 bits e falhará. - Impeça isso invocando o comando de configure abaixo com -ABI=32 ./configure ... - -Nota - - As configurações padrão de GMP produzem bibliotecas otimizadas para o - processador anfitrião. Se bibliotecas adequadas para processadores - menos capazes que a CPU do anfitrião forem desejadas, então bibliotecas - genéricas podem ser criadas executando o seguinte: -cp -v configfsf.guess config.guess -cp -v configfsf.sub config.sub - - Prepare GMP para compilação: -./configure --prefix=/usr \ - --enable-cxx \ - --disable-static \ - --docdir=/usr/share/doc/gmp-6.2.1 - - O significado das novas opções de configure: - - --enable-cxx - Esse parâmetro habilita suporte a C++ - - --docdir=/usr/share/doc/gmp-6.2.1 - Essa variável especifica o lugar correto para a documentação. - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para GMP nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados: -make check 2>&1 | tee gmp-check-log - -Cuidado - - O código em gmp é altamente otimizado para o processador onde ele é - construído. Ocasionalmente, o código que detecta o processador - identifica errado as capacidades de sistema e existirão erros nos - testes ou outros aplicativos que usam as bibliotecas de gmp com a - mensagem "Illegal instruction". Nesse caso, gmp deveria ser - reconfigurado com a opção --build=x86_64-pc-linux-gnu e reconstruído. - - Certifique-se de que todos os 197 testes na suíte de teste passaram. - Verifique os resultados executando o seguinte comando: -awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log - - Instale o pacote e a documentação dele: -make install -make install-html - -8.19.2. Conteúdo de GMP - - Bibliotecas instaladas: libgmp.so e libgmpxx.so - Diretório instalado: /usr/share/doc/gmp-6.2.1 - -Descrições Curtas - - libgmp - - Contém funções matemáticas de precisão - - libgmpxx - - Contém funções matemáticas de precisão C++ - -8.20. MPFR-4.1.0 - - O pacote MPFR contém funções para matemática de precisão múltipla. - Tempo aproximado de construção: 0,8 UPC - Espaço em disco exigido: 38 MB - -8.20.1. Instalação de MPFR - - Prepare MPFR para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-thread-safe \ - --docdir=/usr/share/doc/mpfr-4.1.0 - - Compile o pacote e gere a documentação HTML: -make -make html - -Importante - - A suíte de teste para MPFR nesta seção é considerada crítica. Não pule - sob quaisquer circunstâncias. - - Teste os resultados e certifique-se de que todos os testes passaram: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.20.2. Conteúdo de MPFR - - Biblioteca instalada: libmpfr.so - Diretório instalado: /usr/share/doc/mpfr-4.1.0 - -Descrições Curtas - - libmpfr - - Contém funções matemáticas de precisão múltipla - -8.21. MPC-1.2.1 - - O pacote MPC contém uma biblioteca para a aritmética de números - complexos com precisão arbitrariamente alta e arredondamento correto de - resultado. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 21 MB - -8.21.1. Instalação de MPC - - Prepare MPC para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/mpc-1.2.1 - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -make check - - Instale o pacote e a documentação dele: -make install -make install-html - -8.21.2. Conteúdo de MPC - - Biblioteca instalada: libmpc.so - Diretório instalado: /usr/share/doc/mpc-1.2.1 - -Descrições Curtas - - libmpc - - Contém funções matemáticas complexas - -8.22. Attr-2.5.1 - - O pacote attr contém utilitários para administrar os atributos - estendidos sobre objetos de sistema de arquivos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,1 MB - -8.22.1. Instalação de Attr - - Prepare Attr para compilação: -./configure --prefix=/usr \ - --disable-static \ - --sysconfdir=/etc \ - --docdir=/usr/share/doc/attr-2.5.1 - - Compile o pacote: -make - - Os testes precisam ser executados sobre um sistema de arquivos que - suporte atributos estendidos, tais como os sistemas de arquivos ext2, - ext3 ou ext4. Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.22.2. Conteúdo de Attr - - Aplicativos instalados: attr, getfattr, e setfattr - Biblioteca instalada: libattr.so - Diretórios instalados: /usr/include/attr e /usr/share/doc/attr-2.5.1 - -Descrições Curtas - - attr - - Estende atributos sobre objetos de sistemas de arquivos - - getfattr - - Obtém os atributos estendidos de objetos de sistemas de arquivos - - setfattr - - Configura os atributos estendidos de objetos de sistemas de arquivos - - libattr - - Contém as funções de biblioteca para manipular atributos estendidos - -8.23. Acl-2.3.1 - - O pacote Acl contém utilitários para administrar Listas de Controle de - Acesso, as quais são usadas para definir direitos de acesso - discricionários mais refinados para arquivos e diretórios. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 6,1 MB - -8.23.1. Instalação de Acl - - Prepare Acl para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/acl-2.3.1 - - Compile o pacote: -make - - Os testes de Acl precisam ser executados sobre um sistema de arquivos - que suporte controles de acesso, após Coreutils ter sido construído com - as bibliotecas de Acl. Se desejado, retorne a esse pacote e execute - make check após Coreutils ter sido construído posteriormente neste - capítulo. - - Instale o pacote: -make install - -8.23.2. Conteúdo de Acl - - Aplicativos instalados: chacl, getfacl, e setfacl - Biblioteca instalada: libacl.so - Diretórios instalados: /usr/include/acl e /usr/share/doc/acl-2.3.1 - -Descrições Curtas - - chacl - - Muda a lista de controle de acesso de um arquivo ou diretório - - getfacl - - Obtém listas de controle de acesso de arquivo - - setfacl - - Configura listas de controle de acesso de arquivo - - libacl - - Contém as funções de biblioteca para manipular Listas de Controle de - Acesso - -8.24. Libcap-2.63 - - O pacote Libcap implementa as interfaces de espaço de usuária(o) para - as capacidades POSIX 1003.1e disponíveis em kernels Linux. Essas - capacidades são um particionamento de todo o poderoso privilégio de - root em um conjunto de privilégios distintos. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,7 MB - -8.24.1. Instalação de Libcap - - Impeça bibliotecas estáticas de serem instaladas: -sed -i '/install -m.*STA/d' libcap/Makefile - - Compile o pacote: -make prefix=/usr lib=lib - - O significado da opção de make: - - lib=lib - Esse parâmetro configura o diretório de biblioteca para /usr/lib - em vez de /usr/lib64 em x86_64. Ele não tem efeito em x86. - - Para testar os resultados, execute: -make test - - Instale o pacote: -make prefix=/usr lib=lib install - -8.24.2. Conteúdo de Libcap - - Aplicativos instalados: capsh, getcap, getpcaps, e setcap - Bibliotecas instaladas: libcap.so e libpsx.so - -Descrições Curtas - - capsh - - Um encapsulador de shell para explorar e restringir suporte de - capacidade - - getcap - - Examina capacidades de arquivo - - getpcaps - - Exibe as capacidades sobre o(s) processo(s) consultado(s) - - setcap - - Configura capacidades de arquivo - - libcap - - Contém as funções de biblioteca para manipular capacidades POSIX - 1003.1e - - libpsx - - Contém funções para suportar semântica POSIX para chamadas de sistema - associadas com a biblioteca pthread - -8.25. Shadow-4.11.1 - - O pacote Shadow contém aplicativos para manipular senhas de uma maneira - segura. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 49 MB - -8.25.1. Instalação de Shadow - -Nota - - Se você gostaria de reforçar o uso de senhas fortes, então recorra a - [575]https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ - cracklib.html para instalar CrackLib antes de construir Shadow. Então - adicione --with-libcrack ao comando configure abaixo. - - Desabilite a instalação do aplicativo groups e suas páginas de manual, - uma vez que Coreutils fornece uma versão melhor. Também, impeça a - instalação de páginas de manual que já foram instaladas em - [576]Seção 8.3, “Man-pages-5.13â€: -sed -i 's/groups$(EXEEXT) //' src/Makefile.in -find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; -find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; -find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; - - Em vez de usar o método padrão crypt, use o método mais seguro SHA-512 - de encriptação de senha, o qual também permite senhas maiores que oito - (08) caracteres. É também necessário mudar a localização obsoleta - /var/spool/mail para caixas de correio de usuária(o) que Shadow usa por - padrão pela localização /var/mail usada atualmente. E, livre-se de /bin - e /sbin a partir de PATH, uma vez que eles são simples links simbólicos - para seus homônimos em /usr. - -Nota - - Se /bin e (ou) /sbin forem preferidos para serem deixados em PATH por - alguma razão, então modifique PATH em .bashrc após LFS ser construído. -sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \ - -e 's:/var/spool/mail:/var/mail:' \ - -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ - -i etc/login.defs - -Nota - - Se você escolher construir Shadow com suporte CrackLib, então execute o - seguinte: -sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs - - Prepare Shadow para compilação: -touch /usr/bin/passwd -./configure --sysconfdir=/etc \ - --disable-static \ - --with-group-name-max-length=32 - - O significado da opção de configure: - - touch /usr/bin/passwd - O arquivo /usr/bin/passwd precisa existir, pois a localização - dele é codificada rigidamente em alguns aplicativos, e se ele - não existir, então a localização padrão não é correta. - - --with-group-name-max-length=32 - O nome de usuária(o) máximo é trinta e dois (32) caracteres. - Torne o nome de grupo máximo o mesmo. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make exec_prefix=/usr install -make -C man install-man - -8.25.2. Configurando Shadow - - Esse pacote contém utilitários para adicionar, modificar, e deletar - usuárias(os) e grupos; configura e modifica suas senhas; e realiza - outras tarefas administrativas. Para uma explanação completa do que - password shadowing significa, veja o arquivo doc/HOWTO dentro da árvore - desempacotada de fonte. Se usar suporte Shadow, então tenha na mente - que aplicativos que necessitem verificar senhas (gerenciadores de tela, - aplicativos de FTP, daemons pop3, etc.) precisam ser conformes com - Shadow. Isto é, eles precisam ser capazes de trabalhar com senhas - ocultas. - - Para habilitar senhas ocultas, execute o seguinte comando: -pwconv - - Para habilitar senhas ocultas de grupo, execute: -grpconv - - A configuração padrão de Shadow para o utilitário useradd tem umas - poucas ressalvas que precisam de alguma explanação. Primeiro, a ação - padrão para o utilitário useradd é a de criar a(o) usuária(o) e um - grupo de mesmo nome que a(o) usuária(o). Por padrão os números de ID de - usuária(o) (UID) e ID de grupo (GID) iniciarão com 1000. Isso significa - que se você não passar parâmetros para useradd, então cada usuária(o) - será uma(m) membro de um grupo único no sistema. Se esse comportamento - for indesejável, então você precisará passar um parâmetro de -g ou -N - para useradd ou mudar a configuração de USERGROUPS_ENAB em - /etc/login.defs. Veja-se useradd(8) para mais informação. - - Segundo, para mudar os parâmetros padrão, o arquivo - /etc/default/useradd precisa ser criado e adaptado para atender às suas - necessidades particulares. Crie ele com: -mkdir -p /etc/default -useradd -D --gid 999 - - Explanações de Parâmetro de /etc/default/useradd - - GROUP=999 - Esse parâmetro configura o início dos números de grupo usado no - arquivo /etc/group. O valor particular 999 vem do parâmetro - --gid acima. Você pode modificá-lo para qualquer coisa que - deseje. Note que useradd nunca reusará um UID ou GID. Se o - número identificado nesse parâmetro for usado, então ele usará o - próximo número disponível. Note também que se você não tiver um - grupo com um ID igual a esse número em seu sistema na primeira - vez que você usar useradd sem o parâmetro -g, então você - receberá uma mensagem exibida no terminal que diz: useradd: - unknown GID 999, apesar de a conta estar criada corretamente. - Esse é o motivo pelo qual nós criamos o grupo users com esse ID - de grupo em [577]Seção 7.6, “Criando Arquivos Essenciais e Links - Simbólicosâ€. - - CREATE_MAIL_SPOOL=yes - Esse parâmetro faz com que useradd crie um arquivo de caixa de - correio para a(o) usuária(o) recém criada(o). useradd tornará a - propriedade de grupo desse arquivo para o grupo mail com - permissões 0660. Se você preferisse que esses arquivos de caixa - de correio não fossem criados por useradd, então execute o - seguinte comando: - -sed -i '/MAIL/s/yes/no/' /etc/default/useradd - -8.25.3. Configurando a senha de root - - Escolha uma senha para a(o) usuária(o) root e configure ela executando: -passwd root - -8.25.4. Conteúdo de Shadow - - Aplicativos instalados: chage, chfn, chgpasswd, chpasswd, chsh, expiry, - faillog, getsubids, gpasswd, groupadd, groupdel, groupmems, groupmod, - grpck, grpconv, grpunconv, lastlog, login, logoutd, newgidmap, newgrp, - newuidmap, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (link - para newgrp), su, useradd, userdel, usermod, vigr (link para vipw), e - vipw - Biblioteca instalada: libsubid.so - Diretório instalado: /etc/default - -Descrições Curtas - - chage - - Usado para alterar o número de dias máximo entre mudanças obrigatórias - de senha - - chfn - - Usado para alterar um nome completo da(o) usuária(o) e outra informação - - chgpasswd - - Usado para atualizar senhas de grupo em modo de lote - - chpasswd - - Usado para atualizar senhas de usuárias(os) em modo de lote - - chsh - - Usado para alterar um shell de login padrão da(o) usuária(o) - - expiry - - Verifica e reforça a política atual de expiração de senha - - faillog - - É Usado para examinar o registro de falhas de login, configurar um - número máximo de falhas antes que uma conta seja bloqueada, ou zerar a - contagem de falhas - - getsubids - - É usado para listar os intervalos subordinados de id para uma(m) - usuária(o) - - gpasswd - - É usado para adicionar e deletar membros e administradoras(es) para - grupos - - groupadd - - Cria um grupo com o nome dado - - groupdel - - Deleta o grupo com o nome dado - - groupmems - - Permite que uma(m) usuária(o) administre sua própria lista de membros - de grupo sem a exigência de privilégios de superusuária(o) - - groupmod - - É usado para modificar o nome ou GID do grupo dado - - grpck - - Verifica a integridade dos arquivos de grupo /etc/group e /etc/gshadow - - grpconv - - Cria ou atualiza o arquivo de grupo de sombra a partir do arquivo de - grupo normal - - grpunconv - - Atualiza /etc/group a partir de /etc/gshadow e então deleta o último - - lastlog - - Reporta o login mais recente de todas(os) as(os) usuárias(os) ou de - uma(m) usuária(o) dada(o) - - login - - É usado pelo sistema para permitir usuárias(os) logar - - logoutd - - É um daemon usado para reforçar restrições sobre horário de logon e - portas - - newgidmap - - É usado para configurar o mapeamento gid de um espaço de nome de - usuária(o) - - newgrp - - É usado para modificar o GID atual durante uma sessão de login - - newuidmap - - É usado para configurar o mapeamento uid de um espaço de nome de - usuária(o) - - newusers - - É usado para criar ou atualizar uma série inteira de contas de - usuárias(os) - - nologin - - Exibe uma mensagem que uma conta não está disponível; projetado para - ser usado como o shell padrão para contas que foram desabilitadas - - passwd - - É usado para modificar a senha para uma conta de usuária(o) ou grupo - - pwck - - Verifica a integridade dos arquivos de senha /etc/passwd e /etc/shadow - - pwconv - - Cria ou atualiza o arquivo de senha de sombra a partir do arquivo de - senha normal - - pwunconv - - Atualiza /etc/passwd a partir de /etc/shadow e então deleta o último - - sg - - Executa um comando dado enquanto o GID da(o) usuária(o) está - configurado para aquele do grupo dado - - su - - Executa um shell com IDs de usuária(o) e grupo substitutos - - useradd - - Cria uma(m) usuária(o) nova(o) com o nome dado, ou atualiza a - informação padrão de nova(o) usuária(o) - - userdel - - Deleta a conta de usuária(o) dada - - usermod - - É usado para modificar o nome de login da(o) usuária(o) dada(o), - Identificação de Usuária(o) (UID), shell, grupo inicial, diretório - home, etc. - - vigr - - Edita os arquivos /etc/group ou /etc/gshadow - - vipw - - Edita os arquivos /etc/passwd ou /etc/shadow - - libsubid - - Biblioteca para processar intervalos subordinados de id para - usuárias(os) - -8.26. GCC-11.2.0 - - O pacote GCC contém a GNU compiler collection, o qual inclui os - compiladores C e C++. - Tempo aproximado de construção: 153 UPC (com os testes) - Espaço em disco exigido: 4,3 GB - -8.26.1. Instalação de GCC - - Primeiramente, conserte um problema que quebra libasan.a quando da - construção desse pacote com Glibc-2.34 ou posterior: -sed -e '/static.*SIGSTKSZ/d' \ - -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ - -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp - - Se construir em x86_64, então mude o nome de diretório padrão para - bibliotecas de 64 bits para “libâ€: -case $(uname -m) in - x86_64) - sed -e '/m64=/s/lib64/lib/' \ - -i.orig gcc/config/i386/t-linux64 - ;; -esac - - A documentação de GCC recomenda construir GCC em um diretório de - construção dedicado: -mkdir -v build -cd build - - Prepare GCC para compilação: -../configure --prefix=/usr \ - LD=ld \ - --enable-languages=c,c++ \ - --disable-multilib \ - --disable-bootstrap \ - --with-system-zlib - - Note que para outras linguagens de programação, existem alguns - pré-requisitos que ainda não estão disponíveis. Veja-se a [578]página - de GCC do Livro BLFS para instruções sobre como construir todas as - linguagens suportadas do GCC. - - O significado dos novos parâmetros de configure: - - LD=ld - Esse parâmetro induz o script configure a usar o ld instalado - pelo binutils construído anteriormente neste capítulo, em vez da - versão construída cruzadamente a qual de outra maneira seria - usada. - - --with-system-zlib - Essa chave diz a GCC para vincular à cópia instalada de sistema - da biblioteca zlib, em vez de sua própria cópia interna. - - Compile o pacote: -make - -Importante - - Nesta seção, a suíte de teste para GCC é considerada importante, porém - ela toma um tempo longo. Construtoras(es) de primeira vez são - encorajadas(os) a não pular ela. O tempo para executar os testes pode - ser reduzido significantemente adicionando-se -jx ao comando make - abaixo, onde x é o número de núcleos em seu sistema. - - Um conjunto de testes na suíte de teste de GCC é conhecida por esgotar - a pilha padrão, então aumente o tamanho de pilha antes de executar os - testes: -ulimit -s 32768 - - Teste os resultados como uma(m) usuária(o) não privilegiada(o), porém - não pare aos erros: -chown -Rv tester . -su tester -c "PATH=$PATH make -k check" - - Para receber um sumário dos resultados de suíte de teste, execute: -../contrib/test_summary - - Para apenas os sumários, entube a saída por grep -A7 Summ. - - Resultados podem ser comparados com aqueles localizados em - [579]https://www.linuxfromscratch.org/lfs/build-logs/11.1/ e - [580]https://gcc.gnu.org/ml/gcc-testresults/. - - Oito testes relacionados ao analisador são conhecidos por falhar. - - Um teste chamado asan_test.C é conhecido por falhar. - - Em libstdc++, um teste chamado 49745.cc é conhecido por falhar, pois as - dependências de cabeçalho em glibc mudaram. - - Em libstdc++, um teste de numeração de pontuação e seis testes - relacionados a get_time são conhecidos por falhar. Essas são todas por - causa das definições de locale em glibc que mudaram, porém libstdc++ - atualmente não suporta essas mudanças. - - Umas poucas falhas inesperadas não podem ser evitadas sempre. As(Os) - desenvolvedoras(es) de GCC geralmente estão cientes desses problemas, - mas ainda não os resolveram. A menos que os resultados de teste sejam - amplamente diferentes daqueles na URL acima, é seguro continuar. - - Instale o pacote e remova um diretório desnecessário: -make install -rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/ - - O diretório de construção de GCC é de propriedade de tester agora e a - propriedade do diretório de cabeçalho instalado (e o conteúdo dele) - estarão incorretos. Mude a propriedade para usuária(o) e grupo root: -chown -v -R root:root \ - /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed} - - Crie um link simbólico exigido por [581]FHS por razões "históricas". -ln -svr /usr/bin/cpp /usr/lib - - Adicione um link simbólico de compatibilidade para habilitar a - construção de aplicativos com Link Time Optimization (LTO): -ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \ - /usr/lib/bfd-plugins/ - - Agora que nosso conjunto de ferramentas final está no lugar, é - importante certificar-se novamente de que compilação e vinculação - funcionarão como esperado. Nós fazemos isso realizando algumas - verificações de sanidade: -echo 'int main(){}' > dummy.c -cc dummy.c -v -Wl,--verbose &> dummy.log -readelf -l a.out | grep ': /lib' - - Deveriam não existir erros, e a saída do último comando será - (permitindo diferenças específicas de plataforma no nome de vinculador - dinâmico): -[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] - - Agora tenha certeza de que nós estamos configurados para usar os - arquivos de iniciação corretos: -grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log - - A saída do último comando deveria ser: -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crt1.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crti.o succeeded -/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/crtn.o succeeded - - Dependendo da arquitetura de sua máquina, o acima talvez difira - levemente. A diferença será o nome do diretório depois de /usr/lib/gcc. - A coisa importante a se olhar aqui é que gcc encontrou todos os três - arquivos crt*.o sob o diretório /usr/lib. - - Verifique que o compilador está procurando pelos arquivos de cabeçalho - corretos: -grep -B4 '^ /usr/include' dummy.log - - Esse comando deveria retornar a seguinte saída: -#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include - /usr/local/include - /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed - /usr/include - - Novamente, o diretório nomeado após seu triplet alvo talvez seja - diferente do que o acima, dependendo da arquitetura de seu sistema. - - Em seguida, verifique que o novo vinculador está sendo usado com os - caminhos de procura corretos: -grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' - - Referências a caminhos que tem componentes com '-linux-gnu' deveriam - ser ignoradas, porém, do contrário, a saída do último comando deveria - ser: -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64") -SEARCH_DIR("/usr/local/lib64") -SEARCH_DIR("/lib64") -SEARCH_DIR("/usr/lib64") -SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Um sistema de 32 bits talvez veja uns poucos diretórios diferentes. Por - exemplo, aqui está a saída originária de uma máquina i686: -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32") -SEARCH_DIR("/usr/local/lib32") -SEARCH_DIR("/lib32") -SEARCH_DIR("/usr/lib32") -SEARCH_DIR("/usr/i686-pc-linux-gnu/lib") -SEARCH_DIR("/usr/local/lib") -SEARCH_DIR("/lib") -SEARCH_DIR("/usr/lib"); - - Em seguida, tenha certeza de que nós estamos usando a libc correta: -grep "/lib.*/libc.so.6 " dummy.log - - A saída do último comando deveria ser: -attempt to open /usr/lib/libc.so.6 succeeded - - Tenha certeza de que GCC está usando o vinculador dinâmico correto: -grep found dummy.log - - A saída do último comando deveria ser (permitindo diferenças - específicas de plataforma no nome de vinculador dinâmico): -found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2 - - Se a saída não aparecer como mostrado acima ou não for recebida de - jeito nenhum, então alguma coisa está seriamente errada. Investigue e - retrace os passos para encontrar onde está o problema e corrija o - mesmo. Quaisquer problemas precisão ser resolvidos antes de continuar - com o processo. - - Uma vez que tudo esteja funcionando corretamente, limpe os arquivos de - teste: -rm -v dummy.c a.out dummy.log - - Finalmente, mova um arquivo mal colocado: -mkdir -pv /usr/share/gdb/auto-load/usr/lib -mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib - -8.26.2. Conteúdo de GCC - - Aplicativos instalados: c++, cc (link para gcc), cpp, g++, gcc, gcc-ar, - gcc-nm, gcc-ranlib, gcov, gcov-dump, gcov-tool, e lto-dump - Bibliotecas instaladas: libasan.{a,so}, libatomic.{a,so}, libcc1.so, - libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so}, - libitm.{a,so}, liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, - libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, - libsupc++.a, libtsan.{a,so}, e libubsan.{a,so} - Diretórios instalados: /usr/include/c++, /usr/lib/gcc, - /usr/libexec/gcc, e /usr/share/gcc-11.2.0 - -Descrições Curtas - - c++ - - O compilador C++ - - cc - - O compilador C - - cpp - - O preprocessador C; é usado pelo compilador para expandir as - declarações #include, #define e similares nos arquivos fonte - - g++ - - O compilador C++ - - gcc - - O compilador C - - gcc-ar - - Um encapsulador em torno de ar que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-nm - - Um encapsulador em torno de nm que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcc-ranlib - - Um encapsulador em torno de ranlib que adiciona um plugin à linha de - comando. Esse aplicativo é usado apenas para adicionar "link time - optimization" e não é útil com as opções de construção padrão - - gcov - - Uma ferramenta de teste de cobertura; usada para analisar aplicativos - para determinar onde as otimizações terão mais efeito - - gcov-dump - - Ferramenta de despejo de perfil offline gcda e gcno - - gcov-tool - - Ferramenta de processamento de perfil offline gcda - - lto-dump - - Ferramenta para despejar arquivos objeto produzidos por GCC com LTO - habilitado - - libasan - - A biblioteca de tempo de execução do Address Sanitizer - - libatomic - - Biblioteca de tempo de execução atômica interna do GCC - - libcc1 - - A biblioteca de pré-processamento C - - libgcc - - Contém suporte de tempo de execução para gcc - - libgcov - - Essa biblioteca é vinculada a um aplicativo quando GCC for instruído a - habilitar criação de perfil - - libgomp - - Implementação GNU da API OpenMP para programação paralela de memória - compartilhada multiplataforma em C/C++ e Fortran - - libitm - - A biblioteca de memória transacional GNU - - liblsan - - A biblioteca de tempo de execução do Leak Sanitizer - - liblto_plugin - - Plugin LTO do GCC permite ao binutils processar arquivos objeto - produzidos por GCC com LTO habilitado - - libquadmath - - API da Biblioteca Matemática de Precisão Quádrupla GCC - - libssp - - Contém rotinas que suportam a funcionalidade de proteção contra - esmagamento de pilha do GCC - - libstdc++ - - A biblioteca C++ padrão - - libstdc++fs - - Biblioteca de Sistema de Arquivos ISO/IEC TS 18822:2015 - - libsupc++ - - Fornece rotinas de suporte para a linguagem de programação C++ - - libtsan - - A biblioteca de tempo de execução do Thread Sanitizer - - libubsan - - A biblioteca de tempo de execução do Undefined Behavior Sanitizer - -8.27. Pkg-config-0.29.2 - - O pacote pkg-config contém uma ferramenta para passar o caminho include - e (ou) caminhos de biblioteca para ferramentas de construção durante as - fases configure e make de instalações de pacote. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 29 MB - -8.27.1. Instalação de Pkg-config - - Prepare Pkg-config para compilação: -./configure --prefix=/usr \ - --with-internal-glib \ - --disable-host-tool \ - --docdir=/usr/share/doc/pkg-config-0.29.2 - - O significado das novas opções de configure: - - --with-internal-glib - Isso permitirá que pkg-config use a versão interna dele de Glib, - pois uma versão externa não está disponível em LFS. - - --disable-host-tool - Essa opção desabilita a criação de um indesejado hard link para - o aplicativo pkg-config. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.27.2. Conteúdo de Pkg-config - - Aplicativo instalado: pkg-config - Diretório instalado: /usr/share/doc/pkg-config-0.29.2 - -Descrições Curtas - - pkg-config - - Retorna meta informação para a biblioteca ou pacote especificada - -8.28. Ncurses-6.3 - - O pacote Ncurses contém bibliotecas para manipulação de telas de - caracteres independente de terminal. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 45 MB - -8.28.1. Instalação de Ncurses - - Prepare Ncurses para compilação: -./configure --prefix=/usr \ - --mandir=/usr/share/man \ - --with-shared \ - --without-debug \ - --without-normal \ - --enable-pc-files \ - --enable-widec \ - --with-pkg-config-libdir=/usr/lib/pkgconfig - - O significado das novas opções de configure: - - --enable-widec - Essa chave faz com que bibliotecas de caracteres largos (por - exemplo, libncursesw.so.6.3) sejam construídas em vez de - bibliotecas normais (por exemplo, libncurses.so.6.3). Essas - bibliotecas de caracteres largos são utilizáveis tanto em - locales de múltiplos bytes quanto em tradicionais de oito (08) - bits, enquanto bibliotecas normais funcionam adequadamente só em - locales de oito (08) bits. Bibliotecas de caracteres largos e - bibliotecas normais são compatíveis em fonte, mas não são - compatíveis em binário. - - --enable-pc-files - Essa chave gera e instala arquivos .pc para pkg-config. - - --without-normal - Essa chave desabilita a construção e instalação da maioria das - bibliotecas estáticas. - - Compile o pacote: -make - - Esse pacote tem uma suíte de teste, entretanto ela só pode ser - executada após o pacote ter sido instalado. Os testes residem no - diretório test/. Veja-se o arquivo README naquele diretório para - maiores detalhes. - - A instalação desse pacote sobrescreverá libncursesw.so.6.3 no local. - Isso talvez quebre o processo de shell que está usando código e dados a - partir do arquivo de biblioteca. Instale o pacote com DESTDIR, e - substitua o arquivo de biblioteca corretamente usando comando install. - Um arquivamento estático inútil que não é manejado por configure também - é removido: -make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib -rm -v dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a} -cp -av dest/* / - - Muitos aplicativos ainda esperam que o vinculador seja capaz de - encontrar bibliotecas Ncurses de caracteres não largos. Ajuste tais - aplicativos para vincularem com bibliotecas de caracteres largos por - meio de links simbólicos e scripts de vinculador: -for lib in ncurses form panel menu ; do - rm -vf /usr/lib/lib${lib}.so - echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so - ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc -done - - Finalmente, certifique-se de que aplicativos antigos que procuram por - -lcurses em tempo de construção ainda sejam construíveis: -rm -vf /usr/lib/libcursesw.so -echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so -ln -sfv libncurses.so /usr/lib/libcurses.so - - Se desejado, então instale a documentação do Ncurses: -mkdir -pv /usr/share/doc/ncurses-6.3 -cp -v -R doc/* /usr/share/doc/ncurses-6.3 - -Nota - - As instruções acima não criam bibliotecas Ncurses de caracteres não - largos, uma vez que nenhum pacote instalado por compilação a partir de - fontes se vincularia a elas em tempo de execução. Entretanto, os únicos - aplicativos somente binário conhecidos que se vinculam à bibliotecas - Ncurses de caracteres não largos exigem versão 5. Se você precisa ter - tais bibliotecas, por causa de algum aplicativo somente binário ou para - estar conforme com LSB, então construa o pacote novamente com os - seguintes comandos: -make distclean -./configure --prefix=/usr \ - --with-shared \ - --without-normal \ - --without-debug \ - --without-cxx-binding \ - --with-abi-version=5 -make sources libs -cp -av lib/lib*.so.5* /usr/lib - -8.28.2. Conteúdo de Ncurses - - Aplicativos instalados: captoinfo (link para tic), clear, infocmp, - infotocap (link para tic), ncursesw6-config, reset (link para tset), - tabs, tic, toe, tput, e tset - Bibliotecas instaladas: libcursesw.so (link simbólico e script de - vinculador para libncursesw.so), libformw.so, libmenuw.so, - libncursesw.so, libpanelw.so, e homônimos delas de caractere não largo - sem "w" nos nomes de biblioteca. - Diretórios instalados: /usr/share/tabset, /usr/share/terminfo, e - /usr/share/doc/ncurses-6.3 - -Descrições Curtas - - captoinfo - - Converte uma descrição termcap em uma descrição terminfo - - clear - - Limpa a tela, se possível - - infocmp - - Compara ou imprime descrições terminfo - - infotocap - - Converte uma descrição terminfo em uma descrição termcap - - ncursesw6-config - - Fornece informação de configuração para ncurses - - reset - - Reinicializa um terminal para valores padrão dele - - tabs - - Limpa e configura paradas de tabulação em um terminal - - tic - - O compilador de descrição de entrada terminfo que traduz um arquivo - terminfo do formato fonte para o formato binário necessário para as - rotinas de biblioteca ncurses [Um arquivo terminfo contém informação - sobre as capacidades de um certo terminal]. - - toe - - Lista todos os tipos de terminal disponíveis, dando o nome primário e - descrição para cada - - tput - - Torna os valores de capacidades dependentes de terminal disponíveis - para o shell; também pode ser usado para reconfigurar ou inicializar um - terminal ou reportar o nome longo dele - - tset - - Pode ser usado para inicializar terminais - - libcursesw - - Um link para libncursesw - - libncursesw - - Contém funções para exibir texto em muitas formas complexas em uma tela - de terminal; um bom exemplo do uso dessas funções é o menu exibido - durante o make menuconfig do kernel - - libformw - - Contém funções para implementar formulários - - libmenuw - - Contém funções para implementar menus - - libpanelw - - Contém funções para implementar painéis - -8.29. Sed-4.8 - - O pacote Sed contém um editor de fluxo. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 31 MB - -8.29.1. Instalação de Sed - - Prepare Sed para compilação: -./configure --prefix=/usr - - Compile o pacote e gere a documentação HTML: -make -make html - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote e documentação dele: -make install -install -d -m755 /usr/share/doc/sed-4.8 -install -m644 doc/sed.html /usr/share/doc/sed-4.8 - -8.29.2. Conteúdo do Sed - - Aplicativo instalado: sed - Diretório instalado: /usr/share/doc/sed-4.8 - -Descrições Curtas - - sed - - Filtra e transforma arquivos de texto em uma passagem única - -8.30. Psmisc-23.4 - - O pacote Psmisc contém aplicativos para mostrar informação sobre - processos em execução. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 5,6 MB - -8.30.1. Instalação do Psmisc - - Prepare Psmisc para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.30.2. Conteúdo do Psmisc - - Aplicativos instalados: fuser, killall, peekfd, prtstat, pslog, pstree, - e pstree.x11 (link para pstree) - -Descrições Curtas - - fuser - - Reporta os IDs de Processos (PIDs) de processos que usam os arquivos ou - sistemas de arquivos dados - - killall - - Mata processos pelo nome; envia um sinal para todos os processos - executando quaisquer dos comandos dados - - peekfd - - Dê uma olhada nos descritores de arquivo de um processo em execução, - dado seu PID - - prtstat - - Imprime informação sobre um processo - - pslog - - Reporta o caminho atual de registros de um processo - - pstree - - Exibe processos em execução como uma árvore - - pstree.x11 - - O mesmo que pstree, exceto que ele espera por confirmação antes de sair - -8.31. Gettext-0.21 - - O pacote Gettext contém utilitários para internacionalização e - localização. Eles permitem que aplicativos sejam compilados com Suporte - ao Idioma Nativo (Native Language Support - NLS), habilitando-os a - emitir mensagens no idioma nativo da(o) usuária(o). - Tempo aproximado de construção: 2,7 UPC - Espaço em disco exigido: 233 MB - -8.31.1. Instalação do Gettext - - Prepare Gettext para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/gettext-0.21 - - Compile o pacote: -make - - Para testar os resultados (isso toma um tempo longo, em torno de 3 - UPCs), execute: -make check - - Instale o pacote: -make install -chmod -v 0755 /usr/lib/preloadable_libintl.so - -8.31.2. Conteúdo do Gettext - - Aplicativos instalados: autopoint, envsubst, gettext, gettext.sh, - gettextize, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, - msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, - msguniq, ngettext, recode-sr-latin, e xgettext - Bibliotecas instaladas: libasprintf.so, libgettextlib.so, - libgettextpo.so, libgettextsrc.so, libtextstyle.so, e - preloadable_libintl.so - Diretórios instalados: /usr/lib/gettext, /usr/share/doc/gettext-0.21, - /usr/share/gettext, e /usr/share/gettext-0.19.8 - -Descrições Curtas - - autopoint - - Copia arquivos de infraestrutura padrão do Gettext para um pacote fonte - - envsubst - - Substitui variáveis de ambiente em sequências de caracteres de formato - de shell - - gettext - - Traduz uma mensagem de idioma natural para o idioma da(o) usuária(o) - procurando a tradução em um catálogo de mensagens - - gettext.sh - - Primariamente serve como uma biblioteca de função de shell para gettext - - gettextize - - Copia todos os arquivos Gettext padrão para o diretório de nível - superior fornecido de um pacote para começar a internacionalizá-lo - - msgattrib - - Filtra as mensagens de um catálogo de tradução de acordo com os - atributos delas e manipula os atributos - - msgcat - - Concatena e funde os arquivos .po fornecidos - - msgcmp - - Compara dois arquivos .po para verificar se ambos contém o mesmo - conjunto de sequências de caracteres de msgid - - msgcomm - - Encontra as mensagens que são comuns aos arquivos .po fornecidos - - msgconv - - Converte um catálogo de tradução para uma codificação de caracteres - diferente - - msgen - - Cria um catálogo de tradução em inglês - - msgexec - - Aplica um comando a todas as traduções de um catálogo de tradução - - msgfilter - - Aplica um filtro a todas as traduções de um catálogo de tradução - - msgfmt - - Gera um catálogo de mensagem binária a partir de um catálogo de - tradução - - msggrep - - Extrai todas as mensagens de um catálogo de tradução que correspondem a - um determinado padrão ou pertencem a alguns arquivos fonte fornecidos - - msginit - - Cria um novo arquivo .po, inicializando a meta informação com valores - oriundos do ambiente da(o) usuária(o) - - msgmerge - - Combina duas traduções cruas em um arquivo único - - msgunfmt - - Descompila um catálogo de mensagem binário em um texto de tradução cru - - msguniq - - Unifica traduções duplicadas em um catálogo de tradução - - ngettext - - Exibe traduções no idioma nativo de uma mensagem textual cuja forma - gramatical depende de um número - - recode-sr-latin - - Recodifica texto sérvio do cirílico para alfabeto latino - - xgettext - - Extrai as linhas de mensagem traduzíveis dos arquivos fonte fornecidos - para fazer o primeiro modelo de tradução - - libasprintf - - define a classe autosprintf, que torna as rotinas de saída formatada em - C utilizáveis em aplicativos C++, para uso com as sequências de - caracteres e os fluxos - - libgettextlib - - uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libgettextpo - - Usado para escrever aplicativos especializados que processam arquivos - .po; essa biblioteca é usada quando os aplicativos padrão fornecidos - com Gettext (tais como msgcomm, msgcmp, msgattrib, e msgen) não são - suficientes - - libgettextsrc - - Uma biblioteca privada contendo rotinas comuns usadas pelos vários - aplicativos Gettext; elas não são destinadas para uso geral - - libtextstyle - - Biblioteca de estilo de texto - - preloadable_libintl - - Uma biblioteca, destinada a ser usada por LD_PRELOAD que auxilia - libintl no registro de mensagens não traduzidas - -8.32. Bison-3.8.2 - - O pacote Bison contém um gerador de analisador. - Tempo aproximado de construção: 6,3 UPC - Espaço em disco exigido: 53 MB - -8.32.1. Instalação do Bison - - Prepare Bison para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 - - Compile o pacote: -make - - Para testar os resultados (cerca de 5,5 UPCs), execute: -make check - - Instale o pacote: -make install - -8.32.2. Conteúdo do Bison - - Aplicativos instalados: bison e yacc - Biblioteca instalada: liby.a - Diretório instalado: /usr/share/bison - -Descrições Curtas - - bison - - Gera, a partir de uma série de regras, um aplicativo para analisar a - estrutura de arquivos de texto; Bison é uma substituição ao Yacc (Yet - Another Compiler Compiler) - - yacc - - Um encapsulador para bison, destinado a aplicativos que ainda chamam - yacc em vez de bison; ele chama bison com a opção -y - - liby - - A biblioteca Yacc contendo implementações de funções compatíveis com - Yacc yyerror e main; essa biblioteca normalmente não é muito útil, mas - POSIX a exige - -8.33. Grep-3.7 - - O pacote Grep contém aplicativos para procura ao longo do conteúdo de - arquivos. - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 36 MB - -8.33.1. Instalação do Grep - - Prepare Grep para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.33.2. Conteúdo do Grep - - Aplicativos instalados: egrep, fgrep, e grep - -Descrições Curtas - - egrep - - Imprime linhas que correspondem a uma expressão regular estendida - - fgrep - - Imprime linhas que correspondem a uma lista de sequências de caracteres - fixas - - grep - - Imprime linhas que correspondem a expressão regular básica - -8.34. Bash-5.1.16 - - O pacote Bash contém o Bourne-Again SHell. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 50 MB - -8.34.1. Instalação do Bash - - Prepare Bash para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/bash-5.1.16 \ - --without-bash-malloc \ - --with-installed-readline - - O significado da nova opção de configure: - - --with-installed-readline - Essa opção diz a Bash para usar a biblioteca readline que já - está instalada no sistema em vez de usar sua própria versão de - readline. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Para preparar os testes, garanta que a(o) usuária(o) tester pode - escrever na árvore de fontes: -chown -Rv tester . - - A suíte de teste do pacote é desenhada para ser executada como uma(m) - usuária(o) não root que é proprietária(o) do terminal conectado à - entrada padrão. Para satisfazer a exigência, crie um novo pseudo - terminal usando Expect e execute os testes como a(o) usuária (o) - tester: -su -s /usr/bin/expect tester << EOF -set timeout -1 -spawn make tests -expect eof -lassign [wait] _ _ _ value -exit $value -EOF - - Instale o pacote: -make install - - Execute o aplicativo recém compilado bash (substituindo o que está - sendo executado atualmente): -exec /usr/bin/bash --login - -8.34.2. Conteúdo do Bash - - Aplicativos instalados: bash, bashbug, e sh (link para bash) - Diretórios instalados: /usr/include/bash, /usr/lib/bash, e - /usr/share/doc/bash-5.1.16 - -Descrições Curtas - - bash - - Um interpretador de comandos vastamente utilizado; ele realiza muitos - tipos de expansões e substituições sobre uma dada linha de comando - antes de executá-la, portanto fazendo desse interpretador uma - ferramenta poderosa - - bashbug - - Um script de shell para ajudar a(o) usuária(o) a compor e enviar - relatórios de defeitos formatados padrão concernentes a bash - - sh - - Um link simbólico para o aplicativo bash; quando invocado como sh, bash - tenta imitar o comportamento de inicialização de versões históricas do - sh o mais próximo possível, enquanto também conformando com o padrão - POSIX - -8.35. Libtool-2.4.6 - - O pacote Libtool contém o script de suporte à biblioteca genérica GNU. - Ele esconde a complexidade de usar bibliotecas compartilhadas em uma - interface consistente e portável. - Tempo aproximado de construção: 1,5 UPC - Espaço em disco exigido: 43 MB - -8.35.1. Instalação do Libtool - - Prepare Libtool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para libtool pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Cinco testes são conhecidos por falharem dentro do ambiente de - construção LFS devido a uma dependência circular, porém todos os testes - passam se verificados novamente após automake ser instalado. - - Instale o pacote: -make install - - Remova uma biblioteca estática inútil: -rm -fv /usr/lib/libltdl.a - -8.35.2. Conteúdo do Libtool - - Aplicativos instalados: libtool e libtoolize - Biblioteca instalada: libltdl.so - Diretórios instalados: /usr/include/libltdl e /usr/share/libtool - -Descrições Curtas - - libtool - - Fornece serviços generalizados de suporte à construção de bibliotecas - - libtoolize - - Fornece uma maneira padrão de adicionar suporte libtool a um pacote - - libltdl - - Esconde as várias dificuldades do dlopening de bibliotecas - -8.36. GDBM-1.23 - - O pacote GDBM contém o GNU Database Manager. Ele é uma biblioteca de - funções de banco de dados que usa hash extensível e funciona semelhante - ao dbm UNIX padrão. A biblioteca fornece primitivos para armazenar - pares de chave/dados, pesquisar e recuperar os dados por sua chave e - deletar uma chave junto com seus dados. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 13 MB - -8.36.1. Instalação do GDBM - - Prepare GDBM para compilação: -./configure --prefix=/usr \ - --disable-static \ - --enable-libgdbm-compat - - O significado da opção de configure: - - --enable-libgdbm-compat - Essa chave habilita a construção da biblioteca de - compatibilidade libgdbm. Alguns pacotes fora do LFS talvez - exijam as rotinas DBM mais antigas que ela fornece. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.36.2. Conteúdo do GDBM - - Aplicativos instalados: gdbm_dump, gdbm_load, e gdbmtool - Bibliotecas instaladas: libgdbm.so e libgdbm_compat.so - -Descrições Curtas - - gdbm_dump - - Despeja um banco de dados GDBM para um arquivo - - gdbm_load - - Recria um banco de dados GDBM a partir de um arquivo de despejo - - gdbmtool - - Testa e modifica um banco de dados GDBM - - libgdbm - - Contém funções para manipular um banco de dados com hash - - libgdbm_compat - - Biblioteca de compatibilidade contendo funções DBM mais antigas - -8.37. Gperf-3.1 - - Gperf gera uma função de hash perfeita a partir de um conjunto de - chaves. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 6,0 MB - -8.37.1. Instalação do Gperf - - Prepare Gperf para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1 - - Compile o pacote: -make - - Os testes são conhecidos por falharem se executar múltiplos testes - simultâneos (opção -j maior que 1). Para testar os resultados, execute: -make -j1 check - - Instale o pacote: -make install - -8.37.2. Conteúdo do Gperf - - Aplicativo instalado: gperf - Diretório instalado: /usr/share/doc/gperf-3.1 - -Descrições Curtas - - gperf - - Gera um hash perfeito a partir de um conjunto de chaves - -8.38. Expat-2.4.6 - - O pacote Expat contém uma biblioteca C orientada a fluxo para analisar - XML. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.38.1. Instalação do Expat - - Prepare Expat para compilação: -./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/expat-2.4.6 - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, instale a documentação: -install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6 - -8.38.2. Conteúdo do Expat - - Aplicativo instalado: xmlwf - Biblioteca instalada: libexpat.so - Diretório instalado: /usr/share/doc/expat-2.4.6 - -Descrições Curtas - - xmlwf - - É um utilitário não validador para verificar se documentos XML estão - bem formados ou não - - libexpat - - Contém funções de API para analisar XML - -8.39. Inetutils-2.2 - - O pacote Inetutils contém aplicativos para redes básicas. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 30 MB - -8.39.1. Instalação do Inetutils - - Prepare Inetutils para compilação: -./configure --prefix=/usr \ - --bindir=/usr/bin \ - --localstatedir=/var \ - --disable-logger \ - --disable-whois \ - --disable-rcp \ - --disable-rexec \ - --disable-rlogin \ - --disable-rsh \ - --disable-servers - - O significado das opções de configure: - - --disable-logger - Essa opção impede que o Inetutils instale o aplicativo logger, o - qual é usado por scripts para passar mensagens para o System Log - Daemon. Não instale isso, pois o Util-linux instala uma versão - mais recente. - - --disable-whois - Essa opção desabilita a construção do cliente whois do - Inetutils, o qual está desatualizado. Instruções para um cliente - whois melhor estão no livro BLFS. - - --disable-r* - Esses parâmetros desabilitam a construção de aplicativos - obsoletos que não deveriam ser usados devido a problemas de - segurança. As funções fornecidas por esses aplicativos podem ser - fornecidas pelo pacote openssh no livro BLFS. - - --disable-servers - Isso desabilita a instalação dos vários servidores de rede - incluídos como parte do pacote Inetutils. Esses servidores são - considerados inadequados em um sistema LFS básico. Alguns são - inseguros por natureza e só são considerados seguros em redes - confiáveis. Observe que substituições melhores estão disponíveis - para muitos desses servidores. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Mova um aplicativo para o local adequado: -mv -v /usr/{,s}bin/ifconfig - -8.39.2. Conteúdo do Inetutils - - Aplicativos instalados: dnsdomainname, ftp, ifconfig, hostname, ping, - ping6, talk, telnet, tftp, e traceroute - -Descrições Curtas - - dnsdomainname - - Mostra o nome de domínio DNS do sistema - - ftp - - É o aplicativo de protocolo de transferência de arquivos - - hostname - - Relata ou configura o nome do dispositivo - - ifconfig - - Gerencia interfaces de rede - - ping - - Envia pacotes de solicitação de echo e informa quanto tempo as - respostas demoram - - ping6 - - Uma versão do ping para redes IPv6 - - talk - - É usado para conversar com outra(o) usuária(o) - - telnet - - Uma interface para o protocolo TELNET - - tftp - - Um aplicativo de transferência de arquivos trivial - - traceroute - - Rastreia a rota que seus pacotes fazem a partir do dispositivo em que - você está trabalhando para outro dispositivo em uma rede, mostrando - todos os saltos intermediários (gateways) ao longo do caminho - -8.40. Less-590 - - O pacote Less contém um visualizador de arquivos de texto. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 4,2 MB - -8.40.1. Instalação do Less - - Prepare Less para compilação: -./configure --prefix=/usr --sysconfdir=/etc - - O significado das opções de configure: - - --sysconfdir=/etc - Essa opção diz aos aplicativos criados pelo pacote para - procurarem em /etc pelos arquivos de configuração. - - Compile o pacote: -make - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.40.2. Conteúdo do Less - - Aplicativos instalados: less, lessecho e lesskey - -Descrições Curtas - - less - - Um visualizador de arquivos ou paginador; ele exibe o conteúdo do - arquivo dado, permitindo que a(o) usuária(o) role, encontre sequências - de caracteres e pule para marcas - - lessecho - - Necessário para expandir metacaracteres, tais como * e ?, em nomes de - arquivos em sistemas Unix - - lesskey - - Usado para especificar os atalhos de tecla para less - -8.41. Perl-5.34.0 - - O pacote Perl contém o Practical Extraction and Report Language. - Tempo aproximado de construção: 9,3 UPC - Espaço em disco exigido: 226 MB - -8.41.1. Instalação do Perl - - Primeiro, aplique uma correção que conserta um problema destacado por - versões recentes do gdbm: -patch -Np1 -i ../perl-5.34.0-upstream_fixes-1.patch - - Essa versão do Perl agora constrói os módulos Compress::Raw::Zlib e - Compress::Raw::BZip2. Por padrão, Perl usará uma cópia interna dos - fontes para a construção. Execute o seguinte comando de modo que Perl - usará as bibliotecas instaladas no sistema: -export BUILD_ZLIB=False -export BUILD_BZIP2=0 - - Para ter controle completo sobre a maneira como Perl é configurado, - você pode remover as opções “-des†do comando seguinte e escolher - manualmente a maneira como esse pacote é construído. Alternativamente, - use o comando exatamente como está abaixo para usar os padrões que o - Perl detecta automaticamente: -sh Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Dprivlib=/usr/lib/perl5/5.34/core_perl \ - -Darchlib=/usr/lib/perl5/5.34/core_perl \ - -Dsitelib=/usr/lib/perl5/5.34/site_perl \ - -Dsitearch=/usr/lib/perl5/5.34/site_perl \ - -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ - -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \ - -Dman1dir=/usr/share/man/man1 \ - -Dman3dir=/usr/share/man/man3 \ - -Dpager="/usr/bin/less -isR" \ - -Duseshrplib \ - -Dusethreads - - O significado das opções de configure: - - -Dvendorprefix=/usr - Isso garante que perl saiba como dizer aos pacotes onde eles - deveriam instalar módulos perl deles. - - -Dpager="/usr/bin/less -isR" - Isso garante que less seja usado em vez de more. - - -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 - Uma vez que o Groff ainda não está instalado, Configure pensa - que nós não queremos páginas de manual para o Perl. Emitir esses - parâmetros substitui essa decisão. - - -Duseshrplib - Constrói uma libperl compartilhada necessária para alguns - módulos perl. - - -Dusethreads - Constrói perl com suporte para camadas. - - -Dprivlib,-Darchlib,-Dsitelib,... - Essas configurações definem onde o Perl está procurando módulos - instalados. As(Os) editoras(es) de LFS optaram por colocá-los em - uma estrutura de diretórios baseada na versão Major.Minor do - Perl (5.34), a qual permite atualizar o Perl para níveis de - Patch mais recentes (5.34.0) sem a necessidade de reinstalar - todos os módulos novamente. - - Compile o pacote: -make - - Para testar os resultados (aproximadamente 11 UPCs), execute: -make test - - Instale o pacote e limpe: -make install -unset BUILD_ZLIB BUILD_BZIP2 - -8.41.2. Conteúdo do Perl - - Aplicativos instalados: corelist, cpan, enc2xs, encguess, h2ph, h2xs, - instmodsh, json_pp, libnetcfg, perl, perl5.34.0 (hard link para perl), - perlbug, perldoc, perlivp, perlthanks (hard link para perlbug), piconv, - pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, - prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp e zipdetails - Bibliotecas instaladas: Muitas, as quais não podem ser todas listadas - aqui - Diretório instalado: /usr/lib/perl5 - -Descrições Curtas - - corelist - - Um frontend de linha de comando para Module::CoreList - - cpan - - Interage com o Comprehensive Perl Archive Network (CPAN) a partir da - linha de comando - - enc2xs - - Constrói uma extensão Perl para o módulo Encode a partir tanto de - Mapeamentos de Caracteres Unicode quanto de Arquivos de Codificação Tcl - - encguess - - Advinha o tipo de codificação de um ou vários arquivos - - h2ph - - Converte arquivos de cabeçalho C .h para arquivos de cabeçalho Perl .ph - - h2xs - - Converte arquivos de cabeçalho C .h para extensões Perl - - instmodsh - - Script de shell para examinar módulos Perl instalados, e pode criar um - tarball a partir de um módulo instalado - - json_pp - - Converte dados entre certos formatos de entrada e saída - - libnetcfg - - Pode ser usado para configurar o módulo Perl libnet - - perl - - Combina algumas das melhores características do C, sed, awk e sh em uma - linguagem canivete suíço única - - perl5.34.0 - - Um hard link para perl - - perlbug - - Usado para gerar relatórios de defeitos sobre o Perl, ou módulos que - vem como ele, e enviá-los por correio - - perldoc - - Exibe uma parte da documentação em formato de pod que está incorporada - na árvore de instalação do Perl ou em um script Perl - - perlivp - - O Procedimento de Verificação de Instalação do Perl; pode ser usado - para verificar se o Perl e suas bibliotecas foram instalados - corretamente - - perlthanks - - Usado para gerar mensagens de agradecimento para enviar para as(os) - desenvolvedoras(es) Perl - - piconv - - Uma versão Perl do conversor de codificação de caracteres iconv - - pl2pm - - Uma ferramenta rudimentar para converter arquivos Perl4 .pl para - módulos Perl5 .pm - - pod2html - - Converte arquivos do formato pod para o formato HTML - - pod2man - - Converte dados pod para entrada formatada *roff - - pod2text - - Converte dados pod para texto ASCII formatado - - pod2usage - - Imprime mensagens de uso a partir de documentos pod incorporados em - arquivos - - podchecker - - Verifica a sintaxe de arquivos de documentação no formato pod - - podselect - - Exibe seções selecionadas de documentação pod - - prove - - Ferramenta de linha de comando para executar testes contra o módulo - Test::Harness - - ptar - - Um aplicativo similar ao tar escrito em Perl - - ptardiff - - Um aplicativo Perl que compara um arquivamento extraído com um não - extraído - - ptargrep - - Um aplicativo Perl que aplica correspondência de padrão ao conteúdo de - arquivos em um arquivamento tar - - shasum - - Imprime ou verifica somas de verificação SHA - - splain - - É usado para forçar diagnósticos de aviso detalhados em Perl - - xsubpp - - Converte código Perl XS em código C - - zipdetails - - Exibe detalhes sobre a estrutura interna de um arquivo Zip - -8.42. XML::Parser-2.46 - - O módulo XML::Parser é uma interface Perl para o analisador de XML do - James Clark, Expat. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 2,4 MB - -8.42.1. Instalação do XML::Parser - - Prepare XML::Parser para compilação: -perl Makefile.PL - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Instale o pacote: -make install - -8.42.2. Conteúdo do XML::Parser - - Módulo instalado: Expat.so - -Descrições Curtas - - Expat - - Fornece a interface Perl Expat - -8.43. Intltool-0.51.0 - - O Intltool é uma ferramenta de internacionalização usada para extrair - sequências de caracteres traduzíveis a partir de arquivos fonte. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 1,5 MB - -8.43.1. Instalação do Intltool - - Primeiro, conserte um aviso que é causado por perl-5.22 e posteriores: -sed -i 's:\\\${:\\\$\\{:' intltool-update.in - -Nota - - A expressão regular acima parece incomum por causa de todas as contra - barras. O que ela faz é adicionar uma contra barra antes do carácter - abre chave na sequência '\${' resultando em '\$\{'. - - Prepare Intltool para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install -install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO - -8.43.2. Conteúdo do Intltool - - Aplicativos instalados: intltool-extract, intltool-merge, - intltool-prepare, intltool-update e intltoolize - Diretórios instalados: /usr/share/doc/intltool-0.51.0 e - /usr/share/intltool - -Descrições Curtas - - intltoolize - - Prepara um pacote para usar intltool - - intltool-extract - - Gera arquivos de cabeçalho que podem ser lidos por gettext - - intltool-merge - - Mescla sequência de caracteres traduzidos em vários tipos de arquivos - - intltool-prepare - - Atualiza arquivos pot e mescla eles com arquivos de tradução - - intltool-update - - Atualiza os arquivos de modelo po e mescla eles com as traduções - -8.44. Autoconf-2.71 - - O pacote Autoconf contém aplicativos para produzir scripts de shell que - podem configurar automaticamente código fonte. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 6,8 UPC com - os testes) - Espaço em disco exigido: 24 MB - -8.44.1. Instalação do Autoconf - - Prepare Autoconf para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - -Nota - - O tempo de teste para autoconf pode ser reduzido significativamente em - um sistema com múltiplos núcleos. Para fazer isso, acrescente - TESTSUITEFLAGS=-j ao final da linha acima. Por exemplo, usar -j4 - pode reduzir o tempo de teste em mais que 60 por cento. - - Instale o pacote: -make install - -8.44.2. Conteúdo do Autoconf - - Aplicativos instalados: autoconf, autoheader, autom4te, autoreconf, - autoscan, autoupdate e ifnames - Diretório instalado: /usr/share/autoconf - -Descrições Curtas - - autoconf - - Produz scripts de shell que configuram automaticamente pacotes de - código fonte de aplicativos para adaptar a vários tipos de sistemas - semelhantes a Unix; os scripts de configuração que ele produz são - independentes—executá-los não exige o aplicativo autoconf - - autoheader - - Uma ferramenta para criar arquivos de modelo de declarações #define de - C para configure usar - - autom4te - - Um encapsulador para o processador de macro M4 - - autoreconf - - Automaticamente executa autoconf, autoheader, aclocal, automake, - gettextize e libtoolize na ordem correta para economizar tempo quando - mudanças são feitas para arquivos de modelo autoconf e automake - - autoscan - - Ajuda a criar um arquivo configure.in para um pacote de aplicativos; - ele examina os arquivos fonte em uma árvore de diretórios, procurando - neles por problemas de portabilidade comuns, e cria um arquivo - configure.scan que serve como um arquivo configure.in preliminar para o - pacote - - autoupdate - - Modifica um arquivo configure.in que ainda chama macros autoconf por - seus nomes antigos para usar os nomes de macro atuais - - ifnames - - Ajuda ao escrever arquivos configure.in para um pacote de aplicativos; - ele imprime os identificadores que o pacote usa em condicionais de - preprocessador C [Se um pacote já foi configurado para ter alguma - portabilidade, então esse aplicativo pode ajudar a determinar o que - configure precisa checar. Ele também pode preencher lacunas em um - arquivo configure.in gerado por autoscan]. - -8.45. Automake-1.16.5 - - O pacote Automake contém aplicativos para gerar Makefiles para uso com - Autoconf. - Tempo aproximado de construção: menos que 0,1 UPC (cerca de 8,3 UPC com - os testes) - Espaço em disco exigido: 115 MB - -8.45.1. Instalação do Automake - - Prepare Automake para compilação: -./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5 - - Compile o pacote: -make - - Usar a opção de make -j4 acelera os testes, mesmo em sistemas com - apenas um processador, devido a atrasos internos em testes individuais. - Para testar os resultados, execute: -make -j4 check - - O teste t/subobj.sh é conhecido por falhar. - - Instale o pacote: -make install - -8.45.2. Conteúdo do Automake - - Aplicativos instalados: aclocal, aclocal-1.16 (hard link com aclocal), - automake e automake-1.16 (hard link com automake) - Diretórios instalados: /usr/share/aclocal-1.16, - /usr/share/automake-1.16 e /usr/share/doc/automake-1.16.5 - -Descrições Curtas - - aclocal - - Gera arquivos aclocal.m4 baseados no conteúdo dos arquivos configure.in - - aclocal-1.16 - - Um hard link para aclocal - - automake - - Uma ferramenta para gerar automaticamente arquivos Makefile.in a partir - de arquivos Makefile.am [Para criar todos os arquivos Makefile.in para - um pacote, execute esse aplicativo no diretório superior. Escaneando o - arquivo configure.in, ele automaticamente encontra cada arquivo - Makefile.am apropriado e gera o arquivo Makefile.in correspondente]. - - automake-1.16 - - Um hard link para automake - -8.46. OpenSSL-3.0.1 - - O pacote OpenSSL contém ferramentas de gerenciamento e bibliotecas - relacionadas à criptografia. Essas são úteis para fornecer funções - criptográficas para outros pacotes, tais como OpenSSH, aplicativos de - correio eletrônico e navegadores de rede (para acessar sítios HTTPS). - Tempo aproximado de construção: 5,4 UPC - Espaço em disco exigido: 474 MB - -8.46.1. Instalação do OpenSSL - - Prepare OpenSSL para compilação: -./config --prefix=/usr \ - --openssldir=/etc/ssl \ - --libdir=lib \ - shared \ - zlib-dynamic - - Compile o pacote: -make - - Para testar os resultados, execute: -make test - - Um teste, 30-test_afalg.t, é conhecido por falhar em algumas - configurações de kernel (dependendo de valores inconsistentes de - configurações CONFIG_CRYPTO_USER_API*). Se ele falhar, então ele pode - seguramente ser ignorado. - - Instale o pacote: -sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile -make MANSUFFIX=ssl install - - Adicione a versão ao nome de diretório de documentação, para ser - consistente com outros pacotes: -mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1 - - Se desejado, instale alguma documentação adicional: -cp -vfr doc/* /usr/share/doc/openssl-3.0.1 - -Nota - - Você deveria atualizar OpenSSL quando uma versão nova que conserta - vulnerabilidades for anunciada. Os lançamentos ocorrem em séries, com - uma letra para cada lançamento após o lançamento inicial (por exemplo, - 1.1.1, 1.1.1a, 1.1.1b, etc). Por causa de que LFS instala somente as - bibliotecas compartilhadas, não existe necessidade de recompilar - pacotes que se vinculem a libcrypto.so ou libssl.so quando atualizar na - mesma série. - - Entretanto, quaisquer aplicativos em execução vinculados àquelas - bibliotecas precisam ser parados e reiniciados. Leia-se as entradas - relacionadas em [582]Seção 8.2.1, “Problemas de Atualização†para - detalhes. - -8.46.2. Conteúdo do OpenSSL - - Aplicativos instalados: c_rehash e openssl - Bibliotecas instaladas: libcrypto.so e libssl.so - Diretórios instalados: /etc/ssl, /usr/include/openssl, /usr/lib/engines - e /usr/share/doc/openssl-3.0.1 - -Descrições Curtas - - c_rehash - - é um script Perl que escaneia todos os arquivos em um diretório e - adiciona links simbólicos para os valores de hash deles - - openssl - - é uma ferramenta de linha de comando para usar as várias funções - criptográficas da biblioteca de criptografia do OpenSSL a partir do - shell. Ela pode ser usada para várias funções que estão documentadas em - man 1 openssl - - libcrypto.so - - implementa um intervalo amplo de algoritmos criptográficos usados em - vários padrões da Internet. Os serviços fornecidos por essa biblioteca - são usados pelas implementações OpenSSL do SSL, TLS e S/MIME e eles - também tem sido usados para implementar OpenSSH, OpenPGP e outros - padrões criptográficos - - libssl.so - - implementa o protocolo Transport Layer Security (TLS v1). Ela fornece - uma API rica, documentação sobre a qual pode ser encontrada executando - man 3 ssl - -8.47. Kmod-29 - - O pacote Kmod contém bibliotecas e utilitários para carregar módulos de - kernel - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 12 MB - -8.47.1. Instalação do Kmod - - Prepare Kmod para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --with-openssl \ - --with-xz \ - --with-zstd \ - --with-zlib - - O significado das opções de configure: - - --with-openssl - Essa opção habilita Kmod a lidar com assinaturas PKCS7 para - módulos de kernel. - - --with-xz, --with-zlib, e --with-zstd - Essas opções habilitam Kmod a lidar com módulos de kernel - comprimidos. - - Compile o pacote: -make - - A suíte de teste desse pacote exige cabeçalhos de kernel crus (não os - cabeçalhos de kernel “sanitizados†instalados anteriormente), os quais - estão além do escopo do LFS. - - Instale o pacote e crie links simbólicos para compatibilidade com - Module-Init-Tools (o pacote que anteriormente lidava com módulos de - kernel do Linux): -make install - -for target in depmod insmod modinfo modprobe rmmod; do - ln -sfv ../bin/kmod /usr/sbin/$target -done - -ln -sfv kmod /usr/bin/lsmod - -8.47.2. Conteúdo do Kmod - - Aplicativos instalados: depmod (link para kmod), insmod (link para - kmod), kmod, lsmod (link para kmod), modinfo (link para kmod), modprobe - (link para kmod) e rmmod (link para kmod) - Biblioteca instalada: libkmod.so - -Descrições Curtas - - depmod - - Cria um arquivo de dependência baseado nos símbolos que ele encontra no - conjunto existente de módulos; esse arquivo de dependência é usado por - modprobe para carregar automaticamente os módulos exigidos - - insmod - - Instala um módulo carregável no kernel em execução - - kmod - - Carrega e descarrega módulos de kernel - - lsmod - - Lista módulos atualmente carregados - - modinfo - - Examina um arquivo objeto associado com um módulo de kernel e exibe - qualquer informação que ele possa coletar - - modprobe - - Usa um arquivo de dependência, criado por depmod, para carregar - automaticamente módulos relevantes - - rmmod - - Descarrega módulos a partir do kernel em execução - - libkmod - - Essa biblioteca é usada por outros aplicativos para carregar e - descarregar módulos de kernel - -8.48. Libelf oriundo de Elfutils-0.186 - - Libelf é uma biblioteca para lidar com arquivos ELF (Executable and - Linkable Format). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 116 MB - -8.48.1. Instalação do Libelf - - Libelf é parte do pacote elfutils-0.186. Use o elfutils-0.186.tar.bz2 - como o tarball fonte. - - Prepare Libelf para compilação: -./configure --prefix=/usr \ - --disable-debuginfod \ - --enable-libdebuginfod=dummy - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale apenas Libelf: -make -C libelf install -install -vm644 config/libelf.pc /usr/lib/pkgconfig -rm /usr/lib/libelf.a - -8.48.2. Conteúdo do Libelf - - Biblioteca instalada: libelf.so (link simbólico) e libelf-0.186.so - Diretório instalado: /usr/include/elfutils - -Descrições Curtas - - libelf - - Contém funções de API para lidar com arquivos objeto ELF - -8.49. Libffi-3.4.2 - - A biblioteca Libffi fornece uma interface de programação portável e de - alto nível para várias convenções de chamada. Isso permite a uma(m) - programadora(r) chamar qualquer função especificada por uma descrição - de interface de chamada em tempo de execução. - Tempo aproximado de construção: 1,9 UPC - Espaço em disco exigido: 10 MB - -8.49.1. Instalação do Libffi - -Nota - - Semelhante a GMP, libffi constrói com otimizações específicas para o - processador em uso. Se construir para outro sistema, então exporte - CFLAGS e CXXFLAGS para especificar uma construção genérica para sua - arquitetura. Se isso não for feito, então todos os aplicativos que se - vincularem a libffi deflagrarão Illegal Operation Errors. - - Prepare libffi para compilação: -./configure --prefix=/usr \ - --disable-static \ - --with-gcc-arch=native \ - --disable-exec-static-tramp - - O significado da opção de configure: - - --with-gcc-arch=native - Garante que GCC otimiza para o sistema atual. Se isso não for - especificado, então o sistema é presumido e o código gerado - talvez não esteja correto para alguns sistemas. Se o código - gerado será copiado de um sistema nativo para um sistema menos - capaz, então use o sistema menos capaz como um parâmetro. Para - detalhes acerca de tipos de sistema alternativos, veja-se - [583]as opções de x86 no manual do GCC. - - --disable-exec-static-tramp - Desabilita o suporte de trampolim estático. Ele é uma nova - característica de segurança em libffi, porém alguns pacotes BLFS - (notadamente GJS e gobject-introspection) não foram adaptados - para ele. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.49.2. Conteúdo do Libffi - - Biblioteca instalada: libffi.so - -Descrições Curtas - - libffi - - contém as funções da API da interface de função estrangeira - -8.50. Python-3.10.2 - - O pacote Python 3 contém o ambiente Python de desenvolvimento. Ele é - útil para programação orientada a objetos, escrita de scripts, - prototipagem de aplicativos grandes, ou desenvolvimento de aplicações - inteiras. - Tempo aproximado de construção: 4,3 UPC - Espaço em disco exigido: 275 MB - -8.50.1. Instalação do Python 3 - - Prepare Python para compilação: -./configure --prefix=/usr \ - --enable-shared \ - --with-system-expat \ - --with-system-ffi \ - --with-ensurepip=yes \ - --enable-optimizations - - O significado das opções de configure: - - --with-system-expat - Essa chave habilita vinculação contra a versão de sistema do - Expat. - - --with-system-ffi - Essa chave habilita vinculação contra a versão de sistema de - libffi. - - --with-ensurepip=yes - Essa chave habilita construir os aplicativos de empacotamento - pip e setuptools. - - --enable-optimizations - Essa chave habilita otimizações estáveis, porém onerosas. - - Compile o pacote: -make - - Executar os testes neste ponto não é recomendado. Os testes são - conhecidos por travar indefinidamente dentro de um ambiente LFS - parcial. Se desejado, então os testes podem ser reexecutados ao final - deste capítulo ou quando Python 3 for reinstalado em BLFS. Para - executar os testes de qualquer maneira, emita make test. - - Instale o pacote: -make install - - Se desejado, então instale a documentação pré-formatada: -install -v -dm755 /usr/share/doc/python-3.10.2/html - -tar --strip-components=1 \ - --no-same-owner \ - --no-same-permissions \ - -C /usr/share/doc/python-3.10.2/html \ - -xvf ../python-3.10.2-docs-html.tar.bz2 - - O significado dos comandos de instalação de documentação: - - --no-same-owner e --no-same-permissions - Garanta que os arquivos instalados tenham a propriedade e as - permissões corretas. Sem essas opções, usar tar instalará os - arquivos de pacote com os valores da(o) criadora(r) upstream. - -8.50.2. Conteúdo do Python 3 - - Aplicativos instalados: 2to3, idle3, pip3, pydoc3, python3 e - python3-config - Bibliotecas instaladas: libpython3.10.so e libpython3.so - Diretórios instalados: /usr/include/python3.10, /usr/lib/python3 e - /usr/share/doc/python-3.10.2 - -Descrições Curtas - - 2to3 - - é um aplicativo Python que lê código fonte Python 2.x e aplica uma - série de consertos para transformá-lo em código Python 3.x válido - - idle3 - - é um script encapsulador que abre um editor GUI ciente de Python. Para - esse script executar, você precisa ter instalado Tk antes do Python, de - forma que o módulo Tkinter Python seja construído - - pip3 - - O instalador de pacote para Python. Você pode usar pip para instalar - pacotes originários do Python Package Index e outros índices - - pydoc3 - - é a ferramenta de documentação Python - - python3 - - é uma linguagem de programação orientada a objeto, interativa e - interpretada - -8.51. Ninja-1.10.2 - - Ninja é um sistema de construção pequeno com um foco em velocidade. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 64 MB - -8.51.1. Instalação do Ninja - - Quando executado, ninja normalmente executa um número máximo de - processos em paralelo. Por padrão, esse é o número de núcleos no - sistema mais dois. Em alguns casos, isso pode superaquecer uma CPU ou - deixar o sistema sem memória. Se executar a partir da linha de comando, - então passar um parâmetro -jN limitará o número de processos paralelos, - porém alguns pacotes embutem a execução de ninja e não passam um - parâmetro -j. - - Usar o procedimento opcional abaixo permite que uma(m) usuária(o) - limite o número de processos paralelos via uma variável de ambiente, - NINJAJOBS. Por exemplo, configurar: -export NINJAJOBS=4 - - limitará ninja a quatro processos paralelos. - - Se desejado, então adicione a capacidade de usar a variável de ambiente - NINJAJOBS executando: -sed -i '/int Guess/a \ - int j = 0;\ - char* jobs = getenv( "NINJAJOBS" );\ - if ( jobs != NULL ) j = atoi( jobs );\ - if ( j > 0 ) return j;\ -' src/ninja.cc - - Construa Ninja com: -python3 configure.py --bootstrap - - O significado da opção de construção: - - --bootstrap - Esse parâmetro força ninja a reconstruir ele próprio para o - sistema atual. - - Para testar os resultados, execute: -./ninja ninja_test -./ninja_test --gtest_filter=-SubprocessTest.SetWithLots - - Instale o pacote: -install -vm755 ninja /usr/bin/ -install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninj -a -install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja - -8.51.2. Conteúdo do Ninja - - Aplicativo instalado: ninja - -Descrições Curtas - - ninja - - é o sistema de construção Ninja - -8.52. Meson-0.61.1 - - Meson é um sistema de construção de código fonte aberto destinado para - ser ambos extremamente rápido e tão amigável à(ao) usuária(o) quanto - possível. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 41 MB - -8.52.1. Instalação do Meson - - Compile Meson com o seguinte comando: -python3 setup.py build - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -python3 setup.py install --root=dest -cp -rv dest/* / -install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/com -pletions/meson -install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/ -_meson - - O significado dos parâmetros de install: - - --root=dest - Por padrão, python3 setup.py install instala vários arquivos - (tais como páginas de manual) em Python Eggs. Com um local raiz - especificado, setup.py instala esses arquivos na hierarquia - padrão. Então a hierarquia pode apenas ser copiada para o local - padrão. - -8.52.2. Conteúdo do Meson - - Aplicativo instalado: meson - Diretórios instalados: - /usr/lib/python3.10/site-packages/meson-0.61.1-py3.10.egg-info e - /usr/lib/python3.10/site-packages/mesonbuild - -Descrições Curtas - - meson - - Um sistema de construção de alta produtividade - -8.53. Coreutils-9.0 - - O pacote Coreutils contém utilitários para mostrar e configurar as - características básicas de sistema. - Tempo aproximado de construção: 2,6 UPC - Espaço em disco exigido: 153 MB - -8.53.1. Instalação do Coreutils - - POSIX exige que aplicativos originários do Coreutils reconheçam limites - de carácter corretamente mesmo em locales multibyte. A seguinte - correção conserta essa não-conformidade e outros defeitos relacionados - à internacionalização. -patch -Np1 -i ../coreutils-9.0-i18n-1.patch - -Nota - - No passado, muitos defeitos foram encontrados nessa correção. Quando - reportar novos defeitos para as(os) mantenedoras(es) do Coreutils, por - favor verifique primeiro se eles são reproduzíveis sem essa correção. - - Agora, conserte um problema com valores de retorno de chmod: -patch -Np1 -i ../coreutils-9.0-chmod_fix-1.patch - - Agora prepare Coreutils para compilação: -autoreconf -fiv -FORCE_UNSAFE_CONFIGURE=1 ./configure \ - --prefix=/usr \ - --enable-no-install-program=kill,uptime - - O significado das opções de configure: - - autoreconf - A correção para internacionalização modificou o sistema de - construção do pacote, então os arquivos de configuração tem de - ser regenerados. - - FORCE_UNSAFE_CONFIGURE=1 - Essa variável de ambiente permite que o pacote seja construído - como a(o) usuária(o) root. - - --enable-no-install-program=kill,uptime - O propósito dessa chave é o de impedir que o Coreutils instale - binários que serão instalados por outros pacotes posteriormente. - - Compile o pacote: -make - - Pule para “Instale o pacote†se não executar a suíte de teste. - - Agora a suíte de teste está pronta para ser executada. Primeiro, - execute os testes que são destinados a serem executados como usuária(o) - root: -make NON_ROOT_USERNAME=tester check-root - - Nós vamos executar o resto dos testes como a(o) usuária(o) tester. - Certos testes exigem que a(o) usuária(o) seja um membro de mais que um - grupo. Para que esses testes não sejam pulados, adicione um grupo - temporário e torne a(o) usuária(o) tester parte dele: -echo "dummy:x:102:tester" >> /etc/group - - Conserte algumas das permissões de modo que a(o) usuária(o) não-root - possa compilar e executar os testes: -chown -Rv tester . - - Agora execute os testes: -su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" - - O teste test-getlogin é conhecido por falhar dentro do ambiente chroot - do LFS. - - Remova o grupo temporário: -sed -i '/dummy/d' /etc/group - - Instale o pacote: -make install - - Mova aplicativos para os locais especificados pelo FHS: -mv -v /usr/bin/chroot /usr/sbin -mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 -sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 - -8.53.2. Conteúdo do Coreutils - - Aplicativos instalados: [, b2sum, base32, base64, basename, basenc, - cat, chcon, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, - date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, - factor, false, fmt, fold, groups, head, hostid, id, install, join, - link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, - nl, nohup, nproc, numfmt, od, paste, pathchk, pinky, pr, printenv, - printf, ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq, sha1sum, - sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, - split, stat, stdbuf, stty, sum, sync, tac, tail, tee, test, timeout, - touch, tr, true, truncate, tsort, tty, uname, unexpand, uniq, unlink, - users, vdir, wc, who, whoami e yes - Biblioteca instalada: libstdbuf.so (em /usr/libexec/coreutils) - Diretório instalado: /usr/libexec/coreutils - -Descrições Curtas - - [ - - É um comando atual, /usr/bin/[, que é um sinônimo para o comando test - - base32 - - Codifica e decodifica dados de acordo com a especificação base32 (RFC - 4648) - - base64 - - Codifica e decodifica dados de acordo com a especificação base64 (RFC - 4648) - - b2sum - - Imprime ou verifica somas de verificação BLAKE2 (512 bits) - - basename - - Remove qualquer caminho e um dado sufixo de um nome de arquivo - - basenc - - Codifica ou decodifica dados usando vários algoritmos - - cat - - Concatena arquivos para saída padrão - - chcon - - Muda contexto de segurança para arquivos e diretórios - - chgrp - - Muda a propriedade do grupo de arquivos e diretórios - - chmod - - Muda as permissões de cada arquivo para o modo dado; o modo pode ser ou - uma representação simbólica das mudanças a fazer ou um número octal - representando as novas permissões - - chown - - Muda a propriedade da(o) usuária(o) e (ou) grupo de arquivos e dos - diretórios - - chroot - - Executa um comando com o diretório especificado como o diretório / - - cksum - - Imprime a soma de verificação Cyclic Redundancy Check (CRC) e as - contagens de bytes de cada arquivo especificado - - comm - - Compara dois arquivos ordenados, exibindo em três colunas as linhas que - são únicas e as linhas que são comuns - - cp - - Copia arquivos - - csplit - - Divide um dado arquivo em vários novos arquivos, separando-os de acordo - com padrões dados ou números de linha e exibindo a contagem de bytes de - cada novo arquivo - - cut - - Imprime seções de linhas, selecionando as partes de acordo com campos - ou posições dados - - date - - Exibe a hora atual no formato dado, ou configura a data do sistema - - dd - - Copia um arquivo usando o tamanho de bloco e contagem dados, enquanto - opcionalmente realiza conversões sobre ele - - df - - Reporta a quantidade de espaço de disco disponível (e usada) em todos - os sistemas de arquivos montados, ou apenas nos sistemas de arquivos - contendo os arquivos selecionados - - dir - - Lista o conteúdo de cada diretório dado (o mesmo que o comando ls) - - dircolors - - Gera comandos para configurar a variável de ambiente LS_COLOR para - mudar o esquema de cores usado por ls - - dirname - - Remove o sufixo que não é diretório de um nome de arquivo - - du - - Relata a quantidade de espaço de disco usado pelo diretório atual, por - cada diretório dado (incluindo todos subdiretórios) ou por cada um dos - arquivos dados - - echo - - Exibe as sequências de caracteres dadas - - env - - Executa um comando em um ambiente modificado - - expand - - Converte tabulação para espaços - - expr - - Avalia expressões - - factor - - Imprime os fatores primos de todos os números inteiros especificados - - false - - Não faz nada, sem sucesso; sempre sai com um código de status indicando - falha - - fmt - - Reformata os parágrafos nos arquivos dados - - fold - - Quebra as linhas nos arquivos dados - - groups - - Relata relacionamentos de membro de grupo de uma(m) usuária(o) - - head - - Imprime as primeiras dez linhas (ou o número de linhas dado) de cada - arquivo dado - - hostid - - Relata o número identificador (em hexadecimal) do dispositivo - - id - - Relata o efetivo ID de usuária(o), ID de grupo, e os relacionamentos de - membro de grupo da(o) usuária(o) atual ou usuária(o) especificada(o) - - install - - Copia arquivos enquanto configura seus modos de permissão e, se - possível, seus proprietário e grupo - - join - - Junta as linhas que tem idênticos campos de junção a partir de dois - arquivos separados - - link - - Cria um hard link com o nome dado para um arquivo - - ln - - Faz hard links ou soft (simbólico) links entre arquivos - - logname - - Relata o nome de login da(o) usuária(o) atual - - ls - - Lista o conteúdo de cada diretório dado - - md5sum - - Relata ou verifica somas de verificação Message Digest 5 (MD5) - - mkdir - - Cria diretórios com os nomes dados - - mkfifo - - Cria First-In, First-Outs (FIFOs), um "pipe nomeado" na linguagem UNIX, - com os nomes dados - - mknod - - Cria nós de dispositivo com os nomes dados; um nó de dispositivo é um - arquivo especial de caractere, um arquivo especial de bloco ou um FIFO - - mktemp - - Cria arquivos temporários de uma maneira segura; é usado em scripts - - mv - - Move ou renomeia arquivos ou diretórios - - nice - - Executa um aplicativo com prioridade de agendamento modificada - - nl - - Numera as linhas a partir dos arquivos dados - - nohup - - Executa um comando imune a interrupções, com sua saída redirecionada - para um arquivo de registro - - nproc - - Imprime o número de unidades de processamento disponíveis para um - processo - - numfmt - - Converte números para ou de sequências de caracteres legíveis por - humanos - - od - - Despeja arquivos em octal e outros formatos - - paste - - Mescla os arquivos dados, unindo linhas sequencialmente correspondentes - lado a lado, separadas por caracteres de tabulação - - pathchk - - Verifica se nomes de arquivos são válidos ou portáveis - - pinky - - É um cliente de dedo leve; ele relata algumas informações sobre as(os) - usuárias(os) dadas(os) - - pr - - Pagina e coluna arquivos para impressão - - printenv - - Imprime o ambiente - - printf - - Imprime os argumentos dados de acordo com o formato dado, muito - parecido com a função printf do C - - ptx - - Produz um índice permutado a partir do conteúdo dos arquivos dados, com - cada palavra-chave no contexto dela - - pwd - - Relata o nome do diretório de trabalho atual - - readlink - - Relata o valor do link simbólico dado - - realpath - - Imprime o caminho resolvido - - rm - - Remove arquivos ou diretórios - - rmdir - - Remove diretórios se eles estiverem vazios - - runcon - - Executa um comando com contexto de segurança especificado - - seq - - Imprime uma sequência de números dentro de um dado intervalo e com um - dado incremento - - sha1sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm 1 - (SHA1) 160 bits - - sha224sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 224 bits - - sha256sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 256 bits - - sha384sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 384 bits - - sha512sum - - Imprime ou verifica somas de verificação do Secure Hash Algorithm de - 512 bits - - shred - - Sobrescreve os arquivos dados repetidamente com padrões complexos, - tornando difícil recuperar os dados - - shuf - - Embaralha linhas do texto - - sleep - - Pausa pelo período de tempo dado - - sort - - Ordena as linhas a partir dos arquivos dados - - split - - Divide o arquivo dado em pedaços, por tamanho ou por número de linhas - - stat - - Exibe a situação de arquivo ou sistema de arquivos - - stdbuf - - Executa comandos com operações de buffer alteradas para fluxos padrão - deles - - stty - - Configura ou relata configurações de linha de terminal - - sum - - Imprime soma de verificação e contagens de blocos para cada arquivo - dado - - sync - - Libera buffers do sistema de arquivos; isso força blocos modificados - para o disco e atualiza o super bloco - - tac - - Concatena os arquivos dados em ordem reversa - - tail - - Imprime as últimas dez linhas (ou o número dado de linhas) de cada - arquivo dado - - tee - - Lê a partir da entrada padrão enquanto escreve tanto para saída padrão - quanto para os arquivos dados - - test - - Compara valores e verifica tipos de arquivos - - timeout - - Executa um comando com um limite de tempo - - touch - - Muda marcas temporais de arquivo, definindo os horários de acesso e - modificação dos arquivos dados para o horário atual; arquivos que não - existem são criados com tamanho zero - - tr - - Traduz, comprime e deleta os caracteres dados a partir da entrada - padrão - - true - - Não faz nada, com sucesso; sempre sai com um código de status indicando - sucesso - - truncate - - Comprime ou expande um arquivo para o tamanho especificado - - tsort - - Realiza uma ordenação topológica; ele escreve uma lista completamente - ordenada de acordo com a ordenação parcial em um arquivo dado - - tty - - Relata o nome de arquivo do terminal conectado à entrada padrão - - uname - - Relata informação de sistema - - unexpand - - Converte espaços para tabulação - - uniq - - Descarta todas, exceto uma das sucessivas linhas idênticas - - unlink - - Remove o arquivo dado - - users - - Relata os nomes das(os) usuárias(os) atualmente logados - - vdir - - É o mesmo que ls -l - - wc - - Relata o número de linhas, palavras e bytes para cada arquivo dado, - assim como uma linha de total quando mais que um arquivo for dado - - who - - Relata quem está logado - - whoami - - Relata o nome de usuária(o) associado com o ID de usuária(o) efetivo - atual - - yes - - Repetidamente retorna “y†ou uma sequência de caracteres dada até que - seja terminado - - libstdbuf - - Biblioteca usada por stdbuf - -8.54. Check-0.15.2 - - Check é uma estrutura de teste de unidade para C. - Tempo aproximado de construção: 0,1 UPC (cerca de 3,8 UPC com os - testes) - Espaço em disco exigido: 12 MB - -8.54.1. Instalação do Check - - Prepare Check para compilação: -./configure --prefix=/usr --disable-static - - Construa o pacote: -make - - Compilação agora está completa. Para executar a suíte de teste do - Check, execute o seguinte comando: -make check - - Instale o pacote: -make docdir=/usr/share/doc/check-0.15.2 install - -8.54.2. Conteúdo do Check - - Aplicativo instalado: checkmk - Biblioteca instalada: libcheck.so - -Descrições Curtas - - checkmk - - Script awk para gerar testes de unidade C para uso com a estrutura de - teste de unidade do Check - - libcheck.{a,so} - - Contém funções que permitem que Check seja chamado a partir de um - aplicativo de teste - -8.55. Diffutils-3.8 - - O pacote Diffutils contém aplicativos que mostram as diferenças entre - arquivos ou diretórios. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 34 MB - -8.55.1. Instalação do Diffutils - - Prepare Diffutils para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.55.2. Conteúdo do Diffutils - - Aplicativos instalados: cmp, diff, diff3 e sdiff - -Descrições Curtas - - cmp - - Compara dois arquivos e relata se ou em quais bytes eles diferem - - diff - - Compara dois arquivos ou diretórios e relata quais linhas nos arquivos - diferem - - diff3 - - Compara três arquivos linha por linha - - sdiff - - Mescla dois arquivos e interativamente exibe os resultados - -8.56. Gawk-5.1.1 - - O pacote Gawk contém aplicativos para manipular arquivos de texto. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 43 MB - -8.56.1. Instalação do Gawk - - Primeiro, garanta que alguns arquivos desnecessários não sejam - instalados: -sed -i 's/extras//' Makefile.in - - Prepare Gawk para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/gawk-5.1.1 -cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1 - -8.56.2. Conteúdo do Gawk - - Aplicativos instalados: awk (link para gawk), gawk e awk-5.1.1 - Bibliotecas instaladas: filefuncs.so, fnmatch.so, fork.so, inplace.so, - intdiv.so, ordchr.so, readdir.so, readfile.so, revoutput.so, - revtwoway.so, rwarray.so e time.so (todas em /usr/lib/gawk) - Diretórios instalados: /usr/lib/gawk, /usr/libexec/awk, /usr/share/awk - e /usr/share/doc/gawk-5.1.1 - -Descrições Curtas - - awk - - Um link para gawk - - gawk - - Um aplicativo para manipular arquivos de texto; é a implementação GNU - do awk - - gawk-5.1.1 - - Um hard link para gawk - -8.57. Findutils-4.9.0 - - O pacote Findutils contém aplicativos para procurar arquivos. Esses - aplicativos são fornecidos para procurar recursivamente dentro de uma - árvore de diretório e para criar, manter e buscar um banco de dados - (geralmente mais rápido que o find recursivo, porém não é confiável se - o banco de dados não for atualizado recentemente). - Tempo aproximado de construção: 0,9 UPC - Espaço em disco exigido: 51 MB - -8.57.1. Instalação do Findutils - - Prepare Findutils para compilação: -case $(uname -m) in - i?86) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/ -lib/locate ;; - x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; -esac - - O significado das opções de configure: - - TIME_32_BIT_OK=yes - Essa configuração é necessária para construir em um sistema de - 32 bits. - - --localstatedir - Essa opção muda o local da base de dados locate para estar em - /var/lib/locate, o qual é conforme com FHS. - - Compile o pacote: -make - - Para testar os resultados, execute: -chown -Rv tester . -su tester -c "PATH=$PATH make check" - - Instale o pacote: -make install - -8.57.2. Conteúdo do Findutils - - Aplicativos instalados: find, locate, updatedb e xargs - Diretório instalado: /var/lib/locate - -Descrições Curtas - - find - - Pesquisa em árvores de diretórios dadas por arquivos correspondendo a - critérios especificados - - locate - - Pesquisa em um banco de dados de nomes de arquivo e relata os nomes que - contém uma sequência de caracteres dada ou correspondem a um padrão - dado - - updatedb - - Atualiza o banco de dados locate; ele escaneia o sistema de arquivos - inteiro (incluindo outros sistemas de arquivos que estejam montados - atualmente, a menos que dito o contrário) e coloca cada nome de arquivo - que ele encontrar no banco de dados - - xargs - - Pode ser usado para aplicar um comando dado a uma lista de arquivos - -8.58. Groff-1.22.4 - - O pacote Groff contém aplicativos para processar e formatar texto. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 88 MB - -8.58.1. Instalação do Groff - - Groff espera que a variável de ambiente PAGE contenha o tamanho de - papel padrão. Para usuárias(os) nos Estados Unidos da América do Norte, - PAGE=letter é apropriado. Em outros lugares, PAGE=A4 talvez seja mais - adequado. Embora o tamanho do papel padrão seja configurado durante a - compilação, ele pode ser substituído posteriormente ecoando ou “A4†ou - “letter†para o arquivo /etc/papersize. - - Prepare Groff para compilação: -PAGE= ./configure --prefix=/usr - - Esse pacote não suporta construção paralela. Compile o pacote: -make -j1 - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -make install - -8.58.2. Conteúdo do Groff - - Aplicativos instalados: addftinfo, afmtodit, chem, eqn, eqn2graph, - gdiffmk, glilypond, gperl, gpinyin, grap2graph, grn, grodvi, groff, - groffer, grog, grolbp, grolj4, gropdf, grops, grotty, hpftodit, - indxbib, lkbib, lookbib, mmroff, neqn, nroff, pdfmom, pdfroff, pfbtops, - pic, pic2graph, post-grohtml, preconv, pre-grohtml, refer, roff2dvi, - roff2html, roff2pdf, roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit - e troff - Diretórios instalados: /usr/lib/groff, /usr/share/doc/groff-1.22.4 e - /usr/share/groff - -Descrições Curtas - - addftinfo - - Lê um arquivo de fonte troff e adiciona algumas informações de métrica - de fonte adicionais que são usadas pelo sistema groff - - afmtodit - - Cria um arquivo de fonte para uso com groff e grops - - chem - - Preprocessador Groff para produzir diagramas de estrutura química - - eqn - - Compila descrições de equações embutidas em arquivos de entrada troff - em comandos que são entendidos por troff - - eqn2graph - - Converte uma EQN (equação) troff em uma imagem recortada - - gdiffmk - - Marca diferenças entre arquivos groff/nroff/troff - - glilypond - - Transforma partituras escritas na linguagem lilypond na linguagem groff - - gperl - - Preprocessador para groff, permitindo adição do código perl em arquivos - groff - - gpinyin - - Preprocessador para groff, permitindo adição do idioma semelhante a - Chinês Europeu Pinyin em arquivos groff - - grap2graph - - Converte um diagrama grap em uma imagem de bitmap recortada - - grn - - Um preprocessador groff para arquivos gremlin - - grodvi - - Um controlador para groff que produz formato dvi do TeX - - groff - - Um frontal para o sistema de formatação de documentos groff; - normalmente, ele executa o aplicativo troff e um pós-processador - apropriado para o dispositivo selecionado - - groffer - - Exibe arquivos groff e páginas de manual em terminais X e tty - - grog - - Lê arquivos e advinha quais das opções groff -e, -man, -me, -mm, -ms, - -p, -s e -t são exigidas para imprimir arquivos, e relata o comando - groff incluindo aquelas opções - - grolbp - - É um controlador groff para impressoras Canon CAPSL (impressoras a - laser séries LBP-4 e LBP-8) - - grolj4 - - É um controlador para groff que produz saída no formato PCL5 adequado - para uma impressora HP LaserJet 4 - - gropdf - - Traduz a saída do GNU troff para PDF - - grops - - Traduz a saída do GNU troff para PostScript - - grotty - - Traduz a saída do GNU troff em uma forma adequada para dispositivos - semelhantes a máquina de escrever - - hpftodit - - Cria um arquivo de fonte para uso com groff -Tlj4 a partir de um - arquivo de métrica de fonte rotulada HP - - indxbib - - Cria um índice invertido para os bancos de dados bibliográficos com um - arquivo especificado para uso com refer, lookbib e lkbib - - lkbib - - Pesquisa em bancos de dados bibliográficos por referências que - contenham chaves especificadas e relata quaisquer referências - encontradas - - lookbib - - Imprime um prompt na saída de erro padrão (a não ser que a entrada - padrão não seja um terminal); lê uma linha contendo um conjunto de - palavras chave a partir da entrada padrão; pesquisa em bancos de dados - bibliográficos, em um arquivo especificado, por referências contendo - aquelas palavras chave; imprime quaisquer referências encontradas na - saída padrão; e repete esse processo até o final da entrada - - mmroff - - Um preprocessador simples para groff - - neqn - - Formata equações para saída American Standard Code for Information - Interchange (ASCII) - - nroff - - Um script que emula o comando nroff usando groff - - pdfmom - - É um encapsulador em torno de groff que facilita a produção de - documentos PDF a partir de arquivos formatados com as macros mom - - pdfroff - - Cria documentos pdf usando groff - - pfbtops - - Traduz uma fonte PostScript em formato .pfb para ASCII - - pic - - Compila descrições de imagens embutidas em arquivos de entrada troff ou - TeX em comandos entendidos por TeX ou troff - - pic2graph - - Converte um diagrama PIC em uma imagem recortada - - post-grohtml - - Traduz a saída do GNU troff para HTML - - preconv - - Converte codificação de arquivos de entrada em alguma coisa que o GNU - troff entende - - pre-grohtml - - Traduz a saída do GNU troff para HTML - - refer - - Copia o conteúdo de um arquivo para a saída padrão, exceto aquelas - linhas entre .[ e .] que são interpretadas como citações, e linhas - entre .R1 e .R2 que são interpretadas como comandos para como citações - são para serem processadas - - roff2dvi - - Transforma arquivos roff para o formato DVI - - roff2html - - Transforma arquivos roff para o formato HTML - - roff2pdf - - Transforma arquivos roff em PDFs - - roff2ps - - Transforma arquivos roff em arquivos ps - - roff2text - - Transforma arquivos roff em arquivos de texto - - roff2x - - Transforma arquivos roff em outros formatos - - soelim - - Lê arquivos e substitui linhas da forma .so arquivo pelo conteúdo do - arquivo mencionado - - tbl - - Compila descrições de tabelas embutidas em arquivos de entrada troff em - comandos que são entendidos por troff - - tfmtodit - - Cria um arquivo fonte para uso com groff -Tdvi - - troff - - É altamente compatível com o troff do Unix; ele usualmente deveria ser - invocado usando o comando groff, o qual também executará - preprocessadores e pós-processadores na ordem apropriada e com as - opções apropriadas - -8.59. GRUB-2.06 - - O pacote GRUB contém o GRand Unified Bootloader. - Tempo aproximado de construção: 0,7 UPC - Espaço em disco exigido: 158 MB - -8.59.1. Instalação do GRUB - -Nota - - Se seu sistema tem suporte UEFI e você deseja inicializar LFS com UEFI, - então você pode pular esse pacote em LFS, e instalar GRUB com suporte - UEFI (e as dependências dele) seguindo [584]a página BLFS ao final - deste capítulo. - - Prepare GRUB para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --disable-efiemu \ - --disable-werror - - O significado das novas opções de configure: - - --disable-werror - Isso permite que a construção complete com avisos introduzidos - por mais recentes versões do Flex. - - --disable-efiemu - Essa opção minimiza o que é construído desabilitando uma - característica e aplicativos de teste não necessários para o - LFS. - - Compile o pacote: -make - - A suíte de teste para esse pacote não é recomendada. A maioria dos - testes depende de pacotes que não estão disponíveis no limitado - ambiente do LFS. Para executar os testes mesmo assim, execute make - check. - - Instale o pacote: -make install -mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions - - Usar GRUB para tornar seu sistema LFS inicializável será discutido em - [585]Seção 10.4, “Usando o GRUB para Configurar o Processo de - Inicializaçãoâ€. - -8.59.2. Conteúdo do GRUB - - Aplicativos instalados: grub-bios-setup, grub-editenv, grub-file, - grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, - grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, - grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, - grub-mkstandalone, grub-ofpathname, grub-probe, grub-reboot, - grub-render-label, grub-script-check, grub-set-default, - grub-sparc64-setup e grub-syslinux2cfg - Diretórios instalados: /usr/lib/grub, /etc/grub.d, /usr/share/grub e - /boot/grub (quando grub-install for primeiro executado) - -Descrições Curtas - - grub-bios-setup - - É um aplicativo auxiliar para grub-install - - grub-editenv - - Uma ferramenta para editar o bloco ambiente - - grub-file - - Verifica se FILE é do tipo especificado - - grub-fstest - - Ferramenta para depurar o controlador de sistema de arquivos - - grub-glue-efi - - Processa imagens EFI ia32 e amd64 e cola elas de acordo com formato - Apple - - grub-install - - Instala o GRUB no seu controlador - - grub-kbdcomp - - Script que converte um esquema xkb em um reconhecido por GRUB - - grub-macbless - - Bênção estilo Mac sobre arquivos HFS ou HFS+ - - grub-menulst2cfg - - Converte um menu.lst do GRUB Legacy em um grub.cfg para uso com GRUB 2 - - grub-mkconfig - - Gera um arquivo de configuração grub - - grub-mkimage - - Faz uma imagem inicializável do GRUB - - grub-mklayout - - Gera um arquivo de esquema de teclado do GRUB - - grub-mknetdir - - Prepara um diretório de inicialização de rede GRUB - - grub-mkpasswd-pbkdf2 - - Gera uma senha PBKDF2 encriptada para uso no menu de inicialização - - grub-mkrelpath - - Faz um caminho de sistema relativo à raiz dele - - grub-mkrescue - - Faz uma imagem inicializável do GRUB adequada para um disquete ou - CDROM/DVD - - grub-mkstandalone - - Gera uma imagem independente - - grub-ofpathname - - É um programa auxiliar que imprime o caminho de um dispositivo GRUB - - grub-probe - - Sonda informação de dispositivo para um caminho ou dispositivo dado - - grub-reboot - - Configura a entrada de inicialização padrão para o GRUB para a próxima - inicialização apenas - - grub-render-label - - Renderiza .disk_label da Apple para Macs da Apple - - grub-script-check - - Verifica script de configuração do GRUB para erros de sintaxe - - grub-set-default - - Configura a entrada de inicialização padrão para o GRUB - - grub-sparc64-setup - - É um programa auxiliar para grub-setup - - grub-syslinux2cfg - - Transforma um arquivo de configuração syslinux no formato grub.cfg - -8.60. Gzip-1.11 - - O pacote Gzip contém aplicativos para compressão e descompressão de - arquivos. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 20 MB - -8.60.1. Instalação do Gzip - - Prepare Gzip para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.60.2. Conteúdo do Gzip - - Aplicativos instalados: gunzip, gzexe, gzip, uncompress (hard link com - gunzip), zcat, zcmp, zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore - e znew - -Descrições Curtas - - gunzip - - Descomprime arquivos gzipados - - gzexe - - Cria arquivos executáveis auto-descomprimíveis - - gzip - - Comprime os arquivos dados usando codificação Lempel-Ziv (LZ77) - - uncompress - - Descomprime arquivos comprimidos - - zcat - - Descomprime os arquivos gzipados dados para a saída padrão - - zcmp - - Executa cmp em arquivos gzipados - - zdiff - - Executa diff em arquivos gzipados - - zegrep - - Executa egrep em arquivos gzipados - - zfgrep - - Executa fgrep em arquivos gzipados - - zforce - - Força uma extensão .gz em todos os arquivos dados que são arquivos - gzipados, de modo que o gzip não comprimirá eles novamente; isso pode - ser útil quando nomes de arquivo foram truncados durante uma - transferência de arquivo - - zgrep - - Executa grep em arquivos gzipados - - zless - - Executa less em arquivos gzipados - - zmore - - Executa more em arquivos gzipados - - znew - - Recomprime arquivos oriundos do formato compress para formato gzip—.Z - para .gz - -8.61. IPRoute2-5.16.0 - - O pacote IPRoute2 contém aplicativos para redes baseadas em IPV4 - básicas e avançadas. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 15 MB - -8.61.1. Instalação do IPRoute2 - - O aplicativo arpd incluído nesse pacote não será construído dado que - ele é dependente do Berkeley DB, o qual não é instalado em LFS. - Entretanto, um diretório para arpd e uma página de manual ainda serão - instalados. Impeça isso executando os comandos abaixo. Se o binário - arpd for necessário, então instruções para compilar o Berkeley DB podem - ser encontradas no Livro BLFS em - [586]https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/d - b.html. -sed -i /ARPD/d Makefile -rm -fv man/man8/arpd.8 - - Compile o pacote: -make - - Esse pacote não tem uma suíte de teste funcional. - - Instale o pacote: -make SBINDIR=/usr/sbin install - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/iproute2-5.16.0 -cp -v COPYING README* /usr/share/doc/iproute2-5.16.0 - -8.61.2. Conteúdo do IPRoute2 - - Aplicativos instalados: bridge, ctstat (link para lnstat), genl, ifcfg, - ifstat, ip, lnstat, nstat, routef, routel, rtacct, rtmon, rtpr, rtstat - (link para lnstat), ss e tc - Diretórios instalados: /etc/iproute2, /usr/lib/tc e - /usr/share/doc/iproute2-5.16.0 - -Descrições Curtas - - bridge - - Configura pontes de redes - - ctstat - - Utilitário de situação de conexão - - genl - - Frontal utilitário de link de rede genérico - - ifcfg - - Um encapsulador de script de shell para o comando ip [Note que ele - exige os aplicativos arping e rdisk originários do pacote iputils - encontrado em [587]http://www.skbuff.net/iputils/] - - ifstat - - Mostra as estatísticas de interface, incluindo a quantidade de pacotes - transmitidos e recebidos pela interface - - ip - - O executável principal. Ele tem várias funções: - - ip link permite usuárias(os) olharem para o estado de - dispositivos e fazerem mudanças - - ip addr permite usuárias(os) olharem para endereços e propriedades - deles, adicionarem novos endereços e deletarem antigos - - ip neighbor permite usuárias(os) olharem para vínculos de vizinho e - propriedades deles, adicionarem novas entradas de vizinho e deletarem - as antigas - - ip rule permite usuárias(os) olharem para políticas de roteamento e - mudar elas - - ip route permite usuárias(os) olharem para a tabela de roteamento e - mudar regras de tabela de roteamento - - ip tunnel permite usuárias(os) olharem para os tuneis IP e propriedades - deles, e mudar elas - - ip maddr permite usuárias(os) olharem para os endereços multicast e - propriedades deles, e mudar elas - - ip mroute permite usuárias(os) configurarem, mudarem ou deletarem o - roteamento multicast - - ip monitor permite usuárias(os) continuamente monitorarem o estado de - dispositivos, endereços e rotas - - lnstat - - Fornece estatísticas de rede do Linux; ele é uma substituição difundida - e mais completa de características para o antigo aplicativo rtstat - - nstat - - Mostra estatísticas de rede - - routef - - Um componente do ip route. Isso é para esvaziar as tabelas de - roteamento - - routel - - Um componente do ip route. Isso é para listar as tabelas de roteamento - - rtacct - - Exibe o conteúdo de /proc/net/rt_acct - - rtmon - - Utilitário de monitoramento de rota - - rtpr - - Converte a saída de ip -o de volta em um formato legível - - rtstat - - Utilitário de situação de rota - - ss - - Similar ao comando netstat; exibe conexões ativas - - tc - - Executável de Controle de Tráfego; isso é para implementações de - Quality Of Service (QOS) e Class Of Service (COS) - - tc qdisc permite usuárias(os) configurarem a disciplina de - enfileiramento - - tc class permite usuárias(os) configurarem classes baseadas no - agendamento de disciplina de enfileiramento - - tc estimator permite usuárias(os) estimarem o fluxo de rede dentro de - uma rede - - tc filter permite usuárias(os) configurarem a filtragem de pacote - QOS/COS - - tc policy permite usuárias(os) configurarem as políticas de QOS/COS - -8.62. Kbd-2.4.0 - - O pacote Kbd contém arquivos de tabelas de teclas, fontes de console e - utilitários de teclado. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 33 MB - -8.62.1. Instalação do Kbd - - O comportamento das teclas backspace e delete não é consistente ao - longo dos mapas de teclas no pacote Kbd. A seguinte correção conserta - esse problema para mapas de tecla i386: -patch -Np1 -i ../kbd-2.4.0-backspace-1.patch - - Após corrigir, a tecla backspace gera o carácter com código 127 e a - tecla delete gera uma sequência bem conhecida de escape. - - Remova o aplicativo redundante resizecons (ele exige que a defunta - svgalib forneça os arquivos de modo de vídeo - para uso normal setfont - dimensiona o console adequadamente) juntamente com a página de manual - dele. -sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure -sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in - - Prepare Kbd para compilação: -./configure --prefix=/usr --disable-vlock - - O significado da opção de configure: - - --disable-vlock - Essa opção evita que o utilitário vlock seja construído, pois - ele exige a biblioteca PAM, que não está disponível no ambiente - chroot. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -Nota - - Para alguns idiomas (por exemplo, Bielorrusso) o pacote Kbd não fornece - um mapa de tecla útil onde o regular mapa de tecla “by†supõe a - codificação ISO-8859-5, e o mapa de tecla CP1251 normalmente é usado. - Usuárias(os) de tais idiomas tem que baixar mapas de tecla funcionais - separadamente. - - Se desejado, então instale a documentação: -mkdir -pv /usr/share/doc/kbd-2.4.0 -cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0 - -8.62.2. Conteúdo do Kbd - - Aplicativos instalados: chvt, deallocvt, dumpkeys, fgconsole, - getkeycodes, kbdinfo, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, - openvt, psfaddtable (link para psfxtable), psfgettable (link para - psfxtable), psfstriptable (link para psfxtable), psfxtable, setfont, - setkeycodes, setleds, setmetamode, setvtrgb, showconsolefont, showkey, - unicode_start e unicode_stop - Diretórios instalados: /usr/share/consolefonts, - /usr/share/consoletrans, /usr/share/keymaps, /usr/share/doc/kbd-2.4.0 e - /usr/share/unimaps - -Descrições Curtas - - chvt - - Muda o terminal virtual de primeiro plano - - deallocvt - - Desaloca terminais virtuais não usados - - dumpkeys - - Despeja as tabelas de tradução de teclado - - fgconsole - - Imprime o número do terminal virtual ativo - - getkeycodes - - Imprime a tabela de mapeamento de código de escaneamento para código de - tecla do kernel - - kbdinfo - - Obtém informação sobre a situação de um console - - kbd_mode - - Relata ou configura o modo de teclado - - kbdrate - - Configura as taxas de repetição e atraso de teclado - - loadkeys - - Carrega as tabelas de tradução de teclado - - loadunimap - - Carrega a tabela de mapeamento unicode para fonte do kernel - - mapscrn - - Um aplicativo obsoleto que costumava carregar uma tabela de mapeamento - de caractere de saída definida pela(o) usuária(o) para dentro do - controlador de console; isso é feito agora por setfont - - openvt - - Inicia um aplicativo em um novo terminal virtual (VT) - - psfaddtable - - Adiciona uma tabela de carácter Unicode para uma fonte de console - - psfgettable - - Extrai a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfstriptable - - Remove a tabela de carácter Unicode embutida a partir de uma fonte de - console - - psfxtable - - Lida com tabelas de carácter Unicode para fontes de console - - setfont - - Muda as fontes Enhanced Graphic Adapter (EGA) e Video Graphics Array - (VGA) no console - - setkeycodes - - Carrega entradas de tabela de mapeamento de código de escaneamento para - código de tecla do kernel; isso é útil se existirem teclas incomuns no - teclado - - setleds - - Configura os sinalizadores de teclado e Light Emitting Diodes (LEDs) - - setmetamode - - Define o manuseio de meta tecla de teclado - - setvtrgb - - Configura o mapa de cor de console em todos os terminais virtuais - - showconsolefont - - Exibe a fonte de tela de console EGA/VGA atual - - showkey - - Relata os códigos de escaneamento, códigos de tecla e códigos ASCII das - teclas pressionadas no teclado - - unicode_start - - Põe o teclado e console em modo UNICODE [Não use esse aplicativo a - menos que seu arquivo de mapa de tecla esteja na codificação - ISO-8859-1. Para outras codificações, esse utilitário produz resultados - incorretos.] - - unicode_stop - - Reverte teclado e console do modo UNICODE - -8.63. Libpipeline-1.5.5 - - O pacote Libpipeline contém uma biblioteca para manipular pipelines de - subprocessos em uma maneira flexível e conveniente. - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 9,7 MB - -8.63.1. Instalação do Libpipeline - - Prepare Libpipeline para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.63.2. Conteúdo do Libpipeline - - Biblioteca instalada: libpipeline.so - -Descrições Curtas - - libpipeline - - Essa biblioteca é usada para seguramente construir pipelines entre - subprocessos - -8.64. Make-4.3 - - O pacote Make contém um aplicativo para controlar a geração de - executáveis e outros arquivos não fonte de um pacote a partir de - arquivos fonte. - Tempo aproximado de construção: 0,5 UPC - Espaço em disco exigido: 13 MB - -8.64.1. Instalação do Make - - Prepare Make para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.64.2. Conteúdo do Make - - Aplicativo instalado: make - -Descrições Curtas - - make - - Automaticamente determina quais partes de um pacote precisam ser - (re)compiladas e então emite os comandos relevantes - -8.65. Patch-2.7.6 - - O pacote Patch contém um aplicativo para modificar ou criar arquivos - por aplicação de um arquivo “patch†tipicamente criado pelo aplicativo - diff. - Tempo aproximado de construção: 0,2 UPC - Espaço em disco exigido: 12 MB - -8.65.1. Instalação do Patch - - Prepare Patch para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.65.2. Conteúdo do Patch - - Aplicativo instalado: patch - -Descrições Curtas - - patch - - Modifica arquivos de acordo com um arquivo de correção (Um arquivo de - correção normalmente é uma listagem de diferenças criada com o - aplicativo diff. Aplicando essas diferenças aos arquivos originais, - patch cria as versões corrigidas.) - -8.66. Tar-1.34 - - O pacote Tar fornece a habilidade para criar arquivamentos tar bem como - realizar vários outros tipos de manipulação de arquivamento. Tar pode - ser usado em arquivamentos previamente criados para extrair arquivos, - para armazenar arquivos adicionais, ou para atualizar ou listar - arquivos que já foram armazenados. - Tempo aproximado de construção: 1,7 UPC - Espaço em disco exigido: 40 MB - -8.66.1. Instalação do Tar - - Prepare Tar para compilação: -FORCE_UNSAFE_CONFIGURE=1 \ -./configure --prefix=/usr - - O significado da opção de configure: - - FORCE_UNSAFE_CONFIGURE=1 - Isso força o teste para mknod ser executado como root. - Geralmente é considerado perigoso executar esse teste como a(o) - usuária(o) root, porém como ele está sendo executado em um - sistema que foi apenas parcialmente construído, substituir ele - está OK. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Um teste, capabilities: binary store/restore, é conhecido por falhar se - ele for executado (LFS carece de selinux), porém será pulado se o - kernel do anfitrião não suportar atributos estendidos no sistema de - arquivos usado para construir LFS. - - Instale o pacote: -make install -make -C doc install-html docdir=/usr/share/doc/tar-1.34 - -8.66.2. Conteúdo do Tar - - Aplicativo instalado: tar - Diretório instalado: /usr/share/doc/tar-1.34 - -Descrições Curtas - - tar - - Cria, extrai arquivos originários de, e lista o conteúdo de - arquivamentos, também conhecidos como tarballs - -8.67. Texinfo-6.8 - - O pacote Texinfo contém aplicativos para leitura, escrita e conversão - de páginas info. - Tempo aproximado de construção: 0,6 UPC - Espaço em disco exigido: 112 MB - -8.67.1. Instalação do Texinfo - - Prepare Texinfo para compilação: -./configure --prefix=/usr - - Novamente, conserte um problema ao construir o pacote com Glibc-2.34 ou - posterior: -sed -e 's/__attribute_nonnull__/__nonnull/' \ - -i gnulib/lib/malloc/dynarray-skeleton.c - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - - Opcionalmente, instale os componentes pertencentes a uma instalação de - TeX: -make TEXMF=/usr/share/texmf install-tex - - O significado do parâmetro de make: - - TEXMF=/usr/share/texmf - A variável de arquivo make TEXMF mantém o local da raiz da - árvore do TeX se, por exemplo, um pacote do TeX seja instalado - posteriormente. - - O sistema de documentação Info usa um arquivo de texto simples para - manter a lista de entradas de menu dele. O arquivo está localizado em - /usr/share/info/dir. Infelizmente, devido a problemas ocasionais nos - arquivos Make de vários pacotes, ele pode as vezes sair de sincronia - com as páginas info instaladas no sistema. Se o arquivo - /usr/share/info/dir alguma vez precisar ser recriado, então os - seguintes comandos opcionais realizarão a tarefa: -pushd /usr/share/info - rm -v dir - for f in * - do install-info $f dir 2>/dev/null - done -popd - -8.67.2. Conteúdo do Texinfo - - Aplicativos instalados: info, install-info, makeinfo (link para - texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf e - texindex - Bibliotecas instaladas: MiscXS.so, Parsetexi.so e XSParagraph.so (todas - em /usr/lib/texinfo) - Diretórios instalados: /usr/share/texinfo e /usr/lib/texinfo - -Descrições Curtas - - info - - Usado para ler páginas info as quais são similares a páginas de manual, - porém frequentemente vão muito mais fundo que somente explanar todas as - opções de linha de comando disponíveis [Por exemplo, compare man bison - e info bison] - - install-info - - Usado para instalar páginas info; ele atualiza entradas no arquivo de - índice info - - makeinfo - - Traduz os documentos fonte do Texinfo dados para páginas info, texto - simples ou HTML - - pdftexi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - pod2texi - - Converte Pod para formato Texinfo - - texi2any - - Traduz documentação fonte do Texinfo para vários outros formatos - - texi2dvi - - Usado para formatar o documento do Texinfo dado em um arquivo - independente de dispositivo que pode ser impresso - - texi2pdf - - Usado para formatar o documento do Texinfo dado em um arquivo Portable - Document Format (PDF) - - texindex - - Usado para ordenar arquivos de índice do Texinfo - -8.68. Vim-8.2.4383 - - O pacote Vim contém um editor de texto poderoso. - Tempo aproximado de construção: 2,4 UPC - Espaço em disco exigido: 206 MB - -Alternativas ao Vim - - Se você preferir outro editor—como Emacs, Joe ou Nano—por favor - consulte - [588]https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ - editors.html para instruções de instalação sugeridas. - -8.68.1. Instalação do Vim - - Primeiro, mude o local padrão do arquivo de configuração vimrc para - /etc: -echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h - - Prepare vim para compilação: -./configure --prefix=/usr - - Compile o pacote: -make - - Para preparar os testes, garanta que usuária(o) tester pode escrever na - árvore de fonte: -chown -Rv tester . - - Agora execute os testes como usuária(o) tester: -su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log - - A suíte de teste emite muitos dados binários para a tela. Isso pode - causar problemas com as configurações do terminal atual. O problema - pode ser evitado redirecionando a saída para um arquivo de registro - conforme mostrado acima. Um teste bem sucedido resultará nas palavras - "ALL DONE" no arquivo de registro ao completar. - - Instale o pacote: -make install - - Muitas(os) usuárias(os) estão acostumadas(os) a usar vi em vez de vim. - Para permitir a execução do vim quando usuárias(os) habitualmente - digitarem vi, crie um link simbólico para ambos o binário e a página de - manual nos idiomas fornecidos: -ln -sv vim /usr/bin/vi -for L in /usr/share/man/{,*/}man1/vim.1; do - ln -sv vim.1 $(dirname $L)/vi.1 -done - - Por padrão, a documentação do vim é instalada em /usr/share/vim. O - seguinte link simbólico permite que a documentação seja acessada via - /usr/share/doc/vim-8.2.4383, tornando ela consistente com o local da - documentação para outros pacotes: -ln -sv ../vim/vim82/doc /usr/share/doc/vim-8.2.4383 - - Se um X Window System vier a ser instalado no sistema LFS, então talvez - seja necessário recompilar vim após instalar X. O Vim vem com uma - versão GUI do editor que exige o X e algumas bibliotecas adicionais - para ser instalada. Para mais informações sobre esse processo, consulte - a documentação de vim e a página de instalação de vim no livro BLFS em - [589]https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ - vim.html. - -8.68.2. Configurando Vim - - Por padrão, vim executa em modo incompatível com vi. Isso talvez seja - novo para usuárias(os) que usaram outros editores no passado. A - configuração “nocompatible†está incluída abaixo para destacar o fato - de que um novo comportamento está sendo usado. Ela também lembra - àquelas(es) que mudariam para o modo “compatible†que esse deveria ser - a primeira configuração no arquivo de configuração. Isso é necessário, - pois ela muda outras configurações, e substituições precisam vir após - essa configuração. Crie um arquivo de configuração vim padrão - executando o seguinte: -cat > /etc/vimrc << "EOF" -" Begin /etc/vimrc - -" Ensure defaults are set before customizing settings, not after -source $VIMRUNTIME/defaults.vim -let skip_defaults_vim=1 - -set nocompatible -set backspace=2 -set mouse= -syntax on -if (&term == "xterm") || (&term == "putty") - set background=dark -endif - -" End /etc/vimrc -EOF - - A configuração set nocompatible faz com que vim se comporte de uma - maneira mais útil (o padrão) que a maneira compatível com vi. Remova o - “no†para manter o comportamento vi antigo. A configuração set - backspace=2 permite retroceder sobre quebras de linha, auto recuos e o - início de uma inserção. O parâmetro syntax on habilita o destaque de - sintaxe do vim. A configuração set mouse= habilita adequada colagem de - texto com o mouse quando trabalhar em chroot ou por meio de uma conexão - remota. Finalmente, a declaração if com a configuração set - background=dark corrige a suposição do vim sobre a cor de segundo plano - de alguns emuladores de terminal. Isso dá ao destaque um esquema de - cores melhor para uso no segundo plano preto desses aplicativos. - - Documentação para outras opções disponíveis pode ser obtida executando - o seguinte comando: -vim -c ':options' - -Nota - - Por padrão, vim instala apenas arquivos de soletrar para o idioma - inglês. Para instalar arquivos de soletrar para seu idioma preferido, - baixe os arquivos *.spl e, opcionalmente, o *.sug para seu idioma e - codificação de caracter a partir de - [590]ftp://ftp.vim.org/pub/vim/runtime/spell/ e salve-os em - /usr/share/vim/vim82/spell/. - - Para usar esses arquivos de soletrar, alguma configuração em /etc/vimrc - é necessária, por exemplo: -set spelllang=en,ru -set spell - - Para mais informação, veja o arquivo README apropriado localizado na - URL acima. - -8.68.3. Conteúdo do Vim - - Aplicativos instalados: ex (link para vim), rview (link para vim), rvim - (link para vim), vi (link para vim), view (link para vim), vim, vimdiff - (link para vim), vimtutor e xxd - Diretório instalado: /usr/share/vim - -Descrições Curtas - - ex - - Inicia vim em modo ex - - rview - - É uma versão restrita do view; nenhum comando de shell pode ser - iniciado e view não pode ser suspenso - - rvim - - É uma versão restrita do vim; nenhum comando de shell pode ser iniciado - e vim não pode ser suspenso - - vi - - Link para vim - - view - - Inicia vim em modo somente leitura - - vim - - É o editor - - vimdiff - - Edita duas ou três versões de um arquivo com vim e exibe diferenças - - vimtutor - - Ensina as teclas básicas e comandos do vim - - xxd - - Cria um despejo hexadecimal do arquivo dado; ele também pode fazer o - reverso, de forma que ele pode ser usado para correção de binário - -8.69. MarkupSafe-2.0.1 - - MarkupSafe é um módulo do Python que implementa sequência de caracteres - segura XML/HTML/XHTML Markup. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 520 KB - -8.69.1. Instalação do MarkupSafe - - Compile MarkupSafe com o seguinte comando: -python3 setup.py build - - Esse pacote não vem com uma suíte de teste. - - Instale o pacote: -python3 setup.py install --optimize=1 - -8.69.2. Conteúdo do MarkupSafe - - Diretório instalado: - /usr/lib/python3.10/site-packages/MarkupSafe-2.0.1-py3.10.egg - -8.70. Jinja2-3.0.3 - - Jinja2 é um módulo do Python que implementa uma linguagem de modelo - pitônico simples. - Tempo aproximado de construção: menos que 0,1 UPC - Espaço em disco exigido: 3,7 MB - -8.70.1. Instalação do Jinja2 - - Instale o pacote: -python3 setup.py install --optimize=1 - -8.70.2. Conteúdo do Jinja2 - - Diretório instalado: - /usr/lib/python3.10/site-packages/Jinja2-3.0.3-py3.10.egg - -8.71. Systemd-250 - - O pacote systemd contém aplicativos para controlar a inicialização, - execução e desligamento do sistema. - Tempo aproximado de construção: 2,2 UPC - Espaço em disco exigido: 273 MB - -8.71.1. Instalação do systemd - - Primeiro, aplique uma correção para consertar uma vulnerabilidade de - segurança e regressões com nomes de dispositivo e unidades ociosas: -patch -Np1 -i ../systemd-250-upstream_fixes-1.patch - - Remova dois grupos desnecessários, render e sgx, das regras udev - padrão: -sed -i -e 's/GROUP="render"/GROUP="video"/' \ - -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in - - Prepare systemd para compilação: -mkdir -p build -cd build - -meson --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --buildtype=release \ - -Dblkid=true \ - -Ddefault-dnssec=no \ - -Dfirstboot=false \ - -Dinstall-tests=false \ - -Dldconfig=false \ - -Dsysusers=false \ - -Db_lto=false \ - -Drpmmacrosdir=no \ - -Dhomed=false \ - -Duserdb=false \ - -Dman=false \ - -Dmode=release \ - -Ddocdir=/usr/share/doc/systemd-250 \ - .. - - O significado das opções de meson: - - --buildtype=release - Essa chave substitui o tipo de construção padrão (“debugâ€), o - qual produziria binários não otimizados. - - -Ddefault-dnssec=no - Essa chave desliga o suporte DNSSEC experimental. - - -Dfirstboot=false - Essa chave impede a instalação de serviços do systemd - responsáveis por configurar o sistema pela primeira vez. Eles - não são úteis para LFS, pois tudo é feito manualmente. - - -Dinstall-tests=false - Essa chave impede a instalação dos testes compilados. - - -Dldconfig=false - Essa chave impede a instalação de uma unidade do systemd que - executa ldconfig ao inicializar, a qual não é útil para - distribuições de fonte tais como LFS e torna o tempo de - inicialização mais longo. Remova ela se a característica - descrita for desejada. - - -Dsysusers=false - Essa chave impede a instalação de serviços do systemd - responsáveis por configurar os arquivos /etc/group e - /etc/passwd. Ambos os arquivos foram criados no capítulo - anterior. Esse daemon não é útil em um sistema LFS dado que - contas de usuária(o) são criadas manualmente. - - -Drpmmacrosdir=no - Essa chave desabilita a instalação de Macros RPM para uso com o - systemd, pois LFS não suporta RPM. - - -D{userdb,homed}=false - Remova dois daemons que tem dependências que não se encaixam no - escopo do LFS. - - -Dman=false - Impeça a geração de páginas de manual para evitar dependências - extras. Nós instalaremos páginas de manual pré-geradas para o - systemd a partir de um tarball posteriormente. - - -Dmode=release - Desabilite algumas características consideradas experimentais - pela(o) upstream. - - Compile o pacote: -ninja - - Instale o pacote: -ninja install - - Instale as páginas de manual: -tar -xf ../../systemd-man-pages-250.tar.xz --strip-components=1 -C /usr/share/ma -n - - Remova um diretório inútil: -rm -rf /usr/lib/pam.d - - Crie o arquivo /etc/machine-id necessitado por systemd-journald: -systemd-machine-id-setup - - Configure a estrutura alvo básica: -systemctl preset-all - -8.71.2. Conteúdo do systemd - - Aplicativos instalados: busctl, coredumpctl, halt (link simbólico para - systemctl), hostnamectl, init, journalctl, kernel-install, localectl, - loginctl, machinectl, networkctl, oomctl, portablectl, poweroff (link - simbólico para systemctl), reboot (link simbólico para systemctl), - resolvconf (link simbólico para resolvectl), resolvectl, runlevel (link - simbólico para systemctl), shutdown (link simbólico para systemctl), - systemctl, systemd-analyze, systemd-ask-password, systemd-cat, - systemd-cgls, systemd-cgtop, systemd-creds, systemd-delta, - systemd-detect-virt, systemd-dissect, systemd-escape, systemd-hwdb, - systemd-id128, systemd-inhibit, systemd-machine-id-setup, - systemd-mount, systemd-notify, systemd-nspawn, systemd-path, - systemd-repart, systemd-resolve (link simbólico para resolvectl), - systemd-run, systemd-socket-activate, systemd-stdio-bridge, - systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, - systemd-umount (link simbólico para systemd-mount), telinit (link - simbólico para systemctl), timedatectl e udevadm - Bibliotecas instaladas: libnss_myhostname.so.2, libnss_mymachines.so.2, - libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, - libsystemd-shared-250.so (em /usr/lib/systemd) e libudev.so - Diretórios instalados: /etc/binfmt.d, /etc/init.d, /etc/kernel, - /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, - /etc/udev, /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, - /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/environment.d, - /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, - /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-250, - /usr/share/factory, /usr/share/systemd, /var/lib/systemd e - /var/log/journal - -Descrições Curtas - - busctl - - É usado para introspectar e monitorar o barramento D-Bus - - coredumpctl - - É usado para recuperar despejos de memória a partir do diário do - systemd - - halt - - Normalmente invoca shutdown com a opção -h, exceto quando já em nível - de execução 0, então ele informa ao kernel para parar o sistema; ele - anota no arquivo /var/log/wtmp que o sistema está sendo desligado - - hostnamectl - - É usado para consultar e mudar o nome de dispositivo do sistema e - configurações relacionadas - - init - - É o primeiro processo a ser iniciado quando o kernel inicializou o - hardware, o qual assume o processo de inicialização e inicia todos os - processos de acordo com os arquivos de configuração dele. Nesse caso, - ele inicia o systemd - - journalctl - - É usado para consultar o conteúdo do diário do systemd - - kernel-install - - É usado para adicionar e remover imagens de kernel e initramfs para e - de /boot. Em LFS, isso é feito manualmente - - localectl - - É usado para consultar e mudar as configurações de esquema de locale e - teclado do sistema - - loginctl - - É usado para introspectar e controlar o estado do Login Manager do - systemd - - machinectl - - É usado para introspectar e controlar o estado do Virtual Machine e - Container Registration Manager do systemd - - networkctl - - É usado para introspectar e configurar o estado dos links de rede - configurados por systemd-networkd - - oomctl - - Controla o daemon Out Of Memory do systemd - - portablectl - - É usado para anexar ou desanexar serviços portáveis a partir do sistema - local - - poweroff - - Instrui o kernel a parar o sistema e desligar o computador (veja-se - halt) - - reboot - - Instrui o kernel a reinicializar o sistema (veja-se halt) - - resolvconf - - Registra configuração de servidor de DNS e domínio com systemd-resolved - - resolvectl - - Envia comandos de controle para o gerenciador de resolução de nome de - rede, ou resolve nomes de domínio, endereços IPv4 e IPv6, registros DNS - e serviços - - runlevel - - Emite o nível de execução anterior e o atual, conforme anotado no - último registro de nível de execução em /run/utmp - - shutdown - - Desativa o sistema em uma maneira segura e protegida, sinalizando para - todos os processos e notificando todas(os) as(os) usuárias(os) - logadas(os) - - systemctl - - É usado para introspectar e controlar o estado do gerenciador de - sistema e serviço do systemd - - systemd-analyze - - É usado para determinar o desempenho de inicialização de sistema da - inicialização atual, bem como identificar unidades do systemd - problemáticas - - systemd-ask-password - - É usado para consultar uma senha de sistema ou frase senha a partir - da(o) usuária(o), usando uma mensagem de pergunta especificada na linha - de comando - - systemd-cat - - É usado para conectar as saídas STDOUT e STDERR de um processo com o - diário do systemd - - systemd-cgls - - Recursivamente mostra o conteúdo da hierarquia de grupo de controle do - Linux selecionado em uma árvore - - systemd-cgtop - - Mostra os grupos de controle superiores da hierarquia de grupo de - controle do Linux local, ordenados pela carga de CPU, memória e - entradas/saídas de disco deles - - systemd-creds - - Exibe e processa credenciais - - systemd-delta - - É usado para identificar e comparar arquivos de configuração em /etc - que substituem homônimos padrão em /usr - - systemd-detect-virt - - Detecta se o sistema está sendo executado em um ambiente virtual, e - ajusta udev de acordo - - systemd-dissect - - É usado para inspecionar imagens de disco de OS - - systemd-escape - - É usado para escapar sequências de caracteres para inclusão em nomes de - unidade do systemd - - systemd-hwdb - - É usado para gerenciar o banco de dados de hardware (hwdb) - - systemd-id128 - - Gera e imprime sequências de caracteres id128 - - systemd-inhibit - - É usado para executar um aplicativo com um bloqueio de inibição de - desligamento, suspensão ou inatividade, impedindo uma ação tal como um - desligamento de sistema até que o processo seja concluído - - systemd-machine-id-setup - - É usado por ferramentas de instalador de sistema para inicializar o ID - de máquina armazenado em /etc/machine-id ao tempo de instalação com um - ID gerado aleatoriamente - - systemd-mount - - É usado para temporariamente montar ou automontar discos - - systemd-notify - - É usado por scripts de daemon para notificar o sistema init acerca de - mudanças de situação - - systemd-nspawn - - É usado para executar um comando ou OS em um contêiner de espaço de - nome peso leve - - systemd-path - - É usado para consultar caminhos de sistema e usuária(o) - - systemd-repart - - É usado para aumentar e adicionar partições à uma tabela de partição - quando systemd for usado em uma imagem de OS (por exemplo, um - contêiner) - - systemd-resolve - - É usado para resolver nomes de domínio, endereços IPV4 e IPv6, - registros de recurso DNS e serviços - - systemd-run - - É usado para criar e iniciar uma unidade .service ou uma .scope - transitória e executar o comando especificado nela. Isso é útil para - validar unidades do systemd - - systemd-socket-activate - - É usado para ouvir em dispositivos de soquete e iniciar um processo - após uma conexão bem sucedida com o soquete - - systemd-sysext - - Ativa imagens de extensão de sistema - - systemd-tmpfiles - - Cria, deleta e limpa arquivos e diretórios voláteis e temporários, - baseado no formato de arquivo de configuração e local especificado em - tmpfiles.d - - systemd-umount - - Desmonta pontos de montagem - - systemd-tty-ask-password-agent - - É usado para listar e (ou) processar solicitações de senha do systemd - pendentes - - telinit - - Diz a init para qual nível de execução mudar - - timedatectl - - É usado para consultar e mudar o relógio de sistema e configurações - dele - - udevadm - - É uma ferramenta de administração udev genérica que controla o daemon - udevd, fornece informação a partir do banco de dados de hardware do - Udev, monitora uevents, aguarda que uevents finalizem, testa a - configuração do udev e deflagra uevents para um dispositivo dado - - libsystemd - - É a biblioteca principal de utilitário do systemd - - libudev - - É uma biblioteca para acessar informação de dispositivo do Udev - -8.72. D-Bus-1.12.20 - - D-Bus é um sistema de barramento de mensagem, uma maneira simples para - aplicativos conversarem entre si. D-Bus fornece ambos um daemon de - sistema (para eventos tais como "novo dispositivo de hardware - adicionado" ou "fila de impressora mudou") e um daemon de sessão de - login de usuária(o) (para necessidades de IPC gerais entre aplicativos - de usuária(o)). Também, o barramento de mensagem é construído no topo - de uma estrutura de envio de mensagem um-a-um, a qual pode ser usada - por quaisquer dois aplicativos para se comunicarem diretamente (sem - transitar pelo daemon de barramento de mensagem). - Tempo aproximado de construção: 0,1 UPC - Espaço em disco exigido: 18 MB - -8.72.1. Instalação do D-Bus - - Prepare D-Bus para compilação: -./configure --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --disable-static \ - --disable-doxygen-docs \ - --disable-xml-docs \ - --docdir=/usr/share/doc/dbus-1.12.20 \ - --with-console-auth-dir=/run/console \ - --with-system-pid-file=/run/dbus/pid \ - --with-system-socket=/run/dbus/system_bus_socket - - O significado das opções de configure: - - --with-console-auth-dir=/run/console - Isso especifica o local do diretório de autorização do - ConsoleKit. - - --with-system-pid-file=/run/dbus/pid e - --with-system-socket=/run/dbus/system_bus_socket - Essas configuram o local do arquivo de PID e soquete de - barramento de sistema para estar em /run, em vez do obsoleto - /var/run. - - Compile o pacote: -make - - Esse pacote vem com uma suíte de teste, porém ela exige muitos pacotes - que não estão inclusos em LFS. Instruções para executar a suíte de - teste podem ser encontradas no livro BLFS em - [591]https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/ - dbus.html. - - Instale o pacote: -make install - - Crie um link simbólico de forma que D-Bus e systemd possam usar o mesmo - arquivo machine-id: -ln -sfv /etc/machine-id /var/lib/dbus - -8.72.2. Conteúdo do D-Bus - - Aplicativos instalados: dbus-cleanup-sockets, dbus-daemon, dbus-launch, - dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, - dbus-update-activation-environment e dbus-uuidgen - Bibliotecas instaladas: libdbus-1.{a,so} - Diretórios instalados: /etc/dbus-1, /usr/include/dbus-1.0, - /usr/lib/dbus-1.0, /usr/share/dbus-1, /usr/share/doc/dbus-1.12.20 e - /var/lib/dbus - -Descrições Curtas - - dbus-cleanup-sockets - - é usado para remover soquetes restantes em um diretório - - dbus-daemon - - É o daemon de barramento de mensagem D-Bus - - dbus-launch - - Inicia dbus-daemon a partir de um script de shell - - dbus-monitor - - Monitora mensagens transitando ao longo de um barramento de mensagem - D-Bus - - dbus-run-session - - Inicia uma instância de barramento de sessão do dbus-daemon a partir de - um script de shell e inicia um aplicativo especificado naquela sessão - - dbus-send - - Envia uma mensagem para um barramento de mensagem do D-Bus - - dbus-test-tool - - É uma ferramenta para auxiliar pacotes a testarem o D-Bus - - dbus-update-activation-environment - - Atualiza variáveis de ambiente que serão configuradas para serviços de - sessão do D-Bus - - dbus-uuidgen - - Gera um ID único universalmente - - libdbus-1 - - Contém funções de API usadas para comunicar com o barramento de - mensagem do D-Bus - -8.73. Man-DB-2.10.1 - - O pacote Man-DB contém aplicativos para encontrar e visualizar páginas - de manual. - Tempo aproximado de construção: 0,3 UPC - Espaço em disco exigido: 39 MB - -8.73.1. Instalação do Man-DB - - Prepare Man-DB para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/man-db-2.10.1 \ - --sysconfdir=/etc \ - --disable-setuid \ - --enable-cache-owner=bin \ - --with-browser=/usr/bin/lynx \ - --with-vgrind=/usr/bin/vgrind \ - --with-grap=/usr/bin/grap - - O significado das opções de configure: - - --disable-setuid - Isso desabilita fazer o aplicativo man configurar uid para - usuária(o) man. - - --enable-cache-owner=bin - Isso torna os arquivos de cache de sistema de propriedade da(o) - usuária(o) bin. - - --with-... - Esses três parâmetros são usados para configurar alguns - aplicativos padrão. lynx é um navegador de rede baseado em texto - (veja-se BLFS para instruções de instalação); vgrind converte - fontes de aplicativo para entrada do Groff; e grap é útil para - tipografar gráficos em documentos do Groff. Os aplicativos - vgrind e grap normalmente não são necessários para visualizar - páginas de manual. Eles não são parte do LFS ou BLFS, mas você - deveria ser capaz de instalá-los após terminar o LFS se você - desejar fazer isso. - - Compile o pacote: -make - - Para testar os resultados, execute: -make check - - Instale o pacote: -make install - -8.73.2. Páginas de Manual não inglesas no LFS - - A seguinte tabela mostra o conjunto de caracteres no qual Man-DB supõe - que as páginas de manual instaladas sob /usr/share/man/ estarão - codificadas. Em adição a isto, o Man-DB determina corretamente se - páginas de manual instaladas naquele diretório estão codificadas com - UTF-8. - - Tabela 8.1. Codificação de caracteres esperada das páginas de manual de - 8-bit legadas - Idioma (código) Codificação Idioma (código) Codificação - Dinamarquês (da) ISO-8859-1 Croata (hr) ISO-8859-2 - Alemão (de) ISO-8859-1 Húngaro (hu) ISO-8859-2 - Inglês (en) ISO-8859-1 Japonês (ja) EUC-JP - Espanhol (es) ISO-8859-1 Coreano (ko) EUC-KR - Estoniano (et) ISO-8859-1 Lituano (lt) ISO-8859-13 - Finlandês (fi) ISO-8859-1 Letão (lv) ISO-8859-13 - Francês (fr) ISO-8859-1 Macedônio (mk) ISO-8859-5 - Irlandês (ga) ISO-8859-1 Polonês (pl) ISO-8859-2 - Galego (gl) ISO-8859-1 Romeno (ro) ISO-8859-2 - Indonésio (id) ISO-8859-1 Russo (ru) KOI8-R - Islandês (is) ISO-8859-1 Eslovaco (sk) ISO-8859-2 - Italiano (it) ISO-8859-1 Esloveno (sl) ISO-8859-2 - Bokmal norueguês (nb) ISO-8859-1 Latim sérvio (sr@latin) ISO-8859-2 - Holandês (nl) ISO-8859-1 Sérvio (sr) ISO-8859-5 - Nynorsk norueguês (nn) ISO-8859-1 Turco (tr) ISO-8859-9 - Norueguês (no) ISO-8859-1 Ucraniano (uk) KOI8-U - Português (pt) ISO-8859-1 Vietnamita (vi) TCVN5712-1 - Sueco (sv) ISO-8859-1 Chinês simplificado (zh_CN) GBK - Bielorrusso (be) CP1251 Chinês simplificado, Singapura (zh_SG) GBK - Búlgaro (bg) CP1251 Chinês tradicional, Hong Kong (zh_HK) BIG5HKSCS - Tcheco (cs) ISO-8859-2 Chinês tradicional (zh_TW) BIG5 - Grego (el) ISO-8859-7 - -Nota - - Páginas de manual em idiomas que não estão na lista não são suportadas. - -8.73.3. Conteúdo do Man-DB - - Aplicativos instalados: accessdb, apropos (link para whatis), catman, - lexgrog, man, man-recode, mandb, manpath e whatis - Bibliotecas instaladas: libman.so e libmandb.so (ambas em - /usr/lib/man-db) - Diretórios instalados: /usr/lib/man-db, /usr/libexec/man-db e - /usr/share/doc/man-db-2.10.1 - -Descrições Curtas - - accessdb - - Despeja o conteúdo do banco de dados whatis em formato legível por - humanos - - apropos - - Pesquisa no banco de dados whatis e exibe as descrições curtas dos - comandos de sistema que contém uma sequência de caracteres dada - - catman - - Cria ou atualiza páginas de manual pré-formatadas - - lexgrog - - Exibe informação de sumário em uma linha sobre uma página de manual - dada - - man - - Formata e exibe a página de manual solicitada - - man-recode - - Converte páginas de manual para outra codificação - - mandb - - Cria ou atualiza o banco de dados whatis - - manpath - - Exibe o conteúdo de $MANPATH ou (se $MANPATH não estiver configurada) - um caminho de busca adequado baseado nas configurações em man.conf e no - ambiente da(o) usuária(o) - - whatis - - Pesquisa no banco de dados whatis e exibe as descrições curtas de - comandos do sistema que contém a palavra chave dada como uma palavra - separada - - libman - - Contém suporte em tempo de execução para o man - - libmandb - - Contém suporte em tempo de execução para o man - -8.74. Procps-ng-3.3.17 - - O pacote Procps-ng contém aplicativos para monitorar processos. - -Nota - - Esse pacote extrai para o diretório procps-3.3.17, não o esperado - procps-ng-3.3.17. - Tempo aproximado de construção: 0,4 UPC - Espaço em disco exigido: 19 MB - -8.74.1. Instalação do Procps-ng - - Prepare procps-ng para compilação: -./configure --prefix=/usr \ - --docdir=/usr/share/doc/procps-ng-3.3.17 \ - --disable-static \ - --disable-kill \ - --with-systemd - - O significado da opção de configure: - - --disable-kill - Essa chave desabilita a construção do comando kill que será - instalado pelo pacote util-linux. - - Compile o pacote: -make - - Para executar a suíte de teste, execute: -make check - - Cinco testes relacionados a pkill são conhecidos por falhar devido a um - problema com testes que não foram atualizados. - - Instale o pacote: -make install - -8.74.2. Conteúdo do Procps-ng - - Aplicativos instalados: free, pgrep, pidof, pkill, pmap, ps, pwdx, - slabtop, sysctl, tload, top, uptime, vmstat, w e watch - Biblioteca instalada: libprocps.so - Diretórios instalados: /usr/include/proc e - /usr/share/doc/procps-ng-3.3.17 - -Descrições Curtas - - free - - Relata a quantidade de memória livre e usada (ambas memória física e - swap) no sistema - - pgrep - - Procura por processos baseado nos nomes deles e outros atributos - - pidof - - Relata os PIDs dos aplicativos dados - - pkill - - Sinaliza processos baseado nos nomes deles e outros atributos - - pmap - - Relata o mapeamento de memória do processo dado - - ps - - Lista os processos em execução atualmente - - pwait - - Aguarda que um processo termine antes de executar. - - pwdx - - Relata o diretório de trabalho atual de um processo - - slabtop - - Exibe informações detalhadas de cache de slab do kernel em tempo real - - sysctl - - Modifica parâmetros do kernel em tempo de execução - - tload - - Imprime um gráfico da média de carga de sistema atual - - top - - Exibe uma lista dos processos com maior uso de CPU; ele fornece uma - visão contínua da atividade do processador em tempo real - - uptime - - Relata há quanto tempo o sistema está executando, quantas(os) - usuárias(os) estão logadas(os) e as médias de carga de sistema - - vmstat - - Relata estatísticas de memória virtual, dando informações sobre - processos, memória, paginação, Entrada/Saída (E/S) de bloco, traps e - atividade da CPU - - w - - Mostra quais usuárias(os) estão logadas(os) atualmente, onde e desde - quando - - watch - - Executa um comando dado repetidamente, exibindo a primeira tela cheia - da saída dele; isso permite que uma(m) usuária(o) observe a mudança de - saída ao longo do tempo - - libprocps - - Contém as funções usadas pela maioria dos aplicativos nesse pacote - -8.75. Util-linux-2.37.4 - - O pacote Util-linux contém aplicativos utilitários diversos. Entre eles - estão utilitários para lidar com sistemas de arquivos, consoles, - partições e mensagens. - Tempo aproximado de construção: 1,1 UPC - Espaço em disco exigido: 261 MB - -8.75.1. Instalação do Util-linux - - Prepare Util-linux para compilação: -./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --bindir=/usr/bin \ - --libdir=/usr/lib \ - --sbindir=/usr/sbin \ - --docdir=/usr/share/doc/util-linux-2.37.4 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python - - As opções --disable e --without impedem avisos acerca de construir - componentes que exigem pacotes ausentes em LFS ou estão inconsistentes - com aplicativos instalados por outros pacotes. - - Compile o pacote: -make - - Se desejado, execute a suíte de teste como uma(m) usuária(o) não root: - -Atenção - - Executar a suíte de teste como a(o) usuária(o) root pode ser danoso ao - seu sistema. Para executá-lo, a opção CONFIG_SCSI_DEBUG para o kernel - precisa estar disponível no sistema em execução atualmente e precisa - ser construída como um módulo. Construí-lo dentro do kernel impedirá a - inicialização. Para cobertura completa, outros pacotes do BLFS precisam - ser instalados. Se desejado, esse teste pode ser executado após - reiniciar no sistema LFS completo e executar: -bash tests/run.sh --srcdir=$PWD --builddir=$PWD - -Nota - - Existe um teste que falha no ambiente chroot e causa os testes travarem - para sempre. O problema não ocorre do lado de fora do ambiente chroot. - Para contornar o problema, delete o teste: -rm tests/ts/lsns/ioctl_ns - -chown -Rv tester . -su tester -c "make -k check" - - Instale o pacote: -make install - -8.75.2. Conteúdo do Util-linux - - Aplicativos instalados: addpart, agetty, blkdiscard, blkid, blkzone, - blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, - column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdisk, fincore, - findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, - fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, - irqtop, isosize, kill, last, lastb (link para last), ldattach, linux32, - linux64, logger, look, losetup, lsblk, lscpu, lsipc, lsirq, lslocks, - lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, - mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, - pivot_root, prlimit, readprofile, rename, renice, resizepart, rev, - rfkill, rtcwake, script, scriptlive, scriptreplay, setarch, setsid, - setterm, sfdisk, sulogin, swaplabel, swapoff (link para swapon), - swapon, switch_root, taskset, uclampset, ul, umount, uname26, unshare, - utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, - x86_64 e zramctl - Bibliotecas instaladas: libblkid.so, libfdisk.so, libmount.so, - libsmartcols.so e libuuid.so - Diretórios instalados: /usr/include/blkid, /usr/include/libfdisk, - /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, - /usr/share/doc/util-linux-2.37.4 e /var/lib/hwclock - -Descrições Curtas - - addpart - - Informa o kernel Linux de novas partições - - agetty - - Abre uma porta tty, solicita um nome de login e então invoca o - aplicativo login - - blkdiscard - - Descarta setores em um dispositivo - - blkid - - Um utilitário de linha de comando para localizar e imprimir atributos - de dispositivo de bloco - - blkzone - - Executa comando de zona no dispositivo de bloco dado - - blockdev - - Permite usuárias(os) chamar ioctls de dispositivo de bloco a partir da - linha de comando - - cal - - Exibe um calendário simples - - cfdisk - - Manipula a tabela de partição do dispositivo dado - - chcpu - - Modifica o estado de CPUs - - chmem - - Configura memória - - choom - - Exibe e ajusta a pontuação de matador de OOM - - chrt - - Manipula atributos de tempo real de um processo - - col - - Filtra feeds de linha reversa - - colcrt - - Filtra saída nroff para terminais que não tem algumas capacidades, tais - como overstriking e half-lines - - colrm - - Filtra as colunas dadas - - column - - Formata um arquivo dado em colunas múltiplas - - ctrlaltdel - - Configura a função da combinação de teclas Ctrl+Alt+Del para uma - reconfiguração hard ou soft - - delpart - - Pede ao kernel Linux para remover uma partição - - dmesg - - Despeja as mensagens de inicialização do kernel - - eject - - Ejeta mídia removível - - fallocate - - Pré-aloca espaço para um arquivo - - fdisk - - Manipula a tabela de partição do dispositivo dado - - fincore - - Conta páginas de conteúdo de arquivo em núcleo - - findfs - - Encontra um sistema de arquivos pelo rótulo ou Universally Unique - Identifier (UUID) - - findmnt - - É uma interface de linha de comando para a biblioteca libmount para - funcionar com mountinfo, fstab e arquivos mtab - - flock - - Adquire uma trava de arquivo e então executa um comando com a trava - mantida - - fsck - - É usado para verificar, e opcionalmente reparar, sistemas de arquivos - - fsck.cramfs - - Realiza uma verificação de consistência no sistema de arquivos Cramfs - no dispositivo dado - - fsck.minix - - Realiza uma verificação de consistência no sistema de arquivos Minix no - dispositivo dado - - fsfreeze - - É um encapsulador muito simples em torno de operações de controlador de - kernel de ioctl de FIFREEZE/FITHAW - - fstrim - - Descarta blocos não usados em um sistema de arquivos montado - - getopt - - Analisa opções na linha de comando dada - - hexdump - - Despeja o arquivo dado em hexadecimal ou em outro formato dado - - hwclock - - Lê ou configura o relógio de hardware do sistema, também chamado de - Real-Time Clock (RTC) ou relógio do Basic Input-Output System (BIOS) - - i386 - - Um link simbólico para setarch - - ionice - - Obtém ou configura a classe de agendamento de io e prioridade para um - aplicativo - - ipcmk - - Cria vários recursos IPC - - ipcrm - - Remove o recurso de Inter-Process Communication (IPC) dado - - ipcs - - Fornece informação de situação de IPC - - irqtop - - Exibe informação de contador de interrupção do kernel em visão estilo - top(1) - - isosize - - Relata o tamanho de um sistema de arquivos iso9660 - - kill - - Envia sinais para processos - - last - - Mostra quais usuárias(os) derradeiramente logaram-se (e deslogaram-se), - pesquisando de volta ao longo do arquivo /var/log/wtmp; ele também - mostra inicializações de sistema, desligamentos e mudanças de nível de - execução - - lastb - - Exibe as tentativas de login falhas, conforme registrado em - /var/log/btmp - - ldattach - - Anexa uma disciplina de linha à uma linha serial - - linux32 - - Um link simbólico para setarch - - linux64 - - Um link simbólico para setarch - - logger - - Adiciona a mensagem dada ao registro do sistema - - look - - Exibe linhas que começam com a sequência de caracteres dada - - losetup - - Configura e controla dispositivos de loop - - lsblk - - Lista informações sobre todos ou dispositivos de bloco selecionados em - um formato semelhante a árvore - - lscpu - - Imprime informação de arquitetura da CPU - - lsipc - - Imprime informação acerca de facilidades de IPC empregadas atualmente - no sistema - - lsirq - - Exibe informação de contador de interrupção do kernel - - lslocks - - Lista travas locais de sistema - - lslogins - - Lista informação acerca de contas de usuárias(os), grupos e sistema - - lsmem - - Lista os intervalos de memória disponível com a situação online deles - - lsns - - Lista espaços de nome - - mcookie - - Gera cookies mágicos (números hexadecimais aleatórios de 128 bits) para - o xauth - - mesg - - Controla se outras(os) usuárias(os) podem enviar mensagens para o - terminal da(o) usuária(o) atual - - mkfs - - Constrói um sistema de arquivos em um dispositivo (geralmente uma - partição de disco rígido) - - mkfs.bfs - - Cria um sistema de arquivos Santa Cruz Operations (SCO) bfs - - mkfs.cramfs - - Cria um sistema de arquivos cramfs - - mkfs.minix - - Cria um sistema de arquivos Minix - - mkswap - - Inicializa dispositivo ou arquivo dado para ser usado como uma área de - troca - - more - - Um filtro para paginar ao longo de texto uma tela de cada vez - - mount - - Anexa o sistema de arquivos no dispositivo dado a um diretório - especificado na árvore do sistema de arquivos - - mountpoint - - Verifica se o diretório é um ponto de montagem - - namei - - Mostra os links simbólicos nos nomes de caminho dados - - nsenter - - Executa um aplicativo com espaços de nome de outros processos - - partx - - Informa ao kernel sobre a presença e numeração de partições no disco - - pivot_root - - Torna o sistema de arquivos dado o novo sistema de arquivos raiz do - processo atual - - prlimit - - Obtém e configura um limite de recursos do processo - - readprofile - - Lê informação de perfil do kernel - - rename - - Renomeia os arquivos dados, substituindo uma sequência de caracteres - dada por outra - - renice - - Altera a prioridade de processos em execução - - resizepart - - Pede ao kernel Linux para redimensionar uma partição - - rev - - Inverte as linhas de um arquivo dado - - rkfill - - Ferramenta para habilitar e desabilitar dispositivos sem fios - - rtcwake - - Usado para entrar em um estado de suspensão do sistema até o horário de - ativação especificado - - script - - Cria um texto datilografado de uma sessão de terminal - - scriptlive - - Reexecuta textos datilografados de sessão usando informação de tempo - - scriptreplay - - Reproduz textos datilografados usando informações de tempo - - setarch - - Muda a arquitetura relatada em um novo ambiente de aplicativo e - configura sinalizadores de personalidade - - setsid - - Executa o aplicativo dado em uma nova sessão - - setterm - - Configura atributos do terminal - - sfdisk - - Um manipulador de tabela de partição de disco - - sulogin - - Permite root se logar; ele normalmente é invocado por init quando o - sistema entra em modo de usuária(o) única(o) - - swaplabel - - Permite modificar o UUID e rótulo da área de troca - - swapoff - - Desabilita dispositivos e arquivos para paginação e troca - - swapon - - Habilita dispositivos e arquivos para paginação e troca e lista os - dispositivos e arquivos atualmente em uso - - switch_root - - Alterna para outro sistema de arquivos como a raiz da árvore de - montagem - - taskset - - Recupera ou configura uma afinidade de CPU do processo - - uclampset - - Manipula os atributos de fixação de utilização do sistema ou um - processo - - ul - - Um filtro para traduzir sublinhados em sequências de escape indicando - sublinhamento para o terminal em uso - - umount - - Desconecta um sistema de arquivos da árvore de arquivos do sistema - - uname26 - - Um link simbólico para setarch - - unshare - - Executa um aplicativo com alguns espaços de nome não compartilhados - oriundos do pai - - utmpdump - - Exibe o conteúdo do arquivo de login dado em um formato mais amigável - para a(o) usuária(o) - - uuidd - - Um daemon usado pela biblioteca UUID para gerar UUIDs baseados em - horário em uma forma segura e garantidamente única - - uuidgen - - Cria novos UUIDs. Cada novo UUID pode razoavelmente ser considerado - único entre todos os UUIDs criados, no sistema local e em outros - sistemas, no passado e no futuro - - uuidparse - - Um utilitário para analisar identificadores únicos - - wall - - Exibe o conteúdo de um arquivo ou, por padrão, a entrada padrão dele, - nos terminais de todas(os) as(os) usuárias(os) logadas(os) atualmente - - wdctl - - Mostra a situação de vigilante de hardware - - whereis - - Relata o local do binário, fonte e página de manual para o comando dado - - wipefs - - Limpa uma assinatura de sistema de arquivos a partir de um dispositivo - - x86_64 - - Um link simbólico para setarch - - zramctl - - Um aplicativo para configurar e controlar dispositivos zram (disco ram - comprimido) - - libblkid - - Contém rotinas para identificação de dispositivo e extração de token - - libfdisk - - Contém rotinas para manipular tabelas de partição - - libmount - - Contém rotinas para montagem e desmontagem de dispositivo de bloco - - libsmartcols - - Contém rotinas para auxiliar a saída de tela em forma de tabela - - libuuid - - Contém rotinas para gerar identificadores únicos para objetos que - talvez sejam acessíveis além do sistema local - -8.76. E2fsprogs-1.46.5 - - O pacote e2fsprogs contém os utilitários para lidar com o sistema de - arquivos ext2. Ele também suporta os sistemas de arquivos de registro - em diário ext3 e ext4. - Tempo aproximado de construção: 4,4 UPC em um disco giratório, 1,3 UPC - em um SSD - Espaço em disco exigido: 93 MB - -8.76.1. Instalação do E2fsprogs - - A documentação do e2fsprogs recomenda que o pacote seja construído em - um subdiretório da árvore do fonte: -mkdir -v build -cd build - - Prepare e2fsprogs para compilação: -../configure --prefix=/usr \ - --sysconfdir=/etc \ - --enable-elf-shlibs \ - --disable-libblkid \ - --disable-libuuid \ - --disable-uuidd \ - --disable-fsck - - O significado das opções de configure: - - --enable-elf-shlibs - Isso cria as bibliotecas compartilhadas as quais alguns - aplicativos nesse pacote usam. - - --disable-* - Isso evita que e2fsprogs construa e instale as bibliotecas - libuuid e libblkid, o daemon uuidd, e o encapsulador fsck, uma - vez que o util-linux instala versões mais recentes. - - Compile o pacote: -make - - Para executar os testes, execute: -make check - - Um teste, u_direct_io, é conhecido por falhar em alguns sistemas. - - Instale o pacote: -make install - - Remova bibliotecas estáticas inúteis: -rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a - - Esse pacote instala um arquivo gzipado .info, mas não atualiza o - arquivo do sistema dir. Descompacte esse arquivo e então atualize o - arquivo do sistema dir usando os seguintes comandos: -gunzip -v /usr/share/info/libext2fs.info.gz -install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info - - Se desejado, crie e instale alguma documentação adicional executando os - seguintes comandos: -makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo -install -v -m644 doc/com_err.info /usr/share/info -install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info - -8.76.2. Conteúdo do E2fsprogs - - Aplicativos instalados: badblocks, chattr, compile_et, debugfs, - dumpe2fs, e2freefrag, e2fsck, e2image, e2label, e2mmpstatus, e2scrub, - e2scrub_all, e2undo, e4crypt, e4defrag, filefrag, fsck.ext2, fsck.ext3, - fsck.ext4, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, - mkfs.ext4, mklost+found, resize2fs e tune2fs - Bibliotecas instaladas: libcom_err.so, libe2p.so, libext2fs.so e - libss.so - Diretórios instalados: /usr/include/e2p, /usr/include/et, - /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, /usr/share/et - e /usr/share/ss - -Descrições Curtas - - badblocks - - Pesquisa em um dispositivo (geralmente uma partição de disco) por - blocos defeituosos - - chattr - - Muda os atributos de arquivos em um sistema de arquivos ext2; ele - também muda sistemas de arquivos ext3, a versão de registro em diário - dos sistemas de arquivos ext2 - - compile_et - - Um compilador de tabela de erro; ele converte uma tabela de nomes de - códigos de erros e mensagens em um arquivo fonte C adequado para uso - com a biblioteca com_err - - debugfs - - Um depurador de sistema de arquivo; ele pode ser usado para examinar e - mudar o estado de um sistema de arquivos ext2 - - dumpe2fs - - Imprime informação de superblocos e grupo de blocos para o sistema de - arquivos presente em um dispositivo dado - - e2freefrag - - Relata informação de fragmentação de espaço livre - - e2fsck - - É usado para verificar, e opcionalmente reparar sistemas de arquivos - ext2 e sistemas de arquivos ext3 - - e2image - - É usado para salvar dados críticos de sistema de arquivos ext2 para um - arquivo - - e2label - - Exibe ou muda o rótulo de sistema de arquivos no sistema de arquivos - ext2 presente em um dispositivo dado - - e2mmpstatus - - Verifica situação de MMP de um sistema de arquivos ext4 - - e2scrub - - Verifica o conteúdo de um sistema de arquivos ext[234] montado - - e2scrub_all - - Verifica todos os sistemas de arquivos ext[234] montados para erros - - e2undo - - Reexecuta o registro de desfazer undo_log para um sistema de arquivos - ext2/ext3/ext4 encontrado em um dispositivo [Isso pode ser usado para - desfazer uma operação falha por um aplicativo do e2fsprogs] - - e4crypt - - Utilitário de encriptação de sistema de arquivos ext4 - - e4defrag - - Desfragmentador online para sistemas de arquivo ext4 - - filefrag - - Relatórios sobre quão fragmentado um arquivo específico pode estar - - fsck.ext2 - - Por padrão verifica sistemas de arquivo ext2 e é um hard link para - e2fsck - - fsck.ext3 - - Por padrão verifica sistemas de arquivo ext3 e é um hard link para - e2fsck - - fsck.ext4 - - Por padrão verifica sistemas de arquivo ext4 e é um hard link para - e2fsck - - logsave - - Salva a saída de um comando em um arquivo de registro - - lsattr - - Lista os atributos de arquivos em um segundo sistema de arquivos - estendido - - mk_cmds - - Converte uma tabela de nomes de comando e mensagens de ajuda em um - arquivo fonte C adequado para uso com a biblioteca de subsistema libss - - mke2fs - - Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado - - mkfs.ext2 - - Por padrão cria sistemas de arquivos ext2 e é um hard link para mke2fs - - mkfs.ext3 - - Por padrão cria sistemas de arquivos ext3 e é um hard link para mke2fs - - mkfs.ext4 - - Por padrão cria sistemas de arquivos ext4 e é um hard link para mke2fs - - mklost+found - - Usado para criar um diretório lost+found em um sistema de arquivos - ext2; ele pré-aloca blocos de disco para esse diretório para facilitar - a tarefa do e2fsck - - resize2fs - - Pode ser usado para alargar ou estreitar um sistema de arquivos ext2 - - tune2fs - - Ajusta parâmetros ajustáveis de sistema de arquivos em um sistema de - arquivos ext2 - - libcom_err - - A rotina comum de exibição de erro - - libe2p - - Usado por dumpe2fs, chattr e lsattr - - libext2fs - - Contém rotinas para habilitar aplicativos de nível de usuária(o) para - lidar com um sistema de arquivos ext2 - - libss - - Usado por debugfs - -8.77. Acerca dos Símbolos de Depuração - - A maioria dos aplicativos e bibliotecas é, por padrão, compilada com - símbolos de depuração incluídos (com opção -g do gcc). Isso significa - que quando depurar um aplicativo ou biblioteca que foi compilado com - informação de depuração, o depurador pode fornecer não apenas endereços - de memória, mas também os nomes das rotinas e variáveis. - - Entretanto, a inclusão desses símbolos de depuração alarga um - aplicativo ou biblioteca significativamente. O seguinte é um exemplo da - quantidade de espaço que esses símbolos ocupam: - * Um binário bash com símbolos de depuração: 1200 KB - * Um binário bash sem símbolos de depuração: 480 KB - * Arquivos do Glibc e GCC (/lib e /usr/lib) com símbolos de - depuração: 87 MB - * Arquivos do Glibc e GCC sem símbolos de depuração: 16 MB - - Tamanhos talvez variem dependendo de qual compilador e biblioteca C - foram usados, mas quando comparar aplicativos com e sem símbolos de - depuração, a diferença geralmente será um fator entre dois e cinco. - - Como a maioria das(os) usuárias(os) nunca usará um depurador no - aplicativo de sistema delas(es), um monte de espaço de disco pode ser - recuperado removendo esses símbolos. A próxima seção mostra como - remover todos os símbolos de depuração dos aplicativos e bibliotecas. - -8.78. Despojando - - Esta seção é opcional. Se a(o) pretensa(o) usuária(o) não for uma(m) - programadora(r) e não planeja fazer qualquer depuração nos aplicativos - do sistema, então o tamanho do sistema pode ser reduzido em cerca de 2 - GB removendo os símbolos de depuração de binários e bibliotecas. Isso - não causa nenhum inconveniente além de não mais poder depurar os - aplicativos completamente. - - A maioria das pessoas que usam os comandos mencionados abaixo não - experimenta quaisquer dificuldades. Entretanto, é fácil cometer um erro - de digitação e tornar o novo sistema inutilizável, de forma que, antes - de executar os comandos strip, é uma boa ideia produzir uma cópia de - segurança do sistema LFS no estado atual dele. - - Os símbolos de depuração para bibliotecas selecionadas estão colocados - em arquivos separados. Essa informação de depuração é necessária se - executar testes de regressão que usam [592]valgrind ou [593]gdb - posteriormente em BLFS. - - Observe que strip sobrescreverá o arquivo de binário ou biblioteca que - ele está processando. Isso pode quebrar os processos usando código ou - dados oriundos do arquivo. Se o próprio processo executando o strip for - afetado, então o binário ou biblioteca sendo despojado pode ser - destruído e pode tornar o sistema completamente inutilizável. Para - evitar isso, nós copiaremos algumas bibliotecas e binários para /tmp, - despojaremos elas lá, e instalaremos elas de volta com o comando - install. Leia a entrada relacionada em [594]Seção 8.2.1, “Problemas de - Atualização†para a justificativa para usar o comando install aqui. - -Nota - - O nome do carregador de ELF é ld-linux-x86-64.so.2 em sistemas de 64 - bits e ld-linux.so.2 em sistemas de 32 bits. A construção abaixo - seleciona o nome correto para a arquitetura atual. -save_usrlib="$(cd /usr/lib; ls ld-linux*) - libc.so.6 - libthread_db.so.1 - libquadmath.so.0.0.0 - libstdc++.so.6.0.29 - libitm.so.1.0.0 - libatomic.so.1.2.0" - -cd /usr/lib - -for LIB in $save_usrlib; do - objcopy --only-keep-debug $LIB $LIB.dbg - cp $LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -online_usrbin="bash find strip" -online_usrlib="libbfd-2.38.so - libhistory.so.8.1 - libncursesw.so.6.3 - libm.so.6 - libreadline.so.8.1 - libz.so.1.2.11 - $(cd /usr/lib; find libnss*.so* -type f)" - -for BIN in $online_usrbin; do - cp /usr/bin/$BIN /tmp/$BIN - strip --strip-unneeded /tmp/$BIN - install -vm755 /tmp/$BIN /usr/bin - rm /tmp/$BIN -done - -for LIB in $online_usrlib; do - cp /usr/lib/$LIB /tmp/$LIB - strip --strip-unneeded /tmp/$LIB - install -vm755 /tmp/$LIB /usr/lib - rm /tmp/$LIB -done - -for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ - $(find /usr/lib -type f -name \*.a) \ - $(find /usr/{bin,sbin,libexec} -type f); do - case "$online_usrbin $online_usrlib $save_usrlib" in - *$(basename $i)* ) - ;; - * ) strip --strip-unneeded $i - ;; - esac -done - -unset BIN LIB save_usrlib online_usrbin online_usrlib - - Um número grande de arquivos serão relatados como tendo o formato de - arquivo deles não reconhecido. Esses avisos podem ser seguramente - ignorados. Eles indicam que aqueles arquivos são scripts em vez de - binários. - -8.79. Limpando - - Finalmente, limpe alguns arquivos extra deixados pela execução de - testes: -rm -rf /tmp/* - - Existem também muitos arquivos instalados nos diretórios /usr/lib e - /usr/libexec com uma extensão de nome de arquivo de .la. Esses são - arquivos "libtool archive". Como já dito, eles somente são úteis quando - vincular com bibliotecas estáticas. Eles são desnecessários, e - potencialmente danosos, quando se usar bibliotecas compartilhadas - dinâmicas, especialmente quando se usar também sistemas de construção - não autotools. Para remover eles, execute: -find /usr/lib /usr/libexec -name \*.la -delete - - Para mais informação acerca de arquivos libtool archive, veja a - [595]seção de BLFS "About Libtool Archive (.la) files". - - O compilador construído em [596]Capítulo 6 e [597]Capítulo 7 ainda está - instalado parcialmente e não é mais necessário. Remova ele com: -find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf - - Por fim, remova a conta de usuária(o) 'tester' temporária criada no - início do capítulo anterior. -userdel -r tester - -Capítulo 9. Configuração do Sistema - -9.1. Introdução - - Este capítulo discute arquivos de configuração e serviços do systemd. - Primeiro, os arquivos de configuração gerais necessários para - configurar rede são apresentados. - * [598]Seção 9.2, “Configuração de Rede Geral.†- * [599]Seção 9.2.3, “Configurando o nome de dispositivo do sistema.†- * [600]Seção 9.2.4, “Personalizando o Arquivo /etc/hosts.†- - Segundo, problemas que afetam a configuração adequada de dispositivos - são discutidos. - * [601]Seção 9.3, “Visão Geral do Manuseio de Dispositivos e - Módulos.†- * [602]Seção 9.4, “Gerenciando Dispositivos.†- - Terceiro, configurar o relógio do sistema e esquema de teclado é - mostrado. - * [603]Seção 9.5, “Configurando o relógio do sistema.†- * [604]Seção 9.6, “Configurando o Console do Linux.†- - Quarto, uma introdução breve aos scripts e arquivos de configuração - usados quando a(o) usuária(o) se loga no sistema é apresentado. - * [605]Seção 9.7, “Configurando o Locale do Sistema.†- * [606]Seção 9.8, “Criando o Arquivo /etc/inputrc.†- - E finalmente, configurar o comportamento do systemd é discutido. - * [607]Seção 9.10, “Uso e Configuração do Systemd.†- -9.2. Configuração de Rede Geral - - Esta seção somente se aplica se uma placa de rede é para ser - configurada. - -9.2.1. Arquivos de Configuração de Interface de Rede - - Iniciando com a versão 209, o systemd envia um daemon de configuração - de rede chamado systemd-networkd o qual pode ser usado para - configuração de rede básica. Adicionalmente, desde a versão 213, - resolução de nome de DNS pode ser lidada por systemd-resolved em lugar - de um arquivo /etc/resolv.conf estático. Ambos os serviços são - habilitados por padrão. - - Arquivos de configuração para systemd-networkd (e systemd-resolved) - podem ser colocados em /usr/lib/systemd/network ou - /etc/systemd/network. Arquivos em /etc/systemd/network tem uma - prioridade mais alta que aqueles em /usr/lib/systemd/network. Existem - três tipos de arquivos de configuração: arquivos .link, .netdev e - .network. Para descrições detalhadas e conteúdo de exemplo desses - arquivos de configuração, consulte as páginas de manual - systemd-link(5), systemd-netdev(5) e systemd-network(5). - -9.2.1.1. Nomeando Dispositivo de Rede - - Udev normalmente atribui nomes de interface de placa de rede baseados - em características de sistema físicas tais como enp2s1. Se você não - está certa(o) acerca do que é o nome de sua interface, então você - sempre pode executar ip link após você ter inicializado seu sistema. - -Nota - - Os nomes de interface dependem da implementação e configuração do - daemon udev em execução no sistema. O daemon udev para LFS - (systemd-udevd, instalado na [608]Seção 8.71, “Systemd-250â€), não - executará a menos que o sistema LFS seja inicializado. Assim, não é - confiável determinar os nomes de interface sendo usados no sistema LFS - executando aqueles comandos na distribuição anfitriã, mesmo que você - esteja no ambiente chroot. - - Para a maioria dos sistemas, existe apenas uma interface de rede para - cada tipo de conexão. Por exemplo, o nome de interface clássico para - uma conexão com fios é eth0. Uma conexão sem fios usualmente terá o - nome wifi0 ou wlan0. - - Se você preferir usar os nomes de interface de rede clássicos ou - personalizados, então existem três caminhos alternativos para fazer - isso: - * Mascarar o arquivo .link do udev para a política padrão: -ln -s /dev/null /etc/systemd/network/99-default.link - * Criar um esquema de nomenclatura manual, por exemplo nomeando as - interfaces com alguma coisa como "internet0", "dmz0" ou "lan0". - Para fazer isso, crie arquivos .link em /etc/systemd/network/ que - selecionem um nome explícito ou um esquema de nomenclatura melhor - para suas interfaces de rede. Por exemplo: -cat > /etc/systemd/network/10-ether0.link << "EOF" -[Match] -# Change the MAC address as appropriate for your network device -MACAddress=12:34:45:78:90:AB - -[Link] -Name=ether0 -EOF - Veja a página de manual systemd.link(5) para mais informação. - * Em /boot/grub/grub.cfg, passe a opção net.ifnames=0 na linha de - comando do kernel. - -9.2.1.2. Configuração de IP Estático - - O comando abaixo cria um arquivo de configuração básico para uma - configuração de IP Estático (usando ambos systemd-networkd e - systemd-resolved): -cat > /etc/systemd/network/10-eth-static.network << "EOF" -[Match] -Name= - -[Network] -Address=192.168.0.2/24 -Gateway=192.168.0.1 -DNS=192.168.0.1 -Domains= -EOF - - Múltiplas entradas de DNS podem ser adicionadas se você tiver mais que - um servidor de DNS. Não inclua entradas de DNS ou Domínios se você - pretende usar um arquivo /etc/resolv.conf estático. - -9.2.1.3. Configuração de DHCP - - O comando abaixo cria um arquivo de configuração básico para uma - configuração de DHCP IPv4: -cat > /etc/systemd/network/10-eth-dhcp.network << "EOF" -[Match] -Name= - -[Network] -DHCP=ipv4 - -[DHCP] -UseDomains=true -EOF - -9.2.2. Criando o Arquivo /etc/resolv.conf - - Se o sistema será conectado à Internet, então ele precisará de alguns - meios de resolução de nome do Domain Name Service (DNS) para resolver - nomes de domínio da Internet para endereços de IP e vice versa. Isso é - melhor alcançado colocando-se o endereço de IP do servidor de DNS, - disponível a partir do ISP ou administradora(r) de rede, no - /etc/resolv.conf. - -9.2.2.1. Configuração do systemd-resolved - -Nota - - Se usar métodos incompatíveis com systemd-resolved para configurar suas - interfaces de rede (ex.: ppp, etc.); ou se usar qualquer tipo de - resolvedor local (ex.: bind, dnsmasq, unbound, etc.); ou qualquer outro - aplicativo que gere um /etc/resolv.conf (ex.: um aplicativo resolvconf - outro diferente daquele fornecido pelo systemd), então o serviço - systemd-resolved não deveria ser usado. - - Para desabilitar systemd-resolved, execute o seguinte comando: -systemctl disable systemd-resolved - - Quando se usa o systemd-resolved para configuração de DNS, ele cria o - arquivo /run/systemd/resolve/stub-resolv.conf. E, se /etc/resolv.conf - não existir, ele será criado pelo systemd-resolved como um link - simbólico para /run/systemd/resolve/stub-resolv.conf. Então, é - desnecessário criar um /etc/resolv.conf manualmente. - -9.2.2.2. Configuração resolv.conf Estática - - Se um /etc/resolv.conf estático for desejado, então crie ele executando - o seguinte comando: -cat > /etc/resolv.conf << "EOF" -# Begin /etc/resolv.conf - -domain -nameserver -nameserver - -# End /etc/resolv.conf -EOF - - A declaração domain pode ser omitida ou substituída com uma declaração - search. Veja-se a página de manual para resolv.conf para mais detalhes. - - Substitua com o endereço de IP do - servidor DNS mais apropriado para sua configuração. Frequentemente - existirá mais que uma entrada (exigências demandam servidores - secundários para capacidade de substituto). Se você precisa ou quer - apenas um servidor DNS, então remova a segunda linha nameserver do - arquivo. O endereço de IP também talvez seja um roteador na rede local. - Outra opção é usar o serviço de DNS Google Public usando os endereços - de IP abaixo como servidores de nome. - -Nota - - Os endereços DNS IPv4 do Google Public são 8.8.8.8 e 8.8.4.4 para IPv4; - e 2001:4860:4860::8888 e 2001:4860:4860::8844 para IPv6. - -9.2.3. Configurando o nome de dispositivo do sistema - - Durante o processo de inicialização, o arquivo /etc/hostname é usado - para estabelecer o nome de dispositivo do sistema. - - Crie o arquivo /etc/hostname e informe um nome de dispositivo - executando: -echo "" > /etc/hostname - - precisa ser substituído com o nome dado para o computador. Não - informe o Fully Qualified Domain Name (FQDN) aqui. Essa informação é - colocada no arquivo /etc/hosts. - -9.2.4. Personalizando o Arquivo /etc/hosts - - Decida acerca de um fully-qualified domain name (FQDN), e possíveis - apelidos para uso no arquivo /etc/hosts. Se usar endereços de IP - estáticos, então você também precisará decidir acerca de um endereço de - IP. A sintaxe para uma entrada de arquivo hosts é: -IP_address myhost.example.org aliases - - A menos que o computador seja para estar visível para a Internet (por - exemplo, existe um domínio registrado e um bloco válido de endereços de - IP atribuídos—a maioria das(os) usuárias(os) não tem isso), assegure-se - de que o endereço de IP está no intervalo de endereço de IP de rede - privado. Intervalos válidos são: -Intervalo de Endereço de Rede Privado Prefixo Normal -10.0.0.1 - 10.255.255.254 8 -172.x.0.1 - 172.x.255.254 16 -192.168.y.1 - 192.168.y.254 24 - - x pode ser qualquer número no intervalo 16-31. y pode ser qualquer - número no intervalo 0-255. - - Um endereço de IP privado válido poderia ser 192.168.1.1. Um FQDN - válido para esse IP poderia ser lfs.example.org. - - Mesmo se não se usar uma placa de rede, um FQDN válido ainda é exigido. - Isso é necessário para determinados aplicativos, tais como MTAs, - operarem adequadamente. - - Crie o arquivo /etc/hosts usando o seguinte comando: -cat > /etc/hosts << "EOF" -# Begin /etc/hosts - -127.0.0.1 localhost.localdomain localhost -127.0.1.1 -<192.168.0.2> [alias1] [alias2] ... -::1 localhost ip6-localhost ip6-loopback -ff02::1 ip6-allnodes -ff02::2 ip6-allrouters - -# End /etc/hosts -EOF - - Os valores <192.168.0.2>, e precisam ser mudados para - usuárias(os) ou exigências específicas(os) (se atribuído um endereço de - IP por uma(m) administradora(r) de rede/sistema e a máquina estará - conectada a uma rede existente). O(s) nome(s) de apelido(s) - opcional(is) pode(m) ser omitido(s), e a linha <192.168.0.2> pode ser - omitida se você estiver usando uma conexão configurada com DHCP ou IPv6 - Autoconfiguration. - - A entrada ::1 é o homônimo IPv6 do 127.0.0.1 e representa a interface - de loopback IPv6. 127.0.1.1 é uma entrada de loopback reservada - especificamente para o FQDN. - -9.3. Visão Geral do Manuseio de Dispositivos e Módulos - - No [609]Capítulo 8, nós instalamos o pacote udev quando systemd foi - construído. Antes de entrarmos em detalhes referentes a como isso - funciona, um histórico breve dos métodos anteriores de manuseio de - dispositivos é oportuno. - - Sistemas Linux em geral tradicionalmente usavam um método de criação de - dispositivo estático, pelo qual muitos nós de dispositivos eram criados - sob /dev (as vezes literalmente milhares de nós), independente de se os - dispositivos de hardware correspondentes atualmente existissem. Isso - tipicamente era feito via um script MAKEDEV, o qual contém um número de - chamadas ao aplicativo mknod com os números de dispositivo principal e - secundário relevantes para cada dispositivo possível que pudesse - existir no mundo. - - Usando o método udev, somente aqueles dispositivos os quais são - detectados pelo kernel obtém nós de dispositivo criados para eles. Como - esses nós de dispositivo serão criados a cada vez que o sistema - inicializar, eles serão armazenados em um sistema de arquivos devtmpfs - (um sistema de arquivos virtual que reside inteiramente na memória do - sistema). Nós de dispositivo não exigem muito espaço, de forma que a - memória que é usada é insignificante. - -9.3.1. Histórico - - Em fevereiro 2000, um novo sistema de arquivos chamado devfs foi - mesclado no kernel 2.3.46 e foi feito disponível durante as séries 2.4 - de kernels estáveis. Embora ele estivesse presente no próprio fonte do - kernel, esse método de criar dispositivos dinamicamente nunca recebeu - suporte decisivo das(os) desenvolvedoras(es) do kernel centrais. - - O problema principal com a abordagem adotada pelo devfs era a maneira - como ele lidava com detecção, criação e nomenclatura de dispositivo. O - último problema, esse da nomenclatura de nó de dispositivo, era talvez - o mais crítico. É aceito geralmente que, se nomes de dispositivo são - passíveis de serem configuráveis, então a política de nomenclatura de - dispositivo esteja a cargo de uma(m) administradora(r) do sistema, não - imposta sobre elas(es) por (quais)qualquer desenvolvedoras(r(es)) - específicas(o(s)). O sistema de arquivos devfs também sofria com - algumas condições que eram inerentes ao projeto dele e não poderiam ser - consertadas sem uma revisão substancial do kernel. Ele ficou marcado - como obsoleto por um longo período – e foi finalmente removido do - kernel em junho de 2006. - - Com o desenvolvimento da árvore do kernel 2.5 instável, liberada - posteriormente como as séries 2.6 dos kernels estáveis, um novo sistema - de arquivos virtual chamado sysfs veio a existir. O trabalho do sysfs é - o de exportar uma visão da configuração de hardware do sistema para - processos de espaço de usuária(o). Com essa representação visível ao - espaço de usuária(o), a possibilidade de desenvolvimento de um - substituto de espaço de usuária(o) para o devfs tornou-se muito mais - realista. - -9.3.2. Implementação do Udev - -9.3.2.1. Sysfs - - O sistema de arquivos sysfs foi mencionado brevemente acima. Alguém - talvez questione como o sysfs sabe sobre os dispositivos presentes em - um sistema e quais números de dispositivo deveriam ser usados para - eles. Controladores que tenham sido compilados diretamente no kernel - registram os objetos deles com um sysfs (devtmpfs internamente) assim - que eles são detectados pelo kernel. Para controladores compilados como - módulos, esse registro acontecerá quando o módulo for carregado. Assim - que o sistema de arquivos sysfs for montado (em /sys), os dados os - quais os controladores registram com sysfs ficam disponíveis para os - processos de espaço de usuária(o) e para udevd para processamento - (incluindo modificações para nós de dispositivo). - -9.3.2.2. Criação de Nó de Dispositivo - - Arquivos de dispositivo são criados pelo kernel por meio do sistema de - arquivos devtmpfs. Qualquer controlador que deseje registrar um nó de - dispositivo usará o devtmpfs (via o núcleo do controlador) para - fazê-lo. Quando uma instância do devtmpfs é montada em /dev, o nó de - dispositivo inicialmente será criado com um nome, permissões e - proprietária(o) fixos. - - Pouco tempo depois, o kernel enviará um uevent para udevd. Baseado nas - regras especificadas nos arquivos dentro dos diretórios - /etc/udev/rules.d, /usr/lib/udev/rules.d e /run/udev/rules.d, udevd - criará links simbólicos adicionais para o nó de dispositivo, ou mudará - as permissões, proprietária(o), ou grupo deles, ou modificará a entrada - de banco de dados do udevd interna (nome) para aquele objeto. - - As regras nesses três diretórios são numeradas e todos os três - diretórios são mesclados. Se udevd não puder encontrar uma regra para o - dispositivo que ele está criando, então ele deixará as permissões e - propriedade no que devtmpfs usou inicialmente. - -9.3.2.3. Carregamento de Módulo - - Controladores de dispositivo compilados como módulos talvez tenham - apelidos construídos dentro deles. Apelidos são visíveis na saída do - aplicativo modinfo e geralmente estão relacionados aos identificadores - específicos ao barramento dos dispositivos suportados por um módulo. - Por exemplo, o controlador snd-fm801 suporta dispositivos PCI com ID de - fornecedor 0x1319 e ID de dispositivo 0x0801, e tem um apelido de - “pci:v00001319d00000801sv*sd*bc04sc01i*â€. Para a maioria dos - dispositivos, o controlador de barramento exporta o apelido do - controlador que lidaria com o dispositivo via sysfs. Por exemplo, o - arquivo /sys/bus/pci/devices/0000:00:0d.0/modalias pode conter a - sequência de caracteres - “pci:v00001319d00000801sv00001319sd00001319bc04sc01i00â€. As regras - padrão fornecidas com udev causarão udevd chamar /sbin/modprobe com o - conteúdo da variável de ambiente do uevent MODALIAS (o qual deveria ser - o mesmo que o conteúdo do arquivo modalias em sysfs), dessa forma - carregando todos os módulos cujos apelidos correspondem a essa - sequência de caracteres depois da expansão de carácter curinga. - - Nesse exemplo, isso significa que, em adição a snd-fm801, o obsoleto (e - indesejado) controlador forte será carregado se ele estiver disponível. - Veja abaixo maneiras pelas quais o carregamento de controladores - indesejados pode ser evitado. - - O próprio kernel também é capaz de carregar módulos para protocolos de - rede, sistemas de arquivos e suporte NLS sob demanda. - -9.3.2.4. Lidando com Dispositivos Plugáveis a Quente/Dinâmicos - - Quando você conecta um dispositivo, como um tocador de MP3 Universal - Serial Bus (USB), o kernel reconhece que o dispositivo agora está - conectado e gera um uevent. Esse uevent é então tratado pelo udevd como - descrito acima. - -9.3.3. Problemas ao Carregar Módulos e Criar Dispositivos - - Existem uns poucos possíveis problemas quando se trata de criar - automaticamente nós de dispositivos. - -9.3.3.1. Um módulo do kernel não é carregado automaticamente - - O Udev só carregará um módulo se ele tiver um apelido específico a - barramento e o controlador de barramento exportar adequadamente os - apelidos necessários para sysfs. Em outros casos, deve-se organizar o - carregamento de módulo por outros meios. Com o Linux-5.16.9, udev é - conhecido por carregar controladores escritos adequadamente para - dispositivos INPUT, IDE, PCI, USB, SCSI, SERIO e FireWire. - - Para determinar se o controlador de dispositivo que você exige tem o - suporte necessário para udev, execute modinfo com o nome de módulo como - o argumento. Agora tente localizar o diretório de dispositivo sob - /sys/bus e verifique se existe um arquivo modalias lá. - - Se o arquivo modalias existir em sysfs, então o controlador suporta o - dispositivo e pode falar com ele diretamente, mas não tem o apelido, - isso é um defeito no controlador. Carregue o controlador sem a ajuda do - udev e espere que o problema seja consertado posteriormente. - - Se não existir arquivo modalias no diretório relevante sob /sys/bus, - então isso significa que as(os) desenvolvedoras(es) do kernel ainda não - adicionaram suporte modalias para esse tipo de barramento. Com - Linux-5.16.9, esse é o caso com barramentos ISA. Espere que esse - problema seja consertado em versões do kernel posteriores. - - Udev não é planejado para carregar controladores “encapsuladoresâ€, tais - como snd-pcm-oss, e controladores não hardware, tais como loop, de - maneira alguma. - -9.3.3.2. Um módulo do kernel não é carregado automaticamente, e udev não é -planejado para carregar ele - - Se o módulo “encapsulador†apenas aprimora a funcionalidade fornecida - por algum outro módulo (por exemplo, snd-pcm-oss aprimora a - funcionalidade de snd-pcm tornando as placas de som disponíveis para - aplicações OSS), então configure modprobe para carregar o encapsulador - após o udev carregar o módulo encapsulado. Para fazer isso, adicione - uma linha “softdep†ao arquivo /etc/modprobe.d/.conf - correspondente. Por exemplo: -softdep snd-pcm post: snd-pcm-oss - - Observe que o comando “softdep†também permite dependências pre:, ou - uma mistura de ambas as dependências pre: e post:. Veja-se a página de - manual modprobe.d(5) para mais informação sobre a sintaxe e capacidades - “softdepâ€. - -9.3.3.3. Udev carrega algum módulo indesejado - - Ou não construa o módulo, ou coloque-o na lista negra em um arquivo - /etc/modprobe.d/blacklist.conf como feito com o módulo forte no exemplo - abaixo: -blacklist forte - - Módulos em listas negras ainda podem ser carregados manualmente com o - comando explícito modprobe. - -9.3.3.4. Udev cria um dispositivo incorretamente, ou faz um link simbólico -errado - - Isso geralmente acontece se uma regra inesperadamente corresponder com - um dispositivo. Por exemplo, uma regra mal escrita pode corresponder - com ambos um disco SCSI (como desejado) e o dispositivo genérico SCSI - correspondente (incorretamente) pelo fornecedor. Encontre a regra - infratora e torne-a mais específica, com a ajuda do comando udevadm - info. - -9.3.3.5. Regra do Udev funciona de forma não confiável - - Isso talvez seja outra manifestação do problema anterior. Se não, e sua - regra usar atributos do sysfs, então isso talvez seja um problema de - temporização do kernel, a ser consertado em kernels posteriores. Por - hora, você pode contornar ele criando uma regra que aguarda o atributo - do sysfs usado e adiciona ele ao arquivo - /etc/udev/rules.d/10-wait_for_sysfs.rules (crie esse arquivo se ele não - existir). Por favor notifique a lista LFS Development se você o fizer e - isso ajudar. - -9.3.3.6. Udev não cria um dispositivo - - O texto adicional assume que o driver está construído estaticamente - dentro do kernel ou já carregado como um módulo, e que você já - verificou que o udev não cria um dispositivo mal nomeado. - - Udev não tem informação necessária para criar um nó de dispositivo se - um controlador de kernel não exportar os dados dele para o sysfs. Isso - é mais comum com controladores terceirizados oriundos de fora da árvore - do kernel. Crie um nó de dispositivo estático em /usr/lib/udev/devices - com os números principal/secundário apropriados (veja o arquivo - devices.txt dentro da documentação do kernel ou a documentação - fornecida pela(o) fornecedora(r) de controlador terceirizado). O nó de - dispositivo estático será copiado para /dev por udev. - -9.3.3.7. Ordem de nomenclatura de dispositivo muda aleatoriamente após -reinicializar - - Isso é devido ao fato de o udev, pelo projeto, lidar com uevents e - carregar módulos em paralelo, e assim em uma ordem imprevisível. Isso - nunca será “consertadoâ€. Você não deveria confiar que os nomes de - dispositivos do kernel sejam estáveis. Em vez disso, crie suas próprias - regras que fazem links simbólicos com nomes estáveis baseados em alguns - atributos estáveis do dispositivo, tais como um número de série ou a - saída dos vários utilitários *_id instalados pelo udev. Veja-se a - [610]Seção 9.4, “Gerenciando Dispositivos†e [611]Seção 9.2, - “Configuração de Rede Geral†para exemplos. - -9.3.4. Leitura Útil - - Documentação útil adicional está disponível nos seguintes sítios: - * A Userspace Implementation of devfs - [612]http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-K - roah-Hartman-OLS2003.pdf - * The sysfs Filesystem - [613]http://www.kernel.org/pub/linux/kernel/people/mochel/doc/paper - s/ols-2005/mochel.pdf - -9.4. Gerenciando Dispositivos - -9.4.1. Lidando com dispositivos duplicados - - Como explicado na [614]Seção 9.3, “Visão Geral do Manuseio de - Dispositivos e Módulosâ€, a ordem na qual dispositivos com a mesma - função aparecem em /dev é essencialmente aleatória. Por exemplo, se - você tem uma câmera web USB e um sintonizador de TV, as vezes - /dev/video0 se refere à câmera e /dev/video1 se refere ao sintonizador, - e as vezes após uma reinicialização a ordem muda. Para todas as classes - de hardware, exceto placas de som e placas de rede, isso é consertável - criando regras do udev para links simbólicos persistentes - personalizados. O caso das placas de rede é abordado separadamente na - [615]Seção 9.2, “Configuração de Rede Geralâ€, e configuração de placa - de som pode ser encontrado em [616]BLFS. - - Para cada um dos seus dispositivos que é provável ter esse problema - (mesmo que o problema não exista em sua distribuição Linux atual), - encontre o diretório correspondente sob /sys/class ou /sys/block. Para - dispositivos de vídeo, isso talvez seja /sys/class/video4linux/videoX. - Descubra os atributos que identificam o dispositivo de maneira única - (geralmente, IDs de fornecedor e produto e (ou) números seriais - funcionam): -udevadm info -a -p /sys/class/video4linux/video0 - - Então escreva regras que criam os links simbólicos, por exemplo: -cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" - -# Persistent symlinks for webcam and tuner -KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="w -ebcam" -KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="t -vtuner" - -EOF - - O resultado é que os dispositivos /dev/video0 e /dev/video1 ainda se - referem aleatoriamente ao sintonizador e à câmera web (e, portanto, - nunca deveriam ser usados diretamente), mas existem links simbólicos - /dev/tvtuner e /dev/webcam que sempre apontam para o dispositivo - correto. - -9.5. Configurando o relógio do sistema - - Esta seção discute como configurar o serviço de sistema - systemd-timedated, o qual configura o relógio e fuso horário do - sistema. - - Se você não conseguir se lembrar se ou não o relógio do hardware está - configurado para UTC, [então] descubra executando o comando hwclock - --localtime --show. Isso mostrará o que a hora atual é de acordo com o - relógio do hardware. Se essa hora corresponder à que o seu relógio diz, - então o relógio do hardware está configurado para hora local. Se a - saída originária do hwclock não for a hora local, [então] as chances - são que ele esteja configurado para hora UTC. Verifique isso - adicionando ou subtraindo a quantidade apropriada de horas para o fuso - horário à (da) hora mostrada pelo hwclock. Por exemplo, se você estiver - atualmente no fuso horário MST, o qual é conhecido também como GMT - -0700, [então] adicione sete horas à hora local. - - O systemd-timedated lê /etc/adjtime, e, dependendo do conteúdo do - arquivo, configura o relógio para ou UTC ou hora local. - - Crie o arquivo /etc/adjtime com o seguinte conteúdo se seu relógio do - hardware estiver configurado para hora local: -cat > /etc/adjtime << "EOF" -0.0 0 0.0 -0 -LOCAL -EOF - - Se /etc/adjtime não estiver presente na primeira inicialização, [então] - systemd-timedated assumirá que o relógio do hardware está configurado - para UTC e ajustará o arquivo de acordo com isso. - - Você também pode usar o utilitário timedatectl para dizer ao - systemd-timedated se o seu relógio do hardware está configurado para - UTC ou hora local: -timedatectl set-local-rtc 1 - - O timedatectl também pode ser usado para mudar a hora e fuso horário do - sistema. - - Para mudar sua atual hora do sistema, emita: -timedatectl set-time YYYY-MM-DD HH:MM:SS - - O relógio do hardware também será atualizado de acordo. - - Para mudar seu atual fuso horário, emita: -timedatectl set-timezone TIMEZONE - - Você pode obter uma lista dos fusos horários disponíveis executando: -timedatectl list-timezones - -Nota - - Por favor observe que o comando timedatectl não funciona no ambiente - chroot. Ele somente pode ser usado depois que o sistema LFS for - inicializado com o systemd. - -9.5.1. Sincronização da Hora da Rede - - Iniciando com a versão 213, o systemd envia um daemon chamado - systemd-timesyncd o qual pode ser usado para sincronizar a hora do - sistema com servidores do NTP remotos. - - O daemon não é concebido como um substituto para o bem estabelecido - daemon do NTP, porém como uma implementação somente cliente do - protocolo SNTP o qual pode ser usado para tarefas menos avançadas e em - sistemas de recurso limitado. - - Iniciando com o systemd versão 216, o daemon systemd-timesyncd está - habilitado por padrão. Se você desejar desabilitar ele, [então] emita o - seguinte comando: -systemctl disable systemd-timesyncd - - O arquivo /etc/systemd/timesyncd.conf pode ser usado para mudar os - servidores do NTP que o systemd-timesyncd sincroniza com. - - Por favor observe que, quando o relógio do sistema estiver configurado - para Hora Local, [então] o systemd-timesyncd não atualizará o relógio - do hardware. - -9.6. Configurando o Console do Linux - - Esta seção discute como configurar o serviço de sistema - systemd-vconsole-setup, o qual configura a fonte de console virtual e - mapa de tecla de console. - - O serviço systemd-vconsole-setup lê o arquivo /etc/vconsole.conf para - informação de configuração. Decida qual mapa de tecla e fonte de tela - será usada. Vários HOWTOs específicos de idioma também podem ajudar com - isso, veja-se - [617]http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Examine a - saída de localectl list-keymaps para uma lista dos mapas de tecla de - console válidos. Olhe no diretório /usr/share/consolefonts para fontes - de tela válidas. - - O arquivo /etc/vconsole.conf deveria conter linhas da forma: - VARIÃVEL="valor". As seguintes variáveis são reconhecidas: - - KEYMAP - Essa variável especifica a tabela de mapeamento de tecla para o - teclado. Se desconfigurada, [então] ela padroniza para us. - - KEYMAP_TOGGLE - Essa variável pode ser usada para configurar um segundo mapa de - tecla de alternância e é desconfigurada por padrão. - - FONT - Essa variável especifica a fonte usada pelo console virtual. - - FONT_MAP - Essa variável especifica o mapa de console para ser usado. - - FONT_UNIMAP - Essa variável especifica o mapa de fonte Unicode. - - Um exemplo para um teclado e console alemão é dado abaixo: -cat > /etc/vconsole.conf << "EOF" -KEYMAP=de-latin1 -FONT=Lat2-Terminus16 -EOF - - Você pode mudar o valor KEYMAP em tempo de execução usando o utilitário - localectl: -localectl set-keymap MAP - -Nota - - Por favor observe que o comando localectl não funciona no ambiente - chroot. Ele somente pode ser usado depois que o sistema LFS for - inicializado com o systemd. - - Você também pode usar o utilitário localectl com os parâmetros - correspondentes para mudar o esquema, modelo, variante e opções de - teclado do X11: -localectl set-x11-keymap LAYOUT [MODEL] [VARIANT] [OPTIONS] - - Para listar possíveis valores para os parâmetros do localectl - set-x11-keymap, execute localectl com os parâmetros listados abaixo: - - list-x11-keymap-models - Mostra modelos de mapeamento de teclado do X11 conhecidos. - - list-x11-keymap-layouts - Mostra esquemas de mapeamento de teclado do X11 conhecidos. - - list-x11-keymap-variants - Mostra variantes de mapeamento de teclado do X11 conhecidas. - - list-x11-keymap-options - Mostra opções de mapeamento de teclado do X11 conhecidas. - -Nota - - Usar quaisquer dos parâmetros listados acima exige o pacote - XKeyboard-Config originário do BLFS. - -9.7. Configurando o Locale do Sistema - - O arquivo /etc/locale.conf abaixo configura algumas variáveis de - ambiente necessárias para suporte de idioma nativo. Configurar elas - adequadamente resulta em: - * A saída de aplicativos sendo traduzida para seu idioma nativo - * A classificação correta de caracteres em letras, dígitos e outras - classes. Isso é necessário para o bash aceitar adequadamente - caracteres não ASCII em linhas de comando em locales não ingleses - * A sequência de ordenação alfabética correta para o país - * Tamanho de papel padrão apropriado - * Formatação correta de valores monetário, hora e data - - Substitua abaixo com o código de duas letras para seu idioma - desejado (por exemplo, “enâ€) e com o código de duas letras para o - país apropriado (por exemplo, “GBâ€). deveria ser substituído - com o mapa de caracteres canônico para seu locale escolhido. - Modificadores opcionais, tais como “@euroâ€, talvez também estejam - presentes. - - A lista de todos os locales suportados pela Glibc pode ser obtida - executando o seguinte comando: -locale -a - - Mapas de caracteres podem ter um número de apelidos, por exemplo, - “ISO-8859-1†também é referenciado como “iso8859-1†e “iso88591â€. - Alguns aplicativos não podem lidar com os vários sinônimos corretamente - (por exemplo, exigem que “UTF-8†seja escrito como “UTF-8â€, não - “utf8â€), de forma que é mais seguro, na maioria dos casos, escolher o - nome canônico para um locale particular. Para determinar o nome - canônico, execute o seguinte comando, onde é a saída dada - por locale -a para seu locale preferido (“en_GB.iso88591†no nosso - exemplo). -LC_ALL= locale charmap - - Para o locale “en_GB.iso88591â€, o comando acima imprimirá: -ISO-8859-1 - - Isso resulta em uma configuração de locale final de “en_GB.ISO-8859-1â€. - É importante que o locale encontrado usando a heurística acima seja - testado antes que ele seja adicionado aos arquivos de inicialização do - Bash: -LC_ALL= locale language -LC_ALL= locale charmap -LC_ALL= locale int_curr_symbol -LC_ALL= locale int_prefix - - Os comandos acima deveriam imprimir o nome do idioma, a codificação de - caracteres usada pelo locale, a moeda local, e o prefixo para discar - antes do número de telefone para se alcançar o país. Se quaisquer dos - comandos acima falharem com uma mensagem similar àquela mostrada - abaixo, [então] isso significa que seu locale ou não foi instalado no - Capítulo 8 ou não é suportado pela instalação padrão da Glibc. -locale: Cannot set LC_* to default locale: No such file or directory - - Se isso acontecer, [então] você deveria instalar o locale desejado - usando o comando localedef, ou considere escolher um locale diferente. - As instruções posteriores assumem que não existem tais mensagens de - erro originárias da Glibc. - - Alguns pacotes além do LFS também talvez careçam de suporte para seu - locale escolhido. Um exemplo é a biblioteca do X (parte do X Window - System), a qual externaliza a seguinte mensagem de erro se o locale não - corresponder exatamente a um dos nomes de mapa de carácter nos arquivos - internos dela: -Warning: locale not supported by Xlib, locale set to C - - Em muitos casos, a Xlib presume que o mapa de carácter será listado em - notação de letras maiúsculas com hífens canônicos. Por exemplo, - "ISO-8859-1" em vez de "iso88591". Também é possível encontrar uma - especificação apropriada removendo-se a parte de mapa de carácter da - especificação de locale. Isso pode ser verificado executando-se o - comando locale charmap em ambos os locales. Por exemplo, alguém poderia - ter que mudar "de_DE.ISO-8859-15@euro" para "de_DE@euro" para conseguir - que esse locale fosse reconhecido pela Xlib. - - Outros pacotes também podem funcionar incorretamente (mas talvez não - necessariamente exibam quaisquer mensagens de erro) se o nome do locale - não corresponder às expectativas deles. Nesses casos, investigar como - outras distribuições do Linux suportam seu locale poderia fornecer - alguma informação útil. - - Uma vez que as configurações de locale adequadas tenham sido - determinadas, crie o arquivo /etc/locale.conf: -cat > /etc/locale.conf << "EOF" -LANG=_.<@modifiers> -EOF - - Observe que você pode modificar o /etc/locale.conf com o utilitário - localectl do systemd. Para usar o localectl para o exemplo acima, - execute: -localectl set-locale LANG="_.<@modifiers>" - - Você também pode especificar outras variáveis de ambiente específicas - de idioma, tais como LANG; LC_CTYPE; LC_NUMERIC; ou qualquer outra - variável de ambiente oriunda da saída de locale. Apenas separe elas com - um espaço. Um exemplo onde LANG é configurada como en_US.UTF-8, porém - LC_CTYPE é configurada apenas como en_US é: -localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US" - -Nota - - Por favor observe que o comando localectl não funciona no ambiente - chroot. Ele somente pode ser usado depois que o sistema LFS for - inicializado com o systemd. - - Os locales “C†(padrão) e “en_US†(aquele recomendado para usuárias(os) - do inglês dos Estados Unidos da América do Norte) são diferentes. “C†- usa o conjunto de caracteres de 7 bits US-ASCII, e trata bytes com o - bit alto configurado como caracteres inválidos. Esse é o porquê, por - exemplo, do comando ls substituir eles com pontos de interrogação nesse - locale. Também, uma tentativa de enviar correio com tais caracteres a - partir do Mutt ou Pine resulta em mensagens de não conformidade com RFC - sendo enviadas (o conjunto de caracteres no correio de saída é indicado - como “unknown 8-bitâ€). É sugerido que você use o locale “C†apenas se - você tiver certeza de que nunca precisará de caracteres de 8 bits. - -9.8. Criando o Arquivo /etc/inputrc - - O arquivo inputrc é o arquivo de configuração para a biblioteca - readline, a qual fornece capacidades de edição enquanto a(o) usuária(o) - estiver digitando uma linha a partir do terminal. Ele funciona - traduzindo entradas de teclado em ações específicas. Readline é usada - pelo bash e maioria dos outros shells, bem como muitos outros - aplicativos. - - A maioria das pessoas não necessita de funcionalidade específica de - usuária(o), de forma que o comando abaixo cria um /etc/inputrc global - usado por qualquer uma(m) que se logue. Se você mais tarde decidir que - você precisa sobrepor os padrões em uma base por usuária(o), [então] - você pode criar um arquivo .inputrc no diretório home da(o) usuária(o) - com os mapeamentos modificados. - - Para mais informação sobre como editar o arquivo inputrc, veja-se info - bash sob a seção Readline Init File. info readline é também uma boa - fonte de informação. - - Abaixo está um inputrc global genérico junto com comentários para - explicar o que as várias opções fazem. Observe que comentários não - podem estar na mesma linha que comandos. Crie o arquivo usando o - seguinte comando: -cat > /etc/inputrc << "EOF" -# Begin /etc/inputrc -# Modified by Chris Lynn - -# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off - -# Enable 8bit input -set meta-flag On -set input-meta On - -# Turns off 8th bit stripping -set convert-meta Off - -# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the value -# contained in the 1st argument to the readline specific functions -"\eOd": backward-word -"\eOc": forward-word - -# for linux console -"\e[1~": beginning-of-line -"\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history -"\e[3~": delete-char -"\e[2~": quoted-insert - -# for xterm -"\eOH": beginning-of-line -"\eOF": end-of-line - -# for Konsole -"\e[H": beginning-of-line -"\e[F": end-of-line - -# End /etc/inputrc -EOF - -9.9. Criando o Arquivo /etc/shells - - O arquivo shells contém uma lista dos shells de login no sistema. Os - aplicativos usam esse arquivo para determinar quando um shell é válido. - Para cada shell, uma linha única deveria estar presente, consistindo do - caminho do shell relativo à raiz da estrutura de diretório (/). - - Por exemplo, esse arquivo é consultado pelo chsh para determinar quando - uma usuária desprivilegiada possa mudar o shell de login para a própria - conta dela. Se o nome de comando não estiver listado, [então] a usuária - terá negada a habilidade de mudar shells. - - É uma exigência para aplicativos tais como GDM o qual não publiciza o - navegador de face se ele não puder encontrar /etc/shells, ou daemons do - FTP os quais tradicionalmente proíbem acesso a usuárias(os) com shells - não incluídos nesse arquivo. -cat > /etc/shells << "EOF" -# Begin /etc/shells - -/bin/sh -/bin/bash - -# End /etc/shells -EOF - -9.10. Uso e Configuração do Systemd - -9.10.1. Configuração Básica - - O arquivo /etc/systemd/system.conf contém um conjunto de opções para - controlar as operações do systemd básicas. O arquivo padrão tem todas - as entradas comentadas com as configurações padrão indicadas. Esse - arquivo é onde o nível de registro talvez seja mudado, bem como algumas - configurações de registro básicas. Veja-se a página de manual - systemd-system.conf(5) para detalhes sobre cada opção de configuração. - -9.10.2. Desabilitando a Limpeza da Tela em Tempo de Inicialização - - O comportamento normal para o systemd é o de limpar a tela ao final da - sequência de inicialização. Se desejado, esse comportamento talvez seja - mudado executando o seguinte comando: -mkdir -pv /etc/systemd/system/getty@tty1.service.d - -cat > /etc/systemd/system/getty@tty1.service.d/noclear.conf << EOF -[Service] -TTYVTDisallocate=no -EOF - - As mensagens de inicialização podem sempre ser revistas usando o - comando journalctl -b como a(o) usuária(o) root. - -9.10.3. Desabilitando tmpfs para /tmp - - Por padrão, /tmp é criado como um tmpfs. Se isso não for desejado, - [então] ele pode ser sobreposto executando o seguinte comando: -ln -sfv /dev/null /etc/systemd/system/tmp.mount - - Alternativamente, se uma partição separada para /tmp for desejada, - [então] especifique essa partição em uma entrada do /etc/fstab. - -Atenção - - Não crie o link simbólico acima se uma partição separada for usada para - o /tmp. Isso impedirá o sistema de arquivos raiz (/) de ser remontado - leitura/escrita e tornará o sistema inutilizável quando inicializado. - -9.10.4. Configurando a Criação e Deleção de Arquivo Automática - - Existem vários serviços que criam ou deletam arquivos ou diretórios: - * systemd-tmpfiles-clean.service - * systemd-tmpfiles-setup-dev.service - * systemd-tmpfiles-setup.service - - O local de sistema para os arquivos de configuração é - /usr/lib/tmpfiles.d/*.conf. Os arquivos de configuração locais estão em - /etc/tmpfiles.d. Os arquivos em /etc/tmpfiles.d sobrepõem os arquivos - com o mesmo nome em /usr/lib/tmpfiles.d. Veja-se a página de manual - tmpfiles.d(5) para detalhes do formato de arquivo. - - Observe que a sintaxe para os arquivos /usr/lib/tmpfiles.d/*.conf pode - ser confusa. Por exemplo, a deleção de arquivos padrão no diretório - /tmp está localizada em /usr/lib/tmpfiles.d/tmp.conf com a linha: -q /tmp 1777 root root 10d - - O campo tipo, q, discute criar um sub-volume com cotas, o qual - realmente é aplicável apenas para sistemas de arquivos btrfs. Ele - referencia tipo v, o qual sequencialmente referencia tipo d - (diretório). Isso então cria o diretório especificado se ele não - estiver presente e ajusta as permissões e propriedade como - especificado. O conteúdo do diretório estará sujeito a limpeza baseada - em hora se o argumento idade for especificado. - - Se os parâmetros padrão não forem desejados, então o arquivo deveria - ser copiado para /etc/tmpfiles.d e editado conforme desejado. Por - exemplo: -mkdir -p /etc/tmpfiles.d -cp /usr/lib/tmpfiles.d/tmp.conf /etc/tmpfiles.d - -9.10.5. Sobrepondo o Comportamento de Serviços Padrão - - Os parâmetros de uma unidade podem ser sobrepostos criando-se um - diretório e um arquivo de configuração em /etc/systemd/system. Por - exemplo: -mkdir -pv /etc/systemd/system/foobar.service.d - -cat > /etc/systemd/system/foobar.service.d/foobar.conf << EOF -[Service] -Restart=always -RestartSec=30 -EOF - - Veja-se a página de manual systemd.unit(5) para mais informação. Depois - de criar o arquivo de configuração, execute systemctl daemon-reload e - systemctl restart foobar para ativar as mudanças para um serviço. - -9.10.6. Depurando a Sequência de Inicialização - - Em vez de scripts de shell simples usados nos sistemas de inicialização - estilo SysVinit ou BSD, o systemd usa um formato unificado para tipos - diferentes dos arquivos de inicialização (ou unidades). O comando - systemctl é usado para habilitar; desabilitar; controlar estado; e - obter a situação dos arquivos de unidade. Aqui estão alguns exemplos - dos comandos usados frequentemente: - * systemctl list-units -t [--all]: lista os arquivos de - unidade carregados do tipo serviço. - * systemctl list-units -t [--all]: lista os arquivos de - unidade carregados do tipo alvo. - * systemctl show -p Wants : mostra todas as - unidades que dependem do alvo multi-user. Alvos são arquivos de - unidade especiais que são análogos a níveis de execução sob o - SysVinit. - * systemctl status : mostra a situação do - serviço nomeserviço. A extensão .service pode ser omitida se não - existirem outros arquivos de unidade com o mesmo nome, tais como - arquivos .socket (os quais criam um soquete de escuta que fornece - funcionalidade similar ao inetd/xinetd). - -9.10.7. Trabalhando com o Diário do Systemd - - O registro em um sistema inicializado com o systemd é manejado com o - systemd-journald (por padrão), em vez de um daemon syslog Unix típico. - Você também pode adicionar um daemon syslog normal e ter ambos operando - lado a lado se desejado. O aplicativo systemd-journald armazena - entradas de diário em um formato binário, em vez de um arquivo de - registro de texto simples. Para auxiliar na análise do arquivo, o - comando journalctl é fornecido. Aqui estão alguns exemplos dos comandos - usados frequentemente: - * journalctl -r: mostra todo o conteúdo do diário em ordem - cronológica reversa. - * journalctl -u UNIDADE: mostra as entradas de diário associadas com - o arquivo de UNIDADE especificado. - * journalctl -b[=ID] -r: mostra as entradas de diário desde a mais - recente inicialização bem sucedida (ou para a ID de inicialização) - em ordem cronológica reversa. - * journalctl -f: fornece funcionalidade similar ao tail -f (seguir). - -9.10.8. Trabalhando com Despejos de Núcleo - - Despejos de núcleo são úteis para depurar aplicativos quebrados, - especialmente quando um processo de daemon quebra. Em sistemas - inicializados do systemd, o despejamento de núcleo é manejado pelo - systemd-coredump. Ele registrará o despejo de núcleo no diário e - armazenará o próprio despejo de núcleo em /var/lib/systemd/coredump. - Para recuperar e processar despejos de núcleo, a ferramenta coredumpctl - é fornecida. Aqui estão alguns exemplos de comandos usados - frequentemente: - * coredumpctl -r: lista todos os despejos de núcleo em ordem - cronológica reversa. - * coredumpctl -1 info: mostra a informação a partir do mais recente - despejo de núcleo. - * coredumpctl -1 debug: carrega o mais recente despejo de núcleo no - [618]GDB. - - Despejos de núcleo talvez usem um monte de espaço de disco. O espaço de - disco máximo usado por despejos de núcleo pode ser limitado criando-se - um arquivo de configuração em /etc/systemd/coredump.conf.d. Por - exemplo: -mkdir -pv /etc/systemd/coredump.conf.d - -cat > /etc/systemd/coredump.conf.d/maxuse.conf << EOF -[Coredump] -MaxUse=5G -EOF - - Vejam-se as páginas de manual systemd-coredump(8); coredumpctl(1); e - coredump.conf.d(5) para mais informação. - -9.10.9. Processos de Execução Longa - - Iniciando com o systemd-230, todos os processos de usuária(o) são - finalizados quando uma sessão de usuária(o) for terminada, mesmo se - nohup for usado, ou o processo usar as funções daemon() ou setsid(). - Isso é uma mudança deliberada de um ambiente permissivo historicamente - para um mais restritivo. O novo comportamento talvez cause problemas se - você depender de aplicativos de execução longa (por exemplo, screen ou - tmux) para continuarem ativos depois de terminar sua sessão de - usuária(o). Existem três maneiras de habilitar processos persistentes - para continuarem depois que uma sessão de usuária(o) for terminada. - * Habilitar persistência de processo apenas para usuárias(os) - selecionadas(os): Usuárias(os) normais tem permissão para habilitar - persistência de processo com o comando loginctl enable-linger para - as(os) próprias(os) usuárias(os) delas(es). Administradoras(es) de - sistema podem usar o mesmo comando com um argumento user ao - habilitar para uma(m) usuária(o). Essa(e) usuária(o) pode então - usar o comando systemd-run para iniciar processos de execução - longa. Por exemplo: systemd-run --scope --user /usr/bin/screen. Se - você habilitar a persistência para sua(eu) usuária(o), [então] a - user@.service continuará, mesmo depois que todas as sessões de - login forem fechadas, e automaticamente iniciará na inicialização - do sistema. Isso tem a vantagem de explicitamente permitir e - proibir processos para execução depois que a sessão de usuária(o) - for terminada, porém quebra retrocompatibilidade com ferramentas - como nohup e utilitários que usam daemon(). - * Habilitar persistência de processo no âmbito do sistema: Você pode - configurar KillUserProcesses=no em /etc/systemd/logind.conf para - habilitar a persistência de processo globalmente para todas(os) - as(os) usuárias(os). Isso tem o benefício de deixar o método antigo - disponível para todas(os) as(os) usuárias(os) à custa do controle - explícito. - * Desabilitar em tempo de construção: Você pode desabilitar a - persistência por padrão enquanto construir o systemd adicionando a - chave -Ddefault-kill-user-processes=false ao comando meson para o - systemd. Isso desabilita completamente a habilidade do systemd para - finalizar processos de usuária(o) ao fim de sessão. - -Capítulo 10. Tornando o Sistema LFS Inicializável - -10.1. Introdução - - É hora de tornar o sistema LFS inicializável. Este capítulo discute a - criação do arquivo /etc/fstab; construção de um kernel para o novo - sistema LFS; e instalação do carregador de inicialização GRUB, de modo - que o sistema LFS possa ser selecionado para iniciar durante a - inicialização. - -10.2. Criando o Arquivo /etc/fstab - - O arquivo /etc/fstab é usado por alguns aplicativos para determinar - onde sistemas de arquivos são para serem montados por padrão; em qual - ordem; e quais precisam ser verificados (para erros de integridade) - antes da montagem. Crie uma nova tabela de sistemas de arquivos como - esta: -cat > /etc/fstab << "EOF" -# Begin /etc/fstab - -# file system mount-point type options dump fsck -# order - -/dev/ / defaults 1 1 -/dev/ swap swap pri=1 0 0 - -# End /etc/fstab -EOF - - Substitua ; ; e com os valores apropriados para o - sistema, por exemplo, sda2; sda5; e ext4. Para detalhes sobre os seis - campos nesse arquivo, veja-se man 5 fstab. - - Sistemas de arquivos com origem MS-DOS ou Windows (isto é, vfat, ntfs, - smbfs, cifs, iso9660, udf) precisam de uma opção especial, utf8, para a - finalidade de caracteres não ASCII nos nomes de arquivo serem - interpretados corretamente. Para locales não UTF-8, o valor de - iocharset deveria ser configurado para ser o mesmo que o conjunto de - caracteres do locale, ajustado de tal maneira que o kernel o entenda. - Isso funciona se a definição de conjunto de caracteres relevante - (encontrada sob File systems -> Native Language Support quando da - configuração do kernel) tenha sido compilada no kernel ou construída - como um módulo. Entretanto, se o conjunto de caracteres do locale for - UTF-8, [então] a correspondente opção iocharset=utf8 tornaria o sistema - de arquivo sensível a maiúsculas e minúsculas. Para consertar isso, use - a opção especial utf8 em vez de iocharset=utf8, para locales UTF-8. A - opção “codepage†também é necessária para sistemas de arquivos vfat e - smbfs. Ela deveria ser configurada para o número da página de código - usada sob MS-DOS em seu país. Por exemplo, para montar controladores - flash USB, uma(m) usuária(o) do ru_RU.KOI8-R precisaria do seguinte na - porção de opções da linha mount dele em /etc/fstab: -noauto,user,quiet,showexec,codepage=866,iocharset=koi8r - - O correspondente fragmento das opções para usuárias(os) do ru_RU.UTF-8 - é: -noauto,user,quiet,showexec,codepage=866,utf8 - - Observe que usar iocharset é o padrão para iso8859-1 (a qual mantém o - sistema de arquivo insensível a maiúsculas e minúsculas), e a opção - utf8 diz ao kernel para converter os nomes de arquivo usando UTF-8, de - forma que eles podem ser interpretados no locale UTF-8. - - É possível também especificar os valores de página de código e - iocharset padrão para alguns sistemas de arquivos durante a - configuração do kernel. Os parâmetros relevantes são chamados de - “Default NLS Option†(CONFIG_NLS_DEFAULT); “Default Remote NLS Option†- (CONFIG_SMB_NLS_DEFAULT); “Default codepage for FAT†- (CONFIG_FAT_DEFAULT_CODEPAGE); e “Default iocharset for FAT†- (CONFIG_FAT_DEFAULT_IOCHARSET). Não há maneira de especificar essas - configurações para o sistema de arquivos ntfs em tempo de compilação do - kernel. - - É possível tornar o sistema de arquivos ext3 confiável em casos de - falhas de eletricidade para alguns tipos de disco rígido. Para fazer - isso, adicione a opção de montagem barrier=1 para a entrada apropriada - em /etc/fstab. Para verificar se o controlador de disco suporta essa - opção, execute [619]hdparm no controlador de disco aplicável. Por - exemplo, se: -hdparm -I /dev/sda | grep NCQ - - retornar uma saída não vazia, [então] a opção é suportada. - - Nota: partições baseadas em Logical Volume Management (LVM) não podem - usar a opção barrier. - -10.3. Linux-5.16.9 - - O pacote Linux contém o kernel do Linux. - Tempo aproximado de construção: 1,5 - 130,0 UPC (tipicamente cerca de - 12 UPC) - Espaço em disco exigido: 1200 - 8800 MB (tipicamente cerca de 1700 MB) - -10.3.1. Instalação do kernel - - Construir o kernel envolve uns poucos passos—configuração; compilação; - e instalação. Leia o arquivo README na árvore do fonte do kernel para - métodos alternativos à maneira que este livro configura o kernel. - - Prepare para compilação executando o seguinte comando: -make mrproper - - Isso garante que a árvore do kernel esteja absolutamente limpa. O time - do kernel recomenda que esse comando seja executado antes de cada - compilação do kernel. Não confie que a árvore do fonte esteja limpa - após descompactar. - - Existem muitas maneiras de configurar as opções do kernel. Usualmente, - isso é feito por meio de uma interface controlada por menu, por - exemplo: -make menuconfig - - O significado das variáveis de ambiente do make opcionais: - - LANG= LC_ALL= - Isso estabelece a configuração do locale para aquela usada no - anfitrião. Isso talvez seja necessário para um adequado desenho - de linha da interface ncurses do menuconfig em um console de - texto linux UTF-8. - - Se usada, [então] assegure-se de substituir - pelo valor da variável $LANG oriunda do seu anfitrião. Você - pode, alternativamente, usar, em vez disso, o valor do anfitrião - de $LC_ALL ou $LC_CTYPE. - - make menuconfig - Isso lança uma interface controlada por menu ncurses. Para - outras (gráficas) interfaces, digite make help. - - Para informação geral sobre configuração do kernel, veja-se - [620]https://www.linuxfromscratch.org/hints/downloads/files/kernel-conf - iguration.txt. O BLFS tem alguma informação relativa a exigências de - configuração do kernel particulares de pacotes que estão fora do LFS em - [621]https://www.linuxfromscratch.org/blfs/view/stable-systemd/longinde - x.html#kernel-config-index. Informação adicional sobre configurar e - construir o kernel pode ser encontrada em - [622]http://www.kroah.com/lkn/ - -Nota - - Um bom ponto de partida para configurar a configuração do kernel é - executar make defconfig. Isso configurará a configuração base para um - bom estado que leve a sua atual arquitetura de sistema em conta. - - Assegure-se de habilitar/desabilitar/configurar as seguintes - características ou o sistema poderia não funcionar corretamente ou - inicializar de forma alguma: -General setup --> - [ ] Auditing Support [CONFIG_AUDIT] - < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADE -RS] - [*] Control Group support [CONFIG_CGROUPS] ---> - [*] Memory controller [CONFIG_MEMCG] - [ ] Enable deprecated sysfs features to support old userspace tools [CONFIG_S -YSFS_DEPRECATED] - [*] Configure standard kernel features (expert users) [CONFIG_EXPERT] ---> - [*] open by fhandle syscalls [CONFIG_FHANDLE] - CPU/Task time and stats accounting ---> - [*] Pressure stall information tracking [CONFIG_PSI] -General architecture-dependent options ---> - [*] Enable seccomp to safely compute untrusted bytecode [CONFIG_SECCOMP] -Networking support ---> - Networking options ---> - <*> The IPv6 protocol [CONFIG_IPV6] -Device Drivers ---> - Firmware Drivers ---> - [*] Export DMI identification via sysfs to userspace [CONFIG_DMIID] - Graphics support ---> - Frame buffer Devices ---> - [*] Support for frame buffer devices ---- - Generic Driver Options ---> - [ ] Support for uevent helper [CONFIG_UEVENT_HELPER] - [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS] - Firmware Loader ---> - [ ] Enable the firmware sysfs fallback mechanism [CONFIG_FW_LOADER_USER_HE -LPER] -File systems ---> - [*] Inotify support for userspace [CONFIG_INOTIFY_USER] - Pseudo filesystems ---> - [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL] - -Nota - - Enquanto que "The IPv6 Protocol" não é estritamente exigido, ela é - altamente recomendada pelas(os) desenvolvedoras(es) do systemd. - -Nota - - Se seu hardware do anfitrião estiver usando UEFI e você desejar - inicializar o sistema LFS com ela, [então] você deveria ajustar alguma - configuração do kernel seguindo [623]a página do BLFS. - - A justificativa para os itens de configuração acima: - - Enable kernel headers through /sys/kernel/kheaders.tar.xz - Isso exigirá cpio ao se construir o kernel. cpio não é instalado - por LFS. - - Support for uevent helper - Ter essa opção configurada talvez interfira com o gerenciamento - de dispositivo quando se usar Udev/Eudev. - - Maintain a devtmpfs - Isso criará nós de dispositivos automatizados os quais são - povoados pelo kernel, mesmo sem o Udev executando. O Udev então - executa no topo disso, gerenciando permissões e adicionando - links simbólicos. Esse item de configuração é exigido para - todas(os) as(os) usuárias(os) do Udev/Eudev. - - Alternativamente, make oldconfig talvez seja mais apropriado em algumas - situações. Veja-se o arquivo README para mais informação. - - Se desejado, [então] pule a configuração do kernel copiando o arquivo - config do kernel, .config, a partir do sistema anfitrião (assumindo que - ele esteja disponível) para o diretório linux-5.16.9 desempacotado. - Entretanto, nós não recomendamos essa opção. Frequentemente é melhor - explorar todos os menus de configuração e criar a configuração do - kernel a partir do zero. - - Compile a imagem do kernel e módulos: -make - - Se usar módulos do kernel, [então] a configuração do módulo em - /etc/modprobe.d talvez seja exigida. Informação pertinente à - configuração de módulos e kernel está localizada na [624]Seção 9.3, - “Visão Geral do Manuseio de Dispositivos e Módulos†e na documentação - do kernel no diretório linux-5.16.9/Documentation. Também, - modprobe.d(5) talvez seja de interesse. - - A menos que o suporte de módulo tenha sido desabilitado na configuração - do kernel, instale os módulos com: -make modules_install - - Depois que a compilação do kernel estiver completa, passos adicionais - são exigidos para completar a instalação. Alguns arquivos precisam ser - copiados para o diretório /boot. - -Cuidado - - Se o sistema anfitrião tiver uma partição /boot separada, [então] os - arquivos copiados abaixo deveriam ir para lá. A maneira mais fácil de - fazer isso é vincular /boot no anfitrião (do lado de fora do chroot) à - /mnt/lfs/boot antes de prosseguir. Como a(o) usuária(o) root no sistema - anfitrião: -mount --bind /boot /mnt/lfs/boot - - O caminho para a imagem do kernel talvez varie, dependendo da - plataforma sendo usada. O nome de arquivo abaixo pode ser mudado para - se adequar ao seu gosto, porém o tronco do nome de arquivo deveria ser - vmlinuz para ser compatível com a configuração automática do processo - de inicialização descrito na próxima seção. O seguinte comando assume - uma arquitetura x86: -cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1-systemd - - System.map é um arquivo de símbolo para o kernel. Ele mapeia os pontos - de entrada de função de cada função na API do kernel, assim como os - endereços das estruturas de dados do kernel para o kernel em execução. - Ele é usado como um recurso quando se investigar problemas do kernel. - Emita o seguinte comando para instalar o arquivo de mapa: -cp -iv System.map /boot/System.map-5.16.9 - - O arquivo de configuração do kernel .config produzido pelo passo make - menuconfig acima contém todas as seleções de configuração para o kernel - que foi recém compilado. É uma boa ideia manter esse arquivo para - futura referência: -cp -iv .config /boot/config-5.16.9 - - Instale a documentação para o kernel do Linux: -install -d /usr/share/doc/linux-5.16.9 -cp -r Documentation/* /usr/share/doc/linux-5.16.9 - - É importante observar que os arquivos no diretório do fonte do kernel - não são de propriedade da(o) root. Sempre que um pacote é desempacotado - como a(o) usuária(o) root (como nós fizemos dentro do chroot), os - arquivos tem os IDs de usuária(o) e grupo do que quer que fossem no - computador da(o) empacotadora(r). Isso geralmente não é um problema - para qualquer outro pacote ser instalado, pois a árvore do fonte é - removida depois da instalação. Entretanto, a árvore do fonte do Linux - frequentemente é mantida por um longo tempo. Devido a isso, existe uma - chance de que qualquer ID de usuária(o) que a(o) empacotadora(r) usou - será atribuído para alguém na máquina. Essa pessoa então teria acesso - de escrita ao fonte do kernel. - -Nota - - Em muitos casos, a configuração do kernel precisará ser atualizada para - pacotes que serão instalados posteriormente em BLFS. Diferente de - outros pacotes, não é necessário remover a árvore do fonte do kernel - depois que o recém construído kernel for instalado. - - Se a árvore do fonte do kernel será mantida, [então] execute chown -R - 0:0 no diretório linux-5.16.9 para assegurar que todos os arquivos são - de propriedade da(o) usuária(o) root. - -Atenção - - Alguma documentação do kernel recomenda criar um link simbólico a - partir de /usr/src/linux apontando para o diretório do fonte do kernel. - Isso é específico para kernels anteriores à série 2.6 e precisa não ser - criado em um sistema LFS, uma vez que ele pode causar problemas para - pacotes que você talvez deseje construir tão logo seu sistema LFS base - esteja completo. - -Atenção - - Os cabeçalhos no diretório include do sistema (/usr/include) deveriam - sempre ser aqueles contra os quais a Glibc foi compilada, isto é, os - cabeçalhos sanitizados instalados na [625]Seção 5.4, “Cabeçalhos da API - do Linux-5.16.9â€. Portanto, eles nunca deveriam ser substituídos tanto - pelos cabeçalhos do kernel crus quanto por quaisquer outros cabeçalhos - sanitizados do kernel. - -10.3.2. Configurando a Ordem de Carregamento de Módulos do Linux - - Na maior parte do tempo, os módulos do Linux são carregados - automaticamente, porém algumas vezes precisa-se de alguma direção - específica. O aplicativo que carrega os módulos, modprobe ou insmod, - usa /etc/modprobe.d/usb.conf para esse propósito. Esse arquivo precisa - ser criado, de forma que, se os controladores do USB (ehci_hcd, - ohci_hcd e uhci_hcd) tiverem sido construídos como módulos, [então] - eles serão carregados na ordem correta; ehci_hcd precisa ser carregado - antes de ohci_hcd e uhci_hcd para evitar um aviso sendo produzido em - tempo de inicialização. - - Crie um novo arquivo /etc/modprobe.d/usb.conf executando o seguinte: -install -v -m755 -d /etc/modprobe.d -cat > /etc/modprobe.d/usb.conf << "EOF" -# Begin /etc/modprobe.d/usb.conf - -install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true -install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true - -# End /etc/modprobe.d/usb.conf -EOF - -10.3.3. Conteúdo do Linux - - Arquivos instalados: config-5.16.9, vmlinuz-5.16.9-lfs-11.1-systemd e - System.map-5.16.9 - Diretórios instalados: /lib/modules e /usr/share/doc/linux-5.16.9 - -Descrições Curtas - - config-5.16.9 - - Contém todas as seleções de configuração para o kernel - - vmlinuz-5.16.9-lfs-11.1-systemd - - O motor do sistema Linux. Quando se liga o computador, o kernel é a - primeira parte do sistema operacional que se torna carregada. Ele - detecta e inicializa todos os componentes do hardware do computador, - então torna esses componentes disponíveis como uma árvore de arquivos - para o software e transforma uma CPU individual em uma máquina - multitarefa capaz de executar dezenas de aplicativos aparentemente ao - mesmo tempo - - System.map-5.16.9 - - Uma lista de endereços e símbolos; ele mapeia os pontos de entrada e - endereços de todas as funções e estruturas de dados no kernel - -10.4. Usando o GRUB para Configurar o Processo de Inicialização - -Nota - - Se seu sistema tiver suporte UEFI e você desejar inicializar o LFS com - UEFI, [então] você deveria pular esta página, e configurar o GRUB com - suporte UEFI usando as instruções fornecidas na [626]página do BLFS. - -10.4.1. Introdução - -Atenção - - Configurar o GRUB incorretamente pode tornar seu sistema inoperável sem - um dispositivo de inicialização alternativo, como um CD-ROM ou unidade - USB inicializável. Esta seção não é exigida para inicializar seu - sistema LFS. Você talvez apenas queira modificar seu carregador de - inicialização atual, por exemplo, Grub-Legacy, GRUB2 ou LILO. - - Certifique-se de que um disco de inicialização de emergência esteja - pronto para “resgatar†o computador se o computador se tornar - inutilizável (não inicializável). Se você ainda não tem um dispositivo - de inicialização, [então] você pode criar um. Para que o procedimento - abaixo funcione, você precisa saltar para a frente para o BLFS e - instalar xorriso oriundo do pacote [627]libisoburn. -cd /tmp -grub-mkrescue --output=grub-img.iso -xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso - -10.4.2. Convenções de Nomenclatura do GRUB - - O GRUB usa estrutura de nomenclatura própria dele para unidades e - partições na forma de (hdn,m), onde n é o número da unidade rígida e m - é o número da partição. O número da unidade rígida começa do zero, - porém o número da partição inicia do um para partições normais e cinco - para partições estendidas. Observe que isso é diferente de versões - anteriores onde ambos os números começavam do zero. Por exemplo, a - partição sda1 é (hd0,1) para o GRUB e sdb3 é (hd1,3). Em contraste com - o Linux, GRUB não considera unidades de CD-ROM como unidades rígidas. - Por exemplo, se usar um CD em hdb e uma segunda unidade rígida em hdc, - [então] aquela segunda unidade rígida ainda seria (hd1). - -10.4.3. Definindo a Configuração - - O GRUB funciona escrevendo dados para a primeira trilha física do disco - rígido. Essa área não é parte de nenhum sistema de arquivos. Os - aplicativos lá acessam módulos do GRUB na partição de inicialização. O - local padrão é /boot/grub/. - - O local da partição de inicialização é uma escolha da(o) usuária(o) que - afeta a configuração. Uma recomendação é ter uma partição pequena - (tamanho sugerido é 200 MB) separada somente para informação de - inicialização. Dessa forma, cada construção, seja LFS ou alguma - distribuição comercial, pode acessar os mesmos arquivos de - inicialização e o acesso pode ser feito a partir de qualquer sistema - inicializado. Se você escolher fazer isso, [então] você precisará - montar a partição separada, mover todos os arquivos no diretório /boot - atual (por exemplo, o kernel linux que você recém construiu na seção - anterior) para a nova partição. Você precisará então desmontar a - partição e remontar ela como /boot. Se você fizer isso, [então] tenha - certeza de atualizar /etc/fstab. - - Usar a partição lfs atual também funcionará, porém a configuração para - múltiplos sistemas é mais complicada. - - Usando a informação acima, determine o designador apropriado para a - partição raiz (ou partição de inicialização, se uma separada for - usada). Para o exemplo seguinte, é assumido que a partição raiz (ou - inicialização separada) é sda2. - - Instale os arquivos do GRUB em /boot/grub e configure a trilha de - inicialização: - -Atenção - - O seguinte comando sobrescreverá o carregador de inicialização atual. - Não execute o comando de isso não for desejado, por exemplo, se usar um - gerenciador de inicialização de terceiro para gerenciar o Master Boot - Record (MBR). -grub-install /dev/sda - -Nota - - Se o sistema tiver sido inicializado usando UEFI, [então] o - grub-install tentará instalar arquivos para o alvo x86_64-efi, porém - aqueles arquivos não foram instalados no [628]Capítulo 8. Se esse for o - caso, [então] adicione --target i386-pc ao comando acima. - -10.4.4. Criando o Arquivo de Configuração do GRUB - - Gere o /boot/grub/grub.cfg: -cat > /boot/grub/grub.cfg << "EOF" -# Begin /boot/grub/grub.cfg -set default=0 -set timeout=5 - -insmod ext2 -set root=(hd0,2) - -menuentry "GNU/Linux, Linux 5.16.9-lfs-11.1-systemd" { - linux /boot/vmlinuz-5.16.9-lfs-11.1-systemd root=/dev/sda2 ro -} -EOF - -Nota - - A partir da perspectiva do GRUB, os arquivos do kernel são relativos à - partição usada. Se você usou uma partição /boot separada, [então] - remova /boot da linha linux acima. Você também precisará mudar a linha - set root para apontar para a partição de inicialização. - - O GRUB é um aplicativo extremamente poderoso e ele fornece um tremendo - número de opções para inicializar a partir de uma ampla variedade de - dispositivos, sistemas operacionais e tipos de partição. Existem também - muitas opções para personalização, tais como telas splash gráficas; - reprodução de sons; entrada de mouse; etc. Os detalhes dessas opções - estão além do escopo desta introdução. - -Cuidado - - Existe um comando, grub-mkconfig, que pode escrever um arquivo de - configuração automaticamente. Ele usa um conjunto de scripts em - /etc/grub.d/ e destruirá quaisquer personalizações que você fizer. - Esses scripts são projetados primariamente para distribuições não fonte - e não são recomendados para o LFS. Se você instalar uma distribuição do - Linux comercial, [então] existe uma boa chance de que esse aplicativo - será executado. Tenha certeza de produzir uma cópia de segurança do seu - arquivo grub.cfg. - -Capítulo 11. O Fim - -11.1. O Fim - - Muito bem! O novo sistema LFS está instalado! Nós desejamos a você - muito sucesso com seu novo e brilhante sistema Linux construído sob - medida. - - Talvez seja uma boa ideia criar um arquivo /etc/lfs-release. Tendo esse - arquivo, é muito fácil para você (e para nós se você precisar pedir por - ajuda em algum ponto) descobrir qual versão do LFS está instalada no - sistema. Crie esse arquivo executando: -echo 11.1-systemd > /etc/lfs-release - - Dois arquivos descrevendo o sistema instalado talvez sejam usados por - pacotes que podem ser instalados no sistema posteriormente, ou em forma - de binário ou construindo eles. - - O primeiro deles mostra a situação do seu novo sistema com respeito ao - Linux Standards Base (LSB). Para criar esse arquivo, execute: -cat > /etc/lsb-release << "EOF" -DISTRIB_ID="Linux From Scratch" -DISTRIB_RELEASE="11.1-systemd" -DISTRIB_CODENAME="" -DISTRIB_DESCRIPTION="Linux From Scratch" -EOF - - O segundo deles contém aproximadamente a mesma informação, e é usado - pelo systemd e alguns ambientes de área de trabalho gráficos. Para - criar esse arquivo, execute: -cat > /etc/os-release << "EOF" -NAME="Linux From Scratch" -VERSION="11.1-systemd" -ID=lfs -PRETTY_NAME="Linux From Scratch 11.1-systemd" -VERSION_CODENAME="" -EOF - - Tenha certeza de colocar algum tipo de personalização para os campos - 'DISTRIB_CODENAME' e 'VERSION_CODENAME' para tornar o sistema - unicamente seu. - -11.2. Seja Contado - - Agora que você terminou o livro, você quer ser contada(o) como uma(m) - usuária(o) do LFS? Vá para - [629]https://www.linuxfromscratch.org/cgi-bin/lfscounter.php e - registre-se como uma(m) usuária(o) do LFS fornecendo seu nome e a - primeira versão do LFS que você usou. - - Vamos reinicializar no LFS agora. - -11.3. Reinicializando o Sistema - - Agora que todo o software foi instalado, é hora de reinicializar seu - computador. Entretanto, você deveria estar ciente de umas poucas - coisas. O sistema que você criou neste livro é bastante mínimo, e - provavelmente não terá a funcionalidade que você precisaria para ser - capaz de seguir em frente. Instalando uns poucos pacotes extras a - partir do livro BLFS enquanto ainda em seu ambiente chroot atual, você - pode deixar-se em uma posição muito melhor para continuar tão logo você - reinicialize em sua nova instalação do LFS. Aqui estão algumas - sugestões: - * Um navegador de modo de texto como o [630]Lynx permitirá que você - facilmente visualize o livro BLFS em um terminal virtual, enquanto - constrói pacotes em outro. - * O pacote [631]make-ca permitirá que você configure certificados de - âncora confiáveis locais, permitindo que o sistema verifique - certificados SSL fornecidos por servidores remotos (por exemplo, um - sítio da web usando o HTTPS). - * O pacote [632]GPM permitirá que você realize ações de copiar/colar - em seus terminais virtuais. - * Instalar [633]sudo talvez seja útil para construir pacotes como - uma(m) usuária(o) não root e facilmente instalar os pacotes - resultantes em seu novo sistema. - * Se você quiser acessar seu novo sistema a partir de um sistema - remoto dentro de um ambiente GUI confortável, [então] instale - [634]openssh. - * Para tornar a obtenção de arquivos por meio da Internet mais fácil, - instale [635]wget. - * Para se conectar a um ponto de acesso sem fios para rede, instale - [636]wpa_supplicant. - * Finalmente, uma revisão dos seguintes arquivos de configuração - também é apropriada neste ponto. - + /etc/bashrc - + /etc/dircolors - + /etc/fstab - + /etc/hosts - + /etc/inputrc - + /etc/profile - + /etc/resolv.conf - + /etc/vimrc - + /root/.bash_profile - + /root/.bashrc - - Agora que nós dissemos isso, vamos em frente para inicializar nossa - brilhante e nova instalação do LFS pela primeira vez! Primeiro saia do - ambiente chroot: -logout - - Então desmonte os sistemas de arquivos virtuais: -umount -v $LFS/dev/pts -umount -v $LFS/dev -umount -v $LFS/run -umount -v $LFS/proc -umount -v $LFS/sys - - Se múltiplas partições foram criadas, [então] desmonte as outras - partições antes de desmontar a principal, como isto: -umount -v $LFS/usr -umount -v $LFS/home -umount -v $LFS - - Desmonte o próprio sistema de arquivos do LFS: -umount -v $LFS - - Agora, reinicialize o sistema com: -shutdown -r now - - Assumindo que o carregador de inicialização GRUB foi configurado como - destacado anteriormente, o menu está configurado para inicializar o LFS - 11.1-systemd automaticamente. - - Quando a reinicialização estiver completa, o sistema LFS estará pronto - para uso e mais software talvez seja adicionado para suprir suas - necessidades. - -11.4. E agora? - - Obrigado por ler este livro LFS. Nós esperamos que você tenha achado - este livro útil e tenha aprendido mais sobre o processo de criação do - sistema. - - Agora que o sistema LFS está instalado, você talvez esteja se - perguntando: “E depois?†Para responder a essa pergunta, nós compilamos - uma lista de recursos para você. - * Manutenção - Notificações de defeitos e segurança são relatadas regularmente - para todo software. Uma vez que um sistema LFS é compilado a partir - do fonte, cabe a você se manter a par de tais relatórios. Existem - vários recursos online que rastreiam tais relatórios, alguns dos - quais estão mostrados abaixo: - + [637]CERT (Computer Emergency Response Team) - O CERT tem uma lista de discussão que publica alertas de - segurança a respeito de vários sistemas operacionais e - aplicativos. Informação de assinatura está disponível em - [638]http://www.us-cert.gov/cas/signup.html. - + Bugtraq - Bugtraq é uma lista de discussão de segurança de computador de - divulgação completa. Ela publica problemas de segurança - descobertos recentemente, e ocasionalmente consertos - potenciais para eles. Informação de assinatura está disponível - em [639]http://www.securityfocus.com/archive. - * Beyond Linux From Scratch - O livro Beyond Linux From Scratch cobre procedimentos de instalação - para uma ampla gama de software além do escopo do Livro LFS. O - projeto BLFS está localizado em - [640]https://www.linuxfromscratch.org/blfs/view/stable-systemd/. - * LFS Hints - As Dicas do LFS são uma coleção de documentos educacionais - submetidos por voluntários na comunidade do LFS. As dicas estão - disponíveis em - [641]https://www.linuxfromscratch.org/hints/downloads/files/. - * Listas de discussão - Existem várias listas de discussão do LFS que você talvez assine se - você estiver necessitada(o) de ajuda; quiser se manter - atualizada(o) com os mais recentes desenvolvimentos; quiser - contribuir para o projeto; e mais. Veja-se [642]Capítulo 1 - Listas - de Discussão para mais informação. - * The Linux Documentation Project - O objetivo do The Linux Documentation Project (TLDP) é o de - colaborar em todos os problemas de documentação do Linux. O TLDP - apresenta uma grande coleção de HOWTOs, guias e páginas de manual. - Ele está localizado em [643]http://www.tldp.org/. - -Parte V. Anexos - -Apêndice A. Siglas e Termos - - ABI - - Application Binary Interface - - ALFS - - Automated Linux From Scratch - - API - - Application Programming Interface - - ASCII - - American Standard Code for Information Interchange - - BIOS - - Basic Input/Output System - - BLFS - - Beyond Linux From Scratch - - BSD - - Berkeley Software Distribution - - chroot - - change root - - CMOS - - Complementary Metal Oxide Semiconductor - - COS - - Class Of Service - - CPU - - Central Processing Unit - - CRC - - Cyclic Redundancy Check - - CVS - - Concurrent Versions System - - DHCP - - Dynamic Host Configuration Protocol - - DNS - - Domain Name Service - - EGA - - Enhanced Graphics Adapter - - ELF - - Executable and Linkable Format - - EOF - - End of File - - EQN - - equation - - ext2 - - second extended file system - - ext3 - - third extended file system - - ext4 - - fourth extended file system - - FAQ - - Frequently Asked Questions - - FHS - - Filesystem Hierarchy Standard - - FIFO - - First-In, First Out - - FQDN - - Fully Qualified Domain Name - - FTP - - File Transfer Protocol - - GB - - Gigabytes - - GCC - - GNU Compiler Collection - - GID - - Group Identifier - - GMT - - Greenwich Mean Time - - HTML - - Hypertext Markup Language - - IDE - - Integrated Drive Electronics - - IEEE - - Institute of Electrical and Electronic Engineers - - IO - - Input/Output - - IP - - Internet Protocol - - IPC - - Inter-Process Communication - - IRC - - Internet Relay Chat - - ISO - - International Organization for Standardization - - ISP - - Internet Service Provider - - KB - - Kilobytes - - LED - - Light Emitting Diode - - LFS - - Linux From Scratch - - LSB - - Linux Standard Base - - MB - - Megabytes - - MBR - - Master Boot Record - - MD5 - - Message Digest 5 - - NIC - - Network Interface Card - - NLS - - Native Language Support - - NNTP - - Network News Transport Protocol - - NPTL - - Native POSIX Threading Library - - OSS - - Open Sound System - - PCH - - Pre-Compiled Headers - - PCRE - - Perl Compatible Regular Expression - - PID - - Process Identifier - - PTY - - pseudo terminal - - QOS - - Quality Of Service - - RAM - - Random Access Memory - - RPC - - Remote Procedure Call - - RTC - - Real Time Clock - - SBU - - Standard Build Unit - - SCO - - The Santa Cruz Operation - - SHA1 - - Secure-Hash Algorithm 1 - - TLDP - - The Linux Documentation Project - - TFTP - - Trivial File Transfer Protocol - - TLS - - Thread-Local Storage - - UID - - User Identifier - - umask - - user file-creation mask - - USB - - Universal Serial Bus - - UTC - - Coordinated Universal Time - - UUID - - Universally Unique Identifier - - VC - - Virtual Console - - VGA - - Video Graphics Array - - VT - - Virtual Terminal - -Apêndice B. Reconhecimentos - - Nós gostaríamos de agradecer às seguintes pessoas e organizações por - suas contribuições para o Projeto Linux From Scratch. - * [644]Gerard Beekmans – Criador - do LFS - * [645]Bruce Dubbs – - Editor-chefe do LFS - * [646]Jim Gifford – Colíder do - Projeto CLFS - * [647]Pierre Labastie – Editor - do BLFS e Líder do ALFS - * [648]DJ Lucas – Editor do LFS e - BLFS - * [649]Ken Moffat – Editor do BLFS - * Incontáveis outras pessoas nas várias listas de discussão do LFS e - BLFS que ajudaram a tornar este livro possível dando suas - sugestões; testando o livro; e submetendo relatórios de defeitos; - instruções; e suas experiências com a instalação de vários pacotes. - -Tradutoras(es) - - * [650]Manuel Canales Esparcia – - Projeto de tradução do LFS para espanhol - * [651]Johan Lenglet – Projeto de - tradução do LFS para francês até 2008 - * [652]Jean-Philippe Mengual – - Projeto de tradução do LFS para francês 2008-2016 - * [653]Julien Lepiller – - Projeto de tradução do LFS para francês 2017-presente - * [654]Anderson Lizardo – - Projeto de tradução do LFS para português - * [655]Thomas Reitelbach – Projeto de - tradução do LFS para alemão - * [656]Anton Maisak – - Projeto de tradução do LFS para russo - * [657]Elena Shevcova – - Projeto de tradução do LFS para russo - -Mantenedoras(es) de Espelhos - -Espelhos da América do Norte - - * [658]Scott Kveton – espelho - lfs.oregonstate.edu - * [659]William Astle – espelho - ca.linuxfromscratch.org - * [660]Eujon Sellers – espelho - lfs.introspeed.com - * [661]Justin Knierim – espelho lfs-matrix.net - -Espelhos da América do Sul - - * [662]Manuel Canales Esparcia – - espelho lfsmirror.lfs-es.info - * [663]Luis Falcon – espelho torredehanoi.org - -Espelhos Europeus - - * [664]Guido Passet – espelho - nl.linuxfromscratch.org - * [665]Bastiaan Jacques – espelho - lfs.pagefault.net - * [666]Sven Cranshoff – espelho - lfs.lineo.be - * Scarlet Belgium – espelho lfs.scarlet.be - * [667]Sebastian Faulborn – espelho - lfs.aliensoft.org - * [668]Stuart Fox – espelho lfs.dontuse.ms - * [669]Ralf Uhlemann – espelho - lfs.oss-mirror.org - * [670]Antonin Sprinzl - – espelho at.linuxfromscratch.org - * [671]Fredrik Danerklint – espelho - se.linuxfromscratch.org - * [672]Franck – espelho - lfs.linuxpourtous.com - * [673]Philippe Baque – espelho lfs.cict.fr - * [674]Vitaly Chekasin – espelho - lfs.pilgrims.ru - * [675]Benjamin Heil – espelho - lfs.wankoo.org - * [676]Anton Maisak – - espelho linuxfromscratch.org.ru - -Espelhos Asiáticos - - * [677]Satit Phermsawang – espelho - lfs.phayoune.org - * [678]Shizunet Co.,Ltd. – espelho - lfs.mirror.shizu-net.jp - * [679]Init World – espelho - lfs.initworld.com - -Espelhos da Austrália - - * [680]Jason Andrade – espelho - au.linuxfromscratch.org - -Ex-membros da Equipe do Projeto - - * [681]Christine Barczak – - Editor do Livro LFS - * Archaic – Escritor/Editor Técnico do - LFS (Dicas e Patches); Líder do Projeto HLFS; Editor do BLFS; - Mantenedor do Projeto Dicas e Patches - * [682]Matthew Burgess – Líder - de Projeto do LFS; Escritor/Editor Técnico do LFS - * [683]Nathan Coulson – - Mantenedor de Scripts de Inicialização do LFS - * Timothy Bauscher - * Robert Briggs - * Ian Chilton - * [684]Jeroen Coumans – - Desenvolvedor de Sítio da Web; Mantenedor de FAQ - * [685]Manuel Canales Esparcia – - Mantenedor de XML e XSL do LFS/BLFS/HLFS - * Alex Groenewoud – Escritor Técnico do LFS - * Marc Heerdink - * [686]Jeremy Huntwork – - Escritor Técnico do LFS; Mantenedor de LiveCD do LFS - * [687]Bryan Kadzban – Escritor - Técnico do LFS - * Mark Hymers - * Seth W. Klein – Mantenedor do FAQ - * [688]Nicholas Leippe – - Mantenedor da Wiki - * [689]Anderson Lizardo – - Mantenedor de Scripts de Infraestrutura de Sítio Web - * [690]Randy McMurchy – Líder de - Projeto do BLFS; Editor do LFS - * [691]Dan Nicholson – - Editor do LFS e BLFS - * [692]Alexander E. Patrakov - – Escritor Técnico do LFS; Editor de Internacionalização do LFS; - Mantenedor de Live CD do LFS - * Simon Perreault - * [693]Scot Mc Pherson – - Mantenedor do Gateway NNTP do LFS - * [694]Douglas R. Reno – Editor - do Systemd - * [695]Ryan Oliver – Colíder de - Projeto do CLFS - * [696]Greg Schafer – Escritor - Técnico do LFS e Arquiteto do Método de Construção de Habilitação - de 64 bits de Próxima Geração - * Jesse Tie-Ten-Quee – Escritor Técnico do LFS - * [697]James Robertson – - Mantenedor do Bugzilla - * [698]Tushar Teredesai – Editor - do Livro BLFS; Líder de Projeto de Dicas e Patches - * [699]Jeremy Utley – Escritor - Técnico do LFS; Mantenedor do Bugzilla; Mantenedor de Scripts de - Inicialização do LFS - * [700]Zack Winkles – Escritor Técnico do - LFS - -Apêndice C. Dependências - - Cada pacote construído no LFS depende de um ou mais outros pacotes para - construir e instalar adequadamente. Alguns pacotes até participam em - dependências circulares, isto é, o primeiro pacote depende do segundo o - qual, na sequência, depende do primeiro. Por causa dessas dependências, - a ordem na qual pacotes são construídos no LFS é muito importante. O - propósito desta página é o de documentar as dependências de cada pacote - construído no LFS. - - Para cada pacote que é construído, existem três, e as vezes até cinco - tipos de dependências listadas abaixo. A primeira lista que outros - pacotes necessitam estar disponíveis para compilar e instalar o pacote - em questão. A segunda lista os pacotes que precisam estar disponíveis - quando quaisquer aplicativos ou bibliotecas oriundos do pacote forem - usados em tempo de execução. A terceira lista que pacotes, em adição - àqueles na primeira lista, necessitam estar disponíveis para executar - as suítes de teste. A quarta lista de dependências são pacotes que - exigem que esse pacote esteja construído e instalado no local final - dele antes que eles sejam construídos e instalados. Na maioria dos - casos, isso é porque esses pacotes codificarão rigidamente caminhos - para binários dentro dos scripts deles. Se não for construído em uma - certa ordem, [então] isso poderia resultar em caminhos como - /tools/bin/[binário] sendo colocados dentro de scripts instalados para - o sistema final. Isso obviamente não é desejável. - - A última lista de dependências são pacotes opcionais que não são - endereçados no LFS, porém poderiam ser úteis para a(o) usuária(o). - Esses pacotes talvez tenham dependências obrigatórias ou opcionais - adicionais deles próprios. Para essas dependências, a prática - recomendada é a de instalá-las depois de completar o livro LFS e então - voltar e reconstruir o pacote LFS. Em muitos casos, a reinstalação é - endereçada no BLFS. - -Acl - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Gettext, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Attr e Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Coreutils, Sed, Tar e Vim - Dependências opcionais: Nenhuma - -Attr - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Automake, Diffutils, Findutils e Libtool - Precisa ser instalado antes de: Acl e Libcap - Dependências opcionais: Nenhuma - -Autoconf - - Instalação depende de: Bash, Coreutils, Grep, M4, Make, Perl, Sed e - Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Make, Sed e - Texinfo - Suíte de teste depende de: Automake, Diffutils, Findutils, GCC e - Libtool - Precisa ser instalado antes de: Automake - Dependências opcionais: [701]Emacs - -Automake - - Instalação depende de: Autoconf, Bash, Coreutils, Gettext, Grep, M4, - Make, Perl, Sed e Texinfo - Exigido em tempo de execução: Bash, Coreutils, Grep, M4, Sed e Texinfo - Suíte de teste depende de: Binutils, Bison, Bzip2, DejaGNU, Diffutils, - Expect, Findutils, Flex, GCC, Gettext, Gzip, Libtool e Tar - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Bash - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [702]Xorg - -Bc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep e - Make - Exigido em tempo de execução: Glibc, Ncurses e Readline - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Linux - Dependências opcionais: Nenhuma - -Binutils - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, File, - Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo e Zlib - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: DejaGNU e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [703]Elfutils - -Bison - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Perl e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, Findutils e Flex - Precisa ser instalado antes de: Kbd e Tar - Dependências opcionais: [704]Doxygen - -Bzip2 - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File - Dependências opcionais: Nenhuma - -Check - - Instalação depende de: Gawk, GCC, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Gawk - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Coreutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Libcap, Make, OpenSSL, Patch, Perl, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Diffutils, E2fsprogs, Findutils, Shadow e - Util-linux - Precisa ser instalado antes de: Bash, Diffutils, Eudev, Findutils e - Man-DB - Dependências opcionais: [705]Expect.pm e [706]IO::Tty - -DejaGNU - - Instalação depende de: Bash, Coreutils, Diffutils, Expect, GCC, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Expect e Bash - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Diffutils - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Gettext, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -E2fsprogs - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Gzip, Make, Sed, Texinfo e Util-linux - Exigido em tempo de execução: Glibc e Util-linux - Suíte de teste depende de: Procps-ng e Psmisc - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Eudev - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Gperf, Make, Sed e Util-linux - Exigido em tempo de execução: Glibc, Kmod, Xz, Util-linux e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Expat - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Python e XML::Parser - Dependências opcionais: Nenhuma - -Expect - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Patch, Sed e Tcl - Exigido em tempo de execução: Glibc e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [707]Tk - -File - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Diffutils, - Gawk, GCC, Glibc, Grep, Make, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Bzip2, Xz e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [708]libseccomp - -Findutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: DejaGNU, Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Flex - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, M4, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e M4 - Suíte de teste depende de: Bison e Gawk - Precisa ser instalado antes de: Binutils, IProute2, Kbd, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Gawk - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - GMP, Grep, Make, MPFR, Patch, Readline, Sed e Texinfo - Exigido em tempo de execução: Bash, Glibc e Mpfr - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [709]libsigsegv - -GCC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Findutils, - Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, - Sed, Tar, Texinfo e Zstd - Exigido em tempo de execução: Bash, Binutils, Glibc, Mpc e Python - Suíte de teste depende de: DejaGNU, Expect e Shadow - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [710]GNAT e [711]ISL - -GDBM - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Grep, - Make e Sed - Exigido em tempo de execução: Bash, Glibc e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gettext - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Sed e Texinfo - Exigido em tempo de execução: Acl, Bash, Gcc e Glibc - Suíte de teste depende de: Diffutils, Perl e Tcl - Precisa ser instalado antes de: Automake e Bison - Dependências opcionais: Nenhuma - -Glibc - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - Gawk, GCC, Gettext, Grep, Gzip, Cabeçalhos da API do Linux, Make, Perl, - Python, Sed e Texinfo - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: File - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -GMP - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, M4, Make, Sed e Texinfo - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: MPFR e GCC - Dependências opcionais: Nenhuma - -Gperf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Diffutils e Expect - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Grep - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Gettext, Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Gawk - Precisa ser instalado antes de: Man-DB - Dependências opcionais: [712]PCRE e [713]libsigsegv - -Groff - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Gawk, GCC, - Glibc, Grep, Make, Patch, Sed e Texinfo - Exigido em tempo de execução: GCC, Glibc e Perl - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Man-DB e Perl - Dependências opcionais: [714]ghostscript e [715]Uchardet - -GRUB - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Diffutils, - GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Texinfo e Xz - Exigido em tempo de execução: Bash, GCC, Gettext, Glibc, Xz e Sed - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Gzip - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils e Less - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Iana-Etc - - Instalação depende de: Coreutils - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Perl - Dependências opcionais: Nenhuma - -Inetutils - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Ncurses, Patch, Sed, Texinfo e Zlib - Exigido em tempo de execução: GCC, Glibc, Ncurses e Readline - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Tar - Dependências opcionais: Nenhuma - -Intltool - - Instalação depende de: Bash, Gawk, Glibc, Make, Perl, Sed e XML::Parser - Exigido em tempo de execução: Autoconf, Automake, Bash, Glibc, Grep, - Perl e Sed - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -IProute2 - - Instalação depende de: Bash, Bison, Coreutils, Flex, GCC, Glibc, Make, - Libcap, Libelf, Cabeçalhos da API do Linux e Zlib - Exigido em tempo de execução: Bash, Coreutils, Glibc, Libcap, Libelf e - Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [716]Berkeley DB e [717]iptables - -Jinja2 - - Instalação depende de: MarkupSafe e Python - Exigido em tempo de execução: MarkupSafe e Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -Kbd - - Instalação depende de: Bash, Binutils, Bison, Check, Coreutils, Flex, - GCC, Gettext, Glibc, Gzip, Make, Patch e Sed - Exigido em tempo de execução: Bash, Coreutils e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Kmod - - Instalação depende de: Bash, Binutils, Bison, Coreutils, Flex, GCC, - Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz e Zlib - Exigido em tempo de execução: Glibc, Xz e Zlib - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Eudev - Dependências opcionais: Nenhuma - -Less - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Gzip - Dependências opcionais: [718]PCRE - -Libcap - - Instalação depende de: Attr, Bash, Binutils, Coreutils, GCC, Glibc, - Perl, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Shadow - Dependências opcionais: [719]Linux-PAM - -Libelf - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc e Make - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: IProute2 e Linux - Dependências opcionais: Nenhuma - -Libffi - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGnu - Precisa ser instalado antes de: Python - Dependências opcionais: Nenhuma - -Libpipeline - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Check - Precisa ser instalado antes de: Man-DB - Dependências opcionais: Nenhuma - -Libtool - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Autoconf, Automake, Bash, Binutils, - Coreutils, File, GCC, Glibc, Grep, Make e Sed - Suíte de teste depende de: Autoconf, Automake e Findutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Linux - - Instalação depende de: Bash, Bc, Binutils, Coreutils, Diffutils, - Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf, Make, Ncurses, - OpenSSL, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [720]cpio - -Cabeçalhos da API do Linux - - Instalação depende de: Bash, Binutils, Coreutils, Findutils, GCC, - Glibc, Grep, Gzip, Make, Perl e Sed - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -M4 - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make, Sed e Texinfo - Exigido em tempo de execução: Bash e Glibc - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Autoconf e Bison - Dependências opcionais: [721]libsigsegv - -Make - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Perl e Procps-ng - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [722]Guile - -Man-DB - - Instalação depende de: Bash, Binutils, Bzip2, Coreutils, Flex, GCC, - GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, Libpipeline, Make, Sed e - Xz - Exigido em tempo de execução: Bash, GDBM, Groff, Glibc, Gzip, Less, - Libpipeline e Zlib - Suíte de teste depende de: Util-linux - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [723]libseccomp - -Man-Pages - - Instalação depende de: Bash, Coreutils e Make - Exigido em tempo de execução: Nenhuma - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -MarkupSafe - - Instalação depende de: Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Jinja2 - Dependências opcionais: Nenhuma - -Meson - - Instalação depende de: Ninja e Python - Exigido em tempo de execução: Python - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Systemd - Dependências opcionais: Nenhuma - -MPC - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, MPFR, Sed e Texinfo - Exigido em tempo de execução: Glibc, GMP e MPFR - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC - Dependências opcionais: Nenhuma - -MPFR - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, GMP, Make, Sed e Texinfo - Exigido em tempo de execução: Glibc e GMP - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Gawk e GCC - Dependências opcionais: Nenhuma - -Ncurses - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, - Glibc, Grep, Make, Patch e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash, GRUB, Inetutils, Less, Procps-ng, - Psmisc, Readline, Texinfo, Util-linux e Vim - Dependências opcionais: Nenhuma - -Ninja - - Instalação depende de: Binutils, Coreutils, GCC e Python - Exigido em tempo de execução: GCC e Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Meson - Dependências opcionais: [724]Asciidoc, [725]Doxygen, [726]Emacs e - [727]re2c - -OpenSSL - - Instalação depende de: Binutils, Coreutils, GCC, Make e Perl - Exigido em tempo de execução: Glibc e Perl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Coreutils, Kmod e Linux - Dependências opcionais: Nenhuma - -Patch - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Grep, - Make e Sed - Exigido em tempo de execução: Glibc e Patch - Suíte de teste depende de: Diffutils - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [728]Ed - -Perl - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, GDBM, - Glibc, Grep, Groff, Make, Sed e Zlib - Exigido em tempo de execução: GDBM e Glibc - Suíte de teste depende de: Iana-Etc, Less e Procps-ng - Precisa ser instalado antes de: Autoconf - Dependências opcionais: [729]Berkeley DB - -Pkg-config - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Popt e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Kmod - Dependências opcionais: [730]Glib2 - -Procps-ng - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Ncurses - Exigido em tempo de execução: Glibc - Suíte de teste depende de: DejaGNU - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Psmisc - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Python - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Gdbm, - Gettext, Glibc, Grep, Libffi, Make, Ncurses, OpenSSL, Sed e Util-linux - Exigido em tempo de execução: Bzip2, Expat, Gdbm, Glibc, Libffi, - Ncurses, OpenSSL e Zlib - Suíte de teste depende de: GDB e Valgrind - Precisa ser instalado antes de: Ninja - Dependências opcionais: [731]Berkeley DB, [732]libnsl, [733]SQLite e - [734]Tk - -Readline - - Instalação depende de: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, - Grep, Make, Ncurses, Patch, Sed e Texinfo - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Bash e Gawk - Dependências opcionais: Nenhuma - -Sed - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr e Glibc - Suíte de teste depende de: Diffutils e Gawk - Precisa ser instalado antes de: E2fsprogs, File, Libtool e Shadow - Dependências opcionais: Nenhuma - -Shadow - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Coreutils - Dependências opcionais: [735]CrackLib e [736]Linux-PAM - -Sysklogd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Patch - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Systemd - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - Expat, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap, Meson, Sed, - Util-linux e Zstd - Exigido em tempo de execução: Acl, Attr, Glibc, Libcap e Util-linux - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [737]btrfs-progs, [738]cURL, [739]cryptsetup, - [740]docbook-xml, [741]docbook-xsl-nons, [742]elfutils, [743]Git, - [744]gnu-efi, [745]GnuTLS, [746]iptables, [747]kexec-tools, - [748]libfido2, [749]libgcrypt, [750]libidn2, [751]Libmicrohttpd, - [752]libpwquality, [753]libseccomp, [754]libxkbcommon, [755]libxslt, - [756]Linux-PAM, [757]lxml, [758]LZ4, [759]make-ca, [760]p11-kit, - [761]PCRE2, [762]Polkit, [763]qemu, [764]qrencode, [765]quota-tools, - [766]rsync, [767]Sphinx, [768]tpm2-tss, [769]Valgrind e [770]zsh - -Sysvinit - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Make e Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma suíte de teste disponível - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tar - - Instalação depende de: Acl, Attr, Bash, Binutils, Bison, Coreutils, - GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed e Texinfo - Exigido em tempo de execução: Acl, Attr, Bzip2, Glibc, Gzip e Xz - Suíte de teste depende de: Autoconf, Diffutils, Findutils, Gawk e Gzip - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Tcl - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, - Glibc, Grep, Make e Sed - Exigido em tempo de execução: Glibc e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Texinfo - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, - Grep, Make, Ncurses, Patch e Sed - Exigido em tempo de execução: Glibc e Ncurses - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: Nenhuma - -Util-linux - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, Eudev, - Findutils, Gawk, GCC, Gettext, Glibc, Grep, Libcap, Make, Ncurses, Sed - e Zlib - Exigido em tempo de execução: Glibc, Libcap, Ncurses, Readline e Zlib - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [771]Linux-PAM e [772]smartmontools - -Vim - - Instalação depende de: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, - GCC, Glibc, Grep, Make, Ncurses e Sed - Exigido em tempo de execução: Acl, Attr, Glibc, Python, Ncurses e Tcl - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Nenhuma - Dependências opcionais: [773]Xorg, [774]GTK+2, [775]LessTif, [776]Ruby - e [777]GPM - -XML::Parser - - Instalação depende de: Bash, Binutils, Coreutils, Expat, GCC, Glibc, - Make e Perl - Exigido em tempo de execução: Expat, Glibc e Perl - Suíte de teste depende de: Perl - Precisa ser instalado antes de: Intltool - Dependências opcionais: Nenhuma - -Xz - - Instalação depende de: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc - e Make - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: Eudev, File, GRUB, Kmod e Man-DB - Dependências opcionais: Nenhuma - -Zlib - - Instalação depende de: Bash, Binutils, Coreutils, GCC, Glibc, Make e - Sed - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: File, Kmod, Perl e Util-linux - Dependências opcionais: Nenhuma - -Zstd - - Instalação depende de: Binutils, Coreutils, GCC, Glibc, Gzip, Make e Xz - Exigido em tempo de execução: Glibc - Suíte de teste depende de: Nenhuma - Precisa ser instalado antes de: GCC e Systemd - Dependências opcionais: [778]LZ4 - -Apêndice D. Licenças do LFS - - Este livro [escrito originalmente em inglês] está licenciado sob a - licença da Creative Commons Attribution-NonCommercial-ShareAlike 2.0. - - A "versão modificada" do livro (traduzida para o idioma português - escrito e falado no Brasil) ("Obra derivada") está licenciada sob a - Licença de Documentação Livre GNU, versão 1.3 ou qualquer versão - posterior publicada pela Free Software Foundation. - - As instruções de computador tem permissão para serem extraídas a partir - do livro sob a Licença do MIT. - -D.1. Licença da Creative Commons - - Creative Commons Legal Code - - Atribuição - Uso não-Comercial - Compartilhamento pela mesma licença - 2.0 - -Importante - - A INSTITUIÇÃO CREATIVE COMMONS NÃO É UM ESCRITÓRIO DE ADVOCACIA E NÃO - PRESTA SERVIÇOS JURÃDICOS. A DISTRIBUIÇÃO DESTA LICENÇA NÃO ESTABELECE - QUALQUER RELAÇÃO ADVOCATÃCIA. O CREATIVE COMMONS DISPONIBILIZA ESTA - INFORMAÇÃO "NO ESTADO EM QUE SE ENCONTRA". O CREATIVE COMMONS NÃO FAZ - QUALQUER GARANTIA QUANTO ÀS INFORMAÇÕES DISPONIBILIZADAS E SE EXONERA - DE QUALQUER RESPONSABILIDADE POR DANOS RESULTANTES DO SEU USO. - - Licença - - A OBRA (CONFORME DEFINIDA ABAIXO) É DISPONIBILIZADA DE ACORDO COM OS - TERMOS DESTA LICENÇA PÚBLICA CREATIVE COMMONS ("CCPL" OU "LICENÇA"). A - OBRA É PROTEGIDA POR DIREITO AUTORAL E/OU OUTRAS LEIS APLICÃVEIS. - QUALQUER USO DA OBRA QUE NÃO O AUTORIZADO SOB ESTA LICENÇA OU PELA - LEGISLAÇÃO AUTORAL É PROIBIDO. - - AO EXERCER QUAISQUER DOS DIREITOS À OBRA AQUI CONCEDIDOS, VOCÊ ACEITA E - CONCORDA FICAR OBRIGADO NOS TERMOS DESTA LICENÇA. O LICENCIANTE CONCEDE - A VOCÊ OS DIREITOS AQUI CONTIDOS EM CONTRAPARTIDA À SUA ACEITAÇÃO - DESTES TERMOS E CONDIÇÕES. - 1. Definições - 1. "Obra Coletiva" significa uma obra, tal como uma edição - periódica, antologia ou enciclopédia, na qual a Obra em sua - totalidade e de forma inalterada, em conjunto com um número de - outras contribuições, constituindo obras independentes e - separadas em si mesmas, são agregadas em um trabalho coletivo. - Uma obra que constitua uma Obra Coletiva não será considerada - Obra Derivada (conforme definido abaixo) para os propósitos - desta licença. - 2. "Obra Derivada" significa uma obra baseada sobre a Obra ou - sobre a Obra e outras obras pré-existentes, tal como uma - tradução, arranjo musical, dramatização, romantização, versão - de filme, gravação de som, reprodução de obra artística, - resumo, condensação ou qualquer outra forma na qual a Obra - possa ser refeita, transformada ou adaptada, com a exceção de - que uma obra que constitua uma Obra Coletiva não será - considerada Obra Derivada para fins desta licença. Para evitar - dúvidas, quando a Obra for uma composição musical ou gravação - de som, a sincronização da Obra em relação cronometrada com - uma imagem em movimento (“synchingâ€) será considerada uma Obra - Derivada para os propósitos desta licença. - 3. "Licenciante" significa a pessoa física ou a jurídica que - oferece a Obra sob os termos desta licença. - 4. "Autor Original" significa a pessoa física ou jurídica que - criou a Obra. - 5. "Obra" significa a obra autoral, passível de proteção pelo - direito autoral, oferecida sob os termos desta licença. - 6. "Você" significa a pessoa física ou jurídica exercendo - direitos sob esta Licença que não tenha previamente violado os - termos desta Licença com relação à Obra, ou que tenha recebido - permissão expressa do Licenciante para exercer direitos sob - esta Licença apesar de uma violação prévia. - 7. "Elementos da Licença" significa os principais atributos da - licença correspondente, conforme escolhidos pelo licenciante e - indicados no título desta licença: Atribuição, - Compartilhamento pela Mesma Licença. - 2. Direitos de Uso Legítimo. Nada nesta licença deve ser interpretado - de modo a reduzir, limitar ou restringir quaisquer direitos - relativos ao uso legítimo, ou outras limitações sobre os direitos - exclusivos do titular de direitos autorais sob a legislação autoral - ou quaisquer outras leis aplicáveis. - 3. Concessão da Licença. O Licenciante concede a Você uma licença de - abrangência mundial, sem royalties, não-exclusiva, perpétua (pela - duração do direito autoral aplicável), sujeita aos termos e - condições desta Licença, para exercer os direitos sobre a Obra - definidos abaixo: - 1. reproduzir a Obra, incorporar a Obra em uma ou mais Obras - Coletivas e reproduzir a Obra quando incorporada em Obra - Coletiva; - 2. criar e reproduzir Obras Derivadas; - 3. distribuir cópias ou gravações da Obra, exibir publicamente, - executar publicamente e executar publicamente por meio de uma - transmissão de áudio digital a Obra, inclusive quando - incorporada em Obras Coletivas; - 4. distribuir cópias ou gravações de Obras Derivadas, exibir - publicamente, executar publicamente e executar publicamente - por meio de uma transmissão digital de áudio Obras Derivadas. - Os direitos acima podem ser exercidos em todas as mídias e - formatos, independente de serem conhecidos agora ou concebidos - posteriormente. Os direitos acima incluem o direito de fazer - modificações que forem tecnicamente necessárias para exercer os - direitos em outras mídias, meios e formatos. Todos os direitos não - concedidos expressamente pelo Licenciante ficam aqui reservados, - incluindo, mas não se limitando, os direitos definidos nas Seções - 4(e) e 4(f). - 4. Restrições. A licença concedida na Seção 3 acima está expressamente - sujeita e limitada aos seguintes termos: - 1. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais a - Obra apenas sob os termos desta Licença, e Você deve incluir - uma cópia desta licença, ou o Identificador Uniformizado de - Recursos (Uniform Resource Identifier) para esta Licença, com - cada cópia ou gravação da Obra que Você distribuir, exibir - publicamente, executar publicamente, ou executar publicamente - por meios digitais. Você não poderá oferecer ou impor - quaisquer termos sobre a Obra que alterem ou restrinjam os - termos desta Licença ou o exercício dos direitos aqui - concedidos aos destinatários. Você não poderá sub-licenciar a - Obra. Você deverá manter intactas todas as informações que se - referem a esta Licença e à exclusão de garantias. Você não - pode distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais a Obra com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra enquanto incorporada em uma - Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - Se Você criar uma Obra Coletiva, em havendo notificação de - qualquer Licenciante, Você deve, na medida do razoável, - remover da Obra Coletiva qualquer referência a este - Licenciante ou Autor Original, conforme solicitado. Se você - criar uma Obra Derivada, em havendo notificação de qualquer - Licenciante, Você deve, na medida do razoável, remover da Obra - Derivada qualquer referência a este Licenciante ou ao Autor - Original, conforme solicitado. - 2. Você pode distribuir, exibir publicamente, executar - publicamente ou executar publicamente por meios digitais uma - Obra Derivada somente sob os termos desta Licença, ou de uma - versão posterior desta licença com os mesmos Elementos da - Licença desta licença, ou de uma licença do internacional do - Creative Commons (iCommons) que contenha os mesmos Elementos - da Licença desta Licença (por exemplo, Atribuição, Uso Não - Comercial, Compartilhamento pela Mesma Licença Japão). Você - deve incluir uma cópia desta licença ou de outra licença - especificada na sentença anterior, ou o Identificador - Uniformizado de Recursos (Uniform Resource Identifier) para - esta licença ou de outra licença especificada na sentença - anterior, com cada cópia ou gravação de cada Obra Derivada que - Você distribuir, exibir publicamente, executar publicamente ou - executar publicamente por meios digitais. Você não poderá - oferecer ou impor quaisquer termos sobre a Obra Derivada que - alterem ou restrinjam os termos desta Licença ou o exercício - dos direitos aqui concedidos aos destinatários, e Você deverá - manter intactas todas as informações que se refiram a esta - Licença e à exclusão de garantias. Você não poderá distribuir, - exibir publicamente, executar publicamente ou executar - publicamente por meios digitais a Obra Derivada com qualquer - medida tecnológica que controle o acesso ou o uso da Obra de - maneira inconsistente com os termos deste Acordo de Licença. O - disposto acima se aplica à Obra Derivada quando incorporada em - uma Obra Coletiva, mas isto não requer que a Obra Coletiva, à - parte da Obra em si, esteja sujeita aos termos desta Licença. - 3. Você não poderá exercer nenhum dos direitos acima concedidos a - Você na Seção 3 de qualquer maneira que seja predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. A troca da Obra por outros - materiais protegidos por direito autoral através de - compartilhamento digital de arquivos ou de outras formas não - deverá ser considerada como intencionada ou direcionada à - obtenção de vantagens comerciais ou compensação monetária - privada, desde que não haja pagamento de nenhuma compensação - monetária com relação à troca de obras protegidas por direito - de autor. - 4. Se Você distribuir, exibir publicamente, executar publicamente - ou executar publicamente por meios digitais a Obra ou qualquer - Obra Derivada ou Obra Coletiva, Você deve manter intactas - todas as informações relativas a direitos autorais sobre a - Obra e atribuir ao Autor Original crédito razoável com relação - ao meio ou mídia que Você está utilizando, através da - veiculação do nome (ou pseudônimo, se for o caso) do Autor - Original, se fornecido; o título da Obra, se fornecido; na - medida do razoável, o Identificador Uniformizado de Recursos - (URI) que o Licenciante especificar para estar associado à - Obra, se houver, exceto se o URI não se referir ao aviso de - direitos autorais ou à informação sobre o regime de - licenciamento da Obra; e no caso de Obra Derivada, crédito - identificando o uso da Obra na Obra Derivada (exemplo: - "Tradução Francesa da Obra de Autor Original", ou "Roteiro - baseado na Obra original de Autor Original"). Tal crédito pode - ser implementado de qualquer forma razoável; entretanto, no - caso de Obra Derivada ou Obra Coletiva, este crédito aparecerá - no mínimo onde qualquer outro crédito comparável de autoria - aparece e de modo ao menos tão proeminente quanto este outro - crédito de autoria comparável. - 5. De modo a tornar claras estas disposições, quando uma Obra for - uma composição musical: - 1. Royalties e execução pública. O Licenciante reserva o seu - direito exclusivo de coletar, seja individualmente ou - através de entidades coletoras de direitos de execução - (por exemplo, ECAD, ASCAP, BMI, SESAC), o valor dos seus - direitos autorais pela execução pública da obra ou - execução pública digital (por exemplo, webcasting) da - Obra se esta execução for predominantemente intencionada - ou direcionada à obtenção de vantagem comercial ou - compensação monetária privada. - 2. Royalties e Direitos fonomecânicos. O Licenciante reserva - o seu direito exclusivo de coletar, seja individualmente - ou através de uma entidade designada como seu agente (por - exemplo, a agência Harry Fox), royalties relativos a - quaisquer gravações que Você criar da Obra (por exemplo, - uma versão “coverâ€) e distribuir, conforme as disposições - aplicáveis de direito autoral, se a distribuição feita - por Você de versão “cover†for predominantemente - intencionada ou direcionada à obtenção de vantagem - comercial ou compensação monetária privada. - 6. Direitos de Execução Digital pela Internet (Webcasting) e - royalties. De modo a evitar dúvidas, quando a Obra for uma - gravação de som, o Licenciante reserva o seu direito exclusivo - de coletar, seja individualmente ou através de entidades - coletoras de direitos de execução (por exemplo, SoundExchange - ou ECAD), royalties e direitos autorais pela execução digital - pública (por exemplo, Webcasting) da Obra, conforme as - disposições aplicáveis de direito autoral, se a execução - digital pública feita por Você for predominantemente - intencionada ou direcionada à obtenção de vantagem comercial - ou compensação monetária privada. - 5. Declarações, Garantias e Exoneração - EXCETO QUANDO FOR DE OUTRA FORMA MUTUAMENTE ACORDADO PELAS PARTES - POR ESCRITO, O LICENCIANTE OFERECE A OBRA “NO ESTADO EM QUE SE - ENCONTRA†(AS IS) E NÃO PRESTA QUAISQUER GARANTIAS OU DECLARAÇÕES - DE QUALQUER ESPÉCIE RELATIVAS À OBRA, SEJAM ELAS EXPRESSAS OU - IMPLÃCITAS, DECORRENTES DA LEI OU QUAISQUER OUTRAS, INCLUINDO, SEM - LIMITAÇÃO, QUAISQUER GARANTIAS SOBRE A TITULARIDADE DA OBRA, - ADEQUAÇÃO PARA QUAISQUER PROPÓSITOS, NÃO-VIOLAÇÃO DE DIREITOS, OU - INEXISTÊNCIA DE QUAISQUER DEFEITOS LATENTES, ACURACIDADE, PRESENÇA - OU AUSÊNCIA DE ERROS, SEJAM ELES APARENTES OU OCULTOS. EM - JURISDIÇÕES QUE NÃO ACEITEM A EXCLUSÃO DE GARANTIAS IMPLÃCITAS, - ESTAS EXCLUSÕES PODEM NÃO SE APLICAR A VOCÊ. - 6. Limitação de Responsabilidade. EXCETO NA EXTENSÃO EXIGIDA PELA LEI - APLICÃVEL, EM NENHUMA CIRCUNSTÂNCIA O LICENCIANTE SERà RESPONSÃVEL - PARA COM VOCÊ POR QUAISQUER DANOS, ESPECIAIS, INCIDENTAIS, - CONSEQUENCIAIS, PUNITIVOS OU EXEMPLARES, ORIUNDOS DESTA LICENÇA OU - DO USO DA OBRA, MESMO QUE O LICENCIANTE TENHA SIDO AVISADO SOBRE A - POSSIBILIDADE DE TAIS DANOS. - 7. Terminação - 1. Esta Licença e os direitos aqui concedidos terminarão - automaticamente no caso de qualquer violação dos termos desta - Licença por Você. Pessoas físicas ou jurídicas que tenham - recebido Obras Derivadas ou Obras Coletivas de Você sob esta - Licença, entretanto, não terão suas licenças terminadas desde - que tais pessoas físicas ou jurídicas permaneçam em total - cumprimento com essas licenças. As Seções 1, 2, 5, 6, 7 e 8 - subsistirão a qualquer terminação desta Licença. - 2. Sujeito aos termos e condições dispostos acima, a licença aqui - concedida é perpétua (pela duração do direito autoral - aplicável à Obra). Não obstante o disposto acima, o - Licenciante reserva-se o direito de difundir a Obra sob termos - diferentes de licença ou de cessar a distribuição da Obra a - qualquer momento; desde que, no entanto, quaisquer destas - ações não sirvam como meio de retratação desta Licença (ou de - qualquer outra licença que tenha sido concedida sob os termos - desta Licença, ou que deva ser concedida sob os termos desta - Licença) e esta Licença continuará válida e eficaz a não ser - que seja terminada de acordo com o disposto acima. - 8. Outras Disposições - 1. Cada vez que Você distribuir ou executar publicamente por - meios digitais a Obra ou uma Obra Coletiva, o Licenciante - oferece ao destinatário uma licença da Obra nos mesmos termos - e condições que a licença concedida a Você sob esta Licença. - 2. Cada vez que Você distribuir ou executar publicamente por - meios digitais uma Obra Derivada, o Licenciante oferece ao - destinatário uma licença à Obra original nos mesmos termos e - condições que foram concedidos a Você sob esta Licença. - 3. Se qualquer disposição desta Licença for tida como inválida ou - não-executável sob a lei aplicável, isto não afetará a - validade ou a possibilidade de execução do restante dos termos - desta Licença e, sem a necessidade de qualquer ação adicional - das partes deste acordo, tal disposição será reformada na - mínima extensão necessária para tal disposição tornar-se - válida e executável. - 4. Nenhum termo ou disposição desta Licença será considerado - renunciado e nenhuma violação será considerada consentida, a - não ser que tal renúncia ou consentimento seja feito por - escrito e assinado pela parte que será afetada por tal - renúncia ou consentimento. - 5. Esta Licença representa o acordo integral entre as partes com - respeito à Obra aqui licenciada. Não há entendimentos, acordos - ou declarações relativas à Obra que não estejam especificadas - aqui. O Licenciante não será obrigado por nenhuma disposição - adicional que possa aparecer em quaisquer comunicações - provenientes de Você. Esta Licença não pode ser modificada sem - o mútuo acordo, por escrito, entre o Licenciante e Você. - -Importante - - O Creative Commons não é uma parte desta Licença e não presta qualquer - garantia relacionada à Obra. O Creative Commons não será responsável - perante Você ou qualquer outra parte por quaisquer danos, incluindo, - sem limitação, danos gerais, especiais, incidentais ou consequentes, - originados com relação a esta licença. Não obstante as duas frases - anteriores, se o Creative Commons tiver expressamente se identificado - como o Licenciante, ele deverá ter todos os direitos e obrigações do - Licenciante. - - Exceto para o propósito delimitado de indicar ao público que a Obra é - licenciada sob a CCPL (Licença Pública Creative Commons), nenhuma parte - deverá utilizar a marca "Creative Commons" ou qualquer outra marca ou - logo relacionado ao Creative Commons sem consentimento prévio e por - escrito do Creative Commons. Qualquer uso permitido deverá ser de - acordo com as diretrizes do Creative Commons de utilização da marca - então válidas, conforme sejam publicadas em seu website ou de outro - modo disponibilizadas periodicamente mediante solicitação. - - O Creative Commons pode ser contactado pelo endereço: - [779]http://creativecommons.org/. - -D.2. A Licença do MIT - - Direitos autorais © 1999-2022 Gerard Beekmans - - Permissão é aqui concedida, gratuitamente, para qualquer pessoa que - obtenha uma cópia deste software e arquivos de documentação associados - (o "Software"), para lidar com o Software sem restrição, incluindo, sem - limitação, os direitos para usar, copiar, modificar, mesclar, publicar, - distribuir, sublicenciar, e (ou) vender cópias do Software, e para - permitir para as pessoas para quem o Software é fornecido para fazer o - mesmo, sujeito às seguintes condições: - - O aviso de direitos autorais acima e este aviso de permissão deveria - ser incluído em todas as cópias ou porções substanciais do Software. - - O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE ENCONTRAâ€, SEM GARANTIAS DE - QUALQUER ESPÉCIE, EXPLÃCITAS OU IMPLÃCITAS, INCLUINDO, PORÉM NÃO - LIMITADA A, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM - PROPÓSITO PARTICULAR E NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS - AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÃVEIS POR - QUAISQUER ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO - DE CONTRATO, ATO ILÃCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM - CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE. - -D.3. A Licença de Documentação Livre GNU - - Direitos autorais © 1999-2022 Jamenson Espindula - - Versão 1.3, 03 de novembro de 2008 - - Direitos autorais © 2000, 2001, 2002, 2007, 2008 Free Software - Foundation, Inc. http://fsf.org/ - - A qualquer pessoa é permitido copiar e distribuir cópias literais deste - documento de licença, porém modificá-lo não é permitido. - 1. PREÂMBULO - O propósito desta licença é tornar um manual, livro de texto, ou - outro documento funcional e útil livre no sentido da liberdade: - para assegurar a qualquer pessoa a liberdade efetiva para copiar e - redistribuí-lo, com ou sem modificações, ambos comercialmente ou - não comercialmente. Secundariamente, esta Licença preserva para o - autor e editor uma maneira de obter crédito pelos seus trabalhos, - ao mesmo tempo não sendo considerado responsável por modificações - feitas por outros. Esta Licença é uma espécie de “copyleft†- (“esquerdos autoraisâ€), o que significa que trabalhos derivados do - documento devem necessariamente eles mesmos serem livres no mesmo - sentido. Ela complementa a Licença Pública Geral GNU, a qual é uma - licença de esquerdos autorais projetada para software livre. Nós - projetamos esta Licença para utilizá-la para manuais para software - livre, porque software livre precisa de documentação livre: um - programa livre deveria vir com manuais provendo as mesmas - liberdades que o software provê. Porém esta Licença não é limitada - a manuais de software; ela pode ser utilizada para qualquer - trabalho textual, independentemente de questões de assunto ou se o - trabalho textual for publicado como um livro impresso. Nós - recomendamos esta Licença principalmente para trabalhos cujo - propósito seja instrução ou referência. - 2. APLICABILIDADE E DEFINIÇÕES - Esta Licença se aplica a qualquer manual ou outro trabalho, em - qualquer meio, que contenha um aviso colocado pelo detentor dos - direitos autorais dizendo que ele pode ser distribuído sob os - termos desta Licença. Tal aviso concede uma licença mundial, livre - de patente, ilimitada na duração, para utilizar aquele trabalho sob - as condições nela declaradas. O “Documentoâ€, abaixo, se refere a - quaisquer desses manuais ou trabalhos. Qualquer membro do publico é - um titular da licença, e é mencionado como “vocêâ€. Você aceita a - licença se você copiar, modificar ou distribuir o trabalho em uma - forma que exija permissão sob lei de direitos autorais. Uma “Versão - Modificada†do Documento significa qualquer trabalho contendo o - Documento ou uma porção dele, seja literalmente copiado, ou com - modificações e/ou traduzido em outra língua. Uma “Seção Secundária†- é um apêndice nomeado ou uma seção pré-textual do Documento que - lida exclusivamente com o relacionamento dos editores ou autores do - Documento para com o assunto global do Documento (ou com questões - relacionadas) e não contém nada que possa se conformar diretamente - com aquele assunto global. (Assim, se o Documento for em parte um - livro texto de matemática, uma Seção Secundária não pode explanar - nada acerca de cálculos matemáticos). O relacionamento poderia ser - uma questão de conexão histórica com o assunto ou com questões - relacionadas, ou de posicionamento legal, comercial, filosófico, - ético ou político respeitante a eles. As “Seções Invariantes†são - certas Seções Secundárias cujos títulos são projetados, como sendo - aqueles de Seções Invariantes, no aviso que diz que o Documento é - publicado sob esta Licença. Se uma seção não se encaixa na - definição de Secundária acima, então a seção não está autorizada a - ser designada como Invariante. O Documento pode conter zero Seções - Invariantes. Se o Documento não identifica quaisquer Seções - Invariantes, então não existe nenhuma. Os “Textos de Capa†são - certas passagens curtas de texto que são listadas, como Textos de - Primeira Capa ou Textos de Quarta-Capa, no aviso que diz que o - Documento é publicado sob esta Licença. Um Texto de Primeira Capa - pode ter no máximo cinco (05) palavras, e um Texto de Quarta Capa - pode ter no máximo vinte e cinco (25) palavras. Uma cópia - “Transparente†do Documento significa uma cópia legível por - máquina, representada em um formato cuja especificação está - disponível para o público em geral, que é adequada para revisar o - documento diretamente com editores de texto genéricos ou (para - imagens compostas de pixeis) programas de pintura genéricos ou - (para desenhos) algum editor de desenho disponível amplamente, e - que seja adequado para entrada a formatadores de texto ou para - tradução automática a uma variedade de formatos próprios para - entrada a formatadores de texto. Uma cópia feita em um formato de - arquivo contrário ao Transparente, cuja linguagem de marcação, ou - ausência de linguagem de marcação, tenha sido organizada para - frustrar ou desencorajar modificações subsequentes por leitores, - não é Transparente. Um formato de imagem não é Transparente se - utilizado para qualquer quantidade substancial de texto. Uma cópia - que não é “Transparente†é chamada “Opacaâ€. Exemplos de formatos - adequados para cópias Transparentes incluem ASCII puro sem - marcações; formato de entrada Texinfo; formato de entrada LaTeX; - SGML ou XML utilizando um DTD disponível publicamente; HTML simples - conformante com o padrão; PostScript ou PDF projetado para - modificação humana. Exemplos de formatos transparantes de imagens - incluem PNG, XCF e JPG. Formatos opacos incluem formatos - proprietários que podem ser lidos e editados somente por - processadores proprietários de palavra; SGML ou XML para os quais o - DTD e/ou as ferramentas de processamentos não estejam disponíveis - genericamente; e o HTML gerado por máquina; PostScript ou PDF - produzidos por alguns processadores de palavra apenas para - propósitos de saída. A “Página de Título†significa, para um livro - impresso, a própria página de título, mais tantas páginas seguintes - quantas sejam necessárias para manter, legivelmente, o material que - esta Licença exige para aparecer na página de título. Para - trabalhos em formatos que não tenham qualquer página de título como - tal, “Página de Título†significa o texto próximo da mais - proeminente aparição do título do trabalho, precedendo o início do - corpo do texto. O “editor†significa qualquer pessoa ou entidade - que distribui cópias do Documento ao público. Uma seção “Intitulada - XYZ†significa uma subunidade nomeada do Documento cujo título ou é - precisamente XYZ ou contém XYZ entre parênteses seguinte ao texto - que traduz XYZ em outra linguagem. (Aqui XYZ significa um nome - específico de seção mencionado abaixo, tais como “Agradecimentosâ€; - “Dedicatóriasâ€; “Patrocíniosâ€; ou “Históricoâ€). “Preservar o - Título†de tal seção quando você modificar o Documento significa - que ele permanece uma seção “Intitulada XYZ†de acordo com essa - definição. O Documento pode incluir Declarações de Garantia - próximas ao aviso que declara que esta Licença se aplica ao - Documento. Essas Declarações de Garantia são consideradas como - inclusas por referência nesta Licença, porém somente com relação à - negação de garantias: qualquer outra implicação que essas - Declarações de Garantia possam ter é inválida e não tem efeito - sobre o significado desta Licença. - 3. CÓPIA LITERAL - Você pode copiar e distribuir o Documento em qualquer meio, ambos - comercialmente e não comercialmente, contanto que esta Licença, os - avisos de direitos autorais, e o aviso de licença dizendo que esta - Licença se aplica ao Documento estejam reproduzidas em todas as - cópias, e que você não adiciona quaisquer outras condições, - quaisquer que sejam, àquelas desta Licença. Você não pode utilizar - medidas técnicas para obstruir ou controlar a leitura ou - posteriores cópias das cópias que você fizer ou distribuir. - Entretanto, você pode aceitar remuneração em troca das cópias. Se - você distribui um número de cópias grande o suficiente, você deve - necessariamente também seguir as condições na seção três (3). Você - também pode ceder cópias, sob as mesmas condições declaradas acima, - e você pode publicamente exibir cópias. - 4. CÓPIAS EM QUANTIDADE - Se você publicar cópias impressas (ou cópias em mídia que - geralmente tem capas impressas) do Documento, em número maior que - cem (100), e o aviso de licença do Documento exigir Textos de Capa, - você deve necessariamente encartar as cópias em capas que - transportem, claramente e legivelmente, todos estes Textos de Capa: - Textos de Primeira Capa na primeira capa, e Textos de Quarta Capa - na capa traseira. Ambas as capas devem necessariamente também - claramente e legivelmente identificar você como o editor dessas - cópias. A capa frontal deve necessariamente apresentar o título - completo com todas as palavras do título igualmente proeminentes e - visíveis. Você pode adicionar outros materiais nas capas - adicionalmente. As cópias com modificações limitadas às capas, - tanto quanto preservem o título do Documento e satisfaçam essas - condições, podem ser tratadas como cópias literais em relação a - outros aspectos. Se os textos exigidos para ambas as capas forem - muito volumosos para caber legivelmente, você deveria colocar os - primeiros listados (tantos quantos caibam razoavelmente) na capa - atual, e continuar o restante em páginas adjacentes. Se você - publicar ou distribuir cópias Opacas do Documento em número maior - que cem (100), você deve necessariamente ou incluir uma cópia - Transparente, legível por máquina, junto com cada cópia Opaca, ou - declarar, na ou com cada cópia Opaca, uma localização de rede de - computador, a partir da qual o público usuário de rede geral tenha - acesso para baixar, utilizando protocolos de rede de padrão - público, uma cópia Transparente completa do Documento, livre do - material adicionado. Se você se utilizar da última opção, você deve - necessariamente adotar razoavelmente passos prudentes, quando você - iniciar a distribuição de cópias Opacas em quantidade, para se - assegurar que essa cópia Transparente permanecerá então acessível - na localização declarada até pelo menos um ano após a última vez - que você distribuiu uma cópia Opaca (diretamente ou por intermédio - dos seus agentes ou varejistas) daquela edição ao público. É - pedido, mas não exigido, que você contate os autores do Documento - bem antes de redistribuir qualquer número grande de cópias, para - dá-los a oportunidade de lhe fornecer uma versão atualizada do - Documento. - 5. MODIFICAÇÕES - Você pode copiar e distribuir uma Versão Modificada do Documento - sob as condições das seções dois (2) e três (3) acima, contanto que - você publique a Versão Modificada precisamente sob esta Licença, - com a Versão Modificada preenchendo a função do Documento, portanto - licenciando a distribuição e modificação da Versão Modificada a - quem quer que possua uma cópia dela. Adicionalmente, você deve - necessariamente fazer estas coisas na Versão Modificada: - 1. Utilize na Página de Título (e nas capas, se existentes) um - título distinto daquele do Documento, e daqueles das versões - prévias (as quais deveriam, se existiu alguma, serem listadas - na seção Histórico do Documento). Você pode utilizar o mesmo - título que uma versão prévia, se o editor original daquela - versão conceder permissão. - 2. Liste na Página de Título, como autores, uma ou mais pessoas - ou entidades responsáveis pela autoria das modificações na - Versão Modificada, junto com ao menos cinco dos autores - principais do Documento (todos os autores principais, se tiver - menos que cinco), a menos que eles liberem você dessa - exigência. - 3. Declare na Página de Título o nome do editor da Versão - Modificada, como o editor. - 4. Preserve todos os avisos de direitos autorais do Documento. - 5. Adicione um aviso apropriado de direitos autorais para suas - modificações, adjacente aos outros avisos de direitos - autorais. - 6. Inclua, imediatamente após os avisos de direitos autorais, um - aviso de licença concedendo ao público permissão para utilizar - a Versão Modificada sob os termos desta Licença, na forma - mostrada no Adendo abaixo. - 7. Preserve, naquele aviso de licença, as listas completas de - Seções Invariantes e Textos de Capa exigidos dados no aviso de - licença do Documento. - 8. Inclua uma cópia inalterada desta Licença. - 9. Preserve a seção intitulada “Históricoâ€, Preserve seu Título, - e adicione a ele um item declarando ao menos o título, ano, - novos autores, e editor da Versão Modificada, conforme dado na - Página de Título. Se não existir uma seção intitulada - “Histórico†no Documento, crie uma declarando o título, ano, - autores, e editor do Documento, conforme dado em sua Página de - Título, então adicione um item descrevendo a Versão - Modificada, conforme declarado na frase prévia. - 10. Preserve a localização de rede, se existente, dada no - Documento para acesso público a uma cópia Transparente do - Documento, e da mesma forma as localizações de rede dadas no - Documento para versões prévias nas quais foi baseado. Essas - podem ser colocadas na seção “Históricoâ€. Você pode omitir uma - localização de rede para um trabalho que foi publicado nos - últimos quatro anos anteriores à publicação do próprio do - Documento, ou se o editor original da versão à qual a - localização de rede se refere conceder permissão. - 11. Para cada seção Intitulada “Agradecimentos†ou “Dedicatóriasâ€, - Preserve o Título da seção, e preserve na seção toda a - substância e tonalidade de cada um dos agradecimentos a - contribuidores e/ou dedicatórias dadas nela. - 12. Preserve todas as Seções Invariantes do Documento, inalteradas - em seus textos e em seus títulos. Os números de Seção ou o - equivalente não são considerados parte dos títulos de seção. - 13. Delete quaisquer seções Intituladas “Patrocíniosâ€. Tal seção - não pode ser incluída na Versão Modificada. - 14. Não reintitule qualquer seção existente para Intitulada - “Patrocínios†ou para conflitar no título com qualquer Seção - Invariante. - 15. Preserve quaisquer Declarações de Garantia. - Se a Versão Modificada incluir novas seções pré textuais ou - apêndices que se qualifiquem como Seções Secundárias e não - contenham material copiado a partir do Documento, você pode, a sua - escolha, designar algumas ou todas essas seções como Invariantes. - Para fazer isso, adicione seus títulos à lista das Seções - Invariantes no aviso de licença da Versão Modificada. Esses títulos - devem necessariamente serem distintos de quaisquer outros títulos - de seções. Você pode adicionar uma seção Intitulada “Patrocíniosâ€, - contanto que ela não contenha nada além de patrocínios da sua - Versão Modificada por vários patrocinadores—por exemplo, - declarações de avaliadores ou aquelas de que o texto foi aprovado - por uma organização como a definição autorizativa de um padrão. - Você pode adicionar uma passagem de até cinco palavras, como um - Texto de Primeira Capa, e uma passagem de até vinte e cinco - palavras, como um Texto de Quarta Capa, ao final da lista dos - Textos de Capa na Versão Modificada. Somente uma passagem de Texto - de Primeira Capa e uma de Texto de Quarta Capa podem ser - adicionadas por (ou mediante acordos feitos por) qualquer uma - entidade. Se o Documento já inclui um texto de capa para a mesma - capa, previamente adicionado por você ou por acordo feito pela - mesma entidade pela qual você está atuando, você não pode adicionar - outro; porém você pode substituir o antigo, na permissão explícita - do editor prévio que adicionou o antigo. O(s) autor(s) e editor(s) - do Documento, por esta Licença, não concedem permissão para - utilizar seus nomes para publicidade para ou para afirmar ou - implicar patrocínio de qualquer Versão Modificada. - 6. COMBINANDO DOCUMENTOS - Você pode combinar o Documento com outros documentos publicados sob - esta Licença, sob os termos definidos na seção quatro (4) acima - para versões modificadas, contanto que você inclua na combinação - todas as Seções Invariantes de todos os documentos originais, não - modificados, e listá-los todos como Seções Invariantes do seu - trabalho combinado no seu aviso de licença, e você preserva todas - as Declarações de Garantias deles. O trabalho combinado precisa - conter somente uma cópia desta Licença, e múltiplas Seções - Invariantes idênticas podem ser substituídas por uma cópia única. - Se existirem múltiplas Seções Invariantes com o mesmo nome, mas - conteúdos diferentes, torne o título de cada uma de tal seção único - adicionando ao final dele, entre parênteses, o nome do autor ou - editor original daquela seção se conhecido, ou, do contrário, um - número único. Faça o mesmo ajuste aos títulos da seção na lista de - Seções Invariantes no aviso de licença do trabalho combinado. Na - combinação, você deve necessariamente combinar quaisquer seções - Intituladas “Histórico†nos vários documentos originais, formando - uma seção Intitulada “Históricoâ€; de mesma maneira, combine - quaisquer seções Intituladas “Agradecimentosâ€, e quaisquer seções - Intituladas “Dedicatóriasâ€. Você deve necessariamente deletar todas - as seções Intituladas “Patrocíniosâ€. - 7. COLEÇÕES DE DOCUMENTOS - Você pode produzir uma coleção consistente do Documento e outros - documentos publicados sob esta Licença, e substitua as cópias - individuais desta Licença nos vários documentos por uma cópia única - que esteja incluída na coleção, contanto que você siga as regras - desta Licença para cópias literais de cada um dos documentos em - todos os outros aspectos. Você pode extrair um documento único de - tal coleção, e distribuí-lo individualmente sob esta Licença, - contanto que você insira uma cópia desta Licença no documento - extraído, e siga esta Licença em todos os outros aspectos relativos - à cópias literais daquele documento. - 8. AGREGAÇÃO COM TRABALHOS INDEPENDENTES - Uma compilação do Documento ou seus derivados com outros documentos - separados e independentes ou trabalhos, dentro ou junto a volume de - armazenamento ou meio de distribuição, é chamado em “agregado†se - os direitos autorais resultantes da compilação não forem utilizados - para limitar os direitos legais dos usuários da compilação além do - que os trabalhos individuais permitem. Quando o Documento for - incluído em um agregado, esta Licença não se aplica aos outros - trabalhos no agregado, os quais não são eles próprios trabalhos - derivados do Documento. Se a exigência do Texto de Capa da seção - três (3) for aplicável a essas cópias do Documento, então se o - Documento for menor que a metade do agregado inteiro, os Textos de - Capa do Documento podem ser colocados em capas que encartem o - Documento dentro do agregado, ou o equivalente eletrônico de capas - se o Documento estiver em formato eletrônico. Do contrário, eles - devem necessariamente aparecer nas capas impressas que encartem o - agregado inteiro. - 9. TRADUÇÃO - Tradução é considerada um tipo de modificação, de forma que você - pode distribuir traduções do Documento sob os termos da seção - quatro (4). A substituição de Seções Invariantes por traduções - exige permissão especial de seus detentores dos direitos autorais, - porém você pode incluir traduções de algumas ou todas as Seções - Invariantes adicionalmente às versões originais dessas Seções - Invariantes. Você pode incluir uma tradução desta Licença, e todos - os avisos de licença no Documento, e quaisquer Declarações de - Garantia, contanto que você inclua também a versão original em - Inglês desta Licença e as versões originais daqueles avisos e - declarações. No caso de uma divergência entre a tradução e a versão - original desta Licença ou um aviso ou declaração, a versão original - prevalecerá. Se uma seção no Documento for Intitulada - “Agradecimentosâ€, “Dedicatóriasâ€, ou “Históricoâ€, a exigência - (seção 4) de Preservar seu Título (seção 1) tipicamente exigirá a - modificação do título atual. - 10. FINALIZAÇÃO - Você não pode copiar, modificar, sublicenciar, ou distribuir o - Documento, exceto conforme expressamente provido sob esta Licença. - Qualquer tentativa clandestina de copiar, modificar, sublicenciar, - ou distribuir o Documento é inválida, e automaticamente finalizará - seus direitos sob esta Licença. Entretanto, se você cessar todas as - violações a esta Licença, então a sua licença oriunda de um - detentor de direitos autorais em particular está restabelecida (a) - provisoriamente, a menos e até que o detentor dos direitos autorais - explicita e finalmente cancele sua licença; e (b) permanentemente, - se o detentor dos direitos autorais falhar em notificar você da - violação, por algum meio razoável, antes de sessenta (60) dias após - a cessação. Além disso, a sua licença oriunda de um detentor de - direitos autorais em particular está restabelecida permanentemente - se o detentor dos direitos autorais notificar você sobre a violação - por algum meio razoável, essa for a primeira vez que você recebeu - um aviso de violação desta Licença (para qualquer trabalho) oriunda - daquele detentor de direitos autorais, e você sanar a violação - antes de decorridos trinta (30) dias após o seu recebimento do - aviso. A finalização dos seus direitos sob esta seção não finaliza - as licenças de varejistas que tenham recebido cópias ou direitos de - você sob esta Licença. Se os seus direitos tiverem sido finalizados - e não permanentemente restabelecidos, o recebimento de uma cópia de - algum ou de tudo do mesmo material não concede a você direitos de - utilizá-lo. - 11. REVISÕES FUTURAS DESTA LICENÇA - A Free Software Foundation pode publicar novas, revisadas versões - da Licença de Documentação Livre GNU de tempos em tempos. Tais - novas versões serão similares na essência à presente versão, porém - podem diferir em detalhes para abarcar novos problemas ou assuntos. - Veja-se http://www.gnu.org/copyleft/. Para cada versão da Licença é - dado um número distintivo de versão. Se o Documento especifica que - uma versão numerada em particular desta Licença “ou qualquer versão - posterior†se aplica a ele, você tem a opção de seguir os termos e - condições ou da versão especificada ou de qualquer versão posterior - que tenha sido publicada (não como um rascunho) pela Free Software - Foundation. Se o Documento não especifica um número de versão desta - Licença, você pode escolher qualquer versão já publicada (não como - um rascunho) pela Free Software Foundation. Se o Documento - especifica que um procurador pode decidir quais versões futuras - desta Licença podem ser utilizadas, essa declaração pública do - procurador de aceitação de uma versão permanentemente autoriza você - a escolher aquela versão para o Documento. - 12. RELICENCIAMENTO - “Sítio de Colaboração Massiva Multi autor†(ou “Sítio MMCâ€) - significa qualquer servidor da Rede Mundial de Computadores que - publica trabalhos sujeitos a direitos autorais e também provê - facilidades proeminentes para qualquer pessoa editar esses - trabalhos. Um wiki público que qualquer pessoa pode editar é um - exemplo de tal servidor. Uma “Colaboração Massiva Multi autor†(ou - “MMCâ€) contida no sítio significa qualquer conjunto de trabalhos - sujeitos a direitos autorais assim publicados no sítio MMC. - “CC-BY-SA†significa a licença Creative Commons Attribution-Share - Alike 3.0 publicada pela Creative Commons Corporation, uma - corporação sem fins lucrativos com seu domicílio empresarial - situado em São Francisco, Califórnia, Estados Unidos da América do - Norte, bem como versões futuras de esquerdos autorais dessa licença - publicadas pela mesma organização. “Incorporar†significa publicar - ou republicar um Documento, no todo ou em parte, como parte de - outro Documento. Um MMC é “elegível para relicenciamento†se ele - for licenciado sob esta Licença, e se todos os trabalhos que foram - primeiro publicados sob esta Licença em algum lugar que não esse - MMC, e subsequentemente incorporados, no todo ou em parte, no MMC, - (1) não tinham textos de capa ou seções invariantes; e (2) estavam - assim incorporados antes de 01 de novembro de 2008. O operador de - um Sítio MMC pode republicar um MMC contido no sítio sob CC-BY-SA, - no mesmo sítio, a qualquer tempo antes de 01 de agosto de 2009, - contanto que o MMC seja elegível para relicenciamento. - - ADENDO: Como utilizar esta Licença para seus documentos - - Para utilizar esta Licença em um documento que você escreveu, inclua - uma cópia da Licença no documento e coloque os seguintes avisos de - direitos autorais e licença pouco depois da página de título: - - Direitos autorais (C) ano seu nome. - Permissão é concedida para copiar, distribuir e/ou modificar este - documento sob os termos da Licença de Documentação Livre GNU, Versão - 1.3 ou qualquer versão posterior publicada pela Free Software - Foundation; sem Seções Invariantes, sem Textos de Primeira Capa, e sem - Textos de Quarta Capa. Uma cópia da licença está inclusa na seção - intitulada ``Licença de Documentação Livre GNU''. - - - Se você tiver Seções Invariantes, Textos de Primeira Capa e Textos de - Quarta Capa, substitua a linha ``sem ... Capa'' por isto: - - com as Seções Invariantes sendo liste seus títulos, com os - Textos de Primeira Capa sendo lista, e com os Textos de Quarta - Capa sendo lista. - - - Se você tiver Seções Invariantes sem Textos de Capa, ou alguma outra - combinação dos três, mescle essas duas alternativas para adequar a - situação. - - Se o seu documento contém exemplos não triviais de código de - programação, nós recomendamos publicar esses exemplos em paralelo, sob - sua escolha de licença de software livre, tal como a Licença Pública - Geral GNU, para permitir seu uso em software livre. - -Ãndice Remissivo - - * Acl: [780]Acl-2.3.1 - * Attr: [781]Attr-2.5.1 - * Autoconf: [782]Autoconf-2.71 - * Automake: [783]Automake-1.16.5 - * Bash: [784]Bash-5.1.16 - + tools: [785]Bash-5.1.16 - * Bc: [786]Bc-5.2.2 - * Binutils: [787]Binutils-2.38 - + tools, pass 1: [788]Binutils-2.38 - Passagem 1 - + tools, pass 2: [789]Binutils-2.38 - Passagem 2 - * Bison: [790]Bison-3.8.2 - + tools: [791]Bison-3.8.2 - * Bzip2: [792]Bzip2-1.0.8 - * Check: [793]Check-0.15.2 - * Coreutils: [794]Coreutils-9.0 - + tools: [795]Coreutils-9.0 - * D-Bus: [796]D-Bus-1.12.20 - * DejaGNU: [797]DejaGNU-1.6.3 - * Diffutils: [798]Diffutils-3.8 - + tools: [799]Diffutils-3.8 - * E2fsprogs: [800]E2fsprogs-1.46.5 - * Expat: [801]Expat-2.4.6 - * Expect: [802]Expect-5.45.4 - * File: [803]File-5.41 - + tools: [804]File-5.41 - * Findutils: [805]Findutils-4.9.0 - + tools: [806]Findutils-4.9.0 - * Flex: [807]Flex-2.6.4 - * Gawk: [808]Gawk-5.1.1 - + tools: [809]Gawk-5.1.1 - * GCC: [810]GCC-11.2.0 - + tools, libstdc++ pass 1: [811]Libstdc++ oriundo de GCC-11.2.0, - Passagem 1 - + tools, libstdc++ pass 2: [812]Libstdc++ oriundo de GCC-11.2.0, - Passagem 2 - + tools, pass 1: [813]GCC-11.2.0 - Passagem 1 - + tools, pass 2: [814]GCC-11.2.0 - Passagem 2 - * GDBM: [815]GDBM-1.23 - * Gettext: [816]Gettext-0.21 - + tools: [817]Gettext-0.21 - * Glibc: [818]Glibc-2.35 - + tools: [819]Glibc-2.35 - * GMP: [820]GMP-6.2.1 - * Gperf: [821]Gperf-3.1 - * Grep: [822]Grep-3.7 - + tools: [823]Grep-3.7 - * Groff: [824]Groff-1.22.4 - * GRUB: [825]GRUB-2.06 - * Gzip: [826]Gzip-1.11 - + tools: [827]Gzip-1.11 - * Iana-Etc: [828]Iana-Etc-20220207 - * Inetutils: [829]Inetutils-2.2 - * Intltool: [830]Intltool-0.51.0 - * IPRoute2: [831]IPRoute2-5.16.0 - * Jinja2: [832]Jinja2-3.0.3 - * Kbd: [833]Kbd-2.4.0 - * Kmod: [834]Kmod-29 - * Less: [835]Less-590 - * Libcap: [836]Libcap-2.63 - * Libelf: [837]Libelf oriundo de Elfutils-0.186 - * libffi: [838]Libffi-3.4.2 - * Libpipeline: [839]Libpipeline-1.5.5 - * Libtool: [840]Libtool-2.4.6 - * Linux: [841]Linux-5.16.9 - + tools, API headers: [842]Cabeçalhos da API do Linux-5.16.9 - * M4: [843]M4-1.4.19 - + tools: [844]M4-1.4.19 - * Make: [845]Make-4.3 - + tools: [846]Make-4.3 - * Man-DB: [847]Man-DB-2.10.1 - * Man-pages: [848]Man-pages-5.13 - * MarkupSafe: [849]MarkupSafe-2.0.1 - * Meson: [850]Meson-0.61.1 - * MPC: [851]MPC-1.2.1 - * MPFR: [852]MPFR-4.1.0 - * Ncurses: [853]Ncurses-6.3 - + tools: [854]Ncurses-6.3 - * Ninja: [855]Ninja-1.10.2 - * OpenSSL: [856]OpenSSL-3.0.1 - * Patch: [857]Patch-2.7.6 - + tools: [858]Patch-2.7.6 - * Perl: [859]Perl-5.34.0 - + tools: [860]Perl-5.34.0 - * Pkgconfig: [861]Pkg-config-0.29.2 - * Procps-ng: [862]Procps-ng-3.3.17 - * Psmisc: [863]Psmisc-23.4 - * Python: [864]Python-3.10.2 - + temporary: [865]Python-3.10.2 - * Readline: [866]Readline-8.1.2 - * Sed: [867]Sed-4.8 - + tools: [868]Sed-4.8 - * Shadow: [869]Shadow-4.11.1 - + configuring: [870]Configurando Shadow - * systemd: [871]Systemd-250 - * Tar: [872]Tar-1.34 - + tools: [873]Tar-1.34 - * Tcl: [874]Tcl-8.6.12 - * Texinfo: [875]Texinfo-6.8 - + temporary: [876]Texinfo-6.8 - * Udev: - + usage: [877]Visão Geral do Manuseio de Dispositivos e Módulos - * Util-linux: [878]Util-linux-2.37.4 - + tools: [879]Util-linux-2.37.4 - * Vim: [880]Vim-8.2.4383 - * XML::Parser: [881]XML::Parser-2.46 - * Xz: [882]Xz-5.2.5 - + tools: [883]Xz-5.2.5 - * Zlib: [884]Zlib-1.2.11 - * zstd: [885]Zstd-1.5.2 - - * [: [886]Coreutils-9.0 -- - * 2to3: [887]Python-3.10.2 - * accessdb: [888]Man-DB-2.10.1 -- - * aclocal: [889]Automake-1.16.5 -- - * aclocal-1.16: [890]Automake-1.16.5 -- - * addftinfo: [891]Groff-1.22.4 -- - * addpart: [892]Util-linux-2.37.4 -- - * addr2line: [893]Binutils-2.38 -- - * afmtodit: [894]Groff-1.22.4 -- - * agetty: [895]Util-linux-2.37.4 -- - * apropos: [896]Man-DB-2.10.1 -- - * ar: [897]Binutils-2.38 -- - * as: [898]Binutils-2.38 -- - * attr: [899]Attr-2.5.1 -- - * autoconf: [900]Autoconf-2.71 -- - * autoheader: [901]Autoconf-2.71 -- - * autom4te: [902]Autoconf-2.71 -- - * automake: [903]Automake-1.16.5 -- - * automake-1.16: [904]Automake-1.16.5 -- - * autopoint: [905]Gettext-0.21 -- - * autoreconf: [906]Autoconf-2.71 -- - * autoscan: [907]Autoconf-2.71 -- - * autoupdate: [908]Autoconf-2.71 -- - * awk: [909]Gawk-5.1.1 -- - * b2sum: [910]Coreutils-9.0 -- - * badblocks: [911]E2fsprogs-1.46.5 -- - * base64: [912]Coreutils-9.0 -- - * basename: [913]Coreutils-9.0 -- - * basenc: [914]Coreutils-9.0 -- - * bash: [915]Bash-5.1.16 -- - * bashbug: [916]Bash-5.1.16 -- - * bc: [917]Bc-5.2.2 -- - * bison: [918]Bison-3.8.2 -- - * blkdiscard: [919]Util-linux-2.37.4 -- - * blkid: [920]Util-linux-2.37.4 -- - * blkzone: [921]Util-linux-2.37.4 -- - * blockdev: [922]Util-linux-2.37.4 -- - * bridge: [923]IPRoute2-5.16.0 -- - * bunzip2: [924]Bzip2-1.0.8 -- - * busctl: [925]Systemd-250 -- - * bzcat: [926]Bzip2-1.0.8 -- - * bzcmp: [927]Bzip2-1.0.8 -- - * bzdiff: [928]Bzip2-1.0.8 -- - * bzegrep: [929]Bzip2-1.0.8 -- - * bzfgrep: [930]Bzip2-1.0.8 -- - * bzgrep: [931]Bzip2-1.0.8 -- - * bzip2: [932]Bzip2-1.0.8 -- - * bzip2recover: [933]Bzip2-1.0.8 -- - * bzless: [934]Bzip2-1.0.8 -- - * bzmore: [935]Bzip2-1.0.8 -- - * c++: [936]GCC-11.2.0 -- - * c++filt: [937]Binutils-2.38 -- - * cal: [938]Util-linux-2.37.4 -- - * capsh: [939]Libcap-2.63 -- - * captoinfo: [940]Ncurses-6.3 -- - * cat: [941]Coreutils-9.0 -- - * catman: [942]Man-DB-2.10.1 -- - * cc: [943]GCC-11.2.0 -- - * cfdisk: [944]Util-linux-2.37.4 -- - * chacl: [945]Acl-2.3.1 -- - * chage: [946]Shadow-4.11.1 -- - * chattr: [947]E2fsprogs-1.46.5 -- - * chcon: [948]Coreutils-9.0 -- - * chcpu: [949]Util-linux-2.37.4 -- - * checkmk: [950]Check-0.15.2 -- - * chem: [951]Groff-1.22.4 -- - * chfn: [952]Shadow-4.11.1 -- - * chgpasswd: [953]Shadow-4.11.1 -- - * chgrp: [954]Coreutils-9.0 -- - * chmem: [955]Util-linux-2.37.4 -- - * chmod: [956]Coreutils-9.0 -- - * choom: [957]Util-linux-2.37.4 -- - * chown: [958]Coreutils-9.0 -- - * chpasswd: [959]Shadow-4.11.1 -- - * chroot: [960]Coreutils-9.0 -- - * chrt: [961]Util-linux-2.37.4 -- - * chsh: [962]Shadow-4.11.1 -- - * chvt: [963]Kbd-2.4.0 -- - * cksum: [964]Coreutils-9.0 -- - * clear: [965]Ncurses-6.3 -- - * cmp: [966]Diffutils-3.8 -- - * col: [967]Util-linux-2.37.4 -- - * colcrt: [968]Util-linux-2.37.4 -- - * colrm: [969]Util-linux-2.37.4 -- - * column: [970]Util-linux-2.37.4 -- - * comm: [971]Coreutils-9.0 -- - * compile_et: [972]E2fsprogs-1.46.5 -- - * coredumpctl: [973]Systemd-250 -- - * corelist: [974]Perl-5.34.0 -- - * cp: [975]Coreutils-9.0 -- - * cpan: [976]Perl-5.34.0 -- - * cpp: [977]GCC-11.2.0 -- - * csplit: [978]Coreutils-9.0 -- - * ctrlaltdel: [979]Util-linux-2.37.4 -- - * ctstat: [980]IPRoute2-5.16.0 -- - * cut: [981]Coreutils-9.0 -- - * c_rehash: [982]OpenSSL-3.0.1 -- - * date: [983]Coreutils-9.0 -- - * dbus-cleanup-sockets: [984]D-Bus-1.12.20 -- - * dbus-daemon: [985]D-Bus-1.12.20 -- - * dbus-launch: [986]D-Bus-1.12.20 -- - * dbus-monitor: [987]D-Bus-1.12.20 -- - * dbus-run-session: [988]D-Bus-1.12.20 -- - * dbus-send: [989]D-Bus-1.12.20 -- - * dbus-test-tool: [990]D-Bus-1.12.20 -- - * dbus-update-activation-environment: [991]D-Bus-1.12.20 -- - * dbus-uuidgen: [992]D-Bus-1.12.20 -- - * dc: [993]Bc-5.2.2 -- - * dd: [994]Coreutils-9.0 -- - * deallocvt: [995]Kbd-2.4.0 -- - * debugfs: [996]E2fsprogs-1.46.5 -- - * dejagnu: [997]DejaGNU-1.6.3 -- - * delpart: [998]Util-linux-2.37.4 -- - * depmod: [999]Kmod-29 -- - * df: [1000]Coreutils-9.0 -- - * diff: [1001]Diffutils-3.8 -- - * diff3: [1002]Diffutils-3.8 -- - * dir: [1003]Coreutils-9.0 -- - * dircolors: [1004]Coreutils-9.0 -- - * dirname: [1005]Coreutils-9.0 -- - * dmesg: [1006]Util-linux-2.37.4 -- - * dnsdomainname: [1007]Inetutils-2.2 -- - * du: [1008]Coreutils-9.0 -- - * dumpe2fs: [1009]E2fsprogs-1.46.5 -- - * dumpkeys: [1010]Kbd-2.4.0 -- - * e2freefrag: [1011]E2fsprogs-1.46.5 -- - * e2fsck: [1012]E2fsprogs-1.46.5 -- - * e2image: [1013]E2fsprogs-1.46.5 -- - * e2label: [1014]E2fsprogs-1.46.5 -- - * e2mmpstatus: [1015]E2fsprogs-1.46.5 -- - * e2scrub: [1016]E2fsprogs-1.46.5 -- - * e2scrub_all: [1017]E2fsprogs-1.46.5 -- - * e2undo: [1018]E2fsprogs-1.46.5 -- - * e4crypt: [1019]E2fsprogs-1.46.5 -- - * e4defrag: [1020]E2fsprogs-1.46.5 -- - * echo: [1021]Coreutils-9.0 -- - * egrep: [1022]Grep-3.7 -- - * eject: [1023]Util-linux-2.37.4 -- - * elfedit: [1024]Binutils-2.38 -- - * enc2xs: [1025]Perl-5.34.0 -- - * encguess: [1026]Perl-5.34.0 -- - * env: [1027]Coreutils-9.0 -- - * envsubst: [1028]Gettext-0.21 -- - * eqn: [1029]Groff-1.22.4 -- - * eqn2graph: [1030]Groff-1.22.4 -- - * ex: [1031]Vim-8.2.4383 -- - * expand: [1032]Coreutils-9.0 -- - * expect: [1033]Expect-5.45.4 -- - * expiry: [1034]Shadow-4.11.1 -- - * expr: [1035]Coreutils-9.0 -- - * factor: [1036]Coreutils-9.0 -- - * faillog: [1037]Shadow-4.11.1 -- - * fallocate: [1038]Util-linux-2.37.4 -- - * false: [1039]Coreutils-9.0 -- - * fdisk: [1040]Util-linux-2.37.4 -- - * fgconsole: [1041]Kbd-2.4.0 -- - * fgrep: [1042]Grep-3.7 -- - * file: [1043]File-5.41 -- - * filefrag: [1044]E2fsprogs-1.46.5 -- - * fincore: [1045]Util-linux-2.37.4 -- - * find: [1046]Findutils-4.9.0 -- - * findfs: [1047]Util-linux-2.37.4 -- - * findmnt: [1048]Util-linux-2.37.4 -- - * flex: [1049]Flex-2.6.4 -- - * flex++: [1050]Flex-2.6.4 -- - * flock: [1051]Util-linux-2.37.4 -- - * fmt: [1052]Coreutils-9.0 -- - * fold: [1053]Coreutils-9.0 -- - * free: [1054]Procps-ng-3.3.17 -- - * fsck: [1055]Util-linux-2.37.4 -- - * fsck.cramfs: [1056]Util-linux-2.37.4 -- - * fsck.ext2: [1057]E2fsprogs-1.46.5 -- - * fsck.ext3: [1058]E2fsprogs-1.46.5 -- - * fsck.ext4: [1059]E2fsprogs-1.46.5 -- - * fsck.minix: [1060]Util-linux-2.37.4 -- - * fsfreeze: [1061]Util-linux-2.37.4 -- - * fstrim: [1062]Util-linux-2.37.4 -- - * ftp: [1063]Inetutils-2.2 -- - * fuser: [1064]Psmisc-23.4 -- - * g++: [1065]GCC-11.2.0 -- - * gawk: [1066]Gawk-5.1.1 -- - * gawk-5.1.1: [1067]Gawk-5.1.1 -- - * gcc: [1068]GCC-11.2.0 -- - * gc-ar: [1069]GCC-11.2.0 -- - * gc-nm: [1070]GCC-11.2.0 -- - * gc-ranlib: [1071]GCC-11.2.0 -- - * gcov: [1072]GCC-11.2.0 -- - * gcov-dump: [1073]GCC-11.2.0 -- - * gcov-tool: [1074]GCC-11.2.0 -- - * gdbmtool: [1075]GDBM-1.23 -- - * gdbm_dump: [1076]GDBM-1.23 -- - * gdbm_load: [1077]GDBM-1.23 -- - * gdiffmk: [1078]Groff-1.22.4 -- - * gencat: [1079]Glibc-2.35 -- - * genl: [1080]IPRoute2-5.16.0 -- - * getcap: [1081]Libcap-2.63 -- - * getconf: [1082]Glibc-2.35 -- - * getent: [1083]Glibc-2.35 -- - * getfacl: [1084]Acl-2.3.1 -- - * getfattr: [1085]Attr-2.5.1 -- - * getkeycodes: [1086]Kbd-2.4.0 -- - * getopt: [1087]Util-linux-2.37.4 -- - * getpcaps: [1088]Libcap-2.63 -- - * getsubids: [1089]Shadow-4.11.1 -- - * gettext: [1090]Gettext-0.21 -- - * gettext.sh: [1091]Gettext-0.21 -- - * gettextize: [1092]Gettext-0.21 -- - * glilypond: [1093]Groff-1.22.4 -- - * gpasswd: [1094]Shadow-4.11.1 -- - * gperf: [1095]Gperf-3.1 -- - * gperl: [1096]Groff-1.22.4 -- - * gpinyin: [1097]Groff-1.22.4 -- - * gprof: [1098]Binutils-2.38 -- - * grap2graph: [1099]Groff-1.22.4 -- - * grep: [1100]Grep-3.7 -- - * grn: [1101]Groff-1.22.4 -- - * grodvi: [1102]Groff-1.22.4 -- - * groff: [1103]Groff-1.22.4 -- - * groffer: [1104]Groff-1.22.4 -- - * grog: [1105]Groff-1.22.4 -- - * grolbp: [1106]Groff-1.22.4 -- - * grolj4: [1107]Groff-1.22.4 -- - * gropdf: [1108]Groff-1.22.4 -- - * grops: [1109]Groff-1.22.4 -- - * grotty: [1110]Groff-1.22.4 -- - * groupadd: [1111]Shadow-4.11.1 -- - * groupdel: [1112]Shadow-4.11.1 -- - * groupmems: [1113]Shadow-4.11.1 -- - * groupmod: [1114]Shadow-4.11.1 -- - * groups: [1115]Coreutils-9.0 -- - * grpck: [1116]Shadow-4.11.1 -- - * grpconv: [1117]Shadow-4.11.1 -- - * grpunconv: [1118]Shadow-4.11.1 -- - * grub-bios-setup: [1119]GRUB-2.06 -- - * grub-editenv: [1120]GRUB-2.06 -- - * grub-file: [1121]GRUB-2.06 -- - * grub-fstest: [1122]GRUB-2.06 -- - * grub-glue-efi: [1123]GRUB-2.06 -- - * grub-install: [1124]GRUB-2.06 -- - * grub-kbdcomp: [1125]GRUB-2.06 -- - * grub-macbless: [1126]GRUB-2.06 -- - * grub-menulst2cfg: [1127]GRUB-2.06 -- - * grub-mkconfig: [1128]GRUB-2.06 -- - * grub-mkimage: [1129]GRUB-2.06 -- - * grub-mklayout: [1130]GRUB-2.06 -- - * grub-mknetdir: [1131]GRUB-2.06 -- - * grub-mkpasswd-pbkdf2: [1132]GRUB-2.06 -- - * grub-mkrelpath: [1133]GRUB-2.06 -- - * grub-mkrescue: [1134]GRUB-2.06 -- - * grub-mkstandalone: [1135]GRUB-2.06 -- - * grub-ofpathname: [1136]GRUB-2.06 -- - * grub-probe: [1137]GRUB-2.06 -- - * grub-reboot: [1138]GRUB-2.06 -- - * grub-render-label: [1139]GRUB-2.06 -- - * grub-script-check: [1140]GRUB-2.06 -- - * grub-set-default: [1141]GRUB-2.06 -- - * grub-setup: [1142]GRUB-2.06 -- - * grub-syslinux2cfg: [1143]GRUB-2.06 -- - * gunzip: [1144]Gzip-1.11 -- - * gzexe: [1145]Gzip-1.11 -- - * gzip: [1146]Gzip-1.11 -- - * h2ph: [1147]Perl-5.34.0 -- - * h2xs: [1148]Perl-5.34.0 -- - * halt: [1149]Systemd-250 -- - * head: [1150]Coreutils-9.0 -- - * hexdump: [1151]Util-linux-2.37.4 -- - * hostid: [1152]Coreutils-9.0 -- - * hostname: [1153]Inetutils-2.2 -- - * hostnamectl: [1154]Systemd-250 -- - * hpftodit: [1155]Groff-1.22.4 -- - * hwclock: [1156]Util-linux-2.37.4 -- - * i386: [1157]Util-linux-2.37.4 -- - * iconv: [1158]Glibc-2.35 -- - * iconvconfig: [1159]Glibc-2.35 -- - * id: [1160]Coreutils-9.0 -- - * idle3: [1161]Python-3.10.2 - * ifcfg: [1162]IPRoute2-5.16.0 -- - * ifconfig: [1163]Inetutils-2.2 -- - * ifnames: [1164]Autoconf-2.71 -- - * ifstat: [1165]IPRoute2-5.16.0 -- - * indxbib: [1166]Groff-1.22.4 -- - * info: [1167]Texinfo-6.8 -- - * infocmp: [1168]Ncurses-6.3 -- - * infotocap: [1169]Ncurses-6.3 -- - * init: [1170]Systemd-250 -- - * insmod: [1171]Kmod-29 -- - * install: [1172]Coreutils-9.0 -- - * install-info: [1173]Texinfo-6.8 -- - * instmodsh: [1174]Perl-5.34.0 -- - * intltool-extract: [1175]Intltool-0.51.0 -- - * intltool-merge: [1176]Intltool-0.51.0 -- - * intltool-prepare: [1177]Intltool-0.51.0 -- - * intltool-update: [1178]Intltool-0.51.0 -- - * intltoolize: [1179]Intltool-0.51.0 -- - * ionice: [1180]Util-linux-2.37.4 -- - * ip: [1181]IPRoute2-5.16.0 -- - * ipcmk: [1182]Util-linux-2.37.4 -- - * ipcrm: [1183]Util-linux-2.37.4 -- - * ipcs: [1184]Util-linux-2.37.4 -- - * irqtop: [1185]Util-linux-2.37.4 -- - * isosize: [1186]Util-linux-2.37.4 -- - * join: [1187]Coreutils-9.0 -- - * journalctl: [1188]Systemd-250 -- - * json_pp: [1189]Perl-5.34.0 -- - * kbdinfo: [1190]Kbd-2.4.0 -- - * kbdrate: [1191]Kbd-2.4.0 -- - * kbd_mode: [1192]Kbd-2.4.0 -- - * kernel-install: [1193]Systemd-250 -- - * kill: [1194]Util-linux-2.37.4 -- - * killall: [1195]Psmisc-23.4 -- - * kmod: [1196]Kmod-29 -- - * last: [1197]Util-linux-2.37.4 -- - * lastb: [1198]Util-linux-2.37.4 -- - * lastlog: [1199]Shadow-4.11.1 -- - * ld: [1200]Binutils-2.38 -- - * ld.bfd: [1201]Binutils-2.38 -- - * ld.gold: [1202]Binutils-2.38 -- - * ldattach: [1203]Util-linux-2.37.4 -- - * ldconfig: [1204]Glibc-2.35 -- - * ldd: [1205]Glibc-2.35 -- - * lddlibc4: [1206]Glibc-2.35 -- - * less: [1207]Less-590 -- - * lessecho: [1208]Less-590 -- - * lesskey: [1209]Less-590 -- - * lex: [1210]Flex-2.6.4 -- - * lexgrog: [1211]Man-DB-2.10.1 -- - * lfskernel-5.16.9: [1212]Linux-5.16.9 -- - * libasan: [1213]GCC-11.2.0 -- - * libatomic: [1214]GCC-11.2.0 -- - * libcc1: [1215]GCC-11.2.0 -- - * libnetcfg: [1216]Perl-5.34.0 -- - * libtool: [1217]Libtool-2.4.6 -- - * libtoolize: [1218]Libtool-2.4.6 -- - * link: [1219]Coreutils-9.0 -- - * linux32: [1220]Util-linux-2.37.4 -- - * linux64: [1221]Util-linux-2.37.4 -- - * lkbib: [1222]Groff-1.22.4 -- - * ln: [1223]Coreutils-9.0 -- - * lnstat: [1224]IPRoute2-5.16.0 -- - * loadkeys: [1225]Kbd-2.4.0 -- - * loadunimap: [1226]Kbd-2.4.0 -- - * locale: [1227]Glibc-2.35 -- - * localectl: [1228]Systemd-250 -- - * localedef: [1229]Glibc-2.35 -- - * locate: [1230]Findutils-4.9.0 -- - * logger: [1231]Util-linux-2.37.4 -- - * login: [1232]Shadow-4.11.1 -- - * loginctl: [1233]Systemd-250 -- - * logname: [1234]Coreutils-9.0 -- - * logoutd: [1235]Shadow-4.11.1 -- - * logsave: [1236]E2fsprogs-1.46.5 -- - * look: [1237]Util-linux-2.37.4 -- - * lookbib: [1238]Groff-1.22.4 -- - * losetup: [1239]Util-linux-2.37.4 -- - * ls: [1240]Coreutils-9.0 -- - * lsattr: [1241]E2fsprogs-1.46.5 -- - * lsblk: [1242]Util-linux-2.37.4 -- - * lscpu: [1243]Util-linux-2.37.4 -- - * lsipc: [1244]Util-linux-2.37.4 -- - * lsirq: [1245]Util-linux-2.37.4 -- - * lslocks: [1246]Util-linux-2.37.4 -- - * lslogins: [1247]Util-linux-2.37.4 -- - * lsmem: [1248]Util-linux-2.37.4 -- - * lsmod: [1249]Kmod-29 -- - * lsns: [1250]Util-linux-2.37.4 -- - * lto-dump: [1251]GCC-11.2.0 -- - * lzcat: [1252]Xz-5.2.5 -- - * lzcmp: [1253]Xz-5.2.5 -- - * lzdiff: [1254]Xz-5.2.5 -- - * lzegrep: [1255]Xz-5.2.5 -- - * lzfgrep: [1256]Xz-5.2.5 -- - * lzgrep: [1257]Xz-5.2.5 -- - * lzless: [1258]Xz-5.2.5 -- - * lzma: [1259]Xz-5.2.5 -- - * lzmadec: [1260]Xz-5.2.5 -- - * lzmainfo: [1261]Xz-5.2.5 -- - * lzmore: [1262]Xz-5.2.5 -- - * m4: [1263]M4-1.4.19 -- - * machinectl: [1264]Systemd-250 -- - * make: [1265]Make-4.3 -- - * makedb: [1266]Glibc-2.35 -- - * makeinfo: [1267]Texinfo-6.8 -- - * man: [1268]Man-DB-2.10.1 -- - * man-recode: [1269]Man-DB-2.10.1 -- - * mandb: [1270]Man-DB-2.10.1 -- - * manpath: [1271]Man-DB-2.10.1 -- - * mapscrn: [1272]Kbd-2.4.0 -- - * mcookie: [1273]Util-linux-2.37.4 -- - * md5sum: [1274]Coreutils-9.0 -- - * mesg: [1275]Util-linux-2.37.4 -- - * meson: [1276]Meson-0.61.1 -- - * mkdir: [1277]Coreutils-9.0 -- - * mke2fs: [1278]E2fsprogs-1.46.5 -- - * mkfifo: [1279]Coreutils-9.0 -- - * mkfs: [1280]Util-linux-2.37.4 -- - * mkfs.bfs: [1281]Util-linux-2.37.4 -- - * mkfs.cramfs: [1282]Util-linux-2.37.4 -- - * mkfs.ext2: [1283]E2fsprogs-1.46.5 -- - * mkfs.ext3: [1284]E2fsprogs-1.46.5 -- - * mkfs.ext4: [1285]E2fsprogs-1.46.5 -- - * mkfs.minix: [1286]Util-linux-2.37.4 -- - * mklost+found: [1287]E2fsprogs-1.46.5 -- - * mknod: [1288]Coreutils-9.0 -- - * mkswap: [1289]Util-linux-2.37.4 -- - * mktemp: [1290]Coreutils-9.0 -- - * mk_cmds: [1291]E2fsprogs-1.46.5 -- - * mmroff: [1292]Groff-1.22.4 -- - * modinfo: [1293]Kmod-29 -- - * modprobe: [1294]Kmod-29 -- - * more: [1295]Util-linux-2.37.4 -- - * mount: [1296]Util-linux-2.37.4 -- - * mountpoint: [1297]Util-linux-2.37.4 -- - * msgattrib: [1298]Gettext-0.21 -- - * msgcat: [1299]Gettext-0.21 -- - * msgcmp: [1300]Gettext-0.21 -- - * msgcomm: [1301]Gettext-0.21 -- - * msgconv: [1302]Gettext-0.21 -- - * msgen: [1303]Gettext-0.21 -- - * msgexec: [1304]Gettext-0.21 -- - * msgfilter: [1305]Gettext-0.21 -- - * msgfmt: [1306]Gettext-0.21 -- - * msggrep: [1307]Gettext-0.21 -- - * msginit: [1308]Gettext-0.21 -- - * msgmerge: [1309]Gettext-0.21 -- - * msgunfmt: [1310]Gettext-0.21 -- - * msguniq: [1311]Gettext-0.21 -- - * mtrace: [1312]Glibc-2.35 -- - * mv: [1313]Coreutils-9.0 -- - * namei: [1314]Util-linux-2.37.4 -- - * ncursesw6-config: [1315]Ncurses-6.3 -- - * neqn: [1316]Groff-1.22.4 -- - * networkctl: [1317]Systemd-250 -- - * newgidmap: [1318]Shadow-4.11.1 -- - * newgrp: [1319]Shadow-4.11.1 -- - * newuidmap: [1320]Shadow-4.11.1 -- - * newusers: [1321]Shadow-4.11.1 -- - * ngettext: [1322]Gettext-0.21 -- - * nice: [1323]Coreutils-9.0 -- - * ninja: [1324]Ninja-1.10.2 -- - * nl: [1325]Coreutils-9.0 -- - * nm: [1326]Binutils-2.38 -- - * nohup: [1327]Coreutils-9.0 -- - * nologin: [1328]Shadow-4.11.1 -- - * nproc: [1329]Coreutils-9.0 -- - * nroff: [1330]Groff-1.22.4 -- - * nscd: [1331]Glibc-2.35 -- - * nsenter: [1332]Util-linux-2.37.4 -- - * nstat: [1333]IPRoute2-5.16.0 -- - * numfmt: [1334]Coreutils-9.0 -- - * objcopy: [1335]Binutils-2.38 -- - * objdump: [1336]Binutils-2.38 -- - * od: [1337]Coreutils-9.0 -- - * oomctl: [1338]Systemd-250 -- - * openssl: [1339]OpenSSL-3.0.1 -- - * openvt: [1340]Kbd-2.4.0 -- - * partx: [1341]Util-linux-2.37.4 -- - * passwd: [1342]Shadow-4.11.1 -- - * paste: [1343]Coreutils-9.0 -- - * patch: [1344]Patch-2.7.6 -- - * pathchk: [1345]Coreutils-9.0 -- - * pcprofiledump: [1346]Glibc-2.35 -- - * pdfmom: [1347]Groff-1.22.4 -- - * pdfroff: [1348]Groff-1.22.4 -- - * pdftexi2dvi: [1349]Texinfo-6.8 -- - * peekfd: [1350]Psmisc-23.4 -- - * perl: [1351]Perl-5.34.0 -- - * perl5.34.0: [1352]Perl-5.34.0 -- - * perlbug: [1353]Perl-5.34.0 -- - * perldoc: [1354]Perl-5.34.0 -- - * perlivp: [1355]Perl-5.34.0 -- - * perlthanks: [1356]Perl-5.34.0 -- - * pfbtops: [1357]Groff-1.22.4 -- - * pgrep: [1358]Procps-ng-3.3.17 -- - * pic: [1359]Groff-1.22.4 -- - * pic2graph: [1360]Groff-1.22.4 -- - * piconv: [1361]Perl-5.34.0 -- - * pidof: [1362]Procps-ng-3.3.17 -- - * ping: [1363]Inetutils-2.2 -- - * ping6: [1364]Inetutils-2.2 -- - * pinky: [1365]Coreutils-9.0 -- - * pip3: [1366]Python-3.10.2 - * pivot_root: [1367]Util-linux-2.37.4 -- - * pkg-config: [1368]Pkg-config-0.29.2 -- - * pkill: [1369]Procps-ng-3.3.17 -- - * pl2pm: [1370]Perl-5.34.0 -- - * pldd: [1371]Glibc-2.35 -- - * pmap: [1372]Procps-ng-3.3.17 -- - * pod2html: [1373]Perl-5.34.0 -- - * pod2man: [1374]Perl-5.34.0 -- - * pod2texi: [1375]Texinfo-6.8 -- - * pod2text: [1376]Perl-5.34.0 -- - * pod2usage: [1377]Perl-5.34.0 -- - * podchecker: [1378]Perl-5.34.0 -- - * podselect: [1379]Perl-5.34.0 -- - * portablectl: [1380]Systemd-250 -- - * post-grohtml: [1381]Groff-1.22.4 -- - * poweroff: [1382]Systemd-250 -- - * pr: [1383]Coreutils-9.0 -- - * pre-grohtml: [1384]Groff-1.22.4 -- - * preconv: [1385]Groff-1.22.4 -- - * printenv: [1386]Coreutils-9.0 -- - * printf: [1387]Coreutils-9.0 -- - * prlimit: [1388]Util-linux-2.37.4 -- - * prove: [1389]Perl-5.34.0 -- - * prtstat: [1390]Psmisc-23.4 -- - * ps: [1391]Procps-ng-3.3.17 -- - * psfaddtable: [1392]Kbd-2.4.0 -- - * psfgettable: [1393]Kbd-2.4.0 -- - * psfstriptable: [1394]Kbd-2.4.0 -- - * psfxtable: [1395]Kbd-2.4.0 -- - * pslog: [1396]Psmisc-23.4 -- - * pstree: [1397]Psmisc-23.4 -- - * pstree.x11: [1398]Psmisc-23.4 -- - * ptar: [1399]Perl-5.34.0 -- - * ptardiff: [1400]Perl-5.34.0 -- - * ptargrep: [1401]Perl-5.34.0 -- - * ptx: [1402]Coreutils-9.0 -- - * pwait: [1403]Procps-ng-3.3.17 -- - * pwck: [1404]Shadow-4.11.1 -- - * pwconv: [1405]Shadow-4.11.1 -- - * pwd: [1406]Coreutils-9.0 -- - * pwdx: [1407]Procps-ng-3.3.17 -- - * pwunconv: [1408]Shadow-4.11.1 -- - * pydoc3: [1409]Python-3.10.2 - * python3: [1410]Python-3.10.2 - * ranlib: [1411]Binutils-2.38 -- - * readelf: [1412]Binutils-2.38 -- - * readlink: [1413]Coreutils-9.0 -- - * readprofile: [1414]Util-linux-2.37.4 -- - * realpath: [1415]Coreutils-9.0 -- - * reboot: [1416]Systemd-250 -- - * recode-sr-latin: [1417]Gettext-0.21 -- - * refer: [1418]Groff-1.22.4 -- - * rename: [1419]Util-linux-2.37.4 -- - * renice: [1420]Util-linux-2.37.4 -- - * reset: [1421]Ncurses-6.3 -- - * resize2fs: [1422]E2fsprogs-1.46.5 -- - * resizepart: [1423]Util-linux-2.37.4 -- - * resolvconf: [1424]Systemd-250 -- - * resolvectl: [1425]Systemd-250 -- - * rev: [1426]Util-linux-2.37.4 -- - * rkfill: [1427]Util-linux-2.37.4 -- - * rm: [1428]Coreutils-9.0 -- - * rmdir: [1429]Coreutils-9.0 -- - * rmmod: [1430]Kmod-29 -- - * roff2dvi: [1431]Groff-1.22.4 -- - * roff2html: [1432]Groff-1.22.4 -- - * roff2pdf: [1433]Groff-1.22.4 -- - * roff2ps: [1434]Groff-1.22.4 -- - * roff2text: [1435]Groff-1.22.4 -- - * roff2x: [1436]Groff-1.22.4 -- - * routef: [1437]IPRoute2-5.16.0 -- - * routel: [1438]IPRoute2-5.16.0 -- - * rtacct: [1439]IPRoute2-5.16.0 -- - * rtcwake: [1440]Util-linux-2.37.4 -- - * rtmon: [1441]IPRoute2-5.16.0 -- - * rtpr: [1442]IPRoute2-5.16.0 -- - * rtstat: [1443]IPRoute2-5.16.0 -- - * runcon: [1444]Coreutils-9.0 -- - * runlevel: [1445]Systemd-250 -- - * runtest: [1446]DejaGNU-1.6.3 -- - * rview: [1447]Vim-8.2.4383 -- - * rvim: [1448]Vim-8.2.4383 -- - * script: [1449]Util-linux-2.37.4 -- - * scriptlive: [1450]Util-linux-2.37.4 -- - * scriptreplay: [1451]Util-linux-2.37.4 -- - * sdiff: [1452]Diffutils-3.8 -- - * sed: [1453]Sed-4.8 -- - * seq: [1454]Coreutils-9.0 -- - * setarch: [1455]Util-linux-2.37.4 -- - * setcap: [1456]Libcap-2.63 -- - * setfacl: [1457]Acl-2.3.1 -- - * setfattr: [1458]Attr-2.5.1 -- - * setfont: [1459]Kbd-2.4.0 -- - * setkeycodes: [1460]Kbd-2.4.0 -- - * setleds: [1461]Kbd-2.4.0 -- - * setmetamode: [1462]Kbd-2.4.0 -- - * setsid: [1463]Util-linux-2.37.4 -- - * setterm: [1464]Util-linux-2.37.4 -- - * setvtrgb: [1465]Kbd-2.4.0 -- - * sfdisk: [1466]Util-linux-2.37.4 -- - * sg: [1467]Shadow-4.11.1 -- - * sh: [1468]Bash-5.1.16 -- - * sha1sum: [1469]Coreutils-9.0 -- - * sha224sum: [1470]Coreutils-9.0 -- - * sha256sum: [1471]Coreutils-9.0 -- - * sha384sum: [1472]Coreutils-9.0 -- - * sha512sum: [1473]Coreutils-9.0 -- - * shasum: [1474]Perl-5.34.0 -- - * showconsolefont: [1475]Kbd-2.4.0 -- - * showkey: [1476]Kbd-2.4.0 -- - * shred: [1477]Coreutils-9.0 -- - * shuf: [1478]Coreutils-9.0 -- - * shutdown: [1479]Systemd-250 -- - * size: [1480]Binutils-2.38 -- - * slabtop: [1481]Procps-ng-3.3.17 -- - * sleep: [1482]Coreutils-9.0 -- - * sln: [1483]Glibc-2.35 -- - * soelim: [1484]Groff-1.22.4 -- - * sort: [1485]Coreutils-9.0 -- - * sotruss: [1486]Glibc-2.35 -- - * splain: [1487]Perl-5.34.0 -- - * split: [1488]Coreutils-9.0 -- - * sprof: [1489]Glibc-2.35 -- - * ss: [1490]IPRoute2-5.16.0 -- - * stat: [1491]Coreutils-9.0 -- - * stdbuf: [1492]Coreutils-9.0 -- - * strings: [1493]Binutils-2.38 -- - * strip: [1494]Binutils-2.38 -- - * stty: [1495]Coreutils-9.0 -- - * su: [1496]Shadow-4.11.1 -- - * sulogin: [1497]Util-linux-2.37.4 -- - * sum: [1498]Coreutils-9.0 -- - * swaplabel: [1499]Util-linux-2.37.4 -- - * swapoff: [1500]Util-linux-2.37.4 -- - * swapon: [1501]Util-linux-2.37.4 -- - * switch_root: [1502]Util-linux-2.37.4 -- - * sync: [1503]Coreutils-9.0 -- - * sysctl: [1504]Procps-ng-3.3.17 -- - * systemctl: [1505]Systemd-250 -- - * systemd-analyze: [1506]Systemd-250 -- - * systemd-ask-password: [1507]Systemd-250 -- - * systemd-cat: [1508]Systemd-250 -- - * systemd-cgls: [1509]Systemd-250 -- - * systemd-cgtop: [1510]Systemd-250 -- - * systemd-creds: [1511]Systemd-250 -- - * systemd-delta: [1512]Systemd-250 -- - * systemd-detect-virt: [1513]Systemd-250 -- - * systemd-dissect: [1514]Systemd-250 -- - * systemd-escape: [1515]Systemd-250 -- - * systemd-hwdb: [1516]Systemd-250 -- - * systemd-id128: [1517]Systemd-250 -- - * systemd-inhibit: [1518]Systemd-250 -- - * systemd-machine-id-setup: [1519]Systemd-250 -- - * systemd-mount: [1520]Systemd-250 -- - * systemd-notify: [1521]Systemd-250 -- - * systemd-nspawn: [1522]Systemd-250 -- - * systemd-path: [1523]Systemd-250 -- - * systemd-repart: [1524]Systemd-250 -- - * systemd-resolve: [1525]Systemd-250 -- - * systemd-run: [1526]Systemd-250 -- - * systemd-socket-activate: [1527]Systemd-250 -- - * systemd-sysext: [1528]Systemd-250 -- - * systemd-tmpfiles: [1529]Systemd-250 -- - * systemd-tty-ask-password-agent: [1530]Systemd-250 -- - * systemd-umount: [1531]Systemd-250 -- - * tabs: [1532]Ncurses-6.3 -- - * tac: [1533]Coreutils-9.0 -- - * tail: [1534]Coreutils-9.0 -- - * talk: [1535]Inetutils-2.2 -- - * tar: [1536]Tar-1.34 -- - * taskset: [1537]Util-linux-2.37.4 -- - * tbl: [1538]Groff-1.22.4 -- - * tc: [1539]IPRoute2-5.16.0 -- - * tclsh: [1540]Tcl-8.6.12 -- - * tclsh8.6: [1541]Tcl-8.6.12 -- - * tee: [1542]Coreutils-9.0 -- - * telinit: [1543]Systemd-250 -- - * telnet: [1544]Inetutils-2.2 -- - * test: [1545]Coreutils-9.0 -- - * texi2dvi: [1546]Texinfo-6.8 -- - * texi2pdf: [1547]Texinfo-6.8 -- - * texi2any: [1548]Texinfo-6.8 -- - * texindex: [1549]Texinfo-6.8 -- - * tfmtodit: [1550]Groff-1.22.4 -- - * tftp: [1551]Inetutils-2.2 -- - * tic: [1552]Ncurses-6.3 -- - * timedatectl: [1553]Systemd-250 -- - * timeout: [1554]Coreutils-9.0 -- - * tload: [1555]Procps-ng-3.3.17 -- - * toe: [1556]Ncurses-6.3 -- - * top: [1557]Procps-ng-3.3.17 -- - * touch: [1558]Coreutils-9.0 -- - * tput: [1559]Ncurses-6.3 -- - * tr: [1560]Coreutils-9.0 -- - * traceroute: [1561]Inetutils-2.2 -- - * troff: [1562]Groff-1.22.4 -- - * true: [1563]Coreutils-9.0 -- - * truncate: [1564]Coreutils-9.0 -- - * tset: [1565]Ncurses-6.3 -- - * tsort: [1566]Coreutils-9.0 -- - * tty: [1567]Coreutils-9.0 -- - * tune2fs: [1568]E2fsprogs-1.46.5 -- - * tzselect: [1569]Glibc-2.35 -- - * uclampset: [1570]Util-linux-2.37.4 -- - * udevadm: [1571]Systemd-250 -- - * ul: [1572]Util-linux-2.37.4 -- - * umount: [1573]Util-linux-2.37.4 -- - * uname: [1574]Coreutils-9.0 -- - * uname26: [1575]Util-linux-2.37.4 -- - * uncompress: [1576]Gzip-1.11 -- - * unexpand: [1577]Coreutils-9.0 -- - * unicode_start: [1578]Kbd-2.4.0 -- - * unicode_stop: [1579]Kbd-2.4.0 -- - * uniq: [1580]Coreutils-9.0 -- - * unlink: [1581]Coreutils-9.0 -- - * unlzma: [1582]Xz-5.2.5 -- - * unshare: [1583]Util-linux-2.37.4 -- - * unxz: [1584]Xz-5.2.5 -- - * updatedb: [1585]Findutils-4.9.0 -- - * uptime: [1586]Procps-ng-3.3.17 -- - * useradd: [1587]Shadow-4.11.1 -- - * userdel: [1588]Shadow-4.11.1 -- - * usermod: [1589]Shadow-4.11.1 -- - * users: [1590]Coreutils-9.0 -- - * utmpdump: [1591]Util-linux-2.37.4 -- - * uuidd: [1592]Util-linux-2.37.4 -- - * uuidgen: [1593]Util-linux-2.37.4 -- - * uuidparse: [1594]Util-linux-2.37.4 -- - * vdir: [1595]Coreutils-9.0 -- - * vi: [1596]Vim-8.2.4383 -- - * view: [1597]Vim-8.2.4383 -- - * vigr: [1598]Shadow-4.11.1 -- - * vim: [1599]Vim-8.2.4383 -- - * vimdiff: [1600]Vim-8.2.4383 -- - * vimtutor: [1601]Vim-8.2.4383 -- - * vipw: [1602]Shadow-4.11.1 -- - * vmstat: [1603]Procps-ng-3.3.17 -- - * w: [1604]Procps-ng-3.3.17 -- - * wall: [1605]Util-linux-2.37.4 -- - * watch: [1606]Procps-ng-3.3.17 -- - * wc: [1607]Coreutils-9.0 -- - * wdctl: [1608]Util-linux-2.37.4 -- - * whatis: [1609]Man-DB-2.10.1 -- - * whereis: [1610]Util-linux-2.37.4 -- - * who: [1611]Coreutils-9.0 -- - * whoami: [1612]Coreutils-9.0 -- - * wipefs: [1613]Util-linux-2.37.4 -- - * x86_64: [1614]Util-linux-2.37.4 -- - * xargs: [1615]Findutils-4.9.0 -- - * xgettext: [1616]Gettext-0.21 -- - * xmlwf: [1617]Expat-2.4.6 -- - * xsubpp: [1618]Perl-5.34.0 -- - * xtrace: [1619]Glibc-2.35 -- - * xxd: [1620]Vim-8.2.4383 -- - * xz: [1621]Xz-5.2.5 -- - * xzcat: [1622]Xz-5.2.5 -- - * xzcmp: [1623]Xz-5.2.5 -- - * xzdec: [1624]Xz-5.2.5 -- - * xzdiff: [1625]Xz-5.2.5 -- - * xzegrep: [1626]Xz-5.2.5 -- - * xzfgrep: [1627]Xz-5.2.5 -- - * xzgrep: [1628]Xz-5.2.5 -- - * xzless: [1629]Xz-5.2.5 -- - * xzmore: [1630]Xz-5.2.5 -- - * yacc: [1631]Bison-3.8.2 -- - * yes: [1632]Coreutils-9.0 -- - * zcat: [1633]Gzip-1.11 -- - * zcmp: [1634]Gzip-1.11 -- - * zdiff: [1635]Gzip-1.11 -- - * zdump: [1636]Glibc-2.35 -- - * zegrep: [1637]Gzip-1.11 -- - * zfgrep: [1638]Gzip-1.11 -- - * zforce: [1639]Gzip-1.11 -- - * zgrep: [1640]Gzip-1.11 -- - * zic: [1641]Glibc-2.35 -- - * zipdetails: [1642]Perl-5.34.0 -- - * zless: [1643]Gzip-1.11 -- - * zmore: [1644]Gzip-1.11 -- - * znew: [1645]Gzip-1.11 -- - * zramctl: [1646]Util-linux-2.37.4 -- - * zstd: [1647]Zstd-1.5.2 -- - * zstdgrep: [1648]Zstd-1.5.2 -- - * zstdless: [1649]Zstd-1.5.2 -- - - * Expat: [1650]XML::Parser-2.46 -- - * ld-2.35.so: [1651]Glibc-2.35 -- - * libacl: [1652]Acl-2.3.1 -- - * libanl: [1653]Glibc-2.35 -- - * libasprintf: [1654]Gettext-0.21 -- - * libattr: [1655]Attr-2.5.1 -- - * libbfd: [1656]Binutils-2.38 -- - * libblkid: [1657]Util-linux-2.37.4 -- - * libBrokenLocale: [1658]Glibc-2.35 -- - * libbz2: [1659]Bzip2-1.0.8 -- - * libc: [1660]Glibc-2.35 -- - * libcap: [1661]Libcap-2.63 -- - * libcheck: [1662]Check-0.15.2 -- - * libcom_err: [1663]E2fsprogs-1.46.5 -- - * libcrypt: [1664]Glibc-2.35 -- - * libcrypto.so: [1665]OpenSSL-3.0.1 -- - * libctf: [1666]Binutils-2.38 -- - * libctf-nobfd: [1667]Binutils-2.38 -- - * libcursesw: [1668]Ncurses-6.3 -- - * libc_malloc_debug: [1669]Glibc-2.35 -- - * libdbus-1: [1670]D-Bus-1.12.20 -- - * libdl: [1671]Glibc-2.35 -- - * libe2p: [1672]E2fsprogs-1.46.5 -- - * libelf: [1673]Libelf oriundo de Elfutils-0.186 -- - * libexpat: [1674]Expat-2.4.6 -- - * libexpect-5.45.4: [1675]Expect-5.45.4 -- - * libext2fs: [1676]E2fsprogs-1.46.5 -- - * libfdisk: [1677]Util-linux-2.37.4 -- - * libffi: [1678]Libffi-3.4.2 - * libfl: [1679]Flex-2.6.4 -- - * libformw: [1680]Ncurses-6.3 -- - * libg: [1681]Glibc-2.35 -- - * libgcc: [1682]GCC-11.2.0 -- - * libgcov: [1683]GCC-11.2.0 -- - * libgdbm: [1684]GDBM-1.23 -- - * libgdbm_compat: [1685]GDBM-1.23 -- - * libgettextlib: [1686]Gettext-0.21 -- - * libgettextpo: [1687]Gettext-0.21 -- - * libgettextsrc: [1688]Gettext-0.21 -- - * libgmp: [1689]GMP-6.2.1 -- - * libgmpxx: [1690]GMP-6.2.1 -- - * libgomp: [1691]GCC-11.2.0 -- - * libhistory: [1692]Readline-8.1.2 -- - * libitm: [1693]GCC-11.2.0 -- - * libkmod: [1694]Kmod-29 - * liblsan: [1695]GCC-11.2.0 -- - * libltdl: [1696]Libtool-2.4.6 -- - * liblto_plugin: [1697]GCC-11.2.0 -- - * liblzma: [1698]Xz-5.2.5 -- - * libm: [1699]Glibc-2.35 -- - * libmagic: [1700]File-5.41 -- - * libman: [1701]Man-DB-2.10.1 -- - * libmandb: [1702]Man-DB-2.10.1 -- - * libmcheck: [1703]Glibc-2.35 -- - * libmemusage: [1704]Glibc-2.35 -- - * libmenuw: [1705]Ncurses-6.3 -- - * libmount: [1706]Util-linux-2.37.4 -- - * libmpc: [1707]MPC-1.2.1 -- - * libmpfr: [1708]MPFR-4.1.0 -- - * libmvec: [1709]Glibc-2.35 -- - * libncursesw: [1710]Ncurses-6.3 -- - * libnsl: [1711]Glibc-2.35 -- - * libnss_*: [1712]Glibc-2.35 -- - * libopcodes: [1713]Binutils-2.38 -- - * libpanelw: [1714]Ncurses-6.3 -- - * libpcprofile: [1715]Glibc-2.35 -- - * libpipeline: [1716]Libpipeline-1.5.5 - * libprocps: [1717]Procps-ng-3.3.17 -- - * libpsx: [1718]Libcap-2.63 -- - * libpthread: [1719]Glibc-2.35 -- - * libquadmath: [1720]GCC-11.2.0 -- - * libreadline: [1721]Readline-8.1.2 -- - * libresolv: [1722]Glibc-2.35 -- - * librt: [1723]Glibc-2.35 -- - * libsmartcols: [1724]Util-linux-2.37.4 -- - * libss: [1725]E2fsprogs-1.46.5 -- - * libssl.so: [1726]OpenSSL-3.0.1 -- - * libssp: [1727]GCC-11.2.0 -- - * libstdbuf: [1728]Coreutils-9.0 -- - * libstdc++: [1729]GCC-11.2.0 -- - * libstdc++fs: [1730]GCC-11.2.0 -- - * libsubid: [1731]Shadow-4.11.1 -- - * libsupc++: [1732]GCC-11.2.0 -- - * libsystemd: [1733]Systemd-250 -- - * libtcl8.6.so: [1734]Tcl-8.6.12 -- - * libtclstub8.6.a: [1735]Tcl-8.6.12 -- - * libtextstyle: [1736]Gettext-0.21 -- - * libthread_db: [1737]Glibc-2.35 -- - * libtsan: [1738]GCC-11.2.0 -- - * libubsan: [1739]GCC-11.2.0 -- - * libudev: [1740]Systemd-250 -- - * libutil: [1741]Glibc-2.35 -- - * libuuid: [1742]Util-linux-2.37.4 -- - * liby: [1743]Bison-3.8.2 -- - * libz: [1744]Zlib-1.2.11 -- - * libzstd: [1745]Zstd-1.5.2 -- - * preloadable_libintl: [1746]Gettext-0.21 -- - - * clock: - + configuring: [1747]Configurando o relógio do sistema - * console: - + configuring: [1748]Configurando o Console do Linux - * hostname: - + configuring: [1749]Configurando o nome de dispositivo do - sistema - * localnet: - + /etc/hosts: [1750]Personalizando o Arquivo /etc/hosts - * network: - + /etc/hosts: [1751]Personalizando o Arquivo /etc/hosts - + configuring: [1752]Configuração de Rede Geral - * dwp: [1753]Binutils-2.38 -- - - * /boot/config-5.16.9: [1754]Linux-5.16.9 -- - * /boot/System.map-5.16.9: [1755]Linux-5.16.9 -- - * /dev/*: [1756]Preparando Sistemas de Arquivos Virtuais de Kernel - * /etc/fstab: [1757]Criando o Arquivo /etc/fstab - * /etc/group: [1758]Criando Arquivos Essenciais e Links Simbólicos - * /etc/hosts: [1759]Personalizando o Arquivo /etc/hosts - * /etc/inputrc: [1760]Criando o Arquivo /etc/inputrc - * /etc/ld.so.conf: [1761]Configurando o Carregador Dinâmico - * /etc/lfs-release: [1762]O Fim - * /etc/localtime: [1763]Configurando Glibc - * /etc/lsb-release: [1764]O Fim - * /etc/modprobe.d/usb.conf: [1765]Configurando a Ordem de - Carregamento de Módulos do Linux - * /etc/nsswitch.conf: [1766]Configurando Glibc - * /etc/os-release: [1767]O Fim - * /etc/passwd: [1768]Criando Arquivos Essenciais e Links Simbólicos - * /etc/protocols: [1769]Iana-Etc-20220207 - * /etc/resolv.conf: [1770]Criando o Arquivo /etc/resolv.conf - * /etc/services: [1771]Iana-Etc-20220207 - * /etc/vimrc: [1772]Configurando Vim - * /run/utmp: [1773]Criando Arquivos Essenciais e Links Simbólicos - * /usr/include/asm-generic/*.h: [1774]Cabeçalhos da API do - Linux-5.16.9 -- - * /usr/include/asm/*.h: [1775]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/drm/*.h: [1776]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/linux/*.h: [1777]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/misc/*.h: [1778]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/mtd/*.h: [1779]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/rdma/*.h: [1780]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/scsi/*.h: [1781]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/sound/*.h: [1782]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/video/*.h: [1783]Cabeçalhos da API do Linux-5.16.9 -- - * /usr/include/xen/*.h: [1784]Cabeçalhos da API do Linux-5.16.9 -- - * /var/log/btmp: [1785]Criando Arquivos Essenciais e Links Simbólicos - * /var/log/lastlog: [1786]Criando Arquivos Essenciais e Links - Simbólicos - * /var/log/wtmp: [1787]Criando Arquivos Essenciais e Links Simbólicos - * /etc/locale.conf: [1788]Configurando o Locale do Sistema - * /etc/shells: [1789]Criando o Arquivo /etc/shells - * man pages: [1790]Man-pages-5.13 -- - * Systemd Customization: [1791]Uso e Configuração do Systemd - -Referências - - Ligações visíveis: - 1. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 2. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 3. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-foreword - 4. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-audience - 5. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-architecture - 6. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-prerequisites - 7. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-standards - 8. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-why - 9. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-typography - 10. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-organization - 11. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-errata - 12. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-how - 13. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-whatsnew - 14. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-changelog - 15. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 16. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-askforhelp - 17. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-introduction - 18. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 19. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-stages - 20. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingpartition - 21. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-creatingfilesystem - 22. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 23. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-mounting - 24. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-introduction - 25. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-packages - 26. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-materials-patches - 27. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-introduction - 28. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingminlayout - 29. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-addinguser - 30. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 31. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-aboutsbus - 32. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-abouttestsuites - 33. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-part3intro-intro - 34. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 35. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 36. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction - 37. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 38. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 39. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 40. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 41. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 42. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-cross - 43. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 44. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 45. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 46. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 47. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 48. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 49. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 50. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 51. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 52. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 53. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 54. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 55. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 56. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 57. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 58. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 59. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 60. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-introduction-chroot - 61. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-changingowner - 62. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 63. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 64. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-creatingdirs - 65. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 66. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 67. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 68. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 69. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 70. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 71. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 72. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 73. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-cleanup - 74. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-introduction - 75. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgmgt - 76. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 77. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 78. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 79. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 80. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 81. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 82. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 83. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 84. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 85. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 86. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 87. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 88. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 89. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 90. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 91. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 92. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 93. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 94. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 95. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 96. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 97. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 98. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 99. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 100. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 101. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 102. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 103. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 104. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 105. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 106. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 107. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 108. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 109. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 110. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 111. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 112. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 113. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 114. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 115. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 116. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 117. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 118. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 119. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 120. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 121. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 122. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 123. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 124. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 125. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 126. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 127. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 128. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 129. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 130. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 131. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 132. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 133. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 134. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 135. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 136. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 137. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 138. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 139. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 140. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 141. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 142. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-markupsafe - 143. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-jinja2 - 144. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 145. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 146. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 147. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 148. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 149. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 150. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-aboutdebug - 151. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-stripping - 152. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-cleanup - 153. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-introduction - 154. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 155. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 156. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 157. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock - 158. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console - 159. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-locale - 160. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc - 161. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells - 162. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-systemd-custom - 163. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-introduction - 164. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 165. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 166. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 167. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend - 168. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-getcounted - 169. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-reboot - 170. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-whatnow - 171. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#appendixa - 172. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#appendixb - 173. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#appendixc - 174. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#Licenses - 175. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#CC - 176. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#MIT - 177. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#FDL - 178. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#idm19065 - 179. https://www.linuxfromscratch.org/~thomas/multilib/index.html - 180. http://www.tldp.org/HOWTO/Software-Building-HOWTO.html - 181. http://moi.vonos.net/linux/beginners-installing-from-source/ - 182. http://pubs.opengroup.org/onlinepubs/9699919799/ - 183. http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html - 184. http://refspecs.linuxfoundation.org/lsb.shtml - 185. https://www.linuxfromscratch.org/ - 186. https://www.linuxfromscratch.org/lfs/errata/11.1-systemd/ - 187. https://www.linuxfromscratch.org/lfs/advisories/ - 188. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-partitioning - 189. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-getting-materials - 190. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 191. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-final-preps - 192. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 193. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 194. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 195. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 196. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 197. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 198. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-config - 199. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 200. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-finalizing - 201. https://www.linuxfromscratch.org/mirrors.html - 202. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 203. https://wiki.linuxfromscratch.org/lfs/ticket/5011 - 204. https://wiki.linuxfromscratch.org/lfs/ticket/5010 - 205. https://wiki.linuxfromscratch.org/lfs/ticket/5009 - 206. https://wiki.linuxfromscratch.org/lfs/ticket/5008 - 207. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 208. https://wiki.linuxfromscratch.org/lfs/ticket/5006 - 209. https://wiki.linuxfromscratch.org/lfs/ticket/5004 - 210. https://wiki.linuxfromscratch.org/lfs/ticket/5005 - 211. https://wiki.linuxfromscratch.org/lfs/ticket/5007 - 212. https://wiki.linuxfromscratch.org/lfs/ticket/4998 - 213. https://wiki.linuxfromscratch.org/lfs/ticket/5002 - 214. https://wiki.linuxfromscratch.org/lfs/ticket/5000 - 215. https://wiki.linuxfromscratch.org/lfs/ticket/5001 - 216. https://wiki.linuxfromscratch.org/lfs/ticket/4992 - 217. https://wiki.linuxfromscratch.org/lfs/ticket/4999 - 218. https://wiki.linuxfromscratch.org/lfs/ticket/4996 - 219. https://wiki.linuxfromscratch.org/lfs/ticket/4995 - 220. https://wiki.linuxfromscratch.org/lfs/ticket/4993 - 221. https://wiki.linuxfromscratch.org/lfs/ticket/4994 - 222. https://wiki.linuxfromscratch.org/lfs/ticket/4991 - 223. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 224. https://wiki.linuxfromscratch.org/lfs/ticket/4988 - 225. https://wiki.linuxfromscratch.org/lfs/ticket/4989 - 226. https://wiki.linuxfromscratch.org/lfs/ticket/4987 - 227. https://wiki.linuxfromscratch.org/lfs/ticket/4979 - 228. https://wiki.linuxfromscratch.org/lfs/ticket/4990 - 229. https://wiki.linuxfromscratch.org/lfs/ticket/4982 - 230. https://wiki.linuxfromscratch.org/lfs/ticket/4975 - 231. https://wiki.linuxfromscratch.org/lfs/ticket/4984 - 232. https://wiki.linuxfromscratch.org/lfs/ticket/4985 - 233. https://wiki.linuxfromscratch.org/lfs/ticket/4976 - 234. https://wiki.linuxfromscratch.org/lfs/ticket/4980 - 235. https://wiki.linuxfromscratch.org/lfs/ticket/4983 - 236. https://wiki.linuxfromscratch.org/lfs/ticket/4977 - 237. https://wiki.linuxfromscratch.org/lfs/ticket/4978 - 238. https://wiki.linuxfromscratch.org/lfs/ticket/4981 - 239. https://wiki.linuxfromscratch.org/lfs/ticket/4974 - 240. https://wiki.linuxfromscratch.org/lfs/ticket/4972 - 241. https://wiki.linuxfromscratch.org/lfs/ticket/4970 - 242. https://wiki.linuxfromscratch.org/lfs/ticket/4969 - 243. https://wiki.linuxfromscratch.org/lfs/ticket/4967 - 244. https://wiki.linuxfromscratch.org/lfs/ticket/4962 - 245. https://wiki.linuxfromscratch.org/lfs/ticket/4922 - 246. https://wiki.linuxfromscratch.org/lfs/ticket/4914 - 247. https://wiki.linuxfromscratch.org/lfs/ticket/4971 - 248. https://wiki.linuxfromscratch.org/lfs/ticket/4973 - 249. https://wiki.linuxfromscratch.org/lfs/ticket/4863 - 250. https://wiki.linuxfromscratch.org/lfs/ticket/4866 - 251. https://wiki.linuxfromscratch.org/lfs/ticket/4864 - 252. https://wiki.linuxfromscratch.org/lfs/ticket/4865 - 253. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 254. https://wiki.linuxfromscratch.org/lfs/ticket/4957 - 255. https://wiki.linuxfromscratch.org/lfs/ticket/4959 - 256. https://wiki.linuxfromscratch.org/lfs/ticket/4960 - 257. https://wiki.linuxfromscratch.org/lfs/ticket/4956 - 258. https://wiki.linuxfromscratch.org/lfs/ticket/4955 - 259. https://wiki.linuxfromscratch.org/lfs/ticket/4954 - 260. https://wiki.linuxfromscratch.org/lfs/ticket/4953 - 261. https://wiki.linuxfromscratch.org/lfs/ticket/4952 - 262. https://wiki.linuxfromscratch.org/lfs/ticket/4951 - 263. https://wiki.linuxfromscratch.org/lfs/ticket/4950 - 264. https://wiki.linuxfromscratch.org/lfs/ticket/4949 - 265. https://wiki.linuxfromscratch.org/lfs/ticket/4948 - 266. https://wiki.linuxfromscratch.org/lfs/ticket/4947 - 267. https://wiki.linuxfromscratch.org/lfs/ticket/4946 - 268. https://wiki.linuxfromscratch.org/lfs/ticket/4945 - 269. https://wiki.linuxfromscratch.org/lfs/ticket/4944 - 270. https://wiki.linuxfromscratch.org/lfs/ticket/4943 - 271. https://wiki.linuxfromscratch.org/lfs/ticket/4942 - 272. https://wiki.linuxfromscratch.org/lfs/ticket/4941 - 273. https://wiki.linuxfromscratch.org/lfs/ticket/4940 - 274. https://wiki.linuxfromscratch.org/lfs/ticket/4939 - 275. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 276. https://wiki.linuxfromscratch.org/lfs/ticket/4934 - 277. https://wiki.linuxfromscratch.org/lfs/ticket/4938 - 278. https://wiki.linuxfromscratch.org/lfs/ticket/4937 - 279. https://wiki.linuxfromscratch.org/lfs/ticket/4932 - 280. https://wiki.linuxfromscratch.org/lfs/ticket/4933 - 281. https://wiki.linuxfromscratch.org/lfs/ticket/4936 - 282. https://wiki.linuxfromscratch.org/lfs/ticket/4935 - 283. https://wiki.linuxfromscratch.org/lfs/ticket/4500 - 284. https://wiki.linuxfromscratch.org/lfs/ticket/4722 - 285. https://wiki.linuxfromscratch.org/lfs/ticket/4929 - 286. https://wiki.linuxfromscratch.org/lfs/ticket/4931 - 287. https://wiki.linuxfromscratch.org/lfs/ticket/4925 - 288. https://wiki.linuxfromscratch.org/lfs/ticket/4926 - 289. https://wiki.linuxfromscratch.org/lfs/ticket/4928 - 290. https://wiki.linuxfromscratch.org/lfs/ticket/4930 - 291. https://wiki.linuxfromscratch.org/lfs/ticket/4923 - 292. https://wiki.linuxfromscratch.org/lfs/ticket/4916 - 293. https://wiki.linuxfromscratch.org/lfs/ticket/4913 - 294. https://wiki.linuxfromscratch.org/lfs/ticket/4912 - 295. https://wiki.linuxfromscratch.org/lfs/ticket/4917 - 296. https://wiki.linuxfromscratch.org/lfs/ticket/4918 - 297. https://wiki.linuxfromscratch.org/lfs/ticket/4920 - 298. https://wiki.linuxfromscratch.org/lfs/ticket/4919 - 299. https://wiki.linuxfromscratch.org/lfs/ticket/4921 - 300. https://wiki.linuxfromscratch.org/lfs/ticket/4908 - 301. https://www.linuxfromscratch.org/faq/ - 302. https://www.linuxfromscratch.org/search.html - 303. https://www.linuxfromscratch.org/mail.html - 304. https://www.linuxfromscratch.org/mirrors.html - 305. https://www.linuxfromscratch.org/faq/#generalfaq - 306. https://www.linuxfromscratch.org/hints/downloads/files/errors.txt - 307. https://www.linuxfromscratch.org/search.html - 308. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-resources - 309. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#version-check - 310. http://catb.org/~esr/faqs/smart-questions.html - 311. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 312. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 313. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-bootable - 314. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 315. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 316. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 317. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/raid.html - 318. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/aboutlvm.html - 319. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/initramfs.html - 320. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab - 321. http://en.wikipedia.org/wiki/Comparison_of_file_systems - 322. http://www.google.com/ - 323. https://www.linuxfromscratch.org/lfs/mirrors.html#files - 324. https://www.linuxfromscratch.org/mirrors.html#files - 325. file:///tmp/1/wget-list - 326. file:///tmp/1/md5sums - 327. https://savannah.nongnu.org/projects/acl - 328. https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz - 329. https://savannah.nongnu.org/projects/attr - 330. https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz - 331. https://www.gnu.org/software/autoconf/ - 332. https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz - 333. https://www.gnu.org/software/automake/ - 334. https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz - 335. https://www.gnu.org/software/bash/ - 336. https://ftp.gnu.org/gnu/bash/bash-5.1.16.tar.gz - 337. https://git.yzena.com/gavin/bc - 338. https://github.com/gavinhoward/bc/releases/download/5.2.2/bc-5.2.2.tar.xz - 339. https://www.gnu.org/software/binutils/ - 340. https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.xz - 341. https://www.gnu.org/software/bison/ - 342. https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz - 343. https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz - 344. https://libcheck.github.io/check - 345. https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz - 346. https://www.gnu.org/software/coreutils/ - 347. https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz - 348. https://www.freedesktop.org/wiki/Software/dbus - 349. https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz - 350. https://www.gnu.org/software/dejagnu/ - 351. https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz - 352. https://www.gnu.org/software/diffutils/ - 353. https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz - 354. http://e2fsprogs.sourceforge.net/ - 355. https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz - 356. https://sourceware.org/elfutils/ - 357. https://sourceware.org/ftp/elfutils/0.186/elfutils-0.186.tar.bz2 - 358. https://libexpat.github.io/ - 359. https://prdownloads.sourceforge.net/expat/expat-2.4.6.tar.xz - 360. https://www.linuxfromscratch.org/lfs/advisories/ - 361. https://core.tcl.tk/expect/ - 362. https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz - 363. https://www.darwinsys.com/file/ - 364. https://astron.com/pub/file/file-5.41.tar.gz - 365. https://www.gnu.org/software/findutils/ - 366. https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz - 367. https://github.com/westes/flex - 368. https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz - 369. https://www.gnu.org/software/gawk/ - 370. https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.xz - 371. https://gcc.gnu.org/ - 372. https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz - 373. https://www.gnu.org/software/gdbm/ - 374. https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz - 375. https://www.gnu.org/software/gettext/ - 376. https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz - 377. https://www.gnu.org/software/libc/ - 378. https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.xz - 379. https://www.gnu.org/software/gmp/ - 380. https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz - 381. https://www.gnu.org/software/gperf/ - 382. https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz - 383. https://www.gnu.org/software/grep/ - 384. https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz - 385. https://www.gnu.org/software/groff/ - 386. https://ftp.gnu.org/gnu/groff/groff-1.22.4.tar.gz - 387. https://www.gnu.org/software/grub/ - 388. https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz - 389. https://www.gnu.org/software/gzip/ - 390. https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz - 391. https://www.iana.org/protocols - 392. https://github.com/Mic92/iana-etc/releases/download/20220207/iana-etc-20220207.tar.gz - 393. https://www.gnu.org/software/inetutils/ - 394. https://ftp.gnu.org/gnu/inetutils/inetutils-2.2.tar.xz - 395. https://freedesktop.org/wiki/Software/intltool - 396. https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz - 397. https://www.kernel.org/pub/linux/utils/net/iproute2/ - 398. https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.16.0.tar.xz - 399. https://jinja.palletsprojects.com/en/3.0.x/ - 400. https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-3.0.3.tar.gz - 401. https://kbd-project.org/ - 402. https://www.kernel.org/pub/linux/utils/kbd/kbd-2.4.0.tar.xz - 403. https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-29.tar.xz - 404. https://www.greenwoodsoftware.com/less/ - 405. https://www.greenwoodsoftware.com/less/less-590.tar.gz - 406. https://sites.google.com/site/fullycapable/ - 407. https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.63.tar.xz - 408. https://sourceware.org/libffi/ - 409. https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz - 410. http://libpipeline.nongnu.org/ - 411. https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz - 412. https://www.gnu.org/software/libtool/ - 413. https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz - 414. https://www.kernel.org/ - 415. https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz - 416. https://www.gnu.org/software/m4/ - 417. https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz - 418. https://www.gnu.org/software/make/ - 419. https://ftp.gnu.org/gnu/make/make-4.3.tar.gz - 420. https://www.nongnu.org/man-db/ - 421. https://download.savannah.gnu.org/releases/man-db/man-db-2.10.1.tar.xz - 422. https://www.kernel.org/doc/man-pages/ - 423. https://www.kernel.org/pub/linux/docs/man-pages/man-pages-5.13.tar.xz - 424. https://markupsafe.palletsprojects.com/en/2.0.x/ - 425. https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-2.0.1.tar.gz - 426. https://mesonbuild.com/ - 427. https://github.com/mesonbuild/meson/releases/download/0.61.1/meson-0.61.1.tar.gz - 428. http://www.multiprecision.org/ - 429. https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz - 430. https://www.mpfr.org/ - 431. https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz - 432. https://www.gnu.org/software/ncurses/ - 433. https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz - 434. https://ninja-build.org/ - 435. https://github.com/ninja-build/ninja/archive/v1.10.2/ninja-1.10.2.tar.gz - 436. https://www.openssl.org/ - 437. https://www.openssl.org/source/openssl-3.0.1.tar.gz - 438. https://savannah.gnu.org/projects/patch/ - 439. https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz - 440. https://www.perl.org/ - 441. https://www.cpan.org/src/5.0/perl-5.34.0.tar.xz - 442. https://www.freedesktop.org/wiki/Software/pkg-config - 443. https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz - 444. https://sourceforge.net/projects/procps-ng - 445. https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-3.3.17.tar.xz - 446. https://gitlab.com/psmisc/psmisc - 447. https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.4.tar.xz - 448. https://www.python.org/ - 449. https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz - 450. https://www.python.org/ftp/python/doc/3.10.2/python-3.10.2-docs-html.tar.bz2 - 451. https://tiswww.case.edu/php/chet/readline/rltop.html - 452. https://ftp.gnu.org/gnu/readline/readline-8.1.2.tar.gz - 453. https://www.gnu.org/software/sed/ - 454. https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz - 455. https://shadow-maint.github.io/shadow/ - 456. https://github.com/shadow-maint/shadow/releases/download/v4.11.1/shadow-4.11.1.tar.xz - 457. https://www.freedesktop.org/wiki/Software/systemd/ - 458. https://github.com/systemd/systemd/archive/v250/systemd-250.tar.gz - 459. https://www.freedesktop.org/wiki/Software/systemd/ - 460. https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-250.tar.xz - 461. https://www.gnu.org/software/tar/ - 462. https://ftp.gnu.org/gnu/tar/tar-1.34.tar.xz - 463. http://tcl.sourceforge.net/ - 464. https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz - 465. https://downloads.sourceforge.net/tcl/tcl8.6.12-html.tar.gz - 466. https://www.gnu.org/software/texinfo/ - 467. https://ftp.gnu.org/gnu/texinfo/texinfo-6.8.tar.xz - 468. https://www.iana.org/time-zones - 469. https://www.iana.org/time-zones/repository/releases/tzdata2021e.tar.gz - 470. https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/ - 471. https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.4.tar.xz - 472. https://www.vim.org/ - 473. https://anduin.linuxfromscratch.org/LFS/vim-8.2.4383.tar.gz - 474. https://github.com/vim/vim/releases - 475. https://github.com/chorny/XML-Parser - 476. https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz - 477. https://tukaani.org/xz - 478. https://tukaani.org/xz/xz-5.2.5.tar.xz - 479. https://www.zlib.net/ - 480. https://zlib.net/zlib-1.2.11.tar.xz - 481. https://facebook.github.io/zstd/ - 482. https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz - 483. https://www.linuxfromscratch.org/patches/lfs/11.1/binutils-2.38-lto_fix-1.patch - 484. https://www.linuxfromscratch.org/patches/lfs/11.1/bzip2-1.0.8-install_docs-1.patch - 485. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-i18n-1.patch - 486. https://www.linuxfromscratch.org/patches/lfs/11.1/coreutils-9.0-chmod_fix-1.patch - 487. https://www.linuxfromscratch.org/patches/lfs/11.1/glibc-2.35-fhs-1.patch - 488. https://www.linuxfromscratch.org/patches/lfs/11.1/kbd-2.4.0-backspace-1.patch - 489. https://www.linuxfromscratch.org/patches/lfs/11.1/perl-5.34.0-upstream_fixes-1.patch - 490. https://www.linuxfromscratch.org/patches/lfs/11.1/systemd-250-upstream_fixes-1.patch - 491. https://www.linuxfromscratch.org/patches/downloads/ - 492. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 493. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 494. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 495. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 496. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 497. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-toolchaintechnotes - 498. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 499. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 500. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 501. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 502. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 503. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 504. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 505. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 506. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 507. https://www.linuxfromscratch.org/lfs/faq.html#no-ptys - 508. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 509. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 510. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 511. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 512. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 513. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 514. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 515. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 516. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-hostreqs - 517. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-cross-tools - 518. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 519. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-generalinstructions - 520. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 521. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#buildinstr - 522. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 523. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 524. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-glibc - 525. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 526. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 527. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-preps-settingenviron - 528. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-m4 - 529. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 530. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-ncurses - 531. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bash - 532. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-coreutils - 533. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-diffutils - 534. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-file - 535. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-findutils - 536. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gawk - 537. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-grep - 538. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gzip - 539. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-make - 540. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-patch - 541. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-sed - 542. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-tar - 543. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-xz - 544. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-binutils - 545. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 546. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 547. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bindmount - 548. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfsmount - 549. https://refspecs.linuxfoundation.org/fhs.shtml - 550. http://refspecs.linuxfoundation.org/lsb.shtml - 551. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 552. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 553. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gcc - 554. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-gettext - 555. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-bison - 556. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-perl - 557. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 558. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-python - 559. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-texinfo - 560. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#contents-utillinux - 561. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 562. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-partitioning-aboutlfs - 563. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs - 564. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-chroot - 565. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 566. https://www.linuxfromscratch.org/blfs/view/stable-systemd/introduction/libraries.html - 567. https://www.linuxfromscratch.org/hints/downloads/files/ - 568. http://refspecs.linuxfoundation.org/lsb.shtml - 569. https://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt - 570. http://www.slackbook.org/html/package-management.html - 571. https://www.linuxfromscratch.org/hints/downloads/files/ - 572. https://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt - 573. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 574. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libidn2.html - 575. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html - 576. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 577. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles - 578. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gcc.html - 579. https://www.linuxfromscratch.org/lfs/build-logs/11.1/ - 580. https://gcc.gnu.org/ml/gcc-testresults/ - 581. https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html - 582. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 583. https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/x86-Options.html - 584. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/grub-efi.html - 585. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-grub - 586. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 587. http://www.skbuff.net/iputils/ - 588. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/editors.html - 589. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/vim.html - 590. ftp://ftp.vim.org/pub/vim/runtime/spell/ - 591. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/dbus.html - 592. https://www.linuxfromscratch.org/blfs/view/stable-systemd//general/valgrind.html - 593. https://www.linuxfromscratch.org/blfs/view/stable-systemd//general/gdb.html - 594. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkgmgmt-upgrade-issues - 595. https://www.linuxfromscratch.org/blfs/view/stable-systemd/introduction/la-files.html - 596. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-temporary-tools - 597. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-chroot-temporary-tools - 598. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 599. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hostname - 600. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts - 601. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 602. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 603. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock - 604. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console - 605. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-locale - 606. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc - 607. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-systemd-custom - 608. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 609. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 610. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-symlinks - 611. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 612. http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf - 613. http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf - 614. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 615. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network - 616. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/devices.html - 617. http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html - 618. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gdb.html - 619. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/hdparm.html - 620. https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt - 621. https://www.linuxfromscratch.org/blfs/view/stable-systemd/longindex.html#kernel-config-index - 622. http://www.kroah.com/lkn/ - 623. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/grub-setup.html#uefi-kernel - 624. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 625. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 626. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/grub-setup.html - 627. https://www.linuxfromscratch.org/blfs/view/stable-systemd/multimedia/libisoburn.html - 628. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chapter-building-system - 629. https://www.linuxfromscratch.org/cgi-bin/lfscounter.php - 630. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/lynx.html - 631. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/make-ca.html - 632. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gpm.html - 633. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/sudo.html - 634. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/openssh.html - 635. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/wget.html - 636. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/wpa_supplicant.html - 637. http://www.cert.org/ - 638. http://www.us-cert.gov/cas/signup.html - 639. http://www.securityfocus.com/archive - 640. https://www.linuxfromscratch.org/blfs/view/stable-systemd/ - 641. https://www.linuxfromscratch.org/hints/downloads/files/ - 642. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-intro-maillists - 643. http://www.tldp.org/ - 644. mailto:gerard@linuxfromscratch.org - 645. mailto:bdubbs@linuxfromscratch.org - 646. mailto:jim@linuxfromscratch.org - 647. mailto:pierre@linuxfromscratch.org - 648. mailto:dj@linuxfromscratch.org - 649. mailto:ken@linuxfromscratch.org - 650. mailto:macana@macana-es.com - 651. mailto:johan@linuxfromscratch.org - 652. mailto:jmengual@linuxfromscratch.org - 653. mailto:jlepiller@linuxfromscratch.org - 654. mailto:lizardo@linuxfromscratch.org - 655. mailto:tr@erdfunkstelle.de - 656. mailto:info@linuxfromscratch.org.ru - 657. mailto:helen@linuxfromscratch.org.ru - 658. mailto:scott@osuosl.org - 659. mailto:lost@l-w.net - 660. mailto:eujon.sellers@gmail.com - 661. mailto:justin@knierim.org - 662. mailto:manuel@linuxfromscratch.org - 663. mailto:lfalcon@thymbra.com - 664. mailto:guido@primerelay.net - 665. mailto:baafie@planet.nl - 666. mailto:sven.cranshoff@lineo.be - 667. mailto:info@aliensoft.org - 668. mailto:stuart@dontuse.ms - 669. mailto:admin@realhost.de - 670. mailto:Antonin.Sprinzl@tuwien.ac.at - 671. mailto:fredan-lfs@fredan.org - 672. mailto:franck@linuxpourtous.com - 673. mailto:baque@cict.fr - 674. mailto:gyouja@pilgrims.ru - 675. mailto:kontakt@wankoo.org - 676. mailto:info@linuxfromscratch.org.ru - 677. mailto:satit@wbac.ac.th - 678. mailto:info@shizu-net.jp - 679. http://www.initworld.com/ - 680. mailto:jason@dstc.edu.au - 681. mailto:theladyskye@linuxfromscratch.org - 682. mailto:matthew@linuxfromscratch.org - 683. mailto:nathan@linuxfromscratch.org - 684. mailto:jeroen@linuxfromscratch.org - 685. mailto:manuel@linuxfromscratch.org - 686. mailto:jhuntwork@linuxfromscratch.org - 687. mailto:bryan@linuxfromscratch.org - 688. mailto:nicholas@linuxfromscratch.org - 689. mailto:lizardo@linuxfromscratch.org - 690. mailto:randy@linuxfromscratch.org - 691. mailto:dnicholson@linuxfromscratch.org - 692. mailto:alexander@linuxfromscratch.org - 693. mailto:scot@linuxfromscratch.org - 694. mailto:renodr@linuxfromscratch.org - 695. mailto:ryan@linuxfromscratch.org - 696. mailto:gschafer@zip.com.au - 697. mailto:jwrober@linuxfromscratch.org - 698. mailto:tushar@linuxfromscratch.org - 699. mailto:jeremy@linuxfromscratch.org - 700. mailto:zwinkles@gmail.com - 701. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/emacs.html - 702. https://www.linuxfromscratch.org/blfs/view/stable-systemd/x/installing.html - 703. https://sourceware.org/elfutils/ - 704. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/doxygen.html - 705. https://metacpan.org/pod/Expect - 706. https://metacpan.org/pod/IO::Tty - 707. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/tk.html - 708. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libseccomp.html - 709. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libsigsegv.html - 710. http://gcc.gnu.org/wiki/GNAT - 711. https://repo.or.cz/isl.git - 712. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/pcre.html - 713. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libsigsegv.html - 714. https://www.linuxfromscratch.org/blfs/view/stable-systemd/pst/gs.html - 715. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/uchardet.html - 716. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 717. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/iptables.html - 718. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/pcre.html - 719. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 720. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/cpio.html - 721. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libsigsegv.html - 722. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/guile.html - 723. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libseccomp.html - 724. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/asciidoc.html - 725. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/doxygen.html - 726. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/emacs.html - 727. https://re2c.org/ - 728. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/ed.html - 729. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 730. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/glib2.html - 731. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/db.html - 732. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/libnsl.html - 733. https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/sqlite.html - 734. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/tk.html - 735. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cracklib.html - 736. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 737. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/btrfs-progs.html - 738. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/curl.html - 739. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/cryptsetup.html - 740. https://www.linuxfromscratch.org/blfs/view/stable-systemd/pst/docbook.html - 741. https://www.linuxfromscratch.org/blfs/view/stable-systemd/pst/docbook-xsl.html - 742. https://sourceware.org/elfutils/ - 743. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/git.html - 744. https://sourceforge.net/projects/gnu-efi/ - 745. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/gnutls.html - 746. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/iptables.html - 747. https://www.kernel.org/pub/linux/utils/kernel/kexec/ - 748. https://developers.yubico.com/libfido2/ - 749. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libgcrypt.html - 750. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libidn2.html - 751. https://www.gnu.org/software/libmicrohttpd/ - 752. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/libpwquality.html - 753. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libseccomp.html - 754. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libxkbcommon.html - 755. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/libxslt.html - 756. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 757. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/python-modules.html#lxml - 758. http://lz4.github.io/lz4/ - 759. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/make-ca.html - 760. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/p11-kit.html - 761. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/pcre2.html - 762. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/polkit.html - 763. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/qemu.html - 764. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/qrencode.html - 765. https://sourceforge.net/projects/linuxquota/ - 766. https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/rsync.html - 767. https://pypi.python.org/pypi/Sphinx - 768. https://tpm2-tss.readthedocs.io/en/latest/ - 769. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/valgrind.html - 770. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/zsh.html - 771. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/linux-pam.html - 772. https://www.linuxfromscratch.org/blfs/view/stable-systemd/postlfs/smartmontools.html - 773. https://www.linuxfromscratch.org/blfs/view/stable-systemd/x/installing.html - 774. https://www.linuxfromscratch.org/blfs/view/stable-systemd/x/gtk2.html - 775. http://lesstif.sourceforge.net/ - 776. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/ruby.html - 777. https://www.linuxfromscratch.org/blfs/view/stable-systemd/general/gpm.html - 778. http://lz4.github.io/lz4/ - 779. http://creativecommons.org/ - 780. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 781. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 782. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 783. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 784. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 785. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bash - 786. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 787. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 788. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass1 - 789. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-binutils-pass2 - 790. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 791. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-bison - 792. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 793. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 794. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 795. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-coreutils - 796. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 797. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 798. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 799. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-diffutils - 800. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 801. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat - 802. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect - 803. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file - 804. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-file - 805. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils - 806. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-findutils - 807. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex - 808. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 809. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gawk - 810. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 811. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass1 - 812. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-libstdcpp-pass2 - 813. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass1 - 814. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gcc-pass2 - 815. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm - 816. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 817. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gettext - 818. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc - 819. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-glibc - 820. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp - 821. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf - 822. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep - 823. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-grep - 824. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 825. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub - 826. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip - 827. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-gzip - 828. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc - 829. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils - 830. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool - 831. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 832. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-jinja2 - 833. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 834. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod - 835. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less - 836. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 837. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf - 838. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi - 839. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline - 840. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool - 841. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel - 842. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers - 843. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 - 844. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-m4 - 845. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make - 846. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-make - 847. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 848. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages - 849. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-markupsafe - 850. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson - 851. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc - 852. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr - 853. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 854. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-ncurses - 855. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja - 856. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 857. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch - 858. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-patch - 859. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 860. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-perl - 861. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig - 862. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps - 863. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc - 864. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 865. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-Python - 866. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline - 867. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed - 868. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-sed - 869. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 870. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-shadow - 871. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 872. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar - 873. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-tar - 874. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl - 875. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo - 876. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-texinfo - 877. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-udev - 878. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 879. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-util-linux - 880. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim - 881. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser - 882. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz - 883. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-xz - 884. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib - 885. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd - 886. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 887. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python - 888. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 889. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 890. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 891. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 892. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 893. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 894. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 895. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 896. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 897. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 898. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 899. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr - 900. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 901. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 902. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 903. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 904. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-automake - 905. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext - 906. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 907. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 908. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf - 909. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk - 910. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 911. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 912. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 913. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 914. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 915. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 916. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash - 917. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 918. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison - 919. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 920. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 921. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 922. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 923. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 924. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 925. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 926. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 927. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 928. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 929. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 930. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 931. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 932. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 933. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 934. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 935. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 - 936. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 937. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils - 938. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 939. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap - 940. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 941. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 942. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db - 943. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 944. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 945. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl - 946. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 947. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 948. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 949. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 950. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check - 951. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff - 952. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 953. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 954. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 955. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 956. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 957. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 958. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 959. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 960. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 961. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 962. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow - 963. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 964. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 965. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses - 966. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils - 967. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 968. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 969. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 970. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 971. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 972. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 973. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd - 974. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 975. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 976. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl - 977. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc - 978. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 979. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 980. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 - 981. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 982. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl - 983. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 984. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 985. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 986. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 987. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 988. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 989. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 990. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 991. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 992. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus - 993. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bc - 994. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils - 995. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd - 996. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs - 997. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu - 998. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux - 999. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1000. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1001. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1002. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1003. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1004. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1005. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1006. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1007. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1008. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1009. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1010. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1011. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1012. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1013. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1014. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1015. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1016. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1017. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1018. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1019. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1020. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1021. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1022. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1023. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1024. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1025. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1026. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1027. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1028. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1029. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1030. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1031. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1032. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1033. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1034. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1035. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1036. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1037. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1038. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1039. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1040. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1041. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1042. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1043. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1044. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1045. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1046. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1047. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1048. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1049. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1050. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1051. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1052. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1053. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1054. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1055. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1056. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1057. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1058. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1059. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1060. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1061. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1062. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1063. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1064. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1065. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1066. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1067. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gawk -1068. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1069. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1070. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1071. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1072. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1073. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1074. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1075. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1076. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1077. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1078. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1079. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1080. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1081. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1082. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1083. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1084. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1085. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1086. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1087. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1088. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1089. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1090. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1091. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1092. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1093. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1094. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1095. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gperf -1096. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1097. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1098. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1099. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1100. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grep -1101. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1102. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1103. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1104. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1105. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1106. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1107. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1108. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1109. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1110. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1111. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1112. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1113. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1114. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1115. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1116. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1117. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1118. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1119. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1120. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1121. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1122. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1123. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1124. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1125. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1126. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1127. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1128. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1129. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1130. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1131. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1132. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1133. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1134. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1135. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1136. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1137. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1138. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1139. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1140. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1141. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1142. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1143. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-grub -1144. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1145. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1146. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1147. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1148. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1149. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1150. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1151. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1152. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1153. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1154. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1155. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1156. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1157. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1158. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1159. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1160. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1161. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1162. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1163. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1164. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-autoconf -1165. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1166. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1167. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1168. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1169. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1170. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1171. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1172. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1173. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1174. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1175. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1176. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1177. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1178. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1179. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-intltool -1180. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1181. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1182. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1183. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1184. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1185. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1186. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1187. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1188. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1189. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1190. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1191. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1192. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1193. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1194. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1195. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1196. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1197. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1198. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1199. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1200. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1201. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1202. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1203. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1204. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1205. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1206. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1207. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1208. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1209. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-less -1210. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1211. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1212. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1213. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1214. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1215. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1216. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1217. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1218. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1219. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1220. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1221. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1222. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1223. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1224. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1225. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1226. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1227. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1228. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1229. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1230. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1231. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1232. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1233. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1234. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1235. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1236. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1237. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1238. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1239. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1240. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1241. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1242. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1243. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1244. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1245. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1246. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1247. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1248. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1249. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1250. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1251. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1252. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1253. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1254. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1255. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1256. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1257. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1258. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1259. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1260. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1261. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1262. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1263. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-m4 -1264. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1265. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-make -1266. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1267. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1268. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1269. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1270. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1271. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1272. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1273. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1274. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1275. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1276. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-meson -1277. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1278. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1279. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1280. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1281. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1282. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1283. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1284. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1285. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1286. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1287. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1288. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1289. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1290. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1291. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1292. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1293. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1294. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1295. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1296. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1297. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1298. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1299. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1300. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1301. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1302. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1303. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1304. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1305. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1306. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1307. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1308. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1309. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1310. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1311. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1312. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1313. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1314. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1315. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1316. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1317. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1318. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1319. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1320. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1321. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1322. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1323. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1324. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ninja -1325. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1326. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1327. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1328. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1329. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1330. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1331. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1332. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1333. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1334. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1335. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1336. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1337. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1338. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1339. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1340. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1341. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1342. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1343. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1344. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-patch -1345. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1346. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1347. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1348. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1349. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1350. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1351. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1352. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1353. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1354. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1355. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1356. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1357. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1358. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1359. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1360. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1361. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1362. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1363. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1364. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1365. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1366. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1367. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1368. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-pkgconfig -1369. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1370. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1371. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1372. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1373. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1374. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1375. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1376. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1377. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1378. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1379. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1380. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1381. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1382. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1383. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1384. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1385. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1386. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1387. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1388. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1389. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1390. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1391. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1392. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1393. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1394. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1395. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1396. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1397. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1398. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-psmisc -1399. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1400. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1401. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1402. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1403. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1404. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1405. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1406. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1407. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1408. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1409. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1410. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-Python -1411. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1412. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1413. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1414. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1415. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1416. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1417. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1418. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1419. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1420. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1421. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1422. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1423. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1424. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1425. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1426. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1427. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1428. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1429. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1430. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1431. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1432. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1433. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1434. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1435. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1436. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1437. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1438. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1439. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1440. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1441. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1442. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1443. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1444. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1445. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1446. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dejagnu -1447. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1448. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1449. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1450. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1451. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1452. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-diffutils -1453. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-sed -1454. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1455. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1456. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1457. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1458. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1459. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1460. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1461. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1462. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1463. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1464. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1465. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1466. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1467. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1468. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bash -1469. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1470. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1471. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1472. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1473. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1474. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1475. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1476. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1477. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1478. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1479. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1480. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1481. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1482. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1483. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1484. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1485. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1486. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1487. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1488. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1489. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1490. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1491. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1492. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1493. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1494. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1495. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1496. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1497. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1498. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1499. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1500. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1501. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1502. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1503. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1504. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1505. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1506. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1507. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1508. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1509. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1510. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1511. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1512. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1513. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1514. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1515. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1516. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1517. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1518. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1519. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1520. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1521. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1522. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1523. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1524. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1525. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1526. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1527. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1528. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1529. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1530. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1531. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1532. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1533. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1534. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1535. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1536. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tar -1537. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1538. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1539. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iproute2 -1540. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1541. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1542. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1543. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1544. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1545. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1546. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1547. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1548. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1549. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-texinfo -1550. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1551. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1552. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1553. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1554. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1555. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1556. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1557. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1558. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1559. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1560. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1561. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-inetutils -1562. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-groff -1563. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1564. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1565. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1566. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1567. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1568. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1569. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1570. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1571. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1572. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1573. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1574. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1575. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1576. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1577. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1578. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1579. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kbd -1580. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1581. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1582. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1583. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1584. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1585. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1586. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1587. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1588. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1589. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1590. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1591. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1592. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1593. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1594. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1595. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1596. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1597. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1598. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1599. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1600. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1601. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1602. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1603. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1604. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1605. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1606. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1607. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1608. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1609. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1610. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1611. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1612. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1613. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1614. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1615. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-findutils -1616. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1617. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1618. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1619. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1620. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-vim -1621. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1622. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1623. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1624. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1625. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1626. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1627. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1628. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1629. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1630. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1631. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1632. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1633. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1634. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1635. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1636. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1637. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1638. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1639. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1640. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1641. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1642. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-perl -1643. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1644. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1645. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gzip -1646. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1647. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1648. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1649. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1650. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xml-parser -1651. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1652. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-acl -1653. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1654. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1655. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-attr -1656. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1657. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1658. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1659. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bzip2 -1660. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1661. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1662. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-check -1663. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1664. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1665. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1666. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1667. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1668. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1669. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1670. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-dbus -1671. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1672. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1673. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libelf -1674. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expat -1675. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-expect -1676. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1677. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1678. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libffi -1679. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-flex -1680. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1681. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1682. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1683. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1684. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1685. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gdbm -1686. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1687. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1688. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1689. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1690. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gmp -1691. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1692. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1693. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1694. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-kmod -1695. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1696. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libtool -1697. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1698. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-xz -1699. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1700. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-file -1701. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1702. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-db -1703. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1704. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1705. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1706. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1707. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpc -1708. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-mpfr -1709. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1710. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1711. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1712. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1713. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1714. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-ncurses -1715. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1716. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libpipeline -1717. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-procps -1718. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-libcap -1719. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1720. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1721. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-readline -1722. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1723. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1724. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1725. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-e2fsprogs -1726. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-openssl -1727. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1728. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-coreutils -1729. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1730. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1731. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-shadow -1732. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1733. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1734. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1735. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-tcl -1736. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1737. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1738. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1739. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gcc -1740. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-systemd -1741. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-glibc -1742. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-util-linux -1743. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-bison -1744. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zlib -1745. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-zstd -1746. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-gettext -1747. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-clock -1748. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-console -1749. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hostname -1750. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1751. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1752. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-network -1753. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-binutils -1754. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1755. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-kernel -1756. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-kernfs -1757. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-bootable-fstab -1758. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1759. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-hosts -1760. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-inputrc -1761. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-ld -1762. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1763. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1764. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1765. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-modprobe -1766. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-glibc -1767. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-finish-theend -1768. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1769. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1770. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resolv.conf -1771. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-iana-etc -1772. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#conf-vim -1773. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1774. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1775. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1776. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1777. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1778. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1779. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1780. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1781. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1782. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1783. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1784. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-linux-headers -1785. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1786. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1787. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-tools-createfiles -1788. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-locale -1789. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-shells -1790. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-system-man-pages -1791. file:///tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ch-config-systemd-custom - - Ligações escondidas: -1793. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lbracket -1794. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#accessdb -1795. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#aclocal -1796. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#aclocalversion -1797. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#addftinfo -1798. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#addpart -1799. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#addr2line -1800. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#afmtodit -1801. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#agetty -1802. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#apropos -1803. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ar -1804. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#as -1805. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#attr -1806. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoconf -1807. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoheader -1808. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autom4te -1809. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#automake -1810. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#automake-version -1811. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autopoint -1812. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoreconf -1813. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoscan -1814. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#autoupdate -1815. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#awk -1816. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#b2sum -1817. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#badblocks -1818. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#base64 -1819. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#basename -1820. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#basenc -1821. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bash -1822. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bashbug -1823. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bc -1824. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bison -1825. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blkdiscard -1826. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blkid -1827. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blkzone -1828. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#blockdev -1829. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bridge -1830. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bunzip2 -1831. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#busctl -1832. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzcat -1833. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzcmp -1834. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzdiff -1835. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzegrep -1836. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzfgrep -1837. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzgrep -1838. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2 -1839. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzip2recover -1840. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzless -1841. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#bzmore -1842. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#c -1843. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#c-filt -1844. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cal -1845. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#capsh -1846. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#captoinfo -1847. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cat -1848. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#catman -1849. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cc -1850. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cfdisk -1851. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chacl -1852. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chage -1853. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chattr -1854. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chcon -1855. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chcpu -1856. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#checkmk -1857. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chem -1858. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chfn -1859. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chgpasswd -1860. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chgrp -1861. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chmem -1862. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chmod -1863. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#choom -1864. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chown -1865. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chpasswd -1866. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chroot -1867. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chrt -1868. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chsh -1869. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#chvt -1870. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cksum -1871. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#clear -1872. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cmp -1873. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#col -1874. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#colcrt -1875. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#colrm -1876. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#column -1877. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#comm -1878. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#compile_et -1879. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#coredumpctl -1880. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#corelist -1881. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cp -1882. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cpan -1883. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cpp -1884. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#csplit -1885. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ctrlaltdel -1886. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ctstat -1887. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#cut -1888. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#c_rehash -1889. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#date -1890. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-cleanup-sockets -1891. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-daemon -1892. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-launch -1893. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-monitor -1894. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-run-session -1895. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-send -1896. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-test-tool -1897. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-update-activation-environment -1898. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dbus-uuidgen -1899. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dc -1900. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dd -1901. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#deallocvt -1902. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#debugfs -1903. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dejagnu -1904. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#delpart -1905. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#depmod -1906. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#df -1907. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#diff -1908. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#diff3 -1909. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dir -1910. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dircolors -1911. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dirname -1912. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dmesg -1913. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dnsdomainname -1914. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#du -1915. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dumpe2fs -1916. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dumpkeys -1917. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2freefrag -1918. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2fsck -1919. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2image -1920. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2label -1921. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2mmpstatus -1922. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub -1923. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2scrub_all -1924. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e2undo -1925. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e4crypt -1926. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#e4defrag -1927. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#echo -1928. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#egrep -1929. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#eject -1930. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#elfedit -1931. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#enc2xs -1932. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#encguess -1933. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#env -1934. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#envsubst -1935. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#eqn -1936. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#eqn2graph -1937. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ex -1938. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expand -1939. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expect -1940. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expiry -1941. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#expr -1942. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#factor -1943. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#faillog -1944. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fallocate -1945. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#false -1946. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fdisk -1947. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fgconsole -1948. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fgrep -1949. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#file -1950. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#filefrag -1951. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fincore -1952. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#find -1953. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#findfs -1954. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#findmnt -1955. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#flex -1956. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#flexpp -1957. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#flock -1958. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fmt -1959. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fold -1960. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#free -1961. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck -1962. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.cramfs -1963. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext2 -1964. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext3 -1965. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.ext4 -1966. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsck.minix -1967. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fsfreeze -1968. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fstrim -1969. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ftp -1970. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#fuser -1971. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#g -1972. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gawk -1973. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gawk-version -1974. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc -1975. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ar -1976. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-nm -1977. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcc-ranlib -1978. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcov -1979. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-dump -1980. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gcov-tool -1981. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdbmtool -1982. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_dump -1983. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdbm_load -1984. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gdiffmk -1985. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gencat -1986. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#genl -1987. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getcap -1988. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getconf -1989. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getent -1990. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getfacl -1991. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getfattr -1992. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getkeycodes -1993. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getopt -1994. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getpcaps -1995. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#getsubids -1996. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gettext -1997. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gettext.sh -1998. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gettextize -1999. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#glilypond -2000. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gpasswd -2001. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gperf -2002. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gperl -2003. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gpinyin -2004. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gprof -2005. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grap2graph -2006. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grep -2007. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grn -2008. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grodvi -2009. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groff -2010. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groffer -2011. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grog -2012. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grolbp -2013. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grolj4 -2014. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gropdf -2015. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grops -2016. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grotty -2017. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupadd -2018. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupdel -2019. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupmems -2020. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groupmod -2021. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#groups -2022. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grpck -2023. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grpconv -2024. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grpunconv -2025. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-bios-setup -2026. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-editenv -2027. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-file -2028. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-fstest -2029. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-glue-efi -2030. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-install -2031. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-kbdcomp -2032. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-macbless -2033. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-menulst2cfg -2034. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkconfig -2035. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkimage -2036. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mklayout -2037. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mknetdir -2038. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkpasswd-pbkdf2 -2039. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrelpath -2040. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkrescue -2041. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-mkstandalone -2042. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-ofpathname -2043. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-probe -2044. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-reboot -2045. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-render-label -2046. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-script-check -2047. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-set-default -2048. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-sparc64-setup -2049. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#grub-syslinux2cfg -2050. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gunzip -2051. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gzexe -2052. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#gzip -2053. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#h2ph -2054. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#h2xs -2055. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#halt -2056. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#head -2057. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hexdump -2058. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hostid -2059. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hostname -2060. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hostnamectl -2061. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hpftodit -2062. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#hwclock -2063. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#i386 -2064. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#iconv -2065. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#iconvconfig -2066. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#id -2067. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifcfg -2068. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifconfig -2069. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifnames -2070. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ifstat -2071. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#indxbib -2072. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#info -2073. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#infocmp -2074. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#infotocap -2075. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#init -2076. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#insmod -2077. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#install -2078. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#install-info -2079. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#instmodsh -2080. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-extract -2081. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-merge -2082. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-prepare -2083. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltool-update -2084. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#intltoolize -2085. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ionice -2086. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ip -2087. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ipcmk -2088. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ipcrm -2089. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ipcs -2090. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#irqtop -2091. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#isosize -2092. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#join -2093. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#journalctl -2094. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#json_pp -2095. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kbdinfo -2096. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kbdrate -2097. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kbd_mode -2098. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kernel-install -2099. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kill -2100. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#killall -2101. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#kmod -2102. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#last -2103. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lastb -2104. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lastlog -2105. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld -2106. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld.bfd -2107. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld.gold -2108. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ldattach -2109. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ldconfig -2110. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ldd -2111. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lddlibc4 -2112. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#less -2113. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lessecho -2114. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lesskey -2115. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lex -2116. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lexgrog -2117. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lfskernel -2118. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libasan -2119. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libatomic -2120. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcc1 -2121. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libnetcfg -2122. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtool -2123. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtoolize -2124. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#link -2125. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#linux32 -2126. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#linux64 -2127. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lkbib -2128. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ln -2129. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lnstat -2130. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#loadkeys -2131. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#loadunimap -2132. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#locale -2133. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#localectl -2134. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#localedef -2135. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#locate -2136. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logger -2137. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#login -2138. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#loginctl -2139. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logname -2140. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logoutd -2141. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#logsave -2142. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#look -2143. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lookbib -2144. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#losetup -2145. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ls -2146. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsattr -2147. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsblk -2148. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lscpu -2149. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsipc -2150. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsirq -2151. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lslocks -2152. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lslogins -2153. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsmem -2154. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsmod -2155. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lsns -2156. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lto-dump -2157. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzcat -2158. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzcmp -2159. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzdiff -2160. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzegrep -2161. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzfgrep -2162. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzgrep -2163. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzless -2164. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzma -2165. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzmadec -2166. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzmainfo -2167. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#lzmore -2168. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#m4 -2169. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#machinectl -2170. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#make -2171. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#makedb -2172. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#makeinfo -2173. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#man -2174. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#man-recode -2175. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mandb -2176. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#manpath -2177. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mapscrn -2178. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mcookie -2179. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#md5sum -2180. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mesg -2181. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#meson -2182. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkdir -2183. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mke2fs -2184. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfifo -2185. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs -2186. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.bfs -2187. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.cramfs -2188. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext2 -2189. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext3 -2190. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.ext4 -2191. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkfs.minix -2192. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mklost-found -2193. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mknod -2194. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mkswap -2195. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mktemp -2196. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mk_cmds -2197. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mmroff -2198. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#modinfo -2199. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#modprobe -2200. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#more -2201. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mount -2202. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mountpoint -2203. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgattrib -2204. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgcat -2205. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgcmp -2206. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgcomm -2207. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgconv -2208. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgen -2209. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgexec -2210. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgfilter -2211. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgfmt -2212. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msggrep -2213. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msginit -2214. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgmerge -2215. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msgunfmt -2216. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#msguniq -2217. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mtrace -2218. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mv -2219. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#namei -2220. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ncursesw6-config -2221. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#neqn -2222. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#networkctl -2223. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newgidmap -2224. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newgrp -2225. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newuidmap -2226. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#newusers -2227. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ngettext -2228. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nice -2229. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ninja -2230. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nl -2231. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nm -2232. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nohup -2233. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nologin -2234. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nproc -2235. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nroff -2236. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nscd -2237. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nsenter -2238. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#nstat -2239. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#numfmt -2240. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#objcopy -2241. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#objdump -2242. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#od -2243. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#oomctl -2244. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#openssl-prog -2245. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#openvt -2246. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#partx -2247. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#passwd -2248. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#paste -2249. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#patch -2250. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pathchk -2251. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pcprofiledump -2252. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pdfmom -2253. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pdfroff -2254. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pdftexi2dvi -2255. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#peekfd -2256. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perl -2257. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perl-version -2258. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perlbug -2259. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perldoc -2260. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perlivp -2261. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#perlthanks -2262. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pfbtops -2263. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pgrep -2264. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pic -2265. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pic2graph -2266. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#piconv -2267. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pidof -2268. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ping -2269. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ping6 -2270. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pinky -2271. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pivot_root -2272. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkgconfig -2273. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pkill -2274. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pl2pm -2275. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pldd -2276. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pmap -2277. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2html -2278. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2man -2279. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2texi -2280. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2text -2281. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pod2usage -2282. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#podchecker -2283. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#podselect -2284. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#portablectl -2285. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#post-grohtml -2286. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#poweroff -2287. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pr -2288. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pre-grohtml -2289. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#preconv -2290. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#printenv -2291. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#printf -2292. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#prlimit -2293. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#prove -2294. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#prtstat -2295. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ps -2296. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfaddtable -2297. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfgettable -2298. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfstriptable -2299. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#psfxtable -2300. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pslog -2301. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pstree -2302. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pstree.x11 -2303. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptar -2304. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptardiff -2305. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptargrep -2306. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ptx -2307. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwait -2308. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwck -2309. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwconv -2310. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwd -2311. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwdx -2312. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#pwunconv -2313. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ranlib -2314. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#readelf -2315. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#readlink -2316. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#readprofile -2317. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#realpath -2318. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#reboot -2319. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#recode-sr-latin -2320. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#refer -2321. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rename -2322. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#renice -2323. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#reset -2324. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resize2fs -2325. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resizepart -2326. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resolvconf -2327. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#resolvectl -2328. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rev -2329. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rkfill -2330. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rm -2331. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rmdir -2332. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rmmod -2333. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2dvi -2334. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2html -2335. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2pdf -2336. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2ps -2337. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2text -2338. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#roff2x -2339. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#routef -2340. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#routel -2341. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtacct -2342. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtcwake -2343. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtmon -2344. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtpr -2345. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rtstat -2346. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#runcon -2347. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#runlevel -2348. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#runtest -2349. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rview -2350. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rvim -2351. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#script -2352. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#scriptlive -2353. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#scriptreplay -2354. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sdiff -2355. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sed -2356. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#seq -2357. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setarch -2358. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setcap -2359. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setfacl -2360. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setfattr -2361. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setfont -2362. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setkeycodes -2363. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setleds -2364. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setmetamode -2365. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setsid -2366. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setterm -2367. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#setvtrgb -2368. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sfdisk -2369. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sg -2370. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sh -2371. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha1sum -2372. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha224sum -2373. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha256sum -2374. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha384sum -2375. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sha512sum -2376. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shasum -2377. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#showconsolefont -2378. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#showkey -2379. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shred -2380. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shuf -2381. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#shutdown -2382. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#size -2383. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#slabtop -2384. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sleep -2385. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sln -2386. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#soelim -2387. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sort -2388. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sotruss -2389. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#splain -2390. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#split -2391. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sprof -2392. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2393. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#stat -2394. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#stdbuf -2395. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#strings -2396. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#strip -2397. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#stty -2398. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#su -2399. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sulogin -2400. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sum -2401. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#swaplabel -2402. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#swapoff -2403. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#swapon -2404. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#switch_root -2405. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sync -2406. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sysctl -2407. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemctl -2408. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-analyze -2409. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-ask-password -2410. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-cat -2411. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-cgls -2412. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-cgtop -2413. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-creds -2414. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-delta -2415. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-detect-virt -2416. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-dissect -2417. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-escape -2418. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-hwdb -2419. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-id128 -2420. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-inhibit -2421. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-machine-id-setup -2422. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-mount -2423. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-notify -2424. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-nspawn -2425. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-path -2426. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-repart -2427. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-resolve -2428. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-run -2429. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-socket-activate -2430. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-sysext -2431. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-tmpfiles -2432. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-tty-ask-password-agent -2433. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#systemd-umount -2434. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tabs -2435. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tac -2436. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tail -2437. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#talk -2438. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tar -2439. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#taskset -2440. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tbl -2441. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ss -2442. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh -2443. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tclsh8.6 -2444. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tee -2445. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#telinit -2446. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#telnet -2447. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#test -2448. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texi2dvi -2449. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texi2pdf -2450. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texi2any -2451. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#texindex -2452. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tfmtodit -2453. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tftp -2454. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tic -2455. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#timedatectl -2456. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#timeout -2457. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tload -2458. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#toe -2459. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#top -2460. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#touch -2461. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tput -2462. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tr -2463. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#traceroute -2464. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#troff -2465. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#true -2466. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#truncate -2467. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tset -2468. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tsort -2469. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tty -2470. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tune2fs -2471. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#tzselect -2472. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uclampset -2473. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#udevadm -2474. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ul -2475. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#umount -2476. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uname -2477. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uname26 -2478. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uncompress -2479. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unexpand -2480. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_start -2481. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unicode_stop -2482. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uniq -2483. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unlink -2484. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unlzma -2485. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unshare -2486. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#unxz -2487. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#updatedb -2488. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uptime -2489. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#useradd -2490. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#userdel -2491. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#usermod -2492. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#users -2493. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#utmpdump -2494. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uuidd -2495. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uuidgen -2496. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#uuidparse -2497. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vdir -2498. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vi -2499. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#view -2500. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vigr -2501. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vim -2502. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vimdiff -2503. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vimtutor -2504. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vipw -2505. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#vmstat -2506. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#w -2507. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wall -2508. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#watch -2509. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wc -2510. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wdctl -2511. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#whatis -2512. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#whereis -2513. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#who -2514. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#whoami -2515. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#wipefs -2516. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#x86_64 -2517. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xargs -2518. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xgettext -2519. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xmlwf -2520. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xsubpp -2521. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xtrace -2522. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xxd -2523. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xz -2524. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzcat -2525. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzcmp -2526. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzdec -2527. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzdiff -2528. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzegrep -2529. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzfgrep -2530. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzgrep -2531. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzless -2532. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xzmore -2533. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#yacc -2534. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#yes -2535. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zcat -2536. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zcmp -2537. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zdiff -2538. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zdump -2539. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zegrep -2540. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zfgrep -2541. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zforce -2542. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zgrep -2543. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zic -2544. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zipdetails -2545. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zless -2546. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zmore -2547. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#znew -2548. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zramctl -2549. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zstd -2550. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zstdgrep -2551. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#zstdless -2552. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#Expat -2553. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#ld.so -2554. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libacl -2555. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libanl -2556. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libasprintf -2557. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libattr -2558. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libbfd -2559. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libblkid -2560. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libBrokenLocale -2561. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libbz2 -2562. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libc -2563. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcap -2564. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcheck -2565. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcom_err -2566. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypt -2567. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcrypto -2568. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libctf -2569. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libctf-nobfd -2570. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libcursesw -2571. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libc_malloc_debug -2572. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libdbus-1 -2573. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libdl -2574. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libe2p -2575. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libelf -2576. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libexpat -2577. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libexpect -2578. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libext2fs -2579. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libfdisk -2580. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libfl -2581. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libformw -2582. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libg -2583. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgcc -2584. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgcov -2585. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm -2586. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgdbm_compat -2587. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextlib -2588. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextpo -2589. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgettextsrc -2590. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgmp -2591. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgmpxx -2592. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libgomp -2593. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libhistory -2594. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libitm -2595. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liblsan -2596. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libltdl -2597. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liblto_plugin -2598. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liblzma -2599. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libm -2600. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmagic -2601. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libman -2602. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmandb -2603. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmcheck -2604. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmemusage -2605. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmenuw -2606. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmount -2607. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmpc -2608. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmpfr -2609. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libmvec -2610. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libncursesw -2611. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libnsl -2612. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libnss -2613. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libopcodes -2614. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpanelw -2615. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpcprofile -2616. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libprocps -2617. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpsx -2618. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libpthread -2619. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libquadmath -2620. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libreadline -2621. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libresolv -2622. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#librt -2623. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsmartcols -2624. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libss -2625. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libssl -2626. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libssp -2627. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libstdbuf -2628. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libstdc -2629. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libstdcfs -2630. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsubid -2631. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsupc -2632. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libsystemd -2633. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtcl8.6.so -2634. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtclstub8.6.a -2635. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtextstyle -2636. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libthread_db -2637. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libtsan -2638. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libubsan -2639. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libudev -2640. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libutil -2641. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libuuid -2642. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#liby -2643. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libz -2644. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#libzstd -2645. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#preloadable_libintl -2646. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#dwp -2647. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#config -2648. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#System.map -2649. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#asm-generic -2650. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#asm -2651. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#drm -2652. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#linux -2653. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#misc -2654. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#mtd -2655. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#rdma -2656. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#scsi -2657. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#sound -2658. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#video -2659. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#xen -2660. file://localhost/tmp/1/LFS-SYSD-BOOK-11.1-NOCHUNKS-pt_br.html#man-pages diff --git a/LFS-SYSD-BOOK-11.1-pt_br.pdf b/LFS-SYSD-BOOK-11.1-pt_br.pdf deleted file mode 100644 index a3fbe245af740fddaaaf7c4dca15fd349523464b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1974964 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�>5k-!DxXUOl;6 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 z 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%0AJ1Cr@jn8+U7XK*nH4KJq~ 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
L2-<``b-oXf3oHrVk6Q!cR5}k6Wk)98GAm1x!ck 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 z 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 z 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

a9Cqk2A2d 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

>jb6Yr&MCoLsvc(syMQ$dCE!30kY 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�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 z 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 Qci;TOKm6fe{`k%R0$(Az^#A|> diff --git a/LFS-SYSD-BOOK-11.1-pt_br.tar.xz b/LFS-SYSD-BOOK-11.1-pt_br.tar.xz deleted file mode 100644 index 5be3d5a0f590682a9530ec0221da887b7d63b238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247596 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

YiZc9tfW1XPZ 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 FSz4zYGWY-h

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ü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�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 - - - - Linux From Scratch - - - - - -

aeGYh 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�FBt7REM1Y#rF2u<&e8e*HbHMV+S`gG| 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