Escolar Documentos
Profissional Documentos
Cultura Documentos
Verso 6.1
Gerard Beekmans
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.
Table of Contents
Prefcio ............................................................................................................................................................ vii 1. Introduo .............................................................................................................................................. vii 2. Pblico-alvo .......................................................................................................................................... viii 3. Pr-requisitos ........................................................................................................................................... x 4. Requisitos do sistema anfitrio ............................................................................................................... xi 5. Convenes utilizadas neste livro .......................................................................................................... xii 6. Estrutura ................................................................................................................................................ xiv 7. Errata ...................................................................................................................................................... xv I. Introduo ..................................................................................................................................................... 16 1. Introduo .............................................................................................................................................. 17 1.1. Como construir um sistema LFS .................................................................................................. 17 1.2. Changelog ..................................................................................................................................... 19 1.3. Suporte .......................................................................................................................................... 28 1.4. Ajuda ............................................................................................................................................. 29 2. Preparando uma nova partio ............................................................................................................... 32 2.1. Introduo ..................................................................................................................................... 32 2.2. Criando uma nova partio ........................................................................................................... 33 2.3. Criando um sistema de arquivos na partio ................................................................................ 34 2.4. Montando a nova partio ............................................................................................................. 35 II. Preparando a configurao .......................................................................................................................... 36 3. Pacotes e patches .................................................................................................................................... 37 3.1. Introduo ..................................................................................................................................... 37 3.2. Todos os Pacotes ........................................................................................................................... 38 3.3. Patches necessrios ....................................................................................................................... 42 4. Preparaes Finais ................................................................................................................................. 44 4.1. Sobre a varivel $LFS ................................................................................................................... 44 4.2. Criando o diretrio $LFS/tools ..................................................................................................... 45 4.3. Adicionando o usurio LFS .......................................................................................................... 46 4.4. Configurando o ambiente .............................................................................................................. 47 4.5. SBUs ............................................................................................................................................. 50 4.6. Suites de testes .............................................................................................................................. 51 5. Construindo um sistema provisrio ....................................................................................................... 52 5.1. Introduo ..................................................................................................................................... 52 5.2. Notas tcnicas sobre as ferramentas provisrias ........................................................................... 53 5.3. Binutils-2.15.94.0.2.2 - primeira passagem .................................................................................. 58 5.4. GCC-3.4.3 - primeira passagem .................................................................................................... 60 5.5. Linux-Libc-Headers-2.6.11.2 ........................................................................................................ 62 5.6. Glibc-2.3.4 .................................................................................................................................... 63 5.7. Ajustando as ferramentas provisrias ........................................................................................... 66 5.8. Tcl-8.4.9 ........................................................................................................................................ 69 5.9. Expect-5.43.0 ................................................................................................................................ 71 5.10. DejaGNU-1.4.4 ........................................................................................................................... 73 5.11. GCC-3.4.3 - Pass 2 ...................................................................................................................... 74 5.12. Binutils-2.15.94.0.2.2 - segunda passagem ................................................................................. 78 iii
Linux From Scratch - Verso 6.1 5.13. Gawk-3.1.4 .................................................................................................................................. 80 5.14. Coreutils-5.2.1 ............................................................................................................................. 81 5.15. Bzip2-1.0.3 .................................................................................................................................. 82 5.16. Gzip-1.3.5 ................................................................................................................................... 83 5.17. Diffutils-2.8.1 .............................................................................................................................. 84 5.18. Findutils-4.2.23 ........................................................................................................................... 85 5.19. Make-3.80 ................................................................................................................................... 86 5.20. Grep-2.5.1a ................................................................................................................................. 87 5.21. Sed-4.1.4 ..................................................................................................................................... 88 5.22. Gettext-0.14.3 ............................................................................................................................. 89 5.23. Ncurses-5.4 ................................................................................................................................. 90 5.24. Patch-2.5.4 .................................................................................................................................. 91 5.25. Tar-1.15.1 .................................................................................................................................... 92 5.26. Texinfo-4.8 .................................................................................................................................. 93 5.27. Bash-3.0 ...................................................................................................................................... 94 5.28. M4-1.4.3 ...................................................................................................................................... 95 5.29. Bison-2.0 ..................................................................................................................................... 96 5.30. Flex-2.5.31 .................................................................................................................................. 97 5.31. Util-linux-2.12q .......................................................................................................................... 98 5.32. Perl-5.8.6 ..................................................................................................................................... 99 5.33. Stripping .................................................................................................................................... 100 III. Configurando o sistema LFS ................................................................................................................... 101 6. Instalando o software do sistema bsico .............................................................................................. 102 6.1. Introduo ................................................................................................................................... 102 6.2. Montando os sistemas de arquivos virtuais do kernel ................................................................ 103 6.3. Entrando no ambiente Chroot ..................................................................................................... 104 6.4. Mudana na propriedade ............................................................................................................. 105 6.5. Criando diretrios ....................................................................................................................... 106 6.6. Criando vnculos simblicos essenciais ...................................................................................... 107 6.7. Criando os arquivos passwd, group, e de log .............................................................................. 108 6.8. Ocupando o /dev ......................................................................................................................... 110 6.9. Linux-Libc-Headers-2.6.11.2 ...................................................................................................... 112 6.10. Man-pages-2.01 ........................................................................................................................ 113 6.11. Glibc-2.3.4 ................................................................................................................................ 114 6.12. Re-ajustando as ferramentas provisrias .................................................................................. 121 6.13. Binutils-2.15.94.0.2.2 ............................................................................................................... 123 6.14. GCC-3.4.3 ................................................................................................................................. 126 6.15. Coreutils-5.2.1 ........................................................................................................................... 129 6.16. Zlib-1.2.2 ................................................................................................................................... 135 6.17. Mktemp-1.5 ............................................................................................................................... 137 6.18. Iana-Etc-1.04 ............................................................................................................................. 138 6.19. Findutils-4.2.23 ......................................................................................................................... 139 6.20. Gawk-3.1.4 ................................................................................................................................ 141 6.21. Ncurses-5.4 ............................................................................................................................... 142 6.22. Readline-5.0 .............................................................................................................................. 144 6.23. Vim-6.3 ..................................................................................................................................... 146 6.24. M4-1.4.3 .................................................................................................................................... 149 6.25. Bison-2.0 ................................................................................................................................... 150 6.26. Less-382 .................................................................................................................................... 151 iv
Linux From Scratch - Verso 6.1 6.27. Groff-1.19.1 .............................................................................................................................. 152 6.28. Sed-4.1.4 ................................................................................................................................... 155 6.29. Flex-2.5.31 ................................................................................................................................ 156 6.30. Gettext-0.14.3 ........................................................................................................................... 158 6.31. Inetutils-1.4.2 ............................................................................................................................ 160 6.32. IPRoute2-2.6.11-050330 ........................................................................................................... 162 6.33. Perl-5.8.6 ................................................................................................................................... 164 6.34. Texinfo-4.8 ................................................................................................................................ 166 6.35. Autoconf-2.59 ........................................................................................................................... 168 6.36. Automake-1.9.5 ......................................................................................................................... 170 6.37. Bash-3.0 .................................................................................................................................... 172 6.38. File-4.13 .................................................................................................................................... 174 6.39. Libtool-1.5.14 ........................................................................................................................... 175 6.40. Bzip2-1.0.3 ................................................................................................................................ 176 6.41. Diffutils-2.8.1 ............................................................................................................................ 178 6.42. Kbd-1.12 ................................................................................................................................... 179 6.43. E2fsprogs-1.37 .......................................................................................................................... 181 6.44. Grep-2.5.1a ............................................................................................................................... 184 6.45. GRUB-0.96 ............................................................................................................................... 185 6.46. Gzip-1.3.5 ................................................................................................................................. 187 6.47. Hotplug-2004_09_23 ................................................................................................................ 189 6.48. Man-1.5p ................................................................................................................................... 191 6.49. Make-3.80 ................................................................................................................................. 193 6.50. Module-Init-Tools-3.1 .............................................................................................................. 194 6.51. Patch-2.5.4 ................................................................................................................................ 196 6.52. Procps-3.2.5 .............................................................................................................................. 197 6.53. Psmisc-21.6 ............................................................................................................................... 199 6.54. Shadow-4.0.9 ............................................................................................................................ 200 6.55. Sysklogd-1.4.1 .......................................................................................................................... 204 6.56. Sysvinit-2.86 ............................................................................................................................. 206 6.57. Tar-1.15.1 .................................................................................................................................. 209 6.58. Udev-056 ................................................................................................................................... 210 6.59. Util-linux-2.12q ........................................................................................................................ 212 6.60. Sobre os smbolos de debbug .................................................................................................... 216 6.61. Stripping novamente ................................................................................................................. 217 6.62. ltimos cuidados ...................................................................................................................... 218 7. Configurando os scripts de inicializao do sistema ........................................................................... 219 7.1. Introduo ................................................................................................................................... 219 7.2. LFS-Bootscripts-3.2.1 ................................................................................................................. 220 7.3. Como estes scripts de inicializao trabalham? .......................................................................... 222 7.4. Manipulando dispositivos e mdulos em um sistema LFS ......................................................... 224 7.5. Configurando o script setclock ................................................................................................... 228 7.6. Configurando o terminal Linux .................................................................................................. 229 7.7. Configurando o script sysklogd .................................................................................................. 231 7.8. Criando o arquivo /etc/inputrc .................................................................................................... 232 7.9. Os arquivos de inicializao do shell bash ................................................................................. 234 7.10. Configurando o script localnet .................................................................................................. 236 7.11. Criando o arquivo /etc/hosts ..................................................................................................... 237 7.12. Configurando o script de rede ................................................................................................... 238 v
Linux From Scratch - Verso 6.1 8. Fazendo o sistema LFS inicializvel .................................................................................................... 240 8.1. Introduo ................................................................................................................................... 240 8.2. Criando o arquivo /etc/fstab ........................................................................................................ 241 8.3. Linux-2.6.11.12 ........................................................................................................................... 242 8.4. Tornando o sistema LFS inicializvel ......................................................................................... 245 9. Fim ....................................................................................................................................................... 247 9.1. Fim .............................................................................................................................................. 247 9.2. Receba seu nmero ..................................................................................................................... 248 9.3. Reinicialize o sistema ................................................................................................................. 249 9.4. E agora? ...................................................................................................................................... 250 IV. Apndices ................................................................................................................................................ 251 A. Termos e Anacronismos ...................................................................................................................... 252 B. Agradecimentos ................................................................................................................................... 255 Index .............................................................................................................................................................. 258
vi
Prefcio
1. Introduo
Minhas aventuras em Linux comearam em 1998 quando eu fiz o download e instalei minha primeira distribuio. Aps trabalhar com ela por certo tempo, descobri recursos que eu definitivamente gostaria de ver melhorados. Por exemplo, eu no gostei do arranjo dos scripts de inicializao ou da maneira que os aplicativos foram configurados pelo programa de instalao. Eu tentei vrias distribuies alternativas, contudo cada uma tinha seus prs e seus contras. Finalmente, eu percebi que se eu quisesse ter plena satisfao com meu sistema Linux, eu teria que criar um desde o incio, a partir do zero. Como fazer isso? Eu resolvi no usar pacotes pr-compilados de qualquer tipo, nem discos de CD-ROMs ou discos de inicializao que instalassem utilitrios bsicos. Eu usaria meu sistema Linux atual para desenvolver meu prprio sistema persionalizado. Este sistema Linux perfeito teria ento as qualidades de vrios sistemas sem suas fraquezas associadas. No comeo, a idia pareceu desencorajadora, mas eu permaneci fiel ao propsito de que um sistema Linux poderia ser criado, a fim de atender s minhas necessidades e desejos, de uma forma muito melhor que um modelo padronizado que simplesmente no atendia ao que eu procurava. Superando problemas tais como dependncias recprocas e erros em tempo de compilao, eu criei um sistema Linux inteiramente operacional e apropriado s minhas necessidades. Este processo permitiu tambm que eu criasse sistemas Linux compactos, personalizados, que so mais rpidos e que ocupam menos espao em disco do que os sistemas operacionais tradicionais. Eu chamei este sistema de Linux From Scratch, ou LFS. Enquanto eu compartilhava meus objetivos e experincias com outros membros da comunidade Linux, percebi que havia um grande interesse em minhas aventuras. Os sistemas LFS servem no somente para se adequar s especificaes e exigncias do usurio, mas servem tambm como uma oportunidade ideal de aprendizado para que programadores e administradores de sistema desenvolvam suas habilidades em Linux. O LFS foi desenvolvido tambm com esta segunda finalidade. Este livro Linux From Scratch fornece as instrues necessrias para projetar e criar sistemas Linux feitos sob medida. Este roteiro enfoca o LFS e os benefcios de usar este sistema. Os usurios podem ditar todos os aspectos de seu sistema, incluindo a disposio dos diretrios, a instalao dos scripts e a segurana. O sistema resultante ser compilado completamente a partir dos cdigos fonte e o usurio poder especificar onde, porque e como os programas sero instalados. Este livro permite que os leitores ajustem inteiramente o sistema Linux s suas prprias necessidades e permite aos usurios maior controle sobre seu sistema. Eu espero que voc tenha uma tima experincia ao trabalhar em seu prprio sistema LFS e que aprecie os numerosos benefcios de ter um sistema que seja verdadeiramente seu. -Gerard Beekmans gerard@linuxfromscratch.org
vii
2. Pblico-alvo
H vrias razes para algum querer ler este livro. A razo principal deve ser instalar um sistema Linux a partir dos cdigos-fonte. Uma pergunta muito comum por que passar por todo este inconveniente de criar manualmente um sistema LFS quando voc pode apenas fazer o download e instalar uma distribuio existente? Esta uma boa pergunta, e a razo de ser desta seo do livro. Uma razo muito importante para a existncia do LFS ajudar no aprendizado sobre como um sistema Linux trabalha internamente. Construir um sistema LFS demonstra como funciona o Linux, como as suas partes trabalham junto e como dependem entre si. Uma das melhores coisas que esta experincia de aprendizado fornece a habilidade de personalizar o Linux ao seu prprio gosto e necessidade. O maior benefcio da implementao do LFS permitir que os usurios tenham mais controle sobre o sistema sem ter que confiar na implementao do Linux de outra pessoa. Com o LFS, voc est na cadeira do motorista e define cada aspecto do sistema, tal como a disposio da rvore de diretrios e as rotinas de inicializao. Voc determina tambm onde, porque e como os programas sero instalados. Outro benefcio do LFS poder criar um sistema Linux muito compacto. Ao instalar uma distribuio regular, voc freqentemente forado a incluir diversos programas que provavelmente no sero usados nunca. Estes programas desperdiam espao em disco, ou pior, recursos do processador central. No difcil criar um sistema LFS com menos de 100 megabytes (MB), o que substancialmente menor do que a maioria de distribuies existentes. Isto ainda lhe soa como muito do espao? Alguns de ns tm trabalhado para criar um sistema LFS muito pequeno. Ns construmos com sucesso um sistema especializado para funcionar com o Apache Web Server com aproximadamente 8MB de espao em disco usado. Dispensar alguns adicionais poderia reduzir este espao para 5 MB. Tente isso com uma distribuio regular! Este somente um dos muitos benefcios de projetar sua prpria verso do Linux. Ns poderamos comparar distribuies do Linux a um hamburger comprado em um fast-food no temos nenhuma idia do que se est comendo. O LFS, por outro lado, no lhe d um hamburger, mas sim a receita para fazer o hamburger que voc deseja. Isto permite aos usurios examinar a receita, suprimir ingredientes no desejados e adicionar seus prprios ingredientes para realar o sabor do hamburguer. Quando voc estiver satisfeito com sua receita, comece a prepar-la. E pode faz-lo da forma que voc preferir grelhado, assado ou frito. Uma outra analogia que ns podemos usar comparar o LFS com uma casa terminada. O LFS fornece a planta estrutural de uma casa, mas voc quem vai constru-la. E o LFS mantm sua liberdade para ajustar a planta durante todo o processo de construo, personalizada segundo as suas necessidades e preferncias. Uma vantagem adicional de um sistema Linux personalizado a segurana. Compilando o sistema inteiro a partir dos cdigos-fonte, voc pode examinar tudo e aplicar todos as corees (patches) de segurana que quiser. No necessrio esperar que algum compile os binrios com as correes que reparam alguma falha na segurana. Alm disto, a menos que voc examine a correo e a aplique voc mesmo, voc no ter nenhuma garantia de que o problema com o pacote binrio foi corrigido adequadamente. O objetivo do LFS montar um sistema completo e funcional de nvel elementar. Os leitores que no desejam criar seu prprio sistema LFS no vo se beneficiar das informaes deste livro. Se voc quiser somente saber o que acontece quando o computador inicializa, ns recomendamos o HOWTO From Power Up To Bash Prompt localizado em http://axiom.anu.edu.au/~okeefe/p2b/ ou o website The Linux Documentation Project's (TLDP) em http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html. Este HOWTO monta um sistema similar quele que montamos neste lvro, mas se consentra estritamente em criar um sistema capaz de carregar um alerta de comando (prompt) do BASH. Considere seu objetivo. Se voc deseja criar um viii
Linux From Scratch - Verso 6.1 sistema Linux e aprender ao longo do processo, ento este livro sua melhor escolha. Existem tantas boas razes para voc criar seu prprio sistema LFS que no d para list-las todas aqui. Esta seo somente a ponta do iceberg. Ao continuar em sua experincia com o LFS voc sentir o poder que a informao e o conhecimento verdadeiramente pode trazer.
ix
3. Pr-requisitos
Este livro supe que o leitor tenha um conhecimento razovel sobre o uso e a instalao de software em um sistema Linux. Antes de criar um sistema LFS, ns recomendamos a leitura dos seguintes HOWTOs: Software-Building-HOWTO http://www.tldp.org/HOWTO/Software-Building-HOWTO.html Este um guia abrangente sobre a configurao e instalao de software UNIX genrico no Linux. The Linux Users' Guide http://www.linuxhq.com/guides/LUG/guide.html Este guia trata do uso de vrios softwares para Linux. The Essential Pre-Reading Hint http://www.linuxfromscratch.org/hints/downloads/files/essential_prereading.txt Esta uma sugesto da LFS escrita especificamente para os usurios novatos em Linux. Inclui uma lista de endreos com excelentes fontes de informao sobre muitos tpicos. Qualquer um que tente instalar um sistema LFS deve ter uma compreenso de muitos dos tpicos indicados nesta sugesto.
xi
xiii
6. Estrutura
Este livro dividido nas seguintes partes.
xiv
7. Errata
O software utilizado para criar o sistema LFS est sendo constantemente atualizado e desenvolvido. Avisos de segurana e reparos de erros podem se tornar disponveis depois de liberado este livro. Para verificar se h novas verses dos pacotes utilizados ou instrues desta verso do LFS que precisem de alguma modificao para remover vulnerabilidades de segurana ou para corrigir outros erros, por favor, acesse http://www.linuxfromscratch.org/lfs/errata/6.1/ antes de proseguir com a configurao. Voc deve anotar todas as mudanas encontradas l e aplic-las s respectivas sees do livro enquanto configura o seu sistema LFS.
xv
Part I. Introduo
Chapter 1. Introduo
1.1. Como construir um sistema LFS
O sistema LFS ser construdo usando uma distribuio previamente instalada do Linux (tal como Debian, Mandrake, o Red Hat, ou o SuSE). Este sistema (o anfitrio) ser usado como ponto de partida e fornecer os programas necessrios, incluindo um compilador, um editor de vnculos (linker), e um shell, para montar o novo sistema. Escolha a opo desenvolvimento, ou similar, durante a instalao da distribuio anfitri para ter acesso a estas ferramentas. Como alternativa instalao de uma distribuio completa em sua mquina, voc pode preferir usar o Linux From Scratch LiveCD. O LiveCD trabalha bem como um sistema de anfitrio, fornecendo todas as ferramentas que voc necessita para acompanhar com sucesso as instrues deste livro. Adicionalmente, contm todos os pacotes de fontes, patches e uma cpia deste livro [n.t. do original, em ingls]. Assim quando voc tem o LiveCD, nem conexo de rede nem downloads adicionais sero necessrios. Para mais informao sobre o LFS LiveCD ou para fazer o download de uma cpia, visite http://www.linuxfromscratch.org/livecd/. O Chapter 2 deste livro descreve como criar uma nova partio Linux e um sistema de arquivos nativo, onde o novo sistema LFS ser compilado e instalado. O Chapter 3 explica que pacotes e patches so necessrios fazer o download para construir um sistema LFS e como os armazenar no novo sistema de arquivos. O Chapter 4 discute a instalao e configurao de um ambiente de trabalho prprio ao processo de montagem do sistema LFS. Leia por favor o Chapter 4 com muito cuidado, pois ele tem explicaes muito importantes que o leitor deve estar ciente antes do comear trabalhar com o Chapter 5 e seguintes. O Chapter 5 explica a instalao de um certo nmero de pacotes que do forma ao conjunto bsico de desenvolvimento (ou "toolchain") que ser usado para construir o sistema real no Chapter 6. Alguns destes pacotes so necessrios para resolver dependncias cruzadas ou circularespor exemplo para compilar um compilador, necessrio ter um compilador. O Chapter 5 mostra tambm ao usurio como construir uma primeira verso do jogo de ferramentas (que o LFS-book chama detoolchain), incluindo o Binutils e o GCC (por primeira verso queremos dizer basicamente que estes pacotes sero reinstalados uma segunda vez). A etapa seguinte configurar a Glibc, a biblioteca C. A Glibc ser compilada pelos programas do toolchain construdos em primeira verso. Ento, uma segunda verso do conjunto de ferramentas ser configurada. Desta vez, as ferramentas sero vinculadas dinamicamente ao Glibc recm-configurado. Os pacotes restantes do Chapter 5 so configurados usando este segundo conjunto de ferramentas. Quando isto feito, o processo da instalao do LFS no mais depende da distribuio anfitri, com exceo do kernel. Uma explicao tcnica detalhada sobre quando possvel isolar o novo sistema da distribuio anfitri dada no comeo do Chapter 5. No Chapter 6, o sistema LFS completo construdo. O programa chroot (change root) usado para entrar em um ambiente virtual e inicializar um novo shell cujo o diretrio de raiz seja definido na partio do LFS. Isto muito similar a reinicializar e a instruir o kernel para montar a partio LFS como a partio root. O sistema no reinicializa realmente, mas faz um chrootporque criar um sistema inicializvel requer o trabalho adicional que no necessrio neste momento. A vantagem principal de chrooting permitir o uso do sistema anfitrio enquanto o LFS estiver sendo configurado. Enquanto espera a compilao de algum pacote terminar, o usurio pode abrir um console virtual diferente (VC) ou o desktop X e continuar usando seu computador normalmente. Para terminar a instalao, o LFS-Bootscripts configurado no Chapter 7, e o kernel e o boot loader (carregador 17
Linux From Scratch - Verso 6.1 de sistemas) so configurados no Chapter 8. O Chapter 9 contm informaes sobre como prosseguir na experincia do LFS para alm deste livro. Depois que as etapas deste livro forem executadas, o computador estar pronto para reiniciar no novo sistema LFS. Este o processo resumido. As informaes detalhadas de cada etapa so discutidas nos captulos seguintes e nas descries dos pacotes. As passagens que podem parecer complicadas sero esclarecidas, e tudo estar em seu devido lugar assim que o leitor embarcar na aventura LFS.
18
1.2. Changelog
Esta a verso 6.1 do livro Linux From Scratch, datada de 9 de Julho de 2005. Se este roteiro tiver mais de seis meses, uma verso mais nova e melhor provavelmente j estar disponvel. Verifique por favor um dos mirrors atravs da pgina http://www.linuxfromscratch.org/. Abaixo est uma lista das mudanas feitas desde a sua liberao. Primeiro um sumrio, depois um registro detalhado. Atualizado para: Automake 1.9.5 Binutils 2.15.94.0.2.2 Bison 2.0 Bzip2 1.0.3 E2fsprogs 1.37 Expect 5.43.0 File 4.13 Findutils 4.2.23 GCC 3.4.3 Gettext 0.14.2 Glibc 2.3.4 Grep 2.5.1a Grub 0.96 Iana-Etc 1.04 Iproute2 2.6.11-050330 LFS-Bootscripts 3.2.1 Libtool 1.5.14 Linux 2.6.11.12 Linux-libc-headers 2.6.11.2 M4 1.4.3 Man 1.5p Man-pages 2.01 Module-init-tools 3.1 Perl 5.8.6 19
Procps 3.2.5 Psmisc 21.6 Sed 4.1.4 Shadow 4.0.9 Sysvinit 2.86 Tar 1.15.1 Texinfo 4.8 Tcl 8.4.9 Udev 056 Util-linux 2.12q Zlib 1.2.2
Adicionado: bash-3.0-fixes-3.patch bash-3.0-avoid_WCONTINUED-1.patch flex-2.5.31-debian_fixes-3.patch glibc-2.3.4-fix_test-1.patch gzip-1.3.5-security_fixes-1.patch Hotplug 2004_09_23 mktemp-1.5-add_tempfile-2.patch sysklogd-1.4.1-fixes-1.patch tar-1.15.1-sparse_fix-1.patch util-linux-2.12p-cramfs-1.patch vim-6.0-security_fix-1.patch zlib-1.2.2-security_fix-1.patch;
20
9 de julho de 2005 [archaic]: Reescrito notas do kernel. 9 de julho de 2005 [matt]: Adicionada informao a respeito das listas de discusso de segurana e do freshmeat para chapter09/whatnow.xml. Bug 1583 corrigido. Agradecimentos a Steve Crosby pelo relatrio e o texto sugerido. 7 de julho de 2005 [manuel]: Revisados os pacotes e tamanhos dos patchs. Usando o pacote lfs-packages-6.1.tar e o `du - k` para medi-lo. Corrigido a marca (tag) beginpage para a sada do PDF. Removidas as pginas em branco na sada do PDF para verses no publicadas. 6 de julho de 2005 [archaic]: Adicionado patch de segurana para a zlib. 6 de july de 2005 [matt]: Diversas correes de tipos, como sugerido por Bernard Leak. 5 de julho 2005 [archaic]: Removida referencia ao wiki. Apontada para o FAQ. 4 de julho de 2005 [archaic]: Reorganizada pgina de errata, assim referenciando somente avisos de segurana e correes de bugs, no mais novas caractersticas. 4 de julho de 2005 [archaic]: Todas (esperamos que sim) as referencias de pginas de man/info em conformidade. A conformidade se baseou no fato da referncias ser uma pgina especfica do man ou pginas do man em geral. Atualizada tipografia para refletir isto. 2 de julho de 2005 [archaic]: Vrias mudanas pequenas nas frases nos captulos 8 e 9 (matt). Tambm removido o pargrafo sobre a compresso de mdulos do kernel porque est no material de dicas. 2 de julho de 2005 [archaic]: Pequenas alteraes em frases do capitulo 8 (matt). 1 de julho de 2005 [archaic]: Pequenas alteraes de palavras no capitulo 6 (matt). 1 de julho de 2005 [archaic]: Todas ocorrncias de LFS-Bootscripts em conformidade. 30 de junho de 2005 [archaic]: Pequenas alteraes de palavras nos captulos de 1 ao 5 (matt). 30 de junho de 2005 [archaic]: Adicionada uma entidade para o livecd-root. 29 de junho de 2005 [archaic]: Movido a pgina com os requisitos do sistema anfitrio para o prefacio do livro. 28 de junho de 2005 [archaic]: Alterada a montagem do /dev no ramfs para o tmpfs. 27 de junho de 2005 [matthew]: Removida a meno de problemas na suite de testes do captulo 1 j que informaes mais compreensivas so dada no captulo 5 (archaic). 27 de junho de 2005 [matthew]: Reformulada a descrio do caso da falha da atime da glibc e removida a descrio de falha do teste do shm visto que j montamos um tmpfs (archaic). 21
27 de junho de 2005 [archaic]: Preenchido o texto para pgina de errata. Grato pelo texto, Steve! 26 de junho de 2005 [manuel]: Pequenas correes de marcaes (tags). 25 de junho de 2005 [archaic]: Adicionado um espao reservado para a pgina de errata e um endereo eletrnico temporrio (atualmente morto). 25 de junho de 2005 [archaic]: Adicionado entidades "generic-version" e "test-results". 25 de junho de 2005 [archaic]: Adicionado o vnculo simblico compacto para o gzip. 25 de junho de 2005 [jhuntwork]: Adicionado o parmetro --with-tclinclude na compilao do Expect build para garantir que ele saiba onde encontrar o diretrio de fontes do Tcl. 25 de junho de 2005 [matthew]: Atualizada a ltima verso do patch do tempfile do mktemp a qual oferece suporte para a compilao fora do diretrio de cdigos fonte. 23 de junho de 2005 [archaic]: Reformulada a pgina do inputrc. 22 de junho de 2005 [archaic]: Adicionado endereo para os resultados dos testes. 22 de junho de 2005 [archaic]: Atualizado o Shadow para a verso 4.0.9. Removido o patch lastlog. 21 de junho de 2005 [archaic]: Removida a opo --with-included-regex, do capitulo05/grep, j que no parece ter uma razo valida para usa-la e a explicao dela estava incorreta. 21 de junho de 2005 [archaic]: Atualizado para o findutils-4.2.23. 20 de junho de 2005 [archaic]: Atualizado patch do Flex de -2 para -3. 20 de junho de 2005 [manuel]: Adicionado aviso sobre o os cabealhos do kernel e Linux-Libc-Headers, corrigida a lista de arquivos instalados no kernel.xml (bug 1569). Algumas correes de tipos e tags portados do trunk (r6048 ao r6050 e r6053 ao r6056.) Corrigida descrio do programa top (bug 1549.) Corrigida descrio do tar (bug 1553.) Reformulada explicao do patch Util-linux (bug 1554.) 19 de junho de 2005 [jhuntwork]: Alterada lista de servidores IRC para exibir somente irc.linuxfromscratch.org. 19 de junho de 2005 [jhuntwork]: Removida pgina desatualizada do bootcd e adicionada uma breve descrio do LiveCD seo 1.1. 16 de junho de 2005 [archaic]: Adicionadas dependncias de instalao para o hotplug. 16 de junho de 2005 [matthew]: Outros reparos de tipografia e marcao no captulo 7, como reportado por Randy McMurchy. 16 de junho de 2005 [matthew]: Tipografia e marcaes corrigidos no captulo 7, por Randy McMurchy. 16 de junho de 2005 [jhuntwork]: Ajustada descrio do pacote de patch. Grato Randy McMurchy. 16 de junho de 2005 [archaic]: Corrigido link para pgina db BLFS's referenciado em iproute2 (mesclado de trunk r6006). 15 de junho de 2005 [archaic]: Adicionado --disable-nls para pass2 binutils para evitar a exigncia de gettext (mesclado em trunk r5983). 14 de junho de 2005 [archaic]: Atualizado todos tamanhos de configurao (mesclado em r5916, r5917, r5918 e r5972). 22
14 de junho de 2005 [archaic]: Removido --with-included-regex do capitulo 6 uma vez que menos confivel que glibc's em locales no-C. 14 de junho de 2005 [archaic]: Removidas referncias aos tarballs separados do GCC (GCC-ncleo, gcc-g++ etc.) 12 de junho de 2005 [matt]: Atualizado para Linux 2.6.11.12. 8 de junho de 2005 [archaic]: Removida sugesto sobre onde mover /sources e reformulado o resto da pgina (chapter06/revisedchroot.xml). 8 de junho de 2005 [archaic]: Adicionado um comando para impedir que module-init-tools reescreva a pgina do man (o qual confia em docbook2man). 1 de junho de 2005 [manuel]: Patchs do root alterados para lfs/svn/testing/. 23 de maio de 2005 [manuel]: Pequenos melhoramentos de frases (agradecimentos Peter Ennis). 22 de maio de 2005 [matt]: Atualizado para Linux 2.6.11.10. 15 de maio de 2005 [matt]: Adicionado patch de segurana. 15 de maio de 2005 [matt]: Atualizado para Linux 2.6.11.9. 15 de maio de 2005 [matt]: Atualizado para LFS-Bootscripts 3.2.1. 12 de maio de 2005 [matt]: Mais melhoramentos de frases e notas (agradecimentos Peter Ennis e Tony Morgan) 12 de maio de 2005 [matt]: Pequenas melhorias de frases (agradecimentos Peter Ennis) 27 de abril de 2005 [archaic]: Adicionado um patch que corrige duas falhas no testsuite quando rodando no kernel 2.6.11.x. 18 de abril de 2005 [manuel]: Ajustado o tag beginpage para equiparar s alteraes da pgina anterior. 17 de abril de 2005 [manuel]: Atualizado o stylesheets para usar DocBook-XSL 1.68.1. 17 de abril de 2005 [matt]: No cria arquivo de log de eventos do hotplug; o bootscripts manipula isto por ns. 17 de abril de 2005 [matt]: Usa charmaps cannico em /etc/profile e no ajusta LC_ALL (Ken Moffat e Alexander Patrakov) 16 de abril de 2005 [matt]: Reformula manipulao de dispositivos hotpluggable, agora que instalamos o pacote hotplug (Andrew Benton). 16 de abril de 2005 [matt]: Correo pequena de frases/tipos (Allard Welter). 16 de abril de 2005 [matt]: Correo pequena de frases/tipos (Peter Ennis). 16 de abril de 2005 [matt]: Removidas referncias ao link esttico do passo 1 do toolchain, o qual deve ter ido como parte do bug 1061 (Andrew Benton). 13 de abril de 2005 [manuel]: Correes ortogrficas por Archiac. Adicionado tags para ajustar o PDF veja no captulo 06. 12 de abril de 2005 [manuel]: Pequenas mudanas de redao. Adicionado tags para correo do PDF veja 23
em todos captulos, exceto captulo 06. 11 de abril de 2005 [manuel]: Meno ao testsuite do bzip2. Diversas tags e textos corrigidos. 6 de abril de 2005 [matt]: Movido comando sed e2fsprogs para antes de entrar a construo do diretrio (Steffen R. Knollmann). 4 de abril de 2005 [matt]: Tipografia: O udev initscript registra o udevsend, no udev, como o manipulador hotplug (Bryan Kadzban). 4 de abril de 2005 [matt]: No precisa criar manualmente /var/log/hotplug pois o Makefile do hotplug o cria (Ken Moffat). Tambm uma pequena reformulao para entendimento. 4 de abril de 2005 [matt]: Ajustado problema de compilao do e2fsprogs (Ken Moffat e Greg Schafer). 2 de abril de 2005 [jhuntwork]: Ajustado url dtd para o arquivo xml sysklogd. 31 de maro de 2005 [jhuntwork]: Alterado o link para apontar para o menor ftp.gnu.org. 31 de maro de 2005 [matt]: Atualizado para LFS-Bootscripts 3.2.0. 31 de maro de 2005 [matt]: Atualizado para m4-1.4.3. 30 de maro de 2005 [matt]: Atualizado para iproute2-2.6.11-050330. 30 de maro de 2005 [jhuntwork]: Removido syslog-ng-1.6.6, libol-0.3.15. Reinstalado sysklogd-1.4.1. Agradecimentos Archaic pelo patch. 26 de maro de 2005 [matt]: Atualizado para linux-libc-headers-2.6.11.2 26 de maro de 2005 [matt]: Atualizado para linux-libc-headers-2.6.11.1 26 de maro de 2005 [matt]: Atualizado para linux-2.6.11.6 22 de maro de 2005 [jim]: Atualizado para e2fsprogs-1.3.7. 21 de maro de 2005 [jim]: Adicionado patch para corrigir problema com shadow e lastlog. 19 de maro de 2005 [jim]: Adicionado patch para corrigir problema com tar -S 19 de maro de 2005 [matt]: Removido referencia ao patch de segurana do kernel 19 de maro de 2005 [jim]: Atualizado para udev-056 19 de maro de 2005 [jim]: Atualizado para linux-2.6.11.5 19 de maro de 2005 [jim]: Alterado referencia de Iproute2 para IPRoute2 18 de maro de 2005 [jim]: Atualizado para Findutils 4.2.20 16 de maro de 2005 [jim]: Atualizado para linux-2.6.11.4 16 de maro de 2005 [jim]: Removido referencia ao patch de segurana do kernel 16 de maro de 2005 [jim]: Removido patch find_update para IPRoute2, no mais necessrio 15 de maro de 2005 [matt]: Atualizado para iproute2-2.6.11-050314 14 de maro de 2005 [matt]: Lista de arquivos/diretorios instalados ordenados alfabeticamente pela descrio. 24
14 de maro de 2005 [matt]: Correes de tipografia e reformulada a explicao do hotplug (assim esperamos) mais claramente 14 de maro de 2005 [matt]: Atualizado para gettext-0.14.3 14 de maro de 2005 [jim]: Adicionado /var/log/hotplug para capturar eventos do hotplug. Adicionado /lib/firmware para carregar firmware com o hotplug 13 de maro de 2005 [jim]: Atualizado patch iproute2 db para iproute2-2.6.11-050310. Removido patch desnecessrio find_update tambm para iproute2-2.6.11-050310 13 de maro de 2005 [matt]: Atualizado para iproute2-2.6.11-050310 13 de maro de 2005 [matt]: Atualizado para linux-2.6.11.3 e linux-libc-headers-2.6.11.0 13 de maro de 2005 [matt]: Reformulado seo sobre SBUs para refletir a nova correo para o bug 1061 13 de maro de 2005 [matt]: Link dinmico do toolchain pass1 para o trabalho do bug 1061 e removido toda explicao relacionada ao texto. 12 de maro de 2005 [matt]: Atualizado para udev-054 12 de maro de 2005 [matt]: Atualizado para findutils-4.2.19 12 de maro de 2005 [matt]: Atualizado para psmisc 21.6 10 de maro de 2005 [matt]: gettext no mais instala libgettext{lib,src}.a (Jack Brown) 3 de maro de 2005 [matt]: Removido --without-cvs das instrues do glibc, pois no mais usamos glibc CVS snapshots 3 de maro de 2005 [matt]: Ajustado um par de tipos na rea de donwloads. 2 de maro de 2005 [matt]: Adicionado notas as caractersticas potenciais da verso do e2fsprogs em uma distribuio anfitri. Corrigido bug 1047. Agradecimentos Steve Crosby pelas sugestes de explicao do texto. 2 de maro de 2005 [jim]: Atualizado rea de downloads 28 de fevereiro de 2005 [jim]: Atualizado patch de correo do bash para -3 28 de fevereiro de 2005 [matt]: Atualizado binutils para 2.14.94.0.2.2 28 de fevereiro de 2005 [matt]: Alterado /usr/bin/logger para /bin pois o bootscripts precisa dele ali. Corrigido bug 1035. 28 de fevereiro de 2005 [matt]: Atualizado para iana-etc-1.04 28 de fevereiro de 2005 [matt]: Correo das instrues para invocar udev's testsuite (Randy McMurchy) 27 de fevereiro de 2005 [matt]: Correo do ttulo do patch no captulo 3. Corrigido bug 1049 27 de fevereiro de 2005 [matt]: Mencionado udev's testsuite. Corrigido bug 1042 27 de fevereiro de 2005 [matt]: Usa --without-csharp no lugar de --disable-csharp, pois o ltimo no funciona como pretendido. Fixes bug 1033 27 de fevereiro de 2005 [matt]: Atualizado para gettext-0.14.2 25
27 de fevereiro de 2005 [matt]: Atualizado para findutils-4.2.18 27 de fevereiro de 2005 [matt]: Atualizado para bzip2-1.0.3 19 de fevereiro de 2005 [gerard]: Capitulo 5-Stripping: removido doc dos diretrios para ser removido em /tools. Este diretrio no mais criado. 19 de fevereiro de 2005 [jeremy]: Adicionado correo ao captulo 5 construo do glibc para ajustar a desabilitao da funcionalidade selinux. Agradecimentos ao Bobson no IRC (bobson@bobson.net) por apontar esta sada. Fechado bugzilla 1034. 19 de fevereiro de 2005 [gerard]: Sincronizado ramo Testing com o corrente Unstable/Trunk. Movido o ramo Testing para Trunk e descontinuado o ramo Testing por lfs-dev discusso no ramo alterado. 5 de fevereiro de 2005 [matt]: Copiado arquivo pnp.distmap do hotplug para calar os avisos. Arrumado tambm algum texto explanatrio 29 de janeiro de 2005 [matt]: Atualizado para sed-4.1.4 29 de janeiro de 2005 [matt]: Atualizado para procps-3.2.5 29 de janeiro de 2005 [matt]: Atualizado para shadow-4.0.7 29 de janeiro de 2005 [matt]: Atualizado para util-linux-2.12q. 27 de janeiro de 2005 [matt]: Adicionado um aviso que o symlink /usr/src/linux no deve ser criado. Corrigido bug 1012. 27 de janeiro de 2005 [matt]: Adicionado link para o local do ftp do live-cd. Corrigido bug 1014. 27 de janeiro de 2005 [matt]: Added bison, flex and m4 to binutils dependency list. Fixes Bug 1018. 27 de janeiro de 2005 [manuel]: Atualizado para gcc-3.4.3-specs-2.patch. 19 de janeiro de 2005 [jeremy]: Adicionado um symlink extra para libgcc_s.so para o captulo 6 isto nunca foi migrado da verso instvel at agora. 9 de janeiro de 2005 [matt]: Adicionado um patch de segurana para o kernel 9 de janeiro de 2005 [matt]: Adicionado um patch de segurana para o vim 9 de janeiro de 2005 [matt]: Atualizado para man-1.5p 9 de janeiro de 2005 [matt]: Atualizado para texinfo-4.8 9 de janeiro de 2005 [matt]: Atualizado para util-linux-2.12p 9 de janeiro de 2005 [matt]: Atualizado para udev-050 9 de janeiro de 2005 [matt]: Atualizado para tcl-8.4.9 9 de janeiro de 2005 [matt]: Atualizado para tar-1.15.1 9 de janeiro de 2005 [matt]: Atualizado para perl-5.8.6 9 de janeiro de 2005 [matt]: Atualizado para man-pages-2.01 9 de janeiro de 2005 [matt]: Atualizado para linux-libc-headers-2.6.10.0 9 de janeiro de 2005 [matt]: Atualizado para linux-2.6.10 26
9 de janeiro de 2005 [matt]: Atualizado para gcc-3.4.3 9 de janeiro de 2005 [matt]: Atualizado para bison-2.0 9 de janeiro de 2005 [matt]: Atualizado para autoconf-1.9.4 5 de janeiro de 2005 [jeremy]: Pequena correo textual na configurao de rede, pois iproute no reconheceria o velho formato eth0:1 para apelidos de IP. Fechado bug 1013. 5 de janeiro de 2005 [jeremy]: Adiconado o parametro --disable-selinux ao Capitulo 5 glibc. Permitindo construir de hosts com SELinux, como o Fedora Core 3 25 de dezembro de 2004 [jeremy]: Adicionado texto sugerido por MSB, fechando Bug 943 25 de dezembro de 2004 [jeremy]: Atualizado binutils para 2.14.94.0.2 deve corrigir problema com TLS strip que parecia, ao menos em X86 22 de dezembro de 2004 [manuel]: Readicionado ao chapter09/reboot.xml da version 5.1. 20 de dezembro de 2004 [manuel]: Feita localizao do grub compatvel com FHS. 19 de dezembro de 2004 [manuel]: Adicionado servidor IRC irc.lfs-matrix.de. 5 de dezembro de 2004 [jeremy]: Adicionado parmetro DOCBOOKTOMAN ao Module-init-utils para o Module-init-utils - sem isso, a compilao falha. Obrigado Boris Buegling 2 de dezembro de 2004 [jeremy]: Removido o patch do bash display_wrap, a favor do novo patch de correo, e adicionado o patch avoid_WCONTINUED tambm. 2 de dezembro de 2004 [jeremy]: Atualizado para TCL 8.4.8, Grep 2.5.1a Util-linux 2.12i, Iana-etc 1.03, File 4.12, Module-init-tools 3.1, Procps 3.2.4 2 de dezembro de 2004 [jeremy]: Migrado as mudanas da verso instvel para a construo do Glibc de encontro com linux-libc-headers no lugar de cabealhos do kernel cru, parecendo mais com que os desenvolvedores do kernel pensam que devem acontecer. 1 de dezembro de 2004 [jeremy]: Apagado Udev de ser construdo no Captulo 5, a favor de criar um mnimo conjunto de dispositivos no incio do captulo 6. Todos os dispositivos so criados depois da instalao do Udev prximo ao fim do captulo 6 1 de dezembro de 2004 [jeremy]: Upgraded to Automake 1.9.3, Binutils 2.15.92.0.2, Findutils 4.2.3, GCC 3.4.2, Glibc 20041011, Iana-Etc 1.02 Iproute2 2.6.9-041019, LFS-Bootscripts 2.2.3, Libtool 1.5.10, Linux 2.6.9 Linux-libc-headers 2.6.9.1, Man 1.5o1, Man-pages 1.70, Shadow 4.0.6, Udev 046, Zlib 1.2.2, Hotplug 2004_09_23, Libol 0.3.14, Syslog-ng 1.6.5
27
1.3. Suporte
1.3.1. FAQ
Se durante a configurao do sistema LFS voc encontrar algum erro, tiver alguma pergunta, ou perceber alguma falha no livro, por favor consulte antes de qualquer coisa as pginas do FAQ (Frequently Asked Questions,) em http://www.linuxfromscratch.org/faq/.
1.3.4. IRC
Diversos membros da comunidade LFS oferecem ajuda em nossa rede Internet Relay Chat (IRC). Antes de usar este suporte, por favor certifique-se antes de que sua pergunta no est respondida no FAQ do LFS ou nos arquivos das listas de discusso. Voc pode encontrar a rede IRC da comunidade LFS em irc.linuxfromscratch.org. O nome do canal de suporte #LFS-support.
1.3.5. Referncias
Para a informaes adicionais sobre os pacotes, muitas anotaes teis esto disponveis na pgina de referncias dos pacotes LFS situada em http://www.linuxfromscratch.org/~matthew/LFS-references.html.
1.3.6. Sites-espelho
O projeto LFS tem alguns sites-espelho (mirrors) que do acesso ao contedo do website e disponibilizam o download dos pacotes utilizados de forma mais convenientes ao usurio. Visite por favor o website do projeto LFS em http://www.linuxfromscratch.org/mirrors.html para uma lista atual dos mirrors em atividade.
28
1.4. Ajuda
Se voc tiver alguma uma dvida ou pergunta ao trabalhar com este livro, verifique primeiro a pgina do FAQ em http://www.linuxfromscratch.org/faq/#generalfaq. Geralmente as perguntas j foram respondidas l. Se a sua ainda no tiver sido respondida, tente encontrar a origem do problema. A dica a seguir vai te dar uma orientao sobre como acabar com problemas: http://www.linuxfromscratch.org/hints/downloads/files/errors.txt. Ns temos tambm uma comunidade LFS maravilhosa que est disposta oferecer o auxlio com as listas de discusso e IRC (veja a seo Section 1.3, Suporte deste livro). A fim ajudar a diagnosticar e resolver o problema, inclua por favor toda a informao relevante em seu pedido de ajuda.
Note
Desviar-se das instrues deste livro no significa que ns no vamos ajudar. Acima de tudo o projeto LFS sobre a preferncia pessoal. O alerta sobre alguns procedimentos estabelecidos fora dos padres nos ajuda a avaliar e determinar possveis causas de seu problema.
29
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 incluiria apenas a parte debaixo, que comea por: make [2]: *** [make] Error 1 Isto no suficiente para diagnosticarmos o problema, porque apenas nos diz que "algo" deu errado, no o qu deu errado. A seo 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 apresentada. Um excelente artigo sobre como perguntar por ajuda na Internet em geral foi escrito por Eric S. Raymond. Est disponvel em http://catb.org/~esr/faqs/smart-questions.html. Leia e siga as dicas deste documento e voc estar apto a receber as respostas e interpret-las corretamente e tambm a achar a ajuda que realmente precisa.
30
31
32
33
Note
Algumas distribuies do sistema anfitrio usam caractersticas prprias em suas ferramentas da criao do sistema de arquivos (e2fsprogs). Isto pode causar problemas quando inicializar o seu novo sistema LFS no captulo 9, porque aquelas caractersticas no sero suportadas pelo e2fsprogs instalado pelo LFS; voc ver um erro similar a unsupported filesystem features, upgrade your e2fsprogs. Para verificar se seu sistema anfitrio utiliza alguma caracterstica prpria, execute o seguinte comando: debugfs -R feature /dev/[xxx] Se a sada obtida contiver caractersticas diferentes de dir_index; filetype; large_file; resize_inode or sparse_super ento seu sistema anfitrio pode ter caractersticas prprias. Neste caso, para evitar problemas futuros, voc deve compilar o pacote do e2fsprogs e usar os binrios resultantes para recriar o sistema de arquivos em sua partio LFS: cd /tmp tar xjf /path/to/sources/e2fsprogs-1.37.tar.bz2 cd e2fsprogs-1.37 mkdir build cd build ../configure make #note that we intentionally don't 'make install' here! ./misc/mke2fs /dev/[xxx] cd /tmp rm -rf e2fsprogs-1.37 Se uma partio swap for criada, ela precisa ser inicializada com o comando abaixo. Se voc estiver usando uma partio swap j em uso pelo sistema anfitrio, no h nenhuma necessidade de format-la. mkswap /dev/[yyy] Substitua [yyy] pelo nome da partio swap.
34
Substitua [xxx] e [yyy] pelos nomes apropriados da partio. Assegure-se de que esta nova partio no seja montada com permisses muito restritivas (como nosuid, nodev, ou noatime). Use o comando mount sem nenhum parmetro para ver quais opes foram definidas para a partio LFS montada. Se o nosuid, o nodev, e/ou o noatime estiverem definidos, a partio precisar ser remontada. Agora que temos um lugar para trabalhar, hora de fazer o download dos pacotes.
35
37
Note
O File (4.13) pode no estar disponvel por muito tempo neste site. Os administradores do site removem ocasionalmente as verses mais antigas quando as novas so liberadas. Um site alternativo para download que pode ter a verso correta disponvel ftp://ftp.linuxfromscratch.org/pub/lfs/. Findutils (4.2.23) - 784 KB: http://ftp.gnu.org/gnu/findutils/ Flex (2.5.31) - 672 KB: http://prdownloads.sourceforge.net/lex/ 38
Gawk (3.1.4) - 1,696 KB: http://ftp.gnu.org/gnu/gawk/ GCC (3.4.3) - 26,816 KB: http://ftp.gnu.org/gnu/gcc/ Gettext (0.14.3) - 4,568 KB: http://ftp.gnu.org/gnu/gettext/ Glibc (2.3.4) - 12,924 KB: http://ftp.gnu.org/gnu/glibc/ Glibc-Linuxthreads (2.3.4) - 236 KB: http://ftp.gnu.org/gnu/glibc/ Grep (2.5.1a) - 520 KB: http://ftp.gnu.org/gnu/grep/ Groff (1.19.1) - 2,096 KB: http://ftp.gnu.org/gnu/groff/ GRUB (0.96) - 768 KB: ftp://alpha.gnu.org/gnu/grub/ Gzip (1.3.5) - 284 KB: ftp://alpha.gnu.org/gnu/gzip/ Hotplug (2004_09_23) - 40 KB: http://www.kernel.org/pub/linux/utils/kernel/hotplug/ Iana-Etc (1.04) - 176 KB: http://www.sethwklein.net/projects/iana-etc/downloads/ Inetutils (1.4.2) - 752 KB: http://ftp.gnu.org/gnu/inetutils/ IPRoute2 (2.6.11-050330) - 276 KB: http://developer.osdl.org/dev/iproute2/download/ Kbd (1.12) - 624 KB: http://www.kernel.org/pub/linux/utils/kbd/ Less (382) - 216 KB: http://ftp.gnu.org/gnu/less/ LFS-Bootscripts (3.2.1) - 32 KB: http://downloads.linuxfromscratch.org/ Libtool (1.5.14) - 1,604 KB: http://ftp.gnu.org/gnu/libtool/ Linux (2.6.11.12) - 35,792 KB: http://www.kernel.org/pub/linux/kernel/v2.6/ Linux-Libc-Headers (2.6.11.2) - 2,476 KB: http://ep09.pld-linux.org/~mmazur/linux-libc-headers/ 39
M4 (1.4.3) - 304 KB: http://ftp.gnu.org/gnu/m4/ Make (3.80) - 904 KB: http://ftp.gnu.org/gnu/make/ Man (1.5p) - 208 KB: http://www.kernel.org/pub/linux/utils/man/ Man-pages (2.01) - 1,640 KB: http://www.kernel.org/pub/linux/docs/manpages/ Mktemp (1.5) - 68 KB: ftp://ftp.mktemp.org/pub/mktemp/ Module-Init-Tools (3.1) - 128 KB: http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/ Ncurses (5.4) - 1,556 KB: ftp://invisible-island.net/ncurses/ Patch (2.5.4) - 156 KB: http://ftp.gnu.org/gnu/patch/ Perl (5.8.6) - 9,484 KB: http://ftp.funet.fi/pub/CPAN/src/ Procps (3.2.5) - 224 KB: http://procps.sourceforge.net/ Psmisc (21.6) - 188 KB: http://prdownloads.sourceforge.net/psmisc/ Readline (5.0) - 1,456 KB: http://ftp.gnu.org/gnu/readline/ Sed (4.1.4) - 632 KB: http://ftp.gnu.org/gnu/sed/ Shadow (4.0.9) - 1,084 KB: ftp://ftp.pld.org.pl/software/shadow/
Note
O Shadow (4.0.9) pode no estar disponvel por muito tempo neste site. Os administradores do site removem ocasionalmente as verses mais antigas quando as novas so liberadas. Um site alternativo para download que pode ter a verso correta disponvel ftp://ftp.linuxfromscratch.org/pub/lfs/. Sysklogd (1.4.1) - 72 KB: http://www.infodrom.org/projects/sysklogd/download/ Sysvinit (2.86) - 88 KB: ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/ 40
Tar (1.15.1) - 1,580 KB: http://ftp.gnu.org/gnu/tar/ Tcl (8.4.9) - 2,748 KB: http://prdownloads.sourceforge.net/tcl/ Texinfo (4.8) - 1,492 KB: http://ftp.gnu.org/gnu/texinfo/ Udev (056) - 476 KB: http://www.kernel.org/pub/linux/utils/kernel/hotplug/ Udev Rules Configuration - 5 KB: http://downloads.linuxfromscratch.org/udev-config-3.rules Util-linux (2.12q) - 1,344 KB: http://www.kernel.org/pub/linux/utils/util-linux/ Vim (6.3) - 3,620 KB: ftp://ftp.vim.org/pub/vim/unix/ Vim (6.3) language files (optional) - 540 KB: ftp://ftp.vim.org/pub/vim/extra/ Zlib (1.2.2) - 368 KB: http://www.zlib.net/ Tamanho total destes pacotes: 146 MB
41
42
Readline Fixes Patch - 7 KB: http://www.linuxfromscratch.org/patches/lfs/6.1/readline-5.0-fixes-1.patch Sysklogd Fixes Patch - 27 KB: http://www.linuxfromscratch.org/patches/lfs/6.1/sysklogd-1.4.1-fixes-1.patch Tar Sparse Fix Patch - 1 KB: http://www.linuxfromscratch.org/patches/lfs/6.1/tar-1.15.1-sparse_fix-1.patch Util-linux Cramfs Patch - 3 KB: http://www.linuxfromscratch.org/patches/lfs/6.1/util-linux-2.12q-cramfs-1.patch Vim Security Patch - 8 KB: http://www.linuxfromscratch.org/patches/lfs/6.1/vim-6.3-security_fix-1.patch Zlib Security Patch - 1 KB: http://www.linuxfromscratch.org/patches/lfs/6.1/zlib-1.2.2-security_fix-1.patch Alm dos patches acima requeridos, existem patches opcionais criados pela comunidade LFS. Estes patches opcionais resolvem problemas menores ou permitem uma funcionalidade que no oferecida pelo pacote original. Sinta-se vontade e use a base de dados situada em http://www.linuxfromscratch.org/patches/ para pegar todos os patches adicionais que sirvam s necessidades do seu sistema.
43
44
Note
O comando acima est correto. O comando ln tem algumas variaes sintticas, portanto tome a precauo de consultar a documentao info coreutils ln e ln(1) antes de buscar por ajuda sobre algo que voc pode pensar se tratar de um erro. O vnculo simblico (symlink) criado permite que o processo de compilao do jogo de ferramentas fique vinculado sempre ao diretrio /tools, o que significa que o compilador, o assembler, e o linker funcionaro adequadamente tanto neste captulo (quando ns ainda estivermos usando algumas ferramentas do sistema anfitrio) quanto no prximo (quando ns faremos um chrooted para a partio LFS).
45
46
Linux From Scratch - Verso 6.1 hash, elimina o risco de programas do sistema anfitrio serem usados quando os novos programas j estiverem disponveis (no captulo 5).
48
Finalmente, para termos um ambiente totalmente preparado para a configurao das ferramentas provisrias, vamos ativar o perfil de usurio recm-criado: source ~/.bash_profile
49
4.5. SBUs
Muitas pessoas gostariam de saber de antemo quanto tempo aproximadamente demora para compilar e instalar cada pacote. Como um sistema LFS pode ser configurado em muitos sistemas diferentes, impossvel fornecer uma estimativa exata de tempo. O maior pacote (Glibc) demora aproximadamente 20 minutos nos sistemas os mais rpidos, mas pode demorar at trs dias para compilar em alguns sistemas mais lentos! Em vez de fornecer tempos reais, uma medida padro (SBU) ser usada. O SBU medido da seguinte maneira. O primeiro pacote a ser compilado neste livro o Binutils, no Chapter 5. O tempo de demora para compilar este pacote o que ser considerado como nossa unidade de medida, o SBU. O tempo de demora dos demais processos de compilao sero estimados com base neste tempo. Por exemplo, considere um pacote cujo tempo de compilao seja 4,5 SBUs. Isto significa que se um sistema demorou 10 minutos para compilar e instalar a primeira verso do Binutils, demorar aproximadamente 45 minutos para compilar este outro pacote. Felizmente, na maioria de vezes a compilao demoram menos que para o Binutils. Mas a medida SBUs no exata porque depende de muitos fatores, incluindo a verso do GCC do sistema anfitrio. Em Multi-Processamento Simtrico (as mquinas SMP), os SBUs so ainda menos exatos. So fornecidos neste livro apenas para dar uma estimativa de quanto tempo pode demorar para instalar um pacote, mas os nmeros podem variar em at dzias de minutos em alguns casos. Para conhecer os tempos reais obtidos em algumas configuraes de hardware, veja o The LinuxFromScratch SBU Home Page, em http://www.linuxfromscratch.org/~bdubbs/.
50
Note
A experincia nos mostra que h poucas vantagens em executar as suites de testes no Chapter 5. No se pode negar o fato de que o sistema anfitrio exerce sempre alguma influncia nos testes nesse captulo, causando freqentemente falhas inexplicveis. Como as ferramentas compiladas no Chapter 5 so provisrias e descartadas posteriormente, ns no recomendamos executar as suites de testes neste captulo. As instrues para executar as suites de testes so fornecidas, mas so estritamente opcionais. Uma ocorrncia comum executar as suites de testes do Binutils e do GCC fora dos terminais PTYs. Isto pode resultar em um nmero elevado de falhas. Isto acontece por diversas razes, mas a causa mais provvel que o sistema anfitrio no tem o sistema de arquivos devpts ajustado corretamente. Esta ocorrncia ser discutida com mais detalhes no Chapter 5. s vezes as suites de testes falharo, mas por razes que os seus criadores esto cientes e julgaram no-crticas. Consulte os registros feitos em http://www.linuxfromscratch.org/lfs/build-logs/6.1/ para verificar se estas falhas so ou no esperadas. Este endereo vlido para todos os testes durante todo este livro.
51
52
Important
Antes de continuar, procure saber o nome da sua plataforma de trabalho, freqentemente chamado de target triplet. Na maioria das vezes ser i686-pc-linux-gnu. Uma maneira simples determinar o target triplet do seu equipamento executar o script config.guess que acompanha os cdigos-fonte de muitos pacotes. Desempacote os cdigos-fonte do Binutils, execute o script ./config.guess e anote a sada. Procure saber tambm o nome do vinculador dinmico (dynamic linker) da sua plataforma, tambm chamado de carregador dinmico (dynamic loader para no ser confundido com o vinculador padro ld que parte do Binutils). O vinculador dinmico que vem no pacote Glibc procura e carrega as bibliotecas compartilhadas necessrias para um determinado programa, prepara o programa para execuo e ento o executa. O nome do vinculador dinmico normalmente ser ld-linux.so.2. Em plataformas menos comuns, o nome poder ser ld.so.1 e nas novas plataformas de 64 bits podem ter nomes completamente diferentes. O nome do vinculador dinmico da sua plataforma pode ser obtido diretamente no diretrio /lib do sistema anfitrio. Um modo seguro de se determinar este nome ser obtendo-o diretamente de um binrio qualquer do sistema anfitrio com o comando: readelf -l <nome do binrio> | grep interpreter, anotando ento a sada. Uma referncia com todas as plataformas autorizadas pode ser consultada no arquivo shlib-versions na raiz da rvore dos cdigos fonte da Glibc. Alguns dos elementos tcnicos fundamentais sobre como funciona o mtodo de configurao do Chapter 5: O processo similar ao princpio da compilao cruzada, por meio do qual as ferramentas instaladas no mesmo conjunto trabalham em cooperao, fazendo assim a pequena mgica GNU A manipulao cuidadosa do caminho padro de busca por bibliotecas do vinculador dinmico assegura que os programas somente se vincularo com as bibliotecas escolhidas A manipulao cuidadosa do arquivo de especificaes specs do gcc que diz ao compilador qual vinculador dinmico ser usado
O pacote Binutils instalado primeiro porque script configure GCC e do Glibc executam vrios testes no assembler e no vinculador dinmico para determinar quais caractersticas destes programas sero habilitadas ou no. E muito importante fazer isto logo no incio. Um GCC, ou um Glibc, mal configurado pode resultar em um jogo de ferramentas defeituoso, cujo impacto poder ser notado apenas no final da configurao do sistema. 53
Linux From Scratch - Verso 6.1 Uma falha apontada pelo conjunto de testes revela logo o problema, evitando que mais trabalho seja desperdiado.
54
O Binutils instala o assembler e o vinculador dinmico em dois locais, /tools/bin e /tools/$TARGET_TRIPLET/bin. Ele estabelece um vnculo direto (hard link) entre ambos. Um aspecto importante do vinculador dinmico sua ordem de busca por bibliotecas. Esta informao, detalhada, pode ser obtida do comando ld quando utilizada a opo --verbose. Por exemplo, o comando ld --verbose | grep SEARCH nos mostrar os caminhos de busca atuais e a sua ordem. Ele nos mostrar quais arquivos so vinculados pelo ld compilando um programa modelo e passando a opo --verbose ao vinculador dinmico. Por exemplo, gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded mostrar todos os arquivos abertos com sucesso durante a vinculao. O pacote seguinte a ser instalado o GCC. Um exemplo de o que pode ser visto na execuo do configure : checking what assembler to use... /tools/i686-pc-linux-gnu/bin/as checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld Isto importante pelas razes j mencionadas. Demonstra tambm que o script de configurao do GCC no procura os diretrios do PATH para encontrar as ferramentas que vai usar. Entretanto, durante uma operao real do prprio gcc, os mesmos caminhos de busca no sero necessariamente utilizados. Para saber qual o vinculador padro que o gcc utilizar, execute: gcc -print-prog-name=ld. Uma informao detalhada pode ser obtida do gcc usando a opo -v na linha de comando ao compilar um programa qualquer. Para o exemplo, gcc -v dummy.c mostrar informao detalhada sobre o preprocessamento, a compilao, e os estgios do assembly, incluindo os caminhos de busca do gcce sua ordem. O prximo pacote a ser instalado o Glibc. Os requisitos mais importantes para se configurar o Glibc so o compilador, as ferramentas binrias (binary tools), e os cabealhos do kernel. O compilador geralmente no um problema porque o Glibc usar sempre o gcc ncontrado em um diretrio do PATH. As ferramentas binrias e os cabealhos do kernel pode ser um pouco mais complicado. Desta forma, no corra nenhum risco e utilize as configuraes disponveis para se assegurar das escolhas corretas. Aps rodar o configure, verifique o contedo do arquivo config.make em glibc-build para ver todos os detalhes importantes. Note o uso de CC="gcc -B/tools/bin/" para controlar quais ferramentas binrias sero usadas, e o uso das opes -nostdinc e -isystem que controlam o caminho de busca do compilador. Isto demonstra um aspecto importante do pacote Glibcele auto-suficiente quanto aos mecanismos de configurao e geralmente no se socorre do conjunto de ferramentas padro. Aps a instalao do Glibc, faa alguns ajustes para ter certeza de que as buscas e as vinculaes ocorram somente dentro do diretrio /tools. Instale um ld bem ajusatado, com um caminho de busca incorporado limitado ao diretrio /tools/lib. Edite o arquivo de especificaes do gcc para apontar para o novo vinculador dinmico em /tools/lib. Esta ltima etapa vital para o processo inteiro. Como visto, o caminho para o vinculador dinmico ser incorporado em cada arquivo executvel (ELF - Executable and Link Format) compartilhado. Isto pode ser verificado com o comando readelf -l <nome do binrio> | grep interpreter. Editar o arquivo de especificaes do GCC nos assegura que cada programa compilado daqui at o fim deste captulo vai usar o novo vinculador dinmico em /tools/lib. A necessidade usar o novo vinculador dinmico tambm a razo porque o patch Specs aplicado na segunda passagem do GCC. Falhar ao fazer isto resulta no prprio programa GCC mantendo incorporado dentro de si o nome do vinculador dinmico situado no diretrio /lib do sistema anfitrio, o que afastaria nosso o objetivo de tornar o novo sistema independente do anfitrio. Durante a segunda passagem de Binutils, ns poderemos utilizar a opo de configurao --with-lib-path para controlar caminho de busca por bibliotecas do ld Daqui em diante, o ncleo do jogo de ferramentas 55
Linux From Scratch - Verso 6.1 autnomo e independente. Os demais pacotes do Chapter 5 compilados com a nova Glibc em /tools.
56
Quando iniciarmos um ambiente com o chroot no Chapter 6, o principal pacote a ser instalado ser o Glibc, devido sua natureza auto-suficiente mencionada acima. Como este Glibc ser instalado no diretrio /usr, faremos um rpido ajuste nas configuraes padro do jogo de ferramentas, prosseguindo ento com a configurao do sistema LFS.
57
Note
Para que os valores SBU utilizados no restante deste livro possam ter algum uso, mea o tempo que demora para configurar este pacote desde o incio da configurao at o primeiro install. Para conseguir isto facilmente, coloque os trs comandos que seguem dentro de um comando timedesta forma: time { ./configure ... && make && make install; }. Agora prepare o Binutils para a compilao: ../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls Descrio das opes de configurao: --prefix=/tools Diz ao script de configurao para preparar-se para instalar os programas do Binutils no diretrio /tools. --disable-nls Desabilita a internacionalizao pois o i18n no necessrio para as ferramentas provisrias. Continue com a compilao do pacote: make A compilao est agora completa. Normalmente ns executaramos agora o conjunto de testes, mas neste 58
estgio inicial em que estamos a estrutura necessria para a execuo dos testes (Tcl, Expect, e DejaGNU) ainda no est no seu devido lugar. Os benefcios de executar os testes neste momento so mnimos uma vez que os programas desta primeira passagem sero substitudos logo. Instale o pacote: make install Em seguida, prepare o vinculador dinmico a ser instalado somente na fase de ajustes que vir depois: make -C ld clean make -C ld LIB_PATH=/tools/lib Descrio das opes de configurao: -C ld clean Diz ao make para remover todos os arquivos compilados do subdiretrio ld. -C ld LIB_PATH=/tools/lib Esta opo reconfigura tudo no subdiretrio ld. Especificar a varivel LIB_PATH do Makefile na linha de comando permite que ns cancelemos o valor padro e indiquemos a posio das ferramentas provisrias. O valor desta varivel determina o caminho de busca da biblioteca padro do vinculador dinmico. Esta preparao ser usada mais tarde neste captulo.
Warning
No remova os diretrios de configurao e os arquivos fonte do Binutils ainda. Eles sero necessrios em seu estado atual mais tarde neste captulo. Detalhes deste pacote esto localizados na Section 6.13.2, Contedo do Binutils.
59
60
Descrio das opes de configurao: bootstrap Este parmetro no apenas compila o GCC, mas o faz diversas vezes. Usa os programas compilados em um primeiro tempo para compilar-se uma segunda vez, e ento uma terceira vez. Compara ento esta segunda com esta terceira compilao para certificar-se que pode se remontar perfeitamente. Isto significa tambm que foi compilado corretamente. A compilao est completa. Neste momento, o conjunto de testes est funcionado normalmente, mas, como mencionado antes, a estrutura necessria para a execuo dos testes no est no lugar ainda. Os benefcios de executar os testes neste momento so mnimos, j que os programas desta primeira passagem sero substitudos logo. Instale o pacote: make install Por fim, faa um vnculo simblico. Muitos programas e scripts executam o cc ao invs de gcc, o qual usado para manter programas genricos e conseqentemente teis em todos os tipos dos sistemas de UNIX onde o compilador GNU C no esteja instalado. Executar o cc deixa o administrador de sistema livre para decidir qual compilador C instalar. ln -s gcc /tools/bin/cc Detalhes deste pacote esto na Section 6.14.2, Contedo do GCC.
61
5.5. Linux-Libc-Headers-2.6.11.2
O pacote Linux-Libc-Headers contm os cabealhos do kernel organizados. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 26.9 MB Requisitos de instalao: Coreutils
62
5.6. Glibc-2.3.4
O pacote de Glibc contm a biblioteca C principal. Esta biblioteca fornece as rotinas bsicas de alocao de memria, busca em diretrios, abertura e fechamento de arquivos, leitura e escrita de arquivos, manipulao de strings, "pattern matching", aritmtica e assim por diante. Tempo de compilao aproximado: 11.8 SBU Espao em disco necessrio: 454 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed e Texinfo
--with-binutils=/tools/bin Embora no requerida, esta opo assegura que no haja nenhum erro pertinente aos programas do pacote Binutils usados durante a configurao do Glibc. --without-gd Impede a configurao do programa memusagestat, que insiste em fazer um vnculo com as bibliotecas do sistema anfitrio (libgd, libpng, libz etc.). --with-headers=/tools/include Compila o Glibc conforme os cabealhos instalados recentemente no diretrio tools, de modo que ele saiba exatamente quais caractersticas o kernel tem para otimizar sua prpria configurao. --without-selinux Quando configurando a partir de sistemas anfitries que incluem a funcionalidade SELinux (por exemplo o Fedora Core 3), o Glibc seria configurado com sustentao para SELinux. Como o ambiente das ferramentas do LFS no tem suporte para SELinux, um Glibc compilado com este recurso no funcionar corretamente. Durante este estgio o seguinte aviso pode aparecer: configure: WARNING: *** These auxiliary programs are missing or *** incompatible versions: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions. O programa msgfmt faltado ou incompatvel geralmente no grave, mas pode s vezes causar problemas durante a execuo do conjunto de testes. Este programa msgfmt parte do pacote de Gettext que o sistema anfitrio deve fornecer. Se o msgfmt est presente mas incompatvel, atualize o pacote de Gettext de sistema de anfitrio ou continue sem ele e veja se o conjunto de testes funciona sem problemas mesmo assim. Compile o pacote: make A compilao est completa. Como foi dito, executar o conjunto de testes para as ferramentas provisrias instaladas neste captulo no essencial. Para executar o teste do Glibc (se quiser), utilize o seguinte comando: make check Para uma discusso das falhas do teste que so de maior importncia, veja por favor a Section 6.11, Glibc-2.3.4. Neste captulo, alguns testes podem ser afetados negativamente por ferramentas existentes ou problemas no ambiente do sistema de anfitrio. As falhas nos testes do Glibc neste captulo no so tipicamente preocupantes. O Glibc instalado no Chapter 6 que ser usado no final de tudo, de modo que este sim necessita passar pela maioria dos testes (mesmo no Chapter 6, algumas falhas podem ocorrer, por exemplo, com os testes do math). Ao encontrar uma falha, faa uma anotao dela, e continue executando o comando make check. O conjunto de testes deve retomar de onde parou e continuar. Esta seqncia de para-e-continua pode ser contornada com o comando make -k check. Usando esta opo, esteja certo de registrar a sada de modo que o arquivo de registro possa ser examinado mais tarde. 64
Durante a instalao o Glibc emitir um aviso de advertncia sobre a ausncia do arquivo /tools/etc/ld.so.conf. Evite este aviso com os comandos: mkdir /tools/etc touch /tools/etc/ld.so.conf Instale o pacote: make install Pases e culturas diferentes tm convenes diferentes sobre como comunicar-se. Estas convenes variam do formato para representar datas at algumas situaes mais complexas, tais como a lngua falada. A internacionalizao dos programas GNU executada pelo locale.
Note
Se a suite de testes no estivere sendo executada neste captulo (como foi recomendado), no h nenhuma necessidade instalar agora os locales. Os locales apropriados sero instalados no captulo seguinte. Para instalar mesmo assim os locales do Glibc, use o seguinte comando: make localedata/install-locales Para economizar tempo, uma alternativa executar comando precedente (que gera e instala cada locale Glibc) para instalar somente aqueles locales que so necessrios. Isto pode ser feito usando o comando localedef. Informaes sobre este comando so encontradas no arquivo INSTALL nos fontes do Glibc. Entretanto, alguns locales so essenciais para que os futuros pacotes passem nos testes, em especial os testes libstdc++ do GCC. As seguintes instrues, em vez do install-locales acima, instalaro o conjunto mnimo dos locales necessrios para que os testes funcionem com sucesso: mkdir -p /tools/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef -i fr_FR -f ISO-8859-1 fr_FR localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro localedef -i it_IT -f ISO-8859-1 it_IT localedef -i ja_JP -f EUC-JP ja_JP Detalhes deste pacote esto na Section 6.11.4, Contedo do Glibc.
65
Note
Se voc no prestou ateno no aviso anterior para no descartar as fontes e o diretrio de trabalho do Binutils na primeira passagem, ignore o comando acima. Existe a possibilidade de os programas configurados daqui em diante se ligarem s bibliotecas do sistema anfitrio. Isto no o ideal, mas no um grande problema. A situao ser corrigida quando a segunda passagem do Binutils for instalada mais tarde. Agora que o vinculador dinmico est instalado e ajustado, os diretrios de cdigos-fontes e de compilao do Binutils devem ser removidos. A tarefa seguinte modificar o arquivo de especificaes do GCC de modo que aponte para o novo vinculador dinmico. Um simples script sed far isto: SPECFILE=`gcc --print-file specs` && sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \ $SPECFILE > tempspecfile && mv -f tempspecfile $SPECFILE && unset SPECFILE Alternativamente, o arquivo de especificaes pode ser editado mo. Isto feito substituindo cada ocorrncia de /lib/ld-linux.so.2 por /tools/lib/ld-linux.so.2 Verifique diretamente o contedo do arquivo de especificaes para se certificar de que as mudanas pretendidas foram feitas.
Important
Se voc est trabalhando em uma mquina onde o nome do vinculador dinmico seja algo que no ld-linux.so.2, substitua ld-linux.so.2 pelo o nome do vinculador dinmico da sua mquina nos comandos acima. Consulte Section 5.2, Notas tcnicas sobre as ferramentas provisrias, se necessrio. possvel que alguns arquivos includos do sistema anfitrio encontrem sua maneira de entrar no diretrio privado de incluso do GCC. Esta invaso acontece em conseqncia dos recursos de correo de incluses fixincludes, do GCC, que faz parte do processo de compilao do pacote. Tudo ser explicado, com mais detalhes, mais adiante, ainda neste captulo. Execute o seguinte comando para eliminar esta possibilidade: 66
rm -f /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h}
67
Caution
Neste momento, fundamental parar com a compilao para termos certeza de que as funes bsicas (compilao e vinculao) do novo jogo de ferramentas esto funcionando como esperado. Para executar uma verificao de sanidade, execute os seguintes comandos: echo 'main(){}' > dummy.c cc dummy.c readelf -l a.out | grep ': /tools' Se tudo estiver funcionando corretamente, no deve haver nenhuma mensagem de erro e a sada do ltimo comando ter o formato: [Requesting program interpreter: /tools/lib/ld-linux.so.2] Note que /tools/lib aparece como prefixo do vinculador dinmico. Se a sada no for esta, ou no houver nenhuma sada, ento algo est errado. Investigue e percorra novamente todas as etapas para encontrar onde est o problema para corrigi-lo. Esta situao deve ser resolvida antes de continuarmos. Primeiro, execute a verificao de sanidade outra vez, usando o gcc ao invs do cc. Se isto funcionar, ento o vnculo simblico /tools/bin/cc est faltando. Reveja a Section 5.4, GCC-3.4.3 - primeira passagem e instale o vnculo. Em seguida, assegure-se de que a varivel PATH est corretamente definida. Isto pode ser verificado pelo comando echo $PATH e verificando se /tools/bin o primeiro diretrio da lista. Se o erro estiver no PATH, poder significar que voc no est logado como usurio lfs ou algo nele foi mal ajustado na Section 4.4, Configurando o ambiente. Uma outra opo que algo pode ter acontecido de errado com a modificao do arquivo de especificaes, feita acima. Neste caso, refaa estas modificaes, copiando-e-colando cuidadosamente os comandos. Quando estiver tudo bem, apague os arquivos utilizados no teste: rm dummy.c a.out
68
5.8. Tcl-8.4.9
O pacote Tcl contm as ferramentas da linguagem de comando (Tool Command Language). Tempo de compilao aproximado: 0.9 SBU Espao em disco necessrio: 23.3 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, e Sed
Warning
No remova o diretrio dos fontes do tcl8.4.9 ainda, porque o pacote seguinte precisar de seus cabealhos internos. Defina uma varivel contendo o caminho completo do diretrio atual. O pacote seguinte, Expect, usar esta varivel encontrar os cabealhos do Tcl. cd .. export TCLPATH=`pwd` Faa agora uma ligao simblica: ln -s tclsh8.4 /tools/bin/tclsh 69
Descrio rpida
tclsh8.4 tclsh O shell de comandos do Tcl Um vnculo para o tclsh8.4
70
5.9. Expect-5.43.0
O pacote Expect contm um programa para dialogar com outros programas interativos, obedecendo a um script predefinido. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 4.0 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed, e Tcl
Remova agora a varivel TCLPATH: unset TCLPATH Os diretrios das fontes do Tcl e do Expect podem ser removidos agora.
Descrio rpida
expect libexpect-5.42.a Comunica-se com outros programas interativos obedecendo a um script Contm as funes que permitem ao Expect ser utilizado como uma extenso do Tcl ou ser utilizado diretamente pelo C ou pelo C++ (sem o Tcl)
72
5.10. DejaGNU-1.4.4
O pacote de DejaGNU contm um sistema para testar outros programas. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 6.1 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, e Sed
Descrio rpida
runtest Um script que localiza o shell do expect e ento executa o DejaGNU
73
Important
Estes patches so crticos e asseguram uma compilao bem sucedida. No se esquea de aplic-los. Crie um diretrio separado de configurao outra vez: mkdir ../gcc-build cd ../gcc-build Antes de comear a configurar o GCC, lembre-se de remover todas as variveis de ambiente que modifiquem as opes de otimizao padro. Prepare agora o GCC para a compilao: ../gcc-3.4.3/configure --prefix=/tools \ --libexecdir=/tools/lib --with-local-prefix=/tools \ --enable-clocale=gnu --enable-shared \ --enable-threads=posix --enable-__cxa_atexit \ --enable-languages=c,c++ --disable-libstdcxx-pch Descrio das opes de configurao: --enable-clocale=gnu Assegura que o modelo correto do locale selecionado para as bibliotecas de C++ sob todas as circunstncias. Se o script de configurao encontrar o locale de_DE instalado, selecionar o modelo GNU correto para o locale. Entretanto, se o locale de_DE no estiver instalado, h o risco de configurar uma Application Binary Interface (ABI) # incompatveis com as bibliotecas C++ porque o modelo genrico incorreto de locale pode ser selecionado. --enable-threads=posix Permite a manipulao das excees do C++ para os cdigos multi-threaded. --enable-__cxa_atexit Permite o uso do __cxa_atexit, ao invs de atexit, para registrar os destructors do C++ para locais estticos e objetos globais. Esta opo essencial para a manipulao inteiramente padro (standards-compliant) dos destructors. Afeta tambm a C++ ABI, o que conseqentemente resulta em bibliotecas compartilhadas do C++ e em programas de C++ transportveis para outras distribuies de Linux. --enable-languages=c,c++ Assegura que os compiladores de C e de C++ estejam configurados. --disable-libstdcxx-pch No compile com os cabealhos pr-compilados (PCH) para libstdc++. Ocupa muito espao e ns no temos nenhum uso para eles. Compile o pacote: make No h nenhuma necessidade de usar agora a opo bootstrap porque o compilador que est sendo usado 75
Linux From Scratch - Verso 6.1 para compilar este GCC foi compilado com a mesma verso das fontes do GCC usadas mais cedo.
76
A compilao est agora completa. Como mencionado anteriormente, executar o conjunto de testes para as ferramentas provisrias compiladas neste captulo no necessrio. Para executar mesmo assim os testes do GCC, use o seguinte comando: make -k check A opo -k usada para forar a execuo completa do conjunto de testes, no parando na primeira falha. O conjunto de testes do GCC muito detalhado e quase garantido que vai gerar algumas falhas. Para ver um sumrio dos resultados dos testes, execute: ../gcc-3.4.3/contrib/test_summary Para ver somente os sumrios, direcione a sada atravs do grep -A7 Summ. Os resultados podem ser comparados com os mostrados em http://www.linuxfromscratch.org/lfs/build-logs/6.1/. Algumas falhas inesperadas no podem ser evitadas. Os desenvolvedores do GCC esto geralmente cientes destas situaes, mas no as resolveram ainda. A menos que os resultados dos testes sejam muito diferentes daqueles no URL acima, seguro continuar. Instale o pacote: make install
Note
Neste momento altamente recomendado repetir a verificao de sanidade que ns executamos mais cedo neste captulo. Consulte a Section 5.7, Ajustando as ferramentas provisrias, e repita a compilao do teste. Se o resultado der errado, a razo mais provvel que a correo das especificaes do GCC no foi feita corretamente.. Os detalhes deste pacote esto na Section 6.14.2, Contedo do GCC.
77
78
Warning
No remova as fontes do Binutils e os diretrios de trabalho ainda. Estes diretrios sero necessrios mais uma vez no captulo seguinte da forma que esto. Os detalhes deste esto situados na Section 6.13.2, Contedo do Binutils.
79
5.13. Gawk-3.1.4
O pacote Gawk contm programas para manipular arquivos de texto. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 16.4 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
80
5.14. Coreutils-5.2.1
O pacote de Coreutils contm utilitrios que permitem ver e ajustar as caractersticas bsicas do sistema. Tempo de compilao aproximado: 0.9 SBU Espao em disco necessrio: 53.3 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl e Sed
81
5.15. Bzip2-1.0.3
O pacote Bzip2 contm programas para compresso e descompresso de arquivos. Arquivos de texto comprimindo com o bzip2 alcanam uma porcentagem muito melhor de compresso do que com o tradicional gzip. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 3.5 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc e Make
82
5.16. Gzip-1.3.5
O pacote Gzip contm programas para comprimir e descomprimir arquivos. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.2 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make e Sed
83
5.17. Diffutils-2.8.1
O pacote Diffutils contm programas que mostram as diferenas entre arquivos ou diretrios. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 5.6 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
84
5.18. Findutils-4.2.23
O pacote Findutils contm programas para encontrar arquivos. Estes programas so utilizados para fazer buscas recursivas atravs de uma rvore do diretrio e para criar, manter, e fazer buscas em uma base de dados (mais rapidamente do que em uma busca recursiva, mas irreal se a base de dados no foi atualizada recentemente). Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 8.9 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
85
5.19. Make-3.80
O pacote make contm um programa para compilar pacotes. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 7.1 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep e Sed
86
5.20. Grep-2.5.1a
O pacote Grep contm programas para procurar em arquivos. usado para exibir linhas de um arquivo que satisfazem determinado padro. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 4.5 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Make, Sed e Texinfo
87
5.21. Sed-4.1.4
O pacote de Sed contem um editor de fluxo (stream editor). Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 8.4 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Texinfo
88
5.22. Gettext-0.14.3
O pacote Gettext contm utilitrios para a internacionalizao e localizao. Eles permitem que os programas sejam compilados com suporte lngua nativa (NLS, Native Language Support) habilitando a exibio de mensagens de sada na lngua nativa do usurio. Tempo de compilao aproximado: 0.5 SBU Espao em disco necessrio: 63.0 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
89
5.23. Ncurses-5.4
O pacote Ncurses contm bibliotecas para manipulao de caracteres de tela independentes ao terminal, para a criao de painis e menus. Tempo de compilao aproximado: 0.7 SBU Espao em disco necessrio: 27.5 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
90
5.24. Patch-2.5.4
O pacote Patch contm um programa para modificar ou criar arquivos aplicando um arquivo patch (remendo) especialmente criado pelo programa diff. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 1.5 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make e Sed
91
5.25. Tar-1.15.1
O pacote Tar contm um programa de empacotamento de arquivos (archiving) Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 12.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
92
5.26. Texinfo-4.8
O pacote de Texinfo contm programas para a leitura, a escrita, e converso de pginas info. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 14.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses e Sed
93
5.27. Bash-3.0
O pacote bash contm o shell Bourne-Again SHell. Tempo de compilao aproximado: 1.2 SBU Espao em disco necessrio: 20.7 MB Requisitos de instalao: Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses e Sed.
94
5.28. M4-1.4.3
O pacote M4 contem um processador macros. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.8 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl e Sed
5.28.1. Instalao de M4
Prepare o M4 para a compilao: ./configure --prefix=/tools Compile o pacote: make Para testar os resultados, use: make check. Instale o pacote: make install Os detalhes deste pacote esto em Section 6.24.2, Contedo do M4.
95
5.29. Bison-2.0
O pacote Bison contm um gerador de analisadores (parser generator). Tempo de compilao aproximado: 0.6 SBU Espao em disco necessrio: 10.0 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make e Sed
96
5.30. Flex-2.5.31
O pacote Flex contm um utilitrio para gerar programas que reconhecem padres em texto. Tempo de compilao aproximado: 0.6 SBU Espao em disco necessrio: 22.5 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make e Sed
97
5.31. Util-linux-2.12q
O pacote Util-linux contm programas diversos. Os mais importantes so usados para montar, desmontar, formatar, particionar e gerenciar discos rgidos, abrir portas tty e capturar mensagens do kernel. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 8.9 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed e Zlib
98
5.32. Perl-5.8.6
O pacote do Perl contm a "Practical Extraction and Report Language". Tempo de compilao aproximado: 0.8 SBU Espao em disco necessrio: 79.8 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
99
5.33. Stripping
As etapas desta seo so opcionais, mas se a partio LFS for muito pequena, bom que os artigos desnecessrios possam ser removidos. Os executveis e as bibliotecas configuradas contm cerca de 130 MB de smbolos de depurao (debugging symbols) desnecessrios. Remova estes smbolos com: strip --strip-debug /tools/lib/* strip --strip-unneeded /tools/{,s}bin/* O segundo comando saltar cerca de vinte arquivos, relatando que no reconhece seu formato. A maioria deles so scripts e no binrios. Cuidado para no usar --strip-unneeded nas bibliotecas. As bibliotecas estticas seriam destrudas e os pacotes do nosso jogo de ferramentas (toolchain) teriam que ser configurados outra vez. Para recuperar outros 30 MB, remova a documentao: rm -rf /tools/{info,man} Temos agora pelo mais de 850 Mb de espao livre extra no sistema de arquivos do LFS que pode ser usado para configurar e instalar a Glibc na fase seguinte. Se voc puder configurar e instalar a Glibc, voc poder configurar e instalar todo o resto.
100
Note
Para o restante deste livro voc deve fazer o login como usurio root e no mais como usurio lfs. Tambm tenha certeza de que a varivel $LFS est definida.
102
103
104
105
106
107
108
Os programas login, agetty e init (entre outros) utilizam alguns arquivos de log para gravar informaes do instante em que algum faz o login no sistema em diante. Entretanto, estes programas no faro os registros nos arquivos de log se eles no existirem. Crie os arquivos de log e defina as permisses apropriadas: touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} chgrp utmp /var/run/utmp /var/log/lastlog chmod 664 /var/run/utmp /var/log/lastlog O arquivo /var/run/utmp registra os usurios que esto logados no momento. O arquivo /var/log/wtmp registra todos os logins e logouts. O arquivo /var/log/lastlog registra quando cada usurio fez o login pela ltima vez. O arquivo /var/log/btmp registra as tentativas frustradas de login.
109
Existem alguns vnculos e diretrios exigidos pelo LFS que so criados durante a inicializao do sistema pelo pacote LFS-Bootscripts. Como estamos em um ambiente chroot e no em um ambiente inicializado, estes vnculos e diretrios precisam ser criados agora: ln -s ln -s ln -s ln -s ln -s mkdir mkdir /proc/self/fd /dev/fd /proc/self/fd/0 /dev/stdin /proc/self/fd/1 /dev/stdout /proc/self/fd/2 /dev/stderr /proc/kcore /dev/core /dev/pts /dev/shm
Finalmente, monte os sistemas de arquivos virtuais apropriados (do kernel) nos diretrios recm-criados: mount -t devpts -o gid=4,mode=620 none /dev/pts mount -t tmpfs none /dev/shm
110
A execuo destes comandos mount pode resultar na seguinte mensagem: can't open /etc/fstab: No such file or directory. Este arquivo /etc/fstab no foi criado ainda, mas tambm no necessrio para que os sistemas de arquivos sejam montados corretamente. Assim, os avisos podem ser ignorados.
111
6.9. Linux-Libc-Headers-2.6.11.2
O pacote Linux-Libc-Headers contm os cabealhos do kernel organizados. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 26.9 MB Requisitos de instalao: Coreutils
Descrio rpida
/usr/include/{asm,linux}/*.h As APIs dos cabealhos do Linux
112
6.10. Man-pages-2.01
O pacote man-pages contm mais de 1.200 pginas do man. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 25.8 MB Requisitos de instalao: Bash, Coreutils e Make
Descrio rpida
man pages Fornece descrio das funes C e C++, dos comandos e arquivos importantes do sistema, e dos arquivos de configurao mais importantes
113
6.11. Glibc-2.3.4
O pacote de Glibc contm a biblioteca C principal. Esta biblioteca fornece as rotinas bsicas de alocao de memria, busca em diretrios, abertura e fechamento de arquivos, leitura e escrita de arquivos, manipulao de strings, "pattern matching", aritmtica e assim por diante. Tempo de compilao aproximado: 12.3 SBU Espao em disco necessrio: 476 Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed e Texinfo
114
Important
Nesta seo, a suite de testes da Glibc considerado crtico. No deixe de execut-los em nenhuma circunstncia. Teste o resultado: make check A suite de testes da Glibc altamente dependente de determinadas funes do sistema anfitrio, em especial do kernel. Em geral, de se esperar passar pela suite de testes do Glibc. Entretanto, em determinadas circunstncias, algumas falhas so inevitveis. Esta uma lista das ocorrncias mais comuns: Os testes com o math falham, as vezes, em sistemas onde o processador central no seja um Intel genuno relativamente novo ou AMD genuno. Algumas opes de otimizao concorrem para isso tambm. Os testes com o gettext falham s vezes devido s caractersticas do sistema anfitrio. As razes para isso ainda no foram esclarecidas. Se voc montou a partio LFS com a opo noatime, o teste atime vai falhar. Como mencionado em Section 2.4, Montando a nova partio, no use a opo noatime ao configurar o LFS. Quando executados em equipamentos mais antigos e lentos, alguns testes podem falhar por causa dos test timeouts sendo excedidos.
Embora seja uma mensagem inofensiva, a instalao da Glibc vai se queixar da ausncia do arquivo /etc/ld.so.conf. Evite este aviso com o seguinte comando: touch /etc/ld.so.conf Instale o pacote: make install Os locales, que fazem o sistema responder na lngua nativa do usurio, no foram instalados pelo comando acima. Instale-os com: make localedata/install-locales Para ganhar tempo, uma alternativa ao comando precedente (que gera e instala o locale para cada biblioteca da Glibc) instalar somente aqueles locales que voc quer ou necessita. Isso pode ser feito usando o comando localedef. As informaes deste comando podem ser encontradas no arquivo INSTALL, nos arquivos-fonte da Glibc. Entretanto, alguns locales so essenciais para os testes de alguns pacotes a serem instalados, em especial os testes libstdc++ do GCC. As seguintes instrues, ao invs da install-locales usado acima, vo instalar um conjunto mnimo dos locales necessrios para os testes funcionarem com sucesso: mkdir -p /usr/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE 115
localedef localedef localedef localedef localedef localedef localedef localedef localedef localedef
-i -i -i -i -i -i -i -i -i -i
de_DE@euro -f ISO-8859-15 de_DE@euro en_HK -f ISO-8859-1 en_HK en_PH -f ISO-8859-1 en_PH en_US -f ISO-8859-1 en_US es_MX -f ISO-8859-1 es_MX fa_IR -f UTF-8 fa_IR fr_FR -f ISO-8859-1 fr_FR fr_FR@euro -f ISO-8859-15 fr_FR@euro it_IT -f ISO-8859-1 it_IT ja_JP -f EUC-JP ja_JP
Alguns locales instalados pelo comando make localedata/install-locales acima no so compatveis com algumas aplicaes que esto nos livros do LFS e do BLFS. A razo de vrios problemas surge devido aos programadores das aplicaes adotarem estruturas que no suportam tais locales, o LFS no deve ser usado com os locales que utilizam multibyte character sets (incluindo o UTF-8) ou a ordem de escrita da-direita-para-a-esquerda. Muitos patches no oficiais e instveis so necessrios para corrigir estes problemas, e foi decidido pelos colaboradores do projeto LFS no dar suporte a locales muito complexos. Isto aplica-se aos locales do ja_JP e do fa_IR eles so instalados somente para passar nos testes do GCC e do Gettext, e o programa watch (parte do pacote Procps) no ir funcionar apropriadamente neles. As vrias tentativas de contornar estas limitaes esto documentadas nas sugestes referentes internacionalizao. Compile as pginas man dos linuxthreads, que so uma grande referncia sobre a threading API (aplicvel ao NPTL tambm): make -C ../glibc-2.3.4/linuxthreads/man Instale estas pginas: make -C ../glibc-2.3.4/linuxthreads/man install
# End /etc/nsswitch.conf EOF Para determinar fuso horrio local, execute o seguinte script: tzselect Aps responder algumas perguntas sobre sua localizao, o script gera uma sada com o nome correspondente ao seu fuso horrio (e.g., EST5EDT ou Canada/Eastern). Crie ento o arquivo /etc/localtime com o comando: cp --remove-destination /usr/share/zoneinfo/[xxx] \ /etc/localtime Substitua [xxx] pelo nome do fuso horrio fornecido pelo tzselect (por exemplo, Canada/Eastern). O significado dos parmetros usados com o cp: --remove-destination Isto necessrio para forar a remoo da vinculao simblica j existente. A razo para copiar o arquivo em vez de usar uma vinculao simblica porque o diretrio /usr est em outra partio. Isto ser importante quando se fizer o login na modalidade nico usurio.
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]
118
Descrio rpida
catchsegv gencat getconf getent iconv iconvconfig ldconfig ldd lddlibc4 locale localedef mtrace nscd nscd_nischeck pcprofiledump pt_chown usado para obter informaes da pilha quando um programa termina com falha de segmentao Gera catlogos de mensagens Exibe os valores da configurao do sistema de variveis especficas do sistema de arquivos Obtm entradas de uma base de dados administrativa Faz converses de conjunto de caracteres Cria um mdulo de configurao de rpido acesso para o iconv Configura as ligaes de tempo de execuo do vinculador dinmico Exibe as bibliotecas compartilhadas requeridas por cada programa ou biblioteca especificada na linha de comando Auxilia oldd na manipulao de arquivos-objetos um programa Perl que diz ao compilador para habilitar (ou desabilitar) o uso de localidades POSIX para operaes embutidas (built-in) Compila especificaes de localidade L e interpreta um arquivo de trace de memria e mostra um sumrio em formato legvel por um humano um daemon que prov um cache para os pedidos de servios de nomes mais comuns Verifica se o modo seguro ou no necessrio para pesquisas NIS+ Exibe informao gerada por perfis PC Configura o dono, grupo e permisso de acesso do pseudo-terminal escravo correspondente ao pseudo-terminal mestre fornecido pelo descritor de arquivo '3'. Este o programa auxiliar da funo grantpt. Ele no destinado execuo direta a partir da linha de comando. Gera cdigo C para a implementao do protocolo RPC Faz uma chamada RPC para um servidor RPC Liga simbolicamente o destino origem. Ele estaticamente vinculado, no precisando de vinculao dinmica. Por isso, o ln til para fazer vinculaes simblicas para bibliotecas dinmicas se o sistema dinmico de ligao no estiver funcional por algum motivo. L e exibe dados de perfis de objetos compartilhados Pede informaes ao usurio sobre a sua localizao atual e exibe na sada padro a descrio do fuso horrio resultante Investiga a execuo de um programa exibindo a funo atualmente executada 119
zdump zic ld.so libBrokenLocale libSegFault libanl libbsd-compat libc libcrypt libdl libg libieee libm libmcheck libmemusage libnsl libnss libpcprofile libpthread libresolv librpcsvc librt libthread_db libutil
Exibe o fuso horrio o compilador do fuso horrio o programa auxiliar para executveis de bibliotecas compartilhadas Usados por programas, como o Mozilla, para a correo de locales defeituosos Gerenciador de sinais de falha de segmentao Biblioteca assncrona de pesquisa de nomes Prov a portabilidade necessria para executar certos programas da distribuio de Berkey (DEB) no Linux A biblioteca C principal A biblioteca de criptografia A biblioteca de interface para a vinculao dinmica Biblioteca em tempo de execuo para o g++ Biblioteca de ponto flutuante IEEE Biblioteca matemtica Contm cdigo executado na inicializao utilizado pelo memusage para ajudar a coletar informao sobre uso da memria por um programa A biblioteca de servios de rede A biblioteca Name Service Switch, contendo funes para gerenciamento de nomes do servidores, de usurios, de grupos, de apelidos, de servios, de protocolos etc. Cdigo usado pelo kernel para calcular o tempo de CPU gasto em funes, linhas de cdigo-fonte e instrues A biblioteca POSIX de processos Contm funes destas bibliotecas permitem a criao, envio e interpretao de pacotes de servidores DNS da Internet Contm funes para diversos servios RPC Contm funes com interfaces especificadas pela Extenso em Tempo Real POSIX.1b Contm funes teis para a construo de depuradores para programas multiprocessados Contm funes padronizadas usadas em diferentes utilitrios Unix
120
Note
Se a advertncia anterior para manter os arquivos fonte e o diretrio de configurao do Binutils da segunda passagem no Chapter 5 no foi observada, ou se acidentalmente forem apagados ou esto inacessveis, ignore o comando acima. O resultado ser que o prximo pacote, Binutils, se ligar com as bibliotecas C em /tools ao invs das em /{,usr/}lib. Isto no o ideal, entretanto os testes vo mostrar que os programas binrios resultantes do Binutils devem ser os mesmos. De agora em diante, cada programa compilado ser vinculado somente s bibliotecas em /usr/lib e /lib. A opo INSTALL=/tools/bin/install necessria porque o arquivo Makefile criado durante a segunda passagem contm ainda referncias /usr/bin/install que ainda no foi instalado. Algumas distribuies do anfitrio tm uma ligao simblica com o ginstall que faz exame de precedncia no arquivo Makefile pode causar problemas. O comando acima toma previne isso. Remova os arquivos de fonte e o diretrio de configurao do Binutils agora. Em seguida, modifique o arquivo de especificaes do GCC para que aponte para o novo linker dinmico. Um comando perl far isto: perl -pi -e 's@ /tools/lib/ld-linux.so.2@ /lib/ld-linux.so.2@g;' \ -e 's@\*startfile_prefix_spec:\n@$_/usr/lib/ @g;' \ `gcc --print-file specs` uma boa idia inspecionar visualmente o arquivo de especificaes para verificar se a mudana pretendida foi realmente efetuada.
Important
Se estiver trabalhando em uma plataforma onde o vinculador dinmico no seja ld-linux.so.2, ento substitua ld-linux.so.2 pelo nome do vinculador dinmico da sua plataforma nos comandos acima. Consulte o Section 5.2, Notas tcnicas sobre as ferramentas provisrias, se necessrio.
121
Caution
importante neste momento fazer uma pausa para assegurar-se de que as funes bsicas (compilao e vinculao) das ferramentas provisrias esto funcionando como esperado. Para fazer isto, execute uma verificao de sanidade: echo 'main(){}' > dummy.c cc dummy.c readelf -l a.out | grep ': /lib' Se tudo estiver funcionando corretamente, no deve haver nenhum erro, e a sada do ltimo comando ser (permitindo diferenas especficas de cada plataforma no nome do vinculador dinmico): [Requesting program interpreter: /lib/ld-linux.so.2] Note que agora o prefixo de nosso vinculador dinmico /lib. Se a sada no for como esta mostrada acima nem no houver nenhuma sada, ento algo est seriamente errado. Investigue e repasse todas as etapas para encontrar onde o problema est para corrigi-lo. A razo mais provvel que algo saiu errado com a modificao no arquivo de especificaes do GCC. Todas as pendncias precisam ser resolvidas antes de continuar com o processo de configurao. Uma vez que tudo esteja funcionando corretamente, apague os arquivos dos teste: rm dummy.c a.out
122
6.13. Binutils-2.15.94.0.2.2
O pacote Binutils contm um vinculador dinmico, um assembler, e outras ferramentas para manipular arquivos-objeto. Tempo de compilao aproximado: 1.3 SBU Espao em disco necessrio: 158 MB Requisitos de instalao: Bash, Bison, Coreutils, Diffutils, Flex, GCC, Gettext, Glibc, Grep, M4, Make, Perl, Sed e Texinfo
123
Important
O conjunto de testes para o Binutils nesta seo considerado crtico. No pule esta etapa em hiptese alguma. Teste os resultados: make check Instale o pacote: make tooldir=/usr install Instale o arquivo de cabealhos do libiberty que so necessrios para alguns pacotes: cp ../binutils-2.15.94.0.2.2/include/libiberty.h /usr/include
Descrio rpida
addr2line Converte os endereos de um programa em nomes de arquivo e nmeros de linhas. Dado um endereo e um executvel, ele usa a informao de depurao do executvel para identificar qual nome de arquivo e nmero de linha esto associados ao endereo dado Cria arquivos-conteiner, modifica e extrai de arquivos de arquivos-conteiner (archives). Um arquivo-conteiner contm uma coleo de outros arquivos em uma estrutura que torna possvel recuperar os arquivos individuais originais (chamados membros do arquivo) Assembler que converte a sada do compilador GCC em arquivos-objeto (utilizados pelo vinculador ld) Usado pelo linker para repassar smbolos C++ e Java e para livrar funes sobrecarregadas por conflitos Exibe dados do perfil de grficos de chamada Um vinculador que concatena vrios arquivos-objetos, organiza seu contedo e vincula referncias simblicas. Freqentemente, a ltima etapa na compilao de um novo programa feita pelo ld Lista os smbolos de arquivos-objetos Copia o contedo de um arquivo-objeto para outro. O 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 Exibe informaes sobre um ou mais arquivos-objetos. As opes controlam qual informao 124
ar
as c++filt gprof ld
nm objcopy
objdump
particular ser exibida. Este programa til para programadores que esto produzindo ferramentas de compilao ranlib readelf size Gera um ndice do contedo de um arquivo e armazena esta informao no prprio arquivo. O ndice lista cada smbolo definido pelos arquivos-objetos vinculveis pertencentes ao arquivo Exibe informaes sobre binrios do tipo ELF Lista os tamanhos das sees (e o tamanho total) para cada um dos arquivos-objetos fornecidos. Por padro, uma linha de informao gerada para cada arquivo-objeto ou mdulo em um arquivo Para cada arquivo fornecido, strings exibe as seqncias de caracteres imprimveis com pelo menos 4 caracteres de comprimento (ou o nmero especificado em uma das opes do programa) seguidas por um caractere no-imprimvel. Por padro, ele apenas exibe as strings das sees inicializadas e carregadas dos arquivos-objetos. Para outros tipos de arquivo, ele imprime as strings do arquivo todo. O strings principalmente til para determinar o contedo de arquivos que no esto em formato texto Descarta todos ou determinados smbolos 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 invs de fazer cpias com nomes diferentes dos arquivos modificados Contm as rotinas usadas por vrios programas GNU, incluindo getopt, obstack, strerror, strtol e strtoul Biblioteca de Descrio de Arquivos Binrios
strings
strip
libiberty libbfd
libopcodes Uma biblioteca para lidar com cdigos de operaes de processador (opcodes)gerando uma verso legvel das instrues do processador; usado para compilar utilitrios tais como o objdump.
125
6.14. GCC-3.4.3
O pacote do GCC contm uma coleo de compiladores GNU, que inclui os compiladores C e C++. Tempo de compilao aproximado: 11.7 SBU Espao em disco necessrio: 451 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed e Texinfo
Important
Nesta seo, o conjunto de testes para o GCC considerado crtico. No deixe de execut-lo sob nenhuma circunstncia. 126
Teste os resultados, mas no pare nos erros: make -k check Alguns dos erros so ocorrncias conhecidas e foram mencionados no captulo precedente. Os comentrios feitos para o conjunto de testes na Section 5.11, GCC-3.4.3 - Pass 2, so aplicveis tambm aqui. Consulte-as se necessrio. Instale o pacote: make install Alguns pacotes esperam que o preprocessador C esteja instalado no diretrio /lib. Para dar suporte queles pacotes, crie um vnculo: ln -s ../usr/bin/cpp /lib Muitos pacotes usam o nome cc para chamar o compilador de C. Para dar suporte queles pacotes, crie um vnculo: ln -s gcc /usr/bin/cc
Note
Neste momento, recomenda-se fortemente repetir a verificao de sanidade executada mais cedo neste captulo. Consulte Section 6.12, Re-ajustando as ferramentas provisrias, e repita a verificao. Se os resultados apontarem algum erro, a razo mais provvel ser que o patch Specs do GCC aplicado no Chapter 5 foi erroneamente aplicado aqui.
Descrio rpida
cc cpp c++ g++ gcc gccbug gcov libgcc O compilador C O pr-processador C; usado pelo compilador para processar as instrues #include, #define e outras similares nos arquivos fonte O compilador C++ O compilador C++ O compilador C Um shell script muito til usado para criar relatrios de erro Uma ferramenta de teste de otimizao; usado para indicar onde as opes de otimizao tero melhores efeitos. Suporte em tempo de execuo para o gcc 127
libstdc++ A biblioteca C++ padro libsupc++ Rotinas de suporte linguagem de programao C++
128
6.15. Coreutils-5.2.1
O pacote de Coreutils contm utilitrios que permitem ver e ajustar as caractersticas bsicas do sistema. Tempo de compilao aproximado: 0.9 SBU Espao em disco necessrio: 52.8 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl e Sed
129
Instale o pacote: make install Mova programas para os locais apropriadas: mv mv mv mv mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin /usr/bin/{date,echo,false,head,hostname,install,ln} /bin /usr/bin/{ls,mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin /usr/bin/{sleep,stty,test,touch,true,uname} /bin /usr/bin/chroot /usr/sbin
Descrio rpida
basename cat chgrp chmod Remove diretrios e sufixos de um nome de arquivo fornecido Concatena arquivos para a sada padro Muda a propriedade do grupo de arquivos e diretrios Muda as permisses de cada arquivo para a modalidade especificada; a modalidade pode ser uma representao simblica das mudanas a fazer ou um nmero octal que representa as novas permisses Muda a propriedade do usurio e/ou do grupo de arquivos e dos diretrios Executa um comando ou uma nova instncia do shell com um diretrio especificado funcionando como diretrio / Exibe a assinatura CRC e contagem de bytes de cada arquivo especificado Compara linha por linha dois arquivos ordenados Copia arquivos Exibe partes de um arquivo separadas por um padro em arquivos xx01, xx02, ... e retorna a contagem de bytes de cada parte Exibe partes selecionadas de linhas dos arquivos especificados para a sada padro Exibe a data e horrio atuais em um formato especificado, ou configura a data do sistema 130
dd
Copia um arquivo (da entrada padro para a sada padro, por padro) usando tamanhos de blocos de entrada e sada especificados, enquanto est fazendo opcionalmente converses nele
131
df dir dircolors dirname du echo env expand expr factor false fmt fold groups head hostid hostname id install join link ln logname ls md5sum mkdir mkfifo mknod
Relata a quantidade de espao de disco disponvel (e usado) em todos os sistemas de lima montada, ou somente nos sistemas de lima que prendem as limas selecionadas Lista o contedo do diretrio especificado (igual ao comando ls) Fornece uma seqncia comandos para ajustar a varivel de ambiente de LS_COLOR que define as cores desejadas para os comandos ls Remove sufixos que no so diretrios de um nome de arquivo Relata a quantidade de espao de disco usada pelo diretrio atual, por cada um dos diretrios dados (todos os subdiretrios includos) ou por cada uma das limas dadas Exibe uma linha de texto Executa um comando em um ambiente modificado Converte tabulaes para espaos em arquivos, mostrando na sada padro Avalia expresses Exibe os fatores primos de todos os nmeros inteiros especificados No faz nada, e falha; sempre termina com um cdigo de status indicando erro Reformata os pargrafos dos arquivos especificados, escrevendo para a sada padro Quebra linhas de cada arquivo especificado (ou entrada padro), escrevendo para a sada padro Exibe os grupos dos quais um usurio faz parte Imprime na sada padro as primeiras dez linhas (ou o nmero de linhas especificado) de um arquivo Exibe o identificador numrico (em hexadecimal) do sistema Relata ou ajusta o nome do anfitrio Exibe os IDs de usurio e de grupo do usurio atual ou de algum outro especificado Copia arquivos enquanto define suas permisses e, se possvel, seus proprietrio e grupo Une linhas de dois arquivos em um campo comum Cria um hardlynk para um arquivo com o nome fornecido Cria um hardlynk ou um vnculo simblico (soft link) entre arquivos Exibe nome de login do usurio atual Lista o contedo de um diretrio Mostra ou verifica assinaturas MD5 Cria diretrios Cria um First-In, First-Outs (FIFOs), um named pipe no jargo UNIX Cria #device nodes#; um #device nodes# um arquivo de caracteres especiais, blocos especiais, ou um FIFO 132
mv nice nl nohup od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir seq sha1sum shred sleep sort split stat stty sum sync tac tail tee
Move ou renomeia arquivos e diretrios Executa um programa com prioridade modificada Numera na sada padro as linhas dos arquivos especificados Executa um comando imune a interrupes, com sada para um arquivo de log Mostra uma representao no ambgua, em octal por padro, de um arquivo especificado Funde arquivos, escrevendo para a sada padro linhas consistindo em linhas seqenciais de cada arquivo especificado, separado por TABs Verifica se nomes de arquivo so vlidos ou independentes do sistema (portveis) Um finger simples que obtm informaes sobre um certo usurio Formata em pginas ou colunas para impresso Exibe todas ou algumas das variveis de ambiente Formata e exibe dados (da mesma forma que a funo printf do C) Produz um ndice permutado do contedo dos arquivos especificados, com cada palavra-chave em seu contexto Exibe o nome do diretrio atual Relata o valor de uma ligao simblica Remove arquivos e diretrios Remove os diretrios se estiverem vazios Exibe nmeros de uma certa faixa com um determinado incremento Imprime ou verifica somas de controle seguras do algoritmo 1 da mistura 160-bit (SHA1) Remoo segura de arquivos. Sobrescreve a posio do arquivo no disco repetidamente com testes de padres complexos, tornando impossvel a recuperao de dados Cria uma espera no sistema durante determinado tempo Classifica as linhas dos arquivos especificados Divide um arquivo partes, pelo tamanho ou pelo nmero de linhas Exibe o status de um arquivo ou de u sistema de arquivos Modifica e exibe as configuraes da linha do terminal Exibe a assinatura e contagem de blocos para cada arquivo especificado Esvazia os buffers do sistema de arquivos; isto fora a gravao dos blocos alterados no disco Concatena para a sada padro arquivos na ordem inversa Imprime as ltimas dez linhas (ou o nmero de linhas informado) de cada lima especificado L da entrada padro para escrever na sada padro e em um arquivo especificado 133
test touch tr true tsort tty uname unexpand uniq unlink users vdir wc who whoami yes
Compara valores e verifica tipos de arquivos As mudanas arquivam timestamps, ajustando os tempos do acesso e da modificao das limas dadas ao tempo atual; as limas que no existem so criadas com o comprimento zero Traduz, comprime e/ou remove caracteres da entrada padro, escrevendo para a sada padro No faz nada, mas com sucesso; sempre termina com um cdigo de status indicando sucesso Escreve listas totalmente ordenadas consistentes com a ordenao parcial dos arquivos especificados Exibe o nome de arquivo do terminal conectado entrada padro Exibe informaes sobre o sistema Converte espaos de cada arquivo para TABs, escrevendo para a sada padro Mostra linhas duplicadas de um arquivo Chama a funo unlink para remover um arquivo Exibe os nomes dos usurios atualmente logados no sistema o mesmo que ls -l Exibe a contagem de linhas, palavras e bytes para cada arquivo especificado e uma linha total, se mais de um arquivo foi especificado Mostra quem est logado Mostra o nome de usurio associado ao UID atual Gera uma sada y ou uma string dada repetidamente, at ser terminado
134
6.16. Zlib-1.2.2
O pacote Zlib contem rotinas de compresso e descompresso usadas por alguns programas. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.7 MB Requisitos de instalao: Binutils, Coreutils, GCC, Glibc, Make e Sed
Note
A Zlib configura incorretamente sua biblioteca compartilhada quando a varivel CFLAGS est definida no ambiente. Se a varivel CFLAGS estiver definida, acrescente a opo -fPIC varivel CFLAGS durante a execuo do comando de configurao abaixo, removendo-a depois de completado o processo. Prepare o Zlib para a compilao: ./configure --prefix=/usr --shared --libdir=/lib Compile o pacote: make Para testar os resultados, use: make check. Instale a biblioteca compartilhada: make install O comando anterior instalou um arquivo .so em /lib. Vamos remov-lo e revincul-lo /usr/lib: rm /lib/libz.so ln -sf ../../lib/libz.so.1.2.2 /usr/lib/libz.so Configure a biblioteca esttica: make clean ./configure --prefix=/usr make Para testar outra vez os resultados, use: make check. Instale a biblioteca esttica: make install 135
Descrio rpida
libz Contm as funes de compresso e descompresso usadas por alguns programas
136
6.17. Mktemp-1.5
O pacote de Mktemp contm os programas usados para criar arquivos temporrios seguros em scripts para o shell. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 436 KB Requisitos de instalao: Coreutils, Make e Patch
Descrio rpida
mktemp tempfile Cria arquivos temporrios de maneira segura; usada em scripts. Cria arquivos temporrios de maneira menos segura do que o mktemp; instalado por questo de compatibilidade
137
6.18. Iana-Etc-1.04
O pacote Iana-Etc fornece dados para os servios de rede e protocolos. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 1.9 MB Requisitos de instalao: Make
Descrio rpida
/etc/protocols Descreve os vrios protocolos DARPA da Internet que esto disponveis no subsistema TCP/IP /etc/services Traa um mapa de nomes textuais amigveis para servios da Internet, suas portas e protocolos
138
6.19. Findutils-4.2.23
O pacote Findutils contm programas para encontrar arquivos. Estes programas so utilizados para fazer buscas recursivas atravs de uma rvore do diretrio e para criar, manter, e fazer buscas em uma base de dados (mais rapidamente do que em uma busca recursiva, mas irreal se a base de dados no foi atualizada recentemente). Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 9.4 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
Descrio rpida
bigram code find frcode Foi usado anteriormente gerar a bases de dados do locate Foi usado anteriormente gerar bases de dados do locate; o antecessor do frcode. Buscas na rvore de diretrios por arquivos que combinam os critrios especificados chamado pelo updatedb para comprimir a lista de nomes de arquivos; usa um mtodo de compresso front-compression que que reduz o tamanho da base de dados por um fator de quatro a cinco. Buscas atravs de uma base de dados por nomes de arquivos e apresenta relatrio com os arquivos cujos nomes contm a string fornecida ou que combinam com o padro especificado Atualiza a base de dados do locate; faz a varredura do sistema de arquivos inteiro (outros sistemas de arquivos que estejam montados so includos tambm, a menos que dito que no) e pe cada nome de arquivo por ele encontrado, e sua localizao, na base de dados 139
locate updatedb
xargs
140
6.20. Gawk-3.1.4
O pacote Gawk contm programas para manipular arquivos de texto. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 16.4 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
Descrio rpida
awk gawk gawk-3.1.4 grcat igawk pgawk pgawk-3.1.4 pwcat Um vnculo para o gawk Um programa para manipular arquivos de texto; a implementao GNU do awk Um hardlynk para o gawk Despeja a base de dados de grupos do /etc/group D ao gawk a habilidade de incluir arquivos A verso profiling do gawk Um hardlynk para o pgawk Despeja a base de dados de senhas /etc/passwd
141
6.21. Ncurses-5.4
O pacote Ncurses contm bibliotecas para manipulao de caracteres de tela independentes ao terminal, para a criao de painis e menus. Tempo de compilao aproximado: 0.6 SBU Espao em disco necessrio: 18.6 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
142
Descrio rpida
captoinfo clear infocmp Converte uma descrio do termcap em uma descrio do terminfo Limpa a tela, se isto for possvel. Ele identifica no ambiente o tipo de terminal e varre a base de dados do terminfo para descobrir como limpar a tela Compara ou exibe descries do terminfo. Pode ser usado para comparar uma entrada binria do terminfo com outras entradas, reescrever uma descrio para ter vantagem no uso do campo use, ou exibir uma descrio do arquivo binrio (term) em uma variedade de formatos (o oposto do que o tic faz) Converte uma descrio do terminfo em uma descrio do termcap Reinicializa um terminal para seus valores padro. Configura os modos cooked e echo, desativa os modos cbreak e raw, ativa a converso de nova-linha e zera qualquer caractere especial no configurado para os seus valores-padro antes de fazer a inicializao do terminal da mesma forma que tset. O verificador da ao do terminfo; usada principalmente testar a exatido de uma entrada na base de dados do terminfo o compilador do terminfo para entradas de descries. O programa converte um arquivo terminfo do formato fonte para o formato binrio para uso com as rotinas da biblioteca ncurses. Arquivos terminfo contm informao sobre as capacidades de um terminal. Lista todos os tipos de terminais disponveis, dando o nome e a descrio preliminar de cada um Usa a base de dados do terminfo para criar os valores das capacidades dependentes de terminal e informaes disponveis no shell, para inicializar ou reinicializar o terminal ou retornar o nome longo do tipo de terminal requisitado Pode ser usado para inicializar terminais um vnculo com libncurses
infotocap reset
tack tic
toe tput
tset libcurses
libncurses Estas bibliotecas so a base do sistema e so usadas para exibir texto (freqentemente de um modo requintado) na tela. Um exemplo onde o Ncurses usado no processo make menuconfig do kernel libform libmenu libpanel Contm funes para executar formulrios Contm funes para executar menus Contm funes para executar os painis
143
6.22. Readline-5.0
O pacote de Readline um conjunto de bibliotecas que acrescenta recursos de edio e de histrico linha de comando do shell. Tempo de compilao aproximado: 0.11 SBU Espao em disco necessrio: 9.1 MB Requisitos de instalao: Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses e Sed
144
Descrio rpida
libhistory Fornece uma interface consistente com o usurio recordando o histrico da linha de comando
libreadline Ajuda a dar consistncia interface com o de usurio atravs da linha do comando
145
6.23. Vim-6.3
O pacote Vim contm um editor de texto poderoso. Tempo de compilao aproximado: 0.4 SBU Espao em disco necessrio: 38.0 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed
Alternativas ao Vim
Se voc preferir algum outro editor de texto como o Emacs, Joe ou Nanoconsulte http://www.linuxfromscratch.org/blfs/view/svn/postlfs/editors.html para instrues de instalao.
ln -s vim /usr/bin/vi Se um sistema de janelas X (X Window System) vier a ser instalado no sistema LFS, pode ser necessria a recompilao do Vim aps a instalao do X. O Vim tem uma verso GUI do editor que requer o X e algumas bibliotecas adicionais para ser instalado. Para mais informao sobre este processo, consulte a documentao do Vim e a pgina da instalao Vim no livro do projeto BLFS em http://www.linuxfromscratch.org/blfs/view/svn/postlfs/editors.html#postlfs-editors-vim.
Descrio rpida
efm_filter.pl Um filtro que l da entrada padro, copia para a sada padro e cria um arquivo de erro que pode ser lido pelo vim 147
efm_perl.pl ex less.sh mve.awk pltags.pl ref rview rvim shtags.pl tcltags view vi vim vim132 vim2html.pl vimdiff vimm vimspell.sh
Reformata as mensagens de erro do interpretador Perl para o uso com o modo quickfix do vim Inicia o vim em modo Ex Um script que inicia o vim com less.vim Processa erros dovim Cria um arquivo de tags (marcaes) para cdigos Perl a ser usado pelo vim Verifica a gramtica dos argumentos Verso restrita do view; nenhum comando shell pode ser iniciado e o viewno pode ser suspenso Verso restrita do vim; nenhum comando shell pode ser iniciado e o vim no pode ser suspenso Gera um arquivo de tags para scripts Perl Gera um arquivo de tags para cdigo TCL Inicia o vim em modo somente leitura o editor o editor Inicia o vim em modo de terminal com 132 colunas Converte a documentao do vim para HypterText Markup Language (HTML) Edita duas ou trs verses de um arquivo com o vim e exibe as diferenas Habilita o modelo de entrada do localizador DEC em um terminal remoto Script que verifica a gramtica de um arquivo e gera as instrues de sintaxe necessrias para o destaque no vim. Este script requer o velho comando spell do Unix, o qual no est disponvel nem no LFS e nem no BLFS Ensina o bsico sobre as teclas chave e os comandos do vim Exibe um arquivo em hexadecimal ou faz o inverso
vimtutor xxd
148
6.24. M4-1.4.3
O pacote M4 contem um processador macros. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.8 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl e Sed
6.24.1. Instalao do M4
Configure o pacote para compilao: ./configure --prefix=/usr Compile o pacote: make Para testar o resultado, use: make check. Instale o pacote: make install
6.24.2. Contedo do M4
Programas instalados: m4
Descrio rpida
m4 um processador de macros. Ele copia a entrada para a sada, expandindo macros medida em que aparecem. Essas macros so nativas ou definidas pelo usurio e podem receber qualquer nmero de argumentos. Alm de fazer expanso de macros, o m4 tem funes nativas para a incluso de arquivos, execuo de comandos Unix, clculo de aritmtica de inteiros, manipulao de texto de diversas formas, recursividade, etc. O programa m4 pode ser usado como um front-end (interface) para um compilador ou como um processador de macros independente.
149
6.25. Bison-2.0
O pacote Bison contm um gerador de analisadores (parser generator). Tempo de compilao aproximado: 0.6 SBU Espao em disco necessrio: 9.9 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make e Sed
Descrio rpida
bison yacc O bison um gerador de analisadores (parser generator), um substituto para o yacc. Yacc significa Outro Compilador de Compiladores (Yet Another Compiler Compiler). Este script para o Bash executa o bison usando a opo bison, feito com propsitos de compatibilidade com programas que utilizam o yacc ao invs do bison; ele chama bison com o parmetro -y
liby.a A biblioteca de Yacc que contm execues das funes yyerror e main; esta biblioteca no normalmente muito til, mas o POSIX a exige
150
6.26. Less-382
O pacote Less contm um visualizador de arquivos de texto. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.3 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed
Descrio Rpida
less lessecho lesskey Um visualizador ou paginador de arquivos de texto; exibe o contedo do arquivo especificado, com recursos de rolagem pelo usurio, busca por strings e salto para marcaes Necessrio para expandir meta-caracteres, tais como * e ?, nos nomes de arquivo em sistemas Unix Usado para especificar as teclas de atalho less
151
6.27. Groff-1.19.1
O pacote de Groff contm programas para processar e formatar texto. O Groff converte texto puro e comandos especiais para determinado formato, como o que voc v em uma pgina de manual. Tempo de compilao aproximado: 0.5 SBU Espao em disco necessrio: 38.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
Descrio rpida
addftinfo afmtodit eqn eqn2graph geqn L um arquivo de fontes troff e adiciona informaes sobre tamanho de fontes que so usadas pelo sistema groff Cra um arquivo de fontes para uso com o groff e o grops Compila descries de equaes embutidas em arquivos de entrada troff em comandos que so entendidos pelo troff Converte um EQN (equao) do troff em uma imagem Um vnculo para o eqn 152
Um pr-processador do groff para arquivos gremlin Um driver para o groff que prov o formato dvi do TeX Um front-end para o sistema de formatao de documentos groff. Normalmente ele executa o programa troff e um ps-processador apropriado para o dispositivo selecionado Exibe arquivos groff e pginas do man no X e em terminais tty L arquivos e detecta quais das opes -e, -man, -me, -mm, -ms, -p, -s, e -t, do groff, so necessrias para imprimir cada arquivo exibindo o comando groff com as opes necessrias um driver do groff para as impressoras Canon CAPSL (impressoras a laiser das sries LBP-4 e LBP-8) um driver do groff que produz sada no formato PCL5 apropriado para uma impressora HP Laserjet 4 Traduz a sada do GNU troff para PostScript Traduz a sada do GNU troff um formato apropriado para dispositivos tipo mquina de escrever Um vnculo para o tbl Cria um arquivo de fontes para uso com o groff -Tlj4 a partir de um arquivo de tamanho de fontes HP Cria um ndice remissivo para base de dados bibliogrficos em um arquivo para uso com refer, lookbib e lkbib Procura referncias em bases de dados bibliogrficos que contm palavras-chaves especficas e exibe as referncias encontradas Exibe uma linha de comando na sada de erros padro (a no ser que a sada padro no seja um terminal), l da entrada padro uma linha contendo um conjunto de caracteres, procura por referncias contendo estes caracteres em bases de dados bibliogrficos em um arquivo especificado, exibe na sada padro as referncias encontradas e repete este processo at o final do arquivo Um pr-processador simples para o groff Formata equaes para sada ASCII Um script emula o comando nroff usando o groff Traduz uma fonte Postscript no formato .pfb para o ASCII Compila as descries de figuras embutidas em arquivos de entrada troff ou TeX em comandos que so entendidos pelo TeX ou troff Converte um diagrama PIC em uma imagem Traduz a sada do GNU troff para HTML Traduz a sada do GNU troff para HTML 153
refer
o contedo de um arquivo para a sada padro, exceto linhas entre .[ e .], interpretadas como citaes, e linhas entre .R1 e .R2, interpretadas como comandos que definem como as citaes sero processadas L arquivos e substitui linhas na forma arquivo .so pelo contedo de arquivo arquivo Compila descries de tabelas embutidas em arquivos de entrada troff em comandos que so entendidos pelo troff Cria um arquivo de fontes para uso com groff -Tdvi altamente compatvel com o Unix troff. Normalmente ele deve ser invocado usando o comando groff, que ir executar tambm pr e ps-processadores na ordem apropriada e com as opes apropriadas Um vnculo para o soelim
zsoelim
154
6.28. Sed-4.1.4
O pacote de Sed contem um editor de fluxo (stream editor). Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 8.4 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Texinfo
Descrio Rpida
sed Filtra e transforma arquivos texto em uma nica passagem.Um editor de stream usado para fazer transformaes bsicas em textos de um stream de entrada (um arquivo ou entrada de um canal).
155
6.29. Flex-2.5.31
O pacote Flex contm um utilitrio para gerar programas que reconhecem padres em texto. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 22.5 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make e Sed
Descrio rpida
flex Uma ferramenta para gerar programas que reconhecem padres em textos; ele permite a versatilidade de se especificar regras para localizar padres, erradicando a necessidade de desenvolver um programa especfico para isso Invoca uma verso do flex que usada exclusivamente por analisadores de cdigo C++ Um script bash chamado lex que executa o flex em modo de emulao do lex
flex++ lex
157
6.30. Gettext-0.14.3
O pacote Gettext contm utilitrios para a internacionalizao e localizao. Eles permitem que os programas sejam compilados com suporte lngua nativa (NLS, Native Language Support) habilitando a exibio de mensagens de sada na lngua nativa do usurio. Tempo de compilao aproximado: 1.2 SBU Espao em disco necessrio: 65.1 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
Short Descriptions
autopoint config.charset config.rpath envsubst gettext gettextize hostname Copia arquivos infrastructure Gettext padro em um pacote de fonte Exibe uma tabela de apelidos para codificao de caracteres Exibe um conjunto de variveis dependentes do sistema, descrevendo como configurar os caminhos de procura de bibliotecas compartilhadas em um executvel Substitui variveis de ambiente em strings no formato do shell Traduz uma mensagem em linguagem natural para a lngua do usurio buscando a traduo em um catlogo de mensagens Copia todos os arquivos gettext padro para o diretrio de um pacote, para iniciar sua internacionalizao Exibe o nome do computador da rede em vrios formatos 158
msgattrib msgcat msgcmp msgcomm msgconv msgen msgexec msgfilter msgfmt msggrep msginit msgmerge msgunfmt msguniq ngettext xgettext libasprintf
Filtra as mensagens de um catlogo de traduo de acordo com os seus atributos Concatena e funde dois arquivos .po Compara dois arquivos .po para verificar se ambos contm o mesmo conjunto de strings do msgid Encontra as mensagens que so comuns aos arquivos .po Converte um catlogo de traduo para uma codificao de caractere diferente Cra um catlogo de traduo para o ingls Aplica um comando para todas as tradues de um catlogo Aplica um filtro para todas as tradues de um catlogo Compila uma traduo crua em cdigo de mquina. usado para criar o arquivo final de traduo do programa/pacote Extrai todas as mensagens de um catlogo de traduo que satisfazem um padro dado ou pertencem a algum arquivo-fonte fornecido Cria um novo arquivo .po, inicializando a meta-informao com valores do ambiente do usurio Combina duas tradues cruas em um nico arquivo Descompila arquivos de traduo em texto traduzido cr Unifica tradues duplicadas em um catlogo Exibe tradues em lngua nativa de uma mensagem textual onde a forma gramatical depende de um nmero Extrai as linhas de mensagem de arquivos fonte para fazer o primeiro modelo de traduo Define a classe autosprintf, que faz as rotinas de sada (output) formatadas em C utilizveis em programas C++, para o uso com cadeias de caracteres <string> e fluxos <iostream> Uma biblioteca privada que contm as rotinas comuns usadas pelos vrios programas do Gettext; ela no para o uso geral Utilizada para escrever os programas especializados em processar arquivos .po; esta biblioteca usada quando as aplicaes que acompanham o Gettext (tais como msgcomm, msgcmp, msgattrib e msgen) no forem suficientes Uma biblioteca privada que contm as rotinas comuns usadas pelos vrios programas do Gettext; ela no para o uso geral
libgettextlib libgettextpo
libgettextsrc
159
6.31. Inetutils-1.4.2
O pacote Inetutils contm programas para o funcionamento bsico em rede. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 8.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed
160
Instale o pacote: make install Mova o programa ping para seu lugar compatvel com o FHS: mv /usr/bin/ping /bin
Descrio rpida
ftp ping rcp rlogin rsh talk telnet tftp o programa cliente do protocolo de transferncia de arquivos Envia pacotes-eco e apresenta relatrios sobre o tempo e o percurso das respostas na rede Executa a cpia de arquivo remoto Executa um login remoto Executa um shell remoto usado para chat com um outro usurio Uma interface com o protocolo telnet Um programa bsico para transferncia de arquivos
161
6.32. IPRoute2-2.6.11-050330
O pacote IPRoute2 contm programas para funcionamento bsico e avanado de redes baseadas no IPV4. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 4.3 MB Requisitos de instalao: GCC, Glibc, Make, Linux-Headers e Sed
Descrio rpida
ctstat ifcfg ifstat Utilitrio de status da conexo Um shell script para o comando ip Mostra as estatsticas da interface, incluindo a quantidade de pacotes transmitidos e recebidos pela interface
162
ip
O principal executvel. Tem diversas funes diferentes: ip link [dispositivo] permite que os usurios vejam o estado dos dispositivos e faam mudanas ip addr permite que os usurios vejam endereos e suas propriedades, adicionem endereos novos, e suprimam o velhos ip neighbor permite que os usurios olhem emperramentos vizinhos e suas propriedades, adicionem entradas vizinhas novas, e suprimam o velhos ip rule permite que os usurios vejam as polticas da distribuio e as mudem ip route permite que os usurios vejam a tabela de distribuio e para modifiquem suas regras ip tunnel permite que os usurios vejam e modifiquem os tneis do IP e suas propriedades ip maddr permite que os usurios vejam e modifiquem os endereos multicast e suas propriedades, e ip mroute permite que os usurios ajustem, mudem, ou suprimam a distribuio do multicast ip monitor permite usurios monitorem continuamente o estado dos dispositivos, dos endereos e das rotas
Fornece as estatsticas da rede Linux. uma verso mais completa para o antigo programa rtstat Mostra estatsticas da rede Um componente do ip route. Esvazia as tabelas de distribuio Um componente do ip route. Lista as tabelas de distribuio Mostra o contedo do arquivo /proc/net/rt_acct Utilitrio de monitoramento de rota Converte a sada do ip -o para um formato legvel Utilitrio de status da rota Similar ao comando netstat; mostra conexes ativas Controlador de Trfego Executvel (Traffic Controlling Executable); implementao para Quality Of Service (QOS) e Class Of Service (COS) tc qdisc permite que os usurios definam a disciplina da fila tc class permite que os usurios definam as classes baseadas em programar da disciplina enfileirar-se tc estimator permite que os usurios estimem o fluxo da rede em uma rede tc filter permite que os usurios definam o filtro de pacotes do QOS/COS tc policy permite que os usurios definam as polticas de QOS/COS 163
6.33. Perl-5.8.6
O pacote do Perl contm a "Practical Extraction and Report Language". Tempo de compilao aproximado: 2.9 SBU Espao em disco necessrio: 137 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make e Sed
Descrio rpida
a2p c2ph Conversor de AWK para PERL Exibe as estruturas C como se fossem geradas a partir de cc -g -S 164
dprofpp en2cxs find2perl h2ph h2xs libnetcfg perl perl5.8.6 perlbug perlcc perldoc perlivp piconv pl2pm pod2html pod2latex pod2man pod2text pod2usage podchecker podselect psed pstruct s2p splain xsubpp
Exibe dados de perfil do Perl Configura uma extenso do Perl para o mdulo Encode do Unicode Character Mappings ou Tcl Encoding Files Converte linhas de comando do find para cdigo Perl Converte arquivos de cabealhos .h do C para arquivos de cabealhos .ph do Perl. Converte arquivos de cabealhos .h para extenses do Perl Pode ser usado para configurar o libnet Ela combina algumas das melhores funcionalidades do C, sed, awk e sh em uma nica linguagem poderosa Um hardlink ao perl Auxilia a gerao de relatrios de bug sobre o Perl ou seus mdulos e os envia por e-mail Gera executveis a partir de programas Perl Apresenta uma parte da documentao em formato .pod encontrada nos diretrios do Perl ou em um script Perl e a exibe A Perl Installation Verification Procedure; pode ser usada para verificar se o Perl e suas bibliotecas foram instalados corretamente Uma verso do Perl do iconv Uma ferramenta que auxilia na converso de bibliotecas .pl estilo Perl4 para mdulos .pm do Perl5 Converte arquivos do formato pod para o HTML Converte arquivos do formato pod para o LaTeX Converte arquivos do formato pod para o *roff Converte arquivos do formato pod para texto ASCII formatado Exibe mensagens de uso para documentos pod embutidos em arquivos Verifica a sintaxe de arquivos de documentao em formato pod Exibe sees selecionadas da documentao pod na sada padro Uma verso do Perl do editor de stream sed Exibe estruturas C como se fossem geradas a partir cc -g -S Conversor de scripts sed para Perl Programa que fora diagnsticos detalhados de avisos no Perl Converte cdigo Perl XS em cdigo C
165
6.34. Texinfo-4.8
O pacote de Texinfo contm programas para a leitura, a escrita, e converso de pginas info. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 14.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses e Sed
166
Descrio rpida
info Usado para ler pginas info que so parecidas com pginas man mas geralmente vo muito mais a fundo do que simples explicaes das opes de linha de comando. Por exemplo, compare man bison e info bison. Compiles a source file containing Info customizations into a binary format Usado para instalar pginas info; ele atualiza as entradas nos arquivos de ndices info Converte documentos-fontes Texinfo para os formatos: arquivos info, texto plano e HTML Formata um documento Texinfo em um documento independente do dispositivo que pode ser impresso Usado para ordenar arquivos-ndices Texinfo
167
6.35. Autoconf-2.59
O pacote de Autoconf contm programas para gerar shell scripts que podem automaticamente configurar cdigos fonte. Tempo de compilao aproximado: 0.5 SBU Espao em disco necessrio: 8.5 MB Requisitos de instalao: Bash, Coreutils, Diffutils, Grep, M4, Make, Perl e Sed
Descrio
autoconf Produz os shell scripts que configuram automaticamente pacotes de cdigos fonte de software para se adaptar a muitos tipos de sistemas Unix. Os scripts de configurao que produz so independentessua execuo no requer o programa autoconf. Cria um arquivo-modelo de declaraes #define em linguagem C para uso com o configure Usado para chamar o o processador de macro M4 Automaticamente executa o autoconf, autoheader, aclocal, automake, gettextize e o libtoolize na ordem correta para economizar tempo quando so feitas mudanas nos arquivos modelo autoconf e automake Auxilia na criao de um arquivo configure.in para um pacote de software; examina os arquivos fonte em uma rvore do diretrio, procura os recursos comuns de portabilidade, e cria um arquivo configure.scan que sirva como um arquivo configure.in preliminar para o pacote Modifica um arquivo configure.in que ainda chama macros autoconf por seus nomes antigos para que use os nomes de macro atuais
autoscan
autoupdate
168
ifnames
Ajuda a escrever o arquivo configure.in para um pacote de software; mostra os identificadores que o pacote usa em condicionai de preprocessamento C. Se um pacote j configurado para ter algum portabilidade, este programa pode ajudar a determinar o que no configure precisam ser verificado. Pode tambm preencher lacunas em um arquivo configure.in gerado pelo autoscan
169
6.36. Automake-1.9.5
O pacote Automake contm programas para gerar makefiles para uso com o Autoconf. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 8.8 MB Requisitos de instalao: Autoconf, Bash, Coreutils, Diffutils, Grep, M4, Make, Perl e Sed
Descrio rpida
acinstall aclocal aclocal-1.9.5 automake Um script que instala arquivos M4 tipo aclocal (aclocal-style). Gera os arquivos aclocal.m4 baseado no contedo de arquivos configure.in Um hard link para o aclocal Uma ferramenta para gerar automaticamente arquivos Makefile.in a partir de arquivos Makefile.am. Para criar todos os arquivos Makefile.in para um pacote, execute este programa no diretrio de nvel mais alto, sem argumentos. O automake vai analisar o arquivo configure.in, localizar automaticamente cada arquivo Makefile.am e gerar o arquivo Makefile.in correspondente Um hard link para o automake Um script que age como um intermedirio para compiladores Um script que detecta o tipo de sistema Um script de validao da configurao
170
Um script que gera dependncias a partir dos efeitos da compilao de programas-teste Um script que compila arquivos .el (Emacs Lisp code). Um script que instala um programa, outro script ou um arquivo de dados Um script que imprime a data de modificao de um arquivo ou diretrio Um script que age como um mediador para alguns programas que esto faltando no sistema Um script que cria uma hierarquia de diretrios Compila um programa de Python Um script para criar uma rvore de symlink de uma rvore de diretrio Um script que funciona como mediador para requisies lex e yacc
171
6.37. Bash-3.0
O pacote bash contm o shell Bourne-Again SHell. Tempo de compilao aproximado: 1.2 SBU Espao em disco necessrio: 20.6 MB Requisitos de instalao: Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses e Sed.
Note
Os parmetros usados fazem o bash processar um shell interativo (login-shell) mantendo desabilitado o hashing de modo que os programas novos sejam encontrados assim que se tornem disponveis. 172
Descrio rpida
bash bash o Bourne-Again SHell, um interpretador de comandos largamente utilizado em sistemas Unix. O programa bash l da entrada padro (o teclado). Um usurio digita algo, o programa avalia o que ele digitou e realiza alguma ao, como executar um programa Um script shell que ajuda o usurio a compor e enviar relatrios de bugs relacionados ao bash, por meio de um mtodo padronizado Um vnculo simblico para o programa bash; Quando invocado como sh, bash o bash tenta emular o funcionamento de verses histricas do sh o mais idntico possvel, ao mesmo tempo que se mantm adequado ao padro POSIX
bashbug sh
173
6.38. File-4.13
O pacote File contm um utilitrio para determinar o tipo de um ou vrios arquivos. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 6.2 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed e Zlib
Descrio rpida
file Tenta classificar cada arquivo especificado; faz isso efetuando diversos testestestes de sistemas de arquivos, testes de nmeros mgicos, testes de linguagem
libmagic Contm as rotinas para o reconhecimento do nmero m, usadas pelo programa file
174
6.39. Libtool-1.5.14
O pacote Libtool contm o script genrico GNU de suporte biblioteca. Facilita o uso de bibliotecas compartilhadas atravs de uma interface consistente e portvel. Tempo de compilao aproximado: 1.5 SBU Espao em disco necessrio: 19.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make e Sed
Descrio rpida
libtool libtoolize libltdl Fornece servios genricos de suporte compilao de bibliotecas Fornece um meio padronizado para adicionar suporte ao libtool em um pacote Uma pequena biblioteca que esconde dos programadores as vrias dificuldades no desenvolvimento de bibliotecas
175
6.40. Bzip2-1.0.3
O pacote Bzip2 contm programas para compresso e descompresso de arquivos. Arquivos de texto comprimindo com o bzip2 alcanam uma porcentagem muito melhor de compresso do que com o tradicional gzip. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 3.9 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc e Make
Descrio rpida
176
Descompacta arquivos bzip2 Descompacta todos os arquivos fornecidos para a sada padro Executa o programa cmp em arquivos compactados Executa o programa diff em arquivos compactados Executa o programa grep em arquivos compactados Executa o programa egrep em arquivos compactados Executa o programa fgrep em arquivos compactados Compacta arquivos usando o algoritmo Burrows-Wheeler de compresso de texto atravs da ordenao de blocos. A compactao consideravelmente melhor que a dos compactadores convencionais baseados no algoritmo Lempel-Ziv, como o gzip Tenta recuperar dados de arquivos compactados bzip2 danificados Executa o programa less em arquivos compactados Executa o programa more em arquivos compactados Biblioteca para implementao de compresso de dados usando o algoritmo Burrows-Wheeler
177
6.41. Diffutils-2.8.1
O pacote Diffutils contm programas que mostram as diferenas entre arquivos ou diretrios. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 5.6 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
Descrio rpida
cmp diff diff3 sdiff Compara dois arquivos e relata se ou em que bytes diferem Compara dois arquivos ou diretrios e relata em que linhas os arquivos diferem Compara trs arquivos linha por linha Mescla dois arquivos e exibe os resultados interativamente
178
6.42. Kbd-1.12
O pacote Kbd contm arquivos de mapeamento de teclas e utilitrios para o teclado. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 11.8 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make e Sed
Descrio rpida
chvt deallocvt dumpkeys fgconsole getkeycodes getunimap kbd_mode kbdrate loadkeys loadunimap Modifica o terminal virtual de primeiro plano Libera terminais virtuais no usados Exibe as tabelas de converso do teclado Exibe o nmero do terminal virtual ativo Exibe a tabela de mapeamento scancode-para-keycode do kernel Exibe o unimap que est sendo usado Exibe ou configura o modo do teclado Ajusta a velocidade de repetio e espera do teclado Carrega as tabelas de converso do teclado Carrega a tabela de mapeamento unicode-para-fonte do kernel
179
mapscrn openvt psfaddtable psfgettable psfstriptable psfxtable resizecons setfont setkeycodes setleds setlogcons setmetamode setvesablank showconsolefont showkey unicode_start unicode_stop
Um programa obsoleto que carrega a tabela de sada de caractere definida pelo usurio dentro do driver do console. Isto feito atualmente pelo setfont Inicia um programa em um novo terminal virtual (VT). Um vnvulo para o psfxtable Um vnvulo para o psfxtable Um vnvulo para o psfxtable Manipula as tabelas de caracteres Unicode para fontes do console Modifica a configurao do kernel para o tamanho do console Modificar as fontes EGA/VGA no console Carrega as entradas da tabela de mapeamento scancode-para-keycode do kernel Configura os LEDs do teclado. Muitas pessoas acham isto til para ter o numlock habilitado por padro Envia mensagens do kernel para o console Define o funcionamento da tecla alt (meta) do teclado Permite a voc configurar o protetor de tela do hardware (uma tela em branco) Exibe a atual fonte EGA/VGA de tela do console Mostra os scancodes, os keycodes, e os cdigos ASCII das teclas pressionadas no teclado Pe o teclado e o console no modo UNICODE. No use em um sistema LFS, pois as aplicaes no esto configuradas para suportar o UNICODE Retira o teclado e o console do modo Unicode
180
6.43. E2fsprogs-1.37
O pacote de E2fsprogs contm utilitrios para manipular o sistema de arquivos ext2. Suporta tambm o sistema de arquivos ext3 journaling. Tempo de compilao aproximado: 0.6 SBU Espao em disco necessrio: 40.0 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed e Texinfo
181
Instale os binrios e a documentao: make install Instale as bibliotecas compartilhadas: make install-libs
Descrio rpida
badblocks blkid chattr compile_et debugfs dumpe2fs e2fsck e2image e2label findfs fsck fsck.ext2 fsck.ext3 logsave lsattr mk_cmds Procura blocos danificados em um dispositivo (normalmente uma partio do disco) Um utilitrio de linha de comando para encontrar e exibir atributos do dispositivo de blocos Modifica os atributos de arquivos em sistemas de arquivos ext2 e ext3 (verso com journaling do ext2) Um compilador da tabela de erro; lista nomes de cdigos de erro e as respectivas mensagens em um arquivo-fonte C prprio para uso com a biblioteca com_err Um depurador do sistema de arquivos. Ele pode ser usado para examinar e modificar o estado de um sistema de arquivos ext2 Exibe informaes de grupo sobre o superbloco e demais blocos para o sistema de arquivos presente em um dispositivo especfico usado verificar, e opcionalmente reparar sistemas de arquivos ext2 e ext3 usado conservar dados crticos do sistema de arquivos ext2 em um arquivo Exibe ou modifica a etiqueta do sistema de arquivos ext2 localizado no dispositivo especificado Encontra um sistema de arquivos pela etiqueta ou pelo identificador universal original (UUID) usado verificar, e opcionalmente reparar sistemas de arquivos Por padro, verifica sistemas de arquivos ext2 Por padro, verifica sistemas de arquivos ext3 Registra a sada de um comando em um arquivo de log Lista os atributos de arquivos em um sistema de arquivos estendido Recebe um arquivo contendo uma tabela de comandos como entrada e produz um 182
arquivo-fonte C como sada, prprio para ser usado com a biblioteca de subsistema libss mke2fs mkfs.ext2 mkfs.ext3 mklost+found resize2fs tune2fs uuidgen Cria um sistema de arquivos ext2 ou ext3 no dispositivo dado Cria sistemas de arquivos ext2 Cria sistemas de arquivos ext3 Usado para criar um diretrio lost+found em um sistema de arquivos Linux ext2; reserva previamente blocos de disco para o diretrio, para torn-lo til ao e2fsck Pode ser usado ampliar ou reduzir um sistema de arquivos ext2 Configura parmetros ajustveis em sistemas de arquivos Linux ext2 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 Contem rotinas para a identificao de dispositivo e a extrao do smbolo A rotina comum de exposio de erro Usada por dumpe2fs, chattr e lsattr Contem rotinas para permitir que programas em nvel de usurio manipulem um sistema de arquivos ext2 Usado por debugfs Contem rotinas para gerar identificadores originais para os objetos que podem ser acessveis alm do sistema local
183
6.44. Grep-2.5.1a
O pacote Grep contm programas para procurar em arquivos. usado para exibir linhas de um arquivo que satisfazem determinado padro. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 4.5 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Make, Sed e Texinfo
Descrio rpida
egrep fgrep grep Exibe linhas de arquivos que satisfazem a um padro estendido de expresso regular Exibe linhas de arquivos que satisfazem a uma lista fixa de strings, separadas por novas linhas (newlines) Exibe linhas de arquivos que satisfazem a um padro bsico de expresso regular
184
6.45. GRUB-0.96
O pacote GRUB contm o GRand Unified Bootloader. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 10.0 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses e Sed
Descrio rpida
grub grub-install grub-md5-crypt O shell de comandos do The Grand Unified Bootloader Instala o GRUB no dispositivo informado Encripta uma senha no formato MD5
185
grub-terminfo mbchk
Gera um comando terminfo a partir de um nome terminfo; pode ser empregado se um terminal desconhecido estiver sendo usado Verifica o formato de um kernel multi-boot
186
6.46. Gzip-1.3.5
O pacote Gzip contm programas para comprimir e descomprimir arquivos. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.2 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make e Sed
Descrio rpida
compress gunzip Compacta arquivos Descompacta arquivos que so compactados com o gzip
187
Compacta executveis que so descompactados automaticamente ao serem executados (ao custo de perda de performance) Compacta arquivos usando a codificao Lempel-Ziv (LZ77) Descompacta arquivos compactados Descompacta e escreve para a sada padro uma lista de arquivos ou um arquivo sendo lido da entrada padro Executa o programa cmp em arquivos compactados com o gzip Executa o programa diff em arquivos compactados com o gzip Executa o programa egrep em arquivos compactados com o gzip Executa o programa fgrep em arquivos compactados com o gzip Fora uma extenso .gz em todos os arquivos gzip, assim o gzip no ir compact-los duas vezes. Isto pode ser til para arquivos com nomes truncados aps uma transferncia de arquivos Executa o programa grep em arquivos compactados com o gzip Executa o programa less em arquivos compactados com o gzip Executa o programa more em arquivos compactados com o gzip Recompacta arquivos no formato compress para o formato gzip.Z para .gz
188
6.47. Hotplug-2004_09_23
O pacote Hotplug contm os scripts que reagem aos eventos hotplug gerados pelo kernel. Tais eventos correspondem a cada mudana no estado do kernel visvel no sistema de arquivos sysfs, como por exemplo a adio e a remoo de algum hardware. Este pacote tambm detecta o hardware existente durante o boot e carrega os mdulos pertinentes no kernel em execuo. Tempo de compilao aproximado: 0.01 SBU Espao em disco necessrio: 460 KB Requisitos de instalao: Bash, Coreutils, Find, Gawk e Make
189
Descrio rpida
hotplug Este script chamado por padro pelo kernel Linux quando algo muda em seu estado interno (por exemplo, um dispositivo novo adicionado ou um dispositivo existente removido) Estes scripts so usados para plugging frio, isto , detectando e agindo em cima de hardware presente durante a inicializao do sistema. So chamados pelo script de inicializao hotplug includo no pacote LFS-Bootscripts. Os scripts *.rc tentam recuperar os eventos hotplug que foram perdidos durante o boot do sistema porque, por o exemplo, o sistema de arquivos root no foi montado pelo kernel Estes scripts so chamados pelo hotplug em resposta aos diferentes tipos de eventos hotplug gerados pelo kernel. Sua ao deve carregar os mdulos correspondentes do kernel e chamar qualquer script fornecido pelo usurio Este arquivo contm a lista dos mdulos que nunca devem ser carregados no kernel pelos scripts Hotplug Este arquivo contm as funes comuns usadas por outros scripts do pacote Hotplug Estes diretrios contm os alimentadores escritos pelo usurio para eventos hotplug Este arquivo contm as regras que determinam que alimentadores definidos pelo usurio chamar para cada dispositivo USB, baseado em seu vendor ID e outros atributos Este diretrio contm os programas (ou as ligaes simblicas para eles) que esto interessados em receber eventos do hotplug. Por o exemplo, o Udev pe sua ligao simblica aqui durante a instalao Este diretrio contm os firmwares para os dispositivos que necessitam ter seus firmwares carregados antes do uso Este arquivo contm todos os eventos em que o hotplug foi chamado desde o boot
/etc/hotplug/*.rc
/etc/hotplug/*.agent
/etc/hotplug.d
/lib/firmware /var/log/hotplug/events
190
6.48. Man-1.5p
O pacote Man contm programas para encontrar e visualizar as pginas man. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.9 MB Requisitos de instalao: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make e Sed
Note
Se voc estiver trabalhando em um terminal que no suporte atributos de texto tais como cor e bold (realce), voc pode desabilitar o Select Graphic Rendition (SGR) editando o arquivo man.conf para acrescentar a opo -c varivel NROFF. Se voc usar mltiplos terminais para um computador, pode ser melhor adicionar seletivamente a varivel de ambiente GROFF_NO_SGR nos terminais que no suportam SGR.
191
Se o conjunto de caracteres do locale usar caracteres de 8-bit, procure pela linha que comea com o NROFF em /etc/man.conf, e verifique se igual a esta: NROFF /usr/bin/nroff -Tlatin1 -mandoc
Note que latin1 utilizado mesmo no sendo o conjunto de caracteres do locale. A razo disto porque, conforme suas especificaes, o groff o groff no lida com definies estranhas ao padro International Organization for Standards (ISO) 8859-1 sem alguns cdigos de escape incomuns. Ao formatar pginas do man, o groff assume que elas esto codificadas como ISO 8859-1 e esta opo -Tlatin1 diz ao groff para usar este encoding para a sada. Como o groff, em razo disto, no faz nenhuma modificao no encoding de entrada, como resultado o texto formatado na sada estar com exatamente o mesmo encoding de entrada, e conseqentemente ser usvel normalmente como a entrada para um pager. Isto no resolve o problema para o no funcionamento do programa man2dvi com pginas localizadas do man nos locales no-ISO 8859-1. Tambm ele no trabalha com multibyte character sets. O primeiro problema no tem atualmente uma soluo. E o segundo problema no do nosso interesse porque a instalao do LFS no suporta multibyte character sets. Informaes adicionais sobre a compresso das pginas man e info podem ser encontradas no livro BLFS em http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/compressdoc.html.
Descrio rpida
apropos makewhatis man man2dvi man2html whatis Procura a base de dados whatis e apresenta as descries rpidas dos comandos do sistema que contenha uma determinada sequncia de caracteres Compila a base de dados whatis; l todas as pginas de manual contidas nas sees do MANPATH escreve uma linha na base de dados do whatis Formata e exibe as pginas de manual on-line Converte uma pgina de manual para o formato dvi Converte uma pgina de manual para HTML Faz uma busca na base de dados whatis e apresenta a descrio rpida dos comandos do sistemas que contenham a palavra fornecida inteira
192
6.49. Make-3.80
O pacote make contm um programa para compilar pacotes. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 7.1 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep e Sed
Descrio rpida
make Determina automaticamente que partes de um pacote necessitam ser (re)compiladas e emite ento os comandos apropriados
193
6.50. Module-Init-Tools-3.1
O pacote Module-Init-Tools contm programas para manipular mdulos nos kernel Linux de verso maior ou igual 2.5.47. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 4.9 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, Flex, GCC, Glibc, Grep, M4, Make e Sed
Descrio rpida
depmod Cria um arquivo de dependncias baseado nos smbolos que encontra no conjunto existente de mdulos; este arquivo de dependncias usado pelo modprobe para carregar automaticamente os mdulos exigidos Instala um mdulo carregvel no kernel em execuo Uma verso estaticamente compilada do insmod 194
insmod insmod.static
Exibe informao sobre todos os mdulos carregados Examina um arquivo-objeto associado a um mdulo do kernel e exibe todas as informaes disponveis Usa um arquivo de dependncia tipo Makefile, criado por depmod, para carregar automaticamente o(s) mdulo(s) relevante(s) de um conjunto de mdulos disponveis em estruturas de diretrio pr-definidas Remove mdulos carregveis do kernel em execuo
rmmod
195
6.51. Patch-2.5.4
O pacote Patch contm um programa para modificar ou criar arquivos aplicando um arquivo patch (remendo) especialmente criado pelo programa diff. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 1.5 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make e Sed
Descrio rpida
patch Modifica arquivos de acordo com um patch. Uma arquivo patch normalmente uma lista das diferenas criadas pelo programa diff. Aplicando estas diferenas aos arquivos originais, o patch cria as verses corrigidas.
196
6.52. Procps-3.2.5
O pacote Procps contm programas para monitorar processos. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 2.3 MB Requisitos de instalao: Bash, Binutils, Coreutils, GCC, Glibc, Make e Ncurses
Descrio rpida
free kill pgrep pkill pmap ps skill snice sysctl tload top uptime vmstat Exibe a quantidade total de memria fsica e swap usada e livre no sistema, bem como a memria compartilhada e os buffers usados pelo kernel Envia sinais para processos Procura processos baseado no nome e outros atributos Sinaliza processos baseado no nome e outros atributos Retrata o mapeamento da memria de um processo Exibe a situao dos processos em execuo Sinaliza processos que coincidem com um determinado critrio Modifica a prioridade de execuo para processos que coincidem com um critrio Modifica os parmetros do kernel em tempo de execuo Exibe um grfico do nvel de utilizao do sistema para o tty especificado ou, se nenhum for fornecido, para o tty do processo do tload Mostra uma lista dos processos mais intensos da CPU; isto fornece uma estimativa da atividade do processador central em tempo real Relata a quanto tempo o sistema est ligado, quantos usurios esto registrados Mostra estatsticas da memria virtual, fornecendo informaes sobre processos, memria, 197
paginao, input/output (IO), traps, e a atividade do processador central w watch Exibe informaes sobre os usurios e seus processos atuais na mquina Executa um comando repetidamente, exibindo sua sada
libproc Contm as funes usadas pela maioria dos programas deste pacote
198
6.53. Psmisc-21.6
O pacote Psmisc contm programas que fornecem informaes sobre processos em execuo. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 1.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses e Sed
Descrio rpida
fuser killall pstree pstree.x11 Mostra os IDs dos processos (PIDs) que usam arquivos de dados ou arquivos do sistema Derruba processos pelo nome; emite um sinal a todos os processos em execuo Exibe os processos em execuo como uma rvore O mesmos que o pstree exceto que espera por uma confirmao antes de sair 199
6.54. Shadow-4.0.9
O pacote da Shadow contm programas para manipulao de senhas em modo seguro. Tempo de compilao aproximado: 0.4 SBU Espao em disco necessrio: 13.7 MB Requisitos de instalao: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
200
A opo -D do programa useradd requer o diretrio /etc/default para trabalhar corretamente: mkdir /etc/default
Descrio rpida
chage chfn chpasswd Usado para alterar o nmero mximo de dias entre as mudanas obrigatrias de senha Usado para alterar o nome completo do usurio e outras informaes (nmero da sala do escritrio, nmero do telefone comercial e residencial). Usado para atualizar as senhas de um conjunto de usurios de uma vez. L um arquivo de nomes de usurio e senhas da entrada padro e usa esta informao para atualizar um grupo de usurios. Usado para alterar o shell de login do usurio Verifica e refora a poltica de expirao de senha 201
chsh expiry
faillog gpasswd groupadd groupdel groupmod groups grpck grpconv grpunconv lastlog login logoutd mkpasswd newgrp newusers passwd pwck pwconv pwunconv sg su useradd userdel usermod vigr vipw
Usado para examinar o registro de falhas no login (/var/log/faillog), definir um nmero mximo de falhas antes que um usurio esteja bloqueado, ou zerar a contagem de falhas. Usado para adicionar e excluir membros e administradores aos grupos Cria um grupo com os valores especificados na linha de comando e os valores-padro do sistema Exclui o grupo com o nome fornecido Usado para alterar o nome ou o GID do grupo especificado na linha de comandoda Exibe os grupos dos quais um usurio faz parte Verifica a integridade das informaes de autenticao do sistema /etc/group e /etc/gshadow Converte para shadow os arquivos de grupos normais Atualiza o /etc/group a aprtir do /etc/gshadow e exclui o ltimo Reporta o login mais recente de todos os usurios ou de um determinado usurio usado para estabelecer uma nova sesso com o sistema Fora o tempo de login e restries de porta especificados em /etc/porttime Gera senhas aleatrias usado para modificar o GID atual durante uma sesso de login L um arquivo de nomes de usurio e senhas em texto puro e usa esta informao para atualizar um grupo de usurios existentes ou para criar novos usurios Modifica senhas de contas de usurio e de grupos Verifica a integridade dos arquivos de senha /etc/passwd e /etc/shadow Converte o arquivo de senhas normal para o arquivo shadow Atualiza o /etc/passwd a partir do /etc/shadow e exclui o ltimo Modifica o GID do usurio para o do grupo especificado, ou executa um comando dado como membro do grupo informado na linha de comando Executa um shell com outros IDs de usurio e grupo Cria um novo usurio ou atualiza informaes-padro para novos usurios Modifica os arquivos de conta do sistema, removendo todas as entradas referentes a um nome de login especificado Usado para modificar o nome de login do usurio informado na linha de comando, seu nmero de identificao de usurio (UID), o shell padro, o grupo inicial, o diretrio home, etc. Edita os arquivos /etc/group ou /etc/gshadow Edita os arquivos /etc/passwd ou /etc/shadow 202
libshadow Contm as funes usadas pela maioria dos programas deste pacote
203
6.55. Sysklogd-1.4.1
O pacote Sysklogd contm programas para gravao das mensagens de log do sistema, como aquelas reportadas pelo kernel quando coisas incomuns acontecem. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 704 KB Requisitos de instalao: Binutils, Coreutils, GCC, Glibc e Make
204
Descrio rpida
klogd syslogd Um servio de sistema (daemon) que intercepta e registra mensagens do kernel Linux Prov um tipo de registro de log que muitos programas modernos usam. Toda mensagem registrada contm ao menos um horrio e um nome de computador e, normalmente, o nome do programa tambm. Mas isto depende de quo confivel o programa sendo logado
205
6.56. Sysvinit-2.86
O pacote Sysvinit contm programas para controlar a inicializao, a execuo e a finalizao do sistema. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 1012 KB Requisitos de instalao: Binutils, Coreutils, GCC, Glibc e Make
206
207
Descrio rpida
halt Normalmente invoca o comando shutdown com a opo -h, exceto quando j no nvel de execuo (run-level) 0, e ento informa ao kernel para suspender o sistema; grava no /var/log/wtmp que o sistema est sendo desligado O primeiro processo a ser iniciado depois que o kernel inicializou o hardware o qual toma controle do processo de inicializao e inicia todos os processos aos quais ele est instrudo a Envia um sinal a todos os processos, exceto aos processos na sua prpria seo a fim de no matar o shell que o iniciou Procura atravs do arquivo /var/log/wtmp (ou do arquivo designado pela opo -f) e exibe uma lista de todos os usurios logados (ou no) desde quando aquele arquivo foi criado Faz o mesmo que last, exceto que por padro ele mostra um log do arquivo /var/log/btmp , que contm todas as tentativas falhas de login Controla o acesso ao terminal do usurio por outras pessoas. Ele tipicamente usado para habilitar ou desabilitar a escrita por outros usurios em seu terminal Verifica se o diretrio um ponto de montagem (mountpoint) Exibe os identificadores de processo (PIDs) dos programas citados Ele desativa e desliga o computador (quando usando uma BIOS com APM e o APM est habilitado no kernel) (veja halt) Ele reinicia o computador (veja halt) L o arquivo utmp do sistema (geralmente /var/run/utmp), localiza o registro do nvel de execuo e exibe o nvel de execuo anterior e atual do sistema na sada padro, separados por um espao. Desativa o sistema de um modo seguro. Todos os usurios logados so notificados de que o sistema ser desativado e novos logins so bloqueados Permite um login como root; invocado pelo init quando o sistema entra em modo monousurio Envia os sinais apropriados ao init, dizendo a ele qual nvel de execuo entrar Exibe o contedo de um arquivo de login na sada padro em um formato amigvel Envia uma mensagem aos usurios logados que possuem sua permisso mesg configurada
init killall5 last lastb mesg mountpoint pidof poweroff reboot runlevel
208
6.57. Tar-1.15.1
O pacote Tar contm um programa de empacotamento de arquivos (archiving) Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 12.7 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make e Sed
Descro rpida
rmt tar Usado por programas de backup remoto para manipular um drive de fita magntica atravs de uma conexo interprocessada Cria, extrai arquivos de, e lista o contedo dos pacotes de arquivos, conhecidos tambm como tarballs
209
6.58. Udev-056
O pacote Udev contm programas para a criao dinmica de ns de dispositivo (device nodes). Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 6.7 MB Requisitos de instalao: Coreutils e Make
Descrio rpida
udev udevd udevsend udevstart Cria ns de dispositivos no diretrio /dev u renomeia interfaces de rede (no no LFS) em resposta a eventos hotplug Um servio do sistema (daemon) que reordena eventos hotplug antes de submeter ao udev, evitando assim sadas mltiplas Envia eventos hotplug ao udevd Cria ns de dispositivos no diretrio /dev que correspondam aos drivers compilados diretamente no kernel; executa esta tarefa simulando eventos hotplug que presumivelmente foram emitidos pelo kernel antes da execuo deste programa (por exemplo, porque o sistema de arquivos root no havia sido montado ainda), submetendo ento estes eventos hotplug 210
simulados ao udev udevinfo Permite que os usurios consultem na base de dados do udev as informaes sobre qualquer dispositivo atualmente presente no sistema; fornece tambm uma maneira de consultar todos os dispositivo na rvore dos sysfs para ajudar a criar regras Simula uma execuo do udev para um dispositivo fornecido na linha de comando, e exibe o nome do n de dispositivo que o udev real criaria ou o novo nome da interface de rede (no no LFS)
udevtest
/etc/udev Este diretrio contm os arquivos de configurao do udev, as permisses dos dispositivos, e regras para dar nomes aos dispositivos
211
6.59. Util-linux-2.12q
O pacote Util-linux contm programas diversos. Os mais importantes so usados para montar, desmontar, formatar, particionar e gerenciar discos rgidos, abrir portas tty e capturar mensagens do kernel. Tempo de compilao aproximado: 0.2 SBU Espao em disco necessrio: 11.6 MB Requisitos de instalao: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed e Zlib
Descrio rpida
agetty arch blockdev cal cfdisk chkdupexe col colcrt colrm column ctrlaltdel cytune ddate dmesg elvtune fdformat fdisk fsck.cramfs fsck.minix getopt hexdump Abre uma porta tty, pede um nome de login e invoca o comando login Exibe a arquitetura da mquina Permite chamar dispositivos de controle de I/O de bloco (block device ioctls) na linha de comando Exibe um calendrio simples Manipulador da tabela de partio baseado no libncurses Procura executveis duplicados Filtra LFs (line feeds) reversos da entrada Filtra a sada do nroff para visualizao em CRT Remove colunas de um arquivo Formata um arquivo em mltiplas colunas Configura a funo da combinao de teclas CTRL+ALT+DEL (desligamento soft ou hard) Pesquisa e modifica a interrupo para o driver Cyclades Converte datas Gregorianas para Discordianas Usado para examinar ou controlar o buffer de mensagens do kernel (mensagens de inicializao). Permite a voc ajustar o elevador I/O com base na fila de dispositivos de blocos. Formata um disquete em baixo nvel Manipulador da tabela de partio do disco Executa uma verificao de consistncia no sistema de arquivos Cramfs no dispositivo especificado na linha de comando Executa uma verificao de consistncia no sistema de arquivos minix no dispositivo especificado na linha de comando Analisa opes de comandos da mesma forma que a funo getopt do C. Exibe os arquivos especificados, ou a entrada padro, em um dado formato (ascii, decimal, hexadecimal, octal). 213
hwclock ipcrm ipcs isosize line logger look losetup mcookie mkfs mkfs.bfs mkfs.cramfs mkfs.minix mkswap more mount namei pg pivot_root ramsize raw rdev readprofile rename renice rev rootflags script setfdprm setsid
Exibe e configura o relgio de hardware (tambm chamado de RTC ou relgio da BIOS). Remove um recurso especificado de uma comunicao inter-Process (IPC). Fornece a informao de status do IPC Exibe o tamanho de um sistema de arquivos iso9660 Copia uma linha (at a nova-linha) da entrada padro e a escreve na sada padro Cria entradas no log do sistema Exibe linhas que comeam com uma dada string Configura e controla dispositivos loop Gera cookies mgicos (nmeros 128-bit hexadecimais aleatrios) para o xauth Cria um sistema de arquivos Linux em um dispositivo, geralmente uma partio do disco Cria um sistema de arquivos SCO bfs em um dispositivo, geralmente uma partio do di Cria um sistema de arquivos cramfs em um dispositivo, geralmente uma partio do disco Cria um sistema de arquivos MINIX em um dispositivo, geralmente uma partio do disco Configura a memria swap em uma partio ou arquivo Um filtro para paginao de textos em tela cheia Monta, de vrias fontes possveis, sistemas de arquivos ou diretrios em um diretrio (ponto de montagem) Percorre um caminho de arquivo at um ponto terminal ser encontrado Mostra um arquivo texto uma tela por vez Modifica o sistema de arquivos raiz do processo atual Exibe e configura o tamanho do disco RAM Usado para ligar um dispositivo de caractere cru a um dispositivo de bloco Exibe e configura o dispositivo raiz de uma imagem, dispositivo swap, disco RAM, ou modo de vdeo L informaes de perfil do kernel Renomeia arquivos Altera a prioridade de processos em execuo Inverte as linhas de um arquivo Exibe e configura informaes extras usadas ao montar o diretrio raiz Cria uma impresso da sesso de terminal Configura parmetros do disquete fornecidos pelo usurio Executa programas em uma nova sesso 214
setterm sfdisk swapdev swapoff swapon tunelp ul umount vidmode whereis write
Configura os atributos do terminal Manipulador da tabela de partio do disco Ajusta dispositivos e arquivos para paginao e armazenamento temporrio Desabilita dispositivos e arquivos para paginao e armazenamento temporrio Habilita dispositivos e arquivos para paginao e armazenamento temporrio Configura vrios parmetros para o dispositivo LP Um filtro que l um arquivo e traduz ocorrncias de underscores para a seqncia que indica sublinhado no terminal em uso Desmonta um sistema de arquivos ou diretrio Exibe e configura o modo de vdeo Localiza o binrio, arquivo-fonte e pgina de manual de um comando Envia uma mensagem para outro usurio, se aquele usurio tem escrita habilitada
215
Os tamanhos podem variar dependendo do compilador e da biblioteca C utilizados, mas ao comparar programas com e sem smbolos de debbug, a diferena ser geralmente um fator entre dois e cinco. Como a maioria de usurios nunca usaro um debugger, muito espao em disco pode ser recuperado removendo estes smbolos. A seo seguinte mostra como remover todos os smbolos de debug dos programas e das bibliotecas. Informaes adicionais de otimizao do sistema podem ser encontradas em http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt.
216
217
Note
Remover o diretrio /tools tambm remover as cpias provisrias do Tcl, Expect, e DejaGNU que foram usadas durante a execuo dos testes do conjunto de ferramentas (toolchain). Se voc precisar destes programas mais tarde, eles tero que ser recompilados e reinstalados. O livro BLFS tem instrues sobre isto (veja em http://www.linuxfromscratch.org/blfs/).
218
219
7.2. LFS-Bootscripts-3.2.1
O pacote LFS-Bootscripts contm um conjunto de scripts de inicializao/finalizao do sistema LFS durante o bootup/shutdown. Tempo de compilao aproximado: 0.1 SBU Espao em disco necessrio: 0.3 MB Requisitos de instalao: Bash e Coreutils
Descrio rpida
checkfs cleanfs Verifica a integridade dos sistemas de arquivos antes que sejam montados (exceto os sistemas de arquivos baseados em journal e rede). Remove os arquivos que no devem ser preservados entre as reinicializaes, tais como aqueles em /var/run/ e /var/lock/; recria o /var/run/utmp e remove os arquivos /etc/nologin, /fastboot e /forcefsck, quando presentes Carrega a tabela correta do keymap para o layout de teclado desejado; ajusta tambm a fonte de tela Contm as funes comuns, como as de verificao de erro e status, que so usadas por diversos scripts Desliga o sistema Carrega mdulos para dispositivos do sistema Auxiliar ao script de rede para a finalizao dos dispositivos de rede Auxiliar ao script de rede para a inicializao dos dispositivos de rede Define os dispositivos hostname e local loopback do sistema Monta todos os sistemas de arquivos, exceto os que esto definidos como noauto e os baseados em rede Monta os sistemas de arquivo virtuais do kernel, como o proc Configura as interfaces de rede, como a placa de rede, e define o gateway padro (onde aplicvel). 220
console functions halt hotplug ifdown ifup localnet mountfs mountkernfs network
rc
O script mestre de controle dos nveis de execuo (run-level); responsvel pela execuo de todos os demais bootscripts, um a um, em uma seqncia determinada pelo nome das ligaes simblicas que esto sendo processadas Reinicializa o sistema Certifica-se que cada processo est terminado antes que o sistema reinicialize ou desligue Ajusta o relgio do kernel para a hora local quando o relgio do hardware no est ajustado com a hora UTC Fornece a funcionalidade necessria para atribuir um endereo IP (Internet Protocol) esttico para uma interface de rede Habilita e desabilita os arquivos e a partio de troca (swap). Inicia e finaliza os log daemons do sistema e do kernel Um modelo para criar scripts de inicializao padronizados para outros servios do sistema Prepara o diretrio /dev e inicializa o Udev
221
222
stop O servio interrompido. restart O servio interrompido e novamente iniciado. reload A configurao do servio atualizada. utilizado aps a modificao do arquivo de configurao de um servio, quando este no precisa ser reiniciado. status Diz se o servio est rodando e com quais PIDs. Sinta-se vontade para modificar o modo como o processo de inicializao trabalha (afinal, o seu prprio sistema LFS). Os arquivos oferecidos aqui so apenas um exemplo de como isto pode ser feito.
223
7.4.1. Histrico
Em fevereiro 2000, um novo sistema de arquivos chamado devfs foi incorporado no kernel 2.3.46 e tornado disponvel na sries 2.4 de kernels estveis. Embora estivesse presente no prprio cdigo-fonte do kernel, este mtodo de criar dispositivos dinamicamente nunca recebeu o suporte decisivo dos desenvolvedores do ncleo do kernel. O problema principal com a abordagem adotada pelo devfs era o modo como manipulava a deteco, criao e nomeao de dispositivos. Esta ltima etapa, quando o n de dispositivo recebe um nome, era talvez a mais crtica. Como os nomes dos dispositivos so passveis de configurao, seria aceitvel ento que a poltica para dar nomes aos dispositivo fosse do administrador do sistema e no imposta por algum desenvolvedor qualquer. O sistema de arquivos devfs sofre tambm com algumas condies que so inerentes ao seu projeto e no podem ser eliminadas sem uma reviso substancial do kernel. Ficou marcado tambm pela desatualizao devido falta de manuteno. Com o desenvolvimento das verses instveis 2.5 do kernel, liberado mais tarde com a srie estvel 2.6 do kernel, surge um novo sistema de arquivos virtual chamado sysfs. O trabalho do sysfs fornecer uma viso da configurao do hardrware do sistema para os processos, ao nvel do usurio. Com esta nova representao (userspace-visible representation), a possibilidade de ser vista uma modificao na devfs ao nvel do usurio tornou-se muito mais realista.
Linux From Scratch - Verso 6.1 usada pelo udevstart para criar o /dev/vcs com o nmero maior 7 e menor 0. Os nomes e as permisses dos ns criados sob o diretrio /dev so configurados de acordo com as diretrizes especificadas nos arquivos dentro do diretrio /etc/udev/rules.d/. Estes so numerados de forma similar pelo pacote LFS-Bootscripts. Se o udev no puder encontrar uma diretriz para o dispositivo que est criando, ele optar pela permisso 660 e pela propriedade do root:root. Assim que o estgio acima estiver completo, todos os dispositivos presentes e que tm compilados seu drivers estaro disponveis para uso. Isto nos leva aos dispositivos que tm drivers modulares. Mais cedo, ns mencionamos o conceito de um gerenciador de eventos do hotplug. Quando a conexo de um novo dispositivo detectada pelo kernel, ele gera um evento hotplug e busca pelo arquivo /proc/sys/kernel/hotplug para determinar qual o programa ao nvel do usurio manipula a conexo do dispositivo. O udev est registrado pelo script de inicializao udevsend como sendo este gerenciador. Quando estes eventos do hotplug so gerados, o kernel dir ao udev para verificar o sistema de arquivos /sys para ver se h informaes sobre este novo dispositivo e para criar a entrada /dev para ele. Isto nos leva a um problema que existe com o udev e que tambm havia com o devfs, antes dele. conhecido como o problema do ovo e da galinha. A maioria de distribuies Linux manipulam o carregamento de mdulos atravs das entradas do arquivo /etc/modules.conf. O acesso a um n do dispositivo causa o carregamento do mdulo do kernel apropriado. Com o udev, este mtodo no funciona porque o n do dispositivo no existe at que o mdulo seja carregado. Para resolver isto, o script de inicializao S05modules foi adicionado ao pacote LFS-Bootscripts, junto com o arquivo /etc/sysconfig/modules. Acrescentando nomes de mdulos ao arquivo modules, estes mdulos sero carregado quando o computador inicializar. Isto permite ao udev detectar os dispositivos e criar os ns apropriados. Note que em mquinas mais lentas ou para os drivers que criam muitos ns de dispositivo, o processo de configurao dos dispositivos pode fazer exames que demoram alguns segundos para terminar. Isto significa que alguns ns de dispositivos podem no estar imediatamente acessveis.
Architecture (ALSA) do mdulo de compatibilidade Open Sound System (OSS). Estes tipos de dispositivos podem ser manipulados de duas maneiras: Adicionando o nome do mdulo ao arquivo /etc/sysconfig/modules
226
Usando uma linha install no arquivo /etc/modprobe.conf. Isto diz ao comando modprobe para quando carregar este mdulo, carregar tambm este outro mdulo, ao mesmo tempo. Por exemplo: install snd-pcm modprobe -i snd-pcm ; modprobe \ snd-pcm-oss ; true Isto far com que o sistema carregue os dois mdulos snd-pcm e snd-pcm-oss quando for requerido o carregamento do driver snd-pcm.
227
228
Note
A linha FONT acima est definida para o uso do conjunto de caracteres do ISO 8859-15. Para usar o ISO 8859-1 e, conseqentemente, o sinal da libra em vez de euro, a linha correta para FONT seria: FONT="lat1-16" Se a varivel KEYMAP ou FONT no estiver definida, o script de inicializao console no executar os programas correspondentes. Em alguns mapas de teclado, as teclas de retrocesso (Backspace) e de supresso (Delete) emitem sinais diferentes do keymap padro configurado no kernel. Isto confunde algumas aplicaes. Por exemplo, o Emacs exibe o arquivo de ajuda (em vez de apagar o caracter antes do cursor) quando o retrocesso pressionado. Verificar se caso do keymap em uso no seu sistema (isto funciona somente para os keymaps i386): zgrep '\W14\W' [/path/to/your/keymap]
229
Se o keycode 14 for Backspace em vez de Delete, crie o seguinte snippet do keymap para solucionar isto: mkdir -p /etc/kbd && cat > /etc/kbd/bs-sends-del <<"EOF" keycode 14 = Delete Delete Delete Delete alt keycode 14 = Meta_Delete altgr alt keycode 14 = Meta_Delete keycode 111 = Remove altgr control keycode 111 = Boot control alt keycode 111 = Boot altgr control alt keycode 111 = Boot EOF Diga ao script console para carregar este snippet aps o keymap principal: cat >>/etc/sysconfig/console <<"EOF" KEYMAP_CORRECTIONS="/etc/kbd/bs-sends-del" EOF Para compilar o keymap diretamente no kernel em vez de ajust-la todas as vezes pelo script de inicializao console, siga as instrues dadas na Section 8.3, Linux-2.6.11.12.. Fazer isto assegura que o teclado funcionar sempre como esperado, mesmo quando o sistema for inicializado no modo manuteno (passando a opo init=/bin/sh para o kernel), porque o script de inicializao console no executado nesta situao. Por outro lado, o kernel no definir a fonte de tela automaticamente. Isto no deve ser um grande problema porque os caracteres ASCII sero manipulados corretamente e improvvel que um usurio necessite de caracteres no-ASCII quando no modo de manuteno. Como neste caso o kernel definir o keymap, possvel omitir a varivel KEYMAP do arquivo de configurao /etc/sysconfig/console. Pode tambm ser deixado l, sem nenhuma conseqncia. Mant-lo poderia ser benfico por exemplo quando se executam diversas verses ou compilaes do kernel em uma mesmo equipamento, e fique difcil ter certeza de que o keymap esteja compilado em cada delas.
230
231
"\eOH": beginning-of-line "\eOF": end-of-line # for Konsole "\e[H": beginning-of-line "\e[F": end-of-line # End /etc/inputrc EOF
233
Este script ajusta tambm a varivel de ambiente INPUTRC que faz o bash e o Readline utilizarem o arquivo /etc/inputrc criado na seo anterior. Substitua o [ll] nos comandos abaixo pelo cdigo de duas letras correspondente lngua desejada (por exemplo, en para o ingls) e [CC] com o cdigo de duas letras correspondente ao seu pas (por exemplo, GB para Gr-Bretanha). Substitua [charmap] pelo charmap cannico do locale escolhido. A lista de todos os locales suportados pela Glibc pode ser obtida executando o seguinte comando: locale -a Os locales podem ter muitos sinnimos, por exemplo ISO-8859-1 tambm referido como iso8859-1 e iso88591. Algumas aplicaes no podem manipular os vrios sinnimos corretamente, assim o mais seguro escolher o nome cannico para um locale particular. Para determinar o nome cannico, execute o seguinte comando, onde [nome do locale] a sada dada pelo locale -a para seu locale preferido (en_GB.iso88591 em nosso exemplo). LC_ALL=[locale name] locale charmap
234
Para o locale en_GB.iso88591, o comando acima mostrar: ISO-8859-1 Isto finalmente resulta em um locale do tipo en_GB.ISO-8859-1. Uma vez que os ajustes apropriados do locale foram determinados, crie o arquivo /etc/profile: cat > /etc/profile << "EOF" # Begin /etc/profile export LANG=[ll]_[CC].[charmap] export INPUTRC=/etc/inputrc # End /etc/profile EOF
Note
O C (padro) e o en_US (recomendado para usurios dos EUA) so locales diferentes. Definir o mapa do teclado, a fonte de tela, e as variveis de ambiente relacionadas ao locale so os nicos procedimentos de internacionalizao necessrios para suportar os locales que usam caracteres de byte simples (single-byte encodings) e o sentido esquerda-para-direita de escrita. Alguns casos mais complexos (locales baseados no Utf-8 inclusive) exigem etapas adicionais e patches adicionais porque muitas aplicaes tendem a no trabalhar corretamente sob tais circunstncias. Estas etapas e remendos no so includos no livro LFS e tais locales ainda no so suportados pelo LFS.
235
236
Um endereo IP vlido pode ser 192.168.1.1. Um FQDN vlido para este IP pode ser www.linuxfromscratch.org. (no recomendado o uso deste endereo porque este um endereo registrado e vlido de domnio e pode causar problemas com o domain name server). Mesmo que voc no v utilizar uma placa de rede, voc ainda precisa fornecer um FQDN. Isto necessrio para certos programas funcionarem corretamente. Crie o arquivo /etc/hosts executando: cat > /etc/hosts << "EOF" # Begin /etc/hosts (network card version) 127.0.0.1 localhost [192.168.1.1] [<HOSTNAME>.example.org] [HOSTNAME] # End /etc/hosts (network card version) EOF O [192.168.1.1] e [<HOSTNAME>.example.org] precisam ser alterados de acordo com seu gosto (ou requisitos, se for um endereo IP determinado por um administrador de sistemas/redes e se esta mquina for conectada uma rede existente). Se uma placa de rede no for configurada, crie o arquivo /etc/hosts executando: cat > /etc/hosts << "EOF" # Begin /etc/hosts (no network card version) 127.0.0.1 [<HOSTNAME>.example.org] [HOSTNAME] localhost # End /etc/hosts (no network card version) EOF
237
238
239
240
/dev/[xxx] / /dev/[yyy] swap proc /proc sysfs /sys devpts /dev/pts shm /dev/shm # End /etc/fstab EOF
Substitua [xxx], [yyy] e [fff] pelos valores apropriados para o seu sistema, por exemplo hda2, hda5 e ext2. Para detalhes sobre o contedo dos seis campos neste arquivo, veja man 5 fstab. Ao usar um sistema de arquivo com journalling, o 1 1 no final da linha respectiva deve ser substitudo por 0 0 porque esta partio no necessita ser verificada. O ponto da montagem /dev/shm para tmpfs includo para habilitar o compartilhamento de memria POSIX. O kernel deve ter o necessrio suporte configurado nele para que esta funcione (h mais informaes sobre isso na seo seguinte). Note por favor que muito poucos softwares atualmente usam a memria compartilhada POSIX. Por isso, considere opcional ponto de montagem /dev/shm. Para mais informao, veja Documentation/filesystems/tmpfs.txt na rvore de diretrio dos fontes do kernel. H outras linhas que podem ser adicionadas ao arquivo /etc/fstab. Um exemplo uma linha para dispositivos USB: usbfs /proc/bus/usb usbfs devgid=14,devmode=0660 0 0
Esta opo somente ter utilidade se o Support for Host-side USB e o USB device filesystem estiver configurarado no kernel. Se Support for Host-side USB estiver compilado como um mdulo, ento o usbcore deve estar listado no arquivo /etc/sysconfig/modules.
241
8.3. Linux-2.6.11.12
O pacote Linux contm o kernel Linux. Tempo de compilao aproximado: 4.20 SBU Espao em disco necessrio: 181 MB Requisitos de instalao: Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl e Sed
Configure o kernel atravs de uma interface orientada por menus. O livro do BLFS tem alguma informao a respeito das exigncias particulares quando configurao do kernel para alguns pacotes que no integram o LFS. Leia em http://www.linuxfromscratch.org/blfs/view/svn/ longindex.html#kernel-config-index: make menuconfig Como alternativa, executar o make oldconfig pode ser mais apropriado em algumas situaes. Veja o arquivo README para mais informao. Se preferir, voc pode pular a configurao do kernel, copiando o arquivo, .config, do seu sistema anfitrio (assumindo que ele est disponvel) para o diretrio linux-2.6.11.12. Entretanto, ns no recomendamos esta opo. muito melhor explorar todos os menus de configurao e criar uma configurao do kernel totalmente do zero.
Note
O NPTL exige que o kernel seja compilado com o GCC-3.x, no nosso caso estamos usando a verso 3.4.3. No se recomenda compilar o kernel com o GCC-2.95.x, porque isto causa falhas no suite do teste do Glibc. Normalmente, isto no seria mencionado porque o LFS no configurou um 242
GCC-2.95.x. Infelizmente, a documentao do kernel est defasada e ainda se refere ao Gcc-2.95.3 como o compilador recomendado. Compile a imagem e os mdulos do kernel: make Para usar mdulos do kernel, o arquivo /etc/modprobe.conf pode ser necessrio. Informaes pertinentes aos mdulos e configurao do kernel podem ser encontradas na documentao do kernel, no diretrio linux-2.6.11.12/Documentation. A leitura do modprobe.conf(5)tambm pode ser interessante. Tenha muito cuidado ao ler algum outra documentao sobre os mdulos do kernel porque geralmente se refere somente ao kernel da srie 2.4.x. At onde ns sabemos, caractersticas da configurao do kernel especficos para o Hotplug e o Udev no esto documentadas. O problema que o Udev criar um n de dispositivo somente se Hotplug ou um script criado pelo usurio inserir o mdulo correspondente no kernel, e nem todos os mdulos so detectveis pelo Hotplug. Note que uma instruo como esta mostrada abaixo no arquivo /etc/modprobe.conf no produz nenhum efeito com o Udev: alias char-major-XXX some-module Por causa das complicaes com o uso do Hotplug, Udev, e mdulos, ns recomendamos fortemente comear com uma configurao completamente no-modular do kernel, especialmente se esta a primeira vez que voc est usando o Udev. Instale os mdulos, se a configurao do kernel usar mdulos: make modules_install Depois que a compilao do kernel est completa, algumas etapas adicionais so necessrias para terminar a instalao. Alguns arquivos precisam ser copiados para o diretrio /boot. O caminho para a imagem do kernel pode variar dependendo da plataforma que est sendo usada. O seguinte comando supe uma arquitetura x86: cp arch/i386/boot/bzImage /boot/lfskernel-2.6.11.12 O System.map um arquivo de smbolos. Ele mapeia todas as funes na API, bem como os endereos das estruturas de dados para o kernel em execuo. Execute o seguinte comando para instalar o arquivo .map: cp System.map /boot/System.map-2.6.11.12 O arquivo de configurao do kernel .config produzido pelo make menuconfig acima contm todas as selees feitas na configurao do kernel que foi compilado. uma idia boa manter este arquivo para referncias futuras: cp .config /boot/config-2.6.11.12
243
importante notar que os arquivos no diretrio das fontes do kernel no so de propriedade do root. Sempre que um pacote descompactado como usurio root (como ns fizemos com o chroot), os arquivos tm os IDs de usurio e de grupo de quem quer que fez o empacotamento no computador de origem. Isto geralmente no um problema para nenhum outro pacote que seja instalado porque a rvore dos fontes removida aps a instalao. Entretanto, comum reter a rvore dos fontes do Linux por muito tempo. Por causa disto, existe a possibilidade de que o ID de usurio do empacotador seja atribudo a algum na sua mquina. Essa pessoa teria ento o acesso de escrita ao fontes do kernel. Se a rvore dos fontes do kernel for mantida, execute o chown -R 0:0 no diretrio linux-2.6.11.12 para fazer com que todos os arquivos sejam de propriedade do root root.
Warning
Algumas documentaes do kernel recomendam a criao de um symlink em /usr/src/linux apontando para o diretrio dos fontes do kernel. Isto vlido especificamente para os kernels das sries anteriores 2.6 e no deve ser criado em um sistema LFS, pois pode causar problemas com pacotes que voc pode vir a instalar quando o sistema bsico LFS estiver completo.. Tambm os cabealhos do kernel que esto no diretrio include do sistema devem sempre ser os mesmos com os quais o Glibc foi compilado, isto , aqueles do pacote Linux-Libc-Headers e, conseqentemente, nunca devem ser substitudos pelos cabealhos do kernel.
Descrio rpida
config-2.6.11.12 lfskernel-2.6.11.12 Contem todas as selees feitas na configurao do kernel O ncleo do sistema Linux. Quando um computador ligado e inicia um sistema Linux, a primeira parte carregada o kernel. O kernel detecta e inicializa os componentes de hardware do sistema (portas seriais e paralelas, placas de som e de rede, controladores IDE e SCSI etc.), em seguida faz estes componentes disponveis como uma rvore de arquivos para os softwares, e faz de uma nica CPU uma mquina com multitasking capaz de executar vrias requisies dos programas ao mesmo tempo Uma lista dos endereos e dos smbolos; traa os pontos de entrada e os endereos de todas as funes e estruturas de dados do kernel
System.map-2.6.11.12
244
Warning
O prximo comando sobrescreve o boot loader atual. No execute o comando se isto no for desejado, por exemplo, se usar um gerenciador de boot de terceiros para gerenciar a Master Boot Record (MBR). Neste caso, faz mais sentido instalar o GRUB no boot sector da partio LFS. Neste caso, o comando seguinte ficaria da seguinte forma setup (hd0,3). Diga o GRUB para instalar-se no MBR do hda: setup (hd0) Se todos correr bem, o GRUB foi informado para encontrar seu arquivos no diretrio /boot/grub. Isto tudo a se fazer aqui. Saia do shell grub: 245
quit Crie um arquivo de menu definindo as opes de inicializao do GRUB: cat > /boot/grub/menu.lst << "EOF" # Begin /boot/grub/menu.lst # By default boot the first menu entry. default 0 # Allow 30 seconds before booting the default. timeout 30 # Use prettier colors. color green/black light-green/black # The first entry is for LFS. title LFS 6.1 root (hd0,3) kernel /boot/lfskernel-2.6.11.12 root=/dev/hda4 EOF Acrescente uma entrada para a distribuio anfitri se quiser. Pode se parecer com isto: cat >> /boot/grub/menu.lst << "EOF" title Red Hat root (hd0,2) kernel /boot/kernel-2.6.5 root=/dev/hda3 initrd /boot/initrd-2.6.5 EOF Se mantiver dual-booting com o Windows, a seguinte entrada dar suporte a ele: cat >> /boot/grub/menu.lst << "EOF" title Windows rootnoverify (hd0,0) chainloader +1 EOF Se o info grub no contiver informaes suficientes, informao adicional a respeito do GRUB pode ser encontrada em: http://www.gnu.org/software/grub/. O FHS prev que o arquivo menu.lst do GRUB deve ter um symlink para /etc/grub/menu.lst.Para satisfazer esta exigncia, use o seguinte comando: mkdir /etc/grub && ln -s /boot/grub/menu.lst /etc/grub
246
Chapter 9. Fim
9.1. Fim
Muito bem! O novo sistema LFS est instalado! Ns desejamos muito sucesso com seu novo sistema Linux personalizado. Pode ser uma boa idia criar o arquivo /etc/lfs-release. Tendo este arquivo, muito fcil para voc (e para ns se voc necessitar pedir ajuda em algum momento) saber que verso do LFS est instalada no seu sistema. Crie este arquivo com o comando: echo 6.1 > /etc/lfs-release
247
248
Desmonte o sistema de arquivos do LFS: umount $LFS Se parties mltiplas foram criadas, desmonte as outras parties antes de desmontar a principal, assim: umount $LFS/usr umount $LFS/home umount $LFS Agora, reinicialize o sistema com: shutdown -r now Supondo que o GRUB foi ajustado como esboado acima, o menu estar ajustado para LFS 6.1 automaticamente. Quando o reboot estiver completo, o sistema LFS est pronto para uso e mais programas podem ser adicionados para servir s suas necessidades.
249
9.4. E agora?
Obrigado por ler este livro do LFS. Ns esperamos que voc ache este livro til e aprenda mais sobre o processo de criao do sistema. Agora que o sistema LFS est instalado, voc pode querer saber O que mais? Para responder a esta pergunta, ns elaboramos uma lista de recursos para voc. Manuteno Os erros constatados e as notas de segurana so relatadas regularmente para todos os softwares instalados. Como o sistema LFS inteiramente compilado da fonte, bom voc se manter informado de tais relatrios. H diversos meios on line que enviam estes relatrios, e alguns so os seguintes: Freshmeat.net (http://freshmeat.net/) O Freshmeat pode notific-lo (atravs do email) de verses novas dos pacotes instalados em seu sistema. CERT (Computer Emergency Response Team) O CERT tem uma lista de discusso que publica os alertas da segurana a respeito dos vrios sistemas operacionais e aplicaes. As informaes de subscrio esto disponveis em http://www.us-cert.gov/cas/signup.html. Bugtraq O Bugtraq uma lista de discusso sobre segurana de computador. Publica descobertas recentes sobre problemas de segurana, e algumas vezes reparos potenciais para eles. A informao de subscrio est disponvel em http://www.securityfocus.com/archive. Beyond Linux From Scratch O livro Beyond Linux From Scratch O livro do Beyond Linux From Scratch traz os procedimentos de instalao de diversos programas e softwares alm dos limites do LFS. O projeto de BLFS fica situado em http://www.linuxfromscratch.org/blfs/. LFS Hints O LFS Hints uma coleo dos originais informativos submetidos por voluntrios da comunidade LFS. As sugestes esto disponveis em http://www.linuxfromscratch.org/hints/list.html. Mailing lists H diversas listas de discusso LFS que voc pode subscrever se voc tiver necessidade da ajuda, quiser permanecer atualizado com os desenvolvimentos atuais, quiser contribuir com o projeto, e a mais. Veja o Chapter 1 - Mailing Lists para mais informaes. The Linux Documentation Project O objetivo do projeto de documentao do Linux (TLDP) consolidar toda a documentao do Linux. O TLDP tem uma grande coleo de HOWTOs, de guias, e de pginas man. Fica situado em http://www.tldp.org/.
250
GID GMT GPG HTML IDE IEEE IO IP IPC IRC ISO ISP KB LED LFS LSB MB MBR MD5 NIC NLS NNTP NPTL OSS PCH PCRE PID PLFS PTY QA QOS
Group Identifier Greenwich Mean Time GNU Privacy Guard Hypertext Markup Language Integrated Drive Electronics Institute of Electrical and Electronic Engineers Input/Output Internet Protocol Inter-Process Communication Internet Relay Chat International Organization for Standardization Internet Service Provider Kilobytes Light Emitting Diode Linux From Scratch Linux Standards Base Megabytes Master Boot Record Message Digest 5 Network Interface Card Native Language Support Network News Transport Protocol Native POSIX Threading Library Open Sound System Cabealhos pr-compilados (do ingls, Pre-Compiled Headers) Perl Compatible Regular Expression Identificador de processo (do ingls, Process Identifier) Pure Linux From Scratch pseudo terminal Quality Assurance Qualidade de servios (do ingls, Quality Of Service) 253
RAM RPC RTC SBU SCO SGR SHA1 SMP TLDP TFTP TLS UID umask USB UTC UUID VC VGA VT
Memria de acesso aleatrio (do ingls, Random Access Memory) Chamada a procedimento remoto (do ingls, Remote Procedure Call) Relgio de tempo real (do ingls, Real Time Clock) Unidade de compilao padro (do ingls, Standard Build Unit) The Santa Cruz Operation Select Graphic Rendition Secure-Hash Algorithm 1 Symmetric Multi-Processor Projeto de Documentao do Linux (do ingls, The Linux Documentation Project) Protocolo de transferncia de arquivos triviais (do ingls, Trivial File Transfer Protocol) Thread-Local Storage identificador de usurio (do ingls, User Identifier) mascara de criao de arquivo (do ingls, user file-creation mask) Barramento serial universal (do ingls, Universal Serial Bus) Horrio unversal por coordenadas (do ingls, Coordinated Universal Time) Identificador universal nico (do ingls, Universally Unique Identifier) console virtual (do ingls, Virtual Console) Conjunto de grficos de vdeo (do ingls, Video Graphics Array) Terminal virtual (do ingls, Virtual Terminal)
254
Appendix B. Agradecimentos
Ns gostaramos de agradecer as pessoas e organizaes a seguir pelo contribuio ao projeto Linux From Scratch. Gerard Beekmans <gerard@linuxfromscratch.org> Criador do LFS, Lder de Projeto do LFS Matthew Burgess <matthew@linuxfromscratch.org> LFS Project Leader, LFS Technical Writer/Editor, LFS Release Manager Archaic <archaic@linuxfromscratch.org> Escritor e Editor Tcnico do LFS, Lder de Projeto do HLFS, Editor do BLFS, Mantedor do Projeto Hints and Patches Nathan Coulson <nathan@linuxfromscratch.org> Mantedor do LFS-Bootscripts Bruce Dubbs <bdubbs@linuxfromscratch.org> Lder de Projeto do BLFS Manuel Canales Esparcia <manuel@linuxfromscratch.org> Mantedor do LFS, BLFS, HLFS XML e XSL Jim Gifford <jim@linuxfromscratch.org> Escritor Tcnico do LFS, Lder do Projeto Patches Jeremy Huntwork <jhuntwork@linuxfromscratch.org> Escritor Tcnico do LFS, Mantedor do LFS LiveCD, Lder de Projeto do ALFS Anderson Lizardo <lizardo@linuxfromscratch.org> Mantedor dos Backend-Scripts do Website Ryan Oliver <ryan@linuxfromscratch.org> Mantedor do LFS Toolchain James Robertson <jwrober@linuxfromscratch.org> Mantedor do Bugzilla Tushar Teredesai <tushar@linuxfromscratch.org> Editor do Livro BLFS e Lder de Projeto do Hints and Patches Incontveis outras pessoas nas vrias listas LFS e BLFS que ajudaram a fazer esse livro possvel dando sugestes, testando o livro, reportando erros, enviando instrues e experincias de instalao dos vrios pacotes.
Tradutores
Manuel Canales Esparcia <macana@lfs-es.com> Projeto de traduo do LFS para Espanhol Johan Lenglet <johan@linuxfromscratch.org> Projeto de traduo do LFS para o Francs Anderson Lizardo <lizardo@linuxfromscratch.org> Projeto de traduo do LFS para o Portugus Thomas Reitelbach <tr@erdfunkstelle.de> Projeto de traduo do LFS para o Alemo
Mantedores de Espelhos
Espelhos na Amrica do Norte
Scott Kveton <scott@osuosl.org> lfs.oregonstate.edu 255
Mikhail Pastukhov <miha@xuy.biz> lfs.130th.net William Astle <lost@l-w.net> ca.linuxfromscratch.org Jeremy Polen <jpolen@rackspace.com> us2.linuxfromscratch.org Tim Jackson <tim@idge.net> linuxfromscratch.idge.net Jeremy Utley <jeremy@linux-phreak.net> lfs.linux-phreak.net
Espelhos na Europa
Barna Koczka <barna@siker.hu> hu.linuxfromscratch.org UK Mirror Service linuxfromscratch.mirror.ac.uk Martin Voss <Martin.Voss@ada.de> lfs.linux-matrix.net Guido Passet <guido@primerelay.net> nl.linuxfromscratch.org Bastiaan Jacques <baafie@planet.nl> lfs.pagefault.net Roel Neefs <lfs-mirror@linuxfromscratch.rave.org> linuxfromscratch.rave.org Justin Knierim <justin@jrknierim.de> www.lfs-matrix.de Stephan Brendel <stevie@stevie20.de> lfs.netservice-neuss.de Antonin Sprinzl <Antonin.Sprinzl@tuwien.ac.at> at.linuxfromscratch.org Fredrik Danerklint <fredan-lfs@fredan.org> se.linuxfromscratch.org Parisian sysadmins <archive@doc.cs.univ-paris8.fr> www2.fr.linuxfromscratch.org Alexander Velin <velin@zadnik.org> bg.linuxfromscratch.org Dirk Webster <dirk@securewebservices.co.uk> lfs.securewebservices.co.uk Thomas Skyt <thomas@sofagang.dk> dk.linuxfromscratch.org Simon Nicoll <sime@dot-sime.com> uk.linuxfromscratch.org
Espelhos na sia
Pui Yong <pyng@spam.averse.net> sg.linuxfromscratch.org Stuart Harris <stuart@althalus.me.uk> lfs.mirror.intermedia.com.sg 256
Espelhos na Austrlia
Jason Andrade <jason@dstc.edu.au> au.linuxfromscratch.org
257
Linux From Scratch - Verso 6.1 IPRoute2: 162 Kbd: 179 Less: 151 Libtool: 175 Linux: 242 Linux-Libc-Headers: 112 tools, headers: 62 M4: 149 tools: 95 Make: 193 tools: 86 Man: 191 Man-pages: 113 Mktemp: 137 Module-Init-Tools: 194 Ncurses: 142 tools: 90 Patch: 196 tools: 91 Perl: 164 tools: 99 Procps: 197 Psmisc: 199 Readline: 144 Sed: 155 tools: 88 Shadow: 200 configuring: 201 Sysklogd: 204 configuring: 204 Sysvinit: 206 configuring: 207 Tar: 209 tools: 92 Tcl: 69 Texinfo: 166 tools: 93 Udev: 210 usage: 224 Util-linux: 212 tools: 98 Vim: 146 Zlib: 135
Index
Packages
Autoconf: 168 Automake: 170 Bash: 172 tools: 94 Binutils: 123 tools, pass 1: 58 tools, pass 2: 78 Bison: 150 tools: 96 Bootscripts: 220 usage: 222 Bzip2: 176 tools: 82 Coreutils: 129 tools: 81 DejaGNU: 73 Diffutils: 178 tools: 84 E2fsprogs: 181 Expect: 71 File: 174 Findutils: 139 tools: 85 Flex: 156 tools: 97 Gawk: 141 tools: 80 GCC: 126 tools, pass 1: 60 tools, pass 2: 74 Gettext: 158 tools: 89 Glibc: 114 tools: 63 Grep: 184 tools: 87 Groff: 152 GRUB: 185 configuring: 245 Gzip: 187 tools: 83 Hotplug: 189 Iana-Etc: 138 Inetutils: 160
Programs
a2p: 164 , 164 acinstall: 170 , 170 aclocal: 170 , 170 aclocal-1.9.5: 170 , 170 258
Linux From Scratch - Verso 6.1 addftinfo: 152 , 152 addr2line: 123 , 124 afmtodit: 152 , 152 agetty: 212 , 213 apropos: 191 , 192 ar: 123 , 124 arch: 212 , 213 as: 123 , 124 autoconf: 168 , 168 autoheader: 168 , 168 autom4te: 168 , 168 automake: 170 , 170 automake-1.9.5: 170 , 170 autopoint: 158 , 158 autoreconf: 168 , 168 autoscan: 168 , 168 autoupdate: 168 , 168 awk: 141 , 141 badblocks: 181 , 182 basename: 129 , 130 bash: 172 , 173 bashbug: 172 , 173 bigram: 139 , 139 bison: 150 , 150 blkid: 181 , 182 blockdev: 212 , 213 bunzip2: 176 , 177 bzcat: 176 , 177 bzcmp: 176 , 177 bzdiff: 176 , 177 bzegrep: 176 , 177 bzfgrep: 176 , 177 bzgrep: 176 , 177 bzip2: 176 , 177 bzip2recover: 176 , 177 bzless: 176 , 177 bzmore: 176 , 177 c++: 126 , 127 c++filt: 123 , 124 c2ph: 164 , 164 cal: 212 , 213 captoinfo: 142 , 143 cat: 129 , 130 catchsegv: 114 , 119 cc: 126 , 127 cfdisk: 212 , 213 chage: 200 , 201 chattr: 181 , 182 chfn: 200 , 201 chgrp: 129 , 130 chkdupexe: 212 , 213 chmod: 129 , 130 chown: 129 , 130 chpasswd: 200 , 201 chroot: 129 , 130 chsh: 200 , 201 chvt: 179 , 179 cksum: 129 , 130 clear: 142 , 143 cmp: 178 , 178 code: 139 , 139 col: 212 , 213 colcrt: 212 , 213 colrm: 212 , 213 column: 212 , 213 comm: 129 , 130 compile: 170 , 170 compile_et: 181 , 182 compress: 187 , 187 config.charset: 158 , 158 config.guess: 170 , 170 config.rpath: 158 , 158 config.sub: 170 , 170 cp: 129 , 130 cpp: 126 , 127 csplit: 129 , 130 ctrlaltdel: 212 , 213 ctstat: 162 , 162 cut: 129 , 130 cytune: 212 , 213 date: 129 , 130 dd: 129 , 131 ddate: 212 , 213 deallocvt: 179 , 179 debugfs: 181 , 182 depcomp: 170 , 171 depmod: 194 , 194 df: 129 , 132 diff: 178 , 178 diff3: 178 , 178 dir: 129 , 132 dircolors: 129 , 132 dirname: 129 , 132 dmesg: 212 , 213 dprofpp: 164 , 165 du: 129 , 132 dumpe2fs: 181 , 182 dumpkeys: 179 , 179 259
Linux From Scratch - Verso 6.1 e2fsck: 181 , 182 e2image: 181 , 182 e2label: 181 , 182 echo: 129 , 132 efm_filter.pl: 146 , 147 efm_perl.pl: 146 , 148 egrep: 184 , 184 elisp-comp: 170 , 171 elvtune: 212 , 213 en2cxs: 164 , 165 env: 129 , 132 envsubst: 158 , 158 eqn: 152 , 152 eqn2graph: 152 , 152 ex: 146 , 148 expand: 129 , 132 expect: 71 , 72 expiry: 200 , 201 expr: 129 , 132 factor: 129 , 132 faillog: 200 , 202 false: 129 , 132 fdformat: 212 , 213 fdisk: 212 , 213 fgconsole: 179 , 179 fgrep: 184 , 184 file: 174 , 174 find: 139 , 139 find2perl: 164 , 165 findfs: 181 , 182 flex: 156 , 157 flex++: 156 , 157 fmt: 129 , 132 fold: 129 , 132 frcode: 139 , 139 free: 197 , 197 fsck: 181 , 182 fsck.cramfs: 212 , 213 fsck.ext2: 181 , 182 fsck.ext3: 181 , 182 fsck.minix: 212 , 213 ftp: 160 , 161 fuser: 199 , 199 g++: 126 , 127 gawk: 141 , 141 gawk-3.1.4: 141 , 141 gcc: 126 , 127 gccbug: 126 , 127 gcov: 126 , 127 gencat: 114 , 119 geqn: 152 , 152 getconf: 114 , 119 getent: 114 , 119 getkeycodes: 179 , 179 getopt: 212 , 213 gettext: 158 , 158 gettextize: 158 , 158 getunimap: 179 , 179 gpasswd: 200 , 202 gprof: 123 , 124 grcat: 141 , 141 grep: 184 , 184 grn: 152 , 153 grodvi: 152 , 153 groff: 152 , 153 groffer: 152 , 153 grog: 152 , 153 grolbp: 152 , 153 grolj4: 152 , 153 grops: 152 , 153 grotty: 152 , 153 groupadd: 200 , 202 groupdel: 200 , 202 groupmod: 200 , 202 groups: 200 , 202 groups: 129 , 132 grpck: 200 , 202 grpconv: 200 , 202 grpunconv: 200 , 202 grub: 185 , 185 grub-install: 185 , 185 grub-md5-crypt: 185 , 185 grub-terminfo: 185 , 186 gtbl: 152 , 153 gunzip: 187 , 187 gzexe: 187 , 188 gzip: 187 , 188 h2ph: 164 , 165 h2xs: 164 , 165 halt: 206 , 208 head: 129 , 132 hexdump: 212 , 213 hostid: 129 , 132 hostname: 129 , 132 hostname: 158 , 158 hotplug: 189 , 190 hpftodit: 152 , 153 hwclock: 212 , 214 260
Linux From Scratch - Verso 6.1 iconv: 114 , 119 iconvconfig: 114 , 119 id: 129 , 132 ifcfg: 162 , 162 ifnames: 168 , 169 ifstat: 162 , 162 igawk: 141 , 141 indxbib: 152 , 153 info: 166 , 167 infocmp: 142 , 143 infokey: 166 , 167 infotocap: 142 , 143 init: 206 , 208 insmod: 194 , 194 insmod.static: 194 , 194 install: 129 , 132 install-info: 166 , 167 install-sh: 170 , 171 ip: 162 , 163 ipcrm: 212 , 214 ipcs: 212 , 214 isosize: 212 , 214 join: 129 , 132 kbdrate: 179 , 179 kbd_mode: 179 , 179 kill: 197 , 197 killall: 199 , 199 killall5: 206 , 208 klogd: 204 , 205 last: 206 , 208 lastb: 206 , 208 lastlog: 200 , 202 ld: 123 , 124 ldconfig: 114 , 119 ldd: 114 , 119 lddlibc4: 114 , 119 less: 151 , 151 less.sh: 146 , 148 lessecho: 151 , 151 lesskey: 151 , 151 lex: 156 , 157 lfskernel-2.6.11.12: 242 , 244 libnetcfg: 164 , 165 libtool: 175 , 175 libtoolize: 175 , 175 line: 212 , 214 link: 129 , 132 lkbib: 152 , 153 ln: 129 , 132 lnstat: 162 , 163 loadkeys: 179 , 179 loadunimap: 179 , 179 locale: 114 , 119 localedef: 114 , 119 locate: 139 , 139 logger: 212 , 214 login: 200 , 202 logname: 129 , 132 logoutd: 200 , 202 logsave: 181 , 182 look: 212 , 214 lookbib: 152 , 153 losetup: 212 , 214 ls: 129 , 132 lsattr: 181 , 182 lsmod: 194 , 195 m4: 149 , 149 make: 193 , 193 makeinfo: 166 , 167 makewhatis: 191 , 192 man: 191 , 192 man2dvi: 191 , 192 man2html: 191 , 192 mapscrn: 179 , 180 mbchk: 185 , 186 mcookie: 212 , 214 md5sum: 129 , 132 mdate-sh: 170 , 171 mesg: 206 , 208 missing: 170 , 171 mkdir: 129 , 132 mke2fs: 181 , 183 mkfifo: 129 , 132 mkfs: 212 , 214 mkfs.bfs: 212 , 214 mkfs.cramfs: 212 , 214 mkfs.ext2: 181 , 183 mkfs.ext3: 181 , 183 mkfs.minix: 212 , 214 mkinstalldirs: 170 , 171 mklost+found: 181 , 183 mknod: 129 , 132 mkpasswd: 200 , 202 mkswap: 212 , 214 mktemp: 137 , 137 mk_cmds: 181 , 182 mmroff: 152 , 153 modinfo: 194 , 195 261
Linux From Scratch - Verso 6.1 modprobe: 194 , 195 more: 212 , 214 mount: 212 , 214 mountpoint: 206 , 208 msgattrib: 158 , 159 msgcat: 158 , 159 msgcmp: 158 , 159 msgcomm: 158 , 159 msgconv: 158 , 159 msgen: 158 , 159 msgexec: 158 , 159 msgfilter: 158 , 159 msgfmt: 158 , 159 msggrep: 158 , 159 msginit: 158 , 159 msgmerge: 158 , 159 msgunfmt: 158 , 159 msguniq: 158 , 159 mtrace: 114 , 119 mv: 129 , 133 mve.awk: 146 , 148 namei: 212 , 214 neqn: 152 , 153 newgrp: 200 , 202 newusers: 200 , 202 ngettext: 158 , 159 nice: 129 , 133 nl: 129 , 133 nm: 123 , 124 nohup: 129 , 133 nroff: 152 , 153 nscd: 114 , 119 nscd_nischeck: 114 , 119 nstat: 162 , 163 objcopy: 123 , 124 objdump: 123 , 124 od: 129 , 133 openvt: 179 , 180 passwd: 200 , 202 paste: 129 , 133 patch: 196 , 196 pathchk: 129 , 133 pcprofiledump: 114 , 119 perl: 164 , 165 perl5.8.6: 164 , 165 perlbug: 164 , 165 perlcc: 164 , 165 perldoc: 164 , 165 perlivp: 164 , 165 pfbtops: 152 , 153 pg: 212 , 214 pgawk: 141 , 141 pgawk-3.1.4: 141 , 141 pgrep: 197 , 197 pic: 152 , 153 pic2graph: 152 , 153 piconv: 164 , 165 pidof: 206 , 208 ping: 160 , 161 pinky: 129 , 133 pivot_root: 212 , 214 pkill: 197 , 197 pl2pm: 164 , 165 pltags.pl: 146 , 148 pmap: 197 , 197 pod2html: 164 , 165 pod2latex: 164 , 165 pod2man: 164 , 165 pod2text: 164 , 165 pod2usage: 164 , 165 podchecker: 164 , 165 podselect: 164 , 165 post-grohtml: 152 , 153 poweroff: 206 , 208 pr: 129 , 133 pre-grohtml: 152 , 153 printenv: 129 , 133 printf: 129 , 133 ps: 197 , 197 psed: 164 , 165 psfaddtable: 179 , 180 psfgettable: 179 , 180 psfstriptable: 179 , 180 psfxtable: 179 , 180 pstree: 199 , 199 pstree.x11: 199 , 199 pstruct: 164 , 165 ptx: 129 , 133 pt_chown: 114 , 119 pwcat: 141 , 141 pwck: 200 , 202 pwconv: 200 , 202 pwd: 129 , 133 pwunconv: 200 , 202 py-compile: 170 , 171 ramsize: 212 , 214 ranlib: 123 , 125 raw: 212 , 214 262
Linux From Scratch - Verso 6.1 rcp: 160 , 161 rdev: 212 , 214 readelf: 123 , 125 readlink: 129 , 133 readprofile: 212 , 214 reboot: 206 , 208 ref: 146 , 148 refer: 152 , 154 rename: 212 , 214 renice: 212 , 214 reset: 142 , 143 resize2fs: 181 , 183 resizecons: 179 , 180 rev: 212 , 214 rlogin: 160 , 161 rm: 129 , 133 rmdir: 129 , 133 rmmod: 194 , 195 rmt: 209 , 209 rootflags: 212 , 214 routef: 162 , 163 routel: 162 , 163 rpcgen: 114 , 119 rpcinfo: 114 , 119 rsh: 160 , 161 rtacct: 162 , 163 rtmon: 162 , 163 rtpr: 162 , 163 rtstat: 162 , 163 runlevel: 206 , 208 runtest: 73 , 73 rview: 146 , 148 rvim: 146 , 148 s2p: 164 , 165 script: 212 , 214 sdiff: 178 , 178 sed: 155 , 155 seq: 129 , 133 setfdprm: 212 , 214 setfont: 179 , 180 setkeycodes: 179 , 180 setleds: 179 , 180 setlogcons: 179 , 180 setmetamode: 179 , 180 setsid: 212 , 214 setterm: 212 , 215 setvesablank: 179 , 180 sfdisk: 212 , 215 sg: 200 , 202 sh: 172 , 173 sha1sum: 129 , 133 showconsolefont: 179 , 180 showkey: 179 , 180 shred: 129 , 133 shtags.pl: 146 , 148 shutdown: 206 , 208 size: 123 , 125 skill: 197 , 197 sleep: 129 , 133 sln: 114 , 119 snice: 197 , 197 soelim: 152 , 154 sort: 129 , 133 splain: 164 , 165 split: 129 , 133 sprof: 114 , 119 ss: 162 , 163 stat: 129 , 133 strings: 123 , 125 strip: 123 , 125 stty: 129 , 133 su: 200 , 202 sulogin: 206 , 208 sum: 129 , 133 swapdev: 212 , 215 swapoff: 212 , 215 swapon: 212 , 215 symlink-tree: 170 , 171 sync: 129 , 133 sysctl: 197 , 197 syslogd: 204 , 205 tac: 129 , 133 tack: 142 , 143 tail: 129 , 133 talk: 160 , 161 tar: 209 , 209 tbl: 152 , 154 tc: 162 , 163 tclsh: 69 , 70 tclsh8.4: 69 , 70 tcltags: 146 , 148 tee: 129 , 133 telinit: 206 , 208 telnet: 160 , 161 tempfile: 137 , 137 test: 129 , 134 texi2dvi: 166 , 167 texindex: 166 , 167 263
Linux From Scratch - Verso 6.1 tfmtodit: 152 , 154 tftp: 160 , 161 tic: 142 , 143 tload: 197 , 197 toe: 142 , 143 top: 197 , 197 touch: 129 , 134 tput: 142 , 143 tr: 129 , 134 troff: 152 , 154 true: 129 , 134 tset: 142 , 143 tsort: 129 , 134 tty: 129 , 134 tune2fs: 181 , 183 tunelp: 212 , 215 tzselect: 114 , 119 udev: 210 , 210 udevd: 210 , 210 udevinfo: 210 , 211 udevsend: 210 , 210 udevstart: 210 , 210 udevtest: 210 , 211 ul: 212 , 215 umount: 212 , 215 uname: 129 , 134 uncompress: 187 , 188 unexpand: 129 , 134 unicode_start: 179 , 180 unicode_stop: 179 , 180 uniq: 129 , 134 unlink: 129 , 134 updatedb: 139 , 139 uptime: 197 , 197 useradd: 200 , 202 userdel: 200 , 202 usermod: 200 , 202 users: 129 , 134 utmpdump: 206 , 208 uuidgen: 181 , 183 vdir: 129 , 134 vi: 146 , 148 vidmode: 212 , 215 view: 146 , 148 vigr: 200 , 202 vim: 146 , 148 vim132: 146 , 148 vim2html.pl: 146 , 148 vimdiff: 146 , 148 vimm: 146 , 148 vimspell.sh: 146 , 148 vimtutor: 146 , 148 vipw: 200 , 202 vmstat: 197 , 197 w: 197 , 198 wall: 206 , 208 watch: 197 , 198 wc: 129 , 134 whatis: 191 , 192 whereis: 212 , 215 who: 129 , 134 whoami: 129 , 134 write: 212 , 215 xargs: 139 , 140 xgettext: 158 , 159 xsubpp: 164 , 165 xtrace: 114 , 119 xxd: 146 , 148 yacc: 150 , 150 yes: 129 , 134 ylwrap: 170 , 171 zcat: 187 , 188 zcmp: 187 , 188 zdiff: 187 , 188 zdump: 114 , 120 zegrep: 187 , 188 zfgrep: 187 , 188 zforce: 187 , 188 zgrep: 187 , 188 zic: 114 , 120 zless: 187 , 188 zmore: 187 , 188 znew: 187 , 188 zsoelim: 152 , 154
Libraries
ld.so: 114 , 120 libanl: 114 , 120 libasprintf: 158 , 159 libbfd: 123 , 125 libblkid: 181 , 183 libBrokenLocale: 114 , 120 libbsd-compat: 114 , 120 libbz2*: 176 , 177 libc: 114 , 120 libcom_err: 181 , 183 libcrypt: 114 , 120 libcurses: 142 , 143 264
Linux From Scratch - Verso 6.1 libdl: 114 , 120 libe2p: 181 , 183 libexpect-5.42: 71 , 72 libext2fs: 181 , 183 libfl.a: 156 , 157 libform: 142 , 143 libg: 114 , 120 libgcc*: 126 , 127 libgettextlib: 158 , 159 libgettextpo: 158 , 159 libgettextsrc: 158 , 159 libhistory: 144 , 145 libiberty: 123 , 125 libieee: 114 , 120 libltdl: 175 , 175 libm: 114 , 120 libmagic: 174 , 174 libmcheck: 114 , 120 libmemusage: 114 , 120 libmenu: 142 , 143 libncurses: 142 , 143 libnsl: 114 , 120 libnss: 114 , 120 libopcodes: 123 , 125 libpanel: 142 , 143 libpcprofile: 114 , 120 libproc: 197 , 198 libpthread: 114 , 120 libreadline: 144 , 145 libresolv: 114 , 120 librpcsvc: 114 , 120 librt: 114 , 120 libSegFault: 114 , 120 libshadow: 200 , 203 libss: 181 , 183 libstdc++: 126 , 128 libsupc++: 126 , 128 libtcl8.4.so: 69 , 70 libthread_db: 114 , 120 libutil: 114 , 120 libuuid: 181 , 183 liby.a: 150 , 150 libz: 135 , 136 console: 220 , 220 configuring: 229 functions: 220 , 220 halt: 220 , 220 hotplug: 220 , 220 ifdown: 220 , 220 ifup: 220 , 220 localnet: 220 , 220 /etc/hosts: 237 configuring: 236 mountfs: 220 , 220 mountkernfs: 220 , 220 network: 220 , 220 /etc/hosts: 237 configuring: 238 rc: 220 , 221 reboot: 220 , 221 sendsignals: 220 , 221 setclock: 220 , 221 configuring: 228 static: 220 , 221 swap: 220 , 221 sysklogd: 220 , 221 configuring: 231 template: 220 , 221 udev: 220 , 221
Others
/boot/config-2.6.11.12: 242 , 244 /boot/System.map-2.6.11.12: 242 , 244 /dev/*: 110 /etc/fstab: 241 /etc/group: 108 /etc/hosts: 237 /etc/hotplug.d: 189 , 190 /etc/hotplug/blacklist: 189 , 190 /etc/hotplug/hotplug.functions: 189 , 190 /etc/hotplug/usb.usermap: 189 , 190 /etc/hotplug/{pci,usb}: 189 , 190 /etc/inittab: 207 /etc/inputrc: 232 /etc/ld.so.conf: 117 /etc/lfs-release: 247 /etc/limits: 200 /etc/localtime: 116 /etc/login.access: 200 /etc/login.defs: 200 /etc/nsswitch.conf: 116 /etc/passwd: 108 265
Scripts
/etc/hotplug/*.agent: 189 , 190 /etc/hotplug/*.rc: 189 , 190 checkfs: 220 , 220 cleanfs: 220 , 220
Linux From Scratch - Verso 6.1 /etc/profile: 234 /etc/protocols: 138 /etc/resolv.conf: 239 /etc/services: 138 /etc/syslog.conf: 204 /etc/udev: 210 , 211 /etc/vim: 147 /lib/firmware: 189 , 190 /usr/include/{asm,linux}/*.h: 112 , 112 /var/log/btmp: 108 /var/log/hotplug/events: 189 , 190 /var/log/lastlog: 108 /var/log/wtmp: 108 /var/run/utmp: 108 man pages: 113 , 113
266