Linux From Sratch
 Gerard Beekmans

 Version 2.2, 3 avril 2000

 Ce document d�crit comment cr�er de toute pi�ce un syst�me Linux �
 partir des sources des applications et d'une distribution d�j�
 install�e.

 ______________________________________________________________________

 Table des mati�res






















































 1. Introduction

    1.1 De quoi s'agit-il ?
    1.2 Mises � jour
    1.3 Historique de ce document
    1.4 Listes de diffusion
       1.4.1 Inscription
       1.4.2 R�silier une inscription
    1.5 Contact

 2. Conventions utilis�es dans ce document

    2.1 A propos de $LFS
    2.2 Comment t�l�charger les applications
    2.3 Comment installer les applications

 3. Les paquetages que vous devez t�l�charger

    3.1 Applications indispensables
    3.2 Applications facultatives

 4. Pr�parer le nouveau syst�me

    4.1 Comment allons-nous proc�der
    4.2 Cr�er une nouvelle partition
    4.3 Cr�er un syst�me de fichiers
    4.4 Monter la nouvelle partition
    4.5 Cr�er les r�pertoire
    4.6 Copier le r�pertoire

 5. Rendre le syst�me LFS amor�able

    5.1 Installer Sysvinit
    5.2 Configurer Sysvinit
    5.3 Cr�er les fichiers passwd et group
    5.4 Installer le shell Bash
    5.5 Ajouter une entr�e � LILO
    5.6 Tester le syst�me

 6. Installer un noyau

    6.1 Remarque au sujet de ftp.kernel.org
    6.2 Configurer le noyau
    6.3 Mettre � jour LILO
    6.4 Tester le syst�me

 7. Installer les applications de base

    7.1 A propos des symboles de d�bogage
    7.2 Pr�parer le syst�me LFS pour installer les applications de base
       7.2.1 Installer Binutils
       7.2.2 Installer Bzip2
       7.2.3 Installer Diffutils
       7.2.4 Installer Fileutils
       7.2.5 Installer GCC sur le syst�me normal si n�cessaire
       7.2.6 Installer GCC sur le syst�me LFS
          7.2.6.1 Cr�ation des liens symboliques n�cessaires
       7.2.7 Installer Glibc
          7.2.7.1 Copier les anciens fichiers de la biblioth�que NSS
       7.2.8 Installer grep
       7.2.9 Installer gzip
       7.2.10 Installer Make
       7.2.11 Installer Sed
       7.2.12 Installer Sh-utils
       7.2.13 Installer Tar
       7.2.14 Installer Textutils
       7.2.15 Installer Util-linux
    7.3 Installer les applications de base
       7.3.1 Remonter la partition et activer le swap
       7.3.2 Installer GCC
       7.3.3 Installer Bison
       7.3.4 Installer Mawk
       7.3.5 Installer Findutils
       7.3.6 Installer Termcap
       7.3.7 Installer Ncurses
       7.3.8 Installer Less
       7.3.9 Installer Perl
       7.3.10 Installer M4
       7.3.11 Installer Texinfo
       7.3.12 Installer Autoconf
       7.3.13 Installer Automake
       7.3.14 Installer Bash
       7.3.15 Installer Flex
       7.3.16 Installer Binutils
       7.3.17 Installer Bzip2
       7.3.18 Installer Diffutils
       7.3.19 Installer E2fsprogs
       7.3.20 Installer File
       7.3.21 Installer Fileutils
       7.3.22 Installer Grep
       7.3.23 Installer Groff
       7.3.24 Installer Gzip
       7.3.25 Installer Ld.so
       7.3.26 Installer Libtool
       7.3.27 Installer Linux86
       7.3.28 Installer Lilo
       7.3.29 Installer Make
       7.3.30 Installer Sh-Utils
       7.3.31 Installer Shadow Password Suite
       7.3.32 Installer Man
       7.3.33 Installer Modutils
       7.3.34 Installer Procinfo
       7.3.35 Installer Procps
       7.3.36 Installer Psmisc
       7.3.37 Installer Sed
       7.3.38 Installer le d�mon start-stop
       7.3.39 Installer Sysklogd
       7.3.40 Installer Sysvinit
       7.3.41 Install Tar
       7.3.42 Installer Textutils
       7.3.43 Installer Vim
       7.3.44 Installer Util-linux
    7.4 Suppression des anciens fichiers de la biblioth�que NSS
    7.5 Configurer les applications
       7.5.1 Configurer Glib
       7.5.2 Configurer LILO
       7.5.3 Configurer Sysklogd
       7.5.4 Configurer Shadow Password Suite
       7.5.5 Configurer Sysvinit
       7.5.6 Cr�er le fichier

 8. Cr�ez les scripts de d�marrage du syst�me

    8.1 Pr�parer les r�pertoires et les fichiers principaux
    8.2 Cr�er le script de red�marrage
    8.3 Cr�er le script d'arr�t
    8.4 Cr�er le script
    8.5 Cr�er le script
    8.6 Cr�er le script
    8.7 Cr�er le script de d�marrage
    8.8 Cr�er le script de d�marrage
    8.9 Cr�er les liens symboliques et fixer les permissions
    8.10 Cr�er le fichier

 9. Configurer la base du r�seau

    9.1 Installer Netkit-base
    9.2 Installer Net-tools
       9.2.1 Cr�er le script de d�marrage
       9.2.2 Param�trer les permissions et les liens symboliques
       9.2.3 Cr�er le fichier
       9.2.4 Cr�ez le fichier
       9.2.5 Cr�er le fichier
       9.2.6 Param�trer les permissions et liens symboliques pour
       9.2.7 Tester la configuration du r�seau
    9.3 Tester le syst�me

 10. Installer les d�mons r�seau

    10.1 Configurer SMTP
       10.1.1 Cr�er les groupes et utilisateurs
       10.1.2 Cr�er les r�pertoires
       10.1.3 Installer Sendmail
       10.1.4 Configuring Sendmail
       10.1.5 Installer Procmail
       10.1.6 Cr�er le script de d�marrage
       10.1.7 Param�trer les permissions et liens symboliques
    10.2 Configurer FTP
       10.2.1 Cr�er les groupes et utilisateurs
       10.2.2 Installer Proftpd
       10.2.3 Cr�er le script de d�marrage
       10.2.4 Param�trer les permissions et les liens symboliques
    10.3 Configurer HTTP
       10.3.1 Installer Apache
       10.3.2 Configurer Apache
       10.3.3 Cr�er le script de d�marrage
       10.3.4 Param�trer les permissions et liens symboliques
    10.4 Configurer Telnet
       10.4.1 Installer le d�mon et le client telnet
       10.4.2 Cr�er le fichier de configuration
       10.4.3 Cr�er le script de d�marrage
       10.4.4 Param�trer les permissions et liens symboliques
    10.5 Configurer PPP
       10.5.1 Configurer le noyau
       10.5.2 Cr�er le groupe
       10.5.3 Installer PPP
       10.5.4 Cr�er le fichier
       10.5.5 Cr�er le fichier
       10.5.6 Cr�er le fichier
       10.5.7 Remarque concernant l'authentification des mots de passe

 11. Installer les clients r�seau

    11.1 Installer les clients Email
       11.1.1 Installer Mailx
       11.1.2 Installer Mutt
       11.1.3 Installer Fetchmail
       11.1.4 Tester le syst�me email
    11.2 Installer le client FTP
       11.2.1 Installer Netkit-ftp
       11.2.2 Tester le syst�me FTP
    11.3 Installer le client HTTP
       11.3.1 Installer Zlib
       11.3.2 Installer Lynx
       11.3.3 Tester le syst�me HTTP
    11.4 Installer le client Telnet
       11.4.1 Tester le syst�me Telnet
    11.5 Installer les clients PPP
       11.5.1 Cr�er le script de connexion
       11.5.2 Cr�er le script de d�connexion
       11.5.3 Tester le syst�me PPP

 12. Installer le syst�me X Window

    12.1 Installer X
    12.2 Cr�er
    12.3 Cr�er le lien symbolique
    12.4 Cr�er le lien symbolique
    12.5 Ajouter
    12.6 Configurer X
    12.7 Tester X
    12.8 Installer Window Maker
    12.9 Pr�parer le syst�me pour l'installation de Window Maker
       12.9.1 Installer libPropList
       12.9.2 Installer libXpm
       12.9.3 Installer libpng
       12.9.4 Installer libtiff
       12.9.5 Installer libjpeg
       12.9.6 Installer libungif
       12.9.7 Installer WindowMaker
    12.10 Mettre � jour le cache du chargeur dynamique
    12.11 Configurer Window Maker
    12.12 Tester Window Maker

 13. Ressources

    13.1 Livres
    13.2 HOWTOs
    13.3 Autre

 14. La Fin

 15. Copyright & information de licence



 ______________________________________________________________________

 11..  IInnttrroodduuccttiioonn

 11..11..  DDee qquuooii ss''aaggiitt--iill ??

 J'ai utilis� de nombreuses distributions Linux diff�rentes, toutefois
 aucune d'elles ne m'a jamais vraiment satisfait. Parfois l'agencement
 des scripts de d�marrage ne me convenait pas, parfois la configuration
 par d�faut des programmes n'�tait pas � mon go�t. J'en suis venu �
 penser que je ne serai jamais compl�tement satisfait par un syst�me
 Linux tant que je n'en construirais pas un moi-m�me. L'id�al �tait de
 partir uniquement des fichiers sources de chaque application et donc
 de n'utiliser aucun paquetage pr�construit ni disquette ou CDROM
 installant un syst�me de base.

 A premi�re vue, cette id�e semblait saugrenue, voire presque
 irr�alisable.  La plupart des probl�mes qui freinaient ma progression
 venaient de mon manque de connaissances au sujet de certains
 programmes et m�canismes. Ainsi apr�s avoir rencontr� et r�solu tous
 les probl�mes li�s � la d�pendance, � la compilation, etc, je parvins
 � mettre en place un syst�me Linux op�rationnel. J'ai nomm� alors ce
 syst�me LFS, qui signifie en anglais Linux From Scratch (NDT :
 approximativement "Linux de Z�ro").

 En pratique, nous mettrons en place ce syst�me id�al � partir d'une
 distribution Linux d�j� en place .

 11..22..  MMiisseess �� jjoouurr

 La derni�re version anglaise de ce document est disponible � tout
 moment � l'adresse :

 http://www.linuxfromscratch.org

 11..33..  HHiissttoorriiqquuee ddee ccee ddooccuummeenntt

 2.1.5 - 26 mars 2000

 Il ne s'agit pas d'une liste exhaustive des modifications. Comme la
 version 2.0 est une mise � jour majeure, seuls les changements majeurs
 sont mentionn�s.



 �  Modification de la structure de l'arborescence - LFS est conforme �
    la norme FHS. Peut-�tre pas � 100%.

 �  Nouvelle m�thode d'installation de la Glibc

 �  Nouvelle m�thode d'installation de GCC

 �  Suppression de l'utilisation de paquetages pr�construits Debian.

 �  M�thode d'installation des applications compl�tement r�vis�e -
    �limination de la n�cessit� d'utiliser des paquetages li�s
    statiquement dans le chapitre 6.1.

 �  Divers bogues corrig�s concernant l'installation des applications

 �  Quelques programmes suppl�mentaires du paquetage util-linux
    install�s

 �  Ajout de l'installation du programme Bzip2

 �  Explications plus d�taill�es concernant $LFS - ce qu'il faut et ce
    qu'il ne faut pas faire.

 �  Proc�dure d'installation simplifi�e pour tous les paquetages des
    chapitres 5 � 9.1

 �  Installation de la Glibc et de GCC, poss�dant jusqu'� pr�sent leur
    propre chapitre, incluse dans le chapitre 7.

 �  Chapitre concernant les serveurs Internet modifi� : cr�ation de
    deux chapitres : D�mons R�seau et Clients R�seau. Le chapitre
    concernant Internet a �t� partag� entre ceux-ci.

 �  Echange des chapitres 13 et 14 (X et Internet) et concat�nation des
    chapitres concernant X et WindowMaker.

 �  Un nouveau programme Man est utilis�. Il est plus facile �
    manipuler et � configurer que le man-db utilis� pr�c�demment. Les
    deux versions r�alisent sensiblement le m�me travail.

 �  Ajout du chapitre 13 : les ressources. Ce chapitre contient les
    r�f�rences de nombreux livres et HOWTOs qui vous seront utilis�s au
    cours ou au terme de la construction du syst�me LFS.

 �  Chapitre 3 : lien bzip2 corrig�

 �  Chapitre 7.2.42 : m�thode d'installation d'Util-Linux simplifi�e.


 �  Chapitre 3.1 : emplacement de procps modifi�

 �  Chapitre 7.2 : �change de l'installation de Vim et d'Util-Linux
    (car nous avons besoin d'un �diteur de textes pour installer Util-
    Linux)

 �  Chapitre 7.3.33: installation de procps corrig�e

 �  Chapitre 5.2: fichier inittab modifi� de mani�re � ce que le
    syst�me ne signale plus de fichiers manquants au d�marrage de la
    machine.

 �  Chapitre 6: r��criture de l'installation du noyau

 �  Chapitre 10.3: Script de d�marrage d'Apache modifi�

 �  Chapitre 10.3.2: section concernant la modification du fichier
    httpd.conf supprim�e. Elle n'est plus n�cessaire. Ajout des
    fichiers de /usr/apache/man dans le fichier
    /usr/share/misc/man.conf.

 �  Chapitre 11.1: Correction du fichier Makefile du paquetage mailx
    afin de simplifier la proc�dure d'installation.

 �  Chapitre 11.3.1: Ajout de l'option --shared lors de l'ex�cution de
    configure afin que la Zlib soit install�e comme une biblioth�que
    dynamique plut�t que statique.

 �  Chapitre 11.6: Lynx li� � la biblioth�que Ncurses plut�t que Slang.

 �  Chapitre 12: Le fichier man_db.config de la nouvelle application
    man-db contient toujours le r�pertoire X11/man.

 2.2 - 3 avril 2000


 �  Les domaines linuxfromscratch.org et linuxfromscratch.com sont
    op�rationnels.  Tous les liens vers huizen.dds.nl/glb et
    tts.ookhio.dds.nl ont �t� remplac�s par les liens appropri�s vers
    www.linuxfromscratch.org.

 �  Apr�s le red�marrage de la machine au chapitre 7.3, la partition
    swap est activ�e avant de commencer � compiler les applications.

 11..44..  LLiisstteess ddee ddiiffffuussiioonn

 Il existe deux listes auxquelles vous pouvez vous inscrire : lfs-
 discuss et lfs-announce. La premi�re est une liste publique non
 mod�r�e concernant tout ce qui a trait � ce document. La seconde est
 une liste publique mod�r�e.  Tout le monde peut s'y inscrire mais
 personne ne peut y poster de message, � l'exception des mod�rateurs.
 Cette liste est principalement d�di�e aux annonces de nouvelles
 versions de ce document.

 Si vous �tes inscrits � la liste de diffusion lfs-discuss, vous n'avez
 pas besoin de vous inscrire � lfs-announce. En effet, tout ce qui est
 envoy� sur la liste lfs-announce est �galement envoy� sur lfs-discuss.

 11..44..11..  IInnssccrriippttiioonn

 Pour vous inscrire � une liste, envoyez un email, dont le corps
 contient soit _s_u_b_s_c_r_i_b_e _l_f_s_-_d_i_s_c_u_s_s, soit _s_u_b_s_c_r_i_b_e _l_f_s_-_a_n_n_o_u_n_c_e_, �
 mailto:[email protected]

 Majordomo vous enverra une demande de confirmation. Celle-ci
 contiendra un code d'authentification et la marche � suivre pour
 poursuivre la demande d'inscription. Une fois que vous aurez r�pondu �
 ce mail, vous serez alors inscrit � la liste.

 11..44..22..  RR��ssiilliieerr uunnee iinnssccrriippttiioonn

 Pour r�silier votre inscription � une liste, envoyez un email, dont le
 corps contient soit _u_n_s_u_b_s_c_r_i_b_e _l_f_s_-_d_i_s_c_u_s_s soit _u_n_s_u_b_s_c_r_i_b_e _l_f_s_-
 _a_n_n_o_u_n_c_e � l'adresse suivante : mailto:[email protected]

 11..55..  CCoonnttaacctt

 Envoyez de pr�f�rence toutes vos questions � la liste de diffusion. Si
 vous avez besoin de me contacter personnellement, envoyez un mail �
 l'adresse suivante : mailto:[email protected]

 22..  CCoonnvveennttiioonnss uuttiilliiss��eess ddaannss ccee ddooccuummeenntt

 22..11..  AA pprrooppooss ddee $$LLFFSS

 Lisez ce qui suit attentivement : tout au long de ce document, vous
 rencontrerez fr�quemment des r�f�rences � une variable dont le nom est
 $LFS. Celle-ci doit �tre syst�matiquement remplac�e par le point de
 montage de la partition sur laquelle vous cr�ez votre syst�me LFS. La
 fa�on de cr�er et de monter cette partition sera expliqu�e en d�tail
 au chapitre 4. Dans mon cas, j'utilise le r�pertoire /mnt/hda5 comme
 point de montage pour la partition LFS. Ainsi toutes les occurrences
 de $LFS de ce document sont � remplacer par /mnt/hda5.  Donc si je lis
 la commande : cp inittab $LFS/etc, je taperai en r�alit� cp inittab
 /mnt/hda5/etc

 Vous devez effectuer cette substitution quel que soit l'endroit o�
 vous rencontrez $LFS, que ce soit dans une commande, ou dans un
 fichier que vous devez cr�er ou �diter.

 Il existe une deuxi�me m�thode qui consiste � d�finir la variable
 d'environnement $LFS. De cette mani�re, vous tapez les commandes
 comportant une r�f�rence � $LFS telles quelles et le shell proc�dera �
 la substitution lui-m�me. Pour d�finir $LFS, utilisez la commande :
 export LFS=/mnt/hda5

 Dans ce cas, vous saisissez sans modification la commande cp inittab
 $LFS/etc rencontr�e dans ce document et le shell ex�cutera en r�alit�
 cp inittab /mnt/hda5/etc .

 Si vous utilisez cette m�thode, il est tr�s important que la variable
 d'environnement $LFS soit toujours d�clar�e. Si ce n'est pas le cas,
 les occurrences de $LFS pr�sentes dans les commandes que vous taperez
 seront ignor�es et le reste sera ex�cut�. Ainsi la commande cp inittab
 $LFS/etc sera traduite par le shell en cp inittab /etc avec pour
 cons�quence d'�craser le fichier inittab de votre syst�me Linux. Un
 fichier comme inittab n'est pas tr�s difficile � reconstruire, mais
 imaginez ce qui se passera si $LFS n'est pas d�fini au cours de
 l'installation de la biblioth�que C. Vous endommagerez gravement votre
 syst�me et � moins que vous ne soyez un expert Linux, vous serez
 oblig� de tout r�installer. Je vous conseille donc d'utiliser la
 m�thode de substitution manuelle. Ainsi au pire, si vous vous trompez
 en saisissant le nom du point de montage de votre partition LFS, le
 syst�me renverra une erreur du type "_n_o _s_u_c_h _f_i_l_e _o_r _d_i_r_e_c_t_o_r_y" sans
 aucun dommage pour votre syst�me. Ne dites pas que je ne vous ai pas
 pr�venu ;-)

 22..22..  CCoommmmeenntt tt��ll��cchhaarrggeerr lleess aapppplliiccaattiioonnss

 Tout au long de ce document, je supposerai que vous avez enregistr�
 tous les paquetages que vous avez t�l�charg� dans un sous-r�pertoire
 de $LFS/usr/src.
 J'utilise par convention le r�pertoire $LFS/usr/src/sources. "sources"
 contient les r�pertoires 0 � 9 et a � z. Ainsi le paquetage
 Sysvinit-2.78.tar.gz est sauvegard� dans $LFS/usr/sources/s/ , tandis
 que bash-3.02.tar.gz se trouve dans $LFS/usr/src/sources/b/ . Vous
 n'�tes pas oblig� de suivre ce mod�le, ce n'est qu'un exemple. Il est
 par contre pr�f�rable de ne pas conserver de paquetages dans
 $LFS/usr/src car ce r�pertoire servira � d�compresser les archives au
 fur et � mesure que nous en aurons besoin.

 Le prochain chapitre contient la liste des paquetages que vous devez
 t�l�charger.  A ce point du document, la partition destin�e � recevoir
 le syst�me LFS n'existe pas. Vous devez donc sauvegarder ces
 paquetages dans un endroit temporaire et vous rappelez de les copier
 de cet endroit vers $LFS/usr/src/<r�pertoiredevotrechoix> au terme du
 chapitre 4.

 22..33..  CCoommmmeenntt iinnssttaalllleerr lleess aapppplliiccaattiioonnss

 Avant de pouvoir faire quelque chose des paquetages, vous devez les
 d�sarchiver.  G�n�ralement, il s'agit d'archives au format tar/gz
 (l'extension est soit .tar.gz soit .tgz) ou au format tar/bz
 (extension .tar.bz2). Le compresseur Bzip2 est un peu plus efficace
 que gzip mais n'est pas toujours install� par d�faut.  Ainsi si vous
 t�l�chargez des archives au format bz, v�rifiez que Bzip2 est
 disponible sur votre syst�me. Je n'expliquerai qu'une seule fois, dans
 ce paragraphe, comment d�sarchiver les paquetages, aussi lisez
 attentivement ce qui suit.



 �  Commencez par _c_o_p_i_e_r les paquetages depuis l'emplacement o� vous
    les avez enregistr�s vers le r�pertoire $LFS/usr/src.

 �  Si l'archive est au format tar/gz, d�sarchivez-la gr�ce � la
    commande : tar xvfz filename.tar.gz; rm filename.tar.gz ou tar xvfz
    filename.tgz; rm filename.tgz

 �  S'il s'agit d'une archive tar/bz2, utilisez la commande : tar
    --use-compress-prog=bzip2 -xvf filename.tar.bz2; rm
    filename.tar.bz2

 �  Enfin si l'archive est au format tar (pas de compression), utilisez
    la commande : tar xvf filename.tar; rm filename.tar

 Remarquez que nous effa�ons le paquetage juste apr�s l'avoir
 d�sarchiv� car nous n'en avons plus besoin. C'est pourquoi vous devez
 _c_o_p_i_e_r l'archive et non la d�placer. Si vous la d�placez, la
 d�sarchivez et l'effacez, vous devrez la t�l�charger � nouveau lorsque
 vous en aurez besoin.

 Lorsque le paquetage est d�sarchiv�, un nouveau r�pertoire est cr��
 dans le r�pertoire actif ($LFS/usr/src si vous suivez ce document � la
 lettre).  Vous devez vous positionner dans ce r�pertoire avant de
 poursuivre l'installation.  Finalement tout ce qui pr�c�de peut se
 r�sumer � "D�sarchivez xxx". Ainsi lorsque vous lirez cette phrase,
 copiez l'archive dans $LFS/usr/src, d�sarchivez-la gr�ce � la commande
 tar et positionnez-vous dans le r�pertoire cr��. Ensuite vous pouvez
 continuer � suivre les instructions.

 Apr�s avoir install� un paquetage, vous pouvez en faire deux choses.
 Soit vous effacez le r�pertoire qui contient ses sources, soit vous le
 conservez.  Quelle que soit votre d�cision, je ne m'en porterai pas
 plus mal. Toutefois si vous avez besoin de r�utiliser un paquetage
 plus tard dans le document (tous les logiciels du chapitre 7.2 seront
 r�install�s dans le chapitre 7.3), vous devez d'abord effacer le
 r�pertoire et d�sarchiver � nouveau l'archive. Si vous ne le faites
 pas, vous pourriez avoir quelques probl�mes inh�rents aux param�tres
 utilis�s lors de la pr�c�dente compilation. Ceux-ci s'appliquaient �
 votre syst�me Linux normal mais pas au syst�me LFS. M�me un simple
 make clean ne suffit pas � nettoyer totalement les sources de
 l'arborescence. Le script configure g�n�re �galement des fichiers
 r�partis dans divers sous-r�pertoires et ces fichiers sont rarement
 effac�s au cours de l'ex�cution de make clean.

 33..  LLeess ppaaqquueettaaggeess qquuee vvoouuss ddeevveezz tt��ll��cchhaarrggeerr

 Vous trouverez ci-dessous la liste des paquetages que vous devez
 absolument t�l�charger pour mener � bien la m�thode expos�e dans ce
 document et obtenir un syst�me LFS op�rationnel. J'ai �galement
 indiqu� les serveurs sur lesquels ils sont disponibles, mais c'est �
 vous de vous assurer que vous t�l�chargez bien la derni�re version des
 applications. Les versions indiqu�es dans la liste correspondent �
 celles utilis�es dans ce document et ont donc �t� test�es.  Ainsi si
 vous rencontrez le moindre probl�me que vous ne pouvez r�soudre avec
 les archives que vous avez r�cup�r�es, t�l�chargez la version indiqu�e
 dans ce document (dans le cas o� vous avez t�l�charg� une version plus
 r�cente).

 33..11..  AApppplliiccaattiioonnss iinnddiissppeennssaabblleess

 Sysvinit (2.78) : ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/

 Bash (2.03) : ftp://ftp.gnu.org/gnu/bash/

 Linux Kernel (2.2.14) : ftp://ftp.kernel.org/pub/linux/kernel/

 Binutils (2.9.1) : ftp://ftp.gnu.org/gnu/binutils/

 Bzip2 (0.9.5d) : http://sourceware.cygnus.com/bzip2/

 Diff Utils (2.7) : ftp://ftp.gnu.org/gnu/diffutils/

 File Utils (4.0) : ftp://ftp.gnu.org/gnu/fileutils/

 GCC (2.95.2) : ftp://ftp.gnu.org/gnu/gcc/

 Glibc (2.1.3) : ftp://ftp.gnu.org/gnu/glibc/

 Glibc-crypt (2.1.2) : ftp://ftp.gwdg.de/pub/linux/glibc/

 Glibc-linuxthreads (2.1.3) : ftp://ftp.gnu.org/gnu/glibc/

 Grep (2.4) : ftp://ftp.gnu.org/gnu/grep/

 Gzip (1.2.4) : ftp://ftp.gnu.org/gnu/gzip/

 Make (3.78.1) : ftp://ftp.gnu.org/gnu/make/

 Sed (3.02) : ftp://ftp.gnu.org/gnu/sed/

 Shell Utils (2.0) : ftp://ftp.gnu.org/gnu/sh-utils/

 Tar (1.13) : ftp://ftp.gnu.org/gnu/tar/

 Text Utils (2.0) : ftp://ftp.gnu.org/gnu/textutils/

 Util Linux (2.10f) : ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/

 Bison (1.28) : ftp://ftp.gnu.org/gnu/bison/

 Mawk (1.3.3) : ftp://ftp.whidbey.net/pub/brennan/

 Find Utils (4.1) : ftp://ftp.gnu.org/gnu/findutils/

 Ncurses (5.0) : ftp://ftp.gnu.org/gnu/ncurses/

 Less (340) : ftp://ftp.gnu.org/gnu/less/

 Perl (5.005_03) : ftp://ftp.gnu.org/gnu/perl/

 M4 (1.4) : ftp://ftp.gnu.org/gnu/m4/

 Texinfo (4.0) : ftp://ftp.gnu.org/gnu/texinfo/

 Autoconf (2.13) : ftp://ftp.gnu.org/gnu/autoconf/

 Automake (1.4) : ftp://ftp.gnu.org/gnu/automake/

 Flex (2.5.4a) : ftp://ftp.gnu.org/gnu/flex/

 E2fsprogs (1.18) : ftp://tsx-11.mit.edu/pub/linux/packages/ext2fs/

 File (3.26) :
 http://www.linuxfromscratch.org/download/file-3.26-lfs.tar.gz

 Groff (1.15) : ftp://ftp.gnu.org/gnu/groff/

 Ld.so (1.9.9) : ftp://tsx-11.mit.edu/pub/linux/packages/GCC/

 Libtool (1.3.4) : ftp://ftp.gnu.org/gnu/libtool/

 Linux86 (0.14.3) :
 http://www.linuxfromscratch.org/download/linux86-0.14.3-lfs.tar.gz

 Lilo (21) : ftp://sunsite.unc.edu/pub/Linux/system/boot/lilo/

 Shadow Password Suite (19990827) :
 ftp://piast.t19.ds.pwr.wroc.pl/pub/linux/shadow/

 Man (1.5h1) : ftp://ftp.win.tue.nl/pub/linux-local/utils/man/

 Modutils (2.3.9) : ftp://ftp.ocs.com.au/pub/modutils/

 Termcap (1.3) : ftp://ftp.gnu.org/gnu/termcap/

 Procinfo (17) : ftp://ftp.cistron.nl/pub/people/svm/

 Procps (2.0.6) : ftp://people.redhat.com/johnsonm/procps/

 Psmisc (19) : ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/

 Start-stop-daemon (0.4.1) :
 http://www.linuxfromscratch.org/download/ssd-0.4.1-lfs.tar.gz

 Sysklogd (1.3.31) : ftp://sunsite.unc.edu/pub/Linux/system/daemons/

 Vim (5.6) : ftp://ftp.vim.org/pub/editors/vim/unix/

 33..22..  AApppplliiccaattiioonnss ffaaccuullttaattiivveess

 Toutes les applications list�es ci-dessous, trait�es � partir du
 chapitre 13, ne sont pas indispensables. C'est � vous de d�terminer
 les paquetages dont vous avez besoin. Par exemple, si vous souhaitez
 pouvoir acc�der � Internet par le biais du syst�me LFS, vous devez
 installer les utilitaires concernant le courrier �lectronique, le web,
 etc.


 Netkit-base (0.17) :
 ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/

 Net-tools (1.54) : http://www.tazenda.demon.co.uk/phil/net-tools/

 Procmail (3.14) : ftp://ftp.procmail.org/pub/procmail/

 Sendmail (8.9.3) : ftp://ftp.sendmail.org/pub/sendmail/

 Mailx (8.1.1) :
 http://www.linuxfromscratch.org/download/mailx-8.1.1-fixed.tar.gz

 Mutt (1.0i) : ftp://ftp.mutt.org/pub/mutt/

 Fetchmail (5.2.0) : http://www.tuxedo.org/~esr/fetchmail/

 Netkit-telnet (0.17) :
 ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/

 Proftpd (1.2.0pre9) : ftp://ftp.tos.net/pub/proftpd/

 Netkit-ftp (0.17) :
 ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/

 Apache (1.3.11) : http://www.apache.org/dist/

 Zlib Library (1.1.3) : http://www.cdrom.com/pub/infozip/zlib/

 Lynx (2.8.2) : http://www.slcc.edu/lynx/release/

 PPP (2.3.11) : ftp://cs.anu.edu.au/pub/software/ppp/

 Xfree86 (3.3.5) : ftp://ftp.xfree86.org/pub/XFree86/

 libPropList (0.9.1) : ftp://ftp.windowmaker.org/pub/libs/

 libXpm (4.7) : ftp://sunsite.unc.edu/pub/Linux/libs/X/

 libpng (1.0.3) : http://www.cdrom.com/pub/png/

 libtiff (3.4) : ftp://ftp.sgi.com/graphics/tiff/

 libjpeg (6b) : http://www.ijg.org/

 libungif (4.1.0) : ftp://prtr-13.ucsc.edu/pub/libungif/

 WindowMaker (0.61.1) : ftp://ftp.windowmaker.org/pub/release/

 44..  PPrr��ppaarreerr llee nnoouuvveeaauu ssyysstt��mmee

 44..11..  CCoommmmeenntt aalllloonnss--nnoouuss pprroocc��ddeerr

 Nous allons construire le syst�me LFS en utilisant une distribution
 Linux d�j� en place, comme par exemple Debian, SuSE, Slackware,
 Mandrake, RedHat, etc. Vous n'avez pas besoin de disquette de
 d�marrage particuli�re. Nous utiliserons tous les outils du syst�me
 d�j� en place (compilateur, �diteur de liens, �diteur de textes et
 quelques autres).

 Si vous ne disposez pas d'un syst�me d�j� en place, vous ne pourrez
 pas utiliser la m�thode d�crite dans ce document. Il est donc dans ce
 cas indispensable que vous en installiez un, peu importe la
 distribution, tant qu'elle n'est pas trop vieille. Je pense que toute
 distribution �g�e d'au maximum un an devrait convenir. Par ailleurs,
 vous vous �viterez pas mal de soucis si cette distribution est bas�e
 sur glibc-2.0 ou mieux. Je n'ai pas pris en compte les syst�mes bas�s
 sur Libc5 puisque je n'ai pas eu l'occasion d'en utiliser un.

 44..22..  CCrr��eerr uunnee nnoouuvveellllee ppaarrttiittiioonn

 Pour construire notre nouveau syst�me Linux, nous avons besoin d'une
 partition Linux vide. Pr�voyez un minimum de 500 Mo, cela devrait
 suffire. Vous pouvez �ventuellement utiliser une partition de 250 Mo,
 si vous souhaitez construire un syst�me Linux simple (sans syst�me X
 Window ou outils d�di�s � la navigation sur Internet). Si vous
 disposez d�j� d'une partition Linux Native vide, vous pouvez passer
 cette sous-section.

 D�marrez le programme fdisk (ou tout partitionneur de votre choix, du
 moment qu'il autorise la cr�ation de partitions Linux) en indiquant le
 disque dur sur lequel vous souhaitez cr�er la nouvelle partition Linux
 (par exemple fdisk /dev/hda si la nouvelle partition doit �tre cr��e
 sur le disque dur ma�tre du premier contr�leur IDE). Cr�ez une
 partition Linux Native, mettez � jour la table de partition et quittez
 fdisk. Si un message vous indique de red�marrer l'ordinateur afin
 d'�tre s�r que la table de partition est mise � jour, faites-le.
 Notez le nom de la nouvelle partition (par exemple hda5) car vous en
 aurez besoin plus tard. Cette partition sera appel�e _p_a_r_t_i_t_i_o_n _L_F_S
 dans la suite du document.

 44..33..  CCrr��eerr uunn ssyysstt��mmee ddee ffiicchhiieerrss eexxtt22  ssuurr llaa nnoouuvveellllee ppaarrttiittiioonn

 Une fois que la partition est cr��e, nous devons y installer un
 syst�me de fichiers ext2. Pour ce faire, utilisez la commande mke2fs.
 Indiquez le nom de la nouvelle partition comme unique option et le
 syst�me de fichiers sera cr��. Ainsi si la partition porte le nom
 hda5, utilisez la commande mke2fs /dev/hda5.

 44..44..  MMoonntteerr llaa nnoouuvveellllee ppaarrttiittiioonn

 Une fois que le syst�me de fichiers est cr��, il est pr�t � �tre
 utilis�.  Tout ce qu'il vous reste � faire pour le rendre accessible
 est de le monter.  En reprenant notre exemple pr�c�dent, si vous
 montez la partition sous /mnt/hda5, vous pouvez vous positionner dans
 ce r�pertoire et faire ce que vous voulez.  Je supposerai par la suite
 que vous avez mont� la partition LFS dans un sous-r�pertoire de /mnt.
 Vous avez pu constater que, par convention, je monte mes partitions
 dans des r�pertoires portant le nom de cette partition (hda5 mont�
 sous /mnt/hda5).  Libre � vous de faire comme bon vous semble, voire
 d'utiliser le r�pertoire /mnt.

 Voici en r�sum� la m�thode pour monter la partition LFS :


 �  Cr��z le r�pertoire /mnt s'il n'existe pas encore

 �  Cr��z le r�pertoire /mnt/xxx o� xxx est � remplacer par le nom de
    la partition LFS.

 �  Montez la partition LFS en lan�ant : mount /dev/xxx /mnt/xxx o� xxx
    est � remplacer par le nom de la partition LFS.

 Ce r�pertoire (/mnt/xxx) correspond � la variable $LFS expliqu�e plus
 haut. Je vous rappelle donc que si vous lisez "cp inittab $LFS/etc",
 en r�alit� vous devez taper "cp inittab /mnt/xxx/etc" o� xxx est �
 remplacer par le nom de la partition LFS.

 44..55..  CCrr��eerr lleess rr��ppeerrttooiirree

 Cr�ez l'arborescence de base, au standard FHS, du syst�me LFS. Si vous
 souhaitez plus d'informations sur le standard FHS, consultez le site
 http://www.pathname.com/fhs/. Tapez les commandes suivantes :
 cd $LFS
 mkdir bin boot dev etc home lib mnt proc root sbin tmp usr var
 cd $LFS/usr
 mkdir bin include lib sbin share src
 ln -s share/man man
 ln -s share/doc doc
 ln -s . local
 ln -s ../etc etc
 ln -s ../var var
 cd $LFS/usr/share
 mkdir dict doc info locale man nls misc terminfo zoneinfo
 cd $LFS/usr/share/man
 mkdir man1 man2 man3 man4 man5 man6 man7 man8
 cd $LFS/var
 mkdir lock log run spool tmp




 Maintenant que les r�pertoires sont cr��s, copiez les archives
 t�l�charg�es au chapitre 3 dans un sous-r�pertoire de $LFS/usr/src
 (vous devez cr�er ce sous-r�pertoire vous-m�me).

 44..66..  CCooppiieerr llee rr��ppeerrttooiirree //ddeevv

 Nous pourrions utiliser la commande mknod pour cr�er les fichiers du
 r�pertoire $LFS/dev, mais cela prend du temps. C'est pourquoi je vous
 conseille de simplement recopier le r�pertoire /dev vers la partition
 $LFS. Pour ce faire, utilisez la commande suivante, tous les droits et
 liens symboliques originaux seront conserv�s.


 cp -av /dev $LFS
 chown root.root $LFS/dev/*




 55..  RReennddrree llee ssyysstt��mmee LLFFSS aammoorr��aabbllee

 55..11..  IInnssttaalllleerr SSyyssvviinniitt

 Normalement, lorsque le noyau a termin� de se charger et d'initialiser
 divers composants syst�mes, il tente de charger un programme appel�
 init qui terminera le processus de d�marrage. Le paquetage utilis� sur
 la majorit� sinon tous les syst�mes Linux est Sysvinit et c'est
 justement lui que nous utilisons pour notre syst�me LFS.


 �  D�sarchivez Sysvinit

 �  Positionnez-vous dans le r�pertoire src

 �  Editez le fichier Makefile

 �  Quelque part dans ce fichier, mais avant la r�gle "all", ajoutez
    cette ligne : _R_O_O_T _= _$_L_F_S

 �  Pr�fixez toutes les occurrences /dev des quatre derni�res lignes
    par _$_(_R_O_O_T_)

 Apr�s avoir fait cela, les quatre derni�res lignes du fichier doivent
 ressembler � :



    @if [! -p $(ROOT)/dev/initctl ]; then \
    echo "Creating $(ROOT)/dev/initctl";  \
    rm -f $(ROOT)/dev/initctl;  \
    mknod -m 600 $(ROOT)/dev/initctl p; fi





 �  Installez le paquetage en ex�cutant :


 make -e LDFLAGS=-static; make install




 55..22..  CCoonnffiigguurreerr SSyyssvviinniitt

 Pour que Sysvinit fonctionne, vous devez cr�er un fichier de
 configuration appropri�. Cr�ez le fichier $LFS/etc/inittab contenant :


 # Begin /etc/inittab

 id:2:initdefault:

 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

 1:2345:respawn:/sbin/sulogin

 # End /etc/inittab




 55..33..  CCrr��eerr lleess ffiicchhiieerrss ppaasssswwdd eett ggrroouupp

 Comme vous pouvez le voir dans le fichier inittab, lorsque nous
 amor�ons le syst�me, init d�marre le programme sulogin qui vous
 demandera le mot de passe root. Cela signifie que nous avons besoin de
 cr�er un fichier de mots de passe sur le syst�me LFS.


 �  Cr�ez le fichier $LFS/etc/passwd contenant:
    _r_o_o_t_:_s_3_9_4_u_l_1_B_k_v_m_q_2_:_0_:_0_:_r_o_o_t_:_/_r_o_o_t_:_/_b_i_n_/_b_a_s_h

 �  Cr�ez le fichier $LFS/etc/group contenant: _r_o_o_t_:_:_0_:

 Le mot de passe encod� dans le fichier passwd est: _l_f_s_1_2_3

 Lorsque le syst�me vous demandera le mot de passe root, c'est celui-ci
 que vous devez entrer.

 55..44..  IInnssttaalllleerr llee sshheellll BBaasshh

 Apr�s que sulogin ait valid� le mot de passe root, il tentera de
 lancer un interpr�teur de commandes (plus simplement appel� _s_h_e_l_l),
 g�n�ralement Bash.  Nous devons donc le compiler. Mais comme aucune
 biblioth�que n'est encore disponible sur le syst�me, nous devons le
 lier statiquement, ainsi que nous avons proc�d� pour Sysvinit.


 �  D�sarchivez Bash


 �  Installez Bash en lan�ant:


 ./configure --enable-static-link
 make; make -e prefix=$LFS/usr install
 mv $LFS/usr/bin/bash $LFS/bin
 cd $LFS/bin; ln -s bash sh




 55..55..  AAjjoouutteerr uunnee eennttrr��ee �� LLIILLOO

 Afin de pouvoir d�marrer le syst�me LFS, nous devons mettre � jour le
 fichier/etc/lilo.conf. Ajoutez-y les lignes suivantes :


 image=<image du noyau courant>
    label=<label>
    root=$LFS
    read-only




 Remplacez <image du noyau courant> par le nom du fichier contenant
 l'image du noyau utilis� par votre syst�me. Vous pouvez remplacer
 <label> par ce que bon vous semble. Pour ma part, j'utilise comme
 label "lfs". Ce label correspond � ce que vous devez taper au
 d�marrage de la machine lorsque LILO vous demande le syst�me que vous
 souhaitez d�marrer.

 Maintenant lancez lilo afin de mettre � jour l'amorceur du syst�me.

 55..66..  TTeesstteerr llee ssyysstt��mmee

 Apr�s avoir effectu� les op�rations pr�c�dentes, vous pouvez v�rifier
 s'il est possible de se connecter au syst�me LFS en red�marrant la
 machine. N'oubliez pas � l'affichage de LILO de taper le label que
 vous avez choisi plus haut.  Si tout se d�roule correctement, sulogin
 vous demandera le mot de passe root.  Saisissez-le. Vous devriez alors
 vous retrouver sous le shell. Remarquez que vous ne pourrez pas
 arr�ter le syst�me par l'interm�diaire de la commande shutdown.  Bien
 que ce programme soit pr�sent, il vous renverra comme erreur "You
 don't exist. Go away" si vous essayez de l'ex�cuter. Cela signifie que
 le syst�me est incapable de localiser le fichier des mots de passe
 (/etc/passwd). Sulogin, bien que statiquement li�, d�pend quand m�me
 de la biblioth�que NSS (Name Server Switch) qui fait partie de la
 biblioth�que C que nous installerons ult�rieurement.  La biblioth�que
 NSS est utilis�e dans ce cas pour indiquer � sulogin o� se trouve le
 fichier de mots de passe.

 Pour le moment, vous pouvez red�marrer le syst�me en utilisant reboot
 -f . Cette commande outrepassera le red�marrage du syst�me normalement
 op�r� par shutdown et red�marrera instantan�ment. Comme le syst�me de
 fichiers est mont� en lecture seule, cette op�ration n'endommagera
 rien. Par contre vous pourriez �tre inform� au prochain d�marrage que
 le syst�me de fichiers n'a pas �t� correctement d�mont� et qu'il faut
 lancer e2fsck pour v�rifier s'il n'y a pas de probl�me.

 66..  IInnssttaalllleerr uunn nnooyyaauu

 66..11..  RReemmaarrqquuee aauu ssuujjeett ddee ffttpp..kkeerrnneell..oorrgg

 A la section 2, j'ai indiqu� que vous pouviez t�l�charger un noyau
 depuis ftp://ftp.kernel.org/ . Toutefois ce site est souvent charg� et
 ses administrateurs vous encouragent � utiliser un miroir pr�s de chez
 vous. Dans ce cas, l'adresse est du type ftp://ftp.<code
 pays>.kernel.org/ (par exemple ftp.fr.kernel.org).

 66..22..  CCoonnffiigguurreerr llee nnooyyaauu


 �  Renommez le r�pertoire /usr/src/linux (m�me s'il s'agit d'un lien
    symbolique) en utilisant mv /usr/src/linux /usr/src/linux-old

 �  Effacez les liens /usr/include/linux et /usr/include/asm gr�ce � la
    commande rm -r /usr/include/linux /usr/include/asm

 �  D�sarchivez les sources du noyau dans le r�pertoire /usr/src/ (un
    r�pertoire /usr/src/linux sera cr��)

 �  Cr�ez les liens symboliques /usr/include/linux et /usr/include/asm
    en ex�cutant :


 cd /usr/include
 ln -s ../src/linux/include/linux linux
 ln -s ../src/linux/include/asm-<cpu> asm




 Regardez dans le r�pertoire /usr/src/linux/include quels sont les
 sous-r�pertoires asm-* pr�sents. Choisissez celui qui correspond �
 votre plateforme. Par exemple s'il s'agit d'un PC Intel, vous lancerez
 la commande ln -s ../src/linux/include/asm-i386 asm


 �  Choisissez une m�thode pour configurer le noyau (consultez le
    fichier README pour plus d�tails concernant la m�thode de
    configuration) et assurez-vous de ne rien configurer en module pour
    le moment car nous ne disposerons pas des applications n�cessaires
    pour charger des modules avant un bout de temps.

 �  Apr�s en avoir termin� avec la configuration du noyau, lancez make
    dep


 �  Compilez-le gr�ce � la commande make bzImage

 �  Copiez le fichier arch/<cpu>/boot/bzImage dans /boot (ou �
    l'endroit utilis� par votre syst�me Linux pour enregistrer les
    images noyau)

 �  Vous pouvez �ventuellement renommer le fichier /boot/bzImage en
    quelque chose comme /boot/lfskernel

 �  Copiez l'arborescence compl�te des sources du noyau sur la
    partition LFS gr�ce � la commande : cp -av /usr/src/linux
    $LFS/usr/src

 �  Cr�ez les liens symboliques $LFS/usr/include/linux et
    $LFS/usr/include/asm en tapant :


 cd $LFS/usr/include
 ln -s ../src/linux/include/linux linux
 ln -s ../src/linux/include/asm asm



 66..33..  MMeettttrree �� jjoouurr LLIILLOO


 �  Editez le fichier /etc/lilo.conf et rendez-vous � la section LFS

 �  Remplacez le nom de l'image du noyau par lfskernel (ou tout autre
    nom que vous lui avez donn�)

 �  Lancez lilo pour mettre � jour l'amorceur.

 66..44..  TTeesstteerr llee ssyysstt��mmee

 Red�marrez votre syst�me sous LFS. V�rifiez que le nouveau noyau
 n'effectue aucune op�ration anormale (comme un crash).

 77..  IInnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee

 Dans ce chapitre, nous installerons toutes les applications qui
 constituent un syst�me Linux de base. Au terme de ce chapitre vous
 disposerez d'un syst�me Linux pleinement op�rationnel. Les chapitres
 suivants traitent de sujets facultatifs comme par exemple la
 configuration du r�seau, des serveurs et clients Internet (telnet,
 ftp, http, email) et du syst�me X Window. Vous �tes libre d'ignorer
 autant de chapitres qu'il vous plaira. Ainsi si vous ne souhaitez pas
 vous connecter � Internet, vous n'aurez que peut d'int�r�t � consulter
 le chapitre d�di�.

 Il y a un certain nombre de paquetages que vous devez imp�rativement
 installer avant de pouvoir mettre en place les applications de base.
 En effet un script typique aura besoin de programmes comme rm, grep,
 sed, mv, cat, cp, diff. Vous devez �galement pouvoir d�compresser des
 archives, compiler et �diter les liens des applications. Tous les
 outils correspondants doivent �tre install�s avant toute chose. Ils
 seront de plus li�s statiquement. En effet votre syst�me Linux utilise
 peut-�tre une version de biblioth�que C diff�rente de celle qui sera
 utilis�e par le syst�me LFS. Or les applications que vous allez
 installer dans cette section seraient th�oriquement li�es avec la
 biblioth�que C de votre syst�me normal. Ceci pourrait engendrer des
 conflits de biblioth�que si vous ex�cutez ces applications sous le
 syst�me LFS. C'est pourquoi nous devons les lier statiquement dans un
 premier temps. Puis au cours de la mise en place du syst�me LFS nous
 lierons � nouveau ces applications avec la biblioth�que C utilis�e par
 le syst�me LFS.

 77..11..  AA pprrooppooss ddeess ssyymmbboolleess ddee dd��bbooggaaggee

 Par d�faut, chaque programme et biblioth�que est compil� avec les
 symboles de d�bogage. Cela signifie que vous pouvez ex�cuter ce
 programme ou cette biblioth�que par l'interm�diaire d'un d�bogueur et
 que ce dernier produira une sortie de l'ex�cution plus compr�hensible.
 Toutefois ces symboles de d�bogage augmentent la taille du fichier
 produit de mani�re significative. Par convention, tous les logiciels
 install�s dans ce document incluront ces symboles (puisque je ne sais
 pas si la majorit� des lecteurs fait ou non du d�bogage). Libre � vous
 de supprimer par la suite les symboles de d�bogage en utilisant le
 programme strip de la mani�re suivante : strip --strip-debug
 nomdufichier (le fichier doit �tre au format elf ou a.out). Vous
 pouvez utiliser des jokers si vous souhaitez traiter plusieurs
 fichiers d'un coup (exemple : strip --strip-debug $LFS/usr/bin/*).

 Si vous vous demandez l'influence des symboles de d�bogage sur la
 taille des fichiers, voici quelques statistiques :


 �  Binaire Bash statique avec symboles de d�bogage : 2.3MB

 �  Binaire Bash statique sans symbole de d�bogage : 645KB

 �  Binaire Bash dynamique avec symboles de d�bogage : 1.2MB

 �  Binaire Bash dynamique sans symbole de d�bogage : 478KB

 �  $LFS/usr/lib (fichiers glibc and gcc) avec symboles de d�bogage :
    87MB

 �  $LFS/usr/lib (fichiers glibc and gcc) sans symbole de d�bogage :
    16MB

 Ces tailles sont donn�es � titre indicatif et d�pendent grandement du
 compilateur et de la version de biblioth�que C utilis�s, mais au final
 les r�sultats avec ou sans symboles de d�bogage seront comparables.
 Pour ma part, au terme de ce chapitre et apr�s avoir supprim� les
 symboles de d�bogage des fichiers ex�cutables et biblioth�ques, j'ai
 r�cup�r� environ 102 Mo d'espace disque. Diff�rence remarquable. Mais
 elle sera encore plus grande en r�alisant cette op�ration au terme du
 document.

 77..22..  PPrr��ppaarreerr llee ssyysstt��mmee LLFFSS ppoouurr iinnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee

 77..22..11..  IInnssttaalllleerr BBiinnuuttiillss


 �  D�sarchivez binutils

 �  Installez le paquetage en tapant :


 ./configure
 make -e LDFLAGS=-all-static
 make -e prefix=$LFS/usr install




 77..22..22..  IInnssttaalllleerr BBzziipp22


 �  D�sarchivez Bzip2

 �  Editez le fichier Makefile

 �  Trouvez les lignes commen�ant par : $(CC) $(CFLAGS) -o

 �  Remplacez-les par: $(CC) $(CFLAGS) $(LDFLAGS) -o

 �  Installez le paquetage en lan�ant:


 make -e LDFLAGS=-static
 make -e PREFIX=$LFS/usr install
 cd $LFS/usr/bin
 mv bunzip2 bzip2 $LFS/bin




 77..22..33..  IInnssttaalllleerr DDiiffffuuttiillss


 �  D�sarchivez diffutils


 �  Installez le paquetage en lan�ant:


 ./configure
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install




 Ce paquetage peut causer des erreurs relatives � l'�dition statique
 des liens sur certaines plateformes. Si c'est votre cas, vous pouvez
 t�l�charger une version corrig�e du paquetage � l'adresse :
 http://www.linuxfromscratch.org/download/diffutils-2.7-fixed.tar.gz

 77..22..44..  IInnssttaalllleerr FFiilleeuuttiillss


 �  D�sarchivez fileutils

 �  Installer le paquetage en lan�ant :


 ./configure --disable-nls
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install
 cd $LFS/usr/bin
 mv chgrp chmod chown cp dd df ln ls mkdir mknod mv rm rmdir sync $LFS/bin




 77..22..55..  IInnssttaalllleerr GGCCCC ssuurr llee ssyysstt��mmee nnoorrmmaall ssii nn��cceessssaaiirree

 Afin de compiler Glibc-2.1.3, le compilateur gcc-2.95.2 doit �tre
 install� sur le syst�me Linux normal. Remarquez que n'importe quelle
 version sup�rieure ou �gale � 2.8 fera l'affaire. N�anmoins de
 nombreux syst�mes bas�s sur glibc-2.0 disposent de gcc-2.7.2.3. Celui-
 ci n'est pas apte � compiler et ne doit pas �tre utilis� pour compiler
 glibc-2.1. L'installation de la version 2.95.2 de gcc sur le syst�me
 normal n'�crasera pas la version d�j� en place. Avant de proc�der �
 cette installation, assurez-vous que vous en avez r�ellement besoin.
 V�rifiez le num�ro de version de votre compilateur au moyen de la
 commande gcc --version.  S'il est sup�rieur ou �gal � 2.8, tout va
 bien, vous n'avez pas besoin de faire la moindre mise � jour. Cela
 dit, si vous rencontrez des probl�mes lors de la compilation de glibc,
 n'h�sitez pas � installer gcc-2.95.2


 �  D�sarchivez GCC

 �  Installez le paquetage en lan�ant:


 mkdir $LFS/usr/src/gcc-build; cd $LFS/usr/src/gcc-build
 ../gcc-2.95.2/configure --prefix=/usr/gcc2952  \
 --with-local-prefix=/usr/gcc2952 --with-gxx-include-dir=/usr/gcc2952/include/g++  \
 --enable-shared --enable-languages=c,c++
 make bootstrap; make install







 77..22..66..  IInnssttaalllleerr GGCCCC ssuurr llee ssyysstt��mmee LLFFSS


 �  D�sarchivez GCC

 �  Installez le paquetage en lan�ant:


 mkdir $LFS/usr/src/gcc-build;cd $LFS/usr/src/gcc-build
 ../gcc-2.95.2/configure --enable-languages=c --disable-nls
 make -e LDFLAGS=-static bootstrap
 make -e prefix=$LFS/usr local_prefix=$LFS/usr install




 77..22..66..11..  CCrr��aattiioonn ddeess lliieennss ssyymmbboolliiqquueess nn��cceessssaaiirreess

 Il est n�cessaire de cr�er quelques liens symboliques afin que chaque
 application puisse trouver le compilateur et le pr�processeur. Ainsi
 certains programmes lancent le programme cc, d'autres gcc, certains
 programmes supposent que cpp est dans /lib (c'est-�-dire /usr/lib sur
 notre syst�me LFS) et d'autres, dans /usr/bin.


 �  Cr�ez les liens symboliques suivants gr�ce aux commandes:


 cd $LFS/lib; ln -s ../usr/lib/gcc-lib/<host>/2.95.2/cpp cpp
 cd $LFS/usr/lib; ln -s gcc-lib/<host>/2.95.2/cpp cpp
 cd $LFS/usr/bin; ln -s gcc cc




 Remplacez <host> par le r�pertoire o� r�side gcc-2.95.2 (i686-unknown-
 linux dans mon cas). G�n�ralement, vous trouverez deux r�pertoires
 diff�rents.

 77..22..77..  IInnssttaalllleerr GGlliibbcc

 Remarque concernant le paquetage glibc-crypt:


 -*-*-*-*-*-
 Glibc-crypt n'est pas inclus dans la distribution principale
  de la biblioth�que GNU C du fait de restrictions gouvernementales, principalement
  en France, Russie et Etats-Unis, concernant la diffusion et l'utilisation de
  logiciels de cryptage. Consultez la note "Legal Problems" du manuel pour plus
  d'informations.
 En particulier, les Etats-Unis interdisent l'exportation de ce logiciel
  sans licence, m�me par Internet. Ainsi ne le t�l�chargez pas sur le site FTP
  principal de la FSF (ftp.gnu.org) si vous r�sidez � l'ext�rieur des Etats-Unis.
  Ce logiciel a �t� compl�tement d�velopp� � l'ext�rieur des Etats-Unis.-*-*-*-*-*-




 "Ce logiciel" fait r�f�rence au paquetage glibc-crypt disponible sur
 ftp://ftp.gwdg.de/pub/linux/glibc.  Cette loi n'affecte que les
 personnes ne r�sidant pas aux Etats-Unis. Il n'est pas interdit
 d'importer des logiciels bas�s sur DES, donc si vous r�sidez aux
 Etats-Unis, vous �tes libre de l'importer depuis ce site allemand.



 �  D�sarchivez Glibc

 �  Copiez les archives glibc-crypt et glibc-linuxthreads dans le
    r�pertoire cr�� au cours du d�sarchivage de Glibc

 �  D�compressez ces archives depuis ce point mais ne vous positionnez
    pas dans les r�pertoires cr��s par cette nouvelle d�compression.
    Contentez-vous de d�compresser ces archives.

 �  Cr�ez un nouveau fichier configparms contenant:


 # Begin configparms
 slibdir=/lib
 sysconfdir=/etc
 # End configparms





 �  Si votre syst�me Linux normal dispose d'une version de gcc apte �
    compiler glibc, installez ce paquetage en lan�ant :


 mkdir $LFS/usr/src/glibc-build;cd $LFS/usr/src/glibc-build
 ../glibc-2.1.3/configure --enable-add-ons
 make; make install_root=$LFS install





 �  Si votre syst�me Linux normal ne dispose pas d'une version de gcc
    apte � compiler glibc et que vous avez install� gcc-2.95.2 pour ce
    faire, proc�dez comme suit:


 mkdir $LFS/usr/src/glibc-build; cd $LFS/usr/src/glibc-build
 CC=/usr/gcc2952/bin/gcc ../glibc-2.1.3/configure --enable-add-ons
 make; make install_root=$LFS install




 77..22..77..11..  CCooppiieerr lleess aanncciieennss ffiicchhiieerrss ddee llaa bbiibblliiootthh��qquuee NNSSSS

 Si votre syst�me Linux normal est bas� sur glibc-2.0.x, vous devez
 copier les fichiers de la biblioth�que NSS sur le syst�me LFS.
 Quelques programmes li�s statiquement ont besoin de cette
 biblioth�que, notamment ceux recherchant les noms, identifiants et
 groupes des utilisateurs. Vous pouvez v�rifier quelle est la version
 de biblioth�que C utilise gr�ce � la commande : ls -l libc.so.*

 Votre syst�me est bas� sur glibc-2.0 si l'affichage produit ressemble
 � : /lib/libc.so.6 -> libc-2.0.7.so

 Votre syst�me est bas� sur glibc-2.1 si l'affichage produit ressemble
 � : /lib/libc.so.6 -> libc-2.1.2.so

 Si vous avez un fichier libc-2.0.x.so (o� x est le num�ro de micro
 version comme par exemple 7), copiez les fichiers de la biblioth�que
 NSS gr�ce � la commande : cp -av /lib/*nss* $LFS/lib



 77..22..88..  IInnssttaalllleerr ggrreepp


 �  D�sarchivez grep

 �  Installez le paquetage en lan�ant:


 ./configure --disable-nls
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install




 Ce paquetage peut causer des erreurs relatives � l'�dition statique
 des liens sur certaines plateformes. Si c'est votre cas, vous pouvez
 t�l�charger une version corrig�e du paquetage � l'adresse :
 http://www.linuxfromscratch.org/download/grep-2.4-fixed.tar.gz

 77..22..99..  IInnssttaalllleerr ggzziipp


 �  D�sarchivez gzip

 �  Installez le paquetage en lan�ant:


 ./configure
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install
 cd $LFS/usr/bin
 mv gunzip gzip $LFS/bin




 Ce paquetage peut causer des erreurs de compilation sur certaines
 plateformes. Si c'est votre cas, vous pouvez t�l�charger une version
 corrig�e du paquetage � l'adresse :
 http://www.linuxfromscratch.org/download/gzip-1.2.4-fixed.tar.gz

 77..22..1100..  IInnssttaalllleerr MMaakkee


 �  D�sarchivez Make

 �  Installez le paquetage en lan�ant:


 ./configure
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install




 77..22..1111..  IInnssttaalllleerr SSeedd


 �  D�sarchivez sed

 �  Installez le paquetage en lan�ant:



 ./configure
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install
 mv $LFS/usr/bin/sed $LFS/bin




 Ce paquetage peut causer des erreurs relatives � l'�dition statique
 des liens sur certaines plateformes. Si c'est votre cas, vous pouvez
 t�l�charger une version corrig�e du paquetage � l'adresse :
 http://www.linuxfromscratch.org/download/sed-3.02-fixed.tar.gz

 77..22..1122..  IInnssttaalllleerr SShh--uuttiillss


 �  D�sarchivez sh-utils

 �  Installez le paquetage en lan�ant:


 ./configure --disable-nls
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install
 cd $LFS/usr/bin
 mv date echo false pwd stty su true uname hostname $LFS/bin




 77..22..1133..  IInnssttaalllleerr TTaarr


 �  D�sarchivez tar

 �  Installez le paquetage en lan�ant:


 ./configure --disable-nls
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install
 mv $LFS/usr/bin/tar $LFS/bin




 77..22..1144..  IInnssttaalllleerr TTeexxttuuttiillss


 �  D�sarchivez textutils

 �  Installez le paquetage en lan�ant:


 ./configure --disable-nls
 make -e LDFLAGS=-static
 make -e prefix=$LFS/usr install
 mv $LFS/usr/bin/cat $LFS/bin




 77..22..1155..  IInnssttaalllleerr UUttiill--lliinnuuxx



 �  D�sarchivez util-linux

 �  Installez le paquetage en lan�ant:


 ./configure
 cd lib;make
 cd ../mount;make -e LDFLAGS=-static
 cp mount umount $LFS/bin
 cp swapon $LFS/sbin




 77..33..  IInnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee

 L'installation de toutes les applications est franchement r�p�titive
 et vous pensez peut-�tre qu'il serait plus simple de donner un mode
 d'emploi g�n�rique et d'ajouter quelques explications concernant les
 paquetages qui ne suivraient pas ce mode d'emploi. Bien que je sois
 d'accord avec vous sur ce point, j'ai d�lib�r�ment choisi d'�crire le
 mode d'emploi pour chaque paquetage.  Cela permet d'�viter toute
 confusion ou erreur.

 Avant d'aller plus loin dans l'installation, vous devez d�marrer le
 syst�me LFS. Pour ce faire, vous devez d�terminer quelle partition est
 utilis�e comme swap par votre syst�me. Vous trouverez cette
 information dans le fichier /etc/fstab. La ligne concern�e ressemble �
 : _/_d_e_v_/_h_d_a_6 _n_o_n_e _s_w_a_p _s_w _0 _0 . Le quatri�me champ de la ligne doit
 contenir 'sw'. Cela indique qu'il s'agit de la partition de swap.
 Vous devez alors noter quelque part la d�signation de cette partition
 (comme par exemple /dev/hda6 dans notre cas). Lorsque vous avez
 d�termin� quelle partition est celle de swap, vous pouvez red�marrer
 la machine.

 77..33..11..  RReemmoonntteerr llaa ppaarrttiittiioonn eett aaccttiivveerr llee sswwaapp

 Avant d'�tre en mesure d'installer des applications suppl�mentaires
 depuis le syst�me LFS, vous devez remonter la partition en mode
 lecture/�criture.  Il est �galement n�cessaire d'activer la partition
 de swap de mani�re � �viter tout risque de saturation de m�moire au
 cours de compilations importantes (par exemple la compilation de gcc):


 mount -o remount,rw / /
 /sbin/swapon <swap device>




 77..33..22..  IInnssttaalllleerr GGCCCC


 �  D�sarchivez GCC et installez-le en tapant:


 mkdir $LFS/usr/src/gcc-build;cd $LFS/usr/src/gcc-build
 ../gcc-2.95.2/configure --with-gxx-include-dir=/usr/include/g++  \
 --enable-shared --enable-languages=c,c++
 make bootstrap; make install






 77..33..33..  IInnssttaalllleerr BBiissoonn


 �  D�sarchivez bison et installez-le en tapant:


 ./configure --datadir=/usr/share/bison
 make; make install




 77..33..44..  IInnssttaalllleerr MMaawwkk


 �  D�sarchivez mawk et installez-le en tapant:


 ./configure
 make; make install
 cd /usr/bin; ln -s mawk awk




 77..33..55..  IInnssttaalllleerr FFiinndduuttiillss


 �  D�sarchivez findutils et installez-le en tapant:


 ./configure
 make; make install





 Ce paquetage peut causer des erreurs de compilation sur certaines
 plateformes. Si c'est votre cas, vous pouvez t�l�charger une version
 corrig�e du paquetage � l'adresse :
 http://www.linuxfromscratch.org/download/findutils-4.1-fixed.tar.gz

 77..33..66..  IInnssttaalllleerr TTeerrmmccaapp


 �  D�sarchivez Termcap et installez-le en tapant:


 ./configure
 make; make install




 77..33..77..  IInnssttaalllleerr NNccuurrsseess


 �  D�sarchivez ncurses et installez-le en tapant:


 ./configure --with-shared
 make; make install



 77..33..88..  IInnssttaalllleerr LLeessss


 �  D�sarchivez Less et installez-le en tapant:


 ./configure
 make; make install
 mv /usr/bin/less /bin




 77..33..99..  IInnssttaalllleerr PPeerrll


 �  D�sarchivez Perl et installez-le en tapant:


 ./configure.gnu
 make; make install




 Remarquez que nous sautons l'�tape 'make test', car pour le moment le
 syst�me n'est pas en mesure de lancer le test de Perl. Nous faisons
 donc confiance � la compilation.

 77..33..1100..  IInnssttaalllleerr MM44


 �  D�sarchivez M4 et installez-le en tapant:


 ./configure
 make; make install




 77..33..1111..  IInnssttaalllleerr TTeexxiinnffoo


 �  D�sarchivez Texinfo et installez-le en tapant:


 ./configure
 make; make install




 77..33..1122..  IInnssttaalllleerr AAuuttooccoonnff


 �  D�sarchivez Autoconf et installez-le en tapant:


 ./configure
 make; make install





 77..33..1133..  IInnssttaalllleerr AAuuttoommaakkee


 �  D�sarchivez Automake et installez-le en tapant:


 ./configure
 make install




 77..33..1144..  IInnssttaalllleerr BBaasshh


 �  D�sarchivez Bash et installez-le en tapant:


 ./configure
 make; make install
 mv /usr/bin/bash /bin




 77..33..1155..  IInnssttaalllleerr FFlleexx


 �  D�sarchivez Flex et installez-le en tapant:


 ./configure
 make; make install




 77..33..1166..  IInnssttaalllleerr BBiinnuuttiillss


 �  D�sarchivez Binutils et installez-le en tapant:


 ./configure
 make; make install




 77..33..1177..  IInnssttaalllleerr BBzziipp22


 �  D�sarchivez Bzip2 et installez-le en tapant:


 make; make install
 cd /usr/bin; mv bunzip2 bzip2 /bin




 77..33..1188..  IInnssttaalllleerr DDiiffffuuttiillss


 �  D�sarchivez Diffutils et installez-le en tapant:

 ./configure
 make; make install




 77..33..1199..  IInnssttaalllleerr EE22ffsspprrooggss


 �  D�sarchivez E2fsprogs  et installez-le en tapant:


 ./configure
 make; make install
 mv /usr/sbin/mklost+found /sbin




 77..33..2200..  IInnssttaalllleerr FFiillee


 �  D�sarchivez File  et installez-le en tapant:


 ./configure
 make; make install




 77..33..2211..  IInnssttaalllleerr FFiilleeuuttiillss


 �  D�sarchivez Fileutils  et installez-le en tapant:


 ./configure
 make; make install
 cd /usr/bin
 mv chgrp chmod chown cp dd df ln ls mkdir mknod mv rm rmdir sync /bin




 77..33..2222..  IInnssttaalllleerr GGrreepp


 �  D�sarchivez Grep  et installez-le en tapant:


 ./configure
 make; make install




 77..33..2233..  IInnssttaalllleerr GGrrooffff


 �  D�sarchivez Groff  et installez-le en tapant:





 ./configure
 make; make install




 77..33..2244..  IInnssttaalllleerr GGzziipp


 �  D�sarchivez Gzip  et installez-le en tapant:


 ./configure
 make; make install
 cd /usr/bin; mv z* gunzip gzip /bin




 77..33..2255..  IInnssttaalllleerr LLdd..ssoo


 �  D�sarchivez Ld.so  et installez-le en tapant:


 cd util; make ldd ldconfig
 cp ldd /bin; cp ldconfig /sbin
 rm /usr/bin/ldd




 77..33..2266..  IInnssttaalllleerr LLiibbttooooll


 �  D�sarchivez Libtool  et installez-le en tapant:


 ./configure
 make; make install




 77..33..2277..  IInnssttaalllleerr LLiinnuuxx8866


 �  D�sarchivez Linux86  et installez-le en tapant:


 cd as
 make; make install
 cd ../ld
 make ld86; make install




 77..33..2288..  IInnssttaalllleerr LLiilloo


 �  D�sarchivez Lilo  et installez-le en tapant:




 make; make install




 77..33..2299..  IInnssttaalllleerr MMaakkee


 �  D�sarchivez Make  et installez-le en tapant:


 ./configure
 make; make install




 77..33..3300..  IInnssttaalllleerr SShh--UUttiillss


 �  D�sarchivez Sh-utils  et installez-le en tapant:


 ./configure
 make; make install
 cd /usr/bin
 mv date echo false pwd stty su true uname hostname /bin




 77..33..3311..  IInnssttaalllleerr SShhaaddooww PPaasssswwoorrdd SSuuiittee


 �  D�sarchivez Shadow  et installez-le en tapant:


 ./configure
 make; make install
 cd etc
 cp limits login.access login.defs.linux shells suauth /etc
 mv /etc/login.defs.linux /etc/login.defs
 cd /usr/sbin
 mv chpasswd dpasswd groupadd groupdel groupmod logoutd mkpasswd  \
 newusers useradd userdel usermod grpck pwck vipw grpconv grpunconv  \
 pwconv pwunconv /sbin




 77..33..3322..  IInnssttaalllleerr MMaann


 �  D�sarchivez Man  et installez-le en tapant:


 ./configure -default
 make all; make install




 77..33..3333..  IInnssttaalllleerr MMoodduuttiillss



 �  D�sarchivez Modutils  et installez-le en tapant:


 ./configure
 make; make install




 77..33..3344..  IInnssttaalllleerr PPrroocciinnffoo


 �  D�sarchivez Procinfo  et installez-le en tapant:


 make; make install




 77..33..3355..  IInnssttaalllleerr PPrrooccppss


 �  D�sarchivez Procps  et installez-le en tapant:


 gcc -O3 -Wall -Wno-unused -c watch.c
 make; make -e XSCPT="" install
 mv /usr/bin/kill /bin




 77..33..3366..  IInnssttaalllleerr PPssmmiisscc


 �  D�sarchivez Psmisc  et installez-le en tapant:


 make; make install




 77..33..3377..  IInnssttaalllleerr SSeedd


 �  D�sarchivez Sed  et installez-le en tapant:


 ./configure
 make; make install
 mv /usr/bin/sed /bin




 77..33..3388..  IInnssttaalllleerr llee dd��mmoonn ssttaarrtt--ssttoopp


 �  D�sarchivez start-stop-daemon  et installez-le en tapant:





 make start-stop-daemon
 cp start-stop-daemon /sbin
 cp start-stop-daemon.8 /usr/share/man/man8




 77..33..3399..  IInnssttaalllleerr SSyysskkllooggdd


 �  D�sarchivez Sysklogd  et installez-le en tapant:


 make; make install




 77..33..4400..  IInnssttaalllleerr SSyyssvviinniitt


 �  D�sarchivez Sysvinit  et installez-le en tapant:


 cd src
 make; make install




 77..33..4411..  IInnssttaallll TTaarr


 �  D�sarchivez Tar  et installez-le en tapant:


 ./configure
 make; make install
 mv /usr/bin/tar /bin




 77..33..4422..  IInnssttaalllleerr TTeexxttuuttiillss


 �  D�sarchivez Textutils  et installez-le en tapant:


 ./configure
 make; make install
 mv /usr/bin/cat /bin




 77..33..4433..  IInnssttaalllleerr VViimm


 �  D�compressez les archives Vim-rt et Vim-src et installez-les en
    tapant:





 ./configure
 make; make install




 77..33..4444..  IInnssttaalllleerr UUttiill--lliinnuuxx


 �  D�sarchivez le paquetage Util-linux

 �  Editez le fichier MCONFIG, cherchez et modifiez les variables
    suivantes comme indiqu� ci-dessous:


 HAVE_PASSWD=yes
 HAVE_SLN=yes
 HAVE_TSORT=yes





 �  Installez le paquetage en lan�ant :


 groupadd -g 5 tty
 ./configure
 make; make install




 77..44..  SSuupppprreessssiioonn ddeess aanncciieennss ffiicchhiieerrss ddee llaa bbiibblliiootthh��qquuee NNSSSS

 Si vous avez copi� les fichiers de la biblioth�que NSS de votre
 syst�me Linux normal vers le syst�me LFS (car votre syst�me normal
 utilise glibc-2.0), il est temps de les supprimer en tapant:


 rm /lib/libnss*.so.1 /lib/libnss*2.0*




 77..55..  CCoonnffiigguurreerr lleess aapppplliiccaattiioonnss

 Maintenant que toutes les applications sont install�es, vous devez en
 configurer certaines afin qu'elles fonctionnent correctement.

 77..55..11..  CCoonnffiigguurreerr GGlliibb

 Vous devez cr�er le fichier /etc/nsswitch.conf. Bien que glibc
 fournisse des valeurs par d�faut si ce fichier est absent ou corrompu,
 celles-ci sont incompatibles avec le fonctionnement r�seau du syst�me
 que nous aborderons plus tard. Par ailleurs, vous devez �galement
 r�gler le fuseau horaire. Voici donc comment proc�der :


 �  Cr�ez un nouveau fichier /etc/nsswitch.config contenant:






 # Begin /etc/nsswitch.conf
 passwd: files
 group: files
 shadow: files

 hosts: files dns
 networks: files

 protocols: db files
 services: db files
 ethers: db files
 rpc: db files

 netgroup: db files
 # End /etc/nsswitch.conf





 �  Lancez le script tzselect et r�pondez aux questions concernant
    votre fuseau horaire.

 �  Lorsque vous avez termin�, le programme vous fournit l'emplacement
    d'un fichier dont vous aurez besoin ci-dessous.

 �  Cr�ez un lien symbolique pour l'heure locale en lan�ant : ln -s
    /usr/share/zoneinfo/<emplacement donn� par tzselect> /etc/localtime

 La sortie de tzselect ressemble � "EST5EDT" ou "Canada/Eastern". Le
 lien symbolique que vous devez cr�er avec cette information sera dans
 ce cas : ln -s /usr/share/zoneinfo/EST5EDT /etc/localtime ou ln -s
 /usr/share/zoneinfo/Canada/Eastern /etc/localtime

 77..55..22..  CCoonnffiigguurreerr LLIILLOO

 Il n'est pas n�cessaire de cr�er le fichier de configuration de lilo
 de toute pi�ce. Utilisez plut�t le fichier de votre syst�me Linux
 normal. Ce fichier est diff�rent pour chaque machine et je ne peux
 donc pas vous donner de mod�le.  Comme il n'y a aucune raison de
 modifier la configuration LILO actuelle de votre syst�me, contentez-
 vous de copier le fichier original sans le modifier.


 �  Cr�ez le r�pertoire /mnt/original

 �  Montez votre syst�me Linux normal sur ce point de montage en
    lan�ant mount /dev/xxx /mnt/original (remplacez /dev/xxx par le nom
    de la partition Linux normale).

 �  Copiez le fichier de configuration de lilo ainsi que les images de
    noyau qu'il utilise :


 cp /mnt/original/etc/lilo.conf /etc
 cp /mnt/original/boot/* /boot




 Si votre syst�me Linux normal ne sauvegarde pas les images des noyaux
 dans le r�pertoire /mnt/original/boot, cherchez alors dans le fichier
 lilo.conf l'emplacement ad�quat et copiez les images dans le
 r�pertoire o� lilo s'attend � les trouver. Ainsi si lilo indique que
 le noyau se trouve dans /boot/kernel, vous devez copier le noyau
 contenu dans /mnt/original/boot/kernel vers /boot/kernel.  Vous pouvez
 �galement copier le noyau dans /boot et modifier le fichier lilo.conf
 pour tenir compte de ce changement. Ces deux m�thodes sont valables, �
 vous de choisir.

 77..55..33..  CCoonnffiigguurreerr SSyysskkllooggdd


 �  Cr�ez le r�pertoire /var/log gr�ce � : mkdir /var/log

 �  Cr�ez le fichier /etc/syslog.conf contenant :


 # Begin /etc/syslog.conf

 auth,authpriv.* -/var/log/auth.log
 *.*;auth,authpriv.none -/var/log/sys.log
 daemon.* -/var/log/daemon.log
 kern.* -/var/log/kern.log
 mail.* -/var/log/mail.log
 user.* -/var/log/user.log
 *.emerg *

 # End /etc/syslog.conf




 77..55..44..  CCoonnffiigguurreerr SShhaaddooww PPaasssswwoorrdd SSuuiittee

 Ce paquetage contient notamment les utilitaires n�cessaires pour
 modifier les mots de passe des utilisateurs et ajouter ou supprimer de
 nouveaux groupes et utilisateurs.  Je n'expliquerai pas ce que
 '_p_a_s_s_w_o_r_d _s_h_a_d_o_w_i_n_g' signifie. Vous trouverez toutes les informations
 utiles dans les fichiers de documentation et HOWTO. Il y a cependant
 une chose que vous devez garder � l'esprit : si vous d�cidez
 d'utiliser le support '_s_h_a_d_o_w', tous les programmes qui ont besoin de
 v�rifier les mots de passe (xdm, les d�mons ftp, pop3d, etc) doivent
 �tre compatible avec ce support.

 M�me si vous pensez que vous n'avez pas besoin d'utiliser les
 '_s_h_a_d_o_w_e_d _p_a_s_s_w_o_r_d_s' (NDT: litt�ralement mots de passe masqu�s) (apr�s
 avoir lu la documentation � ce sujet), vous devez n�anmoins conserver
 l'archive correspondante car les outils qu'elle contient fonctionnent
 �galement sans '_s_h_a_d_o_w _p_a_s_s_w_o_r_d'. Notez que vous pouvez choisir � tout
 moment d'activer ou de d�sactiver les mots de passe '_s_h_a_d_o_w'.

 Consultez la section 5 du fichier Shadow-Password-HOWTO. Vous y
 apprendrez comment tester si le syst�me '_s_h_a_d_o_w' fonctionne et si ce
 n'est pas le cas, comment le d�sactiver. S'il ne fonctionne pas et que
 vous n'avez effectu� aucune modification, vous vous retrouverez avec
 un syst�me totalement inutilisable lorsque vous vous voudrez vous
 connecter. Vous pouvez facilement rem�dier � ce probl�me en passant
 comme param�tre init=/sbin/sulogin au noyau. Il sera alors n�cessaire
 de d�compresser l'archive util-linux, d'aller dans le r�pertoire
 login-utils, de compiler le programme login et de le copier � la place
 de /bin/login.  La situation n'est jamais vraiment d�sesp�r�e, du
 moins pas sous Linux. Cela dit, vous pouvez vous �pargner bien des
 d�sagr�ments en vous documentant et en effectuant les tests
 n�cessaires. ;-)

 77..55..55..  CCoonnffiigguurreerr SSyyssvviinniitt

 Apr�s avoir modifi� comme suit le fichier /etc/inittab, vous aurez la
 possibilit� de vous connecter au syst�me par l'interm�diaire de agetty
 ou login. Sulogin ne sera plus utilis� pour les connexions normales.

 �  Editez le fichier /etc/inittab et modifiez-le comme suit:


 # Begin /etc/inittab

 id:2:initdefault:

 si::sysinit:/etc/init.d/rcS

 su:S:wait:/sbin/sulogin

 l0:0:wait:/etc/init.d/rc 0
 l1:1:wait:/etc/init.d/rc 1
 l2:2:wait:/etc/init.d/rc 2
 l3:3:wait:/etc/init.d/rc 3
 l4:4:wait:/etc/init.d/rc 4
 l5:5:wait:/etc/init.d/rc 5
 l6:6:wait:/etc/init.d/rc 6

 ft:6:respawn:/sbin/sulogin

 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

 1:2345:respawn:/sbin/agetty /dev/tty1 9600
 2:2345:respawn:/sbin/agetty /dev/tty2 9600
 3:2345:respawn:/sbin/agetty /dev/tty3 9600
 4:2345:respawn:/sbin/agetty /dev/tty4 9600
 5:2345:respawn:/sbin/agetty /dev/tty5 9600
 6:2345:respawn:/sbin/agetty /dev/tty6 9600

 # End /etc/inittab




 77..55..66..  CCrr��eerr llee ffiicchhiieerr //vvaarr//rruunn//uuttmmpp

 Les programmes comme login, shutdown ont besoin d'�crire dans le
 fichier /var/run/utmp. Celui-ci contient des informations concernant
 les personnes actuellement connect�es au syst�me et la date du dernier
 arr�t du syst�me.


 �  Cr�ez le fichier /var/run/utmp en utilisant : touch /var/run/utmp

 �  Modifiez les permissions en lan�ant : chmod 644 /var/run/utmp

 88..  CCrr��eezz lleess ssccrriippttss ddee dd��mmaarrrraaggee dduu ssyysstt��mmee

 Ces scripts sont lanc�s au d�marrage du syst�me et sont responsables
 de diverses t�ches comme, par exemple, monter le syst�me de fichiers
 en lecture/�criture, activer le _s_w_a_p, r�gler quelques param�tres
 syst�mes et lancer divers d�mons dont le syst�me a besoin.

 88..11..  PPrr��ppaarreerr lleess rr��ppeerrttooiirreess eett lleess ffiicchhiieerrss pprriinncciippaauuxx

 Dans cette section vous avez besoin du paquetage Sysvinit.


 �  Cr�ez les r�pertoires n�cessaires en tapant:


    cd /etc
    mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d rcS.d


 �  Positionnez-vous dans le r�pertoire contenant l'archive Sysvinit
    d�compress�e


 �  Copiez le fichier Debian/etc/init.d/rc vers /etc/init.d

 �  Allez dans le r�pertoire /etc/init.d

 �  Cr�ez un nouveau fichier rcS contenant :


    #!/bin/sh
    # Begin /etc/init.d/rcS

    runlevel=S
    prevlevel=N
    umask 022
    export runlevel prevlevel

    trap ":" INT QUIT TSTP

    for i in /etc/rcS.d/S??*
    do
       [ ! -f  "$i" ] && continue;
       $i start
    done

    # End /etc/init.d/rcS




 88..22..  CCrr��eerr llee ssccrriipptt ddee rreedd��mmaarrrraaggee rreebboooott


 �  Cr�ez un nouveau fichier reboot contenant ce qui suit:


    #!/bin/sh
    # Begin /etc/init.d/reboot

    echo -n "System reboot in progress..."

    /sbin/reboot -d -f -i

    # End /etc/init.d/reboot




 88..33..  CCrr��eerr llee ssccrriipptt dd''aarrrr��tt hhaalltt


 �  Cr�ez un nouveau fichier halt contenant ce qui suit:


    #!/bin/sh
    # Begin /etc/init.d/halt

    /sbin/halt -d -f -i -p

    # End /etc/init.d/halt




 88..44..  CCrr��eerr llee ssccrriipptt mmoouunnttffss


 �  Cr�ez un nouveau fichier mountfs contenant:


 #!/bin/sh
 # Begin /etc/init.d/mountfs

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 echo -n "Remounting root file system in read-write mode..."
 /bin/mount -n -o remount,rw /
 check_status

 > /etc/mtab
 /bin/mount -f -o remount,rw /

 echo -n "Mounting proc file system..."
 /bin/mount proc
 check_status

 # End /etc/init.d/mountfs




 88..55..  CCrr��eerr llee ssccrriipptt uummoouunnttffss


 �  Cr�ez un nouveau fichier umountfs contenant ce qui suit:


 #!/bin/sh
 # Begin /etc/init.d/umountfs

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 echo "Deactivating swap..."
 /bin/swapoff -av
 check_status

 echo -n "Unmounting file systems..."
 /bin/umount -a -r
 check_status

 # End /etc/init.d/umountfs



 88..66..  CCrr��eerr llee ssccrriipptt sseennddssiiggnnaallss


 �  Cr�ez un nouveau fichier sendsignals contenant ce qui suit:


 #!/bin/sh
 # Begin /etc/init.d/sendsignals

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }
 echo -n "Sending all processes the TERM signal..."
 /sbin/killall5 -15
 check_status

 echo -n "Sending all processes the KILL signal..."
 /sbin/killall5 -9
 check_status




 88..77..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee cchheecckkrroooott


 �  Cr�ez un fichier /etc/init.d/checkroot contenant ce qui suit:

































 #!/bin/sh
 # Begin /etc/init.d/checkroot

 echo "Activating swap..."
 /sbin/swapon -av

 if [ -f /fastboot ]
 then
   echo "Fast boot, no file system check"
 else
   /bin/mount -n -o remount,ro /
   if [ $? = 0 ]
   then
     if [ -f /forcecheck ]
     then
       force="-f"
     else
       force=""
     fi

     echo "Checking root file system..."
     /sbin/fsck $force -a /

     if [ $? -gt 1 ]
     then
       echo
       echo "fsck failed. Please repair your file system manually by"
       echo "running fsck without the -a option"

       echo "Please note that the file system is currently mounted in"
       echo "read-only mode."
       echo
       echo "I will start sulogin now. CTRL+D will reboot your system."
       /sbin/sulogin
       /reboot -f
     fi
   else
     echo "Cannot check root file system because it is not mounted in"
     echo "read-only mode."
   fi
 fi

 # End /etc/init.d/checkroot




 88..88..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee ssyysskkllooggdd


 �  Cr�ez un nouveau fichier /etc/init.d/sysklogd contenant ce qui
    suit:














 #!/bin/sh
 # Begin /etc/init.d/sysklogd

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 case "$1" in
   start)
     echo -n "Starting system log daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/syslogd -- -m 0
     check_status

     echo -n "Starting kernel log daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/klogd
     check_status
     ;;

   stop)
     echo -n "Stopping kernel log daemon..."
     start-stop-daemon -K -q -o -p  /var/run/klogd.pid
     check_status

     echo -n "Stopping system log daemon..."
     start-stop-daemon -K -q -o -p /var/run/syslogd.pid
     check_status
     ;;

   reload)
     echo -n "Reloading system load daemon configuration file..."
     start-stop-daemon -K -q -o -s 1 -p /var/run/syslogd.pid
     check_status
     ;;

   restart)
     echo -n "Stopping kernel log daemon..."
     start-stop-daemon -K -q -o -p /var/run/klogd.pid
     check_status

     echo -n "Stopping system log daemon..."
     start-stop-daemon -K -q -o -p /var/run/syslogd.pid
     check_status

     sleep 1

     echo -n "Starting system log daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/syslogd -- -m 0
     check_status

     echo -n "Starting kernel log daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/klogd
     check_status
     ;;

   *)
     echo "Usage: $0 {start|stop|reload|restart}"
     exit 1
     ;;
 esac

 # End /etc/init.d/sysklogd




 88..99..  CCrr��eerr lleess lliieennss ssyymmbboolliiqquueess eett ffiixxeerr lleess ppeerrmmiissssiioonnss


 �  Param�trez les permissions et liens symboliques comme suit :


 chmod 755 rcS reboot halt mountfs umountfs sendsignals checkroot sysklogd
 cd ../rc0.d
 ln -s ../init.d/sysklogd K90sysklogd
 ln -s ../init.d/sendsignals S80sendsignals
 ln -s ../init.d/umountfs S90umountfs
 ln -s ../init.d/halt S99halt
 cd ../rc6.d
 ln -s ../init.d/sysklogd K90sysklogd
 ln -s ../init.d/sendsignals S80sendsignals
 ln -s ../init.d/umountfs S90umountfs
 ln -s ../init.d/reboot S99reboot
 cd ../rcS.d
 ln -s ../init.d/checkroot S05checkroot
 ln -s ../init.d/mountfs S10mountfs
 cd /etc/rc2.d
 ln -s ../init.d/sysklogd S03sysklogd




 88..1100..  CCrr��eerr llee ffiicchhiieerr //eettcc//ffssttaabb


 �  Cr�ez un fichier /etc/fstab contenant ce qui suit :


    /dev/<LFS-partition designation> / ext2 defaults 0 1
    /dev/<swap-partition designation> none swap sw 0 0
    proc /proc proc defaults 0 0




 99..  CCoonnffiigguurreerr llaa bbaassee dduu rr��sseeaauu

 99..11..  IInnssttaalllleerr NNeettkkiitt--bbaassee


 �  D�sarchivez Netkit-base  et installez-le en tapant:


 ./configure
 make; make install
 cd etc.sample; cp services protocols /etc
 mv /usr/bin/ping /bin




 99..22..  IInnssttaalllleerr NNeett--ttoooollss


 �  D�sarchivez Net-tools  et installez-le en tapant:


 make; make install
 mv /usr/bin/netstat /bin
 cd /usr/sbin; mv ifconfig route /sbin




 99..22..11..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//llooccaallnneett


 �  Cr�ez un nouveau fichier /etc/init.d/localnet contenant ce qui
    suit:


 #!/bin/sh
 # Begin /etc/init.d/localnet

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 echo -n "Setting up loopback device..."
 /sbin/ifconfig lo 127.0.0.1
 check_status

 echo -n "Setting up hostname..."
 /bin/hostname --file /etc/hostname
 check_status

 # End /etc/init.d/localnet




 99..22..22..  PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lleess lliieennss ssyymmbboolliiqquueess


 �  Fixez les permissions ad�quates en lan�ant : chmod 755
    /etc/init.d/localnet

 �  Cr�ez les liens symboliques appropri�s en lan�ant : cd /etc/rcS.d;
    ln -s ../init.d/localnet S03localnet

 99..22..33..  CCrr��eerr llee ffiicchhiieerr //eettcc//hhoossttnnaammee

 Cr�ez un nouveau fichier /etc/hostname contenant le nom d'h�te de la
 machine.  Il ne s'agit pas du FQDN (nom de domaine pleinement
 qualifi�). Il ne s'agit que du nom que vous souhaitez donner � votre
 machine sur un r�seau (yoda - gandalf - neo - etc).

 99..22..44..  CCrr��eezz llee ffiicchhiieerr //eettcc//hhoossttss

 Si vous souhaitez configurer une carte r�seau, vous devez choisir une
 adresse IP, un nom de domaine pleinement qualifi� et les alias que
 vous mettrez dans le fichier /etc/hosts. Petit exemple :





 <monip> myhost.mydomain.org aliases





 Assurez-vous que l'adresse IP appartient � un r�seau priv�. Les plages
 d'adresses valides � utiliser sont:


 Class Networks
 A     10.0.0.0
 B     172.16.0.0 through 172.31.0.0
 C     192.168.0.0 through 192.168.255.0




 192.168.1.1 est une adresse valide. me.linuxfromscratch.org est un nom
 de domaine pleinement qualifi� valide.

 Si vous ne souhaitez pas utiliser de carte r�seau, vous aurez
 simplement besoin d'un FQDN. Des programmes comme Sendmail en ont
 besoin pour travailler correctement. D'ailleurs Sendmail ne d�marrera
 m�me pas s'il ne dispose pas d'un FQDN.

 Voici le fichier /etc/hosts dont vous avez besoin si vous ne
 configurez pas de carte r�seau:


 # Begin /etc/hosts (no network card version)
 127.0.0.1 me.lfs.org <contents of /etc/hostname> localhost
 # End /etc/hosts (no network card version)




 Voici le fichier /etc/hosts dont vous avez besoin si vous configurez
 une carte r�seau:


 # Begin /etc/hosts (version sans carte r�seau)
 127.0.0.1 localhost
 192.168.1.1 me.lfs.org <contenu de /etc/hostname>
 # End /etc/hosts (version sans carte r�seau)




 Evidemment, vous n'�tes pas oblig� de choisir 192.168.1.1 et
 me.lfs.org.  Choisissez ce que bon vous semblera.

 99..22..55..  CCrr��eerr llee ffiicchhiieerr //eettcc//iinniitt..dd//eetthhnneett

 Cette sous-section est utile uniquement si vous configurez une carte
 r�seau.  Si ce n'est pas le cas, continuez votre lecture au-del�.

 Cr�ez un nouveau fichier /etc/init.d/ethnet contenant ce qui suit:








 #!/bin/sh
 # Begin /etc/init.d/ethnet

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 /sbin/ifconfig eth0 <addresse_ip>
 check_status

 # End /etc/init.d/ethnet




 99..22..66..  PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess ppoouurr
 //eettcc//iinniitt..dd//eetthhnneett


 �  Fixez correctement les permissions en lan�ant chmod 755 ethnet

 �  Cr�ez les liens symboliques appropri�s en lan�ant cd ../rc2.d; ln
    -s ../init.d/ethnet S10ethnet

 99..22..77..  TTeesstteerr llaa ccoonnffiigguurraattiioonn dduu rr��sseeaauu


 �  D�marrez le script localnet en lan�ant /etc/init.d/localnet

 �  D�marrez le script ethnet, si vous en avez cr�� un, en lan�ant
    /etc/init.d/ethnet

 �  Testez si /etc/hosts est correctement configur� en lan�ant:


 ping <votre FQDN>
 ping <votre nom d'h�te>
 ping localhost
 ping 127.0.0.1
 ping 192.168.1.1 (uniquement si vous avez configur� votre carte r�seau)




 Les cinq commandes ping qui pr�c�dent doivent fonctionner sans
 probl�me.  Si ce n'est pas le cas, la base du r�seau n'est pas
 correctement configur�e.


 99..33..  TTeesstteerr llee ssyysstt��mmee

 Maintenant que tous les logiciels sont install�s, que les scripts de
 d�marrage existent et que le r�seau local est op�rationnel, il est
 temps de red�marrer l'ordinateur afin de tester si ces nouveaux
 scripts fonctionnent correctement.  Dans un premier temps, lorsque
 vous cr�ez ces scripts, il est pr�f�rable de les ex�cuter manuellement
 depuis le r�pertoire /etc/init.d afin de corriger les erreurs les plus
 �videntes (erreurs de saisie notamment). Lorsque ces scripts seront
 op�rationnels, il faudra s'assurer qu'ils se comportent �galement
 correctement au d�marrage et � l'arr�t du syst�me. Il n'existe qu'une
 seule fa�on de v�rifier cela. Red�marrez votre syst�me LFS gr�ce � la
 commande shutdown -r now. Au terme de ce red�marrage, vous arriverez �
 une invite normale, comparable � ce que vous avez sous votre syst�me
 Linux normal (sauf si vous utilisez un gestionnaire d'affichage comme
 XDM, KDM etc).

 A ce niveau, votre syst�me LFS basique est op�rationnel. Tout ce qui
 suit est optionnel, vous pouvez donc ignorer les chapitres que vous
 souhaitez. Mais gardez � l'esprit que si vous passez certaines
 sections comme l'installation de biblioth�ques, certains programmes ne
 fonctionneront pas. Ainsi Lynx a besoin de la biblioth�que zlib. De
 plus zlib n'est pas uniquement utilis�e par Lynx.  A vous donc de
 v�rifier ces probl�mes de d�pendance.

 1100..  IInnssttaalllleerr lleess dd��mmoonnss rr��sseeaauu

 1100..11..  CCoonnffiigguurreerr SSMMTTPP

 1100..11..11..  CCrr��eerr lleess ggrroouuppeess eett uuttiilliissaatteeuurrss

 Cr�ez les groupes dont Sendmail a besoin en tapant:


 groupadd -g 1 bin
 groupadd -g 2 kmem
 groupadd -g 3 mail
 useradd -u 1 -g bin -d /bin -s /bin/sh bin




 1100..11..22..  CCrr��eerr lleess rr��ppeerrttooiirreess

 Le courrier �lectronique sortant est stock� dans le r�pertoire
 /var/spool/mqueue . Le courrier entrant est transmis � Procmail par
 Sendmail, puis stock� dans le r�pertoire /var/mail. Cr�ez ces
 r�pertoires et fixez les permissions :


 mkdir /var/spool/mqueue
 mkdir /var/mail
 cd /var/spool; ln -s ../mail mail
 chmod 700 /var/spool/mqueue
 chmod 775 /var/mail
 chgrp mail /var/mail
 chmod 1777 /tmp




 1100..11..33..  IInnssttaalllleerr SSeennddmmaaiill


 �  D�sarchivez Sendmail  et installez-le en tapant:


 cd src
 ./Build; ./Build install








 1100..11..44..  CCoonnffiigguurriinngg SSeennddmmaaiill

 Configurer Sendmail est plus facile � dire qu'� faire. Il y a un tas
 de choses � prendre en compte lorsque l'on configure cette application
 et je ne peux pas toutes les �voquer. C'est pourquoi pour le moment
 vous allez cr�er une configuration basique et standard. Si vous
 souhaitez peaufiner cette configuration, libre � vous, mais ce n'est
 pas le bon document pour apprendre comment faire.  Vous pouvez
 �ventuellement utiliser le fichier /etc/sendmail.cf (ou
 /etc/mail/sendmail.cf) existant.


 �  Positionnez-vous dans le r�pertoire cf des sources

 �  Cr�ez un nouveau fichier cf/lfs.mc contenant ce qui suit:


 OSTYPE(LFS)
 FEATURE(nouucp)
 define(`LOCAL_MAILER_PATH', /usr/bin/procmail)
 MAILER(local)
 MAILER(smtp)





 �  Cr�ez un fichier ostype/LFS.m4 vide en lan�ant touch ostype/LFS.m4

 �  Compilez le fichier lfs.mc en lan�ant m4 m4/cf.m4 cf/lfs.mc >
    cf/lfs.cf

 �  Copiez cf/lfs.cf vers /etc/sendmail.cf

 �  Cr�ez un fichier /etc/aliases vide en lan�ant touch /etc/aliases

 �  Initialisez cette base de donn�es vide en tapant : sendmail -v -bi

 1100..11..55..  IInnssttaalllleerr PPrrooccmmaaiill


 �  D�sarchivez Procmail  et installez-le en tapant:


 make; make install; make install-suid





 1100..11..66..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//sseennddmmaaiill


 �  Cr�ez un nouveau fichier /etc/init.d/sendmail contenant ce qui
    suit:











 #!/bin/sh
 # Begin /etc/init.d/sendmail

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 case "$1" in
   start)
     echo -n "Starting Sendmail..."
     start-stop-daemon -S -q -o -x /usr/sbin/sendmail -- -bd
     check_status
     ;;

   stop)
     echo -n "Stopping Sendmail..."
     start-stop-daemon -K -q -o -p /var/run/sendmail.pid
     check_status
     ;;

   reload)
     echo -n "Reloading Sendmail configuration file..."
     start-stop-daemon -K -q -s 1 -p /var/run/sendmail.pid
     check_status
     ;;

   restart)
     echo -n "Stopping Sendmail..."
     start-stop-daemon -K -q -o -p /var/run/sendmail.pid
     check_status

     sleep 1

     echo -n "Starting Sendmail..."
     start-stop-daemon -S -q -o -x /usr/sbin/sendmail -- -bd
     check_status
     ;;

   *)
     echo "Usage: $0 {start|stop|reload|restart}"
     exit 1
     ;;

 esac

 # End /etc/init.d/sendmail




 1100..11..77..  PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess


 �  Fixez les permissions appropri�es en lan�ant chmod 755
    /etc/init.d/sendmail

 �  Cr�ez les liens symboliques ad�quats en lan�ant :



 cd /etc/init.d/rc2.d; ln -s ../init.d/sendmail S20sendmail
 cd ../rc0.d; ln -s ../init.d/sendmail K20sendmail
 cd ../rc6.d; ln -s ../init.d/sendmail K20sendmail




 1100..22..  CCoonnffiigguurreerr FFTTPP

 1100..22..11..  CCrr��eerr lleess ggrroouuppeess eett uuttiilliissaatteeuurrss


 �  Cr�ez les groupes n�cessaires en lan�ant :


 groupadd -g 65534 nogroup
 groupadd -g 4 ftp





 �  Cr�ez les utilisateurs n�cessaires en lan�ant :


 useradd -u 65534 -g nogroup -d /home nobody
 useradd -u 4 -g ftp -s /bin/sh -m ftp




 1100..22..22..  IInnssttaalllleerr PPrrooffttppdd


 �  D�sarchivez Proftpd  et installez-le en tapant:


 ./configure
 make; make install




 1100..22..33..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//pprrooffttppdd


 �  Cr�ez un nouveau fichier /etc/init.d/proftpd contenant ce qui suit:



















 #!/bin/sh
 # Begin /etc/init.d/proftpd

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 case "$1" in
   start)
     echo -n "Starting Pro FTP daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/proftpd
     check_status
     ;;

   stop)
     echo -n "Stopping Pro FTP daemon..."
     start-stop-daemon -K -q -o -x /usr/sbin/proftpd
     check_status
     ;;

   restart)
     echo -n "Stopping Pro FTP daemon..."
     start-stop-daemon -K -q -o -x /usr/sbin/proftpd
     check_status

     sleep 1

     echo -n "Starting Pro FTP daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/proftpd
     check_status
     ;;

   *)
     echo "Usage: $0 {start|stop|restart}"
     ;;

 esac

 # End /etc/init.d/proftpd




 1100..22..44..  PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lleess lliieennss ssyymmbboolliiqquueess


 �  Fixez les permissions appropri�es en lan�ant : chmod 755
    /etc/init.d/proftpd

 �  Cr�ez les liens symboliques n�cessaires en lan�ant :


 cd /etc/rc2.d; ln -s ../init.d/proftpd S40proftpd
 cd ../rc0.d; ln -s ../init.d/proftpd K40proftpd
 cd ../rc6.d; ln -s ../init.d/proftpd K40proftpd





 1100..33..  CCoonnffiigguurreerr HHTTTTPP

 1100..33..11..  IInnssttaalllleerr AAppaacchhee


 �  D�sarchivez Apache  et installez-le en tapant :


 ./configure
 make; make install




 1100..33..22..  CCoonnffiigguurreerr AAppaacchhee

 Il n'y a pas grande configuration � faire. La seule chose n�cessaire
 est d'ajouter le chemin d'acc�s /usr/apache/man au fichier
 /usr/share/misc/man.conf


 �  Editez le fichier /usr/share/misc/man.conf

 �  Ajoutez cette ligne apr�s les autres lignes commen�ant par MANPATH
    : _M_A_N_P_A_T_H _/_u_s_r_/_a_p_a_c_h_e_/_m_a_n

 1100..33..33..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//aappaacchhee


 �  Cr�ez un nouveau fichier /etc/init.d/apache contenant ce qui suit :




































 #!/bin/sh
 # Begin /etc/init.d/apache

 case "$1" in
   start)
     echo -n "Starting Apache HTTP daemon..."
     /usr/apache/bin/apachectl start
     ;;

   stop)
     echo -n "Stopping Apache HTTP daemon..."
     /usr/apache/bin/apachectl stop
     ;;

   restart)
     echo -n "Restarting Apache HTTP daemon..."
     /usr/apache/bin/apachectl restart
     ;;

   force-restart)
     echo -n "Stopping Apache HTTP daemon..."
     /usr/apache/bin/apachectl stop

     sleep 1

     echo -n "Starting Apache HTTP daemon..."
     /usr/apache/bin/apachectl start
     ;;

   *)
     echo "Usage: $0 {start|stop|restart|force-restart}"
     ;;

 esac

 # End /etc/init.d/apache




 1100..33..44..  PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess


 �  Fixez les permissions appropri�es en lan�ant chmod 755
    /etc/init.d/apache

 �  Cr�ez les liens symboliques appropri�s en lan�ant :


 cd /etc/rc2.d; ln -s ../init.d/apache S50apache
 cd ../rc0.d; ln -s ../init.d/apache K50apache
 cd ../rc6.d; ln -s ../init.d/apache K50apache




 1100..44..  CCoonnffiigguurreerr TTeellnneett

 1100..44..11..  IInnssttaalllleerr llee dd��mmoonn eett llee cclliieenntt tteellnneett


 �  D�sarchivez Netkit-telnet  et installez-le en tapant:




 ./configure
 make; make install




 1100..44..22..  CCrr��eerr llee ffiicchhiieerr ddee ccoonnffiigguurraattiioonn //eettcc//iinneettdd..ccoonnff


 �  Cr�ez un nouveau fichier /etc/inetd.conf contenant ce qui suit :


 # Begin /etc/inetd.conf

 telnet stream tcp nowait root /usr/sbin/in.telnetd

 # End /etc/inetd.conf




 1100..44..33..  CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//iinneettdd


 �  Cr�ez un nouveau fichier /etc/init.d/inetd contenant ce qui suit :









































 #!/bin/sh
 # Begin /etc/init.d/inetd

 check_status()
 {
   if [ $? = 0 ]
   then
     echo "OK"
   else
     echo "FAILED"
   fi
 }

 case "$1" in
   start)
     echo -n "Starting Internet Server daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/inetd
     check_status
     ;;

   stop)
     echo -n "Stopping Internet Server daemon..."
     start-stop-daemon -K -q -o -p /var/run/inetd.pid
     check_status
     ;;

   reload)
     echo -n "Reloading Internet Server configuration file..."
     start-stop-daemon -K -q -s 1 -p /var/run/inetd.pid
     check_status
     ;;

   restart)
     echo -n "Stopping Internet Server daemon..."
     start-stop-daemon -K -q -o -p /var/run/inetd.pid
     check_status

     sleep 1

     echo -n "Starting Internet Server daemon..."
     start-stop-daemon -S -q -o -x /usr/sbin/inetd
     check_status
     ;;

   *)
     echo "Usage: $0 {start|stop|reload|restart}"
     ;;

 esac

 # End /etc/init.d/inetd




 1100..44..44..  PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess


 �  Fixez les permissions appropri�es en lan�ant : chmod 755
    /etc/init.d/inetd


 �  Cr�ez les liens symboliques appropri�s en lan�ant :



 cd /etc/rc2.d; ln -s ../init.d/inetd S30inetd
 cd ../rc0.d; ln -s ../init.d/inetd K30inetd
 cd ../rc6.d; ln -s ../init.d/inetd K30 inetd




 1100..55..  CCoonnffiigguurreerr PPPPPP

 1100..55..11..  CCoonnffiigguurreerr llee nnooyyaauu

 Avant de pouvoir vous connecter � Internet, vous devez configurer le
 support PPP dans le noyau. Pour ce faire, soit vous compilez le noyau
 avec support PPP int�gr�, soit vous compilez le support PPP en module
 qui sera charg� lorsque n�cessaire. Quelle que soit la m�thode que
 vous pr�f�rez, vous devez recompiler le noyau maintenant s'il ne
 supporte pas le protocole PPP.

 1100..55..22..  CCrr��eerr llee ggrroouuppee


 �  Cr�ez le groupe du d�mon PPP en lan�ant : groupadd -g7 daemon

 1100..55..33..  IInnssttaalllleerr PPPPPP


 �  D�sarchivez PPP  et installez-le en tapant :


 ./configure
 make; make install




 1100..55..44..  CCrr��eerr llee ffiicchhiieerr //eettcc//rreessoollvv..ccoonnff


 �  Cr�ez un nouveau fichier /etc/resolv.conf contenant ce qui suit :


 # Begin /etc/resolv.conf

 nameserver <adresse IP du serveur DNS primaire de votre FAI>
 nameserver <adresse IP du serveur DNS secondaire de votre FAI>

 # End /etc/resolv.conf




 1100..55..55..  CCrr��eerr llee ffiicchhiieerr //eettcc//pppppp//ppeeeerrss//pprroovviiddeerr


 �  Cr�ez un r�pertoire /etc/ppp/peers

 �  Cr�ez un nouveau fichier /etc/ppp/peers/provider contenant ce qui
    suit :








 # Begin /etc/ppp/peers/provider

 noauth
 connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
 /dev/ttyS1
 115200
 defaultroute
 noipdefault

 # End /etc/ppp/peers/provider




 1100..55..66..  CCrr��eerr llee ffiicchhiieerr //eettcc//cchhaattssccrriippttss//pprroovviiddeerr


 �  Cr�ez le r�pertoire /etc/chatscripts

 �  Cr�ez un nouveau fichier /etc/chatscripts/provider contenant ce qui
    suit :


 # Begin /etc/chatscripts/provider

 ABORT BUSY
 ABORT "NO CARRIER"
 ABORT VOICE
 ABORT "NO DIALTONE"
 ABORT "NO ANSWER"
 "" ATZ
 OK ATDT <num�ro de t�l�phone de votre FAI>
 TIMEOUT 35
 CONNECT ''
 TIMEOUT 10
 ogin:  \  q<nom d'utilisateur FAI>
 TIMEOUT 10
 assword:  \  q<mot de passe FAI>

 # End /etc/chatscripts/provider




 1100..55..77..  RReemmaarrqquuee ccoonncceerrnnaanntt ll''aauutthheennttiiffiiccaattiioonn ddeess mmoottss ddee ppaassssee

 Comme vous pouvez le voir dans les scripts ci-dessus (ce sont les
 scripts que j'utilise lorsque je ne travaille pas sous X), je me
 connecte chez mon FAI (Fournisseur d'Acc�s Internet) en utilisant ces
 scripts de communication plut�t qu'en utilisant l'authentification pap
 ou chap. Bien que mon FAI supporte pap, j'ai choisi de proc�der de
 fa�on l�g�rement diff�rente, avec les avantages et inconv�nients que
 cette m�thode comporte. Dans mon cas, les avantages sont plus nombreux
 que les inconv�nients. En fait, en utilisant cette m�thode, j'ai plus
 de contr�le sur la proc�dure de connexion et je peux voir ce qui se
 passe et quand �a se passe.

 Par exemple, la plupart du temps, lorsque je me connecte, j'ouvre une
 fen�tre dans laquelle j'ex�cute

 tail -f /var/log/syslog de mani�re � pouvoir voir quand (avec mon FAI
 ce serait plut�t 'si') les informations comme l'identifiant et le mot
 de passe sont envoy�s.



 1111..  IInnssttaalllleerr lleess cclliieennttss rr��sseeaauu

 1111..11..  IInnssttaalllleerr lleess cclliieennttss EEmmaaiill

 1111..11..11..  IInnssttaalllleerr MMaaiillxx


 �  D�sarchivez Mailx  et installez-le en tapant


 make; make install




 1111..11..22..  IInnssttaalllleerr MMuutttt

 Mon client mail favori est Mutt, c'est donc celui-l� que je vous
 conseille d'installer. Il ne s'agit pas d'une obligation, si vous avez
 un client mail pr�f�r�, installez-le. Apr�s tout, c'est votre syst�me,
 pas le mien. Notez que, si votre client est sous X Window, vous devrez
 attendre le chapitre concernant l'installation du syst�me X Window
 pour pouvoir l'installer.


 �  D�sarchivez Mutt  et installez-le en tapant:


 ./configure
 make; make install





 1111..11..33..  IInnssttaalllleerr FFeettcchhmmaaiill


 �  D�sarchivez Fetchmail  et installez-le en tapant:


 ./configure
 make; make install





 1111..11..44..  TTeesstteerr llee ssyysstt��mmee eemmaaiill

 Il est grand temps de tester notre syst�me de courrier �lectronique.


 �  Lancez Sendmail en tapant /usr/sbin/sendmail -bd (vous devez
    indiquer le chemin d'acc�s � Sendmail complet. Si vous ne le faites
    pas, Sendmail n'aura pas la possibilit� de recharger le fichier
    sendmail.cf lorsque vous utiliserez la commande kill -1 <sendmail
    pid>).

 �  Envoyez-vous un mail en lan�ant echo "Ceci est un email d'essai" |
    mail -s test root

 �  D�marrez le programme mail, vous devez voir appara�tre votre mail.

 �  Cr�ez un nouvel utilisateur en lan�ant useradd -m testuser; passwd
    testuser
 �  Envoyez un mail � ce nouvel utilisateur en lan�ant echo "mail
    d'essai vers testuser" | mail -s test testuser

 �  Connectez-vous sur le compte de cet utilisateur et lancez le
    programme mail pour voir si l'envoi a fonctionn�. Si c'est le cas,
    envoyez un mail � root de la m�me mani�re que vous avez envoy� un
    mail � testuser.

 Si toutes ces �tapes se sont termin�es correctement, vous �tes parvenu
 � configurer un syst�me mail local. Cela ne signifie pas qu'il est
 op�rationnel pour Internet. Vous pouvez supprimer l'utilisateur de
 test en lan�ant userdel -r testuser

 1111..22..  IInnssttaalllleerr llee cclliieenntt FFTTPP

 1111..22..11..  IInnssttaalllleerr NNeettkkiitt--ffttpp


 �  D�sarchivez Netkit-ftp  et installez-le en tapant:


 ./configure
 make; make install




 1111..22..22..  TTeesstteerr llee ssyysstt��mmee FFTTPP


 �  Lancez le d�mon Pro FTP en tapant : /etc/init.d/proftpd start

 �  Ouvrez une session FTP sur l'h�te local en tapant : ftp localhost

 �  Connectez-vous en tant qu'utilisateur anonyme et d�connectez-vous �
    nouveau.


 1111..33..  IInnssttaalllleerr llee cclliieenntt HHTTTTPP

 1111..33..11..  IInnssttaalllleerr ZZlliibb

 Zlib est une biblioth�que de compression utilis�e par des programmes
 comme zip et unzip de PKware. Lynx utilise cette biblioth�que pour
 compresser certains fichiers.


 �  D�sarchivez Zlib  et installez-le en tapant:


 ./configure --shared
 make; make install




 1111..33..22..  IInnssttaalllleerr LLyynnxx


 �  D�sarchivez Lynx  et installez-le en tapant:






 ./configure --libdir=/etc --with-zlib
 make; make install
 make install-help; make install-doc




 1111..33..33..  TTeesstteerr llee ssyysstt��mmee HHTTTTPP


 �  D�marrez le d�mon Apache en tapant : /etc/init.d/apache start

 �  D�marrez une session http vers l'h�te local en tapant : lynx
    http://localhost

 �  Quittez lynx.

 1111..44..  IInnssttaalllleerr llee cclliieenntt TTeellnneett

 Le client Telnet a d�j� �t� install� lorsque nous avons mis en place
 le d�mon correspondant, au chapitre pr�c�dent.

 1111..44..11..  TTeesstteerr llee ssyysstt��mmee TTeellnneett


 �  D�marrez le d�mon Serveur Internet (et avec lui telnetd) en tapant
    : /etc/init.d/inetd start

 �  D�marrez une session telnet vers l'h�te local en tapant : telnet
    localhost


 �  Connectez et d�connectez-vous.

 1111..55..  IInnssttaalllleerr lleess cclliieennttss PPPPPP

 1111..55..11..  CCrr��eerr llee ssccrriipptt ddee ccoonnnneexxiioonn


 �  Cr�ez un nouveau fichier /usr/bin/pon contenant ce qui suit :


 #!/bin/sh
 # Begin /usr/bin/pon

 /usr/sbin/pppd call provider

 # End /usr/bin/pon




 1111..55..22..  CCrr��eerr llee ssccrriipptt ddee dd��ccoonnnneexxiioonn


 �  Cr�ez un nouveau fichier /usr/bin/poff contenant ce qui suit :










 #!/bin/sh
 # Begin /usr/bin/poff

 set -- `cat /var/run/ppp*.pid`

 case $# in
   0)
     kill -15 `ps axw|grep "pppd call [[allnum:]]+"|grep -v grep|awk '{print $1}'`
     exit 0
     ;;
   1)
     kill -15 $1
     exit 0
     ;;
 esac

 # End /usr/bin/poff




 1111..55..33..  TTeesstteerr llee ssyysstt��mmee PPPPPP


 �  Connectez-vous � Internet en tapant pon

 �  Essayez de vous connecter � un site comme
    http://www.linuxfromscratch.org

 �  D�connectez-vous d'Internet en lan�ant poff

 1122..  IInnssttaalllleerr llee ssyysstt��mmee XX WWiinnddooww

 1122..11..  IInnssttaalllleerr XX


 �  D�sarchivez X  et installez-le en tapant :


 make World
 make install; make install.man




 Au cours de la compilation, vous verrez quelques erreurs indiquant que
 le script "makedepend" est incapable de trouver les fichiers stddef.h,
 stdarg.h et float.h. Manifestement ce script n'est pas aussi efficace
 que le compilateur car la compilation se d�roule sans probl�me. Cr�er
 des liens symboliques ne r�soudra pas le probl�me, au contraire cela
 en cr�era d'autres.

 Vous pouvez donc superbement ignorer ces erreurs, ainsi que celles du
 type "pointer targets in passing arg x of somefunction differ in
 signedness".  D'ailleurs vous pouvez r��crire ces fichiers si vous le
 souhaitez, pour ma part, je m'abstiendrai.

 1122..22..  CCrr��eerr //eettcc//lldd..ssoo..ccoonnff

 Cr�ez un nouveau fichier /etc/ld.so.conf contenant ce qui suit :






 # Begin /etc/ld.so.conf

 /lib
 /usr/lib
 /usr/X11R6/lib

 # End /etc/ld.so.conf





 �  Mettez � jour le chargeur dynamique en tapant ldconfig

 1122..33..  CCrr��eerr llee lliieenn ssyymmbboolliiqquuee //uussrr//iinncclluuddee//XX1111


 �  Afin que le pr�processeur trouve les fichiers X11/*.h, vous devez
    cr�er le lien symbolique suivant : ln -s /usr/X11R6/include/X11
    /usr/include/X11


 1122..44..  CCrr��eerr llee lliieenn ssyymmbboolliiqquuee //uussrr//XX1111

 Souvent, les applications copient des fichiers vers /usr/X11, sans
 avoir � se soucier de la version X utilis�e. Ce lien symbolique n'a
 pas �t� cr�� � l'installation du syst�me X Window, vous devez donc le
 faire.


 �  Cr�ez le lien symbolique /usr/X11 en tapant ln -s /usr/X11R6
    /usr/X11

 1122..55..  AAjjoouutteerr //uussrr//XX1111//bbiinn  �� llaa vvaarriiaabbllee dd''eennvviirroonnnneemmeenntt $$PPAATTHH

 Il y a diff�rentes m�thodes pour ajouter le chemin /usr/X11/bin � la
 variable d'environnement $PATH . Voici une fa�on de proc�der :


 �  Cr�ez un nouveau fichier /root/.bashrc contenant: _e_x_p_o_r_t
    _P_A_T_H_=_$_P_A_T_H_:_/_u_s_r_/_X_1_1_/_b_i_n

 Vous devez vous d�connecter et vous reconnecter au syst�me afin que
 cette modification soit prise en compte.

 Une autre m�thode consiste � mettre � jour la variable $PATH en tapant
 : export PATH=$PATH:/usr/X11/bin manuellement

 1122..66..  CCoonnffiigguurreerr XX


 �  Configurez le serveur X en lan�ant xf86config

 Si le fichier XF86Config cr�� par xf86config n'est pas apte � faire
 d�marrer le serveur, il est alors pr�f�rable de copier le fichier
 XF86Config existant sur votre syst�me Linux normal dans /etc. Dans
 certains cas, vous serez m�me oblig� de modifier manuellement ce
 fichier de configuration lorsque xf86config sera incapable de g�rer
 certains aspects de la configuration. Quoi qu'il en soit, modifier
 manuellement ce fichier est tr�s long et le r�sultat obtenu n'est pas
 toujours celui attendu.

 1122..77..  TTeesstteerr XX

 Maintenant que X est configur� proprement, il est temps de faire un
 premier test.
 �  Lancez le serveur X en tapant startx

 Le serveur X d�marrera et affichera trois terminaux xterm � l'�cran.
 Si c'est effectivement le cas, votre syst�me X fonctionne
 correctement.

 1122..88..  IInnssttaalllleerr WWiinnddooww MMaakkeerr

 J'ai choisi d'installer Window Maker car j'utilise ce gestionnaire de
 fen�tres depuis un certain temps et j'en suis tr�s satisfait. Comme
 d'habitude, vous �tes libre d'installer votre gestionnaire de fen�tres
 favori, voire d'en installer plusieurs en fonction de votre humeur. Il
 suffira de sp�cifier dans le fichier $HOME/.xinitrc (ou
 $HOME/.xsession si vous utilisez xdm) lequel lancer.

 1122..99..  PPrr��ppaarreerr llee ssyysstt��mmee ppoouurr ll''iinnssttaallllaattiioonn ddee WWiinnddooww MMaakkeerr

 1122..99..11..  IInnssttaalllleerr lliibbPPrrooppLLiisstt


 �  D�sarchivez libPropList  et installez-le en tapant:


 ./configure
 make; make install




 1122..99..22..  IInnssttaalllleerr lliibbXXppmm


 �  D�sarchivez libXpm  et installez-le en tapant :


 xmkmf; make Makefiles; make includes; make depend
 cd lib; make; make install
 cd ..; make; make install




 Cette installation l�g�rement diff�rente est due � un _b_u_g dans un des
 fichiers Makefile. Il d�pend des fichiers du r�pertoire lib qui ne
 sont pas encore install�s mais ne les cherche pas dans le r�pertoire
 lib. Nous devons donc installer ces fichiers avant de compiler le
 paquetage.

 1122..99..33..  IInnssttaalllleerr lliibbppnngg


 �  D�sarchivez libpng  et installez-le en tapant :


 make -f scripts/makefile.lnx; make -f scripts/makefile.lnx install




 1122..99..44..  IInnssttaalllleerr lliibbttiiffff


 �  D�sarchivez libtiff  et installez-le en tapant:



 ./configure
 make; make install




 1122..99..55..  IInnssttaalllleerr lliibbjjppeegg


 �  D�sarchivez libjpeg  et installez-le en tapant:


 ./configure --enable-shared --enable-static
 make; make install




 1122..99..66..  IInnssttaalllleerr lliibbuunnggiiff


 �  D�sarchivez libungif  et installez-le en tapant:


 ./configure
 make; make install




 1122..99..77..  IInnssttaalllleerr WWiinnddoowwMMaakkeerr


 �  D�sarchivez WindowMaker  et installez-le en tapant:


 ./configure
 make; make install




 1122..1100..  MMeettttrree �� jjoouurr llee ccaacchhee dduu cchhaarrggeeuurr ddyynnaammiiqquuee


 �  Mettez � jour le cache du chargeur dynamique en lan�ant: ldconfig

 1122..1111..  CCoonnffiigguurreerr WWiinnddooww MMaakkeerr

 Tout utilisateur souhaitant utiliser WindowMaker doit d'abord lancer
 le script wmaker.inst. Ce dernier copiera les fichiers n�cessaires
 dans le r�pertoire de l'utilisateur et modifiera le fichier
 $HOME/.xinitrc (ou le cr�era s'il n'existe pas).


 �  Configurer Window Maker en lan�ant wmaker.inst

 1122..1122..  TTeesstteerr WWiinnddooww MMaakkeerr


 �  D�marrez le serveur X et v�rifiez que le gestionnaire de fen�tres
    Window Maker d�marre convenablement. Pour ce faire, utilisez la
    commande startx



 1133..  RReessssoouurrcceess

 Une liste de livres, HOWTOs et autres documents dont vous pourriez
 avoir besoin. Cette liste est loin d'�tre exhaustive mais contient le
 n�cessaire pour d�marrer. Nous esp�rons �tre en mesure de la compl�ter
 au fur et � mesure que nous trouverons de nouveaux documents utiles.

 1133..11..  LLiivvrreess


 �  _S_e_n_d_m_a_i_l publi� par O'Reilly. ISBN: 1-56592-222-0

 �  _L_i_n_u_x _N_e_t_w_o_r_k _A_d_m_i_n_i_s_t_r_a_t_o_r_'_s _G_u_i_d_e publi� par O'Reilly. ISBN:
    1-56592-087-2


 �  _R_u_n_n_i_n_g _L_i_n_u_x publi� par O'Reilly. ISBN: 1-56592-151-8

 1133..22..  HHOOWWTTOOss


 �  ISP-Hookup-HOWTO � l'adresse http://www.linuxdoc.org

 �  Linux Network Administrator's Guide en ligne � l'adresse :
    http://www.linuxdoc.org

 1133..33..  AAuuttrree


 �  Les diverses pages de manuel et pages info livr�es avec les
    paquetages.


 1144..  LLaa FFiinn

 Vous venez d'atteindre la fin du document Linux From Scratch HOWTO.
 J'esp�re que cette exp�rience vous a permis de compl�ter vos
 connaissances concernant le syst�me Linux. Si vous souhaitez voir
 figurer ici certaines informations (corrections de bogues,
 applications suppl�mentaires oubli�es que vous consid�rez comme
 importantes), faites-le nous savoir. Ensemble, gr�ce � votre aide et �
 vos suggestions, nous am�liorerons ce document.

 1155..  CCooppyyrriigghhtt && iinnffoorrmmaattiioonn ddee lliicceennccee

 Copyright (C) 1999 Gerard Beekmans. Ce document ne peut �tre distribu�
 que conform�ment aux termes et conditions expos�s dans la licence LDP,
 disponible � l'adresse http://www.linuxdoc.org/COPYRIGHT.html.

 Il n'est toutefois pas n�cessaire d'afficher cette notice, comme
 d�crit dans la licence LDP, si seule une petite partie de ce document
 est utilis�e � des fins d'illustration ou de citation. Toutefois je
 vous demande de faire figurer, avec la citation, la mention: "Extrait
 de LFS-HOWTO � http://huizen.dds.nl/~glb/"