  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.

  ______________________________________________________________________

  Table des matires






















































  1. Introduction

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

  2. Conventions utilises dans ce document

     2.1 A propos de $LFS
     2.2 Comment tlcharger les applications
     2.3 Comment installer les applications

  3. Les paquetages que vous devez tlcharger

     3.1 Applications indispensables
     3.2 Applications facultatives

  4. Prparer le nouveau systme

     4.1 Comment allons-nous procder
     4.2 Crer une nouvelle partition
     4.3 Crer un systme de fichiers
     4.4 Monter la nouvelle partition
     4.5 Crer les rpertoire
     4.6 Copier le rpertoire

  5. Rendre le systme LFS amorable

     5.1 Installer Sysvinit
     5.2 Configurer Sysvinit
     5.3 Crer les fichiers passwd et group
     5.4 Installer le shell Bash
     5.5 Ajouter une entre  LILO
     5.6 Tester le systme

  6. Installer un noyau

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

  7. Installer les applications de base

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

  8. Crez les scripts de dmarrage du systme

     8.1 Prparer les rpertoires et les fichiers principaux
     8.2 Crer le script de redmarrage
     8.3 Crer le script d'arrt
     8.4 Crer le script
     8.5 Crer le script
     8.6 Crer le script
     8.7 Crer le script de dmarrage
     8.8 Crer le script de dmarrage
     8.9 Crer les liens symboliques et fixer les permissions
     8.10 Crer le fichier

  9. Configurer la base du rseau

     9.1 Installer Netkit-base
     9.2 Installer Net-tools
        9.2.1 Crer le script de dmarrage
        9.2.2 Paramtrer les permissions et les liens symboliques
        9.2.3 Crer le fichier
        9.2.4 Crez le fichier
        9.2.5 Crer le fichier
        9.2.6 Paramtrer les permissions et liens symboliques pour
        9.2.7 Tester la configuration du rseau
     9.3 Tester le systme

  10. Installer les dmons rseau

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

  11. Installer les clients rseau

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

  12. Installer le systme X Window

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

  13. Ressources

     13.1 Livres
     13.2 HOWTOs
     13.3 Autre

  14. La Fin

  15. Copyright & information de licence



  ______________________________________________________________________

  11..  IInnttrroodduuccttiioonn

  11..11..  DDee qquuooii ss''aaggiitt--iill ??

  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1..22..  MMiisseess  jjoouurr

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

  http://www.linuxfromscratch.org

  11..33..  HHiissttoorriiqquuee ddee ccee ddooccuummeenntt

  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1..44..  LLiisstteess ddee ddiiffffuussiioonn

  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.

  11..44..11..  IInnssccrriippttiioonn

  Pour vous inscrire  une liste, envoyez un email, dont le corps
  contient soit _s_u_b_s_c_r_i_b_e _l_f_s_-_d_i_s_c_u_s_s, soit _s_u_b_s_c_r_i_b_e _l_f_s_-_a_n_n_o_u_n_c_e_, 
  mailto: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.

  11..44..22..  RRssiilliieerr uunnee iinnssccrriippttiioonn

  Pour rsilier votre inscription  une liste, envoyez un email, dont le
  corps contient soit _u_n_s_u_b_s_c_r_i_b_e _l_f_s_-_d_i_s_c_u_s_s soit _u_n_s_u_b_s_c_r_i_b_e _l_f_s_-
  _a_n_n_o_u_n_c_e  l'adresse suivante : mailto:majordomo@fist.org

  11..55..  CCoonnttaacctt

  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2..  CCoonnvveennttiioonnss uuttiilliisseess ddaannss ccee ddooccuummeenntt

  22..11..  AA pprrooppooss ddee $$LLFFSS

  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 "_n_o _s_u_c_h _f_i_l_e _o_r _d_i_r_e_c_t_o_r_y" sans
  aucun dommage pour votre systme. Ne dites pas que je ne vous ai pas
  prvenu ;-)

  22..22..  CCoommmmeenntt ttllcchhaarrggeerr lleess aapppplliiccaattiioonnss

  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2..33..  CCoommmmeenntt iinnssttaalllleerr lleess aapppplliiccaattiioonnss

  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 _c_o_p_i_e_r 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
  _c_o_p_i_e_r 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3..  LLeess ppaaqquueettaaggeess qquuee vvoouuss ddeevveezz ttllcchhaarrggeerr

  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3..11..  AApppplliiccaattiioonnss iinnddiissppeennssaabblleess

  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3..22..  AApppplliiccaattiioonnss ffaaccuullttaattiivveess

  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4..  PPrrppaarreerr llee nnoouuvveeaauu ssyyssttmmee

  44..11..  CCoommmmeenntt aalllloonnss--nnoouuss pprrooccddeerr

  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4..22..  CCrreerr uunnee nnoouuvveellllee ppaarrttiittiioonn

  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 _p_a_r_t_i_t_i_o_n _L_F_S
  dans la suite du document.

  44..33..  CCrreerr uunn ssyyssttmmee ddee ffiicchhiieerrss eexxtt22  ssuurr llaa nnoouuvveellllee ppaarrttiittiioonn

  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..44..  MMoonntteerr llaa nnoouuvveellllee ppaarrttiittiioonn

  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4..55..  CCrreerr lleess rrppeerrttooiirree

  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4..66..  CCooppiieerr llee rrppeerrttooiirree //ddeevv

  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5..  RReennddrree llee ssyyssttmmee LLFFSS aammoorraabbllee

  55..11..  IInnssttaalllleerr SSyyssvviinniitt

  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 : _R_O_O_T _= _$_L_F_S

    Prfixez toutes les occurrences /dev des quatre dernires lignes
     par _$_(_R_O_O_T_)

  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5..22..  CCoonnffiigguurreerr SSyyssvviinniitt

  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5..33..  CCrreerr lleess ffiicchhiieerrss ppaasssswwdd eett ggrroouupp

  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:
     _r_o_o_t_:_s_3_9_4_u_l_1_B_k_v_m_q_2_:_0_:_0_:_r_o_o_t_:_/_r_o_o_t_:_/_b_i_n_/_b_a_s_h

    Crez le fichier $LFS/etc/group contenant: _r_o_o_t_:_:_0_:

  Le mot de passe encod dans le fichier passwd est: _l_f_s_1_2_3

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

  55..44..  IInnssttaalllleerr llee sshheellll BBaasshh

  Aprs que sulogin ait valid le mot de passe root, il tentera de
  lancer un interprteur de commandes (plus simplement appel _s_h_e_l_l),
  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..55..  AAjjoouutteerr uunnee eennttrree  LLIILLOO

  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5..66..  TTeesstteerr llee ssyyssttmmee

  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6..  IInnssttaalllleerr uunn nnooyyaauu

  66..11..  RReemmaarrqquuee aauu ssuujjeett ddee ffttpp..kkeerrnneell..oorrgg

  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6..22..  CCoonnffiigguurreerr llee nnooyyaauu


    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6..33..  MMeettttrree  jjoouurr LLIILLOO


    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6..44..  TTeesstteerr llee ssyyssttmmee

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

  77..  IInnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee

  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7..11..  AA pprrooppooss ddeess ssyymmbboolleess ddee ddbbooggaaggee

  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7..22..  PPrrppaarreerr llee ssyyssttmmee LLFFSS ppoouurr iinnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee

  77..22..11..  IInnssttaalllleerr BBiinnuuttiillss


    Dsarchivez binutils

    Installez le paquetage en tapant :


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




  77..22..22..  IInnssttaalllleerr BBzziipp22


    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




  77..22..33..  IInnssttaalllleerr DDiiffffuuttiillss


    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

  77..22..44..  IInnssttaalllleerr FFiilleeuuttiillss


    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




  77..22..55..  IInnssttaalllleerr GGCCCC ssuurr llee ssyyssttmmee nnoorrmmaall ssii nncceessssaaiirree

  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







  77..22..66..  IInnssttaalllleerr GGCCCC ssuurr llee ssyyssttmmee LLFFSS


    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




  77..22..66..11..  CCrraattiioonn ddeess lliieennss ssyymmbboolliiqquueess nncceessssaaiirreess

  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.

  77..22..77..  IInnssttaalllleerr GGlliibbcc

  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, principalement
   en France, Russie et Etats-Unis, concernant la diffusion et l'utilisation de
   logiciels de cryptage. Consultez la note "Legal Problems" du manuel pour plus
   d'informations.
  En particulier, les Etats-Unis interdisent l'exportation de ce logiciel
   sans licence, 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




  77..22..77..11..  CCooppiieerr lleess aanncciieennss ffiicchhiieerrss ddee llaa bbiibblliiootthhqquuee NNSSSS

  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



  77..22..88..  IInnssttaalllleerr ggrreepp


    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

  77..22..99..  IInnssttaalllleerr ggzziipp


    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

  77..22..1100..  IInnssttaalllleerr MMaakkee


    Dsarchivez Make

    Installez le paquetage en lanant:


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




  77..22..1111..  IInnssttaalllleerr SSeedd


    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

  77..22..1122..  IInnssttaalllleerr SShh--uuttiillss


    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




  77..22..1133..  IInnssttaalllleerr TTaarr


    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




  77..22..1144..  IInnssttaalllleerr TTeexxttuuttiillss


    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




  77..22..1155..  IInnssttaalllleerr UUttiill--lliinnuuxx



    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7..33..  IInnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee

  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 
  : _/_d_e_v_/_h_d_a_6 _n_o_n_e _s_w_a_p _s_w _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.

  77..33..11..  RReemmoonntteerr llaa ppaarrttiittiioonn eett aaccttiivveerr llee sswwaapp

  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>




  77..33..22..  IInnssttaalllleerr GGCCCC


    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






  77..33..33..  IInnssttaalllleerr BBiissoonn


    Dsarchivez bison et installez-le en tapant:


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




  77..33..44..  IInnssttaalllleerr MMaawwkk


    Dsarchivez mawk et installez-le en tapant:


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




  77..33..55..  IInnssttaalllleerr FFiinndduuttiillss


    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

  77..33..66..  IInnssttaalllleerr TTeerrmmccaapp


    Dsarchivez Termcap et installez-le en tapant:


  ./configure
  make; make install




  77..33..77..  IInnssttaalllleerr NNccuurrsseess


    Dsarchivez ncurses et installez-le en tapant:


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



  77..33..88..  IInnssttaalllleerr LLeessss


    Dsarchivez Less et installez-le en tapant:


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




  77..33..99..  IInnssttaalllleerr PPeerrll


    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.

  77..33..1100..  IInnssttaalllleerr MM44


    Dsarchivez M4 et installez-le en tapant:


  ./configure
  make; make install




  77..33..1111..  IInnssttaalllleerr TTeexxiinnffoo


    Dsarchivez Texinfo et installez-le en tapant:


  ./configure
  make; make install




  77..33..1122..  IInnssttaalllleerr AAuuttooccoonnff


    Dsarchivez Autoconf et installez-le en tapant:


  ./configure
  make; make install





  77..33..1133..  IInnssttaalllleerr AAuuttoommaakkee


    Dsarchivez Automake et installez-le en tapant:


  ./configure
  make install




  77..33..1144..  IInnssttaalllleerr BBaasshh


    Dsarchivez Bash et installez-le en tapant:


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




  77..33..1155..  IInnssttaalllleerr FFlleexx


    Dsarchivez Flex et installez-le en tapant:


  ./configure
  make; make install




  77..33..1166..  IInnssttaalllleerr BBiinnuuttiillss


    Dsarchivez Binutils et installez-le en tapant:


  ./configure
  make; make install




  77..33..1177..  IInnssttaalllleerr BBzziipp22


    Dsarchivez Bzip2 et installez-le en tapant:


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




  77..33..1188..  IInnssttaalllleerr DDiiffffuuttiillss


    Dsarchivez Diffutils et installez-le en tapant:

  ./configure
  make; make install




  77..33..1199..  IInnssttaalllleerr EE22ffsspprrooggss


    Dsarchivez E2fsprogs  et installez-le en tapant:


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




  77..33..2200..  IInnssttaalllleerr FFiillee


    Dsarchivez File  et installez-le en tapant:


  ./configure
  make; make install




  77..33..2211..  IInnssttaalllleerr FFiilleeuuttiillss


    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




  77..33..2222..  IInnssttaalllleerr GGrreepp


    Dsarchivez Grep  et installez-le en tapant:


  ./configure
  make; make install




  77..33..2233..  IInnssttaalllleerr GGrrooffff


    Dsarchivez Groff  et installez-le en tapant:





  ./configure
  make; make install




  77..33..2244..  IInnssttaalllleerr GGzziipp


    Dsarchivez Gzip  et installez-le en tapant:


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




  77..33..2255..  IInnssttaalllleerr LLdd..ssoo


    Dsarchivez Ld.so  et installez-le en tapant:


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




  77..33..2266..  IInnssttaalllleerr LLiibbttooooll


    Dsarchivez Libtool  et installez-le en tapant:


  ./configure
  make; make install




  77..33..2277..  IInnssttaalllleerr LLiinnuuxx8866


    Dsarchivez Linux86  et installez-le en tapant:


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




  77..33..2288..  IInnssttaalllleerr LLiilloo


    Dsarchivez Lilo  et installez-le en tapant:




  make; make install




  77..33..2299..  IInnssttaalllleerr MMaakkee


    Dsarchivez Make  et installez-le en tapant:


  ./configure
  make; make install




  77..33..3300..  IInnssttaalllleerr SShh--UUttiillss


    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




  77..33..3311..  IInnssttaalllleerr SShhaaddooww PPaasssswwoorrdd SSuuiittee


    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




  77..33..3322..  IInnssttaalllleerr MMaann


    Dsarchivez Man  et installez-le en tapant:


  ./configure -default
  make all; make install




  77..33..3333..  IInnssttaalllleerr MMoodduuttiillss



    Dsarchivez Modutils  et installez-le en tapant:


  ./configure
  make; make install




  77..33..3344..  IInnssttaalllleerr PPrroocciinnffoo


    Dsarchivez Procinfo  et installez-le en tapant:


  make; make install




  77..33..3355..  IInnssttaalllleerr PPrrooccppss


    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




  77..33..3366..  IInnssttaalllleerr PPssmmiisscc


    Dsarchivez Psmisc  et installez-le en tapant:


  make; make install




  77..33..3377..  IInnssttaalllleerr SSeedd


    Dsarchivez Sed  et installez-le en tapant:


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




  77..33..3388..  IInnssttaalllleerr llee ddmmoonn ssttaarrtt--ssttoopp


    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




  77..33..3399..  IInnssttaalllleerr SSyysskkllooggdd


    Dsarchivez Sysklogd  et installez-le en tapant:


  make; make install




  77..33..4400..  IInnssttaalllleerr SSyyssvviinniitt


    Dsarchivez Sysvinit  et installez-le en tapant:


  cd src
  make; make install




  77..33..4411..  IInnssttaallll TTaarr


    Dsarchivez Tar  et installez-le en tapant:


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




  77..33..4422..  IInnssttaalllleerr TTeexxttuuttiillss


    Dsarchivez Textutils  et installez-le en tapant:


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




  77..33..4433..  IInnssttaalllleerr VViimm


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





  ./configure
  make; make install




  77..33..4444..  IInnssttaalllleerr UUttiill--lliinnuuxx


    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7..44..  SSuupppprreessssiioonn ddeess aanncciieennss ffiicchhiieerrss ddee llaa bbiibblliiootthhqquuee NNSSSS

  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7..55..  CCoonnffiigguurreerr lleess aapppplliiccaattiioonnss

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

  77..55..11..  CCoonnffiigguurreerr GGlliibb

  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

  77..55..22..  CCoonnffiigguurreerr LLIILLOO

  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.

  77..55..33..  CCoonnffiigguurreerr SSyysskkllooggdd


    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




  77..55..44..  CCoonnffiigguurreerr SShhaaddooww PPaasssswwoorrdd SSuuiittee

  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
  '_p_a_s_s_w_o_r_d _s_h_a_d_o_w_i_n_g' signifie. Vous trouverez toutes les informations
  utiles dans les fichiers de documentation et HOWTO. Il y a cependant
  une chose que vous devez garder  l'esprit : si vous dcidez
  d'utiliser le support '_s_h_a_d_o_w', 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
  '_s_h_a_d_o_w_e_d _p_a_s_s_w_o_r_d_s' (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 '_s_h_a_d_o_w _p_a_s_s_w_o_r_d'. Notez que vous pouvez choisir  tout
  moment d'activer ou de dsactiver les mots de passe '_s_h_a_d_o_w'.

  Consultez la section 5 du fichier Shadow-Password-HOWTO. Vous y
  apprendrez comment tester si le systme '_s_h_a_d_o_w' 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. ;-)

  77..55..55..  CCoonnffiigguurreerr SSyyssvviinniitt

  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




  77..55..66..  CCrreerr llee ffiicchhiieerr //vvaarr//rruunn//uuttmmpp

  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8..  CCrreezz lleess ssccrriippttss ddee ddmmaarrrraaggee dduu ssyyssttmmee

  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 _s_w_a_p, rgler quelques paramtres
  systmes et lancer divers dmons dont le systme a besoin.

  88..11..  PPrrppaarreerr lleess rrppeerrttooiirreess eett lleess ffiicchhiieerrss pprriinncciippaauuxx

  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8..22..  CCrreerr llee ssccrriipptt ddee rreeddmmaarrrraaggee rreebboooott


    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8..33..  CCrreerr llee ssccrriipptt dd''aarrrrtt hhaalltt


    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8..44..  CCrreerr llee ssccrriipptt mmoouunnttffss


    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8..55..  CCrreerr llee ssccrriipptt uummoouunnttffss


    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8..66..  CCrreerr llee ssccrriipptt sseennddssiiggnnaallss


    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8..77..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee cchheecckkrroooott


    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..88..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee ssyysskkllooggdd


    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8..99..  CCrreerr lleess lliieennss ssyymmbboolliiqquueess eett ffiixxeerr lleess ppeerrmmiissssiioonnss


    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8..1100..  CCrreerr llee ffiicchhiieerr //eettcc//ffssttaabb


    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9..  CCoonnffiigguurreerr llaa bbaassee dduu rrsseeaauu

  99..11..  IInnssttaalllleerr NNeettkkiitt--bbaassee


    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9..22..  IInnssttaalllleerr NNeett--ttoooollss


    Dsarchivez Net-tools  et installez-le en tapant:


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




  99..22..11..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee //eettcc//iinniitt..dd//llooccaallnneett


    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




  99..22..22..  PPaarraammttrreerr lleess ppeerrmmiissssiioonnss eett lleess lliieennss ssyymmbboolliiqquueess


    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

  99..22..33..  CCrreerr llee ffiicchhiieerr //eettcc//hhoossttnnaammee

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

  99..22..44..  CCrreezz llee ffiicchhiieerr //eettcc//hhoossttss

  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.

  99..22..55..  CCrreerr llee ffiicchhiieerr //eettcc//iinniitt..dd//eetthhnneett

  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




  99..22..66..  PPaarraammttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess ppoouurr
  //eettcc//iinniitt..dd//eetthhnneett


    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

  99..22..77..  TTeesstteerr llaa ccoonnffiigguurraattiioonn dduu rrsseeaauu


    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9..33..  TTeesstteerr llee ssyyssttmmee

  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.

  1100..  IInnssttaalllleerr lleess ddmmoonnss rrsseeaauu

  1100..11..  CCoonnffiigguurreerr SSMMTTPP

  1100..11..11..  CCrreerr lleess ggrroouuppeess eett uuttiilliissaatteeuurrss

  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




  1100..11..22..  CCrreerr lleess rrppeerrttooiirreess

  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




  1100..11..33..  IInnssttaalllleerr SSeennddmmaaiill


    Dsarchivez Sendmail  et installez-le en tapant:


  cd src
  ./Build; ./Build install








  1100..11..44..  CCoonnffiigguurriinngg SSeennddmmaaiill

  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

  1100..11..55..  IInnssttaalllleerr PPrrooccmmaaiill


    Dsarchivez Procmail  et installez-le en tapant:


  make; make install; make install-suid





  1100..11..66..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee //eettcc//iinniitt..dd//sseennddmmaaiill


    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




  1100..11..77..  PPaarraammttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess


    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




  1100..22..  CCoonnffiigguurreerr FFTTPP

  1100..22..11..  CCrreerr lleess ggrroouuppeess eett uuttiilliissaatteeuurrss


    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




  1100..22..22..  IInnssttaalllleerr PPrrooffttppdd


    Dsarchivez Proftpd  et installez-le en tapant:


  ./configure
  make; make install




  1100..22..33..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee //eettcc//iinniitt..dd//pprrooffttppdd


    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




  1100..22..44..  PPaarraammttrreerr lleess ppeerrmmiissssiioonnss eett lleess lliieennss ssyymmbboolliiqquueess


    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





  1100..33..  CCoonnffiigguurreerr HHTTTTPP

  1100..33..11..  IInnssttaalllleerr AAppaacchhee


    Dsarchivez Apache  et installez-le en tapant :


  ./configure
  make; make install




  1100..33..22..  CCoonnffiigguurreerr AAppaacchhee

  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
     : _M_A_N_P_A_T_H _/_u_s_r_/_a_p_a_c_h_e_/_m_a_n

  1100..33..33..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee //eettcc//iinniitt..dd//aappaacchhee


    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




  1100..33..44..  PPaarraammttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess


    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




  1100..44..  CCoonnffiigguurreerr TTeellnneett

  1100..44..11..  IInnssttaalllleerr llee ddmmoonn eett llee cclliieenntt tteellnneett


    Dsarchivez Netkit-telnet  et installez-le en tapant:




  ./configure
  make; make install




  1100..44..22..  CCrreerr llee ffiicchhiieerr ddee ccoonnffiigguurraattiioonn //eettcc//iinneettdd..ccoonnff


    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




  1100..44..33..  CCrreerr llee ssccrriipptt ddee ddmmaarrrraaggee //eettcc//iinniitt..dd//iinneettdd


    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




  1100..44..44..  PPaarraammttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess


    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




  1100..55..  CCoonnffiigguurreerr PPPPPP

  1100..55..11..  CCoonnffiigguurreerr llee nnooyyaauu

  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.

  1100..55..22..  CCrreerr llee ggrroouuppee


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

  1100..55..33..  IInnssttaalllleerr PPPPPP


    Dsarchivez PPP  et installez-le en tapant :


  ./configure
  make; make install




  1100..55..44..  CCrreerr llee ffiicchhiieerr //eettcc//rreessoollvv..ccoonnff


    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




  1100..55..55..  CCrreerr llee ffiicchhiieerr //eettcc//pppppp//ppeeeerrss//pprroovviiddeerr


    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




  1100..55..66..  CCrreerr llee ffiicchhiieerr //eettcc//cchhaattssccrriippttss//pprroovviiddeerr


    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




  1100..55..77..  RReemmaarrqquuee ccoonncceerrnnaanntt ll''aauutthheennttiiffiiccaattiioonn ddeess mmoottss ddee ppaassssee

  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.



  1111..  IInnssttaalllleerr lleess cclliieennttss rrsseeaauu

  1111..11..  IInnssttaalllleerr lleess cclliieennttss EEmmaaiill

  1111..11..11..  IInnssttaalllleerr MMaaiillxx


    Dsarchivez Mailx  et installez-le en tapant


  make; make install




  1111..11..22..  IInnssttaalllleerr MMuutttt

  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





  1111..11..33..  IInnssttaalllleerr FFeettcchhmmaaiill


    Dsarchivez Fetchmail  et installez-le en tapant:


  ./configure
  make; make install





  1111..11..44..  TTeesstteerr llee ssyyssttmmee eemmaaiill

  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

  1111..22..  IInnssttaalllleerr llee cclliieenntt FFTTPP

  1111..22..11..  IInnssttaalllleerr NNeettkkiitt--ffttpp


    Dsarchivez Netkit-ftp  et installez-le en tapant:


  ./configure
  make; make install




  1111..22..22..  TTeesstteerr llee ssyyssttmmee FFTTPP


    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.


  1111..33..  IInnssttaalllleerr llee cclliieenntt HHTTTTPP

  1111..33..11..  IInnssttaalllleerr ZZlliibb

  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




  1111..33..22..  IInnssttaalllleerr LLyynnxx


    Dsarchivez Lynx  et installez-le en tapant:






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




  1111..33..33..  TTeesstteerr llee ssyyssttmmee HHTTTTPP


    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.

  1111..44..  IInnssttaalllleerr llee cclliieenntt TTeellnneett

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

  1111..44..11..  TTeesstteerr llee ssyyssttmmee TTeellnneett


    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.

  1111..55..  IInnssttaalllleerr lleess cclliieennttss PPPPPP

  1111..55..11..  CCrreerr llee ssccrriipptt ddee ccoonnnneexxiioonn


    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




  1111..55..22..  CCrreerr llee ssccrriipptt ddee ddccoonnnneexxiioonn


    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




  1111..55..33..  TTeesstteerr llee ssyyssttmmee PPPPPP


    Connectez-vous  Internet en tapant pon

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

    Dconnectez-vous d'Internet en lanant poff

  1122..  IInnssttaalllleerr llee ssyyssttmmee XX WWiinnddooww

  1122..11..  IInnssttaalllleerr X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.

  1122..22..  CCrreerr //eettcc//lldd..ssoo..ccoonnff

  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

  1122..33..  CCrreerr llee lliieenn ssyymmbboolliiqquuee //uussrr//iinncclluuddee//XX1111


    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


  1122..44..  CCrreerr llee lliieenn ssyymmbboolliiqquuee //uussrr//XX1111

  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

  1122..55..  AAjjoouutteerr //uussrr//XX1111//bbiinn   llaa vvaarriiaabbllee dd''eennvviirroonnnneemmeenntt $$PPAATTHH

  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: _e_x_p_o_r_t
     _P_A_T_H_=_$_P_A_T_H_:_/_u_s_r_/_X_1_1_/_b_i_n

  Vous devez vous 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

  1122..66..  CCoonnffiigguurreerr X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.

  1122..77..  TTeesstteerr X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.

  1122..88..  IInnssttaalllleerr WWiinnddooww MMaakkeerr

  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.

  1122..99..  PPrrppaarreerr llee ssyyssttmmee ppoouurr ll''iinnssttaallllaattiioonn ddee WWiinnddooww MMaakkeerr

  1122..99..11..  IInnssttaalllleerr lliibbPPrrooppLLiisstt


    Dsarchivez libPropList  et installez-le en tapant:


  ./configure
  make; make install




  1122..99..22..  IInnssttaalllleerr lliibbXXppmm


    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 _b_u_g 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.

  1122..99..33..  IInnssttaalllleerr lliibbppnngg


    Dsarchivez libpng  et installez-le en tapant :


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




  1122..99..44..  IInnssttaalllleerr lliibbttiiffff


    Dsarchivez libtiff  et installez-le en tapant:



  ./configure
  make; make install




  1122..99..55..  IInnssttaalllleerr lliibbjjppeegg


    Dsarchivez libjpeg  et installez-le en tapant:


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




  1122..99..66..  IInnssttaalllleerr lliibbuunnggiiff


    Dsarchivez libungif  et installez-le en tapant:


  ./configure
  make; make install




  1122..99..77..  IInnssttaalllleerr WWiinnddoowwMMaakkeerr


    Dsarchivez WindowMaker  et installez-le en tapant:


  ./configure
  make; make install




  1122..1100..  MMeettttrree  jjoouurr llee ccaacchhee dduu cchhaarrggeeuurr ddyynnaammiiqquuee


    Mettez  jour le cache du chargeur dynamique en lanant: ldconfig

  1122..1111..  CCoonnffiigguurreerr WWiinnddooww MMaakkeerr

  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

  1122..1122..  TTeesstteerr WWiinnddooww MMaakkeerr


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



  1133..  RReessssoouurrcceess

  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.

  1133..11..  LLiivvrreess


    _S_e_n_d_m_a_i_l publi par O'Reilly. ISBN: 1-56592-222-0

    _L_i_n_u_x _N_e_t_w_o_r_k _A_d_m_i_n_i_s_t_r_a_t_o_r_'_s _G_u_i_d_e publi par O'Reilly. ISBN:
     1-56592-087-2


    _R_u_n_n_i_n_g _L_i_n_u_x publi par O'Reilly. ISBN: 1-56592-151-8

  1133..22..  HHOOWWTTOOss


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

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

  1133..33..  AAuuttrree


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


  1144..  LLaa FFiinn

  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.

  1155..  CCooppyyrriigghhtt && iinnffoorrmmaattiioonn ddee lliicceennccee

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












