Linux From Scratch Versão 4.1 Gerard Beekmans Copyright © 1999-2003 Gerard Beekmans Traduzido por Anderson Lizardo Projeto LFS-BR: http://lfs-br.codigolivre.org.br/ Este livro descreve o processo de criação de um sistema Linux do zero, usando nada além do código-fonte dos softwares necessários. Copyright (c) 1999-2002, Gerard Beekmans All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions in any form must retain the above copyright notice, this list of conditions and the following disclaimer. * Neither the name of "Linux From Scratch" nor the names of its contributors may be used to endorse or promote products derived from this material without specific prior written permission. * Any material derived from Linux From Scratch must contain a reference to the "Linux From Scratch" project. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Dedicatória Este livro é dedicado a minha amável esposa Beverly Beekmans. Índice Prefácio Introdução Quem desejará ler este livro Quem não desejará ler este livro Pré-requisitos Organização Parte I - Introdução Parte II - Preparativos para a construção Parte III - Construindo o sistema LFS Parte IV - Apêndice I. Parte I - Introdução 1. Introdução Agradecimentos Como será feito Convenções utilizadas neste livro Versão do livro Sites espelho Changelog Listas de discussão Servidor de notícias FAQ Informação para contato 2. Informações importantes Sobre $LFS Sobre SBUs Como pedir ajuda II. Parte II - Preparativos para a construção 3. Preparando uma nova partição Introdução Criando uma nova partição Criando um sistema de arquivos na nova partição Montando a nova partição 4. Pacotes que precisam ser baixados Introdução Pacotes que precisam ser baixados 5. Preparando o sistema LFS Introdução Por que utilizamos vinculação estática Criando o diretório $LFS/static Adicionando o usuário lfs Configurando o ambiente Instalando Bash-2.05a Instalando Binutils-2.13.2 Instalando Bzip2-1.0.2 Instalando Diffutils-2.8.1 Instalando Fileutils-4.1 Instalando Findutils-4.1 Instalando Gawk-3.1.1 Instalando GCC-3.2.1 Instalando Grep-2.5 Instalando Gzip-1.2.4a Instalando Make-3.80 Instalando Patch-2.5.4 Instalando Sed-4.0.5 Instalando Sh-utils-2.0 Instalando Tar-1.13 Instalando Texinfo-4.3 Instalando Textutils-2.1 Instalando Util-linux-2.11y III. Parte III - Construindo o sistema LFS 6. Instalando softwares básicos Introdução Sobre símbolos de depuração Entrando em ambiente chroot Modificando pertinências Criando diretórios Montando o sistema de arquivos proc Criando o arquivo mtab Criando as ligações simbólicas bash e sh Criando os arquivos passwd e group Criando dispositivos (Makedev-1.7) Instalando arquivos-cabeçalhos do Linux-2.4.20 Instalando Man-pages-1.54 Instalando Glibc-2.3.1 Instalando GCC-3.2.1 Instalando Zlib-1.1.4 Instalando Findutils-4.1 Instalando Gawk-3.1.1 Instalando Ncurses-5.3 Instalando Vim-6.1 Instalando M4-1.4 Instalando Bison-1.875 Instalando Less-378 Instalando Groff-1.18.1 Instalando Textutils-2.1 Instalando Sed-4.0.5 Instalando Flex-2.5.4a Instalando Binutils-2.13.2 Instalando Fileutils-4.1 Instalando Sh-utils-2.0 Instalando Gettext-0.11.5 Instalando Net-tools-1.60 Instalando Perl-5.8.0 Instalando Texinfo-4.3 Instalando Autoconf-2.57 Instalando Automake-1.7.2 Instalando Bash-2.05a Instalando File-3.39 Instalando Libtool-1.4.3 Instalando Bin86-0.16.3 Instalando Bzip2-1.0.2 Instalando Ed-0.2 Instalando Kbd-1.08 Instalando Diffutils-2.8.1 Instalando E2fsprogs-1.32 Instalando Grep-2.5 Instalando Gzip-1.2.4a Instalando Man-1.5k Instalando Lilo-22.2 Instalando Make-3.80 Instalando Modutils-2.4.22 Instalando Netkit-base-0.17 Instalando Patch-2.5.4 Instalando Procinfo-18 Instalando Procps-3.1.5 Instalando Psmisc-21.2 Instalando Shadow-4.0.3 Instalando Sysklogd-1.4.1 Instalando Sysvinit-2.84 Instalando Tar-1.13 Instalando Util-linux-2.11y Instalando Linux-2.4.20 (páginas de manual) Instalando Glibc-2.3.1 Comando chroot substituto Instalando LFS-Bootscripts-1.11 Configurando componentes do sistema 7. Configurando scripts de inicialização do sistema Introdução Como estes scripts funcionam na inicialização? Configurando o script setclock Eu preciso do script loadkeys? Configurando o script sysklogd Configurando o script localnet Criando o arquivo /etc/hosts Configurando o script network 8. Tornando o sistema LFS inicializável Introdução Criando o arquivo /etc/fstab Instalando Linux-2.4.20 Tornando o sistema LFS inicializável 9. Fim Fim Seja Contado Reiniciando o sistema O que mais agora? IV. Parte IV - Apêndice A. Dependências e descrição dos pacotes Introdução Autoconf Automake Bash Bin86 Binutils Bison Bzip2 Diffutils E2fsprogs Ed File Fileutils Findutils Flex Gawk GCC Gettext Glibc Grep Groff Gzip Kbd Less LFS-Bootscripts Libtool Lilo Linux (o kernel) M4 Make MAKEDEV Man Man-pages Modutils Ncurses Netkit-base Net-tools Patch Perl Procinfo Procps Psmisc Sed Shadow Sh-utils Sysklogd Sysvinit Tar Texinfo Textutils Util-linux Vim Zlib ------------------------------------------------------------------------------- Prefácio ------------------------------------------------------------------------------- Introdução Tendo utilizado diversas distribuições Linux, nunca estive completamente satisfeito com nenhuma delas, talvez porque não gostasse do arranjo dos scripts de inicialização ou da forma como certos programas eram configurados por padrão. Muitas coisas deste tipo me incomodavam. Finalmente concluí que, se estivesse procurando satisfação completa com meu sistema Linux, teria que construir o meu próprio do zero, usando somente código-fonte. Decidi não utilizar pacotes pré-compilados de qualquer tipo, nem CD-ROM ou disquete de inicialização que instalasse alguns utilitários básicos. Usaria meu sistema Linux atual para desenvolver meu próprio. Esta idéia maluca pareceu bem difícil na hora, muitas vezes uma tarefa impossível. Após todo tipo de problema, como erros de dependência e em tempo de compilação, um sistema Linux construído ao gosto pessoal foi criado, e era completamente funcional. Chamei este sistema de Linux From Scratch, ou LFS abreviadamente. Espero que você tenha bons momentos trabalhando em seu próprio LFS! -- Gerard Beekmans gerard@linuxfromscratch.org ------------------------------------------------------------------------------- Quem desejará ler este livro Há várias razões para que alguém deseje ler este livro. O cerne destes motivos está no de instalar um sistema LFS. Uma questão que muitas pessoas levantam é "Por que discutir tanto sobre a construção manual do zero de um sistema Linux quando você pode simplesmente baixar e instalar um existente?". É uma boa pergunta. Um motivo importante para a existência do LFS é para ajudar as pessoas a aprenderem como um sistema Linux funciona por dentro. Construir um sistema LFS ajuda a mostrar como as coisas funcionam juntas e dependem umas das outras. E talvez o mais importante, como personalizá-lo de acordo com os seus gostos e necessidades. Um benefício-chave do LFS é que você possui maior controle sobre seu sistema sem precisar contar com a implementação do Linux de outra pessoa. Com o LFS, você está no assento do motorista e dita cada aspecto do seu sistema, como a estrutura dos diretórios e a configuração dos scripts de inicialização. Você também dita onde, como e por que os programas são instalados. Outro benefício do LFS é a habilidade para criar um sistema Linux bastante compacto. Instalando uma distribuição normal, você termina com vários programas que nunca irá usar. Eles estão lá apenas ocupando (precioso) espaço em disco. Não é difícil construir um sistema LFS com menos de 100 MB. Isto ainda parece muito? Alguns de nós estão trabalhando na criação de um sistema LFS embutido bastante pequeno. Construímos com sucesso um sistema suficientemente capaz de rodar o servidor web Apache com aproximadamente 8 MB de espaço em disco utilizado. Mais cortes tornam possível diminuir este valor para 5 MB ou menos. Tente isto com uma distribuição normal. Podemos comparar distribuições Linux com um hamburguer que você compra em restaurantes fast-food - você não tem idéia do que está comendo. O LFS, por outro lado, não lhe dá um hamburguer, mas a receita para fazê-lo. Isto lhe permite examiná-la, omitir ingredientes indesejados e adicionar seus próprios ingredientes que aprimoram o sabor. Quando você estiver satisfeito com a receita, você começa a prepará-la. Isto é feito do jeito que você achar melhor: tostando, assando, fritando, grelhando ou comendo cru. Outra analogia que podemos fazer é comparar o LFS com uma casa terminada. O LFS irá lhe dar o plano do esqueleto de uma casa, mas cabe a você construí-la. Você tem a liberdade de ajustar seus planos como desejar. Outra vantagem de um sistema Linux personalizado é a segurança. Compilar o sistema inteiro a partir do código-fonte lhe permite examinar tudo e aplicar os patches de segurança que julgar necessário. Você não precisa esperar alguém compilar os pacotes de binários que corrigem uma brecha de segurança. A menos que você examine o patch e compile os pacotes você mesmo, não há garantia de que o novo pacote foi compilado corretamente e que realmente corrige o problema (adequadamente). Na verdade, você nunca sabe se uma brecha de segurança é corrigida ou não a menos que você mesmo a corrija. ------------------------------------------------------------------------------- Quem não desejará ler este livro Se você não pretende construir seu próprio sistema Linux do zero, então provavelmente não deseja ler este livro. Nosso objetivo é construir um sistema completo e utilizável. Se você deseja saber somente o que acontece enquanto seu computador carrega, então recomendamos o HOWTO "From Power Up To Bash Prompt". Este HOWTO constrói um minissistema similar ao deste livro, mas se concentra em criar um sistema apenas capaz de carregar um prompt do Bash. Na hora em que for decidir o que ler, considere seu objetivo. Se você deseja construir um sistema Linux e, ao mesmo tempo, aprender um pouco pelo caminho, então este livro é provavelmente sua melhor escolha. Se seu objetivo é estritamente educacional e você não tem nenhum plano para seu sistema finalizado, então o HOWTO "From Power Up To Bash Prompt" é provavelmente a melhor escolha. O HOWTO "From Power Up To Bash Prompt" está localizado em http:// www.netspace.net.au/~gok/power2bash/. ------------------------------------------------------------------------------- Pré-requisitos Este livro assume que o leitor tenha um bom conhecimento sobre a utilização e instalação de software no Linux. Antes de você começar a construir seu sistema LFS, leia os seguintes HOWTOs: * Software-Building-HOWTO Este é um guia abrangente sobre a compilação e instalação de software UNIX "genérico" no Linux. Este HOWTO está disponível em http://www.tldp.org/ HOWTO/Software-Building-HOWTO.html. * O Guia dos Usuários Linux Este guia trata do uso de vários softwares para Linux e está disponível em http://espc22.murdoch.edu.au/~stewart/guide/guide.html. ------------------------------------------------------------------------------- Organização Este livro é dividido nas seguintes partes: ------------------------------------------------------------------------------- Parte I - Introdução A Parte I apresenta informações importantes sobre como proceder com a instalação e fornece detalhes adicionais sobre o livro (versão, relatório de mudanças, agradecimentos, listas de discussão, etc.). ------------------------------------------------------------------------------- Parte II - Preparativos para a construção A Parte II descreve os preparativos para o processo de construção: criação da partição, download de pacotes e compilação de ferramentas temporárias. ------------------------------------------------------------------------------- Parte III - Construindo o sistema LFS A Parte III guia você durante a construção do sistema LFS: compilação e instalação dos pacotes, configuração dos scripts de inicialização e instalação do kernel. O sistema Linux básico resultante será a fundação sobre a qual você poderá compilar outros pacotes, para estender seu sistema da forma como desejar. ------------------------------------------------------------------------------- Parte IV - Apêndice A Parte IV, por enquanto, consiste apenas em um único apêndice: uma lista em ordem alfabética de todos os pacotes instalados, com seus locais oficiais para download, seu conteúdo e suas dependências de instalação. (Grande parte do Apêndice está integrado às Partes II e III. Isto aumenta consideravelmente o tamanho do livro, mas também facilita a leitura -- você não precisa consultar o Apêndice enquanto instala os pacotes. Esta "ida e volta" pode ser bastante incômoda, especialmente se você está lendo a versão texto do livro.) I. Parte I - Introdução Índice 1. Introdução 2. Informações importantes ------------------------------------------------------------------------------- Capítulo 1. Introdução ------------------------------------------------------------------------------- Agradecimentos Agradecemos às seguintes pessoas e organizações pelas suas contribuições para o projeto Linux From Scratch: * Mark Stone por doar o servidor linuxfromscratch.org. * VA Linux Systems por prover espaço físico e largura de banda para o servidor linuxfromscratch.org. * Fredrik Danerklint por manter o espelho se.linuxfromscratch.org. * Tim Jackson por manter o espelho linuxfromscratch.idge.net. * Hagen Herrschaft por manter o espelho de.linuxfromscratch.org e por sua doação de um sistema P4-2.2GHz para o projeto LFS. * UK Mirror Service por manter o espelho linuxfromscratch.mirror.ac.uk. * Guido Passet por manter os espelhos www.nl.linuxfromscratch.org e ftp.snt.utwente.nl. * Timothy Bauscher pela grande ajuda na edição deste livro. * Mark Hymers pela grande ajuda na edição deste livro. * Marc Heerdink pela grande ajuda na edição deste livro. * DREAMWVR.COM pelo patrocínio através da doação de vários recursos para o LFS e subprojetos relacionados. * Jan Niemann por manter o espelho www.de.linuxfromscratch.org. * Torsten Westermann por manter o espelho lfs.linux-provider.net. * Ian Chilton por manter os espelhos www.us.linuxfromscratch.org e www.linuxfromscratch.co.uk. * Dag Stenstad por prover o espelho www.no.linuxfromscratch.org, e Ian Chilton por mantê-lo. * Antonin Sprinzl por manter o espelho www.at.linuxfromscratch.org. * Jason Andrade por manter o espelho www.au.linuxfromscratch.org. * Ian Cooper por manter o espelho www.us2.linuxfromscratch.org. * VA Linux Systems que, em nome de Linux.com, doou uma estação de trabalho VA Linux 420 (antigo StartX SP2) para este projeto. * Johan Lenglet por liderar o projeto francês de tradução do LFS. * Jesse Tie-Ten-Quee por doar um gravador de CD Yamaha CDRW 8824E. * O'Reilly por doar livros de SQL e PHP. * Robert Briggs por doar os nomes de domínio linuxfromscratch.org e linuxfromscratch.com. * Frank Skettino do OSWD por fornecer o design inicial do site do projeto. * Garrett LeSage por criar o logotipo do projeto. * Dean Benson por ajudar financeiramente na manutenção da organização sem fins lucrativos LFS. * Outras inúmeras pessoas nas várias listas de discussão do LFS que ajudam o projeto dando sugestões, testando o livro e enviando relatórios de bugs. As seguintes pessoas contribuíram na tradução do LFS para o português: * Angelo Valle, publicando um artigo no Guia do Hardware.net. * Carlos, traduzindo o(s) seguinte(s) módulo(s): fileutils-desc. * Igor Vitório Custódio, revisando a versão 4.1 deste documento. * Raimundo Bahia, traduzindo o(s) seguinte(s) módulo(s): autoconf-desc, automake-desc. * Renato Siqueira, revisando a versão CVS deste documento e traduzindo parte do changelog. * Sérgio Magalhães, traduzindo o(s) seguinte(s) módulo(s): diffutils-desc, ed-desc. * Sérgio Oliveira, concluindo a tradução do changelog. ------------------------------------------------------------------------------- Como será feito Construiremos o sistema LFS usando uma distribuição Linux previamente instalada, como Debian, SuSE, Slackware, Mandrake, RedHat, etc. Utilizaremos o sistema Linux existente como plataforma de desenvolvimento, porque precisaremos de ferramentas como um compilador, um vinculador (linker), um editor de textos e outras ferramentas para a construção de nosso sistema. As ferramentas necessárias já estarão disponíveis caso você tenha selecionado "desenvolvimento" como uma das opções de instalação da sua distribuição Linux. Após termos baixado os pacotes necessários à construção de um sistema LFS, criaremos uma nova partição e um sistema de arquivos Linux nativo, onde será feita a compilação e a instalação. O próximo passo, o Capítulo 5, discutirá a instalação de pacotes que formarão a suíte básica de desenvolvimento que será utilizada para construir o sistema propriamente dito, ou para resolver dependências circulares. Por exemplo, você precisa de um compilador para construir um novo compilador, e de um shell para instalar um novo shell. Os pacotes neste capítulo serão vinculados estaticamente. Vinculação estática é um método de compilação de software em que este não necessita da presença de bibliotecas para sua execução. O programa resultante é capaz de funcionar por si próprio. Isso é possível porque as peças que normalmente permaneceriam nas bibliotecas são copiadas e inseridas dentro do programa. Geralmente, software é construído com vinculação dinâmica. Isto economiza espaço para armazenamento e aumenta a eficiência de muitos programas. Nós vinculamos estaticamente nosso software no Capítulo 5 porque iremos, em teoria, estar movendo nosso sistema de desenvolvimento para um ambiente virtual onde as bibliotecas mencionadas estarão ausentes. Se o software for construído dinamicamente, nossa suíte de desenvolvimento não funcionará. Mesmo que as bibliotecas necessárias sejam disponibilizadas por nossa distribuição Linux, o objetivo do Capítulo 5 é construir um ambiente de desenvolvimento onde estas não sejam necessárias sendo, portanto, independente da distribuição. No Capítulo 6 construiremos e instalaremos nosso sistema final. Iremos utilizar o programa chroot para entrar em um ambiente virtual e iniciar um novo shell onde o diretório raiz será configurado para a partição em que construímos todo o software do Capítulo 5. Isto é muito similar a reiniciar e instruir o kernel para montar nossa partição LFS como raiz. A razão para não reiniciarmos, mas sim utilizarmos o programa chroot, é que criar um sistema estático inicializável requer trabalho adicional desnecessário. Além disso, podemos continuar a usar nosso sistema base enquanto estamos construindo o LFS. Enquanto um software está sendo compilado e instalado você pode simplesmente alternar para um diferente VC (Console Virtual, Virtual Console) ou desktop X e continuar a utilizar seu computador normalmente. Quando todo o software do Capítulo 6 estiver instalado, os Capítulos 7, 8 e 9 nos ajudarão a finalizar nossa instalação. Configuraremos nossos scripts de inicialização no Capítulo 7. No Capítulo 8 compilaremos nosso kernel Linux final e configuraremos o gerenciador de boot. O Capítulo 9 contém alguns pontos para ajudar você após o término do livro. Então, finalmente, você reinicia seu computador e entra em seu novo sistema LFS, e começa realmente a utilizá-lo. Este é o processo em suma. Informações detalhadas sobre as etapas serão discutidas nos próprios capítulos e nas descrições dos pacotes na medida em que você progride ao longo deles. Se algo não estiver claro agora, não se preocupe. Isto ficará bastante claro em breve. Por favor, leia o Capítulo 2 cuidadosamente, já que este explica coisas importantes às quais você deve atentar antes de começar a trabalhar no Capítulo 5 em diante. ------------------------------------------------------------------------------- Convenções utilizadas neste livro Para facilitar a compreensão, há certas convenções utilizadas ao longo deste livro. A seguir, alguns exemplos: ./configure --prefix=/usr Esta forma representa texto a ser digitado exatamente como aparece, salvo afirmação contrária. É também utilizada nas seções de explicação para identificar qual dos comandos está sendo descrito. install-info: opção desconhecida `--dir-file=/mnt/lfs/usr/info/dir' Esta forma (texto de largura fixa) está mostrando a saída na tela, provavelmente como resultado de comandos executados, e também é utilizada para mostrar nomes de arquivo, como /etc/lilo.conf. Ênfase Esta forma é utilizada para vários propósitos no livro, principalmente para enfatizar pontos importantes, e para dar exemplos do que digitar. http://www.linuxfromscratch.org/ Esta forma é utilizada para links, tanto para dentro do livro como para HOWTOs, arquivos para download, sites, etc. cat > $LFS/etc/group << "EOF" root:x:0: bin:x:1: ...... EOF Este tipo de seção é utilizado principalmente quando se está criando arquivos de configuração. O primeiro comando (em negrito) diz ao sistema para criar o arquivo $LFS/etc/group contendo tudo o que é digitado nas linhas seguintes, até a seqüência EOF ser encontrada. Portanto, toda esta seção é geralmente digitada como aparece. ------------------------------------------------------------------------------- Versão do livro Este é o LFS-BOOK versão 4.1 de 28 de abril de 2003. Se esta versão é mais antiga que um mês, uma nova provavelmente já está disponível para download. Verifique um dos sites espelho para versões atualizadas. ------------------------------------------------------------------------------- Sites espelho O projeto LFS tem diversos espelhos configurados ao redor do mundo para facilitar e tornar mais conveniente acessar o site e baixar os pacotes necessários. Visite http://www.linuxfromscratch.org para visualizar a lista atual. ------------------------------------------------------------------------------- Changelog 4.1 - 28 de abril de 2003 * Atualizado: + autoconf-2.57 + automake-1.7.2 + bison-1.875 + e2fsprogs-1.32 + gawk-3.1.1-3.patch + gcc-3.2.1 + glibc-2.3.1 + groff-1.18.1 + kbd-1.08 + less-378 + lfs-bootscripts-1.11 + libtool-1.4.3 + linux-2.4.20 + make-3.80 + man-1.5k-2.patch + man-pages-1.54 + modutils-2.4.22 + ncurses-5.3 + procps-3.1.5 + psmisc-21.2 + sed-4.0.5 + texinfo-4.3 + util-linux-2.11y * Adicionado: + findutils-4.1-segfault.patch + glibc-2.3.1-libnss.patch + glibc-2.3.1-root-perl.patch + kbd-1.08.patch + man-1.5k-80cols.patch + man-1.5k-manpath.patch + man-1.5k-pager.patch * Removido: + gcc-3.2.1-nofixincludes-2.patch + glibc-2.3.1.patch + kbd-1.06-3.patch + man-1.5k-2.patch + ncurses-5.2-2.patch * 3 de fevereiro, 2003 [gerard]: Atualizado para LFS-bootscripts-1.11 para implementar as modificações no mtab de Seth Klein (veja entrada abaixo desta). * 3 de fevereiro, 2003 [sklein]: Capítulo 06: /etc/mtab modificado de uma ligação simbólica para um arquivo. * 29 de janeiro, 2003 [gerard]: Capítulo 06 - GCC: alvo de instalação do Makefile modificado de install para install-no-fixedincludes. * 29 de janeiro, 2003 [gerard]: Regredido para Binutils-2.13.2 devido a um bug do GCC que não permite a verificação da string de versão do Binutils 2.13.2.1. As únicas mudanças entre 2.13.2 e 2.13.2.1 são de documentação, dessa forma não há regressão de código. Uma correção mais adequada será adicionada ao livro mais tarde. * 27 de janeiro, 2003 [gerard, timothy, billy]: Páginas de instalação convertidas para um novo formato. Além disso, foram mescladas as instruções de instalação com os componentes de configuração do capítulo "Configurando softwares essenciais". * 22 de janeiro, 2003 [timothy]: Capítulo 06 - Configurando softwares essenciais: corrigido diretório do mapa de teclado do kernel. * 10 de janeiro, 2003 [gerard]: Adicionado um novo comando chroot após a segunda instalação do Glibc, que deve ser usado daquele ponto em diante. * 9 de janeiro, 2003 [timothy]: Apêndice A - Gzip: Adicionado URL para o patch. * 9 de janeiro, 2003 [timothy]: Capítulo 05 - Findutils: Removida opção -D_GNU_SOURCE pois ela está causando falhas na compilação; quatro pessoas relataram este bug. * 8 de janeiro, 2003 [timothy]: Capítulo 05 - Findutils: Adicionado / antes de configure. * 6 de janeiro, 2003 [gerard]: Capítulo 06 - Bison: Suprimida criação do script yacc. Bison agora o instala por padrão. * 6 de janeiro, 2003 [gerard]: Atualizado para Binutils-2.13.2.1, Bison-1.875 e Man-pages-1.54. * 6 de janeiro, 2003 [gerard]: Capítulo 05+06 - Findutils: Adicionado CPPFLAGS=-D_GNU_SOURCE para uma compilação adequada em arquiteturas não-x86. * 6 de janeiro, 2003 [gerard]: Capítulo 06 - Zlib: Adicionado variável CFLAGS para a definição de -fPIC, dessa forma a biblioteca dinâmica é compilada corretamente todas as vezes. * 5 de janeiro, 2003 [timothy]: Capítulo 05 - Aplicado uma versão revisada do patch de Alex para a divisão da seção Instale todo o software como usuário comum em duas páginas: Adicionando o usuário lfs e Configurando o ambiente. * 2 de janeiro, 2003 [gerard]: Capítulo 05 - Todos os pacotes em que o script configure suporta a variável de ambiente LDFLAGS agora utilizam esta opção ao invés de se passar a variável para o make. * 2 de janeiro, 2003 [gerard]: Capítulo 06 - Patch para o Gawk corrigido. make uninstall não mais removerá o diretório /usr/bin. Além disso, /usr/ share/gawk foi renomeado para /usr/share/gawk-3.1.1. * 2 de janeiro, 2003 [gerard]: Megapatch para o Glibc-2.3.1 substituído por dois patches separados (glibc-2.3.1-root-perl.patch e glibc-2.3.1-libnss.patch). * 2 de janeiro, 2003 [gerard]: Megapatch para o Man-1.5k substituído por três patches separados (man-1.5k-80cols.patch, man-1.5k-manpath.patch e man-1.5k-pager.patch). * 1 de janeiro, 2003 [gerard]: Capítulo 06 - Segunda etapa do Glibc: Corrigido erro de digitação nas instruções de instalação das páginas de manual do Linuxthreads. * 1 de janeiro, 2003 [gerard]: Capítulo 06 - Kernel Linux: As páginas de manual não podem ser instaladas aqui porque requerem o Perl. Instruções movidas para o final do Capítulo 6. * 31 de dezembro, 2002 [gerard]: Capítulo 06 - Man: Patch atualizado, dessa forma as páginas de manual são exibidas corretamente em telas com mais de 80 colunas. * 31 de dezembro, 2002 [gerard]: Capítulo 06 - Linux: Adicionado make mandocs para a criação das páginas de manual e sua instalação em /usr/share/man/ man9. * 31 de dezembro, 2002 [gerard]: Apêndice A - Bzip2: Localização do pacote para download modificada para http://sources.redhat.com/bzip2. * 31 de dezembro, 2002 [gerard]: Capítulo 06: Adicionada segunda instalação do Glibc ao final do capítulo. Removida a instalação separada das páginas de manual do linuxthreads e mesclada com a segunda instalação do Glibc. * 31 de dezembro, 2002 [gerard]: Atualizado para Glibc-2.3.1. * 31 de dezembro, 2002 [gerard]: Capítulo 05 - GCC: Substituído patch nofixincludes pelo alvo install-no-fixedincludes do make. * 31 de dezembro, 2002 [gerard]: Capítulo 05 - GCC: HAVE_GAS_HIDDEN removido, adicionado --with-ld e --with-as ao configure. * 29 de dezembro, 2002 [timothy]: Atualizado para Binutils-2.13.2 e Procps-3.1.5. * 29 de dezembro, 2002 [timothy]: Capítulo 05: Substituídas todas as ocorrências de LDFLAGS=-static por LDFLAGS="-static". * 29 de dezembro, 2002 [timothy]: Capítulo 06 - Flex: Adicionada ligação simbólica de libfl.a para libl.a. * 20 de dezembro, 2002 [timothy]: Atualizado para Sed-4.0.5. * 18 de dezembro, 2002 [timothy]: Atualizado para Procps-3.1.4. * 17 de dezembro, 2002 [timothy]: Capítulo 5 & 6: Modificados parágrafos sobre a descompactação de patches, já que eles não são mais compactados. * 15 de dezembro, 2002 [timothy]: Atualizado para Autoconf-2.57, Automake-1.7.2, Binutils-2.13.1, E2fsprogs-1.32, Gcc-3.2.1, Libtool-1.4.3, Linux-2.4.20, Modutils-2.4.22, Procps-3.1.3, Sed-4.0.4, Texinfo-4.3, Util-linux-2.11y. * 15 de dezembro, 2002 [timothy]: Capítulo 06 - Glibc: Aviso sobre --enable-kernel removido. * 10 de dezembro, 2002 [gerard]: Capítulo 04 - Todos os links dos pacotes foram substituídos por links para páginas de projeto no Freshmeat.net e o pacote Lfs-packages foi removido. Isto foi feito porque o FTP do LFS não contém mais estes pacotes, ao invés disso você precisará ir aos sites de download para baixá-los. * 5 de dezembro, 2002 [gerard]: Capítulo 08 - usbdevfs renomeado para usbfs já que os desenvolvedores do kernel fizeram esta mudança para reduzir a confusão com o devfs. * 3 de dezembro, 2002 [gerard]: Capítulo 05 - Sed: Adicionado --disable-nls. * 3 de dezembro, 2002 [gerard]: Capítulo 03 - Criando o sistema de arquivos: Adicionada uma nota dizendo que mkswap precisa ser executado caso uma nova partição swap tenha sido criada. * 3 de dezembro, 2002 [gerard]: Capítulo 06 - Bzip2: Removidas linhas desnecessárias que primeiro criam uma ligação simbólica, depois a removem novamente. * 3 de dezembro, 2002 [gerard]: Apêndice A - Bzip2: URL de download atualizada. * 3 de dezembro, 2002 [gerard]: Capítulo 06 - Groff: Variáveis PROCESSEDEXAMPLEFILES="" removidas. * 25 de outubro, 2002 [timothy]: Prefácio: Adicionado Seção "Pré-Requisitos". * 25 de outubro, 2002 [timothy]: Capítulo 09: Adicionado Seção "O que mais agora?". * 25 de outubro, 2002 [timothy]: Removido Apêndice B. * 25 de outubro, 2002 [timothy]: Capítulo 02: Removido Seção "Qual Plataforma". * 23 de outubro, 2002 [timothy]: Trocado Capítulo 03 e Capítulo 04. * 23 de outubro, 2002 [timothy]: Capítulo 02: Removido Seções "Onde armazenar os aquivos baixados" e "Como instalar os softwares". * 23 de outubro, 2002 [timothy]: Atualização para bison-1.75, sed-4.0. O M4 foi movido para depois do Bison devido às dependências. * 21 de outubro, 2002 [timothy]: Capítulo 06 - Linux-2.4.19: Trocado os comandos mkdir /usr/include/asm e cp por cp -HR. * 21 de outubro, 2002 [timothy]: Adicionado findutils-4.1-segfault.patch para corrigir problema com procura de arquivos com nomes muito longos. * 21 de outubro, 2002 [timothy]: Adicionado libtool-1.4.2.patch para corrigir incompatibilidade entre Autoconf 2.53 e Libtool 1.4.x. * 21 de outubro, 2002 [timothy]: Atualização para automake-1.7.1, modutils-2.4.21, man-pages-1.53, kbd-1.08, util-linux-2.11w, autoconf-2.54, e2fsprogs-1.29, groff-1.18.1, psmisc-21.2, less-378, procps-3.0.4, make-3.80, ncurses-5.3. * 20 de outubro, 2002 [timothy]: Os patches foram descompactados. * 13 de outubro, 2002 [markh]: Capítulo 05 - Bzip2: Adicionado o argumento -s ao CC. * 6 de outubro, 2002 [timothy]: Pacote GCC substituído por gcc-core e gcc-g++. * 6 de outubro, 2002 [timothy]: Capítulo 06 - Aplicado as correções gramaticais de Bill Maltby. 4.0 - 05 de outubro, 2002 * 3 de outubro, 2002 [gerard]: Capítulo 06 - Linuxthreads: Ao invés de cd man usa-se a opção -C para o make. * 29 de setembro, 2002 [gerard]: Capítulo 05 - GCC: Consertado o antigo patch nofixincludes. * 29 de setembro, 2002 [markh]: Capítulo 05 - Bash: Corrigido referência à antiga distribuição Debian (potato), pois não se aplica à atual (woody). Reportado por h2k1 no #lfs. 4.0-RC1 - 28 de setembro, 2002 * Atualizado: + automake-1.6.3 + bin86-0.16.3 + binutils-2.13 + bison-1.35 + diffutils-2.8.1 + file-3.39 + gawk-3.1.1 + gcc-3.2 + gettext-0.11.5 + groff-1.18 + gzip-1.2.4b.patch + lfs-bootscripts-1.10 + linux-2.4.19 + MAKEDEV-1.7 + man-1.5k + man-pages-1.52 + modutils-2.4.19 + ncurses-5.2-2.patch + perl-5.8.0 + psmisc-21 + texinfo-4.2 + textutils-2.1 + util-linux-2.11u * Adicionado: + ed-0.2.patch + fileutils-4.1.patch + gawk-3.1.1-2.patch + gcc-3.2.patch + gcc-3.2-nofixincludes.patch + glibc-2.2.5-2.patch + gzip-1.2.4b.patch + kbd-1.06-3.patch + man-1.5k.patch + ncurses-5.2.patch + procps-2.0.7.patch + sh-utils-2.0-hostname.patch + vim-6.1.patch + zlib-1.1.4 * Removido: + gzip-1.2.4a.patch + kbd-1.06-2.patch + reiserfsprogs-3.x.1b * 28 de setembro, 2002 [gerard]: Capítulo 05 - GCC: Adicionado patch nofixincludes para evitar que o script fixincludes seja executado no Capítulo 05. Ele precisa ser executado no Capítulo 06, logo precisamos de um patch separado. * 28 de setembro, 2002 [gerard]: Capítulo 06 - Man: Substituído o comando sed por um patch. * 28 de setembro, 2002 [gerard]: Capítulo 06 - Bzip2: Removido a opção PREFIX =/usr do make install porque PREFIX é configurado para /usr por padrão. * 28 de setembro, 2002 [gerard]: Capítulo 06 - Vim: Removido as notas de compatibilidade com o FHS. Elas estão incorretas pois o Vim não utiliza o diretório localstatedir. * 28 de setembro, 2002 [timothy]: Aplicado as correções gramaticais de Bill Maltby. Alterado "$LFS" para "LFS" quando falando-se da variável de ambiente LFS. * 23 de setembro, 2002 [timothy]: Aplicado as correções gramaticais de Bill Maltby. * 23 de setembro, 2002 [timothy]: Adicionado - antes das opções do tar. * 22 de setembro, 2002 [timothy]: Capítulo 06: Aplicado as correções gramaticais de Alex. * 21 de setembro, 2002 [timothy]: Capítulo 02: Aplicado as correções gramaticais de Bill Maltby. * 21 de setembro, 2002 [timothy]: Capítulo 06 - Zlib: biblioteca compartilhada movida para /lib. * 20 de setembro, 2002 [timothy]: Capítulo 05 - GCC: Removido o argumento --enable-threads=posix porque não instalaremos o compilador C++ neste capítulo. * 18 de setembro, 2002 [timothy]: Capítulo 05 - Introdução: Removido parágrafo sobre a vinculação estática porque será vista com detalhes em Por que utilizamos vínculo estático?. * 18 de setembro, 2002 [timothy]: Capítulo 08 - Linux: Removido o comando cd. * 18 de setembro, 2002 [timothy]: Capítulo 06 - Ncurses: Removido a explicação sobre o antigo comando mv /lib/*.a /usr/lib. * 13 de setembro, 2002 [gerard]: Capítulo 06 - Shadow: Adicionado --libdir=/ usr/lib às opções do script configure. Desta forma, um libshadow.la apropriado é gerado. Modificado também o comando mv para mover todos os arquivos libshadow.so* para o diretório /lib. Os arquivos lib*a já estão no diretório /usr/lib. * 13 de setembro, 2002 [gerard]: Capítulo 06 - Man: Adicionado outra expressão regular para o comando sed que modifica o arquivo man.conf. A expressão regular adicionada comenta a linha MANPATH /usr/man que gera resultados duplicados quando usando o comando whatis. * 13 de setembro, 2002 [gerard]: Capítulo 06: Adicionado a Instalação do Linux Threads Man Pages depois da Instalação do Perl. * 12 de setembro, 2002 [gerard]: Capítulo 06 - Criação da ligação mtab: Substituição do comando ln por ln -sf, deste modo o arquivo já existente / etc/mtab criado pelo comando mount será removido antes de refazê-lo como uma ligação simbólica. * 12 de setembro, 2002 [gerard]: Capítulo 06 - Sh-utils: Adicionado o patch sh-utils-hostname que suprime a compilação do programa hostname. Isto é feito porque o hostname do pacote net-tools é melhor que o existente nesta versão. * 12 de setembro, 2002 [gerard]: Capítulo 06 - Gawk: Atualizado o patch do Gawk. Ele modifica a localização do diretório de DDEFPATH. * 12 de setembro, 2002 [gerard]: Capítulo 06 - Procps: Adicionado patch que corrige um problema local que causa o travamento do top devido a certas configurações locais. * 12 de setembro, 2002 [timothy]: Capítulo 04 - Criando o Sistema de Arquivos: Referências alternativas dos arquivos de sistema em BLFS. * 12 de setembro, 2002 [gerard]: Removido todas as ligações simbólicas supérfluas /usr/lib/*.so da instalação das bibliotecas. * 12 de setembro, 2002 [gerard]: Atualização para lfs-bootscripts-1.10 * 12 de setembro, 2002 [gerard]: Capítulo 06 - Configurando Sysvinit: Alterado a linha sulogin para once ao invés de respawn. Deste modo ele se comportará como esperado. * 12 de setembro, 2002 [gerard]: Capítulo 06 - GCC: Adicionado a opção --enable-clocale=gnu para assegurar que o modo de localidade correto está sendo utilizado pelas bibliotecas C++. * 11 de setembro, 2002 [timothy]: Prefácio: Alterações gramaticais. * 8 de setembro, 2002 [timothy]: Capítulo 06: Aplicado o patch de mudanças do Alex. * 7 de setembro, 2002 [timothy]: Capítulo 06 - Gzip: Adicionado gzip-1.2.4b.patch. * 7 de setembro, 2002 [timothy]: Capítulo 05 - Textutils: Adicionado re_max_failures2 para os hosts de antigos sistemas. * 2 de setembro, 2002 [timothy]: Capítulo 06 - Bash: Removido a criação da ligação simbólica sh. Criando a ligação simbólica bash e sh: Adicionado ligação simbólica para /bin/bash. Gzip, Sysvinit, Util-Linux: comandos curtos de cópia. Man: Alterado a sentença sed para editar a chamada ao less , deste modo SGR funcionará. * 1 de setembro, 2002 [timothy]: Capítulo 06 - Sobre símbolos de depuração: Removido informação sobre /static. Man: Adicionando sentença sed para evitar que o groff utilize sequências de escape SGR. * 1 de setembro, 2002 [timothy]: Capítulo 05 - Instale todo o software como usuário comum: Adicionado CC='gcc -s' para omitir a compilação dos símbolos nos pacotes estáticos. * 30 de agosto, 2002 [timothy]: Capítulo 06 - Makedev: Colocado rm /bin/bash depois da criação dos dispositivos. Perl: Removida informação sobre o antigo patch. * 30 de agosto, 2002 [timothy]: Capítulo 05 - GCC: Readicionado HAVE_GAS_HIDDEN; removido --enable-__cxa-atexit que estava incorreto e não era necessário neste capítulo; adicionado informação sobre o patch. * 26 de agosto, 2002 [gerard]: Adicionado a nova correção Glibc e introduzido a correção GCC. * 26 de agosto, 2002 [gerard]: Atualizado para o automake-1.6.3, gcc-3.2, groff-1.18, makedev-1.7, perl-5.8.0 e util-linux-2.11u * 22 de agosto, 2002 [timothy]: Apêndice: Adicionado URLs que faltavam às correções. * 18 de agosto, 2002 [timothy]: Capítulo 05 e 06: Trocado ln -sf para ln -s sempre que possível. * 18 de agosto, 2002 [timothy]: Capítulo 06 - Binutils: cp libiberty.h depois da instalação é preciso para que alguns softwares funcionem. Shadow: Adicionado comando para remover grupos de programas instalados por ele. * 18 de agosto, 2002 [timothy]: Capítulo 05 - Sh-utils: Readicionado sh-utils-2.0.patch. * 16 de agosto, 2002 [markh]: Capítulo 06 - As man-pages foram movidas para depois da instalação dos cabeçalhos do kernel. * 15 de agosto, 2002 [markh]: Capítulo 06 - Movida a instalação do MAKEDEV para antes do glibc e removida a criação temporária do /dev/null pois não precisamos mais. * 15 de agosto, 2002 [timothy]: Capítulo 04 - Preparando uma nova partição: Menção sobre a partição swap poder ser compartilhada entre o LFS e os outros sistemas. Mudanças gramaticais. * 13 de agosto, 2002 [gerard]: Capítulo 06: Removido o --with-curses da instalação do Bash (pois é desnecessário aqui.) * 9 de agosto, 2002 [timothy]: Upgrade para modutils-2.4.19, linux-2.4.19, gettext-0.11.5, binutils-2.13 e textutils-2.1. * 9 de agosto, 2002 [timothy]: Capítulo 06 - Vim: alterado o link do editor alternativo para o BLFS. * 8 de agosto, 2002 [gerard]: Capítulo 06 - Ncurses: removido a opção --disable-termcap. Termcap está agora desabilitado por padrão, então não há necessidade desta opção. * 8 de agosto, 2002 [gerard]: Capítulo 06 - Linux: Adicionado o comando cp include/asm-generic /usr/include. Existem programas que se utilizam dos arquivos que estão nele, assim como os headers no asm o diretótio pode ser separado no futuro, e colocado no asm-generic. * 8 de agosto, 2002 [gerard]: Apêndice A - Gettext: adicionado a descrição do msgcat. * 4 de agosto, 2002 [timothy]: Adicionado zlib-1.1.4. * 3 de agosto, 2002 [timothy]: Atualizado para man-pages-1.52, man-1.5k, gettext-0.11.4 e modutils-2.4.18. * 29 de Julho, 2002 [timothy]: Removido Reiserfsprogs. Atualizado para util-linux-2.11t e file-3.39. * 29 de Julho, 2002 [timothy]: Capítulo 04 & 05 - Criando uma nova partição, Introdução, Por que estático: mudanças gramaticais. Diffutils, Fileutils, Grep, Texinfo: colocado LDFLAGS=-static antes de configure ao invés de um argumento para o make. GCC: adicionado HAVE_GAS_HIDDEN para auto-host.h. * 29 de Julho, 2002 [timothy]: Capítulo 06 - Glibc: adicionado a opção --disable-profile. * 29 de Julho, 2002 [timothy]: Capítulo 08 - Linux: adicionado informações sobre os módulos e a documentação do kernel. * 29 de Julho, 2002 [timothy]: Capítulo 09 - Reiniciando o Sistema: adicionado o comando para remover os diretórios estáticos. * 8 de Julho, 2002 [timothy]: Capítulo 09 - Reiniciando o sistema: O próximo passo está em BLFS. * 3 de Julho, 2002 [timothy]: Capítulo 06 - Sysvinit: Simplificado o comando sed e atualizado a descrição de instalação porque ele agora imprime "Sending processes" ao invés de "Sending all processes". * 2 de Julho, 2002 [markh]: Alteração interna - Feito todos os patches utilizarem uma entidade &package-patch-version;. * 30 de junho, 2002 [timothy]: Atualizado para man-pages-1.51 e automake-1.6.2 * 24 de junho, 2002 [timothy]: Capítulo 06 - Shadow, Util-linux, LFS-Bootscripts: Melhorias nas descrições dos pacotes. * 23 de junho, 2002 [timothy]: Capítulo 05 & 06 - Net-tools, Perl, Texinfo, Autoconf, Automake, File, Libtool, Bin86, Vim, Linux, Bison, Less, Man-pages, Groff, Bzip2, E2fsprogs, Grep, Lilo, Modutils, Procps, Psmisc, Reiserfsprogs: Melhorias nas descrições dos pacotes. * 23 de junho, 2002 [timothy] Capítulo 05 & 06 - M4, Bzip2, File, E2fsprogs: Adicionado "Última atualização em" para uniformidade. GCC: Removido programas específicos para i686. * 16 de junho, 2002 [timothy]: Capítulo 06 - Gettext: Atualizados conteúdos dos pacotes. * 14 de junho, 2002 [timothy]: Capítulo 05 & 06 - Binutils, Bzip2, Diffutils, Grep: Atualizados conteúdos dos pacotes. GCC: Atualizado descrição de c++filt. * 13 de junho, 2002 [timothy]: Capítulo 09 - O Fim: $LFS/etc/lfs-4.0 modificado para $LFS/etc/lfs e colocado o número da versão neste arquivo. * 12 de junho, 2002 [timothy]: Capítulo 05 - GCC: Modificado as instruções da construção e explicações dos comandos para apenas a construção do compilador C. O compilador C++ não será mais necessário após a inserção do GCC. * 12 de junho, 2002 [timothy]: Capítulo 06 - Shadow: alterações gramaticais. * 11 de junho, 2002 [timothy]: Capítulo 05 e 06 - Gawk: Criado a lista de pacotes necessários e descrições. Fileutils: Removido o confuso parágrafo sobre a correção do fileutils. GCC: Incluído os pacotes necessários. * 11 de junho, 2002 [timothy] Todo o Software: Incluído a estimativa de quanto espaço em disco é necessário. * 9 de junho, 2002 [markh]: Capítulo 06 - Criando Diretórios: Alterado usr,usr/local para apenas usr/local porque utilizamos a opção -p do mkdir, que irá criar também o diretório usr. * 7 de junho, 2002 [timothy] Capítulo 06 - Reiserfsprogs: adicionado a descrição de como descompactar. * 7 de junho, 2002 [timothy] Capítulo 02 - Como obter ajuda: mencionado o FAQ. * 6 de junho, 2002 [markh] - Capítulo 05 - Atualizado explicações sobre a mudança para /static. * 5 de junho, 2002 [timothy]: Prefácio - Quem não desejará ler este livro: Versão revisada por Scot. (A versão em inglês.) * 5 de junho, 2002 [timothy]: Capítulo 09 - Reiniciando o sistema, Lilo, Bootscripts: nomeados os autores das dicas. Capítulo 06 - Vim: adicionada a URL da dica. Capítulo 05 - Gawk: para evitar confusão, mencionado o patch que será aplicado no Capítulo 06. * 3 de junho, 2002 [timothy] Capítulo 01 - FAQ: editada para incluir as diversas listas. * 31 de maio, 2002 [gerard] Capítulo 05 - Findutils: Adicionado a correção CPPFLAGS...re_max_failures que é necessário em sistemas Glibc-2.1. * 30 de maio, 2002 [markh]: Capítulo 05 e 06 - Atualizado para binutils-2.12.1. * 30 de maio, 2002 [markh]: Capítulo 05 - Bash: Removido seção sobre "últimos dois comandos a serem executados" porque nós não temos mais os comandos referentes a eles. * 30 de maio, 2002 [gerard]: Capítulo 06 - Glibc: Substituídas as vários correções sed por um patch normal. * 30 de maio, 2002 [gerard]: Capítulo 06 - Gawk: Substituída a correção sed por um patch normal. * 30 de maio, 2002 [gerard]: Capítulo 05 - Fileutils: Substituída a correção sed por um patch normal. * 30 de maio, 2002 [gerard]: Capítulo 06 - Ed: Substituída a correção sed por um patch normal. * 28 de maio, 2002 [gerard]: Capítulo 06 - Alterando propriedade: removido o comando explícito chown /lost+found. Isto é feito pelo primeiro comando agora que proc não é mais montado no capítulo 5. * 27 de maio, 2002 [gerard]: Atualizado para ncurses-5.2-2.patch (este patch é menor que o utilizado anteriormente). * 26 de maio, 2002 [gerard]: Atualizado para: automake-1.6.1, bin86-0.16.3, file-3.38, gawk-3.1.1, gcc-3.1, gettext-0.11.2, modutils-2.4.16, psmisc-21 e util-linux-2.11r. Adicionado patches de correção do compilador gcc-3.1 para ncurses, perl e vim. * 26 de maio, 2002 [gerard]: Capítulo 05+06 - Binutils: Removido o ajuste tooldir do capítulo 05-binutils, esta descrição foi movida para o capítulo 06-binutils. * 26 de maio, 2002 [gerard]: Capítulo 05 - Gawk & Findutils: simplificada a instalação através da remoção das modificações em libexecdir. Nós podemos utilizar $LFS/static/libexecdir, de qualquer modo este diretório é temporário, portanto não é necessário preocupar-se com a sua aparência. * 26 de maio, 2002 [gerard]: Capítulo 06 - Criando Diretórios: removido o comando cd / e alterados os dois comandos chmod para utilizar caminhos absolutos. * 25 de maio, 2002 [markh]: Capítulo 06 - Algumas pequenas correções sobre a remoção da variável LFS quando ela não é necessária. * 23 de maio, 2002 [gerard]: Implementado a dica keep_chap5_and_chap6_sep. Ênfase da mudança: adicionado findutils e util-linux ao capítulo 5, instalado tudo do capítulo 5 dentro de $LFS/static e reordenado a instalação de pacotes no capítulo 6 para evitar caminhos errados para arquivos do diretório $LFS/static. * 23 de maio, 2002 [gerard]: Apêndice A - E2fsprogs: Adicionado mais algumas descrições. * 23 de maio, 2002 [gerard]: Apêndice A - Bin86: Adicionado mais algumas descrições. * 23 de maio, 2002 [gerard]: Apêndice A - Flex: Adicionado mais algumas descrições. * 23 de maio, 2002 [gerard]: Apêndice A - Glibc: Adicionado mais algumas descrições. * 18 de maio, 2002 [gerard]: Apêndice A - E2fsprogs: Adicionado mais algumas descrições. * 18 de maio, 2002 [gerard]: Apêndice A - Glibc: Adicionado mais algumas descrições. * 17 de maio, 2002 [markh]: Alterados todos os chown X.X para chown X:X que é menos propenso a ter problemas (de acordo com a documentação do chown). * 16 de maio, 2002 [gerard]: Capítulo 01 - Sites Espelho: Adicionado a interface http para o FTP espelho em idge.net * 16 de maio, 2002 [gerard]: Apêndice A - Glibc: Adicionado mais algumas descrições. * 15 de maio, 2002 [markh]: Capítulo 05 - Bzip2. Alterado as instruções para manusear ligações absolutas em distribuições antigas nas instruções do gzip. * 11 de maio, 2002 [markh]: Várias correções XML, principalmente alterando tags para remover errados na saída HTML. * 9 de maio, 2002 [gerard]: Appendix A - Glibc: Completado descrições faltantes. * 6 de maio, 2002 [gerard]: Capítulo 06 - Shadow: Corrigida a localização da ligação simbólica de vigr para /usr/sbin * 2 de maio, 2002 [gerard]: Capítulo 06 - Procps: Alterado os dois apóstrofos por duas aspas (os apóstrofos podem ser confundidos com aspas, o que irá causar um erro). * 2 de maio, 2002 [gerard]: Alterado os comandos cd dir && ln -sf para um único comando (tal como ln -sf bash $LFS/bin/sh O mesmo vale para cd dir && mv/cp que são substituídos por construções como mv $LFS/usr/bin/ {bzcat,bzip2} $LFS/bin. * 2 de maio, 2002 [markh]: Removido a Seção "Removendo Arquivos Antigos da Biblioteca NSS". * 1 de maio, 2002 [gerard]: Removido todos os workarounds para Glibc-2.0 - gzip, sh-utils, copiando os arquivos libnss. Também removidas construções export VAR=VALUE...unset VAR e alteradas para VAR=VALUE ./configure. * 26 de abril, 2002 [marcheerdink]: Capítulo 06 Findutils: adicionado libexecdir=/usr/bin para o comando make a fim de corrigir um caminho libexecdir incorreto no updatedb. * 25 de abril, 2002 [gerard]: Capítulo 06 Glibc: Adicionado uma nota sobre se você quiser instalar alguns locais manualmente, ao invés de todos eles, então você tem que criar primeiro o diretório /usr/lib/locale. * 21 de abril, 2002 [gerard & markh]: Atualização para o MAKEDEV-1.5 * 12 de abril, 2002 [markh]: Adicionado diretório entities/ ao cvs e separado index.xml. * 10 de abril, 2002 [marcheerdink]: Atualização para os seguintes Pacotes: bison-1.35, diffutils-2.8.1, texinfo-4.2, util-linux-2.11q * 9 de abril, 2002 [marcheerdink]: Adicionado --disable-perl-regexp ao configure do grep para evitar vinculação a uma biblioteca pcre estática inexistente. * 8 de abril, 2002 [gerard]: Adicionado o espelho http:// ftp.de.linuxfromscratch.org. ------------------------------------------------------------------------------- Listas de discussão O servidor linuxfromscratch.org está hospedando as seguintes listas de discussão, publicamente acessíveis: * lfs-support * lfs-dev * lfs-announce * lfs-book * lfs-chat * lfs-security * alfs-discuss * blfs-dev * blfs-book * blfs-support ------------------------------------------------------------------------------- lfs-support A lista lfs-support serve para obter ajuda com respeito às instruções do guia LFS. Se você já concluiu o guia, utilize a lista blfs-support ao invés desta. ------------------------------------------------------------------------------- lfs-dev A lista lfs-dev serve para debate sobre o desenvolvimento do guia LFS. ------------------------------------------------------------------------------- lfs-announce A lista lfs-announce é para aqueles que desejam ser notificados sobre a disponibilidade de novas versões estáveis do livro, sem o alto tráfego de mensagens da lfs-dev. ------------------------------------------------------------------------------- lfs-book A lista lfs-book é usada para coordenar a manutenção do guia LFS. O tráfego desta lista é, em sua maioria, composta de mensagens do Bugzilla e do CVS. Toda e qualquer discussão com repeito ao desenvolvimento do livro e que seja do interesse de seus usuários deve ser feita na lista lfs-dev, não aqui. ------------------------------------------------------------------------------- lfs-chat A lista lfs-chat é o lugar apropriado para bate-papo entre membros da comunidade. É um local onde nada está fora do tópico (off-topic). Você pode discutir a respeito do preço da cerveja ou sobre que hardware comprar. Mesmo "flame wars" sobre GNU x BSD e Microsoft x Linux são aceitas na lfs-chat. ------------------------------------------------------------------------------- lfs-security A lista lfs-security serve para a discussão sobre aspectos de segurança. Alertas de vulnerabilidades, questões sobre configuração de pacotes relacionados à segurança ou outros tópicos que dizem respeito à segurança de sistemas são apropriados para esta lista. ------------------------------------------------------------------------------- alfs-discuss A lista alfs-discuss trata do desenvolvimento do ALFS. ------------------------------------------------------------------------------- blfs-dev A lista blfs-dev serve para a discussão sobre o desenvolvimento do guia BLFS. ------------------------------------------------------------------------------- blfs-book A lista blfs-book é usada para coordenar a manutenção do guia BLFS. O tráfego desta lista é, em sua maioria, composta de mensagens do Bugzilla e do CVS. Toda e qualquer discussão com repeito ao desenvolvimento do livro e que seja do interesse de seus usuários deve ser feita na lista blfs-dev, não aqui. ------------------------------------------------------------------------------- blfs-support A lista blfs-support está relacionada ao guia BLFS e mais um pouco. Isto inclui pedidos de ajuda com respeito às instruções do BLFS e auxílio na instalação de pacotes não presentes ainda no LFS ou no BLFS. Não estão incluídos tópicos sobre o preço da cerveja, sobre que hardware comprar, "flame wars" sobre GNU x BSD ou Microsoft x Linux. Tudo isto diz respeito à lista lfs-chat e, já que a blfs-support é de alto-tráfego, siga estas regras rigidamente. ------------------------------------------------------------------------------- Histórico das mensagens Todas estas listas são arquivadas e podem ser visualizadas online em http:// archive.linuxfromscratch.org/mail-archives ou baixadas de http:// ftp.linuxfromscratch.org/mail-archives ou ftp://ftp.linuxfromscratch.org/ mail-archives. ------------------------------------------------------------------------------- Como postar para uma lista O endereço de postagem para uma lista possui o formato nomedalista@linuxfromscratch.org, onde nomedalista é um dos nomes acima. Por exemplo, são endereços de postagem válidos lfs-support@linuxfromscratch.org e blfs-support@linuxfromscratch.org. ------------------------------------------------------------------------------- Como inscrever-se? Qualquer uma das listas de discussão mencionadas acima podem ser assinadas enviando um email para listar@linuxfromscratch.org e escrevendo subscribe nomelista como assunto da mensagem. Múltiplas listas podem ser assinadas ao mesmo tempo utilizando um único email. Isto é feito deixando o assunto em branco e colocando todos os comandos no corpo da mensagem. O email ficará parecido com: Para: listar@linuxfromscratch.org Assunto: subscribe lfs-dev subscribe blfs-support subscribe alfs-discuss Depois que o email for enviado, o programa Listar irá responder com um email requisitando uma confirmação para a inscrição. Depois que esta confirmação for retornada, Listar irá enviar outro email avisando que o usuário foi inscrito com sucesso na(s) lista(s), juntamente com uma mensagem de introdução específica para a(s) lista(s) selecionadas. ------------------------------------------------------------------------------- Como remover a inscrição? Para desinscrever-se de uma lista, envie um email para listar@linuxfromscratch.org e escreva unsubscribe nomelista como assunto da mensagem. É possível remover a inscrição de múltiplas listas ao mesmo tempo usando um único email. Isto é feito deixando o assunto em branco e colocando todos os comandos no corpo da mensagem. O email se parecerá com: Para: listar@linuxfromscratch.org Assunto: unsubscribe lfs-dev unsubscribe blfs-support unsubscribe alfs-discuss Depois que o email for enviado, o programa Listar irá responder com um email requisitando a confirmação para o pedido de desinscrição. Depois desta confirmação ser retornada, Listar irá enviar outro email com a mensagem de que o usuário foi removido com sucesso da(s) lista(s). ------------------------------------------------------------------------------- Outros modos Os modos que podem ser marcados por um usuário requerem o envio de um email para listar@linuxfromscratch.org. Os modos em si são marcados escrevendo os comandos apropriados no cabeçalho assunto da mensagem. Como o nome sugere, o comando set diz o que escrever para marcar um modo. O comando unset diz o que escrever para desmarcar um modo. A palavra "nomelista" nos exemplos abaixo deve ser substituída com o nome da lista para a qual o modo será aplicado. Para marcar mais de um modo (para a mesma lista ou para múltiplas listas) com um único email, deve-se deixar o cabeçalho assunto em branco e escrever todos os comandos no corpo da mensagem. ------------------------------------------------------------------------------- Sinopses Comando Set: set nomelista digest Comando Unset: unset nomelista digest Todas as listas têm o modo sinopse disponível, que pode ser marcado depois que o usuário inscreveu-se numa lista. O modo sinopse irá interromper o recebimento de mensagens individuais da forma como são postadas para a lista e, ao invés disso, será enviado um email diário contendo todas as mensagens postadas para a lista naquele dia. Há um segundo modo sinopse chamado digest2. Quando um usuário marcar este modo, ele irá receber as sinopses diárias mas também continuará recebendo as mensagens individuais, da forma como foram postadas. Para marcar este modo, substitua digest por digest2 no comando. ------------------------------------------------------------------------------- Férias Comando Set: set nomelista vacation Comando Unset: unset nomelista vacation Se um usuário for ficar fora por um tempo ou deseja parar de receber mensagens das listas mas não quer desinscrever-se, ele pode mudar para o modo férias. Este tem o mesmo efeito da desinscrição, mas sem ter que passar pelo processo de desinscrição e depois pelo de inscrição novamente. ------------------------------------------------------------------------------- Servidor de notícias Todas as listas de discussão hospedadas em linuxfromscratch.org são também acessíveis através de servidor NNTP. Todas as mensagens postadas para uma lista de discussão são copiadas para o grupo de notícias correspondente, e vice-versa. O servidor de notícias pode ser acessado em news.linuxfromscratch.org. ------------------------------------------------------------------------------- FAQ Se você encontrar algum erro, tiver alguma dúvida ou detectar uma falha no livro, então consulte a página do FAQ (Frequently Asked Questions, Perguntas Freqüentes). http://www.linuxfromscratch.org/faq/ ------------------------------------------------------------------------------- Informação para contato Por favor, direcione seus emails para uma das listas de discussão do LFS. Veja Chapter 1 - Mailing lists and archives para mais informações sobre as listas disponíveis. Se você deseja contactar Gerard Beekmans pessoalmente, envie um email para gerard@linuxfromscratch.org. ------------------------------------------------------------------------------- Capítulo 2. Informações importantes ------------------------------------------------------------------------------- Sobre $LFS Leia o que se segue cuidadosamente: ao longo deste livro a variável LFS será utilizada freqüentemente. $LFS deve sempre ser substituído com o diretório onde a partição que contém o sistema LFS está montada. Como criar e onde montar a partição será explicado com maiores detalhes no Capítulo 4. Por exemplo, vamos supor que a partição LFS está montada em /mnt/lfs. Quando você é instruído a executar um comando como ./configure --prefix=$LFS/ static você na verdade tem que executar ./configure --prefix=/mnt/lfs/static. Isto deve ser feito não importando onde esteja sendo lido; pode ser em comandos digitados em um shell, ou em um arquivo editado ou criado. Uma possível solução é criar a variável de ambiente LFS. Dessa forma, $LFS pode ser digitado literalmente ao invés de substituí-lo por /mnt/lfs. Isto é feito executando-se: export LFS=/mnt/lfs Agora, se você é instruído a executar um comando como ./configure --prefix=$LFS /static, então você pode digitá-lo literalmente. Seu shell irá substituir $LFS com /mnt/lfs quando processar a linha de comando (ou seja, quando você apertar a tecla enter depois de ter digitado o comando). ------------------------------------------------------------------------------- Sobre SBUs SBUs são Unidades de Bash Estático (Static Bash Units) e constituem nosso método de identificação de quão longa é a compilação de um pacote. Porque não utilizamos unidades de tempo normais como todo o mundo? O maior problema é que unidades de tempo não são precisas. Então as pessoas instalam o LFS em tantos sistemas diferentes, que o tempo que estes levam para compilar algo varia bastante. Um pacote pode demorar 20 minutos para compilar em um sistema, mas poderá também demorar 3 dias em outro (isto não é um exagero). Então, ao invés disso, adotamos o Static Bash Unit ou SBU. Funciona assim: o primeiro pacote que você compila neste livro é o Bash, no Capítulo 5, e este será vinculado estaticamente. O tempo transcorrido para compilar este pacote será a base da unidade e é o SBU. Todos os outros tempos de compilação são relativos ao tempo gasto para instalar o Bash. Por exemplo, o GCC-3.2 demora cerca de 9.5 SBUs e está comprovado que este número é bastante consistente entre muitos sistemas diferentes. Então multiplique 9.5 pelo número de segundos gastos para o Bash (o valor do SBU) e você obtém um valor aproximado de quanto tempo o GCC levará para compilar em seu sistema. Nota: Temos visto que SBUs não funcionam bem em máquinas baseadas em SMP. Logo, desconsidere o SBU se você possuir uma configuração de tal tipo. ------------------------------------------------------------------------------- Como pedir ajuda Se você tiver problemas enquanto usa este livro, que não estiver listado no FAQ (http://www.linuxfromscratch.org/faq), muitas pessoas no IRC (Internet Relay Chat) e nas listas de discussão terão o maior prazer em ajudá-lo. Uma visão geral das listas de discussão pode ser encontrada em Chapter 1 - Mailing lists and archives. Para facilitar o diagnóstico e resolução do seu problema, inclua o máximo de informações relevantes possível no seu pedido de ajuda. ------------------------------------------------------------------------------- Fatos a mencionar Além de uma breve exposição do problema que você está tendo, fatos essenciais a incluir em seu pedido são: * a versão do livro que você está usando (4.1), * a distribuição hospedeira que você está usando para criar o LFS, incluindo sua versão, * o pacote ou seção que está lhe dando problemas, * a mensagem de erro exata ou sintoma que você está recebendo, * se você desviou das instruções exatas do livro. (Note que dizendo que você desviou das instruções do livro não significa que não iremos ajudá-lo. Acima de tudo, LFS é baseado em escolhas. Isto apenas irá nos ajudar a verificar outras possíveis causas do seu problema.) ------------------------------------------------------------------------------- Problemas no ./configure Quando algo der errado durante o estágio em que o script configure for executado, verifique as últimas linhas do config.log. Este arquivo pode conter mensagens de erro encontrados durante a configuração que não foram mostradas na tela. Inclua estas linhas relevantes se você decidir pedir ajuda. ------------------------------------------------------------------------------- Problemas na compilação Para nos ajudar a encontrar a causa do problema, a saída da tela e o conteúdo de vários arquivos são bastante úteis. A saída do script ./configure e do comando make podem também ser úteis. Não inclua tudo o que aparecer, mas também não inclua pouco demais. Como exemplo, aqui está um trecho da saída 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 Neste caso, muita gente inclui apenas a última parte, de make [2]: *** [make] Error 1 em diante. Isto não é suficiente para diagnosticarmos o problema, porque apenas nos diz que algo deu errado, não o quê deu errado. A seção toda, como no exemplo acima, é o que deve ser incluso para ser útil, pois abrange o comando que foi executado e a(s) mensagem(ns) de erro apresentadas. Um excelente artigo sobre como perguntar por ajuda na Internet em geral foi escrito por Eric S. Raymond. Está disponível online em http://www.tuxedo.org/ ~esr/faqs/smart-questions.html. Leia e siga as dicas deste documento e você estará bem apto a receber as respostas e interpretá-las corretamente e também a achar a ajuda que realmente precisa. II. Parte II - Preparativos para a construção Índice 3. Preparando uma nova partição 4. Pacotes que precisam ser baixados 5. Preparando o sistema LFS ------------------------------------------------------------------------------- Capítulo 3. Preparando uma nova partição ------------------------------------------------------------------------------- Introdução Neste capítulo, a partição que hospedará o sistema LFS é preparada. Iremos criar a partição em si, configurar um sistema de arquivos e montá-la. ------------------------------------------------------------------------------- Criando uma nova partição Para construírmos nosso novo sistema Linux, precisamos de algum espaço: uma partição em disco vazia. Se você não possui uma partição livre, nem espaço em seu(s) disco(s) rígido(s) para criar uma, então você pode contruir o LFS na mesma partição em que sua distribuição atual está instalada. Este procedimento não é recomendado para sua primeira instalação do LFS, mas se você tem pouco espaço em disco, e se sente corajoso, dê uma olhada na dica em http:// hints.linuxfromscratch.org/hints/lfs_next_to_existing_systems.txt. Para um sistema mínimo, você precisará de uma partição de aproximadamente 1 GB. Isto é suficiente para armazenar todos os pacotes e compilá-los. Mas se você pretende usar o LFS como seu sistema Linux principal, você provavelmente desejará instalar softwares adicionais, e precisará de mais espaço, aproximadamente 2 ou 3 GB. Como geralmente não temos memória RAM suficiente em nossa máquina, é recomendável utilizar uma pequena partição como espaço swap -- este espaço é utilizado pelo kernel para armazenar dados raramente consultados, liberando memória para tarefas prioritárias. A partição swap de seu sistema LFS pode ser a mesma de sua distribuição atual, caso esta possua uma. Inicie o programa cfdisk tendo como argumento o nome do disco rígido no qual a nova partição será criada -- por exemplo /dev/hda para o disco IDE primário. Crie uma partição Linux nativa e, caso necessário, uma partição swap. Consulte a página de manual do cfdisk se você não sabe como utilizar o programa. Memorize a designação da sua nova partição -- algo como hda5. Este livro irá se referir a ela como a partição LFS. Se você criou uma partição swap, memorize sua designação também. Estes nomes serão necessários mais tarde no momento da criação do arquivo /etc/fstab. ------------------------------------------------------------------------------- Criando um sistema de arquivos na nova partição Agora que a partição foi criada, podemos configurar um sistema de arquivos. O Sistema de Arquivos Estendido 2 (ext2, Second Extended File System) é o mais utilizado no mundo Linux, mas com os discos de alta capacidade de hoje, os sistemas de arquivos "journaling" estão ficando populares. Aqui vamos criar um sistema de arquivos ext2, mas instruções de configuração para outros sistemas podem ser encontradas em http://beyond.linuxfromscratch.org/view/cvs/postlfs/ filesystems.html. Para criar um sistema de arquivos ext2 na partição LFS, execute os seguintes comandos: mke2fs /dev/xxx Substitua xxx com o nome da partição LFS (algo como hda5). Se você criou uma partição swap, é necessário formatá-la executando: mkswap /dev/yyy Substitua yyy pelo nome da partição swap. ------------------------------------------------------------------------------- Montando a nova partição Agora que criamos um sistema de arquivos, desejamos ser capazes de acessar a partição. Para isto, precisamos montá-la, e escolher um ponto de montagem. Neste livro, assumimos que o sistema de arquivos está montado sob /mnt/lfs, mas não importa qual diretório você escolheu. Escolha um ponto de montagem e o associe à variável de ambiente LFS executando: export LFS=/mnt/lfs Agora, crie o ponto de montagem e monte o sistema de arquivos LFS executando: mkdir -p $LFS && mount /dev/xxx $LFS Substitua xxx pela designação da partição LFS. Se você decidiu utilizar múltiplas partições para o LFS (por exemplo, uma para / e outra para /usr), monte-as desta forma: mkdir -p $LFS && mount /dev/xxx $LFS && mkdir $LFS/usr && mount /dev/yyy $LFS/usr Claro, substitua xxx e yyy com os nomes apropriados das partições. Agora que criamos um local de trabalho, estamos prontos para fazer o download dos pacotes. ------------------------------------------------------------------------------- Capítulo 4. Pacotes que precisam ser baixados ------------------------------------------------------------------------------- Introdução É listado a seguir os pacotes que você precisa baixar para construir um sistema Linux básico. Os números de versão citados correspondem à versão do software que funciona de forma estável, e este livro é baseado nela. Sinta-se livre para testar versões mais recentes, mas se você tiver problemas com elas, teste primeiro a versão recomendada antes de relatar bugs. Todas as URLs, quando possível, referem-se à página do projeto em Freshmeat.net . As páginas do Freshmeat darão a você fácil acesso ao local oficial para download, bem como a página Web, listas de discussão, FAQs, Changelog, etc. do projeto. Para sua conveniência, há um arquivo que pode ser utilizado com o programa wget para baixar todos os pacotes de uma vez, ao invés de baixá-los individualmente. [N.T.: O link para este arquivo não se encontra no livro; há várias formas de se obter os pacotes, veja em http://test.linuxfromscratch.org/lfs/packages.html ] ------------------------------------------------------------------------------- Pacotes que precisam ser baixados Baixe os seguintes pacotes: Autoconf (2.57) - 792 KB: http://freshmeat.net/projects/autoconf/ Automake (1.7.2) - 518 KB: http://freshmeat.net/projects/automake/ Bash (2.05a) - 1,766 KB: http://freshmeat.net/projects/gnubash/ Bin86 (0.16.3) - 142 KB: http://freshmeat.net/projects/bin86/ Binutils (2.13.2) - 9,534 KB: http://freshmeat.net/projects/binutils/ Bison (1.875) - 796 KB: http://freshmeat.net/projects/bison/ Bzip2 (1.0.2) - 650 KB: http://freshmeat.net/projects/bzip2/ Diffutils (2.8.1) - 762 KB: http://freshmeat.net/projects/diffutils/ E2fsprogs (1.32) - 2,827 KB: http://freshmeat.net/projects/e2fsprogs/ Ed (0.2) - 182 KB: http://freshmeat.net/projects/ed/ Ed Patch (0.2) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ed-0.2.patch http://downloads.linuxfromscratch.org/ed-0.2.patch File (3.39) - 177 KB: http://freshmeat.net/projects/file/ Fileutils (4.1) - 1,770 KB: http://freshmeat.net/projects/gnufileutils/ Fileutils Patch (4.1) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/fileutils-4.1.patch http://downloads.linuxfromscratch.org/fileutils-4.1.patch Findutils (4.1) - 288 KB: http://freshmeat.net/projects/findutils/ Findutils Patch (4.1) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/findutils-4.1.patch http://downloads.linuxfromscratch.org/findutils-4.1.patch Findutils Segfault Patch (4.1) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/findutils-4.1-segfault.patch http://downloads.linuxfromscratch.org/findutils-4.1-segfault.patch Flex (2.5.4a) - 372 KB: http://freshmeat.net/projects/flex/ Gawk (3.1.1) - 1,831 KB: http://freshmeat.net/projects/gnuawk/ Gawk Patch (3.1.1-3) - 1 KB: http://downloads.linuxfromscratch.org/gawk-3.1.1-3.patch GCC-core (3.2.1) - 13,140 KB: http://freshmeat.net/projects/gcc/ GCC-g++ (3.2.1) - 2520 KB: http://freshmeat.net/projects/gcc/ Gettext (0.11.5) - 3,637 KB: http://freshmeat.net/projects/gettext/ Glibc (2.3.1) - 17,463 KB: http://freshmeat.net/projects/glibc/ Glibc Root/Perl Patch: (2.3.1) - 1 KB: http://downloads.linuxfromscratch.org/glibc-2.3.1-root-perl.patch Glibc Libnss Patch: (2.3.1) - 1 KB: http://downloads.linuxfromscratch.org/glibc-2.3.1-libnss.patch Glibc-linuxthreads (2.3.1) - 238 KB: http://freshmeat.net/projects/glibc/ Grep (2.5) - 545 KB: http://freshmeat.net/projects/grep/ Groff (1.18.1) - 2,198 KB: http://freshmeat.net/projects/groff/ Gzip (1.2.4a) - 216 KB: http://freshmeat.net/projects/gzip/ Gzip Patch (1.2.4b) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/gzip-1.2.4b.patch http://downloads.linuxfromscratch.org/gzip-1.2.4b.patch Kbd (1.08) - 801 KB: http://freshmeat.net/projects/kbd/ Kbd Patch (1.08) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/kbd-1.08.patch http://downloads.linuxfromscratch.org/kbd-1.08.patch Less (378) - 239 KB: http://freshmeat.net/projects/less/ LFS-Bootscripts (1.11) - 25 KB: http://downloads.linuxfromscratch.org/lfs-bootscripts-1.11.tar.bz2 Libtool (1.4.3) - 1137 KB: http://freshmeat.net/projects/libtool/ Lilo (22.2) - 343 KB: http://freshmeat.net/projects/lilo/ Linux (2.4.20) - 26,778 KB: http://freshmeat.net/projects/linux/ M4 (1.4) - 310 KB: http://freshmeat.net/projects/gnum4/ Make (3.80) - 899 KB: http://freshmeat.net/projects/gnumake MAKEDEV (1.7) - 8 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/MAKEDEV-1.7.bz2 http://downloads.linuxfromscratch.org/MAKEDEV-1.7.bz2 Man (1.5k) - 189 KB: http://freshmeat.net/projects/man/ Man 80Cols Patch (1.5k) - 1 KB: http://downloads.linuxfromscratch.org/man-1.5k-80cols.patch Man Manpath Patch (1.5k) - 1 KB: http://downloads.linuxfromscratch.org/man-1.5k-manpath.patch Man Pager Patch (1.5k) - 1 KB: http://downloads.linuxfromscratch.org/man-1.5k-pager.patch Man-pages (1.54) - 583 KB: http://freshmeat.net/projects/man-pages/ Modutils (2.4.22) - 214 KB: http://freshmeat.net/projects/modutils/ Ncurses (5.3) - 2,019 KB: http://freshmeat.net/projects/ncurses/ Netkit-base (0.17) - 55 KB: http://freshmeat.net/projects/netkit/ Net-tools (1.60) - 194 KB: http://freshmeat.net/projects/net-tools/ Patch (2.5.4) - 183 KB: http://freshmeat.net/projects/patch/ Perl (5.8.0) - 10,765 KB: http://freshmeat.net/projects/perl/ Procinfo (18) - 24 KB: http://freshmeat.net/projects/procinfo/ Procps (3.1.5) - 233 KB: http://freshmeat.net/projects/procps/ Procps Patch (3.1.5) - 1 KB: http://downloads.linuxfromscratch.org/procps-3.1.5.patch Psmisc (21.2) - 253 KB: http://freshmeat.net/projects/psmisc/ Sed (4.0.5) - 665 KB: http://freshmeat.net/projects/sed/ Shadow (4.0.3) - 1030 KB: http://freshmeat.net/projects/shadow/ Sh-utils (2.0) - 1214 KB: http://freshmeat.net/projects/sh-utils/ Sh-utils Hostname Patch (2.0-hostname) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/sh-utils-2.0-hostname.patch http://downloads.linuxfromscratch.org/sh-utils-2.0-hostname.patch Sh-utils Patch (2.0) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/sh-utils-2.0.patch http://downloads.linuxfromscratch.org/sh-utils-2.0.patch Sysklogd (1.4.1) - 80 KB: http://freshmeat.net/projects/sysklogd/ Sysvinit (2.84) - 89 KB: http://freshmeat.net/projects/sysvinit/ Tar (1.13) - 1028 KB: http://freshmeat.net/projects/tar/ Tar Patch (1.13) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/tar-1.13.patch http://downloads.linuxfromscratch.org/tar-1.13.patch Texinfo (4.3) - 1,254 KB: http://freshmeat.net/projects/texinfo/ Textutils (2.1) - 1,847 KB: http://freshmeat.net/projects/textutils/ Util-linux (2.11y) - 1,777 KB: http://freshmeat.net/projects/util-linux/ Vim (6.1) - 2,822 KB: http://freshmeat.net/projects/vim/ Vim Patch (6.1) - 1 KB: ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/vim-6.1.patch http://downloads.linuxfromscratch.org/vim-6.1.patch Zlib (1.1.4) - 144 KB: http://freshmeat.net/projects/zlib/ Tamanho total de todos os pacotes: 99,270 KB (96.96 MB) ------------------------------------------------------------------------------- Capítulo 5. Preparando o sistema LFS ------------------------------------------------------------------------------- Introdução Neste capítulo iremos compilar e instalar um sistema Linux mínimo. Esse sistema conterá somente as ferramentas suficientes para iniciar a construção do LFS final no próximo capítulo. Os arquivos compilados neste capítulo serão instalados sob o diretório $LFS/ static, para mantê-los separados dos arquivos instalados no próximo capítulo. Já que os pacotes compilados aqui são meramente temporários, não desejamos que estes "poluam" o futuro sistema LFS. O segredo para se entender o funcionamento do sistema Linux é saber exatamente para que serve cada pacote, e porque o usuário ou o sistema precisa dele. Para este propósito, uma breve descrição do conteúdo de cada pacote é fornecida logo após as instruções de instalação. Grande parte dos pacotes são corrigidos antes da compilação, mas somente para a solução de problemas específicos. Muitas vezes o patch é necessário tanto neste como no próximo capítulo, mas às vezes é preciso apenas em um deles. Portanto, não se preocupe caso pareça estar faltando instruções para determinado patch. Durante a instalação dos pacotes, você verá diversas advertências do compilador aparecerem na tela. Essas advertências são normais e podem ser ignoradas. Elas são apenas o que dizem que são: advertências -- a maioria sobre o uso impróprio, mas não ilegal, da sintaxe da linguagem C ou C++. Isso ocorre porque as normas técnicas do C mudam freqüentemente e alguns pacotes ainda utilizam a sintaxe anterior, o que não é realmente um problema. Antes de continuar, tenha certeza de que a variável de ambiente LFS esteja configurada adequadamente, caso tenha decidido utilizá-la. Execute o seguinte: echo $LFS Verifique se é exibido o caminho para o ponto de montagem da sua partição LFS, que é /mnt/lfs caso você tenha seguido nosso exemplo. ------------------------------------------------------------------------------- Por que utilizamos vinculação estática Muitos programas, independentemente da tarefa a que são destinados, realizam diversas operações triviais, como alocação de memória, pesquisa em diretórios, abertura e fechamento de arquivos, leitura e escrita, manipulação de strings, identificação de padrões, cálculos matemáticos, etc. Ao invés de obrigar cada programa a "reinventar a roda", o sistema GNU provê todas estas funções básicas através de bibliotecas. A biblioteca fundamental, presente em todo sistema Linux, é a Glibc. Para se ter uma idéia do que ela contém, consulte sua documentação. Há duas maneiras de se vincular as funções de uma biblioteca a um programa: estaticamente ou dinamicamente. Quando um programa é vinculado estaticamente, o código das funções utilizadas é incluído no executável, resultando em um arquivo binário maior. Por outro lado, quando a vinculação é dinâmica, são incluídas apenas a referência ao vinculador, o nome da biblioteca e o nome da função, resultando em um executável bem menor. Este executável, entretanto, tem a desvantagem de ser um pouco mais lento do que um vinculado estaticamente, já que a vinculação em tempo de execução consome tempo. Fora isto, a vinculação dinâmica possui duas grandes vantagens sobre a vinculação estática. Primeiro, você precisa apenas de uma cópia do código da biblioteca em seu disco rígido, ao invés de ter várias cópias do mesmo código incluídas em diversos programas -- dessa forma, economiza-se espaço em disco. Segundo, quando diversos programas utilizam, ao mesmo tempo, a mesma função de uma biblioteca, apenas uma cópia do código dessa função é mantido em execução -- portanto, economiza-se também espaço em memória RAM. Hoje em dia, economizar uns poucos megabytes de espaço parece não ser muita coisa, mas, há bastante tempo, quando discos rígidos eram medidos em megabytes e memória em kilobytes, tal economia era essencial. Isto aumentava a possibilidade de se executar diversos programas ao mesmo tempo e de armazenar um sistema Unix inteiro em poucos discos. Uma terceira e menos importante vantagem da vinculação dinâmica é que quando uma função de determinada biblioteca tem um bug corrigido ou é aprimorada, você precisa apenas recompilar esta biblioteca, ao invés de ter que recompilar todos os programas que utilizam a função. Em síntese, podemos dizer que a vinculação dinâmica abre mão da velocidade em favor da economia de memória RAM ou espaço em disco e de tempo de recompilação. Mas se a vinculação dinâmica economiza tanto espaço, por que então estamos vinculando todos os programas deste capítulo estaticamente? A razão disto baseia-se no fato de que não iremos compilar uma biblioteca Glibc temporária aqui. E nós evitamos isto simplesmente para poupar tempo -- em torno de 14 SBUs. Outra razão é que a versão da Glibc do sistema LFS pode não ser compatível com a de seu sistema hospedeiro. Aplicações compiladas com a Glibc do seu sistema atual podem não funcionar corretamente (ou mesmo não funcionar) no sistema LFS. Isto significa que as ferramentas compiladas neste capítulo terão que ser autônomas, pois quando entrarmos em ambiente chroot a biblioteca GNU não estará mais disponível. É por causa disso que utilizamos as opções -static, --enable-static-link e --disable-shared no decorrer deste capítulo, para garantir que todos os executáveis estarão estaticamente vinculados. Quando passarmos para o próximo capítulo, uma das primeiras coisas que faremos é compilar o Glibc, o conjunto principal de bibliotecas do sistema. Feito isto, podemos vincular todos os outros programas dinamicamente (incluindo os que foram instalados estaticamente neste capítulo) e usufruir das vantagens na economia de espaço. ------------------------------------------------------------------------------- Criando o diretório $LFS/static Todos os programas compilados neste capítulo serão instalados sob $LFS/static, para mantê-los separados dos que serão instalados no próximo capítulo. Os programas aqui compilados são apenas ferramentas temporárias e não farão parte do sistema LFS final; mantendo-os em um diretório à parte, poderemos removê-los facilmente mais tarde. Crie este diretório executando o seguinte: mkdir $LFS/static ------------------------------------------------------------------------------- Adicionando o usuário lfs Se você estiver logado como root no decorrer do Capítulo 5, seu sistema hospedeiro poderá ser danificado por um simples engano. Recomendamos então que você compile os pacotes do Capítulo 5 como um usuário normal. Você pode usar sua própria conta, mas para garantir um ambiente de trabalho adequado, criaremos um novo usuário: lfs. Como root, execute os seguintes comandos para adicionar o novo usuário: useradd -s /bin/bash -m lfs passwd lfs A fim de garantir a propriedade do diretório $LFS/static ao usuário lfs, execute o comando: chown lfs $LFS/static A seguir, logue-se como usuário lfs. Isto pode ser feito via console virtual, gerenciador de display ou com o comando su: su - lfs O argumento "-" instrui o su para iniciar uma nova sessão, limpa. ------------------------------------------------------------------------------- Configurando o ambiente Enquanto logado como lfs, execute os seguintes comandos para configurar um bom ambiente de trabalho: cat > ~/.bash_profile << "EOF" umask 022 LFS=/mnt/lfs LC_ALL=POSIX CC="gcc -s" export LFS LC_ALL CC EOF source ~/.bash_profile Este perfil configura o umask para 022, para que os arquivos e diretórios criados tenham as permissões corretas. Especificamente, somente o dono terá permissão de escrita para novos arquivos e diretórios. Outros usuários do sistema terão permissão de leitura e de execução (este último para diretórios). É recomendável manter esta configuração durante a instalação do LFS. A variável LFS deve ser configurada para o ponto de montagem que você escolheu. A variável LC_ALL controla a localização (l10n) de certos programas, fazendo suas mensagens seguirem as convenções de um país específico. Se o seu sistema hospedeiro utiliza uma versão da Glibc mais antiga que 2.2.4, ter LC_ALL configurada para algo diferente de "C" ou "POSIX" durante este capítulo pode causar problemas quando você sair do ambiente chroot e desejar retornar mais tarde. Configurando-se LC_ALL para "POSIX" ("C" é um apelido para "POSIX"), garantimos que tudo funcionará como o esperado no ambiente chroot. Configuramos a variável CC para prevenir a compilação de símbolos de depuração nos pacotes estáticos. Omitindo estes símbolos durante o estágio de vinculação, poupamos espaço em disco e reduzimos o tempo de compilação. Estamos agora preparados para iniciar a compilação das ferramentas temporárias que irão nos auxiliar nos próximos capítulos. ------------------------------------------------------------------------------- Instalando Bash-2.05a Tempo estimado de compilação: 1 SBU Espaço em disco necessário: 24 MB ------------------------------------------------------------------------------- Conteúdo de Bash Última verificação na versão 2.05a. bash é o Bourne-Again SHell, um interpretador de comandos largamente utilizado em sistemas Unix. O programa bash lê da entrada padrão (o teclado). Um usuário digita algo, o programa avalia o que ele digitou e realiza alguma ação, como executar um programa. Bash instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bash, sh (ligação para bash) e bashbug ------------------------------------------------------------------------------- Dependências de instalação do Bash Última verificação na versão 2.05a. Bash: bash, sh Binutils: ar, as, ld, ranlib, size Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr, uniq ------------------------------------------------------------------------------- Instalação do Bash Antes de instalar o Bash, você precisa verificar se sua distribuição possui os arquivos /usr/lib/libcurses.a e /usr/lib/libncurses.a. Se sua distribuição hospedeira é um sistema LFS, estes arquivos já estarão presentes, caso você tenha seguido exatamente as instruções do livro. Se ambos os arquivos estiverem faltando, você precisará instalar o pacote de desenvolvimento do Ncurses. Este pacote é geralmente conhecido como ncurses-dev ou ncurses-static. Se este pacote já estiver instalado, ou você o instalou agora, verifique os dois arquivos novamente. Freqüentemente o arquivo libcurses.a (ainda) está faltando. Se for este o caso, crie libcurses.a como uma ligação simbólica executando o seguinte comando como usuário root: ln -s libncurses.a /usr/lib/libcurses.a Prepare o Bash para ser compilado executando o seguinte comando: ./configure --enable-static-link \ --prefix=$LFS/static --with-curses Descrições das opções acima: * --enable-static-link: Esta opção faz o Bash ser vinculado estaticamente. * --prefix=$LFS/static: Esta opção instala todos os arquivos do Bash sob o diretório $LFS/static, que torna-se o diretório /static dentro do LFS. * --with-curses: Esta opção vincula o Bash à biblioteca Curses ao invés da biblioteca padrão Termcap, que tornou-se obsoleta. Note que, em quase todos os sistemas Linux, a biblioteca Curses é fornecida pelo pacote Ncurses (portanto, na realidade estamos vinculando o Bash à biblioteca Ncurses). Não é estritamente necessário vincular-se o Bash estático à libncurses (pode-se vincular à libtermcap nesta etapa já que, de qualquer modo, iremos reinstalar o Bash no Capítulo 6, onde iremos utilizar a libncurses), mas isto serve de teste para se ter certeza de que o pacote Ncurses foi instalado corretamente. Caso contrário, você terá problemas mais adiante neste capítulo, quando for instalado o pacote Texinfo. Este pacote requer o Ncurses, e o Termcap não pode substituí-lo. Agora podemos continuar com a compilação do Bash: make Finalize a instalação do Bash: make install Se a fase make install terminar com algo como: install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir' usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn] [--section regexp title] [--infodir=xxx] [--align=nnn] [--calign=nnn] [--quiet] [--menuentry=xxx] [--info-dir=xxx] [--keep-old] [--description=xxx] [--test] [--remove] [--] filename make[1]: *** [install] Error 1 make[1]: Leaving directory `/mnt/lfs/usr/src/bash-2.05a/doc' make: [install] Error 2 (ignored) então isto significa que você provavelmente está usando o Debian-2.2 (Potato), e que tem uma versão antiga do pacote Texinfo. Isto não é um problema, já que as páginas de informação serão instaladas quando recompilarmos o Bash dinamicamente no Capítulo 6, portanto você pode ignorar esta mensagem. Foi relatado que a versão atual do Debian (3.0; também conhecida como Woody) não apresenta mais este bug. ------------------------------------------------------------------------------- Instalando Binutils-2.13.2 Tempo estimado de compilação: 2.05 SBU Espaço em disco necessário: 160 MB ------------------------------------------------------------------------------- Conteúdo de Binutils Última verificação na versão 2.12.1. Binutils é uma coleção de ferramentas de desenvolvimento de software, contendo um vinculador, um assembler e outras ferramentas que trabalham com arquivos-objetos e pacotes de arquivos. Binutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas addr2line, ar, as, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings e strip ------------------------------------------------------------------------------- Bibliotecas libbfd.[a,so] e libopcodes.[a,so] ------------------------------------------------------------------------------- Dependências de instalação do Binutils Última verificação na versão 2.11.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, true, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Instalação do Binutils Este pacote é conhecido por comportar-se mal quando você modifica suas opções de otimização (incluindo as opções -march e -mcpu). Portanto, se você definiu variáveis de ambiente que sobreponham a otimização padrão, tais como CFLAGS e CXXFLAGS, recomendamos removê-las enquanto compila o Binutils. É recomendado pela documentação do Binutils compilá-lo em um diretório separado do código-fonte: mkdir ../binutils-build cd ../binutils-build Prepare o Binutils para a compilação: ../binutils-2.13.2/configure --prefix=$LFS/static --disable-nls Descrições das (novas) opções acima: * --disable-nls: Esta opção desabilita a internacionalização (também conhecida como i18n). Não precisamos disto para nossos programas estáticos e NLS geralmente causa problemas quando se está compilando estaticamente. Compile o pacote: make LDFLAGS="-all-static" Descrição da opção acima: * LDFLAGS="-all-static": É dessa forma que configuramos o Binutils para ser vinculado estaticamente. Configurar a variável LDFLAGS é a forma mais comum de se especificar que desejamos vinculação estática. Entretanto, seu valor e a forma como é configurada nem sempre é a mesma. Você verá na compilação dos pacotes restantes que há diferentes formas de se configurar a variável LDFLAGS. Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Bzip2-1.0.2 Tempo estimado de compilação: 0.07 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Bzip2 Última verificação na versão 1.0.2 Bzip2 é um compactador de arquivos com poder de compactação geralmente melhor que o do tradicional gzip. Bzip2 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bunzip2 (ligação para bzip2), bzcat (ligação para bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless e bzmore ------------------------------------------------------------------------------- Bibliotecas libbz2.a, libbz2.so (ligação para libbz2.so.1.0), libbz2.so.1.0 (ligação para libbz2.so.1.0.2) e libbz2.so.1.0.2 ------------------------------------------------------------------------------- Dependências de instalação do Bzip2 Última verificação na versão 1.0.1. Bash: sh Binutils: ar, as, ld, ranlib Fileutils: cp, ln, rm Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Instalação do Bzip2 Já que o pacote Bzip2 não possui o script configure, não precisamos prepará-lo para a compilação. Ao invés disso, nós apenas executaremos o make e a compilação será iniciada, com algumas variáveis modificadas para que correspondam ao nosso sistema: make CC="gcc -static -s" Descrição da opção acima: * CC="gcc -static -s": O pacote Bzip2 não utiliza a variável LDFLAGS, por isso, ao invés dela, configuramos a variável CC, que define qual compilador deve ser utilizado. A opção -static diz ao compilador para vincular o Bzip2 estaticamente. Instale o pacote: make PREFIX=$LFS/static install Descrição da opção acima: * PREFIX=$LFS/static: Ao invés de passar a opção --prefix=$LFS/static para um script configure, nós configuramos a variável PREFIX para cumprir o mesmo papel (já que não há script configure presente). ------------------------------------------------------------------------------- Instalando Diffutils-2.8.1 Tempo estimado de compilação: 0.39 SBU Espaço em disco necessário: 10 MB ------------------------------------------------------------------------------- Conteúdo de Diffutils Última verificação na versão 2.8.1. Os programas deste pacote exibem as diferenças entre dois arquivos ou diretórios. Seu uso mais comum é na criação de patches. Diffutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas cmp, diff, diff3 e sdiff ------------------------------------------------------------------------------- Dependências de instalação do Diffutils Última verificação na versão 2.7. Bash: sh Binutils: ld, as Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: date, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Diffutils Prepare o Diffutils para a compilação: LDFLAGS="-static" CPPFLAGS=-Dre_max_failures=re_max_failures2 \ ./configure --prefix=$LFS/static --disable-nls Descrições das opções acima: * LDFLAGS="-static": Esta é a forma mais comum de configurar um pacote para ser compilado estaticamente. A variável de ambiente LDFLAGS é configurada, mas somente para o subshell em que o script configure é executado. Quando o configure for finalizado, a variável LDFLAGS não existirá mais, pois os arquivos Makefile configuram esta variável localmente. * CPPFLAGS=-Dre_max_failures=re_max_failures2: A variável CPPFLAGS é lida pelo programa cpp (pré-processador C). O valor desta variável diz ao pré-processador para substituir toda ocorrência de re_max_failures que este encontrar por re_max_failures2 antes de passar o arquivo-fonte ao compilador. Este pacote tem problemas com vinculação estática em sistemas que possuem uma versão antiga do Glibc e esta construção corrige o problema. Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Fileutils-4.1 Tempo estimado de compilação: 0.94 SBU Espaço em disco necessário: 40 MB ------------------------------------------------------------------------------- Conteúdo de Fileutils Última verificação na versão 4.1. Fileutils é um pacote contendo programas básicos de manipulação de arquivos. Estão incluídos programas para listagem e criação de diretórios, alteração do horário de acesso ou modificação de arquivos, modificação de permissões, etc. Fileutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch e vdir ------------------------------------------------------------------------------- Dependências de instalação do Fileutils Última verificação na versão 4.1. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Fileutils Há um bug referente à função atexit() no Glibc-2.2.3 quando este é compilado com o GCC-2.95.3. Este bug ocorre somente em certos sistemas (principalmente, mas não apenas, AMDs). Ele provoca falhas de segmentação no Fileutils-4.1 compilado estaticamente. Este patch substitui a função atexit() pela on_exit(). Note que, em alguns casos, usar este patch resultará na impossibilidade de compilar este pacote, mesmo quando seu sistema possui um processador AMD e o Glibc-2.2.3 (ou superior) instalado. Se este for o caso, você precisará remover o diretório fileutils-4.1 e descompactá-lo novamente antes de continuar. Acreditamos que isto acontece porque sua distribuição alterou o Glibc-2.2.3 de alguma forma, mas detalhes não estão disponíveis no momento. Para corrigir este pacote de forma que compile corretamente em máquinas AMD/ Glibc-2.2.3, execute o comando a seguir. Não aplique este patch se você não possui o Glibc-2.2.3 instalado. Isto pode causar todo tipo de problema durante a compilação. patch -Np1 -i ../fileutils-4.1.patch Prepare o pacote para a instalação: LDFLAGS="-static" \ ./configure --disable-nls --prefix=$LFS/static Compile o pacote: make Instale o pacote: make install Uma vez tendo instalado o Fileutils, você pode testar a ocorrência do problema de falha de segmentação, executando $LFS/static/bin/ls. Se isto funcionar, então está tudo OK. Caso contrário, você precisará refazer a instalação com o patch (ou sem ele, se você o utilizou). ------------------------------------------------------------------------------- Instalando Findutils-4.1 Tempo estimado de compilação: 0.12 SBU Espaço em disco necessário: 8 MB ------------------------------------------------------------------------------- Conteúdo de Findutils Última verificação na versão 4.1. O pacote Findutils contém programas para a procura de arquivos, tanto em tempo real (fazendo uma busca recursiva através dos diretórios e mostrando apenas os arquivos que combinam com as especificações) ou através de uma base de dados. Findutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bigram, code, find, frcode, locate, updatedb e xargs ------------------------------------------------------------------------------- Dependências de instalação do Findutils Última verificação na versão 4.1. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Patch: patch Sed: sed Sh-utils: basename, date, echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalando Findutils O pacote Findutils é um tanto antigo e apresenta problemas na compilação com versões mais recentes do Glibc (Glibc-2.0.x e superior). Você precisa aplicar este patch, que corrige os seguintes bugs: * O Findutils declara uma função chamada basename, mas este nome já é utilizado em funções da biblioteca padrão do C. Este patch modifica a versão do basename do Findutils, renomeando-o para basename2. * O Findutils utiliza as bibliotecas de forma incorreta. Ele declara funções já existentes em bibliotecas, para dizer ao compilador qual será o nome da função durante a vinculação. Esta sintaxe é inválida e provoca avisos/erros durante a compilação. Este patch remove a sintaxe imprópria. * Todo pacote GNU deve utilizar uma macro chamada _GNU_SOURCE. Esta macro habilita funções extras da biblioteca GNU que permitem ao compilador detectar mais facilmente conflitos de nome entre funções. Este patch adiciona esta macro ao código-fonte. patch -Np1 -i ../findutils-4.1.patch Prepare o Findutils para a compilação: CPPFLAGS="-Dre_max_failures=re_max_failures2" \ LDFLAGS="-static" ./configure --prefix=$LFS/static Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Gawk-3.1.1 Tempo estimado de compilação: 0.39 SBU Espaço em disco necessário: 17 MB ------------------------------------------------------------------------------- Conteúdo de Gawk Última verificação na versão 3.1.1. Gawk é uma implementação do awk, usado para manipular arquivos de texto. Gawk instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat ------------------------------------------------------------------------------- Dependências de instalação do Gawk Última verificação na versão 3.1.0. (Dependências ainda não verificadas.) ------------------------------------------------------------------------------- Instalação do Gawk Prepare o Gawk para a compilação: CPPFLAGS=-Dre_max_failures=re_max_failures2 \ LDFLAGS="-static" ./configure --prefix=$LFS/static --disable-nls Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando GCC-3.2.1 Tempo estimado de compilação: 9.48 SBU Espaço em disco necessário: 326 MB ------------------------------------------------------------------------------- Conteúdo de GCC Última verificação na versão 3.1. O pacote GCC contém a coleção de compiladores GNU, incluindo compiladores C e C++. GCC instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas c++, c++filt, cc (ligação para gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov e tradcpp0 ------------------------------------------------------------------------------- Bibliotecas libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a ------------------------------------------------------------------------------- Dependências de instalação do GCC Última verificação na versão 2.95.3. Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Find: find Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tail, tr ------------------------------------------------------------------------------- Instalação do GCC Não precisaremos de um compilador C++ neste capítulo. Logo, somente o pacote GCC-core precisa ser descompactado agora. Este pacote é conhecido por comportar-se mal quando você modifica suas opções de otimização (incluindo as opções -march e -mcpu). Portanto, se você definiu variáveis de ambiente que sobreponham a otimização padrão, tais como CFLAGS e CXXFLAGS, recomendamos removê-las enquanto compila o GCC. É recomendado pela documentação do GCC compilá-lo em um diretório separado do código-fonte: mkdir ../gcc-build cd ../gcc-build Prepare o GCC para a compilação: ../gcc-3.2.1/configure --prefix=/static \ --disable-nls --disable-shared \ --with-as=$LFS/static/bin/as \ --with-ld=$LFS/static/bin/ld Descrições das opções acima: * --prefix=/static: Isto NÃO é um erro. O GCC embute no código-fonte certos caminhos para arquivos, logo precisamos passar /static como prefixo durante a configuração. Passaremos o prefixo real durante a instalação, mais tarde. * --disable-shared: Esta opção evita a compilação de bibliotecas dinâmicas, que são inúteis para nós neste momento. Iremos criá-las quando reinstalarmos o GCC no Capítulo 6. * --with-as=$LFS/static/bin/as and --with-ld=$LFS/static/bin/ld: O GCC pode ser compilado incorretamente se o pacote Binutils de sua distribuição hospedeira for muito antigo. Precisamos de um GCC estático em bom funcionamento até o reinstalarmos mais tarde no Capítulo 6. Assim, usando-se o as e o ld do Binutils que compilamos anteriormente, garantimos que o GCC funcionará corretamente. Compile o pacote: make BOOT_LDFLAGS="-static" bootstrap Segue abaixo as descrições das opções para o make: * BOOT_LDFLAGS="-static": Isto é equivalente a make LDFLAGS="-static" que utilizamos com outros pacotes para compilá-los estaticamente. * bootstrap: O alvo bootstrap habilita a compilação do GCC não uma, mas múltiplas vezes. Ele usa a última compilação para compilar a si mesmo uma segunda e terceira vezes, para garantir que o compilador seja construído corretamente. Instale o pacote: make prefix=$LFS/static install-no-fixedincludes Descrição da opção acima: * install-no-fixedincludes: Isto impede a execução do script fixincludes. Isto é necessário porque em circunstâncias normais a instalação do GCC irá executar este script, que varre seu sistema em busca de arquivos-cabeçalhos que precisem ser corrigidos. Ele pode achar que os arquivos-cabeçalhos do seu sistema hospedeiro precisam ser corrigidos. Se isto ocorrer, ele irá corrigi-los e colocá-los em $LFS/static/lib/gcc-lib/i686-pc-linux-gnu/3.2. Mais tarde, no Capítulo 6, você irá instalar o Glibc, que colocará seus arquivos-cabeçalhos em /usr/include. A seguir, você instalará outros programas que utilizarão estes arquivos, e o GCC irá procurá-los em /static /lib/gcc-lib antes de verificar /usr/include, o que faz com que os arquivos-cabeçalhos do Glibc da sua distribuição hospedeira sejam encontrados e utilizados. Entretanto, eles são provavelmente incompatíveis com a versão do Glibc atualmente usado no sistema LFS. Finalizando, criaremos a ligação simbólica $LFS/static/bin/cc. Diversos programas e scripts tentam executar o cc ao invés de gcc. Isto é feito para mantê-los genéricos e utilizáveis em todos os tipos de sistema UNIX. Nem todo mundo possui o GNU CC instalado. A simples execução de cc (Compilador C) deixa o usuário livre para decidir qual compilador C irá instalar. A ligação simbólica irá apontar para o compilador padrão do sistema. ln -s gcc $LFS/static/bin/cc ------------------------------------------------------------------------------- Instalando Grep-2.5 Tempo estimado de compilação: 0.26 SBU Espaço em disco necessário: 5 MB ------------------------------------------------------------------------------- Conteúdo de Grep Última verificação na versão 2.5. Grep é usado para exibir linhas de um arquivo que satisfazem determinado padrão. Grep instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas egrep (ligação para grep), fgrep (ligação para grep) e grep ------------------------------------------------------------------------------- Dependências de instalação do Grep Última verificação na versão 2.4.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Grep Prepare o Grep para a compilação: LDFLAGS="-static" CPPFLAGS=-Dre_max_failures=re_max_failures2 \ ./configure --prefix=$LFS/static --disable-nls \ --disable-perl-regexp Segue abaixo a descrição da opção para o configure: * --disable-perl-regexp: Esta opção garante que o Grep não será vinculado à biblioteca PCRE, geralmente disponível nas distribuições somente como biblioteca compartilhada. Não utilizar esta opção pode resultar em um erro de compilação. Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Gzip-1.2.4a Tempo estimado de compilação: 0.04 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Gzip Última verificação na versão 1.2.4a. O pacote Gzip contém programas para a compactação e descompactação de arquivos usando o algoritmo Lempel-Ziv (LZ77). Gzip instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas gunzip (ligação para gzip), gzexe, gzip, uncompress (ligação para gunzip), zcat (ligação para gzip), zcmp, zdiff, zforce, zgrep, zmore e znew ------------------------------------------------------------------------------- Dependências de instalação do Gzip Última verificação na versão 1.2.4a. Bash: sh Binutils: as, ld, nm Fileutils: chmod, cp, install, ln, mv, rm Gcc: cc1, collect2, cpp, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Gzip Prepare o Gzip para a compilação: ./configure --prefix=$LFS/static Compile o pacote: make LDFLAGS="-static" Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Make-3.80 Tempo estimado de compilação: 0.26 SBU Espaço em disco necessário: 8 MB ------------------------------------------------------------------------------- Conteúdo de Make Última verificação na versão 3.79.1. make determina automaticamente que partes de um grande programa precisam ser recompiladas, e executa os comandos para sua recompilação. Make instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas make ------------------------------------------------------------------------------- Dependências de instalação do Make Última verificação na versão 3.79.1. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, install, ls, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Make Prepare o Make para a compilação: LDFLAGS="-static" ./configure --prefix=$LFS/static --disable-nls Compile o pacote: make Instale o pacote: make install Durante a fase de instalação, você verá este aviso: chgrp: changing group of `/mnt/lfs/static/bin/make': Operation not permitted /mnt/lfs/static/bin/make needs to be owned by group kmem and setgid; otherwise the `-l' option will probably not work. You may need special privileges to complete the installation of /mnt/lfs/static/bin/make. Você pode seguramente ignorar este aviso. O programa make, na verdade, não precisa ser do grupo kmem e com gid ativado (setgid) para a opção -l funcionar. (Esta opção diz ao make para não iniciar nenhuma tarefa nova quando for antigido certo nível de utilização do sistema.) ------------------------------------------------------------------------------- Instalando Patch-2.5.4 Tempo estimado de compilação: 0.10 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Patch Última verificação na versão 2.5.4. O programa patch modifica um arquivo de acordo com um patch. Um patch é geralmente uma lista, criada pelo programa diff, que contém instruções sobre como o arquivo original deve ser modificado. Patch instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas patch ------------------------------------------------------------------------------- Dependências de instalação do Patch Última verificação na versão 2.5.4. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Patch Prepare o Patch para a compilação: CPPFLAGS=-D_GNU_SOURCE \ LDFLAGS="-static" ./configure --prefix=$LFS/static Segue abaixo a descrição da opção para o configure: * CPPFLAGS=-D_GNU_SOURCE: Esta opção corrige problemas de instalação deste pacote em plataformas PPC e m68k (pelo que sabemos). Isto não prejudica a compilação em outras plataformas, como x86, portanto fazemos isto por padrão. Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Sed-4.0.5 Tempo estimado de compilação: 0.09 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Sed Última verificação na versão 3.02. sed é um editor de stream. Um editor de stream é usado para fazer transformações básicas em textos de um stream de entrada (um arquivo ou entrada de um canal). Sed instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas sed ------------------------------------------------------------------------------- Dependências de instalação do Sed Última verificação na versão 3.02. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gcc: cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Sed Prepare o Sed para a compilação: CPPFLAGS=-Dre_max_failures=re_max_failures2 \ LDFLAGS="-static" ./configure --prefix=$LFS/static --disable-nls Instale o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Sh-utils-2.0 Tempo estimado de compilação: 0.47 SBU Espaço em disco necessário: 42 MB ------------------------------------------------------------------------------- Conteúdo de Sh-utils Última verificação na versão 2.0. O pacote Sh-utils contém utilitários básicos para manipulação do shell. Sh-utils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostid, id, logname, nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami e yes ------------------------------------------------------------------------------- Dependências de instalação do Sh-utils Última verificação na versão 2.0. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, chown, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Sh-utils Antes do Sh-utils ser instalado, o patch precisa ser aplicado. Este patch é necessário para evitar um conflito de nomes de variáveis com certas versões do Glibc (geralmente Glibc-2.1.x) quando compilando o Sh-utils estaticamente. No entanto, é seguro aplicar este patch mesmo se você está executando uma versão do Glibc diferente. Logo, se você não tem certeza, é melhor aplicá-lo. patch -Np1 -i ../sh-utils-2.0.patch Prepare o Sh-utils para a compilação: LDFLAGS="-static" ./configure --prefix=$LFS/static \ --disable-nls Compile o pacote: make Instale o pacote: make install Durante a instalação você verá o seguinte aviso: WARNING: insufficient access; not installing su NOTE: to install su, run 'make install-root' as root Você pode seguramente ignorar este aviso. Você precisa estar acessando o sistema como root para instalar o su da forma como o Sh-utils pede, com o suid do root. Não precisamos do su durante o Capítulo 5 e este será instalado adequadamente quando reinstalarmos o Sh-utils no Capítulo 6. ------------------------------------------------------------------------------- Instalando Tar-1.13 Tempo estimado de compilação: 0.25 SBU Espaço em disco necessário: 10 MB ------------------------------------------------------------------------------- Conteúdo de Tar Última verificação na versão 1.13. Tar é um programa de arquivamento que armazena e extrai arquivos de um pacote conhecido como arquivo tar. Tar instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas rmt e tar ------------------------------------------------------------------------------- Dependências de instalação do Tar Última verificação na versão 1.13. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Patch: patch Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Tar Um patch pode ser aplicado ao Tar para suportar diretamente arquivos bzip2. Este patch adicionará a opção -j ao tar, que funciona da mesma forma que a opção -z, utilizada com arquivos gzip. Aplique o patch executando o seguinte comando: patch -Np1 -i ../tar-1.13.patch Prepare o Tar para a compilação: LDFLAGS="-static" ./configure --prefix=$LFS/static --disable-nls Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Texinfo-4.3 Tempo estimado de compilação: 0.47 SBU Espaço em disco necessário: 19 MB ------------------------------------------------------------------------------- Conteúdo de Texinfo Última verificação na versão 4.2. O pacote Texinfo contém programas para leitura, criação e conversão de documentos Info, que provêm documentação para o sistema. Texinfo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas info, infokey, install-info, makeinfo, texi2dvi e texindex ------------------------------------------------------------------------------- Dependências de instalação do Texinfo Última verificação na versão 4.0. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Texinfo Prepare o Texinfo para a compilação: LDFLAGS="-static" ./configure --prefix=$LFS/static \ --disable-nls Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Textutils-2.1 Tempo estimado de compilação: 0.95 SBU Espaço em disco necessário: 49 MB ------------------------------------------------------------------------------- Conteúdo de Textutils Última verificação na versão 2.0. O pacote Textutils contém vários programas para manipulação de arquivos e processamento de texto. Textutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq e wc ------------------------------------------------------------------------------- Dependências de instalação do Textutils Última verificação na versão 2.0. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Perl: perl Sed: sed Sh-utils: basename, echo, expr, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Textutils Prepare o Textutils para a compilação: CPPFLAGS=-Dre_max_failures=re_max_failures2 \ LDFLAGS="-static" ./configure --prefix=$LFS/static \ --disable-nls Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Util-linux-2.11y Tempo estimado de compilação: 0.09 SBU Espaço em disco necessário: 9 MB ------------------------------------------------------------------------------- Conteúdo de Util-linux Última verificação na versão 2.11t. O pacote Util-linux contém programas diversos. Os mais importantes são usados para montar, desmontar, formatar, particionar e gerenciar discos rígidos, abrir portas tty e capturar mensagens do kernel. Util-linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize (ligação para rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (ligação para rdev), script, setfdprm, setsid, setterm, sfdisk, swapoff (ligação para swapon), swapon, test.bash, test.tcsh, tunelp, ul, umount, vidmode (ligação para rdev), whereis e write ------------------------------------------------------------------------------- Dependências de instalação do Util-linux Última verificação na versão 2.11n. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, cp, install, ln, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp, cpp0 Glibc: rpcgen Grep: grep Make: make Sed: sed Sh-utils: uname, whoami Textutils: cat ------------------------------------------------------------------------------- Instalação do Util-linux Prepare o Util-linux para a compilação: LDFLAGS="-static" ./configure Inicie a compilação do pacote: make -C lib No momento, precisamos apenas dos programas mount e umount, logo não iremos compilar o pacote inteiro. Compile estes dois programas executando o seguinte comando: make -C mount mount umount Instale estes dois programas: cp mount/{mount,umount} $LFS/static/bin III. Parte III - Construindo o sistema LFS Índice 6. Instalando softwares básicos 7. Configurando scripts de inicialização do sistema 8. Tornando o sistema LFS inicializável 9. Fim ------------------------------------------------------------------------------- Capítulo 6. Instalando softwares básicos ------------------------------------------------------------------------------- Introdução Neste capítulo nós entraremos no ambiente de construção e iniciaremos a montagem do nosso sistema LFS. Ou seja, nós entraremos, através do chroot, em nosso minissistema Linux, criaremos alguns arquivos auxiliares e então iniciaremos a instalação de todos os pacotes, um a um. A instalação de todos estes softwares é bastante direta e você provavelmente pensará que é bem mais simples fornecer aqui as instruções genéricas e explicar por completo apenas a instalação dos pacotes que requerem um método alternativo. Embora concordemos com isso, nós escolhemos fornecer as instruções completas para cada pacote, simplesmente para reduzir a possibilidade de engano. Se você pretende utilizar otimizações de compilação neste capítulo, dê uma olhada na dica de otimização em http://hints.linuxfromscratch.org/hints/ optimization.txt. Otimizações podem fazer um programa executar mais rápido, mas podem causar problemas de compilação. Se um pacote se recusa a compilar com otimizações, tente compilar sem elas e veja se o problema desaparece. A ordem em que os pacotes são instalados neste capítulo precisa ser rigidamente seguida, para garantir que nenhum programa possua um caminho apontando para / static. Pela mesma razão, não compile pacotes em paralelo. Compilar em paralelo pode economizar tempo (especialmente em sistemas com mais de um processador), mas pode também resultar em um programa contendo um caminho fixo para /static, o que irá causar a interrupção do funcionamento deste programa quando o diretório estático for removido. ------------------------------------------------------------------------------- Sobre símbolos de depuração Muitos programas são, por padrão, compilados com símbolos de depuração incluídos (com a opção -g do gcc). Ao depurar um programa ou biblioteca que foi compilado com informações de depuração incluídas, o depurador poderá fornecer a você não apenas endereços de memória, mas também os nomes das rotinas e variáveis. No entanto, a inclusão desses símbolos aumenta consideravelmente o tamanho do programa ou biblioteca. Para se ter uma idéia da quantidade de espaço que eles ocupam, veja o seguinte: * um arquivo binário bash com símbolos de depuração: 1200 KB * um arquivo binário bash sem símbolos de depuração: 480 KB * arquivos do Glibc e do Gcc (/lib e /usr/lib) com símbolos de depuração: 87 MB * arquivos do Glibc e do Gcc sem símbolos de depuração: 16 MB Os tamanhos podem variar levemente, dependendo de que compilador e qual biblioteca C foram utilizados. Mas quando comparando programas com e sem símbolos de depuração, a diferença geralmente será um fator entre 2 e 5. Como muitas pessoas provavelmente nunca irão usar um depurador (debugger), grande quantidade de espaço em disco pode ser recuperado removendo-se estes símbolos. Para remover símbolos de depuração de um arquivo binário (que deve ser um a.out ou ELF), execute strip --strip-debug filename. Caracteres curinga podem ser usados para manipular vários arquivos (usando algo como strip --strip-debug $LFS/static/bin/*). Para sua comodidade, o Capítulo 9 inclui um simples comando para remover todos os símbolos de depuração dos programas e bibliotecas do seu sistema. Informações adicionais sobre otimização podem ser encontradas na dica em http:/ /hints.linuxfromscratch.org/hints/optimization.txt. ------------------------------------------------------------------------------- Entrando em ambiente chroot Você precisa entrar em ambiente chroot para começar a instalação dos pacotes necessários. Antes disso, você deve entrar no sistema como usuário root, já que somente ele pode executar o comando chroot. Entre no sistema como usuário root e execute o seguinte comando para entrar em ambiente chroot: chroot $LFS /static/bin/env -i \ HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/static/bin \ /static/bin/bash --login A opção -i fornecida ao comando env irá remover todas as variáveis do ambiente chroot. Após isso, somente as variáveis HOME, TERM, PS1 e PATH serão novamente configuradas. A construção TERM=$TERM irá configurar a variável TERM dentro do ambiente chroot para o mesmo valor da variável fora do ambiente; esta variável é necessária para programas como o vim e o less funcionarem corretamente. Se você precisa de outras variáveis, tais como CFLAGS ou CXXFLAGS, este é um bom local para reconfigurá-las. Deste ponto em diante a variável LFS não é mais necessária, já que tudo o que você fizer estará restrito ao sistema LFS -- pois o que o interpretador de comandos pensa ser / é, na verdade, o valor de $LFS, passado para o comando chroot. Você precisa ter certeza de que todos os comandos do restante deste capítulo e nos capitulos seguintes serão executados de dentro do ambiente chroot. Se você deixar este ambiente por alguma razão (reiniciar o computador, por exemplo), você deve lembrar de entrar em ambiente chroot novamente e montar o /proc (discutido mais adiante) antes de continuar com as instalações. Note que a linha de comando do bash terá "I have no name!". Isto é normal, já que o pacote Glibc não foi instalado ainda. ------------------------------------------------------------------------------- Modificando pertinências Neste momento o diretório /static pertence ao usuário lfs. No entanto, esta conta existe somente no sistema hospedeiro. Embora você possa apagar o diretório /static quando tiver finalizado o seu sistema LFS, você pode desejar mantê-lo para construir mais sistemas LFS, por exemplo. Se você mantiver este diretório, você terá arquivos pertencentes a um ID de usuário sem conta correspondente. Isto é perigoso, pois uma conta de usuário criada mais tarde pode adquirir este ID e irá herdar o diretório /static e todos os arquivos contidos nele. Isto deixará o diretório vulnerável à manipulação por este usuário. Para evitar este problema, você pode adicionar mais tarde o usuário lfs no novo sistema quando criar o arquivo /etc/passwd, tendo cuidado para configurá-lo com o mesmo ID de usuário e de grupo. Por outro lado, você pode (e o livro irá assumir que você o fez) executar o seguinte comando agora, para configurar a pertinência do conteúdo de /static para o usuário root: chown -R 0:0 /static O comando utiliza "0:0" ao invés de "root:root" porque o programa chown estará incapacitado de determinar o ID do usuário "root" até a instalação do Glibc. ------------------------------------------------------------------------------- Criando diretórios Vamos agora criar a estrutura de diretórios dentro do nosso sistema LFS. Executando os seguintes comandos, iremos criar uma estrutura mais ou menos padrão: mkdir -p /{bin,boot,dev/pts,etc/opt,home,lib,mnt,proc} && mkdir -p /{root,sbin,tmp,usr/local,var,opt} && for dirname in /usr /usr/local do mkdir $dirname/{bin,etc,include,lib,sbin,share,src} ln -s share/{man,doc,info} $dirname mkdir $dirname/share/{dict,doc,info,locale,man} mkdir $dirname/share/{nls,misc,terminfo,zoneinfo} mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8} done && mkdir /usr/lib/locale && mkdir /var/{lock,log,mail,run,spool} && mkdir -p /var/{tmp,opt,cache,lib/misc,local} && mkdir /opt/{bin,doc,include,info} && mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} && ln -s ../var/tmp /usr Diretórios são, por padrão, criados com modo de permissão 755, mas isto não é desejável para todos eles. Iremos fazer duas modificações: uma para o diretório /root e outra para os diretórios de arquivos temporários. chmod 0750 /root && chmod 1777 /tmp /var/tmp A primeira modificação garante que nem todos possam entrar no diretório /root -- o mesmo que um usuário normal pode fazer em seu diretório pessoal. A segunda modificação garante que qualquer usuário possa escrever nos diretórios /tmp e / var/tmp, mas não possa remover de lá arquivos de outros usuários. Isto é feito com o "sticky bit" -- o primeiro bit da máscara 1777. ------------------------------------------------------------------------------- Nota de compatibilidade com o FHS Nossa estrutura de diretórios é baseada na especificação FHS (disponível em http://www.pathname.com/fhs/). Além da estrutura criada acima, o FHS estipula a existência dos subdiretórios /usr/local/games e /usr/share/games, o que consideramos desnecessário para um sistema básico. No entanto, você pode tornar seu sistema compatível com o FHS, se quiser. Como a estrutura do subdiretório / usr/local/share não é precisa no FHS, nós criamos aqui os diretórios que julgamos serem necessários. ------------------------------------------------------------------------------- Montando o sistema de arquivos proc Para que certos programas funcionem corretamente, o sistema de arquivos proc precisa estar disponível dentro do ambiente chroot. Como um sistema de arquivos pode ser montado quantas vezes você quiser, o fato de ele já estar montado em seu sistema hospedeiro não causará problemas -- especialmente porque o proc é um sistema virtual de arquivos. O sistema de arquivos proc é montado sob /proc executando o seguinte comando: mount proc /proc -t proc Você poderá receber algumas mensagens de aviso do comando mount, tais como: warning: can't open /etc/fstab: No such file or directory not enough memory Ignore-as, elas aparecem pelo fato de o sistema ainda não estar instalado por completo e alguns arquivos estarem faltando. O comando mount será executado corretamente, o que é o suficiente neste momento. Este último aviso ("memória insuficiente") nem sempre aparece, pois depende da configuração do seu sistema hospedeiro (a versão do Glibc, por exemplo). ------------------------------------------------------------------------------- Criando o arquivo mtab O próximo passo é criar o arquivo /etc/mtab. Isto é feito através do seguinte comando: touch /etc/mtab A partir da versão 1.11 do LFS-bootscripts, este arquivo é corretamente manipulado. Assim, não haverá erros mesmo após um desligamento incorreto do sistema. ------------------------------------------------------------------------------- Criando as ligações simbólicas bash e sh Alguns programas possuem caminhos para arquivos que ainda não existem. Para satisfazer estes programas, nós criaremos as ligações simbólicas /bin/bash e / bin/sh, ambas apontando para o programa estático bash. Crie as ligações simbólicas /bin/bash e /bin/sh executando os seguintes comandos: ln -s /static/bin/bash /bin/bash && ln -s bash /bin/sh ------------------------------------------------------------------------------- Criando os arquivos passwd e group Para o usuário root ser capaz de acessar o sistema e para o nome "root" ser reconhecido, precisamos inserir entradas nos arquivos /etc/passwd e /etc/group. Crie o arquivo /etc/passwd executando o seguinte comando: echo "root:x:0:0:root:/root:/bin/bash" > /etc/passwd A senha para o root (o "x" é apenas um símbolo) será configurada mais tarde. Crie o arquivo /etc/group executando o seguinte comando: cat > /etc/group << "EOF" root:x:0: bin:x:1: sys:x:2: kmem:x:3: tty:x:4: tape:x:5: daemon:x:6: floppy:x:7: disk:x:8: lp:x:9: dialout:x:10: audio:x:11: EOF Os grupos criados não são parte de nenhuma especificação -- eles são os que o script MAKEDEV (instalado na próxima seção) utiliza. Além do grupo "root", o LSB (http://www.linuxbase.org) recomenda apenas que o grupo "bin", com um GID igual a 1, esteja presente. Todos os outros nomes de grupo e GIDs podem ser escolhidos livremente pelo usuário, já que pacotes bem escritos não dependem do GID, pois utilizam o nome do grupo. ------------------------------------------------------------------------------- Criando dispositivos (Makedev-1.7) Tempo estimado de compilação: 0.07 SBU Espaço em disco necessário: 50 KB ------------------------------------------------------------------------------- Conteúdo de MAKEDEV Última verificação na versão 1.5. MAKEDEV é um script que cria os nós estáticos de dispositivos normalmente encontrados no diretório /dev. Informações detalhadas sobre os nós de dispositivos podem ser encontradas na árvore de arquivos-fontes do kernel em Documentation/devices.txt. MAKEDEV instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas MAKEDEV ------------------------------------------------------------------------------- Dependências de instalação do MAKEDEV Última verificação na versão 1.5. Bash: sh Fileutils: chmod, chown, cp, ln, mknod, mv, rm Grep: grep Sh-utils: expr, id ------------------------------------------------------------------------------- Criando dispositivos Note que a descompactação do arquivo MAKEDEV-1.7.bz2 não criará um diretório, já que o arquivo contém apenas um script. Instale o script MAKEDEV: cp MAKEDEV-1.7 /dev/MAKEDEV Prepare o script para execução: cd /dev && chmod 754 MAKEDEV Execute o script para criar os dispositivos: ./MAKEDEV -v generic Caso um dispositivo do qual você precise esteja faltando, execute ./MAKEDEV -v . Alternativamente, você pode criar dispositivos com o programa mknod. Consulte as páginas de manual e de informação do mknod para mais detalhes. Caso você pretenda utilizar o devpts, passe a opção generic-nopty para o MAKEDEV. Isto cria os mesmos dispositivos que generic, mas não cria os ptys, já que o devpts gerencia isto. ------------------------------------------------------------------------------- Instalando arquivos-cabeçalhos do Linux-2.4.20 Tempo estimado de compilação: 0.02 SBU Espaço em disco necessário: 142 MB ------------------------------------------------------------------------------- Conteúdo de Linux Última verificação na versão 2.4.18. O kernel Linux está no centro de todo sistema Linux. Quando um computador é ligado e inicia um sistema Linux, a primeira parte carregada é o kernel. O kernel inicializa os componentes de hardware do sistema: portas seriais e paralelas, placas de som e de rede, controladores IDE e SCSI, etc. Em suma, o kernel deixa o hardware disponível para a execução dos softwares. Linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas kernel e seus arquivos-cabeçalhos ------------------------------------------------------------------------------- Dependências de instalação do Linux Última verificação na versão 2.4.17. Bash: sh Binutils: ar, as, ld, nm, objcopy Fileutils: cp, ln, mkdir, mv, rm, touch Findutils: find, xargs Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gzip Make: make Gawk: awk Modutils: depmod, genksyms Net-tools: dnsdomainname, hostname Sed: sed Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes Textutils: cat, md5sum, sort, tail ------------------------------------------------------------------------------- Instalação dos arquivos-cabeçalhos do kernel Nós não compilaremos um novo kernel ainda -- faremos isso quando tivermos terminado a instalação de todos os pacotes. Mas como alguns desses pacotes dependem dos arquivos-cabeçalhos do kernel, iremos descompactá-lo agora, configurá-lo e copiar os arquivos-cabeçalhos para um local onde poderão ser encontrados por estes pacotes. Vale lembrar que os arquivos-fontes do kernel inicialmente não pertencem ao root: caso você descompacte o pacote como root (como fazemos aqui dentro do chroot), os arquivos acabam por possuírem os mesmos IDs de grupo e usuário do computador de quem criou o pacote. Isto geralmente não é um problema para nenhum outro pacote que você instala, já que o código-fonte é removido logo após a instalação. Mas o código-fonte do kernel é normalmente mantido no sistema, assim há chance de que os IDs órfãos sejam associados a um usuário aleatório de seu computador e que esta pessoa possa ter direitos de escrita ao código-fonte do kernel. Por causa disso, você pode querer executar chown -R 0:0 no diretório linux-2.4.20 para garantir que todos os arquivos pertençam ao usuário root. A instalação dos arquivos-cabeçalhos do kernel requer o programa pwd. No código-fonte, o caminho para pwd é fixado como /bin/pwd. Crie uma ligação simbólica que leve isso em conta: ln -s /static/bin/pwd /bin/pwd Prepare a instalação dos arquivos-cabeçalhos: make mrproper Isto garante que o código-fonte esteja pronto para a compilação. Os desenvolvedores do kernel recomendam que este comando seja executado antes de cada compilação do kernel. Nada garante que o kernel esteja "limpo" após a descompactação. Crie o arquivo include/linux/version.h: make include/linux/version.h Crie a ligação simbólica include/asm específica para a plataforma: make symlinks Instale os arquivos-cabeçalhos específicos para a plataforma: cp -HR include/asm /usr/include && cp -R include/asm-generic /usr/include Instale os arquivos-cabeçalhos independentes da plataforma: cp -R include/linux /usr/include Há alguns arquivos-cabeçalhos do kernel que utilizam o arquivo autoconf.h. Como ainda não configuramos o kernel, precisamos criar nós mesmos este arquivo para evitar erros de compilação. Crie um autoconf.h vazio: touch /usr/include/linux/autoconf.h Já que a ligação simbólica /bin/pwd que criamos anteriormente era temporária, ela deve ser removida: rm /bin/pwd ------------------------------------------------------------------------------- Por que copiamos os arquivos-cabeçalhos do kernel ao invés de criarmos ligações simbólicas No passado, era prática comum criar as ligações simbólicas /usr/include/ {linux,asm} para /usr/src/linux/include/{linux,asm}. Isto era uma prática incorreta, como aponta o seguinte trecho de um email de Linus Torvalds para a lista de discussão do kernel: Sugiro que as pessoas que compilam novos kernels: - não pensem em criar uma única ligação simbólica (exceto as que a própria compilação do kernel configura, especialmente a ligação "linux/include/asm" que é apenas usada para a compilação interna do kernel) Sim, é isto o que faço. Meu diretório /usr/src/linux ainda possui os antigos arquivos-cabeçalhos da versão 2.2.13, mesmo que não tenha executado um kernel 2.2.13 há _muito_ tempo. Mas foram com estes arquivos que o Glibc foi compilado, por isso são eles que correspondem aos arquivos-objetos das bibliotecas. E este é o ambiente sugerido pelos últimos cinco anos, pelo menos. Eu não sei porque a mania de criar ligações simbólicas ainda sobrevive, como um zumbi. Quase toda distribuição ainda tem esta ligação simbólica defeituosa, e as pessoas ainda acham que os arquivos-fontes do kernel devem estar contidos em "/usr/src/linux" mesmo quando isto não seja verdade há _muito_ tempo. A parte essencial é a que Linus declara que os arquivos-cabeçalhos do sistema devem ser os mesmos com os quais o Glibc foi compilado. Estes são os arquivos-cabeçalhos que devem ser usados quando você for compilar outros pacotes, já que eles são os que correspondem às bibliotecas de código-objeto. Copiando estes arquivos, garantimos que eles continuarão disponíveis mesmo se você atualizar o kernel mais tarde. Note também que é perfeitamente correto ter o código-fonte do kernel em /usr/ src/linux, desde que /usr/include/{linux,asm} não sejam ligações simbólicas. ------------------------------------------------------------------------------- Instalando Man-pages-1.54 Tempo estimado de compilação: 0.01 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Man-pages Última verificação na versão 1.54. O pacote Man-pages contém cerca de 1.200 páginas de manual. Esta documentação é referente a funções C e C++, descrição de dispositivos importantes e páginas de manual ausentes em outros pacotes. Man-pages instala os seguintes arquivos: ------------------------------------------------------------------------------- Arquivos de suporte Várias páginas de manual. ------------------------------------------------------------------------------- Dependências de instalação do Man-pages Última verificação na versão 1.47. Bash: sh Fileutils: install Make: make ------------------------------------------------------------------------------- Instalação do Man-pages Instale o Man-pages executando o seguinte comando: make install ------------------------------------------------------------------------------- Instalando Glibc-2.3.1 Tempo estimado de compilação: 14.71 SBU Espaço em disco necessário: 369 MB ------------------------------------------------------------------------------- Conteúdo de Glibc Última verificação na versão 2.2.5. Glibc é uma biblioteca C que provê funções básicas como open, malloc, printf, etc. Esta biblioteca é usada por todos os programas dinamicamente vinculados. Glibc instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump e zic ------------------------------------------------------------------------------- Bibliotecas ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so e libutil.[a,so] ------------------------------------------------------------------------------- Dependências de instalação do Glibc Última verificação na versão 2.2.5. Bash: sh Binutils: ar, as, ld, ranlib, readelf Diffutils: cmp Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch Gcc: cc, cc1, collect2, cpp, gcc Grep: egrep, grep Gzip: gzip Make: make Gawk: gawk Sed: sed Sh-utils: date, expr, hostname, pwd, uname Texinfo: install-info, makeinfo Textutils: cat, cut, sort, tr ------------------------------------------------------------------------------- Instalação do Glibc Antes de iniciar a instalação do Glibc, você precisa mudar para glibc-2.3.1 e descompactar o pacote Glibc-linuxthreads dentro deste diretório, não em /usr/ src como você normalmente faz. Este pacote é conhecido por comportar-se mal quando você modifica suas opções de otimização (incluindo as opções -march e -mcpu). Portanto, se você definiu variáveis de ambiente que sobreponham a otimização padrão, tais como CFLAGS e CXXFLAGS, recomendamos removê-las enquanto compila o Glibc. Basicamente, compilar o Glibc de outra forma coloca seu sistema em grande risco. Iniciaremos aplicando um patch que faz as seguintes operações: * Converte todas as ocorrências de $(PERL) em /usr/bin/perl no arquivo malloc /Makefile. Isto é feito porque o Glibc não pode autodetectar a localização do perl, já que o pacote Perl não foi instalado ainda. E, caso o Glibc pense que o Perl não esteja instalado, o programa mtrace, escrito em Perl, não será instalado. * Converte todas as ocorrências de root em 0 no arquivo login/Makefile. Isto é feito porque não há, no momento, um Glibc instalado, o que não permite converter o nome de usuário para seu ID equivalente. Dessa forma, o comando chown root arquivo irá falhar, mas chown 0 arquivo funcionará corretamente. patch -Np1 -i ../glibc-2.3.1-root-perl.patch Há um grave problema que causa um mau funcionamento em binários estaticamente vinculados ao Glibc-2.2 ou anterior. Mesmo que os programas estáticos tenham todas as partes necessárias embutidas no próprio binário, eles ainda precisam confiar em um conjunto de bibliotecas externas: as bibliotecas NSS do Glibc. Estas bibliotecas, entre outras funções, dizem aos programas onde a tabela de senhas do sistema está (em /etc/password, NIS ou qualquer outro esquema configurado). O Glibc sofreu grandes mudanças desde a versão 2.2.x e o novo código NSS é incompatível com o antigo. Dessa forma, quando o Glibc for instalado, ele irá utilizar as novas bibliotecas NSS e os programas estáticos carregarão estas bibliotecas, o que provocará falha de segmentação nestes programas. O patch abaixo desfaz algumas mudanças para contornar o problema. Caso você tenha iniciado o capítulo 5 em um sistema hospedeiro baseado no Glibc-2.2.x ou anterior, você deve aplicar este patch. Iremos reinstalar o Glibc ao final deste capítulo, a fim de remover este patch e instalar um Glibc "puro", da forma como os seus desenvolvedores planejaram. patch -Np1 -i ../glibc-2.3.1-libnss.patch O Glibc irá procurar o arquivo /etc/ld.so.conf, interrompendo a compilação caso este arquivo esteja faltando. Logo, precisamos criá-lo: touch /etc/ld.so.conf A documentação que acompanha o Glibc recomenda a construção do pacote em um diretório separado do código-fonte: mkdir ../glibc-build && cd ../glibc-build A seguir, prepare o Glibc para a compilação: ../glibc-2.3.1/configure --prefix=/usr \ --disable-profile --enable-add-ons \ --libexecdir=/usr/bin Descrições das opções acima: * --disable-profile: Isto desabilita a compilação de bibliotecas com informação de perfil. Esta opção pode ser omitida se você deseja utilizar perfis. * --enable-add-ons: Isto habilita o add-on que instalaremos com o Glibc, Linuxthreads. * --libexecdir=/usr/bin: Isto fará o programa pt_chown ser instalado no diretório /usr/bin. Durante este estágio você verá o seguinte aviso: configure: warning: *** These auxiliary programs are missing or too old: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions. A ausência do msgfmt (do pacote Gettext, que iremos instalar mais tarde) não irá causar nenhum problema. O msgfmt gera os arquivos binários de tradução que são usados para configurar seu sistema em um idioma diferente do inglês. Como estes arquivos de tradução já foram gerados, o msgfmt não é necessário. Você precisa deste programa somente se modificou o código-fonte dos arquivos de tradução (os arquivos *.po do subdiretório po), o que requer a recriação dos arquivos binários. Como o Glibc não foi instalado ainda, um dos testes executados pelo script configure, que necessita deste pacote, falhou. Este teste verifica se o gcc é um compilador cruzado (cross-compiler) ou não. Como o teste falhou, o script supõe que temos um compilador cruzado. Nós revertemos essa situação dizendo explicitamente ao Glibc que não estamos fazendo compilação cruzada. Não fazendo isto, haverá efeitos indesejados, como a não-instalação dos arquivos de fuso horário. echo "cross-compiling = no" > configparms Compile o pacote: make As páginas de manual do Linuxthreads não serão instaladas agora, pois requerem o Perl instalado. Instalaremos o Perl mais tarde, e as páginas de manual serão instaladas juntamente com a segunda compilação do Glibc ao final do capítulo. make install As localidades (usadas pelo Glibc para fazer seu sistema Linux falar um idioma diferente do inglês) não foram instaladas quando você executou o comando anterior, portanto temos que fazer isto manualmente: make localedata/install-locales Uma alternativa à execução do comando anterior é instalar somente aquelas localidades que você precisa ou deseja. Isto pode ser feito usando o comando localedef. Informações sobre isso podem ser encontradas no arquivo INSTALL do diretório glibc-2.3.1. Finalizando a instalação, iremos recarregar o Bash para que este utilize os novos arquivos libnss_*. Isto também eliminará a mensagem I have no name! da linha de comando: exec /static/bin/bash --login ------------------------------------------------------------------------------- Configurando o Glibc Precisamos criar o arquivo /etc/nsswitch.conf, porque, embora o Glibc provenha valores padrão quando este arquivo está faltando ou está corrompido, tais valores não funcionam corretamente em ambientes de rede. Além disso, precisamos configurar nosso fuso horário. 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 publickey: files hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: db files # End /etc/nsswitch.conf EOF Para saber em qual fuso horário você está, execute o seguinte script: tzselect Após algumas perguntas sobre sua localização, o script irá exibir o nome do seu fuso horário, algo como Brazil/East ou Portugal. Crie a ligação simbólica /etc/ localtime executando: ln -sf ../usr/share/zoneinfo/Brazil/East /etc/localtime Substitua Brazil/East pelo nome do fuso horário que tzselect forneceu. ------------------------------------------------------------------------------- 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 utilizadas por programas quando você os executa. No entanto, caso haja bibliotecas em outros diretórios além de /lib e /usr/lib, você precisa adicioná-los ao arquivo /etc/ld.so.conf para o carregador dinâmico encontrá-las. Dois diretórios que normalmente contêm bibliotecas adicionais são /usr/local/lib e /opt/lib, por isso nós adicionamos estes diretórios aos caminhos de pesquisa 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 # End /etc/ld.so.conf EOF ------------------------------------------------------------------------------- Instalando GCC-3.2.1 Tempo estimado de compilação: 13.26 SBU Espaço em disco necessário: 221 MB ------------------------------------------------------------------------------- Conteúdo de GCC Última verificação na versão 3.1. O pacote GCC contém a coleção de compiladores GNU, incluindo compiladores C e C++. GCC instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas c++, c++filt, cc (ligação para gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov e tradcpp0 ------------------------------------------------------------------------------- Bibliotecas libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a ------------------------------------------------------------------------------- Dependências de instalação do GCC Última verificação na versão 2.95.3. Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Find: find Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tail, tr ------------------------------------------------------------------------------- Instalação do GCC Este pacote é conhecido por comportar-se mal quando você modifica suas opções de otimização (incluindo as opções -march e -mcpu). Portanto, se você definiu variáveis de ambiente que sobreponham a otimização padrão, tais como CFLAGS e CXXFLAGS, recomendamos removê-las enquanto compila o GCC. Instalaremos agora apenas os compiladores C e C++, portanto você precisará descompactar tanto o Gcc-core como o Gcc-g++. Outros compiladores estão disponíveis no pacote completo do GCC& instruções para instalá-los podem ser encontradas em http://beyond.linuxfromscratch.org/view/cvs/general/gcc.html. É recomendado pela documentação do GCC compilá-lo em um diretório separado do código-fonte. Crie este diretório executando: mkdir ../gcc-build && cd ../gcc-build Prepare o GCC para a compilação: ../gcc-3.2.1/configure --prefix=/usr --enable-shared \ --enable-threads=posix --with-slibdir=/lib \ --enable-__cxa_atexit --enable-clocale=gnu Descrições das opções acima: * --enable-threads=posix: Isto habilita o gerenciamento de exceções do C++ para código multiprocessado. * --enable-__cxa_atexit: Esta opção resultará em bibliotecas C++ compartilhadas e programas C++ que funcionam em outras distribuições Linux. * --enable-clocale=gnu: Há chances de alguém compilar bibliotecas C++ incompatíveis com ABI se não instalaram todas as localidades do Glibc. Utilizando-se --enable-clocale=gnu garante-se que a "coisa certa" é feita em todos os casos. Se você não deseja utilizar esta opção, então instale pelo menos a localidade de_DE. Quando o GCC encontrar esta localidade específica, o modo de localidade correto (gnu) será implementado. Compile o pacote: make bootstrap O alvo bootstrap habilita a compilação do GCC não uma, mas múltiplas vezes. Ele usa os últimos programas compilados para compilar a si mesmo uma segunda e terceira vezes, para garantir que o compilador seja construído corretamente. Instale o pacote: make install-no-fixedincludes Alguns pacotes esperam encontrar o pré-processador C em /lib e /usr/lib. Para satisfazê-los, crie duas ligações simbólicas: ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib Muitos pacotes compilam usando cc como nome para o compilador C. Para satisfazê-los, crie uma ligação simbólica cc: ln -s gcc /usr/bin/cc ------------------------------------------------------------------------------- Instalando Zlib-1.1.4 Tempo estimado de compilação: 0.07 SBU Espaço em disco necessário: 1 MB ------------------------------------------------------------------------------- Conteúdo de Zlib Última verificação na versão 1.1.4. O pacote Zlib contém a biblioteca zlib, usada por muitos programas em funções de compressão e descompressão. Zlib instala os seguintes arquivos: ------------------------------------------------------------------------------- Bibliotecas libz[a,so] ------------------------------------------------------------------------------- Dependências de instalação do Zlib Não foram verificadas ainda. ------------------------------------------------------------------------------- Instalação do Zlib Prepare o Zlib para a compilação: CFLAGS="$CFLAGS -fPIC" \ ./configure --prefix=/usr --shared A opção -fPIC garante a integridade da biblioteca dinâmica do Zlib. Alguns pacotes esperam encontrar uma biblioteca estática do Zlib no sistema. Para satisfazer estes programas, compile tanto a biblioteca compartilhada como a estática: make LIBS="libz.so.1.1.4 libz.a" Instale as bibliotecas: make LIBS="libz.so.1.1.4 libz.a" install A biblioteca compartilhada do Zlib deve ser instalada em /lib. Dessa forma, caso você inicialize o sistema sem o diretório /usr, programas vitais ao sistema ainda terão acesso a esta biblioteca: mv /usr/lib/libz.so.* /lib A ligação simbólica /usr/lib/libz.so está ligada a um arquivo que não existe mais. Aponte esta ligação para a nova localização da biblioteca: ln -sf ../../lib/libz.so.1 /usr/lib/libz.so O Zlib não instala sua página de manual por padrão. Execute o seguinte comando para instalar a documentação: cp zlib.3 /usr/share/man/man3 ------------------------------------------------------------------------------- Instalando Findutils-4.1 Tempo estimado de compilação: 0.10 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Findutils Última verificação na versão 4.1. O pacote Findutils contém programas para a procura de arquivos, tanto em tempo real (fazendo uma busca recursiva através dos diretórios e mostrando apenas os arquivos que combinam com as especificações) ou através de uma base de dados. Findutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bigram, code, find, frcode, locate, updatedb e xargs ------------------------------------------------------------------------------- Dependências de instalação do Findutils Última verificação na versão 4.1. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Patch: patch Sed: sed Sh-utils: basename, date, echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalando Findutils O pacote Findutils é um tanto antigo e apresenta problemas na compilação com versões mais recentes do Glibc (Glibc-2.0.x e superior). Você precisa aplicar este patch, que corrige os seguintes bugs: * O Findutils declara uma função chamada basename, mas este nome já é utilizado em funções da biblioteca padrão do C. Este patch modifica a versão do basename do Findutils, renomeando-o para basename2. * O Findutils utiliza as bibliotecas de forma incorreta. Ele declara funções já existentes em bibliotecas, para dizer ao compilador qual será o nome da função durante a vinculação. Esta sintaxe é inválida e provoca avisos/erros durante a compilação. Este patch remove a sintaxe imprópria. * Todo pacote GNU deve utilizar uma macro chamada _GNU_SOURCE. Esta macro habilita funções extras da biblioteca GNU que permitem ao compilador detectar mais facilmente conflitos de nome entre funções. Este patch adiciona esta macro ao código-fonte. patch -Np1 -i ../findutils-4.1.patch Há um bug no arquivo locate.c do Findutils que provoca uma falha de segmentação ao manipular caminhos muito longos. O problema é provocado pela função get_short(), que calcula números negativos incorretamente. O patch abaixo corrige este bug. patch -Np1 -i ../findutils-4.1-segfault.patch Prepare o Findutils para a compilação: ./configure --prefix=/usr Por padrão, a localização da base de dados updatedb é em /usr/var. Para tornar esta localização compatível com o FHS, passe a opção localstatedir=/var/lib/ misc para os comandos make abaixo. Compile o pacote: make libexecdir=/usr/bin Instale o pacote: make libexecdir=/usr/bin install ------------------------------------------------------------------------------- Instalando Gawk-3.1.1 Tempo estimado de compilação: 0.39 SBU Espaço em disco necessário: 15 MB ------------------------------------------------------------------------------- Conteúdo de Gawk Última verificação na versão 3.1.1. Gawk é uma implementação do awk, usado para manipular arquivos de texto. Gawk instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat ------------------------------------------------------------------------------- Dependências de instalação do Gawk Última verificação na versão 3.1.0. (Dependências ainda não verificadas.) ------------------------------------------------------------------------------- Instalação do Gawk Antes de instalar o pacote Gawk, você precisa aplicar um patch, que corrige os seguintes bugs: * A localização padrão do Gawk para libexecdir é $prefix/libexecdir/awk. Esta localização não é compatível com o FHS (que, em nenhum momento, menciona um diretório chamado libexecdir). * Este patch nos permite passar a opção --libexecdir para o script configure, dessa forma podemos usar uma localização mais apropriada para o libexecdir do Gawk (/usr/bin). * O diretório de dados padrão para o Gawk é $prefix/share/awk. Um diretório específico para um pacote deve ser nomeado usando o nome do pacote e a versão (tal como gawk-3.1.1 ao invés de awk), já que pode haver mais de um interpretador AWK em um sistema (e mais de uma versão do Gawk). Este patch modifica este valor para $prefix/share/gawk-3.1.1. * Este patch garante que o diretório $prefix/share/gawk-3.1.1 será removido, juntamente com o seu conteúdo, através de um make uninstall. patch -Np1 -i ../gawk-3.1.1-3.patch Prepare o Gawk para a compilação: ./configure --prefix=/usr --libexecdir=/usr/bin Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Ncurses-5.3 Tempo estimado de compilação: 1.88 SBU Espaço em disco necessário: 22 MB ------------------------------------------------------------------------------- Conteúdo de Ncurses Última verificação na versão 5.2. O pacote Ncurses provê bibliotecas para manipulação de caracteres no terminal, para a criação de painéis e menus. Ncurses instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas captoinfo (ligação para tic), clear, infocmp, infotocap (ligação para tic), reset (ligação para tset), tack, tic, toe, tput e tset. ------------------------------------------------------------------------------- Bibliotecas libcurses.[a,so] (ligação para libncurses.[a,so]), libform.[a,so], libform_g.a, libmenu.[a,so], libmenu_g.a, libncurses++.a, libncurses.[a,so], libncurses_g.a, libpanel.[a,so] e libpanel_g.a ------------------------------------------------------------------------------- Dependências de instalação do Ncurses Última verificação na versão 5.2. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, mkdir, mv, rm Gcc: c++, cc1, cc1plus, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep Make: make Gawk: gawk Sed: sed Sh-utils: basename, date, echo, expr, hostname, uname Textutils: cat, sort, tr, wc ------------------------------------------------------------------------------- Instalação do Ncurses Prepare o Ncurses para a compilação: ./configure --prefix=/usr --with-shared Compile o pacote: make Instale o pacote: make install Dê permissão de execução para as bibliotecas do Ncurses: chmod 755 /usr/lib/*.5.3 Mova as bibliotecas para o diretório /lib, onde espera-se serem encontradas: mv /usr/lib/libncurses.so.5* /lib Como as bibliotecas foram movidas para /lib, algumas ligações simbólicas agora apontam para arquivos não existentes. Recrie estas ligações: ln -sf libncurses.a /usr/lib/libcurses.a && ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so && ln -sf ../../lib/libncurses.so.5 /usr/lib/libcurses.so ------------------------------------------------------------------------------- Instalando Vim-6.1 Tempo estimado de compilação: 0.81 SBU Espaço em disco necessário: 24 MB ------------------------------------------------------------------------------- Conteúdo de Vim Última verificação na versão 6.1. O pacote Vim contém um editor de texto personalizável e eficiente. Vim instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas efm_filter.pl, efm_perl.pl, ex (ligação para vim), less.sh, mve.awk, pltags.pl, ref, rview (ligação para vim), rvim (ligação para vim), shtags.pl, tcltags, vi (ligação para vim), view (ligação para vim), vim, vim132, vim2html.pl, vimdiff (ligação para vim), vimm, vimspell.sh, vimtutor e xxd ------------------------------------------------------------------------------- Alternativas para o Vim * emacs, joe e nano http://beyond.linuxfromscratch.org/view/cvs/postlfs/editors.html ------------------------------------------------------------------------------- Dependências de instalação do Vim Última verificação na versão 6.0. Bash: sh Binutils: as, ld, strip Diffutils: cmp, diff Fileutils: chmod, cp, ln, mkdir, mv, rm, touch Find: find Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Net-tools: hostname Sed: sed Sh-utils: echo, expr, uname, whoami Textutils: cat, tr, wc ------------------------------------------------------------------------------- Instalação do Vim Este pacote requer a aplicação de um patch antes de sua instalação. Ele corrige um problema de compilação com o GCC-3.2. patch -Np1 -i ../vim-6.1.patch Prepare o Vim para a compilação: ./configure --prefix=/usr Compile o pacote: make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\" Descrição da opção acima: * CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\": Esta opção faz o Vim utilizar o arquivo /etc/vimrc para suas configurações globais. Normalmente este arquivo encontra-se em /usr/share/vim, mas /etc é um lugar mais adequado para este tipo de arquivo. Instale o pacote: make install O Vim pode rodar no antigo modo vi através de uma ligação simbólica, criada com o seguinte comando: ln -s vim /usr/bin/vi Se você pretende instalar o sistema de janelas X em seu LFS, você pode desejar recompilar o Vim após a instalação do X. O Vim acompanha uma ótima versão GUI do editor, que requer o X e algumas bibliotecas instaladas. Para mais informações, leia a documentação do Vim. ------------------------------------------------------------------------------- Configurando o Vim Por padrão, o vim funciona em modo compatível com o vi. Algumas pessoas podem gostar disso, mas nós temos uma grande preferência de executar o vim no modo vim (senão não incluiríamos o vim neste livro, mas o vi original). Crie o arquivo /root/.vimrc executando o seguinte: cat > /root/.vimrc << "EOF" " Begin /root/.vimrc set nocompatible set bs=2 " End /root/.vimrc EOF ------------------------------------------------------------------------------- Instalando M4-1.4 Tempo estimado de compilação: 0.08 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de M4 Última verificação na versão 1.4. M4 é um processador de macros. Ele copia a entrada para a saída, expandindo macros à medida em que aparecem. Essas macros são nativas ou definidas pelo usuário e podem receber qualquer número de argumentos. Além de fazer expansão de macros, o m4 tem funções nativas para a inclusão de arquivos, execução de comandos Unix, cálculo aritmético de inteiros, manipulação de texto de diversas formas, recursividade, etc. O programa m4 pode ser usado como uma ferramenta para um compilador ou como um processador de macros independente. M4 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas m4 ------------------------------------------------------------------------------- Dependências de instalação do M4 Última verificação na versão 1.4. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Make: make Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Sed: sed Sh-utils: date, echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do M4 Prepare o M4 para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Bison-1.875 Tempo estimado de compilação: 0.27 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Bison Última verificação na versão 1.35. Bison é um gerador de analisadores (parser generator), um substituto para o yacc. Bison gera um programa que analisa a estrutura de um arquivo texto. Bison instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bison e yacc ------------------------------------------------------------------------------- Dependências de instalação do Bison Última verificação na versão 1.31. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, head, tr, uniq ------------------------------------------------------------------------------- Instalação do Bison Prepare o Bison para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Less-378 Tempo estimado de compilação: 0.13 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Less Última verificação na versão 374. O programa less é um paginador de arquivos (ou visualizador de textos). Ele exibe o conteúdo de um arquivo ou stream e tem a habilidade de rolamento. Less possui algumas funcionalidades ausentes no "more", como a capacidade de rolamento para trás. Less instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas less, lessecho e lesskey ------------------------------------------------------------------------------- Dependências de instalação do Less Última verificação na versão 358. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm, touch Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Sed: sed Sh-utils: expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Less Prepare o Less para a compilação: ./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Groff-1.18.1 Tempo estimado de compilação: 1.08 SBU Espaço em disco necessário: 18 MB ------------------------------------------------------------------------------- Conteúdo de Groff Última verificação na versão 1.17.2. O pacote Groff contém vários programas para processamento de texto. Groff converte texto puro e comandos especiais para determinado formato, como o que você vê em uma página de manual. Groff instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas addftinfo, afmtodit, eqn, geqn (ligação para eqn), grn, grodvi, groff, grog, grolbp, grolj4, grops, grotty, gtbl (ligação para tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff e zsoelim (ligação para soelim) ------------------------------------------------------------------------------- Dependências de instalação do Groff Última verificação na versão 1.17.2. Bash: sh Binutils: ar, as, ld, ranlib Bison: bison Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, touch Gcc: cc1, cc1plus, collect2, cpp0, g++, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, date, echo, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Groff Prepare o Groff para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Alguns programas de documentação do groff/man, como xman, não funcionarão corretamente sem as seguintes ligações simbólicas: ln -s soelim /usr/bin/zsoelim && ln -s eqn /usr/bin/geqn && ln -s tbl /usr/bin/gtbl ------------------------------------------------------------------------------- Instalando Textutils-2.1 Tempo estimado de compilação: 0.83 SBU Espaço em disco necessário: 17 MB ------------------------------------------------------------------------------- Conteúdo de Textutils Última verificação na versão 2.0. O pacote Textutils contém vários programas para manipulação de arquivos e processamento de texto. Textutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq e wc ------------------------------------------------------------------------------- Dependências de instalação do Textutils Última verificação na versão 2.0. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Perl: perl Sed: sed Sh-utils: basename, echo, expr, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Textutils Prepare o Textutils para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Finalmente, complete a instalação deste pacote movendo alguns dos seus programas para um diretório mais apropriado: mv /usr/bin/{cat,head} /bin ------------------------------------------------------------------------------- Instalando Sed-4.0.5 Tempo estimado de compilação: 0.09 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Sed Última verificação na versão 3.02. sed é um editor de stream. Um editor de stream é usado para fazer transformações básicas em textos de um stream de entrada (um arquivo ou entrada de um canal). Sed instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas sed ------------------------------------------------------------------------------- Dependências de instalação do Sed Última verificação na versão 3.02. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gcc: cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Sed Prepare o Sed para a compilação: ./configure --prefix=/usr --bindir=/bin Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Flex-2.5.4a Tempo estimado de compilação: 0.05 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Flex Última verificação na versão 2.5.4a. O pacote Flex é usado para gerar programas que reconhecem padrões em textos. Flex instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas flex, flex++ (ligação para flex) e lex ------------------------------------------------------------------------------- Bibliotecas libfl.a ------------------------------------------------------------------------------- Dependências de instalação do Flex Última verificação na versão 2.5.4a. Bash: sh Binutils: ar, as, ld, ranlib Bison: bison Diffutils: cmp Fileutils: chmod, cp, install, ln, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Flex Prepare o Flex para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Há pacotes que esperam encontrar a biblioteca lex no diretório /usr/lib. Crie uma ligação simbólica para solucionar isto: ln -s libfl.a /usr/lib/libl.a Alguns programas tentam procurar o lex (flex é uma alternativa (melhor) ao lex). Logo, para satisfazer tais programas, iremos criar um script bash chamado lex que executa o flex em modo de emulação. cat > /usr/bin/lex << "EOF" #!/bin/sh # Begin /usr/bin/lex exec /usr/bin/flex -l "$@" # End /usr/bin/lex EOF chmod 755 /usr/bin/lex ------------------------------------------------------------------------------- Instalando Binutils-2.13.2 Tempo estimado de compilação: 2.48 SBU Espaço em disco necessário: 94 MB ------------------------------------------------------------------------------- Conteúdo de Binutils Última verificação na versão 2.12.1. Binutils é uma coleção de ferramentas de desenvolvimento de software, contendo um vinculador, um assembler e outras ferramentas que trabalham com arquivos-objetos e pacotes de arquivos. Binutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas addr2line, ar, as, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings e strip ------------------------------------------------------------------------------- Bibliotecas libbfd.[a,so] e libopcodes.[a,so] ------------------------------------------------------------------------------- Dependências de instalação do Binutils Última verificação na versão 2.11.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, true, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Instalação do Binutils Este pacote é conhecido por comportar-se mal quando você modifica suas opções de otimização (incluindo as opções -march e -mcpu). Portanto, se você definiu variáveis de ambiente que sobreponham a otimização padrão, tais como CFLAGS e CXXFLAGS, recomendamos removê-las enquanto compila o Binutils. É recomendado pela documentação do Binutils compilá-lo em um diretório separado do código-fonte: mkdir ../binutils-build && cd ../binutils-build Prepare o Binutils para a compilação: ../binutils-2.13.2/configure --prefix=/usr --enable-shared Compile o pacote: make tooldir=/usr Normalmente, o tooldir (o diretório onde os executáveis do Binutils são colocados) é configurado para $(exec_prefix)/$(target_alias), que corresponde, por exemplo, a /usr/i686-pc-linux-gnu. Já que apenas compilamos para o nosso próprio sistema, não precisamos deste diretório em /usr. Esta configuração pode ser utilizada se o sistema for utilizado para compilação cruzada (por exemplo, compilando um pacote em uma máquina Intel que gera código que pode ser executado em máquinas Apple PowerPC). Instale o pacote: make tooldir=/usr install Instale as páginas de informação: make tooldir=/usr install-info Alguns pacotes requerem o arquivo-cabeçalho libiberty.h para sua compilação. Para satisfazer estes pacotes, instale esse arquivo: cp ../binutils-2.13.2/include/libiberty.h /usr/include ------------------------------------------------------------------------------- Instalando Fileutils-4.1 Tempo estimado de compilação: 0.68 SBU Espaço em disco necessário: 17 MB ------------------------------------------------------------------------------- Conteúdo de Fileutils Última verificação na versão 4.1. Fileutils é um pacote contendo programas básicos de manipulação de arquivos. Estão incluídos programas para listagem e criação de diretórios, alteração do horário de acesso ou modificação de arquivos, modificação de permissões, etc. Fileutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch e vdir ------------------------------------------------------------------------------- Dependências de instalação do Fileutils Última verificação na versão 4.1. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Fileutils Prepare o Fileutils para a compilação: ./configure --prefix=/usr --bindir=/bin Compile o pacote: make Instale o pacote: make install Alguns pacotes têm o caminho fixo para o programa install como /usr/bin/ install. Crie uma ligação simbólica para contornar este problema: ln -s ../../bin/install /usr/bin ------------------------------------------------------------------------------- Instalando Sh-utils-2.0 Tempo estimado de compilação: 0.42 SBU Espaço em disco necessário: 12 MB ------------------------------------------------------------------------------- Conteúdo de Sh-utils Última verificação na versão 2.0. O pacote Sh-utils contém utilitários básicos para manipulação do shell. Sh-utils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostid, id, logname, nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami e yes ------------------------------------------------------------------------------- Dependências de instalação do Sh-utils Última verificação na versão 2.0. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, chown, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Sh-utils Este pacote requer a aplicação do patch hostname-patch antes de sua instalação. Ele suprime a compilação do programa hostname, que será instalado mais tarde pelo pacote Net-tools. O hostname do Net-tools é uma versão bem melhor (e, em alguns casos, até necessária, já que ela suporta opções utilizadas por programas como o XFree86). Aplique o patch: patch -Np1 -i ../sh-utils-2.0-hostname.patch Prepare o Sh-utils para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Finalmente, mova alguns dos programas instalados para locais mais apropriados: mv /usr/bin/{basename,date,echo,false,pwd} /bin && mv /usr/bin/{sleep,stty,su,test,true,uname} /bin && mv /usr/bin/chroot /usr/sbin ------------------------------------------------------------------------------- Notas de compatibilidade com o FHS Há um programa instalado por este pacote chamado test. Ele é freqüentemente utilizado em scripts shell para avaliar condições, entretanto é mais encontrado na forma [ condição ]. Estes colchetes estão embutidos no interpretador bash, mas o FHS diz que deve existir um binário [. Crie-o executando: ln -s test /bin/[ ------------------------------------------------------------------------------- Instalando Gettext-0.11.5 Tempo estimado de compilação: 0.99 SBU Espaço em disco necessário: 39 MB ------------------------------------------------------------------------------- Conteúdo de Gettext Última verificação na versão 0.11.2. O pacote Gettext é usado para internacionalização e localização. Programas podem ser compilados com Suporte à Língua Nativa (NLS, Native Language Support), que os habilita a exibir mensagens na língua nativa do usuário. Gettext instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas config.charset, config.rpath, gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget, user-email e xgettext ------------------------------------------------------------------------------- Bibliotecas libgettextlib[a,so], libgettextsrc[a,so] ------------------------------------------------------------------------------- Dependências de instalação do Gettext Última verificação na versão 0.10.40. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Bison: bison Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Instalação do Gettext Prepare o Gettext para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Net-tools-1.60 Tempo estimado de compilação: 0.16 SBU Espaço em disco necessário: 5 MB ------------------------------------------------------------------------------- Conteúdo de Net-tools Última verificação na versão 1.60. O pacote Net-tools contém programas básicos para redes em Linux. Net-tools instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas arp, dnsdomainname (ligação para hostname), domainname (ligação para hostname), hostname, ifconfig, nameif, netstat, nisdomainname (ligação para hostname), plipconfig, rarp, route, slattach e ypdomainname (ligação para hostname) ------------------------------------------------------------------------------- Dependências de instalação do Net-tools Última verificação na versão 1.60. Bash: bash, sh Binutils: ar, as, ld Fileutils: install, ln, ls, mv, rm Gcc: cc, cc1, collect2, cpp0 Make: make Sh-utils: echo ------------------------------------------------------------------------------- Instalação do Net-tools Caso você não saiba o que responder nas questões feitas durante a fase make, então aceite os valores-padrão, que servirão para a maioria dos casos. As perguntas aqui feitas estão relacionadas aos tipos de protocolos de rede que você tem habilitado em seu kernel. As respostas sugeridas por padrão irão habilitar as ferramentas deste pacote a trabalharem com os protocolos mais comuns, como TCP, PPP e outros; porém, você ainda precisa habilitar estes protocolos no kernel. O que você faz aqui é apenas dizer aos programas para estarem aptos a utilizar estes protocolos, mas é tarefa do kernel disponibilizá-los para o sistema. Compile o pacote: make Se você deseja aceitar os valores sugeridos, você poderá pular as perguntas geradas pelo make executando yes "" | make ao invés do comando acima. Instale o pacote: make update A opção update do make funciona de forma semelhante à opção install, com uma exceção: ela não cria cópias de segurança (backups) dos arquivos que substitui. Caso você decida reinstalar este pacote no futuro, um make update não irá fazer cópias de todos os arquivos de uma versão anterior do Net-tools. ------------------------------------------------------------------------------- Instalando Perl-5.8.0 Tempo estimado de compilação: 3.81 SBU Espaço em disco necessário: 52 MB ------------------------------------------------------------------------------- Conteúdo de Perl Última verificação na versão 5.6.1. Perl é a Linguagem Prática de Extração e Relatório (Practical Extraction and Report Language). Ela combina algumas das melhores funcionalidades do C, sed, awk e sh em uma poderosa linguagem. Perl instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas e bibliotecas a2p, c2ph, dprofpp, find2perl, h2ph, h2xs, perl, perl5.6.1, perlbug, perlcc, perldoc, pl2pm, pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, podselect, pstruct, s2p, splain,attrs.so, B.so, ByteLoader.so, DProf.so, Dumper.so, DynaLoader.a, Fcntl.so, Glob.so, Hostname.so, IO.so, libperl.a, Opcode.so, Peek.so, POSIX.so, re.so, SDBM_File.so, Socket.so, Syslog.so e SysV.so ------------------------------------------------------------------------------- Dependências de instalação do Perl Última verificação na versão 5.6.1. Bash: sh Binutils: ar, as, ld, nm Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, date, echo, expr, hostname, pwd, uname, whoami Textutils: cat, comm, sort, split, tr, uniq, wc ------------------------------------------------------------------------------- Instalação do Perl Prepare o Perl para a compilação: ./configure.gnu --prefix=/usr Se você deseja maior controle sobre a configuração do Perl antes da compilação, você pode executar o script interativo Configure e modificar a forma como o Perl é compilado. Se você acha que pode ficar com os valores auto-detectados pelo Perl, então use o comando acima. Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Texinfo-4.3 Tempo estimado de compilação: 0.43 SBU Espaço em disco necessário: 12 MB ------------------------------------------------------------------------------- Conteúdo de Texinfo Última verificação na versão 4.2. O pacote Texinfo contém programas para leitura, criação e conversão de documentos Info, que provêm documentação para o sistema. Texinfo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas info, infokey, install-info, makeinfo, texi2dvi e texindex ------------------------------------------------------------------------------- Dependências de instalação do Texinfo Última verificação na versão 4.0. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Texinfo Prepare o Texinfo para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Instale os componentes do Texinfo que substituem a instalação do TeX: make TEXMF=/usr/share/texmf install-tex ------------------------------------------------------------------------------- Instalando Autoconf-2.57 Tempo estimado de compilação: 0.05 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Autoconf Última verificação na versão 2.53. Autoconf produz scripts shell que configuram o código-fonte automaticamente. Autoconf instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate e ifnames ------------------------------------------------------------------------------- Dependências de instalação do Autoconf Última verificação na versão 2.52. Bash: sh Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Grep: fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Autoconf Prepare o Autoconf para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Automake-1.7.2 Tempo estimado de compilação: 0.03 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Automake Última verificação na versão 1.6.2. Automake produz arquivos Makefile.in para o uso com Autoconf. Automake instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas acinstall, aclocal, aclocal-1.6, automake, automake-1.6, compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, ylwrap ------------------------------------------------------------------------------- Dependências de instalação do Automake Última verificação na versão 1.5. Bash: sh Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm, rmdir Grep: fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Automake Prepare o Automake para a compilação: ./configure --prefix=/usr Compile e instale o pacote: make install Crie uma ligação simbólica necessária: ln -s automake-1.7 /usr/share/automake ------------------------------------------------------------------------------- Instalando Bash-2.05a Tempo estimado de compilação: 0.82 SBU Espaço em disco necessário: 14 MB ------------------------------------------------------------------------------- Conteúdo de Bash Última verificação na versão 2.05a. bash é o Bourne-Again SHell, um interpretador de comandos largamente utilizado em sistemas Unix. O programa bash lê da entrada padrão (o teclado). Um usuário digita algo, o programa avalia o que ele digitou e realiza alguma ação, como executar um programa. Bash instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bash, sh (ligação para bash) e bashbug ------------------------------------------------------------------------------- Dependências de instalação do Bash Última verificação na versão 2.05a. Bash: bash, sh Binutils: ar, as, ld, ranlib, size Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr, uniq ------------------------------------------------------------------------------- Instalação do Bash Prepare o Bash para a compilação: ./configure --prefix=/usr --bindir=/bin Compile o pacote: make Instale o pacote: make install Carregue o Bash recém-instalado: exec /bin/bash --login ------------------------------------------------------------------------------- Instalando File-3.39 Tempo estimado de compilação: 0.21 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de File Última verificação na versão 3.39. File é um utilitário usado para determinar tipos de arquivo. File instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas file ------------------------------------------------------------------------------- Dependências de instalação do File Última verificação na versão 3.37. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ln, ls, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do File Prepare o File para a compilação: ./configure --prefix=/usr --datadir=/usr/share/misc Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Libtool-1.4.3 Tempo estimado de compilação: 0.15 SBU Espaço em disco necessário: 7 MB ------------------------------------------------------------------------------- Conteúdo de Libtool Última verificação na versão 1.4.2. GNU Libtool é um script para suporte genérico a bibliotecas. Libtool facilita o uso de bibliotecas compartilhadas através de uma interface consistente e portável. Libtool instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas libtool e libtoolize ------------------------------------------------------------------------------- Bibliotecas libltdl.a, libltdl.so (ligação para libltdl.so.3.1.0), libltdl.so.3 (ligação para libltdl.so.3.1.0) e libltdl.so.3.1.0 ------------------------------------------------------------------------------- Dependências de instalação do Libtool Última verificação na versão 1.4.2. Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0 Glibc: ldconfig Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Instalação do Libtool Prepare o Libtool para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Bin86-0.16.3 Tempo estimado de compilação: 0.07 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Bin86 Última verificação na versão 0.16.3 Bin86 é um assembler e vinculador (linker) para código 8086 - 80386. Bin86 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas as86, as86_encap, ld86, nm86 (ligação para objdump86), objdump86 e size86 (ligação para objdump86) ------------------------------------------------------------------------------- Dependências de instalação do Bin86 Última verificação na versão 0.16.0. Bash: sh Binutils: as, ld, strip Fileutils: chmod, install, ln, mv Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed ------------------------------------------------------------------------------- Instalação do Bin86 Este pacote é necessário apenas se você decidiu utilizar o Lilo em seu sistema LFS. Se você for utilizar algo como Grub, você não precisará do Bin86. Consulte a documentação do seu gerenciador de boot favorito para ver se este precisa do pacote Bin86 (normalmente somente ld86 e/ou as86 são requeridos deste pacote). No entanto, não apenas os gerenciadores de boot utilizam o pacote Bin86. Há sempre a chance de algum outro pacote precisar destes programas; portanto, tenha isto em mente ao decidir pular esta instalação. Compile o pacote: make Instale o pacote: make PREFIX=/usr install ------------------------------------------------------------------------------- Instalando Bzip2-1.0.2 Tempo estimado de compilação: 0.09 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Bzip2 Última verificação na versão 1.0.2 Bzip2 é um compactador de arquivos com poder de compactação geralmente melhor que o do tradicional gzip. Bzip2 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bunzip2 (ligação para bzip2), bzcat (ligação para bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless e bzmore ------------------------------------------------------------------------------- Bibliotecas libbz2.a, libbz2.so (ligação para libbz2.so.1.0), libbz2.so.1.0 (ligação para libbz2.so.1.0.2) e libbz2.so.1.0.2 ------------------------------------------------------------------------------- Dependências de instalação do Bzip2 Última verificação na versão 1.0.1. Bash: sh Binutils: ar, as, ld, ranlib Fileutils: cp, ln, rm Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Instalação do Bzip2 Inicie a compilação do pacote: make -f Makefile-libbz2_so A opção -f fará o Bzip2 ser compilado com um Makefile diferente, neste caso Makefile-libbz2_so, que cria uma biblioteca dinâmica libbz2.so e a vincula aos utilitários do pacote. Agora, compile o pacote: make Instale o pacote: make install Copie o binário bzip2 para o diretório /bin, crie algumas ligações simbólicas e apague arquivos desnecessários. cp bzip2-shared /bin/bzip2 && cp -a libbz2.so* /lib && ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so && rm /usr/bin/{bunzip2,bzcat,bzip2} && mv /usr/bin/{bzip2recover,bzless,bzmore} /bin && ln -s bzip2 /bin/bunzip2 && ln -s bzip2 /bin/bzcat ------------------------------------------------------------------------------- Instalando Ed-0.2 Tempo estimado de compilação: 0.06 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Ed Última verificação na versão 0.2. GNU ed é um editor POSIX para linha de comando. Ed instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas ed e red (ligação para ed) ------------------------------------------------------------------------------- Dependências de instalação do Ed Última verificação na versão 0.2. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Ed Nota: O Ed não é algo que você usará pessoalmente. Ele é instalado aqui porque pode ser utilizado pelo programa patch em patches baseados no ed. Isto acontece raramente porque patches baseados no diff são mais utilizados hoje em dia. O Ed utiliza a função mktemp para criar arquivos temporários em /tmp. No entanto, esta função possui uma vulnerabilidade (veja seção "Arquivos Temporários" em http://en.tldp.org/HOWTO/Secure-Programs-HOWTO/avoid-race.html ). Este patch faz o Ed utilizar mkstemp, recomendada para a criação de arquivos temporários. Aplique o patch: patch -Np1 -i ../ed-0.2.patch Prepare o Ed para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Precisamos mover os binários do Ed para /bin, dessa forma eles podem ser usados caso a partição /usr esteja indisponível. mv /usr/bin/{ed,red} /bin ------------------------------------------------------------------------------- Instalando Kbd-1.08 Tempo estimado de compilação: 0.12 SBU Espaço em disco necessário: 8 MB ------------------------------------------------------------------------------- Conteúdo de Kbd Última verificação na versão 1.06. Kbd contém arquivos de mapeamento de teclas e utilitários para o teclado. Kbd instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chvt, deallocvt, dumpkeys, fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (ligação para psfxtable), psfgettable (ligação para psfxtable), psfstriptable (ligação para psfxtable), psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, showfont, showkey, unicode_start e unicode_stop ------------------------------------------------------------------------------- Dependências de instalação do Kbd Última verificação na versão 1.06. Bash: sh Binutils: as, ld, strip Bison: bison Diffutils: cmp Fileutils: cp, install, ln, mv, rm Flex: flex Gettext: msgfmt, xgettext Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gunzip, gzip Make: make Patch: patch Sed: sed Sh-utils: uname ------------------------------------------------------------------------------- Instalação do Kbd O Kbd não instala alguns de seus utilitários (setlogcons, setvesablank e getunimap). O patch abaixo habilita a compilação desses programas. Aplique o patch: patch -Np1 -i ../kbd-1.08.patch Prepare o Kbd para a compilação: ./configure Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Diffutils-2.8.1 Tempo estimado de compilação: 0.31 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Diffutils Última verificação na versão 2.8.1. Os programas deste pacote exibem as diferenças entre dois arquivos ou diretórios. Seu uso mais comum é na criação de patches. Diffutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas cmp, diff, diff3 e sdiff ------------------------------------------------------------------------------- Dependências de instalação do Diffutils Última verificação na versão 2.7. Bash: sh Binutils: ld, as Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: date, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Diffutils Prepare o Diffutils para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando E2fsprogs-1.32 Tempo estimado de compilação: 0.80 SBU Espaço em disco necessário: 13 MB ------------------------------------------------------------------------------- Conteúdo de E2fsprogs Última verificação na versão 1.27. E2fsprogs provê utilitários para uso com o sistema de arquivos ext2. Ele também suporta o sistema ext3. E2fsprogs instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas badblocks, chattr, compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, fsck, fsck.ext2, fsck.ext3, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mklost+found, resize2fs, tune2fs e uuidgen ------------------------------------------------------------------------------- Bibliotecas libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so], libuuid. [a,so] ------------------------------------------------------------------------------- Dependências de instalação do E2fsprogs Última verificação na versão 1.25. Bash: sh Binutils: ar, as, ld, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, install, ln, mkdir, mv, rm, sync Gcc: cc, cc1, collect2, cpp0 Glibc: ldconfig Grep: egrep, grep Gzip: gzip Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, uname Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do E2fsprogs É recomendável compilar o E2fsprogs em um diretório separado do código-fonte: mkdir ../e2fsprogs-build && cd ../e2fsprogs-build Prepare o E2fsprogs para a compilação: ../e2fsprogs-1.32/configure --prefix=/usr --with-root-prefix="" \ --enable-elf-shlibs Descrições das opções acima: * --with-root-prefix="": Certos programas e bibliotecas (como o e2fsck) são considerados essenciais ao sistema. Quando, por exemplo, /usr não está montado, eles precisam estar disponíveis. Estes arquivos são instalados em diretórios como /lib e /sbin. Se esta opção não for passada ao script configure do E2fsprogs, eles serão instalados em /usr, algo que não desejamos. * --enable-elf-shlibs: Isto cria as bibliotecas compartilhadas utilizadas por programas deste pacote. Compile o pacote: make Instale o pacote: make install Instale as bibliotecas compartilhadas: make install-libs Atualize o arquivo /usr/share/info/dir com a inclusão das páginas de informação do E2fsprogs no índice: install-info /usr/share/info/libext2fs.info /usr/share/info/dir ------------------------------------------------------------------------------- Instalando Grep-2.5 Tempo estimado de compilação: 0.22 SBU Espaço em disco necessário: 5 MB ------------------------------------------------------------------------------- Conteúdo de Grep Última verificação na versão 2.5. Grep é usado para exibir linhas de um arquivo que satisfazem determinado padrão. Grep instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas egrep (ligação para grep), fgrep (ligação para grep) e grep ------------------------------------------------------------------------------- Dependências de instalação do Grep Última verificação na versão 2.4.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Grep Prepare o Grep para a compilação: ./configure --prefix=/usr --bindir=/bin Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Gzip-1.2.4a Tempo estimado de compilação: 0.03 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Gzip Última verificação na versão 1.2.4a. O pacote Gzip contém programas para a compactação e descompactação de arquivos usando o algoritmo Lempel-Ziv (LZ77). Gzip instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas gunzip (ligação para gzip), gzexe, gzip, uncompress (ligação para gunzip), zcat (ligação para gzip), zcmp, zdiff, zforce, zgrep, zmore e znew ------------------------------------------------------------------------------- Dependências de instalação do Gzip Última verificação na versão 1.2.4a. Bash: sh Binutils: as, ld, nm Fileutils: chmod, cp, install, ln, mv, rm Gcc: cc1, collect2, cpp, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Gzip O patch a seguir corrige um estouro de memória que ocorre quando um nome de arquivo é maior que 1020 caracteres. A correção é feita inserindo-se uma verificação para saber se o buffer é suficientemente grande para o nome de arquivo fornecido. O programa termina com a mensagem "Nome de arquivo muito longo" caso o buffer seja pequeno. patch -Np1 -i ../gzip-1.2.4b.patch Prepare o Gzip para a compilação: ./configure --prefix=/usr Modifique o diretório padrão de instalação para o Gzip, para que este seja instalado em /bin: cp gzexe.in{,.backup} && sed 's%"BINDIR"%/bin%' gzexe.in.backup > gzexe.in Compile o pacote: make Instale o pacote: make install Mova os binários do Gzip para /bin: mv /usr/bin/gzip /bin && rm /usr/bin/{gunzip,zcat} && ln -s gzip /bin/gunzip && ln -s gzip /bin/zcat && ln -s gunzip /bin/uncompress ------------------------------------------------------------------------------- Instalando Man-1.5k Tempo estimado de compilação: 0.05 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Man Última verificação na versão 1.5k. Man é um paginador de manuais. Man instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas apropos, makewhatis, man, man2dvi, man2html e whatis ------------------------------------------------------------------------------- Dependências de instalação do Man Última verificação na versão 1.5i. Bash: sh Binutils: as, ld Fileutils: chmod, cp, install, mkdir, rm Gcc: c11, collect2, cpp0, gcc Grep: grep Make: make Gawk: awk Sed: sed Sh-utils: echo Textutils: cat ------------------------------------------------------------------------------- Instalação do Man Há três patches para o Man. O primeiro comenta uma das linhas do arquivo man.conf (MANPATH /usr/man), a fim de evitar resultados redundantes em programas como o whatis: patch -Np1 -i ../man-1.5k-manpath.patch O segundo adiciona a opção -R à variável PAGER, para que as seqüências de escape funcionem corretamente: patch -Np1 -i ../man-1.5k-pager.patch O último patch evita problemas com páginas de manual formatadas com menos de 80 colunas, se usadas com versões recentes do groff: patch -Np1 -i ../man-1.5k-80cols.patch O caminho completo para alguns programas é embutido nos arquivos-fontes do Man. Infelizmente, o script configure utiliza os últimos diretórios do PATH ao invés dos primeiros para determinar o caminho completo de um programa. Pospondo-se / usr/bin:/bin ao PATH, garantimos que o Man não utilizará as versões estáticas de nossos programas, localizadas em /static. Prepare o Man para a compilação: PATH=$PATH:/usr/bin:/bin \ ./configure -default -confdir=/etc Compile o pacote: make Instale o pacote: make install Nota: Se você deseja desabilitar seqüências SGR de caracteres, você deve editar o arquivo man.conf e adicionar o argumento -c para o nroff. Você pode desejar dar uma olhada na dica do Man em http:// hints.linuxfromscratch.org/hints/man.txt, que lida com formatação e compressão de páginas de manual. ------------------------------------------------------------------------------- Instalando Lilo-22.2 Tempo estimado de compilação: 0.08 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Lilo Última verificação na versão 22.2. Lilo é um gerenciador de boot para o Linux. Lilo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas lilo, mkrescue e keytab-lilo.pl ------------------------------------------------------------------------------- Dependências de instalação do Lilo Última verificação na versão 22.1. Bash: sh Bin86: as86, ld86 Binutils: as, ld, strip Fileutils: cp, dd, ln Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed Textutils: cat ------------------------------------------------------------------------------- Instalação do Lilo Nós escolhemos o Lilo como gerenciador de boot porque nos sentimos confortáveis com ele, mas você pode escolher outro. Fabio Fracassi escreveu uma dica sobre o GRUB, disponível em http://hints.linuxfromscratch.org/hints/grub-howto.txt. Compile o Lilo: make Instale o pacote: make install Ao final da instalação, uma mensagem aparecerá dizendo que /sbin/lilo precisa ser executado para completar a atualização. Não faça isto, já que o arquivo / etc/lilo.conf não está presente ainda. Iremos completar a instalação do Lilo no Capítulo 8. A linha de comando ou menu padrão do Lilo podem ser substituídos pelo logotipo do LFS ou qualquer outro que você desejar. Martin Imobersteg escreveu uma dica sobre isto, localizada em http://hints.linuxfromscratch.org/hints/bootlogo.txt. ------------------------------------------------------------------------------- Instalando Make-3.80 Tempo estimado de compilação: 0.22 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Make Última verificação na versão 3.79.1. make determina automaticamente que partes de um grande programa precisam ser recompiladas, e executa os comandos para sua recompilação. Make instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas make ------------------------------------------------------------------------------- Dependências de instalação do Make Última verificação na versão 3.79.1. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, install, ls, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Make Prepare o Make para a compilação: ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install Por padrão, /usr/bin/make é instalado com o GID kmem. Isto é necessário em alguns sistemas para que ele possa consultar o nível de utilização do sistema através de /dev/kmem. No entanto, em sistemas Linux, configurar o GID para kmem não é necessário, portanto modificamos isto em nosso binário make. Isto também corrige problemas com o make ignorando certas variáveis como LD_LIBRARY_PATH. chgrp root /usr/bin/make && chmod 755 /usr/bin/make ------------------------------------------------------------------------------- Instalando Modutils-2.4.22 Tempo estimado de compilação: 0.13 SBU Espaço em disco necessário: 3 MB ------------------------------------------------------------------------------- Conteúdo de Modutils Última verificação na versão 2.4.16. O pacote Modutils contém programas para a manipulação de módulos do kernel. Modutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas depmod, genksyms, insmod, insmod_ksymoops_clean, kallsyms (ligação para insmod), kernelversion, ksyms (ligação para insmod), lsmod (ligação para insmod), modinfo, modprobe (ligação para insmod) e rmmod (ligação para insmod) ------------------------------------------------------------------------------- Dependências de instalação do Modutils Última verificação na versão 2.4.12. Bash: sh Binutils: ar, as, ld, ranlib, strip Bison: bison Diffutils: cmp Fileutils: chmod, install, ln, mkdir, mv, rm Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: basename, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Modutils Prepare o Modutils para a compilação: ./configure Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Netkit-base-0.17 Tempo estimado de compilação: 0.03 SBU Espaço em disco necessário: 1 MB ------------------------------------------------------------------------------- Conteúdo de Netkit-base Última verificação na versão 0.17. O pacote Netkit-base contém dois programas relacionados a redes: ping, que determina o tempo de resposta a pacotes ICMP, e inet, que aguarda por pedidos de portas e executa os serviços apropriados. Netkit-base instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas inetd e ping ------------------------------------------------------------------------------- Dependências de instalação do Netkit-base Última verificação na versão 0.17. Bash: sh Binutils: as, ld, strip Fileutils: cp, install, rm Make: make Gcc: cc1, collect2, cpp0, gcc Sed: sed Sh-utils: date Textutils: cat ------------------------------------------------------------------------------- Instalação do Netkit-base Prepare o Netkit-base para a compilação: ./configure Compile o pacote: make Instale o pacote: make install Dois arquivos de configuração essenciais precisam ser instalados em /etc. Há outros arquivos no diretório etc.sample que podem ser do seu interesse. Complete a instalação deste pacote: cp etc.sample/{services,protocols} /etc ------------------------------------------------------------------------------- Instalando Patch-2.5.4 Tempo estimado de compilação: 0.10 Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Patch Última verificação na versão 2.5.4. O programa patch modifica um arquivo de acordo com um patch. Um patch é geralmente uma lista, criada pelo programa diff, que contém instruções sobre como o arquivo original deve ser modificado. Patch instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas patch ------------------------------------------------------------------------------- Dependências de instalação do Patch Última verificação na versão 2.5.4. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Patch Prepare o Patch para a compilação: CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/usr Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Procinfo-18 Tempo estimado de compilação: 0.02 SBU Espaço em disco necessário: 168 KB ------------------------------------------------------------------------------- Conteúdo de Procinfo Última verificação na versão 18. O pacote Procinfo obtém informações sobre o sistema, como uso de memória e números de IRQ, a partir do /proc e exibe estes dados em um formato inteligível. Procinfo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas lsdev, procinfo e socklist ------------------------------------------------------------------------------- Dependências de instalação do Procinfo Última verificação na versão 18. Binutils: as, ld Fileutils: install, mkdir Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Instalação do Procinfo Compile o Procinfo: make LDLIBS=-lncurses A opção -lncurses substitui a opção padrão, -ltermcap. Isto é feito porque o libtermcap está obsoleto, se comparado ao libncurses. Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Procps-3.1.5 Tempo estimado de compilação: 0.14 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Procps Última verificação na versão 2.0.7. O pacote Procps contém programas para monitoração e finalização de processos do sistema. Procps obtém informações sobre processos através do /proc. Procps instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas free, kill, oldps, pgrep, pkill, ps, skill, snice, sysctl, tload, top, vmstat, w e watch ------------------------------------------------------------------------------- Bibliotecas libproc.so ------------------------------------------------------------------------------- Dependências de instalação do Procps Última verificação na versão 2.0.7. Bash: sh Binutils: as, ld, strip Fileutils: install, ln, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: grep Make: make Gawk: awk Sed: sed Sh-utils: basename, pwd Textutils: sort, tr ------------------------------------------------------------------------------- Instalação do Procps Este pacote requer a aplicação de um patch antes de sua instalação. Ele corrige um problema de localidade que faz o w funcionar inadequadamente em certas configurações. Aplique o patch: patch -Np1 -i ../procps-3.1.5.patch Compile o Procps: make Instale o pacote: make XSCPT="" install A opção XSCPT irá configurar a variável XSCPT do Makefile para um valor vazio, desabilitando a instalação do XConsole. Caso contrário, make install tentará copiar o arquivo XConsole para /usr/X11R6/lib/X11/app-defaults. Este diretório não existe, pois o XFree86 não está instalado. ------------------------------------------------------------------------------- Instalando Psmisc-21.2 Tempo estimado de compilação: 0.11 SBU Espaço em disco necessário: 2 MB ------------------------------------------------------------------------------- Conteúdo de Psmisc Última verificação na versão 21. O pacote Psmisc contém três programas que auxiliam o gerenciamento do sistema de arquivos /proc. Psmisc instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas fuser, killall e pstree ------------------------------------------------------------------------------- Dependências de instalação do Psmisc Última verificação na versão 20.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Bison: bison Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Psmisc Prepare o Psmisc para a compilação: ./configure --prefix=/usr --exec-prefix=/ A opção --exec-prefix=/ fará os programas serem instalados em /bin ao invés de /usr/bin. Os programas deste pacote são freqüentemente utilizados em scripts de inicialização, logo eles devem ficar em /bin para serem utilizados quando a partição /usr ainda não estiver montada. Compile o pacote: make Instale o pacote: make install O programa pidof do Psmisc não é instalado por padrão. Geralmente, isto não é um problema porque nós instalamos mais tarde o pacote Sysvinit, que provê um programa pidof melhor. Cabe a você decidir se irá utilizar o pacote Sysvinit, que provê um programa pidof, ou não. Se você não for utilizar o Sysvinit, você deve completar a instalação deste pacote criando a ligação simbólica /bin/pidof: ln -s killall /bin/pidof ------------------------------------------------------------------------------- Instalando Shadow-4.0.3 Tempo estimado de compilação: 0.88 SBU Espaço em disco necessário: 7 MB ------------------------------------------------------------------------------- Conteúdo de Shadow Última verificação na versão 4.0.3. O pacote Shadow foi criado para reforçar a segurança de senhas do sistema. Shadow instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (ligação para newgrp), useradd, userdel, usermod, vigr (ligação para vipw) e vipw ------------------------------------------------------------------------------- Dependências de instalação do Shadow Última verificação na versão 20001016. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Instalação do Shadow Password Suite Antes de instalar este pacote, você pode querer dar uma olhada na dica do Shadow. Ela explica como você pode tornar o seu sistema mais seguro no que diz respeito às senhas, como habilitar as senhas MD5 (mais seguras) e como tirar o máximo proveito deste pacote. A dica do Shadow pode ser encontrada em http:// hints.linuxfromscratch.org/hints/shadowpasswd_plus.txt. Prepare o Shadow para a compilação: ./configure --prefix=/usr --libdir=/usr/lib \ --enable-shared Compile o pacote: make Instale o pacote: make install O Shadow utiliza dois arquivos para as configurações de autenticação no sistema. Instale estes arquivos: cp etc/{limits,login.access} /etc /var/spool/mail é a antiga localização das caixas de mensagens dos usuários. A localização utilizada atualmente é /var/mail. Execute o seguinte comando para modificar a localização das caixas de mensagens: sed 's%/var/spool/mail%/var/mail%' \ etc/login.defs.linux > /etc/login.defs De acordo com a página de manual do vipw, deve existir uma ligação simbólica chamada vigr. Como o procedimento de instalação do Shadow não cria esta ligação, ela deve ser criada manualmente: ln -s vipw /usr/sbin/vigr A ligação vipw está apontando para um arquivo não existente. Como este arquivo não é mais necessário aqui, remova-o: rm /bin/vipw Mova o programa sg para /usr/bin: mv /bin/sg /usr/bin Mova as bibliotecas dinâmicas do Shadow para uma localização mais apropriada: mv /usr/lib/lib{shadow,misc}.so.0* /lib As bibliotecas foram movidas, mas alguns pacotes esperam encontrá-las em /usr/ lib. Para contornar isto, crie as seguintes ligações simbólicas: ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so && ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so Sh-utils e Shadow instalam ambos um mesmo programa groups. Se você desejar, você pode remover o groups instalado pelo Shadow: rm /bin/groups ------------------------------------------------------------------------------- Configurando o Shadow Este pacote contém utilitários para modificar as senhas dos usuários, adicionar ou remover usuários e grupos, etc. Não iremos explicar o que significa 'password shadowing' (ocultação de senhas). Uma explicação completa pode ser encontrada no arquivo doc/HOWTO dentro do diretório descompactado do código-fonte. Há uma coisa que deve-se ter em mente se você decidir utilizar o suporte ao 'shadow': aqueles programas que precisam verificar senhas (por exemplo, xdm, servidores FTP, servidores POP3) devem estar configurados para utilizarem senhas shadow. Para habilitar senhas shadow, execute o seguinte comando: /usr/sbin/pwconv ------------------------------------------------------------------------------- Instalando Sysklogd-1.4.1 Tempo estimado de compilação: 0.03 SBU Espaço em disco necessário: 472 KB ------------------------------------------------------------------------------- Conteúdo de Sysklogd Última verificação na versão 1.4.1. O pacote Sysklogd contém programas para gravação das mensagens de log do sistema, como aquelas reportadas pelo kernel. Sysklogd instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas klogd e syslogd ------------------------------------------------------------------------------- Dependências de instalação do Sysklogd Última verificação na versão 1.4.1. Binutils: as, ld, strip Fileutils: install Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Instalação do Sysklogd Compile o Sysklogd: make Instale o pacote: make install ------------------------------------------------------------------------------- Configurando o 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 ------------------------------------------------------------------------------- Instalando Sysvinit-2.84 Tempo estimado de compilação: 0.06 SBU Espaço em disco necessário: 1 MB ------------------------------------------------------------------------------- Conteúdo de Sysvinit Última verificação na versão 2.84. O pacote Sysvinit contém programas para controle da inicialização, execução e término de programas. Sysvinit instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas halt, init, killall5, last, lastb (ligação para last), mesg, pidof (ligação para killall5), poweroff (ligação para halt), reboot (ligação para halt), runlevel, shutdown, sulogin, telinit (ligação para init), utmpdump e wall ------------------------------------------------------------------------------- Dependências de instalação do Sysvinit Última verificação na versão 2.84. Bash: sh Binutils: as, ld Fileutils: chown, cp, install, ln, mknod, rm Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed ------------------------------------------------------------------------------- Instalação do Sysvinit Quando os níveis de execução são modificados (por exemplo, quando desligando o sistema), o init envia os sinais TERM e KILL aos processos que iniciou. O init imprime na tela "Sending all processes the TERM signal". Isto parece implicar que ele está enviando estes sinais a todos os processos em execução. Para evitar esta confusão, o arquivo init.c pode ser modificado, alterando esta sentença para "Sending all processes started by init the TERM signal". Edite a mensagem do init: cp src/init.c{,.backup} && sed 's/Sending processes/Sending processes started by init/g' \ src/init.c.backup > src/init.c Compile o Sysvinit: make -C src Instale o pacote: make -C src install ------------------------------------------------------------------------------- Configurando o Sysvinit Crie um novo arquivo /etc/inittab executando o seguinte: cat > /etc/inittab << "EOF" # Begin /etc/inittab id:3:initdefault: si::sysinit:/etc/rc.d/init.d/rc sysinit 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 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 ------------------------------------------------------------------------------- Instalando Tar-1.13 Tempo estimado de compilação: 0.26 SBU Espaço em disco necessário: 6 MB ------------------------------------------------------------------------------- Conteúdo de Tar Última verificação na versão 1.13. Tar é um programa de arquivamento que armazena e extrai arquivos de um pacote conhecido como arquivo tar. Tar instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas rmt e tar ------------------------------------------------------------------------------- Dependências de instalação do Tar Última verificação na versão 1.13. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Patch: patch Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Instalação do Tar Um patch pode ser aplicado ao Tar para suportar diretamente arquivos bzip2. Este patch adicionará a opção -j ao tar, que funciona da mesma forma que a opção -z, utilizada com arquivos gzip. Aplique o patch executando o seguinte comando: patch -Np1 -i ../tar-1.13.patch Prepare o Tar para a compilação: ./configure --prefix=/usr --bindir=/bin \ --libexecdir=/usr/bin Compile o pacote: make Instale o pacote: make install ------------------------------------------------------------------------------- Instalando Util-linux-2.11y Tempo estimado de compilação: 0.38 SBU Espaço em disco necessário: 10 MB ------------------------------------------------------------------------------- Conteúdo de Util-linux Última verificação na versão 2.11t. O pacote Util-linux contém programas diversos. Os mais importantes são usados para montar, desmontar, formatar, particionar e gerenciar discos rígidos, abrir portas tty e capturar mensagens do kernel. Util-linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize (ligação para rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (ligação para rdev), script, setfdprm, setsid, setterm, sfdisk, swapoff (ligação para swapon), swapon, test.bash, test.tcsh, tunelp, ul, umount, vidmode (ligação para rdev), whereis e write ------------------------------------------------------------------------------- Dependências de instalação do Util-linux Última verificação na versão 2.11n. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, cp, install, ln, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp, cpp0 Glibc: rpcgen Grep: grep Make: make Sed: sed Sh-utils: uname, whoami Textutils: cat ------------------------------------------------------------------------------- Notas de compatibilidade com o FHS O FHS recomenda a utilização do diretório /var/lib/hwclock ao invés de /etc para o armazenamento do arquivo adjtime. Para tornar o hwclock compatível com o FHS, execute o seguinte: cp hwclock/hwclock.c{,.backup} && sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \ hwclock/hwclock.c.backup > hwclock/hwclock.c && mkdir -p /var/lib/hwclock ------------------------------------------------------------------------------- Instalação do Util-linux Prepare o Util-linux para a compilação: ./configure Compile o pacote: make HAVE_SLN=yes A opção HAVE_SLN evita que este programa, já instalado pelo Glibc, seja compilado novamente. Instale o pacote: make HAVE_SLN=yes install ------------------------------------------------------------------------------- Instalando Linux-2.4.20 (páginas de manual) Tempo estimado de compilação: 0.01 SBU Espaço em disco necessário: Ainda não verificado ------------------------------------------------------------------------------- Conteúdo de Linux Última verificação na versão 2.4.18. O kernel Linux está no centro de todo sistema Linux. Quando um computador é ligado e inicia um sistema Linux, a primeira parte carregada é o kernel. O kernel inicializa os componentes de hardware do sistema: portas seriais e paralelas, placas de som e de rede, controladores IDE e SCSI, etc. Em suma, o kernel deixa o hardware disponível para a execução dos softwares. Linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas kernel e seus arquivos-cabeçalhos ------------------------------------------------------------------------------- Instalação das páginas de manual do kernel Compile as páginas de manual: make mandocs Instale as páginas de manual: cp -a Documentation/man /usr/share/man/man9 ------------------------------------------------------------------------------- Instalando Glibc-2.3.1 Tempo estimado de compilação: Ainda não verificado Espaço em disco necessário: Ainda não verificado ------------------------------------------------------------------------------- Conteúdo de Glibc Última verificação na versão 2.2.5. Glibc é uma biblioteca C que provê funções básicas como open, malloc, printf, etc. Esta biblioteca é usada por todos os programas dinamicamente vinculados. Glibc instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump e zic ------------------------------------------------------------------------------- Bibliotecas ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so e libutil.[a,so] ------------------------------------------------------------------------------- Dependências de instalação do Glibc Última verificação na versão 2.2.5. Bash: sh Binutils: ar, as, ld, ranlib, readelf Diffutils: cmp Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch Gcc: cc, cc1, collect2, cpp, gcc Grep: egrep, grep Gzip: gzip Make: make Gawk: gawk Sed: sed Sh-utils: date, expr, hostname, pwd, uname Texinfo: install-info, makeinfo Textutils: cat, cut, sort, tr ------------------------------------------------------------------------------- Reinstalação do Glibc No início deste capítulo, você instalou o Glibc e aplicou patches nele. Um deles desfez algumas modificações para que binários estáticos compilados com o Glibc-2.2 funcionassem. Entretanto, isto não era o que os desenvolvedores do Glibc pretendiam e não precisamos manter este Glibc modificado instalado. Por isso iremos reinstalar este pacote a fim de remover o patch. Um segundo motivo para reinstalar o Glibc é porque isto é considerado mais "limpo". A primeira instalação foi feita usando programas compilados em sua distribuição hospedeira, o que pode afetar o funcionamento do Glibc. Enquanto isto não é um problema para outros pacotes compilados posteriormente, no caso do Glibc desejamos garantir que ele esteja funcionando corretamente (entretanto, sinta-se livre para reinstalar outros pacotes, assim pode-se dizer que você compilou um sistema LFS com LFS. Muito parecido com o método de instalação "bootstrap" do GCC). Iremos também instalar as páginas de manual do Linuxthreads. Como você pode lembrar, durante a primeira instalação do Glibc isto não foi possível, pois o Perl não estava instalado ainda. Agora, tudo o que é necessário para instalar essas páginas de manual está presente. Antes de iniciar a instalação do Glibc, você precisa mudar para o diretório glibc-2.3.1 e descompactar o pacote Glibc-linuxthreads dentro deste diretório, não em /usr/src como você normalmente faz. Este pacote é conhecido por comportar-se mal quando você modifica suas opções de otimização (incluindo as opções -march e -mcpu). Portanto, se você definiu variáveis de ambiente que sobreponham a otimização padrão, tais como CFLAGS e CXXFLAGS, recomendamos removê-las enquanto compila o Glibc. Basicamente, compilar o Glibc de outra forma coloca seu sistema em grande risco. É recomendado pela documentação do Glibc que este pacote seja compilado em um diretório separado do código-fonte. Crie o diretório de compilação: mkdir ../glibc-build && cd ../glibc-build A seguir, prepare o Glibc para a compilação: ../glibc-2.3.1/configure --prefix=/usr --disable-profile \ --enable-add-ons --libexecdir=/usr/bin Compile o pacote: make Instale o pacote: make install Compile as páginas de manual do Linuxthreads: make -C ../glibc-2.3.1/linuxthreads/man Instale as páginas de manual: make -C ../glibc-2.3.1/linuxthreads/man install Complete a instalação do pacote, recarregando o Bash: exec /bin/bash --login ------------------------------------------------------------------------------- Comando chroot substituto De agora em diante, quando você sair do ambiente chroot e desejar retornar a ele, você precisará executar o comando chroot abaixo. Aquele do início do capítulo poderá não funcionar mais (caso a sua distribuição hospedeira seja baseada no Glibc-2.2.x ou anterior, os programas em /static/bin, como o bash, não funcionarão). O comando chroot a seguir irá funcionar não importando qual seja a versão do Glibc da distribuição hospedeira. Além disso, agora que todos os softwares foram instalados, não há mais necessidade de se utilizar as ferramentas do diretório /static. chroot $LFS /usr/bin/env -i \ HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin \ /bin/bash --login ------------------------------------------------------------------------------- Instalando LFS-Bootscripts-1.11 Tempo estimado de compilação: 0.01 SBU Espaço em disco necessário: 252 KB ------------------------------------------------------------------------------- Conteúdo de LFS-bootscripts Última verificação na versão 1.11. O pacote LFS-Bootscripts contém scripts shell de inicialização estilo SysV. Estes scripts realizam várias tarefas, como a verificação da integridade do sistema de arquivos, carregamento do mapa de teclado, configuração de redes e desligamento do sistema. LFS-bootscripts instala os seguintes arquivos: ------------------------------------------------------------------------------- Scripts checkfs, cleanfs, functions, halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc, reboot, sendsignals, setclock, swap, sysklogd e template ------------------------------------------------------------------------------- Dependências de instalação do LFS-Bootscripts Última verificação na versão 1.11. Fileutils: chown, cp ------------------------------------------------------------------------------- Instalação do LFS-Bootscripts Nós utilizaremos scripts de inicialização estilo SysV. Nós escolhemos este estilo porque ele é largamente utilizado e nos sentimos confortáveis com ele. Se você prefere utilizar outro estilo, Marc Heerdink escreveu uma dica sobre os scripts de inicialização estilo BSD, que podem ser encontrados em http:// hints.linuxfromscratch.org/hints/bsd-init.txt. Se você decidiu utilizar o estilo BSD, ou outro estilo qualquer, você poderá pular o Capítulo 7 e ir para o Capítulo 8. Instale os scripts de inicialização: cp -a rc.d sysconfig /etc Os scripts devem pertencer ao root: chown -R root:root /etc/rc.d /etc/sysconfig ------------------------------------------------------------------------------- Configurando componentes do sistema Agora que todos os pacotes estão instalados, precisamos fazer algumas configurações. ------------------------------------------------------------------------------- Configurando seu teclado Nada é mais incômodo do que utilizar o Linux com o mapa de caracteres incorreto. Se você possui um teclado americano padrão pule esta seção, pois não precisará modificá-lo. Para configurar o mapa de caracteres padrão, crie a ligação simbólica /usr/ share/kbd/keymaps/defkeymap.map.gz executando o seguinte comando: ln -s /usr/share/kbd/keymaps/defkeymap.map.gz Substitua pelo mapa de caracteres do seu teclado. Por exemplo, se você possui um teclado ABNT2, você pode executar: ln -s i386/qwerty/br-abnt2.map.gz /usr/share/kbd/keymaps/defkeymap.map.gz Uma segunda opção para configurar o layout do seu teclado é compilar o mapa de caracteres diretamente dentro do kernel. Isto irá garantir que seu teclado sempre funcione como o esperado, mesmo quando você entrar no sistema em modo de manutenção (passando 'init=/bin/sh' para o kernel), já que neste caso o script de inicialização que normalmente configura seu mapa de caracteres não é executado. Execute o seguinte comando para corrigir o mapa de caracteres dentro do código-fonte do kernel. Você terá que repetir este comando sempre que descompactar um novo kernel: loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz > \ /usr/src/linux-2.4.20/drivers/char/defkeymap.c ------------------------------------------------------------------------------- Criando os arquivos /var/run/utmp, /var/log/wtmp e /var/log/btmp Programas como login, shutdown, uptime e outros lêem e escrevem nos arquivos / var/run/utmp, /var/log/btmp e /var/log/wtmp. Estes arquivos contêm informação sobre quem está acessando o sistema no momento. Eles também informam quando foi a última inicialização ou desligamento do computador e mantêm registros sobre tentativas falhas de login. Crie estes arquivos com suas permissões apropriadas executando os seguintes comandos: touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} && chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp} ------------------------------------------------------------------------------- Criando a senha do root Escolha uma senha para o usuário root e crie-a executando o seguinte comando: passwd root ------------------------------------------------------------------------------- Capítulo 7. Configurando scripts de inicialização do sistema ------------------------------------------------------------------------------- Introdução Este capítulo irá configurar os scripts de inicialização instalados no Capítulo 6. Muitos destes scripts irão funcionar sem necessidade de modificá-los, mas uns poucos requerem arquivos adicionais de configuração, já que lidam com informação dependente de hardware. ------------------------------------------------------------------------------- Como estes scripts funcionam na inicialização? O Linux utiliza um sistema de inicialização especial chamado SysVinit. Ele é baseado no conceito de níveis de execução. Isto pode variar bastante de um sistema para outro, logo não deve ser assumido que, só porque certas coisas funcionam no , também funcionarão da mesma forma no LFS. O LFS possui seu próprio método em certos procedimentos, mas respeita padrões genericamente aceitos. SysVinit (que iremos chamar de init a partir daqui) trabalha usando um esquema de níveis de execução. Há 7 (de 0 a 6) níveis de execução (na verdade, há outros níveis, mas eles são para casos especiais e geralmente não são utilizados. A página de manual do init descreve estes detalhes), e cada um corresponde aos procedimentos que o computador deve realizar quando inicia. O nível de execução padrão é o 3. Aqui estão as descrições dos diferentes níveis, da forma como são comumente implementados: 0: pára (ou desliga) o computador 1: modo monousuário 2: modo multiusuário sem rede 3: modo multiusuário com rede 4: reservado para adaptações, ou a mesma funcionalidade de 3 5: mesmo que 4, geralmente utilizado para acesso gráfico (como o xdm do X ou kdm do KDE) 6: reinicia o computador O comando utilizado para alternar entre níveis de execução é o init onde é o nível alvo. Por exemplo, para reiniciar o computador, um usuário pode executar o comando init 6. O comando reboot é apenas um apelido, assim como halt é um apelido para init 0. Há diretórios sob /etc/rc.d com o nome rc?.d, onde ? é o nível de execução, e rcsysinit.d, que contém ligações simbólicas. Algumas começam com K, outras com S, e todas têm dois números após a letra. O K refere-se à interrupção de um serviço, e o S refere-se à sua inicialização. Os números determinam a ordem em que os scripts são executados, de 00 a 99; quanto menor o número, mais cedo um serviço é executado. Quando o init alterna para outro nível de execução, os serviços apropriados são interrompidos ou inicializados. Os scripts reais estão em /etc/rc.d/init.d. Eles fazem todo o trabalho, e as ligações simbólicas apontam para eles. Ligações de interrupção e de inicialização apontam para o mesmo script em /etc/rc.d/init.d, já que os scripts podem ser chamados com diferentes parâmetros como start, stop, restart, reload, status. Quando uma ligação K é encontrada, o script apropriado é executado com o argumento stop. Quando uma ligação S é encontrada, o script apropriado é executado com o argumento start. Há uma exceção. Ligações que iniciam com um S nos diretórios rc0.d e rc6.d não iniciarão nenhum serviço. Os scripts serão chamados com o parâmetro stop para interromper um serviço. A lógica por detrás disso é que, quando for reiniciar ou desligar o sistema, você não deseja iniciar nada, apenas interromper o sistema. Estas são descrições das funções dos argumentos nos scripts: * start: O serviço é iniciado. * stop: O serviço é interrompido. * restart: O serviço é interrompido e novamente iniciado. * reload: A configuração do serviço é atualizada. É utilizado após a modificação do arquivo de configuração de um serviço, quando este não precisa ser reiniciado. * status: Diz se o serviço está rodando e com quais PID's. Sinta-se à vontade para modificar o modo como o processo de inicialização trabalha (afinal, é o seu próprio sistema LFS). Os arquivos oferecidos aqui são apenas um exemplo de como isto pode ser feito de uma forma interessante. (bem, o que consideramos interessante -- você pode odiar isto). ------------------------------------------------------------------------------- Configurando o script setclock Este script setclock lê o horário de seu relógio de hardware (também conhecido como relógio BIOS ou CMOS) e o converte para horário local (se o relógio de hardware estiver em horário GMT) ou não (se o relógio de hardware estiver em horário local), usando o arquivo /etc/localtime. Não há como detectar automaticamente se seu relógio de hardware está em horário GMT ou não, por isso precisamos configurar isto nós mesmos. Altere o valor da variável UTC abaixo para 0 (zero) se seu relógio de hardware não está em horário GMT. Crie um novo arquivo /etc/sysconfig/clock executando o seguinte: cat > /etc/sysconfig/clock << "EOF" # Inicia /etc/sysconfig/clock UTC=1 # Termina /etc/sysconfig/clock EOF Agora, você pode querer dar uma olhada em uma ótima dica que explica como lidamos com o horário no LFS, em http://hints.linuxfromscratch.org/hints/ time.txt. Ela apresenta aspectos como fusos horários, UTC e a variável de ambiente TZ. ------------------------------------------------------------------------------- Eu preciso do script loadkeys? Se você decidiu compilar seu arquivo de mapeamento do teclado (keymap) diretamente dentro do kernel ao fim do Capítulo 6, então você não precisa executar o script loadkeys, já que o kernel configurou o mapeamento para você. Você ainda pode executá-lo se quiser, não haverá problemas. Pode inclusive ser benéfico mantê-lo, no caso de você rodar vários kernels diferentes e não lembrar ou não desejar compilar o mapeamento dentro de cada kernel que você manipular. Se você decidiu que não precisa ou não deseja usar o script loadkeys, remova a ligação simbólica /etc/rc.d/rcsysinit.d/S70loadkeys. ------------------------------------------------------------------------------- Configurando o script sysklogd O script sysklogd evoca o programa syslogd com a opção -m 0. Esta opção desliga a marcação periódica de tempo que o syslogd escreve nos arquivos de log a cada 20 minutos, por padrão. Se você deseja ligar esta funcionalidade, edite o script sysklogd e faça as alterações adequadas. Veja man syslogd para maiores informações. ------------------------------------------------------------------------------- Configurando o script localnet A configuração do nome do computador é parte do script localnet. Isto é feito no arquivo /etc/sysconfig/network. Crie o arquivo /etc/sysconfig/network e coloque um nome executando: echo "HOSTNAME=lfs" > /etc/sysconfig/network "lfs" precisa ser substituído com o nome pelo qual o computador será conhecido. Você não deve colocar o FQDN (Fully Qualified Domain Name, Nome de Domínio Completamente Qualificado) aqui. Esta informação será colocada no arquivo /etc/ hosts, mais tarde. ------------------------------------------------------------------------------- Criando o arquivo /etc/hosts Se uma placa de rede será configurada, você precisa decidir qual endereço IP, FQDN e apelidos (aliases) a serem utilizados e que devem ser colocados no arquivo /etc/hosts. A sintaxe é esta: meuhost.meudominio.org apelidos Você deve ter certeza de que o endereço IP está na faixa de endereços privados. Faixas válidas são: Classes de Rede A 10.0.0.0 B 172.16.0.0 a 172.31.0.0 C 192.168.0.0 a 192.168.255.0 Um endereço IP válido pode ser 192.168.1.1. Um FQDN válido para este IP pode ser www.linuxfromscratch.org. Mesmo que você não vá utilizar uma placa de rede, você ainda precisa fornecer um FQDN. Isto é necessário para certos programas funcionarem corretamente. Se uma placa de rede não for configurada, crie o arquivo /etc/hosts executando: cat > /etc/hosts << "EOF" # Inicia /etc/hosts (versão sem placa de rede) 127.0.0.1 www.meudominio.com localhost # Termina /etc/hosts (versão sem placa de rede) EOF Caso contrário, crie o arquivo /etc/hosts executando: cat > /etc/hosts << "EOF" # Inicia /etc/hosts (versão com placa de rede) 127.0.0.1 localhost.localdomain localhost 192.168.1.1 www.meudominio.org # Termina /etc/hosts (versão com placa de rede) EOF 192.168.1.1 e www.meudominio.org precisam ser alterados de acordo com seu gosto (ou requisitos, se for um endereço IP determinado por um administrador de sistemas/redes e se esta máquina for conectada à uma rede existente). ------------------------------------------------------------------------------- Configurando o script network Esta seção somente aplica-se a quem irá configurar uma placa de rede. Se você não possui nenhuma placa de rede, você provavelmente não irá criar nenhum arquivo de configuração relacionado a placas de rede. Se este é o caso, você deve remover as ligações simbólicas network de todos os diretórios de níveis de execução (/etc/rc.d/rc*.d) ------------------------------------------------------------------------------- Configurando o gateway padrão Se você está em rede, pode precisar configurar o gateway padrão para esta máquina. Isto é feito adicionando-se os valores apropriados ao arquivo /etc/ sysconfig/network, executando o seguinte: cat >> /etc/sysconfig/network << "EOF" GATEWAY=192.168.1.2 GATEWAY_IF=eth0 EOF Os valores para GATEWAY e GATEWAY_IF precisam ser alterados para refletir a configuração de sua rede. GATEWAY contém o endereço IP do gateway padrão, e GATEWAY_IF contém a interface de rede através da qual o gateway padrão pode ser alcançado. ------------------------------------------------------------------------------- Criando arquivos de configuração de interface de rede Quais interfaces de rede são levantadas e quais são derrubadas pelo script network depende dos arquivos no diretório /etc/sysconfig/network-devices. Este diretório deve conter arquivos na forma ifconfig.xyz, onde xyz é um nome de interface de rede (como eth0 ou eth0:1) Se você decidir renomear ou mover o diretório /etc/sysconfig/network-devices, certifique-se de atualizar o arquivo /etc/sysconfig/rc, fornecendo a nova pasta à variável network_devices. Agora, novos arquivos serão criados neste diretório contendo as informações abaixo. O seguinte comando criará um arquivo ifconfig.eth0 de exemplo: cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF" ONBOOT=yes IP=192.168.1.1 NETMASK=255.255.255.0 BROADCAST=192.168.1.255 EOF Claro, os valores destas variáveis precisam ser alterados em cada arquivo para refletir a configuração apropriada. Se a variável ONBOOT é ajustada para yes, o script network irá levantar a interface correspondente durante a inicialização do sistema. Se ajustado para qualquer valor diferente de yes, este será ignorado pelo script e, portanto, não será levantado. ------------------------------------------------------------------------------- Capítulo 8. Tornando o sistema LFS inicializável ------------------------------------------------------------------------------- Introdução Este capítulo irá tornar o LFS inicializável. Ele discute sobre a criação de um novo arquivo fstab, a compilação de um novo kernel para o sistema e a adição das entradas apropriadas no LILO para que o sistema possa ser selecionado para inicialização no prompt. ------------------------------------------------------------------------------- Criando o arquivo /etc/fstab Para que alguns programas sejam capazes de determinar onde certas partições estão montadas, o arquivo /etc/fstab é utilizado. Crie um novo arquivo /etc/ fstab contendo o seguinte: cat > /etc/fstab << "EOF" # Inicia /etc/fstab # filesystem mount-point fs-type options dump fsck-order /dev/*LFS* / *fs-type* defaults 1 1 /dev/*swap* swap swap pri=1 0 0 proc /proc proc defaults 0 0 # Termina /etc/fstab EOF *LFS*, *swap* e *fs-type* precisam ser substituídos com os valores apropriados (/dev/hda2, /dev/hda5 e reiserfs, por exemplo). Quando adicionando uma partição reiserfs, o 1 1 no final da linha deve ser substituído por 0 0. Para maiores informações sobre os vários campos que existem no arquivo fstab, veja man 5 fstab. Há outras linhas que você pode querer adicionar em seu arquivo fstab. Um exemplo é a que você precisa ter se estiver utilizando devpts: devpts /dev/pts devpts gid=4,mode=620 0 0 Outro exemplo é a linha a ser adicionada caso você pretenda utilizar dispositivos USB: usbfs /proc/bus/usb usbfs defaults 0 0 Ambas as opções somente irão funcionar se você possuir suporte compilado em seu kernel às respectivas funcionalidades. ------------------------------------------------------------------------------- Instalando Linux-2.4.20 Tempo de compilação estimado (opções padrão): 4.20 SBU Espaço em disco necessário estimado (opções padrão): 181 MB ------------------------------------------------------------------------------- Conteúdo de Linux Última verificação na versão 2.4.18. O kernel Linux está no centro de todo sistema Linux. Quando um computador é ligado e inicia um sistema Linux, a primeira parte carregada é o kernel. O kernel inicializa os componentes de hardware do sistema: portas seriais e paralelas, placas de som e de rede, controladores IDE e SCSI, etc. Em suma, o kernel deixa o hardware disponível para a execução dos softwares. Linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas kernel e seus arquivos-cabeçalhos ------------------------------------------------------------------------------- Dependências de instalação do Linux Última verificação na versão 2.4.17. Bash: sh Binutils: ar, as, ld, nm, objcopy Fileutils: cp, ln, mkdir, mv, rm, touch Findutils: find, xargs Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gzip Make: make Gawk: awk Modutils: depmod, genksyms Net-tools: dnsdomainname, hostname Sed: sed Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes Textutils: cat, md5sum, sort, tail ------------------------------------------------------------------------------- Instalação do kernel A instalação do kernel envolve alguns passos: sua configuração, compilação e instalação. Há algumas alternativas para configurar o kernel. Se você não gosta do modo como este livro o faz, leia o README que acompanha o código-fonte do kernel e veja as outras opções. Prepare a compilação executando o seguinte comando: make mrproper Isto garante que o código-fonte esteja pronto para a compilação. Os desenvolvedores do kernel recomendam que este comando seja executado antes de cada compilação do kernel. Nada garante que o kernel esteja "limpo" após a descompactação. Configure o kernel através de uma interface de menus: make menuconfig make oldconfig pode ser mais apropriado em certos casos. Leia o README para mais informações. Se desejar, você pode pular a configuração do kernel, copiando o arquivo .config do seu sistema hospedeiro para o diretório $LFS/usr/src/linux-2.4.20. Verifique e crie os arquivos de informação de dependências: make dep Compile a imagem do kernel: make bzImage Compile os drivers que foram configurados como módulos: make modules Se você pretende utilizar módulos do kernel, precisará de um arquivo /etc/ modules.conf. Informações referentes a módulos e à configuração em geral podem ser encontradas na documentação do kernel, que está armazenada em /usr/src/ linux-2.4.20/Documentation. A página de manual do modules.conf e o kernel HOWTO em http://www.tldp.org/HOWTO/Kernel-HOWTO.html podem também ser do seu interesse. Instale os módulos: make modules_install A compilação do kernel está concluída, mas alguns dos arquivos criados ainda residem na árvore de código-fonte. Para completar a instalação, dois arquivos devem ser copiados para o diretório /boot. O caminho para a imagem do kernel pode variar dependendo da plataforma que você está usando. Execute o seguinte comando para instalar o kernel: cp arch/i386/boot/bzImage /boot/lfskernel System.map é um arquivo de símbolos. Ele mapeia todas as funções na API, bem como os endereços das estruturas de dados para o kernel em execução. Execute o seguinte comando para instalar o arquivo .map: cp System.map /boot ------------------------------------------------------------------------------- Tornando o sistema LFS inicializável A fim de sermos capaz de inicializar o sistema LFS, precisamos atualizar nosso gerenciador de boot. Estamos assumindo que seu sistema atual esteja usando o Lilo (já que este é o mais utilizado gerenciador de boot no momento). Nós não executaremos o lilo de dentro do ambiente chroot. Este procedimento poderia causar efeitos colaterais fatais que provocariam a inutilização da MBR, e você precisaria de um disco de boot para ser capaz de inicializar qualquer sistema Linux (tanto o sistema atual como o LFS). Primeiro iremos sair do ambiente chroot e copiar o arquivo lfskernel para o sistema atual: logout cp $LFS/boot/lfskernel /boot A próxima etapa é a adição de uma entrada em /etc/lilo.conf para que possamos escolher o LFS quando iniciarmos o computador: cat >> /etc/lilo.conf << "EOF" image=/boot/lfskernel label=lfs root= read-only EOF deve ser substituído pela designação da partição LFS. Note também que se você está utilizando reiserfs em sua partição raiz, a linha read-only deve se modificada para read-write. Agora, atualize o gerenciador de boot executando: /sbin/lilo -v O último passo é sincronizar os arquivos de configuração do lilo do sistema atual com os do sistema LFS: cp /etc/lilo.conf $LFS/etc && cp $(grep "image.*=" /etc/lilo.conf | cut -f 2 -d "=") $LFS/boot ------------------------------------------------------------------------------- Capítulo 9. Fim ------------------------------------------------------------------------------- Fim Concluído! Você terminou a instalação de seu sistema LFS. Pode ter sido um longo processo, mas esperamos que tenha valido a pena. Desejamos a você bastante divertimento com seu novo sistema Linux personalizado. Agora é um bom momento para remover todos os símbolos de depuração dos binários do seu sistema LFS. Se você não é um programador e não planeja depurar seu software, então fique feliz por saber que você pode recuperar algumas dezenas de megas removendo símbolos de depuração. Este processo não causa outro inconveniente que não seja o de não poder mais depurar o software completamente, o que não é um problema se você não sabe como depurar. 98% das pessoas que usam o comando mencionado abaixo não enfrentam nenhum problema. Mas faça um backup do seu sistema LFS antes de executar este comando. Há uma pequena chance deste tornar seu sistema inutilizável (geralmente destruindo seus módulos do kernel e bibliotecas dinamicamente compartilhadas). Isto é provocado mais freqüentemente por erros de digitação do que por um problema com o comando utilizado. Dito isto, a opção --strip-debug que utilizamos para remoção de símbolos é inofensiva em circunstâncias normais. Ela não remove nada vital dos arquivos. É também seguro utilizar --strip-all em programas regulares (não a utilize em bibliotecas - elas serão destruídas), mas não é tão seguro, e o espaço que você ganha não é tanto. Mas se você está deficiente em espaço em disco e cada bit ajuda, então decida você mesmo. Consulte a página de manual do strip para outras opções que você pode usar. A idéia geral é de não executar o strip em bibliotecas (com outra opção que não seja --strip-debug). find $LFS/{,usr/,usr/local/}{bin,sbin,lib} -type f \ -exec /usr/bin/strip --strip-debug '{}' ';' Pode ser uma boa idéia criar o arquivo $LFS/etc/lfs. Tendo este arquivo, é mais fácil para você (e para nós caso você vá pedir ajuda) identificar que versão do LFS você instalou em seu sistema. Crie o arquivo $LFS/etc/lfs executando o seguinte comando: echo 4.1 > $LFS/etc/lfs ------------------------------------------------------------------------------- Seja Contado Deseja ser contado como um usuário LFS agora que terminou o livro? Vá para http://linuxfromscratch.org/cgi-bin/lfscounter.cgi e registre-se como um usuário LFS fornecendo seu nome e a primeira versão do livro que utilizou ("4.1", caso seja a sua primeira experiência com o LFS). Vamos reiniciar e entrar no LFS agora... ------------------------------------------------------------------------------- Reiniciando o sistema Agora que todo o software foi instalado, é hora de reiniciar o computador. Antes de reiniciarmos, vamos desmontar $LFS/proc e a partição LFS, executando: umount $LFS/proc && umount $LFS Se você decidiu criar múltiplas partições, é necessário desmontar as outras partições antes da $LFS, desta forma: umount $LFS/proc && umount $LFS/usr && umount $LFS/home && umount $LFS E você pode reiniciar seu sistema executando: /sbin/shutdown -r now No prompt LILO: tenha certeza de selecionar lfs e não a entrada padrão que irá iniciar sua distribuição atual novamente. Depois que você reiniciou, seu sistema LFS está pronto para uso e você pode começar a adicionar os softwares de sua escolha. Um passo final que você talvez queira fazer é executar o lilo, agora que você está dentro do LFS. Desta forma, você irá colocar a versão LFS do LILO na MBR no lugar da que está lá agora, instalada por sua distribuição atual. Dependendo de quão antiga é sua distribuição atual, a versão LFS do lilo pode ter atributos mais avançados que você precisará/poderá utilizar. De qualquer forma, execute os seguintes comandos para fazer a versão do lilo instalada no LFS ativa: /sbin/lilo Você pode remover agora o diretório /static. Se você acha que precisa refazer o Capítulo 5, então você pode desejar criar um backup do diretório antes de removê-lo. Para remover o diretório /static, digite o seguinte comando: rm -rf /static ------------------------------------------------------------------------------- O que mais agora? Agradecemos a você por estar lendo o livro LFS e esperamos que você tenha achado este livro útil e que tenha valido a pena o tempo consumido com ele. Agora que terminamos a instalação do sistema LFS, você deve estar se perguntando "O que mais agora?". A fim de responder esta questão, nós compilamos uma lista de fontes de consulta. * Beyond Linux From Scratch O livro Beyond Linux From Scratch abrange procedimentos de instalação para uma vasta gama de software fora do escopo do livro LFS. O projeto BLFS pode ser encontrado em http://beyond.linuxfromscratch.org/. * Dicas LFS As Dicas LFS são uma coleção de pequenos e educacionais documentos enviados por voluntários da comunidade LFS. As Dicas estão disponíveis em http:// hints.linuxfromscratch.org/hints.shtml. * Listas de discussão Há várias listas de discussão do LFS nas quais você pode se inscrever ao precisar de ajuda. Veja Chapter 1 - Mailing lists and archives para maiores informações. * Projeto de Documentação do Linux O objetivo do Projeto de Documentação do Linux é colaborar em todos os aspectos na documentação do sistema. O LDP (Linux Documentation Project) oferece uma extensa coleção de HOWTOs, Guias e Páginas de manual; podem ser encontrados em http://www.tldp.org/. IV. Parte IV - Apêndice Índice A. Dependências e descrição dos pacotes ------------------------------------------------------------------------------- Apêndice A. Dependências e descrição dos pacotes ------------------------------------------------------------------------------- Introdução Neste apêndice os seguintes aspectos de cada pacote instalado neste livro são descritos: * o endereço oficial para download do pacote, * o que o pacote contém, * o que cada programa do pacote faz, * o que o pacote precisa para ser compilado. Grande parte da informação sobre estes pacotes (especialmente as descrições) foi retirada das páginas de manual. Nós não incluímos a página de manual inteira, apenas alguns elementos-chave para tornar possível o entendimento do que o programa faz. Para obter informações com mais detalhes sobre um programa, consulte sua página de manual ou de informação. Certos pacotes são documentados em maior profundidade do que outros, por conhecermos mais sobre alguns do que sobre outros. Se você acha que alguma informação deve ser adicionada para as descrições a seguir, não hesite em enviar um e-mail para uma das listas de discussão. Acreditamos que esta seção deve conter uma descrição detalhada de cada pacote instalado, mas não podemos fazer isto sem ajuda. Note que atualmente somente o que o pacote faz é descrito e não porque ele precisa ser instalado. Isto poderá ser adicionado em futuras versões. Também está listado aqui as dependências para todos os pacotes que são instalados neste livro. As listas incluirão quais programas de quais pacotes são necessários para compilar o pacote a ser instalado. Estas não são dependências em tempo de execução, o que significa que elas não dizem a você quais programas são necessários para utilizar os pacotes. Apenas as necessárias para compilá-lo. A lista de dependências pode ficar, de tempos em tempos, desatualizada em relação à versão atual do pacote utilizado. Verificar dependências demanda certo trabalho, por isso elas podem ficar desatualizadas por um tempo após a atualização do pacote. Mas, normalmente, em pequenas atualizações de pacotes, as dependências de instalação dificilmente mudam, portanto elas estarão atualizadas em muitos casos. Quando nós fazemos uma grande atualização, nós verificamos se as dependências estão corretas também. ------------------------------------------------------------------------------- Autoconf ------------------------------------------------------------------------------- Local Oficial para Download Autoconf (2.57): ftp://ftp.gnu.org/gnu/autoconf/ ------------------------------------------------------------------------------- Conteúdo de Autoconf Última verificação na versão 2.53. Autoconf produz scripts shell que configuram o código-fonte automaticamente. Autoconf instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate e ifnames ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.53. ------------------------------------------------------------------------------- Descrições dos programas autoconf autoconf é uma ferramenta para produção de scripts shell que automaticamente configuram pacotes de código-fonte para adaptá-los a diversos sistemas tipo Unix (Unix-like). Os scripts de configuração produzidos pelo autoconf são independentes ao serem executados, assim seus usuários não precisam ter o Autoconf instalado. ------------------------------------------------------------------------------- autoheader O programa autoheader cria um arquivo-modelo de declarações #define em linguagem C para uso com o configure. ------------------------------------------------------------------------------- autom4te autom4te executa o GNU M4 em arquivos. ------------------------------------------------------------------------------- autoreconf Caso haja vários scripts de configuração, o programa autoreconf pode economizar algum trabalho. Ele executa o autoconf e o autoheader (quando necessário) repetidas vezes para refazer os scripts de configuração e modelos de cabeçalho (header templates) na árvore de diretório arraigada ao diretório atual. ------------------------------------------------------------------------------- autoscan O programa autoscan ajuda a criar um arquivo configure.in para um pacote. O autoscan examina os arquivos-fontes em uma árvore de diretórios. Se um diretório não é especificado na linha de comando, então o atual é usado. Os arquivos-fontes são examinados para verificar problemas comuns de portabilidade e um arquivo configure.scan é criado para servir como configure.in preliminar para aquele pacote. ------------------------------------------------------------------------------- autoupdate O programa autoupdate atualiza arquivos configure.in que chamam as macros do autoconf pelos seus velhos nomes, para que utilizem os nomes atuais. ------------------------------------------------------------------------------- ifnames ifnames ajuda na produção de um configure.in para um pacote. Ele imprime os identificadores que o pacote usa nas expressões condicionais do pré-processador C. Se um pacote já foi configurado para ter portabilidade, este programa pode ajudar a determinar que configuração precisa ser verificada. Ele pode preencher algumas lacunas em um arquivo configure.in gerado pelo autoscan. ------------------------------------------------------------------------------- Dependências de instalação do Autoconf Última verificação na versão 2.52. Bash: sh Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Grep: fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Automake ------------------------------------------------------------------------------- Local Oficial para Download Automake (1.7.2): ftp://ftp.gnu.org/gnu/automake/ ------------------------------------------------------------------------------- Conteúdo de Automake Última verificação na versão 1.6.2. Automake produz arquivos Makefile.in para o uso com Autoconf. Automake instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas acinstall, aclocal, aclocal-1.6, automake, automake-1.6, compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, ylwrap ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.6.2. ------------------------------------------------------------------------------- Descrições dos programas acinstall acinstall é um script que instala arquivos M4 tipo aclocal (aclocal-style). ------------------------------------------------------------------------------- aclocal, aclocal-1.6 O Automake inclui várias macros autoconf que podem ser usadas em pacotes, algumas delas necessárias em certas situações. Estas macros devem ser definidas no arquivo aclocal.m4 ou elas não serão vistas pelo autoconf. O programa aclocal criará automaticamente os arquivos aclocal.m4 baseado nos conteúdos do arquivo configure.in. Isto fornece um modo conveniente de utilizar as macros providas pelo Automake sem ter que procurá-las manualmente. O mecanismo do aclocal também é extensível para uso com outros pacotes. ------------------------------------------------------------------------------- automake, automake-1.6 Para criar todos os arquivos Makefile.in de um pacote, execute o programa automake no diretório de nível mais alto, sem argumentos. O automake encontrará automaticamente cada Makefile.am apropriado (analisando o configure.in) e criará o Makefile.in correspondente. ------------------------------------------------------------------------------- compile compile é um script que age como um intermediário para compiladores. ------------------------------------------------------------------------------- config.guess config.guess detecta o tipo de sistema. ------------------------------------------------------------------------------- config.sub config.sub é um script de validação da configuração. ------------------------------------------------------------------------------- depcomp depcomp é um script que gera dependências a partir dos efeitos da compilação de programas-teste ------------------------------------------------------------------------------- elisp-comp elisp-comp é um script que compila arquivos .el. ------------------------------------------------------------------------------- install-sh install-sh é um script que instala um programa, outro script ou um arquivo de dados. ------------------------------------------------------------------------------- mdate-sh mdate-sh é um script que imprime a data de modificação de um arquivo ou diretório. ------------------------------------------------------------------------------- missing missing é um script que age como um mediador para alguns programas que estão faltando no sistema. ------------------------------------------------------------------------------- mkinstalldirs mkinstalldirs é um script que cria uma hierarquia de diretórios. ------------------------------------------------------------------------------- py-compile py-compile é um script que compila programas Python. ------------------------------------------------------------------------------- ylwrap ylwrap é um script que funciona como mediador para requisições lex/yacc. ------------------------------------------------------------------------------- Dependências de instalação do Automake Última verificação na versão 1.5. Bash: sh Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm, rmdir Grep: fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Bash ------------------------------------------------------------------------------- Local Oficial para Download Bash (2.05a): ftp://ftp.gnu.org/gnu/bash/ ------------------------------------------------------------------------------- Conteúdo de Bash Última verificação na versão 2.05a. bash é o Bourne-Again SHell, um interpretador de comandos largamente utilizado em sistemas Unix. O programa bash lê da entrada padrão (o teclado). Um usuário digita algo, o programa avalia o que ele digitou e realiza alguma ação, como executar um programa. Bash instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bash, sh (ligação para bash) e bashbug ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.05a. ------------------------------------------------------------------------------- Descrições dos programas bash bash é o Bourne-Again SHell, um interpretador de comandos largamente utilizado em sistemas Unix. O programa bash lê da entrada padrão (o teclado). Um usuário digita algo, o programa avalia o que ele digitou e realiza alguma ação, como executar um programa. ------------------------------------------------------------------------------- bashbug bashbug é um script shell que ajuda o usuário a compor e enviar relatórios de bugs relacionados ao Bash, por meio de um método padronizado. ------------------------------------------------------------------------------- sh sh é uma ligação simbólica para o programa bash. Quando invocado como sh, o bash tenta emular o funcionamento de versões históricas do sh o mais idêntico possível, ao mesmo tempo que se mantém adequado ao padrão POSIX. ------------------------------------------------------------------------------- Dependências de instalação do Bash Última verificação na versão 2.05a. Bash: bash, sh Binutils: ar, as, ld, ranlib, size Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr, uniq ------------------------------------------------------------------------------- Bin86 ------------------------------------------------------------------------------- Local Oficial para Download Bin86 (0.16.3): http://www.cix.co.uk/~mayday/ ------------------------------------------------------------------------------- Conteúdo de Bin86 Última verificação na versão 0.16.3 Bin86 é um assembler e vinculador (linker) para código 8086 - 80386. Bin86 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas as86, as86_encap, ld86, nm86 (ligação para objdump86), objdump86 e size86 (ligação para objdump86) ------------------------------------------------------------------------------- Descrições Última verificação na versão 0.16.3 ------------------------------------------------------------------------------- Descrições dos programas as86 as86 é um assembler para os processadores 8086...80386. ------------------------------------------------------------------------------- as86_encap as86_encap é um script shell que executa o as86 e converte o binário criado em um arquivo C prog.v para ser incluído ou vinculado a programas como instaladores de boot. ------------------------------------------------------------------------------- ld86 ld86 entende apenas os arquivos-objetos produzidos pelo assembler as86. Ele pode vinculá-los a executáveis I&D impuros ou separados. ------------------------------------------------------------------------------- nm86 A tabela de símbolos do arquivo binário. ------------------------------------------------------------------------------- objdump86 Exibe informações detalhadas sobre um arquivo binário. ------------------------------------------------------------------------------- size86 Sumariza o tamanho dos dados em um arquivo binário. ------------------------------------------------------------------------------- Dependências de instalação do Bin86 Última verificação na versão 0.16.0. Bash: sh Binutils: as, ld, strip Fileutils: chmod, install, ln, mv Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed ------------------------------------------------------------------------------- Binutils ------------------------------------------------------------------------------- Local Oficial para Download Binutils (2.13.2): ftp://ftp.gnu.org/gnu/binutils/ ------------------------------------------------------------------------------- Conteúdo de Binutils Última verificação na versão 2.12.1. Binutils é uma coleção de ferramentas de desenvolvimento de software, contendo um vinculador, um assembler e outras ferramentas que trabalham com arquivos-objetos e pacotes de arquivos. Binutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas addr2line, ar, as, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings e strip ------------------------------------------------------------------------------- Bibliotecas libbfd.[a,so] e libopcodes.[a,so] ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.12.1. ------------------------------------------------------------------------------- Descrições dos programas addr2line addr2line converte os endereços de um programa em nomes de arquivo e números de linhas. Dado um endereço e um executável, ele usa a informação de depuração do executável para identificar qual nome de arquivo e número de linha estão associados ao endereço dado. ------------------------------------------------------------------------------- ar O programa ar cria, modifica e extrai de arquivos (archives). Um arquivo contém uma coleção de outros arquivos em uma estrutura que torna possível recuperar os arquivos individuais originais (chamados membros do arquivo). ------------------------------------------------------------------------------- as as é destinado à conversão da saída do compilador C GNU, gcc, para instruções a serem utilizadas pelo vinculador ld. ------------------------------------------------------------------------------- gprof gprof exibe dados do perfil de gráficos de chamada. ------------------------------------------------------------------------------- ld ld concatena vários arquivos-objetos, organiza seu conteúdo e vincula referências simbólicas. Freqüentemente, a última etapa na compilação de um novo programa é feita pelo ld. ------------------------------------------------------------------------------- nm nm lista os símbolos de arquivos-objetos. ------------------------------------------------------------------------------- objcopy objcopy copia o conteúdo de um arquivo-objeto para outro. objcopy utiliza a biblioteca GNU BFD para ler e escrever os arquivos-objetos. Ele pode escrever o arquivo final em um formato diferente do arquivo original. ------------------------------------------------------------------------------- objdump objdump exibe informações sobre um ou mais arquivos-objetos. As opções controlam qual informação particular será exibida. Este programa é útil para programadores que estão produzindo ferramentas de compilação. ------------------------------------------------------------------------------- ranlib ranlib gera um índice do conteúdo de um arquivo e armazena esta informação no próprio arquivo. O índice lista cada símbolo definido pelos arquivos-objetos vinculáveis pertencentes ao arquivo. ------------------------------------------------------------------------------- readelf readelf exibe informações sobre binários do tipo ELF. ------------------------------------------------------------------------------- size size lista os tamanhos das seções --e o tamanho total-- para cada um dos arquivos-objetos fornecidos. Por padrão, uma linha de informação é gerada para cada arquivo-objeto ou módulo em um arquivo. ------------------------------------------------------------------------------- strings Para cada arquivo fornecido, strings exibe as seqüências de caracteres imprimíveis com pelo menos 4 caracteres de comprimento (ou o número especificado em uma das opções do programa) seguidas por um caractere não-imprimível. Por padrão, ele apenas exibe as strings das seções inicializadas e carregadas dos arquivos-objetos. Para outros tipos de arquivo, ele imprime as strings do arquivo todo. strings é principalmente útil para determinar o conteúdo de arquivos que não estão em formato texto. ------------------------------------------------------------------------------- strip strip descarta todos ou determinados símbolos de arquivos-objetos. A lista de arquivos-objetos pode incluir arquivos contendo outros arquivos. Ao menos um arquivo-objeto deve ser fornecido. strip modifica os arquivos fornecidos, ao invés de fazer cópias com nomes diferentes dos arquivos modificados. ------------------------------------------------------------------------------- Descrições das bibliotecas libbfd libbfd é a biblioteca Descritora de Arquivos Binários (Binary File Descriptor). ------------------------------------------------------------------------------- libopcodes libopcodes é uma biblioteca nativa que lida com códigos de operação utilizados durante a compilação de utilitários como o objdump. Códigos de operação (opcodes) são, na verdade, "versões legíveis" das instruções do processador. ------------------------------------------------------------------------------- Dependências de instalação do Binutils Última verificação na versão 2.11.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, true, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Bison ------------------------------------------------------------------------------- Local Oficial para Download Bison (1.875): ftp://ftp.gnu.org/gnu/bison/ ------------------------------------------------------------------------------- Conteúdo de Bison Última verificação na versão 1.35. Bison é um gerador de analisadores (parser generator), um substituto para o yacc. Bison gera um programa que analisa a estrutura de um arquivo texto. Bison instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bison e yacc ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.35. ------------------------------------------------------------------------------- Descrições dos programas bison bison é um gerador de analisadores (parser generator), um substituto para o yacc. yacc significa Outro Compilador de Compiladores (Yet Another Compiler Compiler). O que é o bison então? É um programa que gera outro programa que analisa a estrutura de um arquivo texto. Ao invés de escrever o programa em si, o usuário especifica como as coisas devem ser conectadas e com estas regras um programa que analisa o arquivo texto é construído. Há vários exemplos onde certa estruturação é necessária e um deles é a calculadora. Dada a string: 1 + 2 * 3 Um humano pode facilmente chegar ao resultado 7. Por quê? Por causa da estrutura. Nosso cérebro sabe como interpretar a string. O computador não sabe e o bison é a ferramenta que o auxilia a entender, apresentando a string da seguinte forma ao compilador: + / \ * 1 / \ 2 3 Iniciando na base da árvore e percorrendo através dos números 2 e 3 que são ligados pelo sinal de multiplicação, o computador multiplica 2 e 3. O resultado desta multiplicação é memorizado e a próxima etapa que o computador vê é o resultado de 2*3 e o número 1 ligados pelo sinal de adição. Adicionando 1 ao resultado anterior resulta 7. No cálculo, as operações mais complexas podem ser quebradas neste formato de árvore e o computador simplesmente inicia na base e trabalha desta forma até o topo e retorna a resposta correta. Claro, bison não é apenas utilizado por calculadoras. ------------------------------------------------------------------------------- yacc Este script bash executa o bison usando a opção -y. Isto é feito com propósitos de compatibilidade com programas que utilizam o yacc ao invés do bison. ------------------------------------------------------------------------------- Dependências de instalação do Bison Última verificação na versão 1.31. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, head, tr, uniq ------------------------------------------------------------------------------- Bzip2 ------------------------------------------------------------------------------- Local Oficial para Download Bzip2 (1.0.2): http://sources.redhat.com/bzip2/ ------------------------------------------------------------------------------- Conteúdo de Bzip2 Última verificação na versão 1.0.2 Bzip2 é um compactador de arquivos com poder de compactação geralmente melhor que o do tradicional gzip. Bzip2 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bunzip2 (ligação para bzip2), bzcat (ligação para bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless e bzmore ------------------------------------------------------------------------------- Bibliotecas libbz2.a, libbz2.so (ligação para libbz2.so.1.0), libbz2.so.1.0 (ligação para libbz2.so.1.0.2) e libbz2.so.1.0.2 ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.0.2 ------------------------------------------------------------------------------- Descrições dos programas bunzip2 bunzip2 descompacta arquivos bzip2. ------------------------------------------------------------------------------- bzcat bzcat (ou bzip2 -dc) descompacta todos os arquivos fornecidos para a saída padrão. ------------------------------------------------------------------------------- bzcmp, bzdiff bzcmp e bzdiff são usados para invocar o programa cmp ou diff em arquivos bzip2. ------------------------------------------------------------------------------- bzegrep, bzfgrep, bzgrep bzegrep, bzfgrep e bzgrep invocam egrep, fgrep ou grep (respectivamente) em arquivos bzip2. ------------------------------------------------------------------------------- bzip2 bzip2 compacta arquivos usando o algoritmo Burrows-Wheeler de compressão de texto através da ordenação de blocos. A compactação é consideravelmente melhor que a dos compactadores convencionais baseados no algoritmo LZ77/LZ78 (como o tradicional utilitário gzip) e tem performance próxima a da família PPM de compactadores estatísticos. ------------------------------------------------------------------------------- bzip2recover bzip2recover recupera dados de arquivos bzip2 danificados. ------------------------------------------------------------------------------- bzless bzless é um filtro que permite a examinação de arquivos texto compactados ou planos, uma tela por vez, como o less. ------------------------------------------------------------------------------- bzmore bzmore é um filtro que permite a examinação de arquivos texto compactados ou planos, uma tela por vez, como o more. ------------------------------------------------------------------------------- Descrições das bibliotecas libbz2 libbz2 é a biblioteca para implementação de compressão de dados usando o algoritmo Burrows-Wheeler. ------------------------------------------------------------------------------- Dependências de instalação do Bzip2 Última verificação na versão 1.0.1. Bash: sh Binutils: ar, as, ld, ranlib Fileutils: cp, ln, rm Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Diffutils ------------------------------------------------------------------------------- Local Oficial para Download Diffutils (2.8.1): ftp://ftp.gnu.org/gnu/diffutils/ ------------------------------------------------------------------------------- Conteúdo de Diffutils Última verificação na versão 2.8.1. Os programas deste pacote exibem as diferenças entre dois arquivos ou diretórios. Seu uso mais comum é na criação de patches. Diffutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas cmp, diff, diff3 e sdiff ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.8.1. ------------------------------------------------------------------------------- Descrições dos programas cmp e diff cmp e diff comparam dois arquivos e relatam suas diferenças. Ambos possuem opções extras que comparam arquivos em diferentes situações. ------------------------------------------------------------------------------- diff3 A diferença entre diff e diff3 é que o diff compara dois arquivos, enquanto o diff3 compara três. ------------------------------------------------------------------------------- sdiff sdiff mescla dois arquivos e exibe os resultados interativamente. ------------------------------------------------------------------------------- Dependências de instalação do Diffutils Última verificação na versão 2.7. Bash: sh Binutils: ld, as Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: date, hostname Textutils: cat, tr ------------------------------------------------------------------------------- E2fsprogs ------------------------------------------------------------------------------- Local Oficial para Download E2fsprogs (1.32): ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/ http://download.sourceforge.net/e2fsprogs/ ------------------------------------------------------------------------------- Conteúdo de E2fsprogs Última verificação na versão 1.27. E2fsprogs provê utilitários para uso com o sistema de arquivos ext2. Ele também suporta o sistema ext3. E2fsprogs instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas badblocks, chattr, compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, fsck, fsck.ext2, fsck.ext3, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mklost+found, resize2fs, tune2fs e uuidgen ------------------------------------------------------------------------------- Bibliotecas libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so], libuuid. [a,so] ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.27. ------------------------------------------------------------------------------- Descrições dos programas badblocks badblocks é usado para procurar blocos danificados em um dispositivo (normalmente uma partição do disco). ------------------------------------------------------------------------------- chattr chattr modifica os atributos de arquivos em um sistema Linux ext2. ------------------------------------------------------------------------------- compile_et compile_et é usado para listar nomes de códigos de erro e as respectivas mensagens em um arquivo-fonte C próprio para uso com a biblioteca com_err. ------------------------------------------------------------------------------- debugfs O programa debugfs é um depurador do sistema de arquivos. Ele pode ser usado para examinar e modificar o estado de um sistema de arquivos ext2. ------------------------------------------------------------------------------- dumpe2fs dumpe2fs exibe informações de grupo sobre o superbloco e demais blocos para o sistema de arquivos presente em um dispositivo específico. ------------------------------------------------------------------------------- e2fsck e fsck.ext2 e2fsck e fsck.ext2 são usados para verificar e opcionalmente reparar sistemas de arquivos ext2. ------------------------------------------------------------------------------- e2image e2image é usado para salvar dados críticos do sistema de arquivos ext2 para um arquivo. ------------------------------------------------------------------------------- e2label e2label exibe ou modifica a etiqueta do sistema de arquivos ext2 localizado no dispositivo especificado. ------------------------------------------------------------------------------- fsck fsck é usado para verificar e opcionalmente reparar um sistema de arquivos do Linux. ------------------------------------------------------------------------------- fsck.ext3 fsck.ext3 é usado para verificar e opcionalmente reparar sistemas de arquivos Linux ext3. ------------------------------------------------------------------------------- lsattr lsattr lista os atributos de arquivos em um sistema de arquivos ext2. ------------------------------------------------------------------------------- mk_cmds O utilitário mk_cmds recebe um arquivo contendo uma tabela de comandos como entrada e produz um arquivo-fonte C como saída, próprio para ser usado com a biblioteca de subsistema, libss. ------------------------------------------------------------------------------- mke2fs e mkfs.ext2 mke2fs é usado para criar um sistema de arquivos Linux ext2 em um dispositivo (normalmente uma partição do disco). mkfs.ext2 faz o mesmo que mke2fs. ------------------------------------------------------------------------------- mkfs.ext3 mkfs.ext3 é usado para criar um sistema de arquivos ext3. ------------------------------------------------------------------------------- mklost+found mklost+found é usado para criar um diretório lost+found em um sistema de arquivos Linux ext2. mklost+found pré-reserva blocos de disco para o diretório, para torná-lo útil ao e2fsck. ------------------------------------------------------------------------------- resize2fs resize2fs é usado para redimensionar sistemas de arquivos ext2. ------------------------------------------------------------------------------- tune2fs tune2fs configura parâmetros ajustáveis em sistemas de arquivos Linux ext2. ------------------------------------------------------------------------------- uuidgen O programa uuidgen cria um novo identificador universalmente único (universally unique identifier, UUID), usando a biblioteca libuuid. O novo UUID pode razoavelmente ser considerado único entre todos os UUIDs criados, no sistema local e em outros sistemas, no passado e no futuro. ------------------------------------------------------------------------------- Descrições das bibliotecas libcom_err A rotina de exibição de erros comuns. ------------------------------------------------------------------------------- libe2p libe2p é usada por dumpe2fs, chattr e lsattr. ------------------------------------------------------------------------------- libext2fs A biblioteca ext2fs permite que programas em nível de usuário manipulem um sistema de arquivos ext2. ------------------------------------------------------------------------------- libss libss é usado por debugfs. ------------------------------------------------------------------------------- libuuid A biblioteca libuuid é usada para gerar identificadores únicos para objetos que podem ser acessíveis além do sistema local. ------------------------------------------------------------------------------- Dependências de instalação do E2fsprogs Última verificação na versão 1.25. Bash: sh Binutils: ar, as, ld, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, install, ln, mkdir, mv, rm, sync Gcc: cc, cc1, collect2, cpp0 Glibc: ldconfig Grep: egrep, grep Gzip: gzip Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, uname Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Ed ------------------------------------------------------------------------------- Local Oficial para Download Ed (0.2): ftp://ftp.gnu.org/gnu/ed/ Ed Patch (0.2): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Ed Última verificação na versão 0.2. GNU ed é um editor POSIX para linha de comando. Ed instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas ed e red (ligação para ed) ------------------------------------------------------------------------------- Descrições Última verificação na versão 0.2. ------------------------------------------------------------------------------- Descrições dos programas ed ed é um editor de texto para a linha de comando. Ele é usado para criar, exibir e modificar arquivos de texto. ------------------------------------------------------------------------------- red red é um ed restrito: ele pode editar apenas arquivos do diretório atual e não pode executar comandos do shell. ------------------------------------------------------------------------------- Dependências de instalação do Ed Última verificação na versão 0.2. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr ------------------------------------------------------------------------------- File ------------------------------------------------------------------------------- Local Oficial para Download File (3.39): ftp://ftp.gw.com/mirrors/pub/unix/file/ ------------------------------------------------------------------------------- Conteúdo de File Última verificação na versão 3.39. File é um utilitário usado para determinar tipos de arquivo. File instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas file ------------------------------------------------------------------------------- Descrições Última verificação na versão 3.39. ------------------------------------------------------------------------------- Descrições dos programas file file testa cada arquivo especificado na tentativa de classificá-lo. Há três categorias de testes, feitos nesta ordem: testes do sistema de arquivos, do número mágico (magic number) e do idioma. O primeiro teste bem-sucedido identifica o tipo de arquivo. ------------------------------------------------------------------------------- Dependências de instalação do File Última verificação na versão 3.37. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ln, ls, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Fileutils ------------------------------------------------------------------------------- Local Oficial para Download Fileutils (4.1): ftp://ftp.gnu.org/gnu/fileutils/ Fileutils Patch (4.1): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Fileutils Última verificação na versão 4.1. Fileutils é um pacote contendo programas básicos de manipulação de arquivos. Estão incluídos programas para listagem e criação de diretórios, alteração do horário de acesso ou modificação de arquivos, modificação de permissões, etc. Fileutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch e vdir ------------------------------------------------------------------------------- Descrições Última verificação na versão 4.1. ------------------------------------------------------------------------------- Descrições dos programas chgrp chgrp altera o grupo de cada arquivo dado para o grupo nomeado, o qual pode ser um nome ou identificação numérica de grupo. ------------------------------------------------------------------------------- chmod chmod altera as permissões de cada arquivo dado de acordo com o modo, o qual pode ser uma representação simbólica das mudanças a serem feitas ou um número octal que representa os padrões de bits das novas permissões. ------------------------------------------------------------------------------- chown chown modifica a posse de usuário e/ou grupo de cada arquivo dado. ------------------------------------------------------------------------------- cp cp copia arquivos de um lugar para outro. ------------------------------------------------------------------------------- dd dd copia um arquivo (da entrada padrão para a saída padrão, se nada for especificado) com um tamanho de bloco especificado pelo usuário, ao mesmo tempo que opcionalmente efetua conversões nele. ------------------------------------------------------------------------------- df df exibe a quantidade de espaço disponível em disco no sistema de arquivos que contém cada nome de arquivo dado como argumento. Se não for dado nenhum nome de arquivo, o espaço disponível em todos os sistemas de arquivos montados é mostrado. ------------------------------------------------------------------------------- dir, ls e vdir dir e vdir são versões de ls com diferentes formatos de saída. Esses programas listam cada nome de arquivo ou diretório. O conteúdo de cada diretório é ordenado alfabeticamente. Para ls, os arquivos são, por padrão, listados em colunas ordenadas verticalmente caso a saída padrão seja um terminal, do contrário são listados um em cada linha. Para vdir, os arquivos são, por padrão, listados em formato longo. ------------------------------------------------------------------------------- dircolors dircolors retorna os comandos para ajustar a variável de ambiente LS_COLOR. A variável LS_COLOR é usada para trocar o esquema de cores padrão usado por ls e utilitários relacionados. ------------------------------------------------------------------------------- du du mostra a quantidade de espaço em disco usada por cada arquivo ou diretório listado na linha de comando e por cada um de seus subdiretórios. ------------------------------------------------------------------------------- install install copia arquivos e ajusta seus atributos de permissão e, se possível, o dono e o grupo. ------------------------------------------------------------------------------- ln ln cria ligações simbólicas (soft links) e absolutas (hard links) entre arquivos. ------------------------------------------------------------------------------- mkdir mkdir cria diretórios com um dado nome. ------------------------------------------------------------------------------- mkfifo mkfifo cria uma fila ("FIFO") com cada nome dado. ------------------------------------------------------------------------------- mknod mknod cria uma fila ("FIFO"), um arquivo especial de caractere ou um arquivo especial de bloco com o nome dado. ------------------------------------------------------------------------------- mv mv move arquivos de um diretório para outro ou renomeia arquivos, dependendo dos argumentos dados. ------------------------------------------------------------------------------- rm rm remove arquivos ou diretórios. ------------------------------------------------------------------------------- rmdir rmdir remove diretórios, caso eles estejam vazios. ------------------------------------------------------------------------------- shred shred apaga de forma segura um arquivo, sobrescrevendo-o primeiro de forma que o seu conteúdo não possa ser recuperado. ------------------------------------------------------------------------------- sync sync escreve os blocos modificados no disco e atualiza o superbloco. ------------------------------------------------------------------------------- touch touch modifica os horários de acesso e modificação de cada arquivo dado para a hora atual. Arquivos que não existem são criados como arquivos vazios. ------------------------------------------------------------------------------- Dependências de instalação do Fileutils Última verificação na versão 4.1. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr ------------------------------------------------------------------------------- Findutils ------------------------------------------------------------------------------- Local Oficial para Download Findutils (4.1): ftp://ftp.gnu.org/gnu/findutils/ Findutils Patch (4.1): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ Findutils Segfault Patch (4.1): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Findutils Última verificação na versão 4.1. O pacote Findutils contém programas para a procura de arquivos, tanto em tempo real (fazendo uma busca recursiva através dos diretórios e mostrando apenas os arquivos que combinam com as especificações) ou através de uma base de dados. Findutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas bigram, code, find, frcode, locate, updatedb e xargs ------------------------------------------------------------------------------- Descrições Última verificação na versão 4.1. ------------------------------------------------------------------------------- Descrições dos programas bigram bigram é usado juntamente com código para produzir bases de dados do locate no estilo antigo. ------------------------------------------------------------------------------- code code é o antecessor do frcode. Ele era usado em bases de dados do locate no estilo antigo. ------------------------------------------------------------------------------- find O programa find procura por arquivos em uma hierarquia de diretórios que coincidem com um certo critério. Se nenhum critério é fornecido, ele lista todos os arquivos do diretório atual e dos seus subdiretórios. ------------------------------------------------------------------------------- frcode frcode é chamado pelo updatedb para compactar uma lista de nomes de arquivos usando 'front-compression', que reduz o tamanho da base de dados entre 4 e 5 vezes. ------------------------------------------------------------------------------- locate locate varre uma base de dados que contém todos os arquivos e diretórios de um sistema de arquivos. Ele lista os arquivos e diretórios desta base de dados que coincidem com um certo critério. Se um usuário está procurando por um arquivo, este programa varrerá a base de dados e exibirá a localização exata do arquivo. Isto apenas faz sentido se a base de dados do locate está bem atualizada, senão ele exibirá informações desatualizadas. ------------------------------------------------------------------------------- updatedb O programa updatedb atualiza a base de dados do locate. Ele varre o sistema de arquivos inteiro (incluindo outros sistemas de arquivos montados, a não ser que tenha sido configurado para não fazer tal coisa) e põe cada arquivo e diretório que encontra dentro da base de dados usada pelo programa locate, que recupera esta informação. É boa prática atualizar esta base de dados uma vez por dia para tê-la atualizada sempre que for necessário. ------------------------------------------------------------------------------- xargs O xargs aplica um comando em uma lista de arquivos. Se há a necessidade de executar o mesmo comando em múltiplos arquivos, uma lista pode ser criada com os seus nomes (um por linha) e o xargs aplicará o comando nestes arquivos. ------------------------------------------------------------------------------- Dependências de instalação do Findutils Última verificação na versão 4.1. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Patch: patch Sed: sed Sh-utils: basename, date, echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Flex ------------------------------------------------------------------------------- Local Oficial para Download Flex (2.5.4a): ftp://ftp.gnu.org/non-gnu/flex/ ------------------------------------------------------------------------------- Conteúdo de Flex Última verificação na versão 2.5.4a. O pacote Flex é usado para gerar programas que reconhecem padrões em textos. Flex instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas flex, flex++ (ligação para flex) e lex ------------------------------------------------------------------------------- Bibliotecas libfl.a ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.5.4a. ------------------------------------------------------------------------------- Descrições dos programas flex flex é uma ferramenta que gera programas que reconhecem padrões em textos. Reconhecimento de padrões é muito útil em muitos aplicativos. Um usuário fornece regras sobre o que analisar e o flex fará um programa que verifica estes padrões. A razão para pessoas utilizarem o flex deve-se ao fato de que é muito mais fácil fornecer regras para o que deve ser analisado do que escrever o programa em si que procura o texto. ------------------------------------------------------------------------------- flex++ flex++ invoca uma versão do flex que é usada exclusivamente por analisadores de código C++. ------------------------------------------------------------------------------- lex Nós criamos um script bash chamado lex que executa o flex usando a opção -l. Isto tem propósitos de compatibilidade com programas que usam o lex ao invés do flex. ------------------------------------------------------------------------------- Descrições das bibliotecas libfl libfl é a biblioteca do flex. ------------------------------------------------------------------------------- Dependências de instalação do Flex Última verificação na versão 2.5.4a. Bash: sh Binutils: ar, as, ld, ranlib Bison: bison Diffutils: cmp Fileutils: chmod, cp, install, ln, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Gawk ------------------------------------------------------------------------------- Local Oficial para Download Gawk (3.1.1): ftp://ftp.gnu.org/pub/gnu/gawk/ Gawk Patch (3.1.1-3): http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Gawk Última verificação na versão 3.1.1. Gawk é uma implementação do awk, usado para manipular arquivos de texto. Gawk instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat ------------------------------------------------------------------------------- Descrições Última verificação na versão 3.1.1. ------------------------------------------------------------------------------- Descrições dos programas awk awk é uma ligação simbólica para gawk. ------------------------------------------------------------------------------- gawk, gawk-3.1.1 gawk é a implementação GNU do awk, uma linguagem de análise e processamento de padrões. ------------------------------------------------------------------------------- grcat grcat concatena a base de dados de grupos, /etc/group. ------------------------------------------------------------------------------- igawk igawk é um script shell que adiciona ao gawk a habilidade de incluir arquivos. ------------------------------------------------------------------------------- pgawk, pgawk-3.1.1 pgawk é a versão do gawk para perfis. ------------------------------------------------------------------------------- pwcat pwcat concatena a base de dados de senhas, /etc/passwd. ------------------------------------------------------------------------------- Dependências de instalação do Gawk Última verificação na versão 3.1.0. (Dependências ainda não verificadas.) ------------------------------------------------------------------------------- GCC ------------------------------------------------------------------------------- Local Oficial para Download GCC (3.2.1): ftp://ftp.gnu.org/pub/gnu/gcc/ ------------------------------------------------------------------------------- Conteúdo de GCC Última verificação na versão 3.1. O pacote GCC contém a coleção de compiladores GNU, incluindo compiladores C e C++. GCC instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas c++, c++filt, cc (ligação para gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov e tradcpp0 ------------------------------------------------------------------------------- Bibliotecas libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a ------------------------------------------------------------------------------- Descrições Última verificação na versão 3.1. ------------------------------------------------------------------------------- Descrições dos programas cc, cc1, gcc Estes programas formam o compilador C. Um compilador traduz código-fonte em formato texto para um formato que um computador possa entender. Após o código-fonte ser compilado em um arquivo-objeto, um vinculador (linker) criará um arquivo executável a partir de um ou mais arquivos-objetos gerados pelo compilador. ------------------------------------------------------------------------------- c++, cc1plus, g++ Estes programas formam o compilador C++, equivalente ao cc, gcc, etc. ------------------------------------------------------------------------------- c++filt A linguagem C++ provê sobrecarregamento de funções (function overloading), o que significa que é possível escrever várias funções com o mesmo nome (desde que cada uma tenha parâmetros de diferentes tipos). Todos os nomes de funções C++ são codificadas em uma etiqueta assembly de baixo nível (este processo é conhecido como "mangling"). O programa c++filt faz o mapeamento inverso: ele decodifica nomes em baixo nível para nomes ao nível de usuário, assim o vinculador pode evitar o confrontamento das funções sobrecarregadas. ------------------------------------------------------------------------------- collect2 collect2 auxilia na compilação de construtores. ------------------------------------------------------------------------------- cpp, cpp0 cpp pré-processa um arquivo-fonte, incluindo o conteúdo de arquivos-cabeçalhos. Apenas adicione uma linha, como #include , ao seu arquivo. O pré-processador inserirá o conteúdo do arquivo incluído dentro do arquivo-fonte. ------------------------------------------------------------------------------- gccbug gccbug é um script shell utilizado para simplificar a criação de relatórios de bug. ------------------------------------------------------------------------------- gcov gcov analisa programas para ajudar na criação de código mais eficiente e rápido através da otimização. ------------------------------------------------------------------------------- tradcpp0 Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Descrições das bibliotecas libgcc, libgcc_eh, libgcc_s Arquivos de suporte em tempo de execução para o gcc. ------------------------------------------------------------------------------- libiberty libiberty é uma coleção de sub-rotinas usadas por vários programas GNU, incluindo getopt, obstack, strerror, strtol e strtoul. ------------------------------------------------------------------------------- libstdc++ libstdc++ é a biblioteca C++. É utilizada por programas C++ e contém funções freqüentemente usadas. Desta forma o programador não precisa escrever certas funções (como a escrita de uma string de texto na tela) do zero toda vez que ele cria um programa. ------------------------------------------------------------------------------- libsupc++ libsupc++ provê suporte à linguagem de programação C++. Entre outras coisas, libsupc++ contém rotinas para manipulação de exceções. ------------------------------------------------------------------------------- Dependências de instalação do GCC Última verificação na versão 2.95.3. Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Find: find Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tail, tr ------------------------------------------------------------------------------- Gettext ------------------------------------------------------------------------------- Local Oficial para Download Gettext (0.11.5): ftp://ftp.gnu.org/gnu/gettext/ ------------------------------------------------------------------------------- Conteúdo de Gettext Última verificação na versão 0.11.2. O pacote Gettext é usado para internacionalização e localização. Programas podem ser compilados com Suporte à Língua Nativa (NLS, Native Language Support), que os habilita a exibir mensagens na língua nativa do usuário. Gettext instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas config.charset, config.rpath, gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget, user-email e xgettext ------------------------------------------------------------------------------- Bibliotecas libgettextlib[a,so], libgettextsrc[a,so] ------------------------------------------------------------------------------- Descrições Última verificação na versão 0.11.2. ------------------------------------------------------------------------------- Descrições dos programas config.charset O script config.charset exibe uma tabela de apelidos para codificação de caracteres. ------------------------------------------------------------------------------- config.rpath O script config.rpath exibe um conjunto de variáveis dependentes do sistema, descrevendo como configurar os caminhos de procura de bibliotecas compartilhadas em um executável. ------------------------------------------------------------------------------- gettext O pacote gettext é usado para internacionalização (também conhecido como i18n) e localização (também conhecido como l10n). Programas podem ser compilados com suporte à língua nativa (NLS, Native Language Support), que os habilita a exibir mensagens na língua nativa do usuário ao invés da língua inglesa padrão. ------------------------------------------------------------------------------- gettextize O programa gettextize copia todos os arquivos gettext padrão para um diretório. É usado para criar um pacote com traduções gettext. ------------------------------------------------------------------------------- hostname O programa hostname exibe o nome do computador de várias formas. ------------------------------------------------------------------------------- msgattrib O programa msgattrib filtra as mensagens de um catálogo de tradução de acordo com os seus atributos. ------------------------------------------------------------------------------- msgcat O programa msgcat procura mensagens que são comuns em várias traduções cruas. ------------------------------------------------------------------------------- msgcmp O programa msgcmp compara dois arquivos de tradução crus. ------------------------------------------------------------------------------- msgcomm O programa msgcomm procura mensagens que aparecem em vários arquivos .po. É usado para comparar a forma como a tradução é feita. ------------------------------------------------------------------------------- msgconv O programa msgconv converte um catálogo de tradução para uma codificação de caractere diferente. ------------------------------------------------------------------------------- msgen O programa msgen cria um catálogo de tradução para o inglês. ------------------------------------------------------------------------------- msgexec O programa msgexec aplica um comando para todas as traduções de um catálogo. ------------------------------------------------------------------------------- msgfilter O programa msgfilter aplica um filtro para todas as traduções de um catálogo. ------------------------------------------------------------------------------- msgfmt O programa msgfmt compila uma tradução crua em código de máquina. É usado para criar o arquivo final de tradução do programa/pacote. ------------------------------------------------------------------------------- msggrep O programa msggrep extrai todas as mensagens de um catálogo de tradução que satisfazem um padrão dado ou pertencem a algum arquivo-fonte fornecido. ------------------------------------------------------------------------------- msginit O programa msginit cria um novo arquivo PO, inicializando a meta-informação com valores do ambiente do usuário. ------------------------------------------------------------------------------- msgmerge O programa msgmerge combina duas traduções cruas em um único arquivo. É usado para atualizar a tradução crua com trechos da fonte. ------------------------------------------------------------------------------- msgunfmt O programa msgunfmt descompila arquivos de tradução em texto traduzido cru. Ele pode ser usado caso apenas as versões compiladas estejam disponíveis. ------------------------------------------------------------------------------- msguniq O programa msguniq unifica traduções duplicadas em um catálogo. ------------------------------------------------------------------------------- ngettext O programa ngettext exibe traduções em língua nativa de uma mensagem textual onde a forma gramatical depende de um número. ------------------------------------------------------------------------------- project-id O script project-id imprime uma identificação do pacote. ------------------------------------------------------------------------------- team-address O script team-address imprime o endereço do time de tradução para a saída padrão e exibe instruções adicionais. ------------------------------------------------------------------------------- trigger O script trigger testa se o pacote atual é do GNOME ou do KDE. ------------------------------------------------------------------------------- urlget O programa urlget captura o conteúdo de uma URL. ------------------------------------------------------------------------------- user-email O script user-email exibe o endereço de e-mail do usuário, com sua confirmação. ------------------------------------------------------------------------------- xgettext O programa xgettext extrai as linhas de mensagem de arquivos C. É usado para fazer o primeiro modelo de tradução. ------------------------------------------------------------------------------- Descrições das bibliotecas libgettextlib Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- libgettextsrc Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Dependências de instalação do Gettext Última verificação na versão 0.10.40. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Bison: bison Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Glibc ------------------------------------------------------------------------------- Local Oficial para Download Glibc (2.3.1): ftp://ftp.gnu.org/gnu/glibc/ Glibc-linuxthreads (2.3.1): ftp://ftp.gnu.org/gnu/glibc/ Glibc Root/Perl Patch (2.3.1): http://downloads.linuxfromscratch.org/ Glibc Libnss Patch (2.3.1): http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Glibc Última verificação na versão 2.2.5. Glibc é uma biblioteca C que provê funções básicas como open, malloc, printf, etc. Esta biblioteca é usada por todos os programas dinamicamente vinculados. Glibc instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump e zic ------------------------------------------------------------------------------- Bibliotecas ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so e libutil.[a,so] ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.2.5. ------------------------------------------------------------------------------- Descrições dos programas catchsegv catchsegv é usado para obter informações da pilha quando um programa termina com falha de segmentação. ------------------------------------------------------------------------------- gencat gencat gera catálogos de mensagens. ------------------------------------------------------------------------------- getconf getconf exibe os valores da configuração do sistema de variáveis específicas do sistema de arquivos. ------------------------------------------------------------------------------- getent getent obtém entradas de uma base de dados administrativa. ------------------------------------------------------------------------------- glibcbug glibcbug cria um relatório de bug sobre o Glibc e o envia para o endereço de e-mail adequado. ------------------------------------------------------------------------------- iconv iconv faz conversões de conjunto de caracteres. ------------------------------------------------------------------------------- iconvconfig iconvconfig cria um módulo de configuração de rápido acesso para o iconv. ------------------------------------------------------------------------------- ldconfig ldconfig configura as ligações de tempo de execução do vinculador dinâmico. ------------------------------------------------------------------------------- ldd ldd exibe as bibliotecas compartilhadas requeridas por cada programa ou biblioteca especificada na linha de comando. ------------------------------------------------------------------------------- lddlibc4 lddlibc4 auxilia o ldd na manipulação de arquivos-objetos. ------------------------------------------------------------------------------- locale locale é um programa Perl que diz ao compilador para habilitar (ou desabilitar) o uso de localidades POSIX para operações embutidas (built-in). ------------------------------------------------------------------------------- localedef localedef compila especificações de localidade. ------------------------------------------------------------------------------- mtrace Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- nscd nscd é um daemon que provê um cache para os pedidos de serviços de nomes mais comuns. ------------------------------------------------------------------------------- nscd_nischeck nscd_nischeck verifica se o modo seguro é ou não necessário para pesquisas NIS+. ------------------------------------------------------------------------------- pcprofiledump pcprofiledump exibe informação gerada por perfis PC. ------------------------------------------------------------------------------- pt_chown pt_chown configura o dono, grupo e permissão de acesso do pseudo-terminal escravo correspondente ao pseudo-terminal mestre fornecido pelo descritor de arquivo '3'. Este é o programa auxiliar da função 'grantpt'. Ele não é destinado à execução direta a partir da linha de comando. ------------------------------------------------------------------------------- rpcgen rpcgen gera código C para a implementação do protocolo RPC. ------------------------------------------------------------------------------- rpcinfo rpcinfo faz uma chamada RPC para um servidor RPC. ------------------------------------------------------------------------------- sln sln liga simbolicamente o destino à origem. Ele é estaticamente vinculado, não precisando de vinculação dinâmica. Por isso, sln é útil para fazer ligações simbólicas para bibliotecas dinâmicas se o sistema dinâmico de ligação não estiver funcional por algum motivo. ------------------------------------------------------------------------------- sprof sprof lê e exibe dados de perfis de objetos compartilhados. ------------------------------------------------------------------------------- tzselect tzselect pede informações ao usuário sobre a sua localização atual e exibe na saída padrão a descrição do fuso horário resultante. ------------------------------------------------------------------------------- xtrace xtrace investiga a execução de um programa exibindo a função atualmente executada. ------------------------------------------------------------------------------- zdump zdump exibe o fuso horário. ------------------------------------------------------------------------------- zic zic é o compilador do fuso horário. ------------------------------------------------------------------------------- Descrições das bibliotecas ld.so ld.so é o programa auxiliar para executáveis de bibliotecas compartilhadas. ------------------------------------------------------------------------------- libBrokenLocale Usados por programas como o Mozilla para a correção de localidades defeituosas. ------------------------------------------------------------------------------- libSegFault libSegFault é um manipulador do sinal de falha de segmentação. Ele tenta capturar falhas de segmentação. ------------------------------------------------------------------------------- libanl libanl é uma biblioteca assíncrona de pesquisa de nomes. ------------------------------------------------------------------------------- libbsd-compat libbsd-compat provê a portabilidade necessária para executar certos programas no Linux. ------------------------------------------------------------------------------- libc, libc_nonshared Estes arquivos constituem a biblioteca C principal. Ela é uma coleção de funções comumente usadas em programas. Desta forma, um programador não precisa criar suas próprias funções para cada tarefa. As rotinas mais comuns, como escrever uma mensagem na tela, já estão presentes e à disposição do programador. A biblioteca C (na verdade, quase toda biblioteca) vem em dois tipos: dinâmico e estático. Em resumo, quando um programa usa uma biblioteca C estática, o código da biblioteca C é copiado para dentro do arquivo executável. Quando um programa utilizar uma biblioteca dinâmica, o executável não conterá o código da biblioteca C, ao invés disso terá uma rotina que carrega as funções da biblioteca no momento em que o programa é executado. Isto provoca uma diminuição considerável no tamanho de um programa. A documentação que vem com a biblioteca C descreve isto em mais detalhes, já que é complicado explicar aqui em uma ou duas linhas. ------------------------------------------------------------------------------- libcrypt libcrypt é a biblioteca de criptografia. ------------------------------------------------------------------------------- libdl libdl é a biblioteca de interface de vinculação dinâmica. ------------------------------------------------------------------------------- libg libg é uma biblioteca de tempo de execução para o g++. ------------------------------------------------------------------------------- libieee libieee é a biblioteca de ponto flutuante IEEE. ------------------------------------------------------------------------------- libm libm é a biblioteca matemática. ------------------------------------------------------------------------------- libmcheck libmcheck contém código executado na inicialização. ------------------------------------------------------------------------------- libmemusage libmemusage é usado por memusage para ajudar a coletar informação sobre uso da memória por um programa. ------------------------------------------------------------------------------- libnsl libnsl é a biblioteca de serviços de rede. ------------------------------------------------------------------------------- libnss_compat, libnss_dns, libnss_files, libnss_hesiod, libnss_nis, libnss_nisplus A idéia básica é pôr a implementação de diferentes serviços oferecidos para acesso de base de dados em módulos separados. Isto tem algumas vantagens: * contribuidores podem adicionar novos serviços sem adicioná-los à biblioteca C GNU, * os módulos podem ser atualizados separadamente, * o tamanho da biblioteca C fica menor. ------------------------------------------------------------------------------- libpcprofile Código usado pelo kernel para calcular o tempo de CPU gasto em funções, linhas de código-fonte e instruções. ------------------------------------------------------------------------------- libpthread A biblioteca POSIX de processos. ------------------------------------------------------------------------------- libresolv Funções destas bibliotecas permitem a criação, envio e interpretação de pacotes de servidores DNS da Internet. ------------------------------------------------------------------------------- librpcsvc Funções desta biblioteca provêem serviços RPC variados. ------------------------------------------------------------------------------- librt Funções desta biblioteca provêem muitas das interfaces especificadas pela Extensão em Tempo Real POSIX.1b. ------------------------------------------------------------------------------- libthread_db Funções desta biblioteca são úteis para a construção de depuradores para programas multiprocessados. ------------------------------------------------------------------------------- libutil Contém código para funções "padronizadas" usadas em diferentes utilitários Unix. ------------------------------------------------------------------------------- Dependências de instalação do Glibc Última verificação na versão 2.2.5. Bash: sh Binutils: ar, as, ld, ranlib, readelf Diffutils: cmp Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch Gcc: cc, cc1, collect2, cpp, gcc Grep: egrep, grep Gzip: gzip Make: make Gawk: gawk Sed: sed Sh-utils: date, expr, hostname, pwd, uname Texinfo: install-info, makeinfo Textutils: cat, cut, sort, tr ------------------------------------------------------------------------------- Grep ------------------------------------------------------------------------------- Local Oficial para Download Grep (2.5): ftp://ftp.gnu.org/gnu/grep/ ------------------------------------------------------------------------------- Conteúdo de Grep Última verificação na versão 2.5. Grep é usado para exibir linhas de um arquivo que satisfazem determinado padrão. Grep instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas egrep (ligação para grep), fgrep (ligação para grep) e grep ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.5. ------------------------------------------------------------------------------- Descrições dos programas egrep egrep exibe linhas de arquivos que satisfazem a um padrão estendido de expressão regular. ------------------------------------------------------------------------------- fgrep fgrep exibe linhas de arquivos que satisfazem a uma lista fixa de strings, separadas por novas linhas (newlines). ------------------------------------------------------------------------------- grep grep exibe linhas de arquivos que satisfazem a um padrão básico de expressão regular. ------------------------------------------------------------------------------- Dependências de instalação do Grep Última verificação na versão 2.4.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Groff ------------------------------------------------------------------------------- Local Oficial para Download Groff (1.18.1): ftp://ftp.gnu.org/gnu/groff/ ------------------------------------------------------------------------------- Conteúdo de Groff Última verificação na versão 1.17.2. O pacote Groff contém vários programas para processamento de texto. Groff converte texto puro e comandos especiais para determinado formato, como o que você vê em uma página de manual. Groff instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas addftinfo, afmtodit, eqn, geqn (ligação para eqn), grn, grodvi, groff, grog, grolbp, grolj4, grops, grotty, gtbl (ligação para tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff e zsoelim (ligação para soelim) ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.17.2. ------------------------------------------------------------------------------- Descrições dos programas addftinfo addftinfo lê um arquivo de fontes troff e adiciona informações sobre tamanho de fontes que são usadas pelo sistema groff. ------------------------------------------------------------------------------- afmtodit afmtodit cria um arquivo de fontes para uso com o groff e grops. ------------------------------------------------------------------------------- eqn eqn compila descrições de equações embutidas em arquivos de entrada troff em comandos que são entendidos pelo troff. ------------------------------------------------------------------------------- geqn geqn é a implementação GNU do eqn. ------------------------------------------------------------------------------- grn grn é um pré-processador do groff para arquivos gremlin. ------------------------------------------------------------------------------- grodvi grodvi é um driver para o groff que provê o formato dvi do TeX. ------------------------------------------------------------------------------- groff groff é um front-end para o sistema de formatação de documentos groff. Normalmente ele executa o programa troff e um pós-processador apropriado para o dispositivo selecionado. ------------------------------------------------------------------------------- grog grog lê arquivos e detecta quais das opções -e, -man, -me, -mm, -ms, -p, -s e -t do groff são necessárias para a impressão de arquivos, e exibe o comando groff na saída padrão, incluindo aquelas opções. ------------------------------------------------------------------------------- grolbp grolbp é um driver para o groff para impressoras Canon CAPSL (séries LBP-4 e LBP-8 de impressoras a laser). ------------------------------------------------------------------------------- grolj4 grolj4 é um driver para o groff que produz saída no formato PCL5 apropriado para uma impressora HP Laserjet 4. ------------------------------------------------------------------------------- grops grops traduz a saída do GNU troff para Postscript. ------------------------------------------------------------------------------- grotty grotty traduz a saída do GNU troff para um formato apropriado para dispositivos tipo máquina de escrever. ------------------------------------------------------------------------------- gtbl gtbl é a implementação GNU do tbl. ------------------------------------------------------------------------------- hpftodit hpftodit cria um arquivo de fontes para uso com o groff -Tlj4 a partir de um arquivo de tamanho de fontes HP. ------------------------------------------------------------------------------- indxbib indxbib cria um índice remissivo para base de dados bibliográficos em um arquivo para uso com refer, lookbib e lkbib. ------------------------------------------------------------------------------- lkbib lkbib procura referências em bases de dados bibliográficos que contêm palavras-chaves específicas e exibe as referências encontradas. ------------------------------------------------------------------------------- lookbib lookbib exibe uma linha de comando na saída de erros padrão (a não ser que a saída padrão não seja um terminal), lê da entrada padrão uma linha contendo um conjunto de caracteres, procura por referências contendo estes caracteres em bases de dados bibliográficos em um arquivo especificado, exibe na saída padrão as referências encontradas e repete este processo até o final do arquivo. ------------------------------------------------------------------------------- mmroff mmroff é um pré-processador simples para o groff. ------------------------------------------------------------------------------- neqn O script neqn formata equações para saída ASCII. ------------------------------------------------------------------------------- nroff O script nroff emula o comando nroff usando o groff. ------------------------------------------------------------------------------- pfbtops pfbtops traduz uma fonte Postscript no formato .pfb para ASCII. ------------------------------------------------------------------------------- pic pic compila descrições de figuras embutidas em arquivos de entrada troff ou TeX em comandos que são entendidos pelo TeX ou troff. ------------------------------------------------------------------------------- pre-grohtml e post-grohtml pre- e post-grohtml traduz a saída do GNU troff para HTML. ------------------------------------------------------------------------------- refer refer copia o conteúdo de um arquivo para a saída padrão, exceto linhas entre . [ e .], interpretadas como citações, e linhas entre .R1 e .R2, interpretadas como comandos que definem como as citações serão processadas. ------------------------------------------------------------------------------- soelim soelim lê arquivos e substitui linhas na forma .so arquivo pelo conteúdo de arquivo. ------------------------------------------------------------------------------- tbl tbl compila descrições de tabelas embutidas em arquivos de entrada troff em comandos que são entendidos pelo troff. ------------------------------------------------------------------------------- tfmtodit tfmtodit cria um arquivo de fontes para uso com groff -Tdvi. ------------------------------------------------------------------------------- troff troff é altamente compatível com o Unix troff. Normalmente ele deve ser invocado usando o comando groff, que irá executar também pré e pós-processadores na ordem apropriada e com as opções apropriadas. ------------------------------------------------------------------------------- zsoelim zsoelim é a implementação GNU do soelim. ------------------------------------------------------------------------------- Dependências de instalação do Groff Última verificação na versão 1.17.2. Bash: sh Binutils: ar, as, ld, ranlib Bison: bison Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, touch Gcc: cc1, cc1plus, collect2, cpp0, g++, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, date, echo, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Gzip ------------------------------------------------------------------------------- Local Oficial para Download Gzip (1.2.4a): ftp://ftp.gnu.org/gnu/gzip/ Gzip Patch (1.2.4b): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Gzip Última verificação na versão 1.2.4a. O pacote Gzip contém programas para a compactação e descompactação de arquivos usando o algoritmo Lempel-Ziv (LZ77). Gzip instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas gunzip (ligação para gzip), gzexe, gzip, uncompress (ligação para gunzip), zcat (ligação para gzip), zcmp, zdiff, zforce, zgrep, zmore e znew ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.2.4a. ------------------------------------------------------------------------------- Descrições dos programas gunzip, uncompress gunzip e uncompress descompacta arquivos que são compactados com o gzip. ------------------------------------------------------------------------------- gzexe gzexe permite a você compactar executáveis que são descompactados automaticamente ao serem executados (ao custo de perda de performance). ------------------------------------------------------------------------------- gzip gzip reduz o tamanho dos arquivos especificados usando a codificação Lempel-Ziv (LZ77). ------------------------------------------------------------------------------- zcat zcat descompacta e escreve para a saída padrão uma lista de arquivos ou um arquivo sendo lido da entrada padrão. ------------------------------------------------------------------------------- zcmp zcmp invoca o programa cmp em arquivos compactados. ------------------------------------------------------------------------------- zdiff zdiff invoca o programa diff em arquivos compactados. ------------------------------------------------------------------------------- zforce zforce força uma extensão .gz em todos os arquivos gzip, assim o gzip não irá compactá-los duas vezes. Isto pode ser útil para arquivos com nomes truncados após uma transferência de arquivos. ------------------------------------------------------------------------------- zgrep zgrep invoca o programa grep em arquivos compactados. ------------------------------------------------------------------------------- zmore zmore é um filtro que permite a examinação de arquivos texto compactados ou planos, uma tela por vez (similar ao programa more). ------------------------------------------------------------------------------- znew znew recompacta arquivos no formato .Z (compress) para o .gz (gzip). ------------------------------------------------------------------------------- Dependências de instalação do Gzip Última verificação na versão 1.2.4a. Bash: sh Binutils: as, ld, nm Fileutils: chmod, cp, install, ln, mv, rm Gcc: cc1, collect2, cpp, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr ------------------------------------------------------------------------------- Kbd ------------------------------------------------------------------------------- Local Oficial para Download Kbd (1.08): ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/ Kbd Patch (1.08): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Kbd Última verificação na versão 1.06. Kbd contém arquivos de mapeamento de teclas e utilitários para o teclado. Kbd instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chvt, deallocvt, dumpkeys, fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (ligação para psfxtable), psfgettable (ligação para psfxtable), psfstriptable (ligação para psfxtable), psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, showfont, showkey, unicode_start e unicode_stop ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.06. ------------------------------------------------------------------------------- Descrições dos programas chvt chvt modifica o terminal virtual de fundo. ------------------------------------------------------------------------------- deallocvt deallocvt libera terminais virtuais não usados. ------------------------------------------------------------------------------- dumpkeys dumpkeys exibe as tabelas de conversão do teclado. ------------------------------------------------------------------------------- fgconsole fgconsole exibe o número do terminal virtual ativo. ------------------------------------------------------------------------------- getkeycodes getkeycodes exibe a tabela de mapeamento scancode-para-keycode do kernel. ------------------------------------------------------------------------------- getunimap getunimap exibe o unimap que está sendo usado. ------------------------------------------------------------------------------- kbd_mode kbd_mode exibe ou configura o modo do teclado. ------------------------------------------------------------------------------- kbdrate kbdrate configura a velocidade de repetição e espera do teclado. ------------------------------------------------------------------------------- loadkeys loadkeys carrega as tabelas de conversão do teclado. ------------------------------------------------------------------------------- loadunimap loadunimap carrega a tabela de mapeamento unicode-para-fonte do kernel. ------------------------------------------------------------------------------- mapscrn mapscrn carrega a tabela de saída de caractere definida pelo usuário dentro do driver do console. Note que isto está obsoleto e que suas funcionalidades estão presentes no setfont. ------------------------------------------------------------------------------- openvt openvt inicia um programa em um novo terminal virtual (VT). ------------------------------------------------------------------------------- psfaddtable, psfgettable, psfstriptable, psfxtable Estes são um conjunto de ferramentas para a manipulação de tabelas de caracteres Unicode para fontes do console. ------------------------------------------------------------------------------- resizecons resizecons modifica a configuração do kernel para o tamanho do console. ------------------------------------------------------------------------------- setfont Isto permite a você modificar as fontes EGA/VGA do console. ------------------------------------------------------------------------------- setkeycodes setkeycodes carrega as entradas da tabela de mapeamento scancode-para-keycode do kernel. ------------------------------------------------------------------------------- setleds setleds configura os LEDs do teclado. Muitas pessoas acham isto útil para ter o numlock habilitado por padrão. ------------------------------------------------------------------------------- setlogcons setlogcons envia mensagens do kernel para o console. ------------------------------------------------------------------------------- setmetamode setmetamode define o funcionamento da tecla alt (meta) do teclado. ------------------------------------------------------------------------------- setvesablank Isto permite a você configurar o protetor de tela do hardware (apenas uma tela vazia). ------------------------------------------------------------------------------- showfont showfont exibe dados sobre uma fonte. A informação mostrada inclui as propriedades, tamanho de caracteres e mapeamento de bits dos caracteres das fontes. ------------------------------------------------------------------------------- showkey showkey examina os códigos de mapeamento e de teclas enviados pelo teclado. ------------------------------------------------------------------------------- unicode_start unicode_start põe o console em modo Unicode. ------------------------------------------------------------------------------- unicode_stop unicode_stop retira o teclado e o console do modo Unicode. ------------------------------------------------------------------------------- Dependências de instalação do Kbd Última verificação na versão 1.06. Bash: sh Binutils: as, ld, strip Bison: bison Diffutils: cmp Fileutils: cp, install, ln, mv, rm Flex: flex Gettext: msgfmt, xgettext Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gunzip, gzip Make: make Patch: patch Sed: sed Sh-utils: uname ------------------------------------------------------------------------------- Less ------------------------------------------------------------------------------- Local Oficial para Download Less (378): ftp://ftp.gnu.org/gnu/less/ ------------------------------------------------------------------------------- Conteúdo de Less Última verificação na versão 374. O programa less é um paginador de arquivos (ou visualizador de textos). Ele exibe o conteúdo de um arquivo ou stream e tem a habilidade de rolamento. Less possui algumas funcionalidades ausentes no "more", como a capacidade de rolamento para trás. Less instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas less, lessecho e lesskey ------------------------------------------------------------------------------- Descrições Última verificação na versão 374. ------------------------------------------------------------------------------- Descrições dos programas less O programa less é um paginador de arquivos (ou visualizador de textos). Ele exibe o conteúdo de um arquivo e tem a habilidade de rolamento. Less é uma melhoria do paginador chamado "more". Ele pode rolar para trás através de arquivos e não precisa ler todo o arquivo quando inicia, o que o faz mais rápido quando lendo grandes arquivos. ------------------------------------------------------------------------------- lessecho lessecho é necessário para expandir metacaracteres, como * e ?, em nomes de arquivos em sistemas Unix. ------------------------------------------------------------------------------- lesskey lesskey é usado para especificar atalhos de teclado para o less. ------------------------------------------------------------------------------- Dependências de instalação do Less Última verificação na versão 358. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm, touch Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Sed: sed Sh-utils: expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- LFS-Bootscripts ------------------------------------------------------------------------------- Local Oficial para Download LFS-Bootscripts (1.11): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de LFS-bootscripts Última verificação na versão 1.11. O pacote LFS-Bootscripts contém scripts shell de inicialização estilo SysV. Estes scripts realizam várias tarefas, como a verificação da integridade do sistema de arquivos, carregamento do mapa de teclado, configuração de redes e desligamento do sistema. LFS-bootscripts instala os seguintes arquivos: ------------------------------------------------------------------------------- Scripts checkfs, cleanfs, functions, halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc, reboot, sendsignals, setclock, swap, sysklogd e template ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.11. ------------------------------------------------------------------------------- Descrições dos programas checkfs O script checkfs verifica os sistemas de arquivos antes de serem montados (com exceção dos sistemas de arquivos de rede e dos baseados no journaling). ------------------------------------------------------------------------------- cleanfs O script cleanfs remove arquivos que não devem ser preservados entre as reinicializações, como /var/run/* e /var/lock/*. Ele recria /var/run/utmp e remove os arquivos possivelmente presentes /etc/nologin, /fastboot e / forcefsck. ------------------------------------------------------------------------------- functions O script functions contém funções compartilhadas por diferentes scripts, como análise de erros, análise de status, etc. ------------------------------------------------------------------------------- halt O script halt desliga o sistema. ------------------------------------------------------------------------------- ifdown, ifup Os scripts ifdown e ifup auxiliam o script network no gerenciamento dos dispositivos de rede. ------------------------------------------------------------------------------- loadkeys O script loadkeys carrega a tabela de mapeamento de teclas que você especificou como apropriada para o tipo do seu teclado. ------------------------------------------------------------------------------- localnet O script localnet configura o nome da máquina e dispositivo loopback local. ------------------------------------------------------------------------------- mountfs O script mountfs monta todos os sistemas de arquivos não marcados como noauto ou que não são baseados em rede. ------------------------------------------------------------------------------- mountproc O script mountproc é usado para montar o sistema de arquivos proc. ------------------------------------------------------------------------------- network O script network configura as interfaces de rede, como placas de rede, e configura o gateway padrão quando aplicável. ------------------------------------------------------------------------------- rc O rc é o script-mestre de controle dos níveis de execução. É responsável pela execução de todos os outros scripts em uma seqüência específica. ------------------------------------------------------------------------------- reboot O script reboot reinicia o sistema. ------------------------------------------------------------------------------- sendsignals O script sendsignals garante que todos os processos são terminados antes de o sistema reiniciar ou desligar. ------------------------------------------------------------------------------- setclock O script setclock configura o relógio do kernel para horário local se o relógio de hardware não está configurado para o fuso GMT. ------------------------------------------------------------------------------- swap O script swap habilita e desabilita as partições e arquivos swap. ------------------------------------------------------------------------------- sysklogd O script sysklogd inicia e pára os serviços de log do sistema e do kernel. ------------------------------------------------------------------------------- template O script template é um modelo que você pode utilizar para criar seus próprios scripts de inicialização para outros serviços. ------------------------------------------------------------------------------- Dependências de instalação do LFS-Bootscripts Última verificação na versão 1.11. Fileutils: chown, cp ------------------------------------------------------------------------------- Libtool ------------------------------------------------------------------------------- Local Oficial para Download Libtool (1.4.3): ftp://ftp.gnu.org/gnu/libtool/ ------------------------------------------------------------------------------- Conteúdo de Libtool Última verificação na versão 1.4.2. GNU Libtool é um script para suporte genérico a bibliotecas. Libtool facilita o uso de bibliotecas compartilhadas através de uma interface consistente e portável. Libtool instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas libtool e libtoolize ------------------------------------------------------------------------------- Bibliotecas libltdl.a, libltdl.so (ligação para libltdl.so.3.1.0), libltdl.so.3 (ligação para libltdl.so.3.1.0) e libltdl.so.3.1.0 ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.4.2. ------------------------------------------------------------------------------- Descrições dos programas libtool libtool provê serviços genéricos de suporte à compilação de bibliotecas. ------------------------------------------------------------------------------- libtoolize libtoolize provê um meio padronizado para adicionar suporte ao libtool em um pacote. ------------------------------------------------------------------------------- Descrições das bibliotecas libltdl, libltdl.so.3, libltdl.so.3.1.0 Uma pequena biblioteca que esconde dos programadores as várias dificuldades no desenvolvimento de bibliotecas. ------------------------------------------------------------------------------- Dependências de instalação do Libtool Última verificação na versão 1.4.2. Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0 Glibc: ldconfig Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Lilo ------------------------------------------------------------------------------- Local Oficial para Download Lilo (22.2): ftp://ibiblio.org/pub/Linux/system/boot/lilo/ http://ibiblio.org/pub/Linux/system/boot/lilo/ ------------------------------------------------------------------------------- Conteúdo de Lilo Última verificação na versão 22.2. Lilo é um gerenciador de boot para o Linux. Lilo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas lilo, mkrescue e keytab-lilo.pl ------------------------------------------------------------------------------- Descrições Última verificação na versão 22.2. ------------------------------------------------------------------------------- Descrições dos programas lilo lilo instala o gerenciador de boot do Linux, usado para iniciar um sistema Linux. ------------------------------------------------------------------------------- mkrescue mkrescue cria um disquete de emergência inicializável usando o kernel existente e qualquer disco de RAM (ramdisk) inicial. ------------------------------------------------------------------------------- keytab-lilo.pl keytab-lilo.pl compila definições da tabela de teclas em um formato que o lilo possa usar para configurar o tipo de teclado durante o boot. ------------------------------------------------------------------------------- Dependências de instalação do Lilo Última verificação na versão 22.1. Bash: sh Bin86: as86, ld86 Binutils: as, ld, strip Fileutils: cp, dd, ln Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed Textutils: cat ------------------------------------------------------------------------------- Linux (o kernel) ------------------------------------------------------------------------------- Local Oficial para Download Linux (2.4.20): ftp://ftp.kernel.org/pub/linux/kernel/ ------------------------------------------------------------------------------- Conteúdo de Linux Última verificação na versão 2.4.18. O kernel Linux está no centro de todo sistema Linux. Quando um computador é ligado e inicia um sistema Linux, a primeira parte carregada é o kernel. O kernel inicializa os componentes de hardware do sistema: portas seriais e paralelas, placas de som e de rede, controladores IDE e SCSI, etc. Em suma, o kernel deixa o hardware disponível para a execução dos softwares. Linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas kernel e seus arquivos-cabeçalhos ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.4.18. ------------------------------------------------------------------------------- Descrições dos programas kernel do Linux O kernel Linux está no centro de todo sistema Linux. Quando um computador é ligado e inicia um sistema Linux, a primeira parte carregada é o kernel. O kernel inicializa os componentes de hardware do sistema: portas seriais e paralelas, placas de som e de rede, controladores IDE e SCSI, etc. Em suma, o kernel deixa o hardware disponível para a execução dos softwares. ------------------------------------------------------------------------------- arquivos-cabeçalhos do kernel Estes são os arquivos que nós copiamos para /usr/include/{linux,asm} no Capítulo 6. Eles devem ser aqueles com os quais o Glibc foi compilado e por isso não devem ser substituídos quando atualizando o kernel. Eles são essenciais para a compilação de muitos programas. ------------------------------------------------------------------------------- Dependências de instalação do Linux Última verificação na versão 2.4.17. Bash: sh Binutils: ar, as, ld, nm, objcopy Fileutils: cp, ln, mkdir, mv, rm, touch Findutils: find, xargs Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gzip Make: make Gawk: awk Modutils: depmod, genksyms Net-tools: dnsdomainname, hostname Sed: sed Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes Textutils: cat, md5sum, sort, tail ------------------------------------------------------------------------------- M4 ------------------------------------------------------------------------------- Local Oficial para Download M4 (1.4): ftp://ftp.gnu.org/gnu/m4/ ------------------------------------------------------------------------------- Conteúdo de M4 Última verificação na versão 1.4. M4 é um processador de macros. Ele copia a entrada para a saída, expandindo macros à medida em que aparecem. Essas macros são nativas ou definidas pelo usuário e podem receber qualquer número de argumentos. Além de fazer expansão de macros, o m4 tem funções nativas para a inclusão de arquivos, execução de comandos Unix, cálculo aritmético de inteiros, manipulação de texto de diversas formas, recursividade, etc. O programa m4 pode ser usado como uma ferramenta para um compilador ou como um processador de macros independente. M4 instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas m4 ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.4. ------------------------------------------------------------------------------- Descrições dos programas m4 m4 é um processador de macros. Ele copia a entrada para a saída, expandindo macros à medida em que aparecem. Essas macros são nativas ou definidas pelo usuário e podem receber qualquer número de argumentos. Além de fazer expansão de macros, o m4 tem funções nativas para a inclusão de arquivos, execução de comandos Unix, cálculo de aritmética de inteiros, manipulação de texto de diversas formas, recursividade, etc. O programa m4 pode ser usado como uma ferramenta para um compilador ou como um processador de macros independente. ------------------------------------------------------------------------------- Dependências de instalação do M4 Última verificação na versão 1.4. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Make: make Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Sed: sed Sh-utils: date, echo, hostname Textutils: cat, tr ------------------------------------------------------------------------------- Make ------------------------------------------------------------------------------- Local Oficial para Download Make (3.80): ftp://ftp.gnu.org/gnu/make/ ------------------------------------------------------------------------------- Conteúdo de Make Última verificação na versão 3.79.1. make determina automaticamente que partes de um grande programa precisam ser recompiladas, e executa os comandos para sua recompilação. Make instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas make ------------------------------------------------------------------------------- Descrições Última verificação na versão 3.79.1. ------------------------------------------------------------------------------- Descrições dos programas make make determina automaticamente que partes de um grande programa precisam ser recompiladas, e executa os comandos para sua recompilação. ------------------------------------------------------------------------------- Dependências de instalação do Make Última verificação na versão 3.79.1. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, install, ls, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- MAKEDEV ------------------------------------------------------------------------------- Local Oficial para Download MAKEDEV (1.7): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de MAKEDEV Última verificação na versão 1.5. MAKEDEV é um script que cria os nós estáticos de dispositivos normalmente encontrados no diretório /dev. Informações detalhadas sobre os nós de dispositivos podem ser encontradas na árvore de arquivos-fontes do kernel em Documentation/devices.txt. MAKEDEV instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas MAKEDEV ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.5. ------------------------------------------------------------------------------- Descrições dos programas MAKEDEV MAKEDEV é um script que cria os nós estáticos de dispositivos normalmente encontrados no diretório /dev. Informações detalhadas sobre os nós de dispositivos podem ser encontradas na árvore de arquivos-fontes do kernel em Documentation/devices.txt. ------------------------------------------------------------------------------- Dependências de instalação do MAKEDEV Última verificação na versão 1.5. Bash: sh Fileutils: chmod, chown, cp, ln, mknod, mv, rm Grep: grep Sh-utils: expr, id ------------------------------------------------------------------------------- Man ------------------------------------------------------------------------------- Local Oficial para Download Man (1.5k): ftp://ftp.win.tue.nl/pub/linux-local/utils/man/ Man 80Cols Patch (1.5k): http://downloads.linuxfromscratch.org/ Man Manpath Patch (1.5k): http://downloads.linuxfromscratch.org/ Man Pager Patch (1.5k): http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Man Última verificação na versão 1.5k. Man é um paginador de manuais. Man instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas apropos, makewhatis, man, man2dvi, man2html e whatis ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.5k. ------------------------------------------------------------------------------- Descrições dos programas apropos apropos procura por palavras-chaves em um conjunto de arquivos de base de dados contendo breves descrições de comandos do sistema e exibe o resultado na saída padrão. ------------------------------------------------------------------------------- makewhatis makewhatis lê todas as páginas de manual contidas nas seções do manpath ou as páginas pré-formatadas contidas nas seções do catpath. Para cada página, ele escreve uma linha na base de dados do whatis. Cada linha consiste do nome da página e uma breve descrição, separados por um traço. A descrição é extraída usando o conteúdo da seção NAME da página de manual. ------------------------------------------------------------------------------- man man formata e exibe as páginas de manual on-line. ------------------------------------------------------------------------------- man2dvi man2dvi converte uma página de manual para o formato dvi. ------------------------------------------------------------------------------- man2html man2html converte uma página de manual para HTML. ------------------------------------------------------------------------------- whatis whatis procura por palavras-chaves em um conjunto de arquivos de base de dados e exibe o resultado na saída padrão. Apenas os resultados da procura por palavras completas são exibidos. ------------------------------------------------------------------------------- Dependências de instalação do Man Última verificação na versão 1.5i. Bash: sh Binutils: as, ld Fileutils: chmod, cp, install, mkdir, rm Gcc: c11, collect2, cpp0, gcc Grep: grep Make: make Gawk: awk Sed: sed Sh-utils: echo Textutils: cat ------------------------------------------------------------------------------- Man-pages ------------------------------------------------------------------------------- Local Oficial para Download Man-pages (1.54): ftp://ftp.kernel.org/pub/linux/docs/manpages/ ------------------------------------------------------------------------------- Conteúdo de Man-pages Última verificação na versão 1.54. O pacote Man-pages contém cerca de 1.200 páginas de manual. Esta documentação é referente a funções C e C++, descrição de dispositivos importantes e páginas de manual ausentes em outros pacotes. Man-pages instala os seguintes arquivos: ------------------------------------------------------------------------------- Arquivos de suporte Várias páginas de manual. ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.54. ------------------------------------------------------------------------------- Descrições dos programas páginas de manual Exemplos de páginas de manual fornecidas por este pacote são as que descrevem todas as funções C e C++ e alguns arquivos importantes contidos em /dev. ------------------------------------------------------------------------------- Dependências de instalação do Man-pages Última verificação na versão 1.47. Bash: sh Fileutils: install Make: make ------------------------------------------------------------------------------- Modutils ------------------------------------------------------------------------------- Local Oficial para Download Modutils (2.4.22): ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/ ------------------------------------------------------------------------------- Conteúdo de Modutils Última verificação na versão 2.4.16. O pacote Modutils contém programas para a manipulação de módulos do kernel. Modutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas depmod, genksyms, insmod, insmod_ksymoops_clean, kallsyms (ligação para insmod), kernelversion, ksyms (ligação para insmod), lsmod (ligação para insmod), modinfo, modprobe (ligação para insmod) e rmmod (ligação para insmod) ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.4.16. ------------------------------------------------------------------------------- Descrições dos programas depmod depmod manipula descrições de dependências de módulos carregáveis do kernel. ------------------------------------------------------------------------------- genksyms genksyms lê (da entrada padrão) a saída do comando gcc -E source.c e gera um arquivo contendo informações de versão. ------------------------------------------------------------------------------- insmod insmod instala um módulo carregável no kernel em execução. ------------------------------------------------------------------------------- insmod_ksymoops_clean insmod_ksymoops_clean apaga ksyms e módulos salvos não acessados durante 2 dias. ------------------------------------------------------------------------------- kallsyms kallsyms extrai todos os símbolos do kernel para depuração. ------------------------------------------------------------------------------- kernelversion kernelversion exibe a versão maior do kernel em execução. ------------------------------------------------------------------------------- ksyms ksyms exibe símbolos exportados do kernel. ------------------------------------------------------------------------------- lsmod lsmod exibe informação sobre todos os módulos carregados. ------------------------------------------------------------------------------- modinfo modinfo examina um arquivo-objeto associado a um módulo do kernel e exibe todas as informações disponíveis. ------------------------------------------------------------------------------- modprobe modprobe usa um arquivo de dependência tipo Makefile, criado por depmod, para carregar automaticamente o(s) módulo(s) relevante(s) de um conjunto de módulos disponíveis em estruturas de diretório pré-definidas. ------------------------------------------------------------------------------- rmmod rmmod remove módulos carregáveis do kernel em execução. ------------------------------------------------------------------------------- Dependências de instalação do Modutils Última verificação na versão 2.4.12. Bash: sh Binutils: ar, as, ld, ranlib, strip Bison: bison Diffutils: cmp Fileutils: chmod, install, ln, mkdir, mv, rm Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: basename, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Ncurses ------------------------------------------------------------------------------- Local Oficial para Download Ncurses (5.3): ftp://ftp.gnu.org/gnu/ncurses/ ------------------------------------------------------------------------------- Conteúdo de Ncurses Última verificação na versão 5.2. O pacote Ncurses provê bibliotecas para manipulação de caracteres no terminal, para a criação de painéis e menus. Ncurses instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas captoinfo (ligação para tic), clear, infocmp, infotocap (ligação para tic), reset (ligação para tset), tack, tic, toe, tput e tset. ------------------------------------------------------------------------------- Bibliotecas libcurses.[a,so] (ligação para libncurses.[a,so]), libform.[a,so], libform_g.a, libmenu.[a,so], libmenu_g.a, libncurses++.a, libncurses.[a,so], libncurses_g.a, libpanel.[a,so] e libpanel_g.a ------------------------------------------------------------------------------- Descrições Última verificação na versão 5.2. ------------------------------------------------------------------------------- Descrições dos programas captoinfo captoinfo converte uma descrição do termcap para uma do terminfo. ------------------------------------------------------------------------------- clear clear limpa a tela, se isto for possível. Ele identifica no ambiente o tipo de terminal e varre a base de dados do terminfo para descobrir como limpar a tela. ------------------------------------------------------------------------------- infocmp infocmp pode ser usado para comparar uma entrada binária do terminfo com outras entradas, reescrever uma descrição para ter vantagem no uso do campo use, ou exibir uma descrição do arquivo binário (term) em uma variedade de formatos (o oposto do que o tic faz). ------------------------------------------------------------------------------- infotocap infotocap converte uma descrição do terminfo em uma do termcap. ------------------------------------------------------------------------------- reset reset configura os modos 'cooked' e 'echo', desativa os modos 'cbreak' e 'raw', ativa a conversão de nova-linha e zera qualquer caractere especial não configurado para os seus valores-padrão antes de fazer a inicialização do terminal da mesma forma que tset. ------------------------------------------------------------------------------- tack tack é o verificador da ação do terminfo. ------------------------------------------------------------------------------- tic tic é o compilador do terminfo para entradas de descrições. O programa converte um arquivo terminfo do formato fonte para o formato binário para uso com as rotinas da biblioteca ncurses. Arquivos terminfo contêm informação sobre as capacidades de um terminal. ------------------------------------------------------------------------------- toe toe lista todos os tipos de terminal disponíveis pelo nome primário com as respectivas descrições. ------------------------------------------------------------------------------- tput tput usa a base de dados do terminfo para criar os valores das capacidades dependentes de terminal e informações disponíveis no shell, para inicializar ou resetar o terminal ou retornar o nome longo do tipo de terminal requisitado. ------------------------------------------------------------------------------- tset tset inicializa terminais para que possam ser usados, mas não é largamente utilizado atualmente. É disponibilizado para compatibilidade com o 4.4BSD. ------------------------------------------------------------------------------- Descrições das bibliotecas libcurses, libncurses++, libncurses, libncurses_g Estas bibliotecas são a base do sistema e são usadas para exibir texto (freqüentemente de um modo requintado) na tela. Um exemplo onde o Ncurses é usado é no processo make menuconfig do kernel. ------------------------------------------------------------------------------- libform, libform_g libform é usado para implementar formulários no Ncurses. ------------------------------------------------------------------------------- libmenu, libmenu_g libmenu é usado para implementar menus no Ncurses. ------------------------------------------------------------------------------- libpanel, libpanel_g libpanel é usado para implementar painéis no Ncurses. ------------------------------------------------------------------------------- Dependências de instalação do Ncurses Última verificação na versão 5.2. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, mkdir, mv, rm Gcc: c++, cc1, cc1plus, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep Make: make Gawk: gawk Sed: sed Sh-utils: basename, date, echo, expr, hostname, uname Textutils: cat, sort, tr, wc ------------------------------------------------------------------------------- Netkit-base ------------------------------------------------------------------------------- Local Oficial para Download Netkit-base (0.17): ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/ ------------------------------------------------------------------------------- Conteúdo de Netkit-base Última verificação na versão 0.17. O pacote Netkit-base contém dois programas relacionados a redes: ping, que determina o tempo de resposta a pacotes ICMP, e inet, que aguarda por pedidos de portas e executa os serviços apropriados. Netkit-base instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas inetd e ping ------------------------------------------------------------------------------- Descrições Última verificação na versão 0.17. ------------------------------------------------------------------------------- Descrições dos programas inetd inetd é a mãe de todos os serviços (daemons). Ele espera por conexões e transfere a chamada para o serviço apropriado. ------------------------------------------------------------------------------- ping ping envia pacotes ICMP ECHO_REQUEST para um computador e determina seu tempo de resposta. ------------------------------------------------------------------------------- Dependências de instalação do Netkit-base Última verificação na versão 0.17. Bash: sh Binutils: as, ld, strip Fileutils: cp, install, rm Make: make Gcc: cc1, collect2, cpp0, gcc Sed: sed Sh-utils: date Textutils: cat ------------------------------------------------------------------------------- Net-tools ------------------------------------------------------------------------------- Local Oficial para Download Net-tools (1.60): http://www.tazenda.demon.co.uk/phil/net-tools/ ------------------------------------------------------------------------------- Conteúdo de Net-tools Última verificação na versão 1.60. O pacote Net-tools contém programas básicos para redes em Linux. Net-tools instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas arp, dnsdomainname (ligação para hostname), domainname (ligação para hostname), hostname, ifconfig, nameif, netstat, nisdomainname (ligação para hostname), plipconfig, rarp, route, slattach e ypdomainname (ligação para hostname) ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.60. ------------------------------------------------------------------------------- Descrições dos programas arp arp é usado para manipular o cache ARP do kernel, geralmente para adicionar ou remover uma entrada, ou para exibir o cache. ------------------------------------------------------------------------------- dnsdomainname dnsdomainname exibe o nome de domínio DNS do sistema. ------------------------------------------------------------------------------- domainname domainname exibe ou configura o nome de domínio NIS/YP do sistema. ------------------------------------------------------------------------------- hostname hostname exibe ou configura o nome do sistema. ------------------------------------------------------------------------------- ifconfig O comando ifconfig é usado para configurar interfaces de rede. ------------------------------------------------------------------------------- nameif nameif nomeia interfaces de rede baseado nos endereços MAC. ------------------------------------------------------------------------------- netstat netstat é uma ferramenta usada para exibir as conexões de rede, tabelas de roteamento, estatísticas das interfaces, conexões mascaradas e membros multicast. ------------------------------------------------------------------------------- nisdomainname nisdomainname exibe ou configura o nome de domínio NIS/YP do sistema. ------------------------------------------------------------------------------- plipconfig plipconfig é usado para ajustar os parâmetros do dispositivo PLIP, tornando-o mais rápido. ------------------------------------------------------------------------------- rarp Semelhante ao programa arp, o rarp manipula a tabela RARP do sistema. ------------------------------------------------------------------------------- route route é o utilitário genérico usado para manipular a tabela de roteamento de IP. ------------------------------------------------------------------------------- slattach slattach anexa uma interface de rede a uma linha serial, ex. coloca uma linha de terminal comum em um dos vários modos de "rede". ------------------------------------------------------------------------------- ypdomainname ypdomainname exibe ou configura o nome de domínio NIS/YP do sistema. ------------------------------------------------------------------------------- Dependências de instalação do Net-tools Última verificação na versão 1.60. Bash: bash, sh Binutils: ar, as, ld Fileutils: install, ln, ls, mv, rm Gcc: cc, cc1, collect2, cpp0 Make: make Sh-utils: echo ------------------------------------------------------------------------------- Patch ------------------------------------------------------------------------------- Local Oficial para Download Patch (2.5.4): ftp://ftp.gnu.org/gnu/patch/ ------------------------------------------------------------------------------- Conteúdo de Patch Última verificação na versão 2.5.4. O programa patch modifica um arquivo de acordo com um patch. Um patch é geralmente uma lista, criada pelo programa diff, que contém instruções sobre como o arquivo original deve ser modificado. Patch instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas patch ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.5.4. ------------------------------------------------------------------------------- Descrições dos programas patch O programa patch modifica um arquivo de acordo com um patch. Um patch é geralmente uma lista, criada pelo programa diff, que contém instruções sobre como um arquivo original precisa ser modificado. Patch é usado bastante para alterações em código-fonte, já que ele economiza tempo e espaço. Imagine um pacote com 1 MB de tamanho ou como um patch de apenas 1 KB, que irá atualizar a primeira versão para fazê-la indêntica à segunda. Assim, se a primeira versão já foi baixada, um patch evita um segundo grande download. ------------------------------------------------------------------------------- Dependências de instalação do Patch Última verificação na versão 2.5.4. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, uname Textutils: cat, tr ------------------------------------------------------------------------------- Perl ------------------------------------------------------------------------------- Local Oficial para Download Perl (5.8.0): http://www.perl.com/ ------------------------------------------------------------------------------- Conteúdo de Perl Última verificação na versão 5.6.1. Perl é a Linguagem Prática de Extração e Relatório (Practical Extraction and Report Language). Ela combina algumas das melhores funcionalidades do C, sed, awk e sh em uma poderosa linguagem. Perl instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas e bibliotecas a2p, c2ph, dprofpp, find2perl, h2ph, h2xs, perl, perl5.6.1, perlbug, perlcc, perldoc, pl2pm, pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, podselect, pstruct, s2p, splain,attrs.so, B.so, ByteLoader.so, DProf.so, Dumper.so, DynaLoader.a, Fcntl.so, Glob.so, Hostname.so, IO.so, libperl.a, Opcode.so, Peek.so, POSIX.so, re.so, SDBM_File.so, Socket.so, Syslog.so e SysV.so ------------------------------------------------------------------------------- Descrições Última verificação na versão 5.6.1. ------------------------------------------------------------------------------- Descrições dos programas a2p a2p é um conversor de AWK para PERL. ------------------------------------------------------------------------------- c2ph c2ph exibe as estruturas C como se fossem geradas a partir de "cc -g -S". ------------------------------------------------------------------------------- dprofpp dprofpp exibe dados de perfil do Perl. ------------------------------------------------------------------------------- find2perl find2perl converte linhas de comando do find para código Perl. ------------------------------------------------------------------------------- h2ph h2ph converte arquivos-cabeçalhos .h do C para arquivos-cabeçalhos .ph do Perl. ------------------------------------------------------------------------------- h2xs h2xs converte arquivos-cabeçalhos .h do C para extensões do Perl. ------------------------------------------------------------------------------- perl, perl5.6.1 perl é a Linguagem Prática de Extração e Relatório (Practical Extraction and Report Language). Ela combina algumas das melhores funcionalidades do C, sed, awk e sh em uma linguagem poderosa. ------------------------------------------------------------------------------- perlbug perlbug auxilia a geração de relatórios de bug sobre o Perl ou seus módulos e os envia por e-mail. ------------------------------------------------------------------------------- perlcc perlcc gera executáveis a partir de programas Perl. ------------------------------------------------------------------------------- perldoc perldoc analisa uma parte da documentação em formato .pod encontrada nos diretórios do Perl ou em um script Perl e a exibe via "pod2man | nroff -man | $PAGER". ------------------------------------------------------------------------------- pl2pm pl2pm é uma ferramenta que auxilia na conversão de bibliotecas .pl estilo Perl4 para módulos estilo Perl5. ------------------------------------------------------------------------------- pod2html pod2html converte arquivos do formato pod para o HTML. ------------------------------------------------------------------------------- pod2latex pod2latex converte arquivos do formato pod para o LaTeX. ------------------------------------------------------------------------------- pod2man pod2man converte arquivos do formato pod para o *roff. ------------------------------------------------------------------------------- pod2text pod2text converte arquivos do formato pod para texto ASCII formatado. ------------------------------------------------------------------------------- pod2usage pod2usage exibe mensagens de uso para documentos pod embutidos em arquivos. ------------------------------------------------------------------------------- podchecker podchecker verifica a sintaxe de arquivos de documentação em formato pod. ------------------------------------------------------------------------------- podselect podselect exibe seções selecionadas da documentação pod na saída padrão. ------------------------------------------------------------------------------- pstruct pstruct exibe estruturas C como se fossem geradas a partir de "cc -g -S". ------------------------------------------------------------------------------- s2p s2p é um conversor de sed para Perl. ------------------------------------------------------------------------------- splain splain é um programa que força diagnósticos detalhados de avisos no Perl. ------------------------------------------------------------------------------- Descrições das bibliotecas attrs Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- B Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- ByteLoader Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- DProf Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Dumper Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- DynaLoader Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Fcntl Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Glob Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Hostname Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- IO Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- libperl Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Opcode Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Peek Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- POSIX Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- re Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- SDBM_File Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Socket Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Syslog Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- SysV Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- Dependências de instalação do Perl Última verificação na versão 5.6.1. Bash: sh Binutils: ar, as, ld, nm Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, date, echo, expr, hostname, pwd, uname, whoami Textutils: cat, comm, sort, split, tr, uniq, wc ------------------------------------------------------------------------------- Procinfo ------------------------------------------------------------------------------- Local Oficial para Download Procinfo (18): ftp://ftp.cistron.nl/pub/people/svm/ ------------------------------------------------------------------------------- Conteúdo de Procinfo Última verificação na versão 18. O pacote Procinfo obtém informações sobre o sistema, como uso de memória e números de IRQ, a partir do /proc e exibe estes dados em um formato inteligível. Procinfo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas lsdev, procinfo e socklist ------------------------------------------------------------------------------- Descrições Última verificação na versão 18. ------------------------------------------------------------------------------- Descrições dos programas lsdev lsdev obtém informações sobre o hardware instalado em seu computador a partir das interrupções, portas I/O e arquivos DMA do diretório /proc, dando a você uma visão rápida de que hardware usa certos endereços I/O, IRQ ou canais DMA. ------------------------------------------------------------------------------- procinfo procinfo obtém alguns dados do sistema do diretório /proc e os exibe em boa formatação na tela. ------------------------------------------------------------------------------- socklist socklist é um script Perl que fornece a você uma lista de todos os sockets abertos, enumerando tipos, porta, inode, uid, pid, fd e o programa ao qual ele pertence. ------------------------------------------------------------------------------- Dependências de instalação do Procinfo Última verificação na versão 18. Binutils: as, ld Fileutils: install, mkdir Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Procps ------------------------------------------------------------------------------- Local Oficial para Download Procps (3.1.5): http://procps.sourceforge.net/ Procps Patch (3.1.5): http://downloads.linuxfromscratch.org ------------------------------------------------------------------------------- Conteúdo de Procps Última verificação na versão 2.0.7. O pacote Procps contém programas para monitoração e finalização de processos do sistema. Procps obtém informações sobre processos através do /proc. Procps instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas free, kill, oldps, pgrep, pkill, ps, skill, snice, sysctl, tload, top, vmstat, w e watch ------------------------------------------------------------------------------- Bibliotecas libproc.so ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.0.7. ------------------------------------------------------------------------------- Descrições dos programas free free exibe a quantidade total de memória física e swap usada e livre no sistema, bem como a memória compartilhada e os buffers usados pelo kernel. ------------------------------------------------------------------------------- kill kill envia sinais para processos. ------------------------------------------------------------------------------- oldps e ps ps exibe a situação dos processos em execução. ------------------------------------------------------------------------------- pgrep pgrep procura processos baseado no nome e outros atributos. ------------------------------------------------------------------------------- pkill pkill sinaliza processos baseado no nome e outros atributos. ------------------------------------------------------------------------------- skill skill sinaliza processos que coincidem com um determinado critério. ------------------------------------------------------------------------------- snice snice modifica a prioridade de execução para processos que coincidem com um critério. ------------------------------------------------------------------------------- sysctl sysctl modifica os parâmetros do kernel em tempo de execução. ------------------------------------------------------------------------------- tload tload exibe um gráfico do nível de utilização do sistema para o tty especificado ou, se nenhum for fornecido, para o tty do processo do tload. ------------------------------------------------------------------------------- top top provê uma análise avançada da atividade do processador em tempo real. ------------------------------------------------------------------------------- vmstat vmstat exibe informações sobre processos, memória, paginação, I/O de blocos e atividade da CPU. ------------------------------------------------------------------------------- w w exibe informações sobre os usuários e seus processos atuais na máquina. ------------------------------------------------------------------------------- watch watch executa um comando repetidamente, exibindo sua saída. ------------------------------------------------------------------------------- Descrições das bibliotecas libproc libproc é a biblioteca à qual a maioria dos programas deste pacote é vinculada para economizar espaço em disco, implementando funções comuns apenas uma vez. ------------------------------------------------------------------------------- Dependências de instalação do Procps Última verificação na versão 2.0.7. Bash: sh Binutils: as, ld, strip Fileutils: install, ln, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: grep Make: make Gawk: awk Sed: sed Sh-utils: basename, pwd Textutils: sort, tr ------------------------------------------------------------------------------- Psmisc ------------------------------------------------------------------------------- Local Oficial para Download Psmisc (21.2): http://download.sourceforge.net/psmisc/ ftp://download.sourceforge.net/pub/sourceforge/psmisc/ ------------------------------------------------------------------------------- Conteúdo de Psmisc Última verificação na versão 21. O pacote Psmisc contém três programas que auxiliam o gerenciamento do sistema de arquivos /proc. Psmisc instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas fuser, killall e pstree ------------------------------------------------------------------------------- Descrições Última verificação na versão 21. ------------------------------------------------------------------------------- Descrições dos programas Descrições dos programas ------------------------------------------------------------------------------- fuser fuser exibe os PIDs dos processos que usam o arquivo ou sistema de arquivos especificado. ------------------------------------------------------------------------------- killall killall envia um sinal para todos os processos executando algum dos comandos especificados. ------------------------------------------------------------------------------- pstree pstree exibe os processos em execução como uma árvore. ------------------------------------------------------------------------------- Dependências de instalação do Psmisc Última verificação na versão 20.2. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Bison: bison Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Sed ------------------------------------------------------------------------------- Local Oficial para Download Sed (4.0.5): ftp://ftp.gnu.org/gnu/sed/ ------------------------------------------------------------------------------- Conteúdo de Sed Última verificação na versão 3.02. sed é um editor de stream. Um editor de stream é usado para fazer transformações básicas em textos de um stream de entrada (um arquivo ou entrada de um canal). Sed instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas sed ------------------------------------------------------------------------------- Descrições Última verificação na versão 3.02. ------------------------------------------------------------------------------- Descrições dos programas sed sed é um editor de stream. Um editor de stream é usado para fazer transformações básicas em textos de um stream de entrada (um arquivo ou entrada de um canal). ------------------------------------------------------------------------------- Dependências de instalação do Sed Última verificação na versão 3.02. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gcc: cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Shadow ------------------------------------------------------------------------------- Local Oficial para Download Shadow (4.0.3): ftp://ftp.pld.org.pl/software/shadow/ ------------------------------------------------------------------------------- Conteúdo de Shadow Última verificação na versão 4.0.3. O pacote Shadow foi criado para reforçar a segurança de senhas do sistema. Shadow instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (ligação para newgrp), useradd, userdel, usermod, vigr (ligação para vipw) e vipw ------------------------------------------------------------------------------- Descrições Última verificação na versão 4.0.3. ------------------------------------------------------------------------------- Descrições dos programas chage chage modifica o número de dias entre mudanças de senhas e a data da última modificação de senha. ------------------------------------------------------------------------------- chfn chfn modifica o nome completo do usuário e outras informações (número da sala do escritório, número do telefone comercial e residencial). ------------------------------------------------------------------------------- chpasswd chpasswd lê um arquivo de nomes de usuário e senhas da entrada padrão e usa esta informação para atualizar um grupo de usuários existentes. ------------------------------------------------------------------------------- chsh chsh modifica o shell de login do usuário. ------------------------------------------------------------------------------- dpasswd dpasswd adiciona, remove e atualiza senhas dial-up para shells de login de usuários. ------------------------------------------------------------------------------- expiry expiry verifica e reforça a política de expiração de senha. ------------------------------------------------------------------------------- faillog faillog formata o conteúdo do log de falhas de login, /var/log/faillog, e mantém contagens e limites de logins falhos. ------------------------------------------------------------------------------- gpasswd gpasswd é usado para administrar o arquivo /etc/group. ------------------------------------------------------------------------------- groupadd O comando groupadd cria uma nova conta de grupo usando os valores especificados na linha de comando e os valores-padrão do sistema. ------------------------------------------------------------------------------- groupdel O comando groupdel modifica os arquivos de manutenção de conta do sistema, removendo todas as entradas que se referem ao grupo especificado. ------------------------------------------------------------------------------- groupmod O comando groupmod modifica os arquivos de manutenção de conta do sistema para refletirem as mudanças que são especificadas na linha de comando. ------------------------------------------------------------------------------- groups groups exibe os grupos dos quais um usuário faz parte. ------------------------------------------------------------------------------- grpck grpck verifica a integridade das informações de autenticação do sistema. ------------------------------------------------------------------------------- grpconv grpconv converte para shadow os arquivos de grupos normais. ------------------------------------------------------------------------------- grpunconv grpunconv converte de arquivos de grupos shadow para arquivos de grupos normais. ------------------------------------------------------------------------------- lastlog lastlog formata e exibe o conteúdo do log de último login, /var/log/lastlog. O nome de login, porta e horário do último acesso serão exibidos. ------------------------------------------------------------------------------- login login é usado para estabelecer uma nova sessão com o sistema. ------------------------------------------------------------------------------- logoutd logoutd força o tempo de login e restrições de porta especificados em /etc/ porttime. ------------------------------------------------------------------------------- mkpasswd mkpasswd lê um arquivo no formato dado pelas opções e o converte para o formato de base de dados correspondente. ------------------------------------------------------------------------------- newgrp newgrp é usado para modificar o GID atual durante uma sessão de login. ------------------------------------------------------------------------------- newusers newusers lê um arquivo de nomes de usuário e senhas em texto puro e usa esta informação para atualizar um grupo de usuários existentes ou para criar novos usuários. ------------------------------------------------------------------------------- passwd passwd modifica senhas de contas de usuário e de grupos. ------------------------------------------------------------------------------- pwck pwck verifica a integridade de arquivos de senha. ------------------------------------------------------------------------------- pwconv pwconv converte o arquivo de senhas normal para o arquivo shadow. ------------------------------------------------------------------------------- pwunconv pwunconv converte um arquivo de senhas shadow para um arquivo de senhas normal. ------------------------------------------------------------------------------- sg sg modifica o GID do usuário para o do grupo especificado, ou executa um comando dado como membro do grupo dado. ------------------------------------------------------------------------------- useradd useradd cria um novo usuário ou atualiza informações-padrão para novos usuários. ------------------------------------------------------------------------------- userdel userdel modifica os arquivos de conta do sistema, removendo todas as entradas referentes a um nome de login especificado. ------------------------------------------------------------------------------- usermod usermod modifica os arquivos de conta do sistema para refletirem as mudanças especificadas na linha de comando. ------------------------------------------------------------------------------- vipw e vigr vipw e vigr irão editar os arquivos /etc/passwd e /etc/group, respectivamente. Com a opção -s, eles irão editar as versões shadow destes arquivos. ------------------------------------------------------------------------------- Descrições das bibliotecas libmisc Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- libshadow libshadow provê funcionalidades comuns para os programas do Shadow. ------------------------------------------------------------------------------- Dependências de instalação do Shadow Última verificação na versão 20001016. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: makeinfo Textutils: cat, sort, tr, uniq ------------------------------------------------------------------------------- Sh-utils ------------------------------------------------------------------------------- Local Oficial para Download Sh-utils (2.0): ftp://ftp.gnu.org/gnu/sh-utils/ Sh-utils Patch (2.0): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ Sh-utils Hostname Patch (2.0-hostname): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Sh-utils Última verificação na versão 2.0. O pacote Sh-utils contém utilitários básicos para manipulação do shell. Sh-utils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostid, id, logname, nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami e yes ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.0. ------------------------------------------------------------------------------- Descrições dos programas basename basename remove diretórios e sufixos de nomes de arquivo. ------------------------------------------------------------------------------- chroot chroot executa um comando ou shell interativo com um diretório raiz especial. ------------------------------------------------------------------------------- date date exibe a data e horário atuais em um formato especificado, ou configura a data do sistema. ------------------------------------------------------------------------------- dirname dirname remove sufixos que não são diretórios de um nome de arquivo. ------------------------------------------------------------------------------- echo echo exibe uma linha de texto. ------------------------------------------------------------------------------- env env executa um programa em um ambiente modificado. ------------------------------------------------------------------------------- expr expr avalia expressões. ------------------------------------------------------------------------------- factor factor exibe os fatores primos de todos os números inteiros especificados. ------------------------------------------------------------------------------- false false sempre termina com um código de status indicando erro. ------------------------------------------------------------------------------- groups groups exibe os grupos dos quais um usuário faz parte. ------------------------------------------------------------------------------- hostid hostid exibe o identificador numérico (em hexadecimal) do sistema. ------------------------------------------------------------------------------- id id exibe os IDs de usuário e de grupo do usuário atual ou de um especificado. ------------------------------------------------------------------------------- logname logname exibe nome de login do usuário atual. ------------------------------------------------------------------------------- nice nice executa um programa com prioridade de execução modificada. ------------------------------------------------------------------------------- nohup nohup executa um comando imune a interrupções, com saída para um arquivo de log. ------------------------------------------------------------------------------- pathchk pathchk verifica se nomes de arquivo são válidos ou independentes do sistema. ------------------------------------------------------------------------------- pinky pinky é um finger simples que obtém informações sobre um certo usuário. ------------------------------------------------------------------------------- printenv printenv exibe todas ou algumas das variáveis de ambiente. ------------------------------------------------------------------------------- printf printf formata e exibe dados (da mesma forma que a função printf do C). ------------------------------------------------------------------------------- pwd pwd exibe o nome do diretório atual. ------------------------------------------------------------------------------- seq seq exibe números de uma certa faixa com um determinado incremento. ------------------------------------------------------------------------------- sleep sleep cria uma espera no sistema durante determinado tempo. ------------------------------------------------------------------------------- stty stty modifica e exibe configurações da linha de terminal. ------------------------------------------------------------------------------- su su executa um shell com IDs de usuário e de grupo alternativos. ------------------------------------------------------------------------------- tee tee lê da entrada padrão e escreve para a saída padrão e para arquivos. ------------------------------------------------------------------------------- test test verifica tipos de arquivo e compara valores. ------------------------------------------------------------------------------- true true sempre termina com um código de status indicando sucesso. ------------------------------------------------------------------------------- tty tty exibe o nome de arquivo do terminal conectado à entrada padrão. ------------------------------------------------------------------------------- uname uname exibe informações sobre o sistema. ------------------------------------------------------------------------------- uptime uptime exibe por quanto tempo o sistema está funcionando. ------------------------------------------------------------------------------- users users exibe os nomes dos usuários atualmente logados no sistema. ------------------------------------------------------------------------------- who who exibe quem está logado. ------------------------------------------------------------------------------- whoami whoami exibe o nome de usuário associado ao UID atual. ------------------------------------------------------------------------------- yes yes exibe 'y' ou uma string dada repetidamente, até ser terminado. ------------------------------------------------------------------------------- Dependências de instalação do Sh-utils Última verificação na versão 2.0. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, chown, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Sysklogd ------------------------------------------------------------------------------- Local Oficial para Download Sysklogd (1.4.1): http://www.infodrom.org/projects/sysklogd/ ------------------------------------------------------------------------------- Conteúdo de Sysklogd Última verificação na versão 1.4.1. O pacote Sysklogd contém programas para gravação das mensagens de log do sistema, como aquelas reportadas pelo kernel. Sysklogd instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas klogd e syslogd ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.4.1. ------------------------------------------------------------------------------- Descrições dos programas klogd klogd é um serviço de sistema que intercepta e registra mensagens do kernel Linux. ------------------------------------------------------------------------------- syslogd syslogd provê o tipo log que muitos programas modernos usam. Toda mensagem logada contém ao menos um horário e um nome de computador e, normalmente, o nome do programa também. Mas isto depende de quão confiável é o programa sendo logado. ------------------------------------------------------------------------------- Dependências de instalação do Sysklogd Última verificação na versão 1.4.1. Binutils: as, ld, strip Fileutils: install Gcc: cc1, collect2, cpp0, gcc Make: make ------------------------------------------------------------------------------- Sysvinit ------------------------------------------------------------------------------- Local Oficial para Download Sysvinit (2.84): ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/ ------------------------------------------------------------------------------- Conteúdo de Sysvinit Última verificação na versão 2.84. O pacote Sysvinit contém programas para controle da inicialização, execução e término de programas. Sysvinit instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas halt, init, killall5, last, lastb (ligação para last), mesg, pidof (ligação para killall5), poweroff (ligação para halt), reboot (ligação para halt), runlevel, shutdown, sulogin, telinit (ligação para init), utmpdump e wall ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.84. ------------------------------------------------------------------------------- Descrições dos programas halt halt marca, no arquivo /var/log/wtmp, que o sistema está sendo desligado e então pede ao kernel para desativar, reiniciar ou desligar o sistema. Se halt ou reboot são executados quando o sistema não está no nível de execução 0 ou 6, shutdown será invocado (com a opção -h ou -r). ------------------------------------------------------------------------------- init init é o pai de todos os processos. Sua primeira tarefa é criar processos a partir de um script armazenado no arquivo /etc/inittab. Este arquivo geralmente possui entradas que fazem o init criar gettys em cada linha na qual usuários podem logar-se. Ele também controla processos autônomos requeridos por qualquer sistema em particular. ------------------------------------------------------------------------------- killall5 killall5 é o comando killall do SystemV. Ele envia um sinal para todos os processos exceto aqueles em sua própria sessão, assim ele não irá terminar o shell que está executando o script que o invocou. ------------------------------------------------------------------------------- last last procura através do arquivo /var/log/wtmp (ou do arquivo designado pela opção -f) e exibe uma lista de todos os usuários logados (ou não) desde quando aquele arquivo foi criado. ------------------------------------------------------------------------------- lastb lastb faz o mesmo que last, exceto que por padrão ele mostra um log do arquivo /var/log/btmp, que contém todas as tentativas falhas de login. ------------------------------------------------------------------------------- mesg mesg controla o acesso ao terminal do usuário por outras pessoas. Ele é tipicamente usado para habilitar ou desabilitar a escrita por outros usuários em seu terminal. ------------------------------------------------------------------------------- pidof pidof exibe os identificadores de processo (PIDs) dos programas citados. ------------------------------------------------------------------------------- poweroff poweroff é equivalente a shutdown -h -p now. Ele desativa e desliga o computador (quando usando uma BIOS com APM e o APM está habilitado no kernel). ------------------------------------------------------------------------------- reboot reboot é equivalente a shutdown -r now. Ele reinicia o computador. ------------------------------------------------------------------------------- runlevel runlevel lê o arquivo utmp do sistema (geralmente /var/run/utmp), localiza o registro do nível de execução e exibe o nível de execução anterior e atual do sistema na saída padrão, separados por um espaço. ------------------------------------------------------------------------------- shutdown shutdown desativa o sistema de um modo seguro. Todos os usuários logados são notificados de que o sistema será desativado e novos logins são bloqueados. ------------------------------------------------------------------------------- sulogin sulogin é invocado por init quando o sistema entra em modo monousuário (isto é feito através de uma entrada em /etc/inittab). Init também tenta executar sulogin quando é passado a opção -b a partir do gerenciador de boot (LILO, por exemplo). ------------------------------------------------------------------------------- telinit telinit envia os sinais apropriados ao init, dizendo a ele qual nível de execução entrar. ------------------------------------------------------------------------------- utmpdump utmpdump exibe o conteúdo de um arquivo (geralmente /var/run/utmp) na saída padrão em um formato amigável. ------------------------------------------------------------------------------- wall wall envia uma mensagem aos usuários logados que possuem sua permissão mesg configurada. ------------------------------------------------------------------------------- Dependências de instalação do Sysvinit Última verificação na versão 2.84. Bash: sh Binutils: as, ld Fileutils: chown, cp, install, ln, mknod, rm Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed ------------------------------------------------------------------------------- Tar ------------------------------------------------------------------------------- Local Oficial para Download Tar (1.13): ftp://ftp.gnu.org/gnu/tar/ Tar Patch (1.13): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Tar Última verificação na versão 1.13. Tar é um programa de arquivamento que armazena e extrai arquivos de um pacote conhecido como arquivo tar. Tar instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas rmt e tar ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.13. ------------------------------------------------------------------------------- Descrições dos programas rmt rmt é usado por programas de backup remoto para manipularem um drive de fita magnética através de uma conexão interprocessada. ------------------------------------------------------------------------------- tar tar é um programa de arquivamento que armazena e extrai arquivos de um pacote conhecido como arquivo tar. ------------------------------------------------------------------------------- Dependências de instalação do Tar Última verificação na versão 1.13. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Patch: patch Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Texinfo ------------------------------------------------------------------------------- Local Oficial para Download Texinfo (4.3): ftp://ftp.gnu.org/gnu/texinfo/ ------------------------------------------------------------------------------- Conteúdo de Texinfo Última verificação na versão 4.2. O pacote Texinfo contém programas para leitura, criação e conversão de documentos Info, que provêm documentação para o sistema. Texinfo instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas info, infokey, install-info, makeinfo, texi2dvi e texindex ------------------------------------------------------------------------------- Descrições Última verificação na versão 4.2. ------------------------------------------------------------------------------- Descrições dos programas info O programa info lê documentos Info, normalmente contidos no diretório /usr/ share/info. Documentos Info são como páginas de manual, mas eles costumam ser mais detalhados do que apenas explicar as opções de um programa. ------------------------------------------------------------------------------- infokey infokey compila em formato binário um arquivo-fonte contendo comandos Info. ------------------------------------------------------------------------------- install-info O programa install-info atualiza as entradas do info. Quando o programa info é executado, uma lista com os tópicos disponíveis (ex: documentos info disponíveis) será apresentada. O programa install-info é usado para manter esta lista de tópicos disponíveis. Se arquivos info são removidos manualmente, você precisa remover também seus tópicos do arquivo-índice. ------------------------------------------------------------------------------- makeinfo O programa makeinfo converte documentos-fontes Texinfo para vários formatos. Os formatos disponíveis são: arquivos info, texto plano e HTML. ------------------------------------------------------------------------------- texi2dvi O programa texi2dvi exibe documentos Texinfo. ------------------------------------------------------------------------------- texindex O programa texindex é usado para ordenar arquivos-índices Texinfo. ------------------------------------------------------------------------------- Dependências de instalação do Texinfo Última verificação na versão 4.0. Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Textutils ------------------------------------------------------------------------------- Local Oficial para Download Textutils (2.1): ftp://ftp.gnu.org/gnu/textutils/ ------------------------------------------------------------------------------- Conteúdo de Textutils Última verificação na versão 2.0. O pacote Textutils contém vários programas para manipulação de arquivos e processamento de texto. Textutils instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq e wc ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.0. ------------------------------------------------------------------------------- Descrições dos programas cat cat concatena arquivos ou entrada padrão para a saída padrão. ------------------------------------------------------------------------------- cksum cksum exibe a assinatura CRC e contagem de bytes de cada arquivo especificado. ------------------------------------------------------------------------------- comm comm compara linha por linha dois arquivos ordenados. ------------------------------------------------------------------------------- csplit csplit exibe partes de um arquivo separadas por um padrão em arquivos xx01, xx02, ..., e retorna a contagem de bytes de cada parte. ------------------------------------------------------------------------------- cut cut exibe partes selecionadas de linhas dos arquivos especificados para a saída padrão. ------------------------------------------------------------------------------- expand expand converte tabs para espaços em arquivos, escrevendo para a saída padrão. ------------------------------------------------------------------------------- fmt fmt reformata cada parágrafo dos arquivos especificados, escrevendo para a saída padrão. ------------------------------------------------------------------------------- fold fold quebra linhas de cada arquivo especificado (ou entrada padrão), escrevendo para a saída padrão. ------------------------------------------------------------------------------- head head exibe as primeiras xx (10 por padrão) linhas de cada arquivo especificado para a saída padrão. ------------------------------------------------------------------------------- join join une linhas de dois arquivos em um campo comum. ------------------------------------------------------------------------------- md5sum md5sum exibe ou verifica assinaturas MD5. ------------------------------------------------------------------------------- nl nl escreve cada arquivo especificado para a saída padrão, com os números das linhas incluídas. ------------------------------------------------------------------------------- od od escreve para a saída padrão uma representação não ambígua, em octal por padrão, de um arquivo especificado. ------------------------------------------------------------------------------- paste paste escreve para a saída padrão linhas consistindo em linhas seqüenciais de cada arquivo especificado, separado por TABs. ------------------------------------------------------------------------------- pr pr formata em páginas ou colunas para impressão. ------------------------------------------------------------------------------- ptx ptx produz um índice permutado do conteúdo de um arquivo. ------------------------------------------------------------------------------- sort sort escreve para a saída padrão a concatenação ordenada de arquivos. ------------------------------------------------------------------------------- split split exibe trechos de tamanho fixo de um arquivo para PREFIXOaa, PREFIXOab, ... ------------------------------------------------------------------------------- sum sum exibe a assinatura e contagem de blocos para cada arquivo especificado. ------------------------------------------------------------------------------- tac tac escreve cada arquivo especificado para a saída padrão, em ordem inversa. ------------------------------------------------------------------------------- tail tail exibe as últimas xx (10 por padrão) linhas de cada arquivo especificado. ------------------------------------------------------------------------------- tr tr traduz, comprime e/ou remove caracteres da entrada padrão, escrevendo para a saída padrão. ------------------------------------------------------------------------------- tsort tsort escreve listas totalmente ordenadas consistentes com a ordenação parcial dos arquivos especificados. ------------------------------------------------------------------------------- unexpand unexpand converte espaços de cada arquivo para TABs, escrevendo para a saída padrão. ------------------------------------------------------------------------------- uniq uniq remove linhas duplicadas de um arquivo ordenado. ------------------------------------------------------------------------------- wc wc exibe a contagem de linhas, palavras e bytes para cada arquivo especificado e uma linha total, se mais de um arquivo foi especificado. ------------------------------------------------------------------------------- Dependências de instalação do Textutils Última verificação na versão 2.0. Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Perl: perl Sed: sed Sh-utils: basename, echo, expr, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr ------------------------------------------------------------------------------- Util-linux ------------------------------------------------------------------------------- Local Oficial para Download Util-linux (2.11y): ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/ ------------------------------------------------------------------------------- Conteúdo de Util-linux Última verificação na versão 2.11t. O pacote Util-linux contém programas diversos. Os mais importantes são usados para montar, desmontar, formatar, particionar e gerenciar discos rígidos, abrir portas tty e capturar mensagens do kernel. Util-linux instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize (ligação para rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (ligação para rdev), script, setfdprm, setsid, setterm, sfdisk, swapoff (ligação para swapon), swapon, test.bash, test.tcsh, tunelp, ul, umount, vidmode (ligação para rdev), whereis e write ------------------------------------------------------------------------------- Descrições Última verificação na versão 2.11t. ------------------------------------------------------------------------------- Descrições dos programas agetty agetty abre uma porta tty, pede um nome de login e invoca o comando /bin/login. ------------------------------------------------------------------------------- arch arch exibe a arquitetura da máquina. ------------------------------------------------------------------------------- blockdev blockdev permite chamar ioctls de dispositivos de bloco na linha de comando. ------------------------------------------------------------------------------- cal cal exibe um calendário simples. ------------------------------------------------------------------------------- cfdisk cfdisk é um manipulador da tabela de partição baseado no libncurses. ------------------------------------------------------------------------------- chkdupexe chkdupexe procura executáveis duplicados. ------------------------------------------------------------------------------- col col filtra LFs (line feeds) reversos da entrada. ------------------------------------------------------------------------------- colcrt colcrt filtra a saída do nroff para visualização em CRT. ------------------------------------------------------------------------------- colrm colrm remove colunas de um arquivo. ------------------------------------------------------------------------------- column column coluna listas. ------------------------------------------------------------------------------- ctrlaltdel ctrlaltdel configura a função da combinação de teclas CTRL+ALT+DEL (desligamento 'soft' ou 'hard'). ------------------------------------------------------------------------------- cytune cytune pesquisa e modifica a interrupção para o driver Cyclades. ------------------------------------------------------------------------------- ddate ddate converte datas Gregorianas para Discordianas. ------------------------------------------------------------------------------- dmesg dmesg é usado para examinar ou controlar o buffer de mensagens do kernel (mensagens de inicialização). ------------------------------------------------------------------------------- elvtune elvtune permite a você ajustar o elevador I/O com base na fila de dispositivos de blocos. ------------------------------------------------------------------------------- fdformat fdformat formata um disquete em baixo nível. ------------------------------------------------------------------------------- fdisk fdisk é um manipulador da tabela de partição do disco. ------------------------------------------------------------------------------- fsck.cramfs Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- fsck.minix fsck.minix faz uma verificação de consistência no sistema de arquivos MINIX. ------------------------------------------------------------------------------- getopt getopt analisa opções de comandos da mesma forma que a função getopt do C. ------------------------------------------------------------------------------- hexdump hexdump exibe os arquivos especificados, ou a entrada padrão, em um dado formato (ascii, decimal, hexadecimal, octal). ------------------------------------------------------------------------------- hwclock hwclock exibe e configura o relógio de hardware (também chamado de RTC ou relógio da BIOS). ------------------------------------------------------------------------------- ipcrm ipcrm remove um recurso especificado. ------------------------------------------------------------------------------- ipcs ipcs provê informações sobre o IPC. ------------------------------------------------------------------------------- isosize isosize exibe o tamanho de um sistema de arquivos iso9660. ------------------------------------------------------------------------------- line line copia uma linha (até a nova-linha) da entrada padrão e a escreve na saída padrão. ------------------------------------------------------------------------------- logger logger cria entradas no log do sistema. ------------------------------------------------------------------------------- look look exibe linhas que começam com uma dada string. ------------------------------------------------------------------------------- losetup losetup configura e controla dispositivos loop. ------------------------------------------------------------------------------- mcookie mcookie gera cookies mágicos para o xauth. ------------------------------------------------------------------------------- mkfs mkfs cria um sistema de arquivos Linux em um dispositivo, geralmente uma partição do disco. ------------------------------------------------------------------------------- mkfs.bfs mkfs.bfs cria um sistema de arquivos SCO bfs em um dispositivo, geralmente uma partição do disco. ------------------------------------------------------------------------------- mkfs.cramfs Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- mkfs.minix mkfs.minix cria um sistema de arquivos MINIX em um dispositivo, geralmente uma partição do disco. ------------------------------------------------------------------------------- mkswap mkswap configura a memória swap em uma partição ou arquivo. ------------------------------------------------------------------------------- more more é um filtro para paginação de textos em tela cheia. ------------------------------------------------------------------------------- mount mount monta, de várias fontes possíveis, sistemas de arquivos ou diretórios em um diretório (ponto de montagem). ------------------------------------------------------------------------------- namei namei percorre um caminho de arquivo até um ponto terminal ser encontrado. ------------------------------------------------------------------------------- parse.bash, parse.tcsh, test.bash, test.tcsh Estes são scripts de exemplo da utilização do programa getopt com o BASH ou TCSH. ------------------------------------------------------------------------------- pg Nenhuma descrição atualmente disponível. ------------------------------------------------------------------------------- pivot_root pivot_root modifica o sistema de arquivos raiz do processo atual. ------------------------------------------------------------------------------- ramsize ramsize exibe e configura o tamanho do disco RAM. ------------------------------------------------------------------------------- raw raw é usado para ligar um dispositivo de caractere cru a um dispositivo de bloco. ------------------------------------------------------------------------------- rdev rdev exibe e configura o dispositivo raiz de uma imagem, dispositivo swap, disco RAM, ou modo de vídeo. ------------------------------------------------------------------------------- readprofile readprofile lê informações de perfil do kernel. ------------------------------------------------------------------------------- rename rename renomeia arquivos. ------------------------------------------------------------------------------- renice renice altera a prioridade de pocessos em execução. ------------------------------------------------------------------------------- rev rev inverte as linhas de um arquivo. ------------------------------------------------------------------------------- rootflags rootflags exibe e configura informações extras usadas ao montar o diretório raiz. ------------------------------------------------------------------------------- script script cria uma impressão da sessão de terminal. ------------------------------------------------------------------------------- setfdprm setfdprm configura parâmetros do disquete fornecidos pelo usuário. ------------------------------------------------------------------------------- setsid setsid executa programas em uma nova sessão. ------------------------------------------------------------------------------- setterm setterm configura os atributos do terminal. ------------------------------------------------------------------------------- sfdisk sfdisk é um manipulador da tabela de partição do disco. ------------------------------------------------------------------------------- swapoff swapoff desabilita dispositivos e arquivos para paginação e armazenamento temporário. ------------------------------------------------------------------------------- swapon swapon habilita dispositivos e arquivos para paginação e armazenamento temporário. ------------------------------------------------------------------------------- tunelp tunelp configura vários parâmetros para o dispositivo LP. ------------------------------------------------------------------------------- ul ul lê um arquivo e traduz ocorrências de underscores para a seqüência que indica sublinhado no terminal em uso. ------------------------------------------------------------------------------- umount umount desmonta um sistema de arquivos ou diretório. ------------------------------------------------------------------------------- vidmode vidmode exibe e configura o modo de vídeo. ------------------------------------------------------------------------------- whereis whereis localiza o binário, arquivo-fonte e página de manual de um comando. ------------------------------------------------------------------------------- write write envia uma mensagem para outro usuário, se aquele usuário tem escrita habilitada (geralmente usando o mesg). ------------------------------------------------------------------------------- Dependências de instalação do Util-linux Última verificação na versão 2.11n. Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, cp, install, ln, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp, cpp0 Glibc: rpcgen Grep: grep Make: make Sed: sed Sh-utils: uname, whoami Textutils: cat ------------------------------------------------------------------------------- Vim ------------------------------------------------------------------------------- Local Oficial para Download Vim (6.1): ftp://ftp.vim.org/pub/editors/vim/unix/ Vim Patch (6.1): ftp://ftp.linuxfromscratch.org/lfs-packages/cvs/ http://downloads.linuxfromscratch.org/ ------------------------------------------------------------------------------- Conteúdo de Vim Última verificação na versão 6.1. O pacote Vim contém um editor de texto personalizável e eficiente. Vim instala os seguintes arquivos: ------------------------------------------------------------------------------- Programas efm_filter.pl, efm_perl.pl, ex (ligação para vim), less.sh, mve.awk, pltags.pl, ref, rview (ligação para vim), rvim (ligação para vim), shtags.pl, tcltags, vi (ligação para vim), view (ligação para vim), vim, vim132, vim2html.pl, vimdiff (ligação para vim), vimm, vimspell.sh, vimtutor e xxd ------------------------------------------------------------------------------- Alternativas para o Vim * emacs, joe e nano http://beyond.linuxfromscratch.org/view/cvs/postlfs/editors.html ------------------------------------------------------------------------------- Descrições Última verificação na versão 6.1. ------------------------------------------------------------------------------- Descrições dos programas efm_filter.pl efm_filter.pl é um filtro que lê da entrada padrão, copia para a saída padrão e cria um arquivo de erro que pode ser lido pelo vim. ------------------------------------------------------------------------------- efm_perl.pl efm_perl.pl reformata as mensagens de erro do interpretador Perl para uso com o modo quickfix do vim. ------------------------------------------------------------------------------- ex ex inicia o vim em modo Ex. ------------------------------------------------------------------------------- less.sh less.sh é um script que inicia o vim com less.vim. ------------------------------------------------------------------------------- mve.awk mve.awk processa erros do vim. ------------------------------------------------------------------------------- pltags.pl pltags.pl cria um arquivo tags para o código Perl, para uso com o vim. ------------------------------------------------------------------------------- ref ref verifica a gramática dos argumentos. ------------------------------------------------------------------------------- rview rview é uma versão restrita do view. Nenhum comando shell pode ser iniciado e o vim não pode ser suspendido. ------------------------------------------------------------------------------- rvim rvim é uma versão restrita do vim. Nenhum comando shell pode ser iniciado e o vim não pode ser suspendido. ------------------------------------------------------------------------------- shtags.pl shtags.pl gera um arquivo de tags para scripts Perl. ------------------------------------------------------------------------------- tcltags tcltags gera um arquivo de tags para código TCL. ------------------------------------------------------------------------------- vi vi inicia o vim em modo compatível com o vi. ------------------------------------------------------------------------------- view view inicia o vim em modo somente-leitura. ------------------------------------------------------------------------------- vim vim inicia o vim em modo normal. ------------------------------------------------------------------------------- vim132 vim132 inicia o vim em modo de terminal com 132 colunas. ------------------------------------------------------------------------------- vim2html.pl vim2html.pl converte a documentação do vim para HTML. ------------------------------------------------------------------------------- vimdiff vimdiff edita duas ou três versões de um arquivo com o vim e exibe as diferenças. ------------------------------------------------------------------------------- vimm vimm habilita o modelo de entrada do localizador DEC em um terminal remoto. ------------------------------------------------------------------------------- vimspell.sh vimspell.sh é um script que verifica a gramática de um arquivo e gera as instruções de sintaxe necessárias para o destaque no vim. ------------------------------------------------------------------------------- vimtutor vimtutor inicia o tutorial do Vim. ------------------------------------------------------------------------------- xxd xxd exibe um arquivo em hexadecimal ou faz o inverso. ------------------------------------------------------------------------------- Dependências de instalação do Vim Última verificação na versão 6.0. Bash: sh Binutils: as, ld, strip Diffutils: cmp, diff Fileutils: chmod, cp, ln, mkdir, mv, rm, touch Find: find Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Net-tools: hostname Sed: sed Sh-utils: echo, expr, uname, whoami Textutils: cat, tr, wc ------------------------------------------------------------------------------- Zlib ------------------------------------------------------------------------------- Local Oficial para Download Zlib (1.1.4): http://www.gzip.org/zlib/ ------------------------------------------------------------------------------- Conteúdo de Zlib Última verificação na versão 1.1.4. O pacote Zlib contém a biblioteca zlib, usada por muitos programas em funções de compressão e descompressão. Zlib instala os seguintes arquivos: ------------------------------------------------------------------------------- Bibliotecas libz[a,so] ------------------------------------------------------------------------------- Descrições Última verificação na versão 1.1.4. ------------------------------------------------------------------------------- Descrições dos programas libz Esta é a biblioteca zlib, usada por muitos programas para compressão e descompressão. ------------------------------------------------------------------------------- Dependências de instalação do Zlib Não foram verificadas ainda.