Escolar Documentos
Profissional Documentos
Cultura Documentos
Verso 6.1
Gerard Beekmans
Redistribuies sob qualquer formato no podem ocultar a nota sobre copyright acima, esta lista de consideraes e os esclarecimentos que se seguem
Tanto o nome Linux From Scratch quanto os nomes das pessoas que contribuiram podem ser usados para endorsar ou promover produtos derivados deste materia
sem permisso prvia, especifica e por escrito
Qualquer materia derivado do Linux From Scratch deve conter uma referncia para o projeto Linux From Scratch
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
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
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.
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
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;
Removido:
bash-3.0-display_wrap-1.patch
flex-2.5.31-debian_fixes-2.patch
man-1.5o1-80cols-1.patch
mktemp-1.5-add_tempfile-1.patch
20
sysklogd-1.4.1-kernel_headers-1.patch
sysvinit-2.85-proclen-1.patch
texinfo-4.7-segfault-1.patch
util-linux-2.12b-sfdisk-1.patch
zlib-1.2.1-security-1.patch
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 july de 2005 [matt]: Diversas correes de tipos, como sugerido por Bernard Leak.
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.
29 de junho de 2005 [archaic]: Movido a pgina com os requisitos do sistema anfitrio para o prefacio do
livro.
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!
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 [matthew]: Atualizada a ltima verso do patch do tempfile do mktemp a qual oferece
suporte para a compilao fora do diretrio de cdigos fonte.
22 de junho de 2005 [archaic]: Atualizado o Shadow para a verso 4.0.9. Removido o patch lastlog.
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 [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.)
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).
12 de maio de 2005 [matt]: Mais melhoramentos de frases e notas (agradecimentos Peter Ennis e Tony
Morgan)
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 [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]: 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
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]: 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.
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
16 de maro de 2005 [jim]: Removido patch find_update para IPRoute2, no mais necessrio
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]: 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.
3 de maro de 2005 [matt]: Removido --without-cvs das instrues do glibc, pois no mais usamos glibc
CVS snapshots
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.
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]: 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
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
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.
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.
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.
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
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
-p $LFS
/dev/[xxx] $LFS
$LFS/usr
/dev/[yyy] $LFS/usr
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
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
41
42
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
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
54
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
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
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
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
Descrio rpida
expect
libexpect-5.42.a
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
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
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
ao
invs
de
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
-s
-s
-s
-s
/tools/bin/{bash,cat,pwd,stty} /bin
/tools/bin/perl /usr/bin
/tools/lib/libgcc_s.so{,.1} /usr/lib
bash /bin/sh
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
-m 622 /dev/console c 5 1
-m 666 /dev/null c 1 3
-m 666 /dev/zero c 1 5
-m 666 /dev/ptmx c 5 2
-m 666 /dev/tty c 5 0
-m 444 /dev/random c 1 8
-m 444 /dev/urandom c 1 9
root:tty /dev/{console,ptmx,tty}
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
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
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
Compile o pacote:
make
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
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.
118
Descrio rpida
catchsegv
usado para obter informaes da pilha quando um programa termina com falha de
segmentao
gencat
getconf
getent
iconv
iconvconfig
ldconfig
ldd
lddlibc4
locale
um programa Perl que diz ao compilador para habilitar (ou desabilitar) o uso de
localidades POSIX para operaes embutidas (built-in)
localedef
mtrace
nscd
um daemon que prov um cache para os pedidos de servios de nomes mais comuns
nscd_nischeck
pcprofiledump
pt_chown
rpcgen
rpcinfo
sln
sprof
tzselect
Pede informaes ao usurio sobre a sua localizao atual e exibe na sada padro a
descrio do fuso horrio resultante
xtrace
zdump
zic
ld.so
libBrokenLocale
libSegFault
libanl
libbsd-compat
libc
A biblioteca C principal
libcrypt
A biblioteca de criptografia
libdl
libg
libieee
libm
Biblioteca matemtica
libmcheck
libmemusage
utilizado pelo memusage para ajudar a coletar informao sobre uso da memria por
um programa
libnsl
libnss
libpcprofile
Cdigo usado pelo kernel para calcular o tempo de CPU gasto em funes, linhas de
cdigo-fonte e instrues
libpthread
libresolv
librpcsvc
librt
libthread_db
libutil
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
ar
as
c++filt
Usado pelo linker para repassar smbolos C++ e Java e para livrar funes sobrecarregadas por
conflitos
gprof
ld
nm
objcopy
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
objdump
particular ser exibida. Este programa til para programadores que esto produzindo
ferramentas de compilao
ranlib
readelf
size
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
strings
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
strip
libiberty
Contm as rotinas usadas por vrios programas GNU, incluindo getopt, obstack, strerror,
strtol e strtoul
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
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
O compilador C
cpp
c++
O compilador C++
g++
O compilador C++
gcc
O compilador C
gccbug
gcov
Uma ferramenta de teste de otimizao; usado para indicar onde as opes de otimizao tero
melhores efeitos.
libgcc
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
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
chown
chroot
cksum
comm
cp
Copia arquivos
csplit
Exibe partes de um arquivo separadas por um padro em arquivos xx01, xx02, ... e retorna a
contagem de bytes de cada parte
cut
Exibe partes selecionadas de linhas dos arquivos especificados para a sada padro
date
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
Fornece uma seqncia comandos para ajustar a varivel de ambiente de LS_COLOR que
define as cores desejadas para os comandos ls
dirname
du
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
echo
env
expand
expr
Avalia expresses
factor
false
No faz nada, e falha; sempre termina com um cdigo de status indicando erro
fmt
fold
Quebra linhas de cada arquivo especificado (ou entrada padro), escrevendo para a sada padro
groups
head
Imprime na sada padro as primeiras dez linhas (ou o nmero de linhas especificado) de um
arquivo
hostid
hostname
id
install
Copia arquivos enquanto define suas permisses e, se possvel, seus proprietrio e grupo
join
link
ln
logname
ls
md5sum
mkdir
Cria diretrios
mkfifo
mknod
Cria #device nodes#; um #device nodes# um arquivo de caracteres especiais, blocos especiais,
ou um FIFO
132
mv
nice
nl
nohup
od
paste
Funde arquivos, escrevendo para a sada padro linhas consistindo em linhas seqenciais de
cada arquivo especificado, separado por TABs
pathchk
pinky
pr
printenv
printf
ptx
Produz um ndice permutado do contedo dos arquivos especificados, com cada palavra-chave
em seu contexto
pwd
readlink
rm
rmdir
seq
sha1sum
shred
sleep
sort
split
stat
stty
sum
sync
Esvazia os buffers do sistema de arquivos; isto fora a gravao dos blocos alterados no disco
tac
tail
Imprime as ltimas dez linhas (ou o nmero de linhas informado) de cada lima especificado
tee
test
touch
tr
Traduz, comprime e/ou remove caracteres da entrada padro, escrevendo para a sada padro
true
No faz nada, mas com sucesso; sempre termina com um cdigo de status indicando sucesso
tsort
Escreve listas totalmente ordenadas consistentes com a ordenao parcial dos arquivos
especificados
tty
uname
unexpand
Converte espaos de cada arquivo para TABs, escrevendo para a sada padro
uniq
unlink
users
vdir
o mesmo que ls -l
wc
Exibe a contagem de linhas, palavras e bytes para cada arquivo especificado e uma linha total,
se mais de um arquivo foi especificado
who
whoami
yes
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 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
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.
locate
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
updatedb
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
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
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
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
infocmp
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)
infotocap
reset
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.
tack
tic
toe
Lista todos os tipos de terminais disponveis, dando o nome e a descrio preliminar de cada
um
tput
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
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
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
Reformata as mensagens de erro do interpretador Perl para o uso com o modo quickfix
do vim
ex
less.sh
mve.awk
pltags.pl
Cria um arquivo de tags (marcaes) para cdigos Perl a ser usado pelo vim
ref
rview
Verso restrita do view; nenhum comando shell pode ser iniciado e o viewno pode ser
suspenso
rvim
Verso restrita do vim; nenhum comando shell pode ser iniciado e o vim no pode ser
suspenso
shtags.pl
tcltags
view
vi
o editor
vim
o editor
vim132
vim2html.pl
vimdiff
vimm
vimspell.sh
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
O bison um gerador de analisadores (parser generator), um substituto para o yacc. Yacc significa
Outro Compilador de Compiladores (Yet Another Compiler Compiler).
yacc
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
Necessrio para expandir meta-caracteres, tais como * e ?, nos nomes de arquivo em sistemas
Unix
lesskey
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
grn
grodvi
groff
groffer
grog
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
grolbp
um driver do groff para as impressoras Canon CAPSL (impressoras a laiser das sries
LBP-4 e LBP-8)
grolj4
um driver do groff que produz sada no formato PCL5 apropriado para uma impressora
HP Laserjet 4
grops
grotty
Traduz a sada do GNU troff um formato apropriado para dispositivos tipo mquina de
escrever
gtbl
hpftodit
Cria um arquivo de fontes para uso com o groff -Tlj4 a partir de um arquivo de tamanho de
fontes HP
indxbib
Cria um ndice remissivo para base de dados bibliogrficos em um arquivo para uso com
refer, lookbib e lkbib
lkbib
lookbib
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
mmroff
neqn
nroff
pfbtops
pic
pic2graph
post-grohtml
pre-grohtml
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
soelim
L arquivos e substitui linhas na forma arquivo .so pelo contedo de arquivo arquivo
tbl
tfmtodit
troff
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
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
flex++
Invoca uma verso do flex que usada exclusivamente por analisadores de cdigo C++
lex
Um script bash chamado lex que executa o flex em modo de emulao do 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
Copia todos os arquivos gettext padro para o diretrio de um pacote, para iniciar sua
internacionalizao
hostname
msgattrib
msgcat
msgcmp
Compara dois arquivos .po para verificar se ambos contm o mesmo conjunto de
strings do msgid
msgcomm
msgconv
msgen
msgexec
msgfilter
msgfmt
Compila uma traduo crua em cdigo de mquina. usado para criar o arquivo final de
traduo do programa/pacote
msggrep
msginit
msgmerge
msgunfmt
msguniq
ngettext
Exibe tradues em lngua nativa de uma mensagem textual onde a forma gramatical
depende de um nmero
xgettext
libasprintf
libgettextlib
Uma biblioteca privada que contm as rotinas comuns usadas pelos vrios programas do
Gettext; ela no para o uso geral
libgettextpo
libgettextsrc
Uma biblioteca privada que contm as rotinas comuns usadas pelos vrios programas do
Gettext; ela no para o uso geral
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
Envia pacotes-eco e apresenta relatrios sobre o tempo e o percurso das respostas na rede
rcp
rlogin
rsh
talk
telnet
tftp
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
162
ip
lnstat
Fornece as estatsticas da rede Linux. uma verso mais completa para o antigo programa
rtstat
nstat
routef
routel
rtacct
rtmon
rtpr
rtstat
ss
tc
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
dprofpp
en2cxs
Configura uma extenso do Perl para o mdulo Encode do Unicode Character Mappings ou
Tcl Encoding Files
find2perl
h2ph
h2xs
libnetcfg
perl
Ela combina algumas das melhores funcionalidades do C, sed, awk e sh em uma nica
linguagem poderosa
perl5.8.6
Um hardlink ao perl
perlbug
Auxilia a gerao de relatrios de bug sobre o Perl ou seus mdulos e os envia por e-mail
perlcc
perldoc
Apresenta uma parte da documentao em formato .pod encontrada nos diretrios do Perl ou
em um script Perl e a exibe
perlivp
A Perl Installation Verification Procedure; pode ser usada para verificar se o Perl e suas
bibliotecas foram instalados corretamente
piconv
pl2pm
Uma ferramenta que auxilia na converso de bibliotecas .pl estilo Perl4 para mdulos .pm
do Perl5
pod2html
pod2latex
pod2man
pod2text
pod2usage
podchecker
podselect
psed
pstruct
s2p
splain
xsubpp
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.
infokey
install-info
Usado para instalar pginas info; ele atualiza as entradas nos arquivos de ndices info
makeinfo
Converte documentos-fontes Texinfo para os formatos: arquivos info, texto plano e HTML
texi2dvi
texindex
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.
autoheader
autom4te
autoreconf
autoscan
autoupdate
Modifica um arquivo configure.in que ainda chama macros autoconf por seus nomes
antigos para que use os nomes de macro atuais
168
ifnames
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
automake-1.9.5
compile
config.guess
config.sub
170
depcomp
elisp-comp
install-sh
mdate-sh
missing
Um script que age como um mediador para alguns programas que esto faltando no
sistema
mkinstalldirs
py-compile
symlink-tree
ylwrap
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
bashbug
Um script shell que ajuda o usurio a compor e enviar relatrios de bugs relacionados ao bash, por
meio de um mtodo padronizado
sh
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
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
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
bzip2-shared /bin/bzip2
-a libbz2.so* /lib
-s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
/usr/bin/{bunzip2,bzcat,bzip2}
-s bzip2 /bin/bunzip2
-s bzip2 /bin/bzcat
Descrio rpida
176
bunzip2
bzcat
bzcmp
bzdiff
bzgrep
bzegrep
bzfgrep
bzip2
bzip2recover
bzless
bzmore
libbz2*
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
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
179
mapscrn
Um programa obsoleto que carrega a tabela de sada de caractere definida pelo usurio
dentro do driver do console. Isto feito atualmente pelo setfont
openvt
psfaddtable
psfgettable
psfstriptable
psfxtable
resizecons
setfont
setkeycodes
setleds
Configura os LEDs do teclado. Muitas pessoas acham isto til para ter o numlock
habilitado por padro
setlogcons
setmetamode
setvesablank
showconsolefont
showkey
unicode_start
unicode_stop
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
Descrio rpida
badblocks
blkid
chattr
compile_et
debugfs
Um depurador do sistema de arquivos. Ele pode ser usado para examinar e modificar o
estado de um sistema de arquivos ext2
dumpe2fs
Exibe informaes de grupo sobre o superbloco e demais blocos para o sistema de arquivos
presente em um dispositivo especfico
e2fsck
e2image
e2label
findfs
fsck
fsck.ext2
fsck.ext3
logsave
lsattr
mk_cmds
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
libblkid
libcom_err
libe2p
libext2fs
Contem rotinas para permitir que programas em nvel de usurio manipulem um sistema de
arquivos ext2
libss
libuuid
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
Exibe linhas de arquivos que satisfazem a uma lista fixa de strings, separadas por novas linhas
(newlines)
grep
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
185
grub-terminfo
mbchk
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
/usr/bin/gzip /bin
/usr/bin/{gunzip,zcat}
-s gzip /bin/gunzip
-s gzip /bin/zcat
-s gzip /bin/compress
-s gunzip /bin/uncompress
Descrio rpida
compress
Compacta arquivos
gunzip
187
gzexe
gzip
uncompress
zcat
Descompacta e escreve para a sada padro uma lista de arquivos ou um arquivo sendo lido da
entrada padro
zcmp
zdiff
zegrep
zfgrep
zforce
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
zgrep
zless
zmore
znew
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
/etc/hotplug/{pci,usb},
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)
/etc/hotplug/*.rc
/etc/hotplug/*.agent
/etc/hotplug/blacklist
Este arquivo contm a lista dos mdulos que nunca devem ser
carregados no kernel pelos scripts Hotplug
/etc/hotplug/hotplug.functions
/etc/hotplug/{pci,usb}
/etc/hotplug/usb.usermap
/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
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
Procura a base de dados whatis e apresenta as descries rpidas dos comandos do sistema
que contenha uma determinada sequncia de caracteres
makewhatis
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
man
man2dvi
man2html
whatis
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
insmod
insmod.static
lsmod
modinfo
modprobe
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
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
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
kill
pgrep
pkill
pmap
ps
skill
snice
sysctl
tload
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
top
Mostra uma lista dos processos mais intensos da CPU; isto fornece uma estimativa da atividade do
processador central em tempo real
uptime
Relata a quanto tempo o sistema est ligado, quantos usurios esto registrados
vmstat
watch
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
Mostra os IDs dos processos (PIDs) que usam arquivos de dados ou arquivos do sistema
killall
pstree
pstree.x11
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
Descrio rpida
chage
Usado para alterar o nmero mximo de dias entre as mudanas obrigatrias de senha
chfn
Usado para alterar o nome completo do usurio e outras informaes (nmero da sala do
escritrio, nmero do telefone comercial e residencial).
chpasswd
chsh
expiry
faillog
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.
gpasswd
groupadd
groupdel
groupmod
groups
grpck
grpconv
grpunconv
lastlog
login
logoutd
mkpasswd
newgrp
newusers
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
passwd
pwck
pwconv
pwunconv
sg
Modifica o GID do usurio para o do grupo especificado, ou executa um comando dado como
membro do grupo informado na linha de comando
su
useradd
userdel
usermod
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.
vigr
vipw
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
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
-I
-I
-I
-I
-I
-I
'\033(K'
'\033(K'
'\033(K'
'\033(K'
'\033(K'
'\033(K'
tty1
tty2
tty3
tty4
tty5
tty6
9600
9600
9600
9600
9600
9600
# End /etc/inittab
EOF
A opo -I '\033(K' diz ao agetty para enviar esta seqncia de escape ao terminal antes de fazer qualquer
outra coisa. Esta seqncia do escape modifica o conjunto de caracteres do console para que se ajuste ao
definido pelo usurio, que pode ser modificado pelo programa setfont. O script de inicializao console do
pacote LFS-Bootscripts chama o programa setfont durante a inicializao do sistema. Emitir esta seqncia de
escape necessrio para quem usa fontes de tela no-ISO 8859-1, mas no afeta os usurios do ingls nativo.
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
init
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
killall5
Envia um sinal a todos os processos, exceto aos processos na sua prpria seo a fim de no
matar o shell que o iniciou
last
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
lastb
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
mesg
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
mountpoint
pidof
poweroff
Ele desativa e desliga o computador (quando usando uma BIOS com APM e o APM est
habilitado no kernel) (veja halt)
reboot
runlevel
shutdown
sulogin
Permite um login como root; invocado pelo init quando o sistema entra em modo
monousurio
telinit
Envia os sinais apropriados ao init, dizendo a ele qual nvel de execuo entrar
utmpdump
wall
Envia uma mensagem aos usurios logados que possuem sua permisso mesg configurada
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
Usado por programas de backup remoto para manipular um drive de fita magntica atravs de uma
conexo interprocessada
tar
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
Um servio do sistema (daemon) que reordena eventos hotplug antes de submeter ao udev,
evitando assim sadas mltiplas
udevsend
udevstart
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
udevtest
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)
/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
Abre uma porta tty, pede um nome de login e invoca o comando login
arch
blockdev
Permite chamar dispositivos de controle de I/O de bloco (block device ioctls) na linha de
comando
cal
cfdisk
chkdupexe
col
colcrt
colrm
column
ctrlaltdel
cytune
ddate
dmesg
elvtune
Permite a voc ajustar o elevador I/O com base na fila de dispositivos de blocos.
fdformat
fdisk
fsck.cramfs
fsck.minix
getopt
hexdump
hwclock
ipcrm
ipcs
isosize
line
Copia uma linha (at a nova-linha) da entrada padro e a escreve na sada padro
logger
look
losetup
mcookie
mkfs
mkfs.bfs
mkfs.cramfs
mkfs.minix
mkswap
more
mount
namei
pg
pivot_root
ramsize
raw
rdev
Exibe e configura o dispositivo raiz de uma imagem, dispositivo swap, disco RAM, ou modo
de vdeo
readprofile
rename
Renomeia arquivos
renice
rev
rootflags
script
setfdprm
setsid
setterm
sfdisk
swapdev
swapoff
swapon
tunelp
ul
Um filtro que l um arquivo e traduz ocorrncias de underscores para a seqncia que indica
sublinhado no terminal em uso
umount
vidmode
whereis
write
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
Verifica a integridade dos sistemas de arquivos antes que sejam montados (exceto os
sistemas de arquivos baseados em journal e rede).
cleanfs
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
console
Carrega a tabela correta do keymap para o layout de teclado desejado; ajusta tambm a fonte
de tela
functions
Contm as funes comuns, como as de verificao de erro e status, que so usadas por
diversos scripts
halt
Desliga o sistema
hotplug
ifdown
ifup
localnet
mountfs
Monta todos os sistemas de arquivos, exceto os que esto definidos como noauto e os
baseados em rede
mountkernfs
network
Configura as interfaces de rede, como a placa de rede, e define o gateway padro (onde
aplicvel).
220
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
reboot
Reinicializa o sistema
sendsignals
Certifica-se que cada processo est terminado antes que o sistema reinicialize ou desligue
setclock
Ajusta o relgio do kernel para a hora local quando o relgio do hardware no est ajustado
com a hora UTC
static
swap
sysklogd
template
Um modelo para criar scripts de inicializao padronizados para outros servios do sistema
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.
Architecture (ALSA) do mdulo de compatibilidade Open Sound System (OSS). Estes tipos de dispositivos
podem ser manipulados de duas maneiras:
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.
A Userspace Implementation of
devfs
http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf
udev FAQ
http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ
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
Classificao correta dos caracteres em letras, em dgitos e em outras classes. Isto necessrio para o bash
para aceitar corretamente caracteres de no-ASCII em linhas de comando em locales no-Ingleses
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
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
Networks
10.0.0.0
172.16.0.0 through 172.31.0.255
192.168.0.0 through 192.168.255.255
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
mount-point
/dev/[xxx]
/
/dev/[yyy]
swap
proc
/proc
sysfs
/sys
devpts
/dev/pts
shm
/dev/shm
# End /etc/fstab
EOF
type
options
dump
fsck
order
[fff]
swap
proc
sysfs
devpts
tmpfs
defaults
pri=1
defaults
defaults
gid=4,mode=620
defaults
1
0
0
0
0
0
1
0
0
0
0
0
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
keymap] > \
Por
exemplo,
se
voc
usando
um
/usr/share/kbd/keymaps/i386/qwerty/nl.map.gz.
teclado
holands,
use
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
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
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
$LFS/dev/pts
$LFS/dev/shm
$LFS/dev
$LFS/proc
$LFS/sys
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.
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.
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.
250
ALFS
ALSA
API
ASCII
BIOS
BLFS
BSD
chroot
change root
CMOS
COS
Class Of Service
CPU
CRC
CVS
DHCP
DNS
EGA
ELF
EOF
End of File
EQN
equation
EVMS
ext2
FAQ
FHS
FIFO
FQDN
FTP
GB
Gibabytes
GCC
GID
Group Identifier
GMT
GPG
HTML
IDE
IEEE
IO
Input/Output
IP
Internet Protocol
IPC
Inter-Process Communication
IRC
ISO
ISP
KB
Kilobytes
LED
LFS
LSB
MB
Megabytes
MBR
MD5
Message Digest 5
NIC
NLS
NNTP
NPTL
OSS
PCH
PCRE
PID
PLFS
PTY
pseudo terminal
QA
Quality Assurance
QOS
RAM
RPC
RTC
SBU
SCO
SGR
SHA1
Secure-Hash Algorithm 1
SMP
Symmetric Multi-Processor
TLDP
TFTP
Protocolo de transferncia de arquivos triviais (do ingls, Trivial File Transfer Protocol)
TLS
Thread-Local Storage
UID
umask
USB
UTC
UUID
VC
VGA
VT
254
Appendix B. Agradecimentos
Ns gostaramos de agradecer as pessoas e organizaes a seguir pelo contribuio ao projeto Linux From
Scratch.
Manuel Canales Esparcia <manuel@linuxfromscratch.org> Mantedor do LFS, BLFS, HLFS XML e XSL
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
Mantedores de Espelhos
Espelhos na Amrica do Norte
Espelhos na Europa
Espelhos na sia
Espelhos na Austrlia
Hagen Herrschaft <hrx@hrxnet.de> por doar um sistema P4 de 2.2 GHz, agora rodando sob o nome Lorien
VA Software que, atravs do Linux.com, doou uma estao de trabalho VA Linux 420 (conhecida como
StartX SP2)
257
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
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
Programs
a2p: 164 , 164
acinstall: 170 , 170
aclocal: 170 , 170
aclocal-1.9.5: 170 , 170
258
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
Scripts
/etc/hotplug/*.agent: 189 , 190
/etc/hotplug/*.rc: 189 , 190
checkfs: 220 , 220
cleanfs: 220 , 220
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
266