
                               Linux From Sratch

Gerard Beekmans

   Version 2.2, 3 avril 2000
     _________________________________________________________________

   _Ce document dcrit comment crer de toute pice un systme Linux 
   partir des sources des applications et d'une distribution dj
   installe. _
     _________________________________________________________________

1. Introduction

1.1 De quoi s'agit-il ?

   J'ai utilis de nombreuses distributions Linux diffrentes, toutefois
   aucune d'elles ne m'a jamais vraiment satisfait. Parfois l'agencement
   des scripts de dmarrage ne me convenait pas, parfois la configuration
   par dfaut des programmes n'tait pas  mon got. J'en suis venu 
   penser que je ne serai jamais compltement satisfait par un systme
   Linux tant que je n'en construirais pas un moi-mme. L'idal tait de
   partir uniquement des fichiers sources de chaque application et donc
   de n'utiliser aucun paquetage prconstruit ni disquette ou CDROM
   installant un systme de base.

   A premire vue, cette ide semblait saugrenue, voire presque
   irralisable. La plupart des problmes qui freinaient ma progression
   venaient de mon manque de connaissances au sujet de certains
   programmes et mcanismes. Ainsi aprs avoir rencontr et rsolu tous
   les problmes lis  la dpendance,  la compilation, etc, je parvins
    mettre en place un systme Linux oprationnel. J'ai nomm alors ce
   systme LFS, qui signifie en anglais Linux From Scratch (NDT :
   approximativement "Linux de Zro").

   En pratique, nous mettrons en place ce systme idal  partir d'une
   distribution Linux dj en place .

1.2 Mises  jour

   La dernire version anglaise de ce document est disponible  tout
   moment  l'adresse :

   http://www.linuxfromscratch.org

1.3 Historique de ce document

   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 mentionns.

     * Modification de la structure de l'arborescence - LFS est conforme
        la norme FHS. Peut-tre pas  100%.
     * Nouvelle mthode d'installation de la Glibc
     * Nouvelle mthode d'installation de GCC
     * Suppression de l'utilisation de paquetages prconstruits Debian.
     * Mthode d'installation des applications compltement rvise -
       limination de la ncessit d'utiliser des paquetages lis
       statiquement dans le chapitre 6.1.
     * Divers bogues corrigs concernant l'installation des applications
     * Quelques programmes supplmentaires du paquetage util-linux
       installs
     * Ajout de l'installation du programme Bzip2
     * Explications plus dtailles concernant $LFS - ce qu'il faut et ce
       qu'il ne faut pas faire.
     * Procdure d'installation simplifie pour tous les paquetages des
       chapitres 5  9.1
     * Installation de la Glibc et de GCC, possdant jusqu' prsent leur
       propre chapitre, incluse dans le chapitre 7.
     * Chapitre concernant les serveurs Internet modifi : cration de
       deux chapitres : Dmons Rseau et Clients Rseau. Le chapitre
       concernant Internet a t partag entre ceux-ci.
     * Echange des chapitres 13 et 14 (X et Internet) et concatnation
       des chapitres concernant X et WindowMaker.
     * Un nouveau programme Man est utilis. Il est plus facile 
       manipuler et  configurer que le man-db utilis prcdemment. Les
       deux versions ralisent sensiblement le mme travail.
     * Ajout du chapitre 13 : les ressources. Ce chapitre contient les
       rfrences de nombreux livres et HOWTOs qui vous seront utiliss
       au cours ou au terme de la construction du systme LFS.
     * Chapitre 3 : lien bzip2 corrig
     * Chapitre 7.2.42 : mthode d'installation d'Util-Linux simplifie.
     * 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 corrige
     * Chapitre 5.2: fichier inittab modifi de manire  ce que le
       systme ne signale plus de fichiers manquants au dmarrage de la
       machine.
     * Chapitre 6: rcriture de l'installation du noyau
     * Chapitre 10.3: Script de dmarrage d'Apache modifi
     * Chapitre 10.3.2: section concernant la modification du fichier
       httpd.conf supprime. Elle n'est plus ncessaire. 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 procdure d'installation.
     * Chapitre 11.3.1: Ajout de l'option --shared lors de l'excution de
       configure afin que la Zlib soit installe comme une bibliothque
       dynamique plutt que statique.
     * Chapitre 11.6: Lynx li  la bibliothque Ncurses plutt que
       Slang.
     * Chapitre 12: Le fichier man_db.config de la nouvelle application
       man-db contient toujours le rpertoire X11/man.

   2.2 - 3 avril 2000

     * Les domaines linuxfromscratch.org et linuxfromscratch.com sont
       oprationnels. Tous les liens vers huizen.dds.nl/glb et
       tts.ookhio.dds.nl ont t remplacs par les liens appropris vers
       www.linuxfromscratch.org.
     * Aprs le redmarrage de la machine au chapitre 7.3, la partition
       swap est active avant de commencer  compiler les applications.

1.4 Listes de diffusion

   Il existe deux listes auxquelles vous pouvez vous inscrire :
   lfs-discuss et lfs-announce. La premire est une liste publique non
   modre concernant tout ce qui a trait  ce document. La seconde est
   une liste publique modre. Tout le monde peut s'y inscrire mais
   personne ne peut y poster de message,  l'exception des modrateurs.
   Cette liste est principalement ddie 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.

  Inscription

   Pour vous inscrire  une liste, envoyez un email, dont le corps
   contient soit _subscribe lfs-discuss_, soit _subscribe lfs-announce,_
    mailto:majordomo@fist.org

   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 rpondu 
   ce mail, vous serez alors inscrit  la liste.

  Rsilier une inscription

   Pour rsilier votre inscription  une liste, envoyez un email, dont le
   corps contient soit _unsubscribe lfs-discuss_ soit _unsubscribe
   lfs-announce_  l'adresse suivante : mailto:majordomo@fist.org

1.5 Contact

   Envoyez de prfrence toutes vos questions  la liste de diffusion. Si
   vous avez besoin de me contacter personnellement, envoyez un mail 
   l'adresse suivante : mailto:gerard@linuxfromscratch.org

2. Conventions utilises dans ce document

2.1 A propos de $LFS

   Lisez ce qui suit attentivement : tout au long de ce document, vous
   rencontrerez frquemment des rfrences  une variable dont le nom est
   $LFS. Celle-ci doit tre systmatiquement remplace par le point de
   montage de la partition sur laquelle vous crez votre systme LFS. La
   faon de crer et de monter cette partition sera explique en dtail
   au chapitre 4. Dans mon cas, j'utilise le rpertoire /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 ralit 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 crer ou diter.

   Il existe une deuxime mthode qui consiste  dfinir la variable
   d'environnement $LFS. De cette manire, vous tapez les commandes
   comportant une rfrence  $LFS telles quelles et le shell procdera 
   la substitution lui-mme. Pour dfinir $LFS, utilisez la commande :
   export LFS=/mnt/hda5

   Dans ce cas, vous saisissez sans modification la commande cp inittab
   $LFS/etc rencontre dans ce document et le shell excutera en ralit
   cp inittab /mnt/hda5/etc .

   Si vous utilisez cette mthode, il est trs important que la variable
   d'environnement $LFS soit toujours dclare. Si ce n'est pas le cas,
   les occurrences de $LFS prsentes dans les commandes que vous taperez
   seront ignores et le reste sera excut. Ainsi la commande cp inittab
   $LFS/etc sera traduite par le shell en cp inittab /etc avec pour
   consquence d'craser le fichier inittab de votre systme Linux. Un
   fichier comme inittab n'est pas trs difficile  reconstruire, mais
   imaginez ce qui se passera si $LFS n'est pas dfini au cours de
   l'installation de la bibliothque C. Vous endommagerez gravement votre
   systme et  moins que vous ne soyez un expert Linux, vous serez
   oblig de tout rinstaller. Je vous conseille donc d'utiliser la
   mthode de substitution manuelle. Ainsi au pire, si vous vous trompez
   en saisissant le nom du point de montage de votre partition LFS, le
   systme renverra une erreur du type "_no such file or directory_" sans
   aucun dommage pour votre systme. Ne dites pas que je ne vous ai pas
   prvenu ;-)

2.2 Comment tlcharger les applications

   Tout au long de ce document, je supposerai que vous avez enregistr
   tous les paquetages que vous avez tlcharg dans un sous-rpertoire
   de $LFS/usr/src.

   J'utilise par convention le rpertoire $LFS/usr/src/sources. "sources"
   contient les rpertoires 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 modle, ce n'est qu'un exemple. Il est
   par contre prfrable de ne pas conserver de paquetages dans
   $LFS/usr/src car ce rpertoire servira  dcompresser les archives au
   fur et  mesure que nous en aurons besoin.

   Le prochain chapitre contient la liste des paquetages que vous devez
   tlcharger. A ce point du document, la partition destine  recevoir
   le systme 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/<rpertoiredevotrechoix> au terme du
   chapitre 4.

2.3 Comment installer les applications

   Avant de pouvoir faire quelque chose des paquetages, vous devez les
   dsarchiver. Gnralement, 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 dfaut. Ainsi si vous
   tlchargez des archives au format bz, vrifiez que Bzip2 est
   disponible sur votre systme. Je n'expliquerai qu'une seule fois, dans
   ce paragraphe, comment dsarchiver les paquetages, aussi lisez
   attentivement ce qui suit.

     * Commencez par _copier_ les paquetages depuis l'emplacement o vous
       les avez enregistrs vers le rpertoire $LFS/usr/src.
     * Si l'archive est au format tar/gz, dsarchivez-la grce  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 effaons le paquetage juste aprs l'avoir
   dsarchiv car nous n'en avons plus besoin. C'est pourquoi vous devez
   _copier_ l'archive et non la dplacer. Si vous la dplacez, la
   dsarchivez et l'effacez, vous devrez la tlcharger  nouveau lorsque
   vous en aurez besoin.

   Lorsque le paquetage est dsarchiv, un nouveau rpertoire est cr
   dans le rpertoire actif ($LFS/usr/src si vous suivez ce document  la
   lettre). Vous devez vous positionner dans ce rpertoire avant de
   poursuivre l'installation. Finalement tout ce qui prcde peut se
   rsumer  "Dsarchivez xxx". Ainsi lorsque vous lirez cette phrase,
   copiez l'archive dans $LFS/usr/src, dsarchivez-la grce  la commande
   tar et positionnez-vous dans le rpertoire cr. Ensuite vous pouvez
   continuer  suivre les instructions.

   Aprs avoir install un paquetage, vous pouvez en faire deux choses.
   Soit vous effacez le rpertoire qui contient ses sources, soit vous le
   conservez. Quelle que soit votre dcision, je ne m'en porterai pas
   plus mal. Toutefois si vous avez besoin de rutiliser un paquetage
   plus tard dans le document (tous les logiciels du chapitre 7.2 seront
   rinstalls dans le chapitre 7.3), vous devez d'abord effacer le
   rpertoire et dsarchiver  nouveau l'archive. Si vous ne le faites
   pas, vous pourriez avoir quelques problmes inhrents aux paramtres
   utiliss lors de la prcdente compilation. Ceux-ci s'appliquaient 
   votre systme Linux normal mais pas au systme LFS. Mme un simple
   make clean ne suffit pas  nettoyer totalement les sources de
   l'arborescence. Le script configure gnre galement des fichiers
   rpartis dans divers sous-rpertoires et ces fichiers sont rarement
   effacs au cours de l'excution de make clean.

3. Les paquetages que vous devez tlcharger

   Vous trouverez ci-dessous la liste des paquetages que vous devez
   absolument tlcharger pour mener  bien la mthode expose dans ce
   document et obtenir un systme LFS oprationnel. J'ai galement
   indiqu les serveurs sur lesquels ils sont disponibles, mais c'est 
   vous de vous assurer que vous tlchargez bien la dernire version des
   applications. Les versions indiques dans la liste correspondent 
   celles utilises dans ce document et ont donc t testes. Ainsi si
   vous rencontrez le moindre problme que vous ne pouvez rsoudre avec
   les archives que vous avez rcupres, tlchargez la version indique
   dans ce document (dans le cas o vous avez tlcharg une version plus
   rcente).

3.1 Applications indispensables

   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/

3.2 Applications facultatives

   Toutes les applications listes ci-dessous, traites  partir du
   chapitre 13, ne sont pas indispensables. C'est  vous de dterminer
   les paquetages dont vous avez besoin. Par exemple, si vous souhaitez
   pouvoir accder  Internet par le biais du systme 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/

4. Prparer le nouveau systme

4.1 Comment allons-nous procder

   Nous allons construire le systme LFS en utilisant une distribution
   Linux dj en place, comme par exemple Debian, SuSE, Slackware,
   Mandrake, RedHat, etc. Vous n'avez pas besoin de disquette de
   dmarrage particulire. Nous utiliserons tous les outils du systme
   dj en place (compilateur, diteur de liens, diteur de textes et
   quelques autres).

   Si vous ne disposez pas d'un systme dj en place, vous ne pourrez
   pas utiliser la mthode dcrite 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 ge d'au maximum un an devrait convenir. Par ailleurs,
   vous vous viterez pas mal de soucis si cette distribution est base
   sur glibc-2.0 ou mieux. Je n'ai pas pris en compte les systmes bass
   sur Libc5 puisque je n'ai pas eu l'occasion d'en utiliser un.

4.2 Crer une nouvelle partition

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

   Dmarrez le programme fdisk (ou tout partitionneur de votre choix, du
   moment qu'il autorise la cration de partitions Linux) en indiquant le
   disque dur sur lequel vous souhaitez crer la nouvelle partition Linux
   (par exemple fdisk /dev/hda si la nouvelle partition doit tre cre
   sur le disque dur matre du premier contrleur IDE). Crez une
   partition Linux Native, mettez  jour la table de partition et quittez
   fdisk. Si un message vous indique de redmarrer l'ordinateur afin
   d'tre sr 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 appele _partition LFS_ dans la
   suite du document.

4.3 Crer un systme de fichiers ext2 sur la nouvelle partition

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

4.4 Monter la nouvelle partition

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

   Voici en rsum la mthode pour monter la partition LFS :

     * Crz le rpertoire /mnt s'il n'existe pas encore
     * Crz le rpertoire /mnt/xxx o xxx est  remplacer par le nom de
       la partition LFS.
     * Montez la partition LFS en lanant : mount /dev/xxx /mnt/xxx o
       xxx est  remplacer par le nom de la partition LFS.

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

4.5 Crer les rpertoire

   Crez l'arborescence de base, au standard FHS, du systme 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 rpertoires sont crs, copiez les archives
   tlcharges au chapitre 3 dans un sous-rpertoire de $LFS/usr/src
   (vous devez crer ce sous-rpertoire vous-mme).

4.6 Copier le rpertoire /dev

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

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

5. Rendre le systme LFS amorable

5.1 Installer Sysvinit

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

     * Dsarchivez Sysvinit
     * Positionnez-vous dans le rpertoire src
     * Editez le fichier Makefile
     * Quelque part dans ce fichier, mais avant la rgle "all", ajoutez
       cette ligne : _ROOT = $LFS_
     * Prfixez toutes les occurrences /dev des quatre dernires lignes
       par _$(ROOT)_

   Aprs avoir fait cela, les quatre dernires 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 excutant :

make -e LDFLAGS=-static; make install

5.2 Configurer Sysvinit

   Pour que Sysvinit fonctionne, vous devez crer un fichier de
   configuration appropri. Crez 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

5.3 Crer les fichiers passwd et group

   Comme vous pouvez le voir dans le fichier inittab, lorsque nous
   amorons le systme, init dmarre le programme sulogin qui vous
   demandera le mot de passe root. Cela signifie que nous avons besoin de
   crer un fichier de mots de passe sur le systme LFS.

     * Crez le fichier $LFS/etc/passwd contenant:
       _root:s394ul1Bkvmq2:0:0:root:/root:/bin/bash_
     * Crez le fichier $LFS/etc/group contenant: _root::0: _

   Le mot de passe encod dans le fichier passwd est: _lfs123_

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

5.4 Installer le shell Bash

   Aprs que sulogin ait valid le mot de passe root, il tentera de
   lancer un interprteur de commandes (plus simplement appel _shell_),
   gnralement Bash. Nous devons donc le compiler. Mais comme aucune
   bibliothque n'est encore disponible sur le systme, nous devons le
   lier statiquement, ainsi que nous avons procd pour Sysvinit.

     * Dsarchivez Bash
     * Installez Bash en lanant:

./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

5.5 Ajouter une entre  LILO

   Afin de pouvoir dmarrer le systme 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 systme. 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
   dmarrage de la machine lorsque LILO vous demande le systme que vous
   souhaitez dmarrer.

   Maintenant lancez lilo afin de mettre  jour l'amorceur du systme.

5.6 Tester le systme

   Aprs avoir effectu les oprations prcdentes, vous pouvez vrifier
   s'il est possible de se connecter au systme LFS en redmarrant la
   machine. N'oubliez pas  l'affichage de LILO de taper le label que
   vous avez choisi plus haut. Si tout se droule 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
   arrter le systme par l'intermdiaire de la commande shutdown. Bien
   que ce programme soit prsent, il vous renverra comme erreur "You
   don't exist. Go away" si vous essayez de l'excuter. Cela signifie que
   le systme est incapable de localiser le fichier des mots de passe
   (/etc/passwd). Sulogin, bien que statiquement li, dpend quand mme
   de la bibliothque NSS (Name Server Switch) qui fait partie de la
   bibliothque C que nous installerons ultrieurement. La bibliothque
   NSS est utilise dans ce cas pour indiquer  sulogin o se trouve le
   fichier de mots de passe.

   Pour le moment, vous pouvez redmarrer le systme en utilisant reboot
   -f . Cette commande outrepassera le redmarrage du systme normalement
   opr par shutdown et redmarrera instantanment. Comme le systme de
   fichiers est mont en lecture seule, cette opration n'endommagera
   rien. Par contre vous pourriez tre inform au prochain dmarrage que
   le systme de fichiers n'a pas t correctement dmont et qu'il faut
   lancer e2fsck pour vrifier s'il n'y a pas de problme.

6. Installer un noyau

6.1 Remarque au sujet de ftp.kernel.org

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

6.2 Configurer le noyau

     * Renommez le rpertoire /usr/src/linux (mme 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 grce 
       la commande rm -r /usr/include/linux /usr/include/asm
     * Dsarchivez les sources du noyau dans le rpertoire /usr/src/ (un
       rpertoire /usr/src/linux sera cr)
     * Crez les liens symboliques /usr/include/linux et /usr/include/asm
       en excutant :

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

   Regardez dans le rpertoire /usr/src/linux/include quels sont les
   sous-rpertoires asm-* prsents. 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 mthode pour configurer le noyau (consultez le
       fichier README pour plus dtails concernant la mthode de
       configuration) et assurez-vous de ne rien configurer en module
       pour le moment car nous ne disposerons pas des applications
       ncessaires pour charger des modules avant un bout de temps.
     * Aprs en avoir termin avec la configuration du noyau, lancez make
       dep
     * Compilez-le grce  la commande make bzImage
     * Copiez le fichier arch/<cpu>/boot/bzImage dans /boot (ou 
       l'endroit utilis par votre systme Linux pour enregistrer les
       images noyau)
     * Vous pouvez ventuellement renommer le fichier /boot/bzImage en
       quelque chose comme /boot/lfskernel
     * Copiez l'arborescence complte des sources du noyau sur la
       partition LFS grce  la commande : cp -av /usr/src/linux
       $LFS/usr/src
     * Crez 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

6.3 Mettre  jour LILO

     * 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.

6.4 Tester le systme

   Redmarrez votre systme sous LFS. Vrifiez que le nouveau noyau
   n'effectue aucune opration anormale (comme un crash).

7. Installer les applications de base

   Dans ce chapitre, nous installerons toutes les applications qui
   constituent un systme Linux de base. Au terme de ce chapitre vous
   disposerez d'un systme Linux pleinement oprationnel. Les chapitres
   suivants traitent de sujets facultatifs comme par exemple la
   configuration du rseau, des serveurs et clients Internet (telnet,
   ftp, http, email) et du systme 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'intrt  consulter
   le chapitre ddi.

   Il y a un certain nombre de paquetages que vous devez imprativement
   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 dcompresser des
   archives, compiler et diter les liens des applications. Tous les
   outils correspondants doivent tre installs avant toute chose. Ils
   seront de plus lis statiquement. En effet votre systme Linux utilise
   peut-tre une version de bibliothque C diffrente de celle qui sera
   utilise par le systme LFS. Or les applications que vous allez
   installer dans cette section seraient thoriquement lies avec la
   bibliothque C de votre systme normal. Ceci pourrait engendrer des
   conflits de bibliothque si vous excutez ces applications sous le
   systme LFS. C'est pourquoi nous devons les lier statiquement dans un
   premier temps. Puis au cours de la mise en place du systme LFS nous
   lierons  nouveau ces applications avec la bibliothque C utilise par
   le systme LFS.

7.1 A propos des symboles de dbogage

   Par dfaut, chaque programme et bibliothque est compil avec les
   symboles de dbogage. Cela signifie que vous pouvez excuter ce
   programme ou cette bibliothque par l'intermdiaire d'un dbogueur et
   que ce dernier produira une sortie de l'excution plus comprhensible.
   Toutefois ces symboles de dbogage augmentent la taille du fichier
   produit de manire significative. Par convention, tous les logiciels
   installs dans ce document incluront ces symboles (puisque je ne sais
   pas si la majorit des lecteurs fait ou non du dbogage). Libre  vous
   de supprimer par la suite les symboles de dbogage en utilisant le
   programme strip de la manire 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 dbogage sur la
   taille des fichiers, voici quelques statistiques :

     * Binaire Bash statique avec symboles de dbogage : 2.3MB
     * Binaire Bash statique sans symbole de dbogage : 645KB
     * Binaire Bash dynamique avec symboles de dbogage : 1.2MB
     * Binaire Bash dynamique sans symbole de dbogage : 478KB
     * $LFS/usr/lib (fichiers glibc and gcc) avec symboles de dbogage :
       87MB
     * $LFS/usr/lib (fichiers glibc and gcc) sans symbole de dbogage :
       16MB

   Ces tailles sont donnes  titre indicatif et dpendent grandement du
   compilateur et de la version de bibliothque C utiliss, mais au final
   les rsultats avec ou sans symboles de dbogage seront comparables.
   Pour ma part, au terme de ce chapitre et aprs avoir supprim les
   symboles de dbogage des fichiers excutables et bibliothques, j'ai
   rcupr environ 102 Mo d'espace disque. Diffrence remarquable. Mais
   elle sera encore plus grande en ralisant cette opration au terme du
   document.

7.2 Prparer le systme LFS pour installer les applications de base

  Installer Binutils

     * Dsarchivez binutils
     * Installez le paquetage en tapant :

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

  Installer Bzip2

     * Dsarchivez Bzip2
     * Editez le fichier Makefile
     * Trouvez les lignes commenant par : $(CC) $(CFLAGS) -o
     * Remplacez-les par: $(CC) $(CFLAGS) $(LDFLAGS) -o
     * Installez le paquetage en lanant:

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

  Installer Diffutils

     * Dsarchivez diffutils
     * Installez le paquetage en lanant:

./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
   tlcharger une version corrige du paquetage  l'adresse :
   http://www.linuxfromscratch.org/download/diffutils-2.7-fixed.tar.gz

  Installer Fileutils

     * Dsarchivez fileutils
     * Installer le paquetage en lanant :

./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

  Installer GCC sur le systme normal si ncessaire

   Afin de compiler Glibc-2.1.3, le compilateur gcc-2.95.2 doit tre
   install sur le systme Linux normal. Remarquez que n'importe quelle
   version suprieure ou gale  2.8 fera l'affaire. Nanmoins de
   nombreux systmes bass 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
   systme normal n'crasera pas la version dj en place. Avant de
   procder  cette installation, assurez-vous que vous en avez
   rellement besoin. Vrifiez le numro de version de votre compilateur
   au moyen de la commande gcc --version. S'il est suprieur ou gal 
   2.8, tout va bien, vous n'avez pas besoin de faire la moindre mise 
   jour. Cela dit, si vous rencontrez des problmes lors de la
   compilation de glibc, n'hsitez pas  installer gcc-2.95.2

     * Dsarchivez GCC
     * Installez le paquetage en lanant:

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

  Installer GCC sur le systme LFS

     * Dsarchivez GCC
     * Installez le paquetage en lanant:

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

  Cration des liens symboliques ncessaires

   Il est ncessaire de crer quelques liens symboliques afin que chaque
   application puisse trouver le compilateur et le prprocesseur. 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 systme LFS) et d'autres, dans /usr/bin.

     * Crez les liens symboliques suivants grce 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 rpertoire o rside gcc-2.95.2
   (i686-unknown-linux dans mon cas). Gnralement, vous trouverez deux
   rpertoires diffrents.

  Installer Glibc

   Remarque concernant le paquetage glibc-crypt:

-*-*-*-*-*-
Glibc-crypt n'est pas inclus dans la distribution principale
 de la bibliothque GNU C du fait de restrictions gouvernementales, principalem
ent
 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, mme par Internet. Ainsi ne le tlchargez pas sur le site FTP
 principal de la FSF (ftp.gnu.org) si vous rsidez  l'extrieur des Etats-Unis
.
 Ce logiciel a t compltement dvelopp  l'extrieur des Etats-Unis.-*-*-*-*
-*-

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

     * Dsarchivez Glibc
     * Copiez les archives glibc-crypt et glibc-linuxthreads dans le
       rpertoire cr au cours du dsarchivage de Glibc
     * Dcompressez ces archives depuis ce point mais ne vous positionnez
       pas dans les rpertoires crs par cette nouvelle dcompression.
       Contentez-vous de dcompresser ces archives.
     * Crez un nouveau fichier configparms contenant:

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

     * Si votre systme Linux normal dispose d'une version de gcc apte 
       compiler glibc, installez ce paquetage en lanant :

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 systme 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, procdez 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

  Copier les anciens fichiers de la bibliothque NSS

   Si votre systme Linux normal est bas sur glibc-2.0.x, vous devez
   copier les fichiers de la bibliothque NSS sur le systme LFS.
   Quelques programmes lis statiquement ont besoin de cette
   bibliothque, notamment ceux recherchant les noms, identifiants et
   groupes des utilisateurs. Vous pouvez vrifier quelle est la version
   de bibliothque C utilise grce  la commande : ls -l libc.so.*

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

   Votre systme 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 numro de micro
   version comme par exemple 7), copiez les fichiers de la bibliothque
   NSS grce  la commande : cp -av /lib/*nss* $LFS/lib

  Installer grep

     * Dsarchivez grep
     * Installez le paquetage en lanant:

./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
   tlcharger une version corrige du paquetage  l'adresse :
   http://www.linuxfromscratch.org/download/grep-2.4-fixed.tar.gz

  Installer gzip

     * Dsarchivez gzip
     * Installez le paquetage en lanant:

./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 tlcharger une version
   corrige du paquetage  l'adresse :
   http://www.linuxfromscratch.org/download/gzip-1.2.4-fixed.tar.gz

  Installer Make

     * Dsarchivez Make
     * Installez le paquetage en lanant:

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

  Installer Sed

     * Dsarchivez sed
     * Installez le paquetage en lanant:

./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
   tlcharger une version corrige du paquetage  l'adresse :
   http://www.linuxfromscratch.org/download/sed-3.02-fixed.tar.gz

  Installer Sh-utils

     * Dsarchivez sh-utils
     * Installez le paquetage en lanant:

./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

  Installer Tar

     * Dsarchivez tar
     * Installez le paquetage en lanant:

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

  Installer Textutils

     * Dsarchivez textutils
     * Installez le paquetage en lanant:

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

  Installer Util-linux

     * Dsarchivez util-linux
     * Installez le paquetage en lanant:

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

7.3 Installer les applications de base

   L'installation de toutes les applications est franchement rptitive
   et vous pensez peut-tre qu'il serait plus simple de donner un mode
   d'emploi gnrique 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 dlibrment 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 dmarrer le
   systme LFS. Pour ce faire, vous devez dterminer quelle partition est
   utilise comme swap par votre systme. Vous trouverez cette
   information dans le fichier /etc/fstab. La ligne concerne ressemble 
   : _/dev/hda6 none swap sw 0 0_ . Le quatrime 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 dsignation de cette partition
   (comme par exemple /dev/hda6 dans notre cas). Lorsque vous avez
   dtermin quelle partition est celle de swap, vous pouvez redmarrer
   la machine.

  Remonter la partition et activer le swap

   Avant d'tre en mesure d'installer des applications supplmentaires
   depuis le systme LFS, vous devez remonter la partition en mode
   lecture/criture. Il est galement ncessaire d'activer la partition
   de swap de manire  viter tout risque de saturation de mmoire au
   cours de compilations importantes (par exemple la compilation de gcc):

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

  Installer GCC

     * Dsarchivez 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

  Installer Bison

     * Dsarchivez bison et installez-le en tapant:

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

  Installer Mawk

     * Dsarchivez mawk et installez-le en tapant:

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

  Installer Findutils

     * Dsarchivez 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 tlcharger une version
   corrige du paquetage  l'adresse :
   http://www.linuxfromscratch.org/download/findutils-4.1-fixed.tar.gz

  Installer Termcap

     * Dsarchivez Termcap et installez-le en tapant:

./configure
make; make install

  Installer Ncurses

     * Dsarchivez ncurses et installez-le en tapant:

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

  Installer Less

     * Dsarchivez Less et installez-le en tapant:

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

  Installer Perl

     * Dsarchivez Perl et installez-le en tapant:

./configure.gnu
make; make install

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

  Installer M4

     * Dsarchivez M4 et installez-le en tapant:

./configure
make; make install

  Installer Texinfo

     * Dsarchivez Texinfo et installez-le en tapant:

./configure
make; make install

  Installer Autoconf

     * Dsarchivez Autoconf et installez-le en tapant:

./configure
make; make install

  Installer Automake

     * Dsarchivez Automake et installez-le en tapant:

./configure
make install

  Installer Bash

     * Dsarchivez Bash et installez-le en tapant:

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

  Installer Flex

     * Dsarchivez Flex et installez-le en tapant:

./configure
make; make install

  Installer Binutils

     * Dsarchivez Binutils et installez-le en tapant:

./configure
make; make install

  Installer Bzip2

     * Dsarchivez Bzip2 et installez-le en tapant:

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

  Installer Diffutils

     * Dsarchivez Diffutils et installez-le en tapant:

./configure
make; make install

  Installer E2fsprogs

     * Dsarchivez E2fsprogs et installez-le en tapant:

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

  Installer File

     * Dsarchivez File et installez-le en tapant:

./configure
make; make install

  Installer Fileutils

     * Dsarchivez 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

  Installer Grep

     * Dsarchivez Grep et installez-le en tapant:

./configure
make; make install

  Installer Groff

     * Dsarchivez Groff et installez-le en tapant:

./configure
make; make install

  Installer Gzip

     * Dsarchivez Gzip et installez-le en tapant:

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

  Installer Ld.so

     * Dsarchivez Ld.so et installez-le en tapant:

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

  Installer Libtool

     * Dsarchivez Libtool et installez-le en tapant:

./configure
make; make install

  Installer Linux86

     * Dsarchivez Linux86 et installez-le en tapant:

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

  Installer Lilo

     * Dsarchivez Lilo et installez-le en tapant:

make; make install

  Installer Make

     * Dsarchivez Make et installez-le en tapant:

./configure
make; make install

  Installer Sh-Utils

     * Dsarchivez 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

  Installer Shadow Password Suite

     * Dsarchivez 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

  Installer Man

     * Dsarchivez Man et installez-le en tapant:

./configure -default
make all; make install

  Installer Modutils

     * Dsarchivez Modutils et installez-le en tapant:

./configure
make; make install

  Installer Procinfo

     * Dsarchivez Procinfo et installez-le en tapant:

make; make install

  Installer Procps

     * Dsarchivez Procps et installez-le en tapant:

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

  Installer Psmisc

     * Dsarchivez Psmisc et installez-le en tapant:

make; make install

  Installer Sed

     * Dsarchivez Sed et installez-le en tapant:

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

  Installer le dmon start-stop

     * Dsarchivez 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

  Installer Sysklogd

     * Dsarchivez Sysklogd et installez-le en tapant:

make; make install

  Installer Sysvinit

     * Dsarchivez Sysvinit et installez-le en tapant:

cd src
make; make install

  Install Tar

     * Dsarchivez Tar et installez-le en tapant:

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

  Installer Textutils

     * Dsarchivez Textutils et installez-le en tapant:

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

  Installer Vim

     * Dcompressez les archives Vim-rt et Vim-src et installez-les en
       tapant:

./configure
make; make install

  Installer Util-linux

     * Dsarchivez 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 lanant :

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

7.4 Suppression des anciens fichiers de la bibliothque NSS

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

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

7.5 Configurer les applications

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

  Configurer Glib

   Vous devez crer le fichier /etc/nsswitch.conf. Bien que glibc
   fournisse des valeurs par dfaut si ce fichier est absent ou corrompu,
   celles-ci sont incompatibles avec le fonctionnement rseau du systme
   que nous aborderons plus tard. Par ailleurs, vous devez galement
   rgler le fuseau horaire. Voici donc comment procder :

     * Crez 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 rpondez 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.
     * Crez un lien symbolique pour l'heure locale en lanant : 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 crer 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

  Configurer LILO

   Il n'est pas ncessaire de crer le fichier de configuration de lilo
   de toute pice. Utilisez plutt le fichier de votre systme Linux
   normal. Ce fichier est diffrent pour chaque machine et je ne peux
   donc pas vous donner de modle. Comme il n'y a aucune raison de
   modifier la configuration LILO actuelle de votre systme,
   contentez-vous de copier le fichier original sans le modifier.

     * Crez le rpertoire /mnt/original
     * Montez votre systme Linux normal sur ce point de montage en
       lanant 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 systme Linux normal ne sauvegarde pas les images des noyaux
   dans le rpertoire /mnt/original/boot, cherchez alors dans le fichier
   lilo.conf l'emplacement adquat et copiez les images dans le
   rpertoire 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 mthodes sont valables, 
   vous de choisir.

  Configurer Sysklogd

     * Crez le rpertoire /var/log grce  : mkdir /var/log
     * Crez 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

  Configurer Shadow Password Suite

   Ce paquetage contient notamment les utilitaires ncessaires pour
   modifier les mots de passe des utilisateurs et ajouter ou supprimer de
   nouveaux groupes et utilisateurs. Je n'expliquerai pas ce que
   '_password shadowing_' 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 dcidez
   d'utiliser le support '_shadow_', tous les programmes qui ont besoin
   de vrifier les mots de passe (xdm, les dmons ftp, pop3d, etc)
   doivent tre compatible avec ce support.

   Mme si vous pensez que vous n'avez pas besoin d'utiliser les
   '_shadowed passwords_' (NDT: littralement mots de passe masqus)
   (aprs avoir lu la documentation  ce sujet), vous devez nanmoins
   conserver l'archive correspondante car les outils qu'elle contient
   fonctionnent galement sans '_shadow password_'. Notez que vous pouvez
   choisir  tout moment d'activer ou de dsactiver les mots de passe
   '_shadow_'.

   Consultez la section 5 du fichier Shadow-Password-HOWTO. Vous y
   apprendrez comment tester si le systme '_shadow_' fonctionne et si ce
   n'est pas le cas, comment le dsactiver. S'il ne fonctionne pas et que
   vous n'avez effectu aucune modification, vous vous retrouverez avec
   un systme totalement inutilisable lorsque vous vous voudrez vous
   connecter. Vous pouvez facilement remdier  ce problme en passant
   comme paramtre init=/sbin/sulogin au noyau. Il sera alors ncessaire
   de dcompresser l'archive util-linux, d'aller dans le rpertoire
   login-utils, de compiler le programme login et de le copier  la place
   de /bin/login. La situation n'est jamais vraiment dsespre, du moins
   pas sous Linux. Cela dit, vous pouvez vous pargner bien des
   dsagrments en vous documentant et en effectuant les tests
   ncessaires. ;-)

  Configurer Sysvinit

   Aprs avoir modifi comme suit le fichier /etc/inittab, vous aurez la
   possibilit de vous connecter au systme par l'intermdiaire 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

  Crer le fichier /var/run/utmp

   Les programmes comme login, shutdown ont besoin d'crire dans le
   fichier /var/run/utmp. Celui-ci contient des informations concernant
   les personnes actuellement connectes au systme et la date du dernier
   arrt du systme.

     * Crez le fichier /var/run/utmp en utilisant : touch /var/run/utmp
     * Modifiez les permissions en lanant : chmod 644 /var/run/utmp

8. Crez les scripts de dmarrage du systme

   Ces scripts sont lancs au dmarrage du systme et sont responsables
   de diverses tches comme, par exemple, monter le systme de fichiers
   en lecture/criture, activer le _swap_, rgler quelques paramtres
   systmes et lancer divers dmons dont le systme a besoin.

8.1 Prparer les rpertoires et les fichiers principaux

   Dans cette section vous avez besoin du paquetage Sysvinit.

     * Crez les rpertoires ncessaires 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 rpertoire contenant l'archive Sysvinit
       dcompresse
     * Copiez le fichier Debian/etc/init.d/rc vers /etc/init.d
     * Allez dans le rpertoire /etc/init.d
     * Crez 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

8.2 Crer le script de redmarrage reboot

     * Crez 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

8.3 Crer le script d'arrt halt

     * Crez 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

8.4 Crer le script mountfs

     * Crez 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

8.5 Crer le script umountfs

     * Crez 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

8.6 Crer le script sendsignals

     * Crez 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

8.7 Crer le script de dmarrage checkroot

     * Crez 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

8.8 Crer le script de dmarrage sysklogd

     * Crez 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

8.9 Crer les liens symboliques et fixer les permissions

     * Paramtrez 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

8.10 Crer le fichier /etc/fstab

     * Crez 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

9. Configurer la base du rseau

9.1 Installer Netkit-base

     * Dsarchivez Netkit-base et installez-le en tapant:

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

9.2 Installer Net-tools

     * Dsarchivez Net-tools et installez-le en tapant:

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

  Crer le script de dmarrage /etc/init.d/localnet

     * Crez 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

  Paramtrer les permissions et les liens symboliques

     * Fixez les permissions adquates en lanant : chmod 755
       /etc/init.d/localnet
     * Crez les liens symboliques appropris en lanant : cd /etc/rcS.d;
       ln -s ../init.d/localnet S03localnet

  Crer le fichier /etc/hostname

   Crez un nouveau fichier /etc/hostname contenant le nom d'hte 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 rseau (yoda - gandalf - neo - etc).

  Crez le fichier /etc/hosts

   Si vous souhaitez configurer une carte rseau, 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 rseau 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 rseau, vous aurez
   simplement besoin d'un FQDN. Des programmes comme Sendmail en ont
   besoin pour travailler correctement. D'ailleurs Sendmail ne dmarrera
   mme 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 rseau:

# 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 rseau:

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

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

  Crer le fichier /etc/init.d/ethnet

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

   Crez 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

  Paramtrer les permissions et liens symboliques pour /etc/init.d/ethnet

     * Fixez correctement les permissions en lanant chmod 755 ethnet
     * Crez les liens symboliques appropris en lanant cd ../rc2.d; ln
       -s ../init.d/ethnet S10ethnet

  Tester la configuration du rseau

     * Dmarrez le script localnet en lanant /etc/init.d/localnet
     * Dmarrez le script ethnet, si vous en avez cr un, en lanant
       /etc/init.d/ethnet
     * Testez si /etc/hosts est correctement configur en lanant:

ping <votre FQDN>
ping <votre nom d'hte>
ping localhost
ping 127.0.0.1
ping 192.168.1.1 (uniquement si vous avez configur votre carte rseau)

   Les cinq commandes ping qui prcdent doivent fonctionner sans
   problme. Si ce n'est pas le cas, la base du rseau n'est pas
   correctement configure.

9.3 Tester le systme

   Maintenant que tous les logiciels sont installs, que les scripts de
   dmarrage existent et que le rseau local est oprationnel, il est
   temps de redmarrer l'ordinateur afin de tester si ces nouveaux
   scripts fonctionnent correctement. Dans un premier temps, lorsque vous
   crez ces scripts, il est prfrable de les excuter manuellement
   depuis le rpertoire /etc/init.d afin de corriger les erreurs les plus
   videntes (erreurs de saisie notamment). Lorsque ces scripts seront
   oprationnels, il faudra s'assurer qu'ils se comportent galement
   correctement au dmarrage et  l'arrt du systme. Il n'existe qu'une
   seule faon de vrifier cela. Redmarrez votre systme LFS grce  la
   commande shutdown -r now. Au terme de ce redmarrage, vous arriverez 
   une invite normale, comparable  ce que vous avez sous votre systme
   Linux normal (sauf si vous utilisez un gestionnaire d'affichage comme
   XDM, KDM etc).

   A ce niveau, votre systme LFS basique est oprationnel. 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 bibliothques, certains programmes ne
   fonctionneront pas. Ainsi Lynx a besoin de la bibliothque zlib. De
   plus zlib n'est pas uniquement utilise par Lynx. A vous donc de
   vrifier ces problmes de dpendance.

10. Installer les dmons rseau

10.1 Configurer SMTP

  Crer les groupes et utilisateurs

   Crez 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

  Crer les rpertoires

   Le courrier lectronique sortant est stock dans le rpertoire
   /var/spool/mqueue . Le courrier entrant est transmis  Procmail par
   Sendmail, puis stock dans le rpertoire /var/mail. Crez ces
   rpertoires 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

  Installer Sendmail

     * Dsarchivez Sendmail et installez-le en tapant:

cd src
./Build; ./Build install


  Configuring Sendmail

   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 crer 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 rpertoire cf des sources
     * Crez 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)

     * Crez un fichier ostype/LFS.m4 vide en lanant touch ostype/LFS.m4
     * Compilez le fichier lfs.mc en lanant m4 m4/cf.m4 cf/lfs.mc >
       cf/lfs.cf
     * Copiez cf/lfs.cf vers /etc/sendmail.cf
     * Crez un fichier /etc/aliases vide en lanant touch /etc/aliases
     * Initialisez cette base de donnes vide en tapant : sendmail -v -bi

  Installer Procmail

     * Dsarchivez Procmail et installez-le en tapant:

make; make install; make install-suid


  Crer le script de dmarrage /etc/init.d/sendmail

     * Crez 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

  Paramtrer les permissions et liens symboliques

     * Fixez les permissions appropries en lanant chmod 755
       /etc/init.d/sendmail
     * Crez les liens symboliques adquats en lanant :

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

10.2 Configurer FTP

  Crer les groupes et utilisateurs

     * Crez les groupes ncessaires en lanant :

groupadd -g 65534 nogroup
groupadd -g 4 ftp

     * Crez les utilisateurs ncessaires en lanant :

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

  Installer Proftpd

     * Dsarchivez Proftpd et installez-le en tapant:

./configure
make; make install

  Crer le script de dmarrage /etc/init.d/proftpd

     * Crez 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

  Paramtrer les permissions et les liens symboliques

     * Fixez les permissions appropries en lanant : chmod 755
       /etc/init.d/proftpd
     * Crez les liens symboliques ncessaires en lanant :

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

10.3 Configurer HTTP

  Installer Apache

     * Dsarchivez Apache et installez-le en tapant :

./configure
make; make install

  Configurer Apache

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

     * Editez le fichier /usr/share/misc/man.conf
     * Ajoutez cette ligne aprs les autres lignes commenant par MANPATH
       : _MANPATH /usr/apache/man_

  Crer le script de dmarrage /etc/init.d/apache

     * Crez 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

  Paramtrer les permissions et liens symboliques

     * Fixez les permissions appropries en lanant chmod 755
       /etc/init.d/apache
     * Crez les liens symboliques appropris en lanant :

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

10.4 Configurer Telnet

  Installer le dmon et le client telnet

     * Dsarchivez Netkit-telnet et installez-le en tapant:

./configure
make; make install

  Crer le fichier de configuration /etc/inetd.conf

     * Crez 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

  Crer le script de dmarrage /etc/init.d/inetd

     * Crez 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

  Paramtrer les permissions et liens symboliques

     * Fixez les permissions appropries en lanant : chmod 755
       /etc/init.d/inetd
     * Crez les liens symboliques appropris en lanant :

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

10.5 Configurer PPP

  Configurer le noyau

   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 intgr, soit vous compilez le support PPP en module
   qui sera charg lorsque ncessaire. Quelle que soit la mthode que
   vous prfrez, vous devez recompiler le noyau maintenant s'il ne
   supporte pas le protocole PPP.

  Crer le groupe

     * Crez le groupe du dmon PPP en lanant : groupadd -g7 daemon

  Installer PPP

     * Dsarchivez PPP et installez-le en tapant :

./configure
make; make install

  Crer le fichier /etc/resolv.conf

     * Crez 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

  Crer le fichier /etc/ppp/peers/provider

     * Crez un rpertoire /etc/ppp/peers
     * Crez 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

  Crer le fichier /etc/chatscripts/provider

     * Crez le rpertoire /etc/chatscripts
     * Crez 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 <numro de tlphone 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

  Remarque concernant l'authentification des mots de passe

   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'Accs Internet) en utilisant ces
   scripts de communication plutt qu'en utilisant l'authentification pap
   ou chap. Bien que mon FAI supporte pap, j'ai choisi de procder de
   faon lgrement diffrente, avec les avantages et inconvnients que
   cette mthode comporte. Dans mon cas, les avantages sont plus nombreux
   que les inconvnients. En fait, en utilisant cette mthode, j'ai plus
   de contrle sur la procdure 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
   fentre dans laquelle j'excute

   tail -f /var/log/syslog de manire  pouvoir voir quand (avec mon FAI
   ce serait plutt 'si') les informations comme l'identifiant et le mot
   de passe sont envoys.

11. Installer les clients rseau

11.1 Installer les clients Email

  Installer Mailx

     * Dsarchivez Mailx et installez-le en tapant

make; make install

  Installer Mutt

   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 prfr, installez-le. Aprs tout, c'est votre systme,
   pas le mien. Notez que, si votre client est sous X Window, vous devrez
   attendre le chapitre concernant l'installation du systme X Window
   pour pouvoir l'installer.

     * Dsarchivez Mutt et installez-le en tapant:

./configure
make; make install


  Installer Fetchmail

     * Dsarchivez Fetchmail et installez-le en tapant:

./configure
make; make install


  Tester le systme email

   Il est grand temps de tester notre systme de courrier lectronique.

     * Lancez Sendmail en tapant /usr/sbin/sendmail -bd (vous devez
       indiquer le chemin d'accs  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 lanant echo "Ceci est un email d'essai" |
       mail -s test root
     * Dmarrez le programme mail, vous devez voir apparatre votre mail.
     * Crez un nouvel utilisateur en lanant useradd -m testuser; passwd
       testuser
     * Envoyez un mail  ce nouvel utilisateur en lanant 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 mme manire que vous avez envoy un
       mail  testuser.

   Si toutes ces tapes se sont termines correctement, vous tes parvenu
    configurer un systme mail local. Cela ne signifie pas qu'il est
   oprationnel pour Internet. Vous pouvez supprimer l'utilisateur de
   test en lanant userdel -r testuser

11.2 Installer le client FTP

  Installer Netkit-ftp

     * Dsarchivez Netkit-ftp et installez-le en tapant:

./configure
make; make install

  Tester le systme FTP

     * Lancez le dmon Pro FTP en tapant : /etc/init.d/proftpd start
     * Ouvrez une session FTP sur l'hte local en tapant : ftp localhost
     * Connectez-vous en tant qu'utilisateur anonyme et dconnectez-vous
        nouveau.

11.3 Installer le client HTTP

  Installer Zlib

   Zlib est une bibliothque de compression utilise par des programmes
   comme zip et unzip de PKware. Lynx utilise cette bibliothque pour
   compresser certains fichiers.

     * Dsarchivez Zlib et installez-le en tapant:

./configure --shared
make; make install

  Installer Lynx

     * Dsarchivez Lynx et installez-le en tapant:

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

  Tester le systme HTTP

     * Dmarrez le dmon Apache en tapant : /etc/init.d/apache start
     * Dmarrez une session http vers l'hte local en tapant : lynx
       http://localhost
     * Quittez lynx.

11.4 Installer le client Telnet

   Le client Telnet a dj t install lorsque nous avons mis en place
   le dmon correspondant, au chapitre prcdent.

  Tester le systme Telnet

     * Dmarrez le dmon Serveur Internet (et avec lui telnetd) en tapant
       : /etc/init.d/inetd start
     * Dmarrez une session telnet vers l'hte local en tapant : telnet
       localhost
     * Connectez et dconnectez-vous.

11.5 Installer les clients PPP

  Crer le script de connexion

     * Crez 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

  Crer le script de dconnexion

     * Crez 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

  Tester le systme PPP

     * Connectez-vous  Internet en tapant pon
     * Essayez de vous connecter  un site comme
       http://www.linuxfromscratch.org
     * Dconnectez-vous d'Internet en lanant poff

12. Installer le systme X Window

12.1 Installer X

     * Dsarchivez 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 droule sans problme. Crer
   des liens symboliques ne rsoudra pas le problme, au contraire cela
   en crera 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 rcrire ces fichiers si vous le
   souhaitez, pour ma part, je m'abstiendrai.

12.2 Crer /etc/ld.so.conf

   Crez 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

12.3 Crer le lien symbolique /usr/include/X11

     * Afin que le prprocesseur trouve les fichiers X11/*.h, vous devez
       crer le lien symbolique suivant : ln -s /usr/X11R6/include/X11
       /usr/include/X11

12.4 Crer le lien symbolique /usr/X11

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

     * Crez le lien symbolique /usr/X11 en tapant ln -s /usr/X11R6
       /usr/X11

12.5 Ajouter /usr/X11/bin  la variable d'environnement $PATH

   Il y a diffrentes mthodes pour ajouter le chemin /usr/X11/bin  la
   variable d'environnement $PATH . Voici une faon de procder :

     * Crez un nouveau fichier /root/.bashrc contenant: _export
       PATH=$PATH:/usr/X11/bin_

   Vous devez vous dconnecter et vous reconnecter au systme afin que
   cette modification soit prise en compte.

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

12.6 Configurer X

     * Configurez le serveur X en lanant xf86config

   Si le fichier XF86Config cr par xf86config n'est pas apte  faire
   dmarrer le serveur, il est alors prfrable de copier le fichier
   XF86Config existant sur votre systme Linux normal dans /etc. Dans
   certains cas, vous serez mme oblig de modifier manuellement ce
   fichier de configuration lorsque xf86config sera incapable de grer
   certains aspects de la configuration. Quoi qu'il en soit, modifier
   manuellement ce fichier est trs long et le rsultat obtenu n'est pas
   toujours celui attendu.

12.7 Tester X

   Maintenant que X est configur proprement, il est temps de faire un
   premier test.

     * Lancez le serveur X en tapant startx

   Le serveur X dmarrera et affichera trois terminaux xterm  l'cran.
   Si c'est effectivement le cas, votre systme X fonctionne
   correctement.

12.8 Installer Window Maker

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

12.9 Prparer le systme pour l'installation de Window Maker

  Installer libPropList

     * Dsarchivez libPropList et installez-le en tapant:

./configure
make; make install

  Installer libXpm

     * Dsarchivez libXpm et installez-le en tapant :

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

   Cette installation lgrement diffrente est due  un _bug_ dans un
   des fichiers Makefile. Il dpend des fichiers du rpertoire lib qui ne
   sont pas encore installs mais ne les cherche pas dans le rpertoire
   lib. Nous devons donc installer ces fichiers avant de compiler le
   paquetage.

  Installer libpng

     * Dsarchivez libpng et installez-le en tapant :

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

  Installer libtiff

     * Dsarchivez libtiff et installez-le en tapant:

./configure
make; make install

  Installer libjpeg

     * Dsarchivez libjpeg et installez-le en tapant:

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

  Installer libungif

     * Dsarchivez libungif et installez-le en tapant:

./configure
make; make install

  Installer WindowMaker

     * Dsarchivez WindowMaker et installez-le en tapant:

./configure
make; make install

12.10 Mettre  jour le cache du chargeur dynamique

     * Mettez  jour le cache du chargeur dynamique en lanant: ldconfig

12.11 Configurer Window Maker

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

     * Configurer Window Maker en lanant wmaker.inst

12.12 Tester Window Maker

     * Dmarrez le serveur X et vrifiez que le gestionnaire de fentres
       Window Maker dmarre convenablement. Pour ce faire, utilisez la
       commande startx

13. Ressources

   Une liste de livres, HOWTOs et autres documents dont vous pourriez
   avoir besoin. Cette liste est loin d'tre exhaustive mais contient le
   ncessaire pour dmarrer. Nous esprons tre en mesure de la complter
   au fur et  mesure que nous trouverons de nouveaux documents utiles.

13.1 Livres

     * _Sendmail_ publi par O'Reilly. ISBN: 1-56592-222-0
     * _Linux Network Administrator's Guide_ publi par O'Reilly. ISBN:
       1-56592-087-2
     * _Running Linux_ publi par O'Reilly. ISBN: 1-56592-151-8

13.2 HOWTOs

     * ISP-Hookup-HOWTO  l'adresse http://www.linuxdoc.org
     * Linux Network Administrator's Guide en ligne  l'adresse :
       http://www.linuxdoc.org

13.3 Autre

     * Les diverses pages de manuel et pages info livres avec les
       paquetages.

14. La Fin

   Vous venez d'atteindre la fin du document Linux From Scratch HOWTO.
   J'espre que cette exprience vous a permis de complter vos
   connaissances concernant le systme Linux. Si vous souhaitez voir
   figurer ici certaines informations (corrections de bogues,
   applications supplmentaires oublies que vous considrez comme
   importantes), faites-le nous savoir. Ensemble, grce  votre aide et 
   vos suggestions, nous amliorerons ce document.

15. Copyright & information de licence

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

   Il n'est toutefois pas ncessaire d'afficher cette notice, comme
   dcrit dans la licence LDP, si seule une petite partie de ce document
   est utilise  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/"
