
Construire un systme Linux minimum  partir du code source

Greg O'Keefe

             <gcokeefe@postoffice.utas.edu.au>

   _Dominique van den Broeck - _Traduction franaise

   _Jean-Philippe Gurard - _Relecture de la version franaise

   v0.9, novembre 2000

   Voici les instructions pour construire un systme Linux minimum 
   partir du code source. Ce document faisait partie du guide pratique
    De la mise sous tension  l'invite de commande de Bash , mais j'ai
   choisi d'en faire un document indpendant, afin que chacun de ces 2
   documents restent courts et concentrs. Le systme que nous
   construisons ici est rduit au minimum et n'est pas apte  raliser un
   vrai travail. Si vous voulez monter un vrai systme, lisez plutt le
   Comment faire un systme Linux  partir de zro (_Linux from scratch -
   LFS_).
     _________________________________________________________________

   _Table des matires_
   1. Ce qu'il vous faut
   2. Le systme de fichier
   3. MAKEDEV
   4. Le noyau
   5. Lilo
   6. Glibc
   7. SysVinit
   8. Ncurses
   9. Bash
   10. Util-linux (getty et login)
   11. Sh-utils
   12. Rendre le systme plus utilisable
   13. Informations complmentaires

        13.1. Astuces diverses
        13.2. Liens

   14. Section administrative

        14.1. Copyright
        14.2. Page principale
        14.3. Ractions
        14.4. Rfrences et remerciements
        14.5. Historique des changements
        14.6. Amliorations prvues
        14.7. Adaptation franaise

1. Ce qu'il vous faut

   Nous installerons une distribution de Linux telle que Red Hat sur une
   partition, et l'utiliserons pour construire un nouveau systme Linux
   sur une autre partition. Je nommerai par la suite  cible  le systme
   que nous construisons, et  source  le systme que nous utilisons
   pour construire le systme cible ( ne pas confondre avec _code source_
   que nous utiliserons aussi).

   Vous allez donc avoir besoin d'une machine avec deux partitions
   libres. Si vous le pouvez, utilisez une machine qui ne contienne rien
   d'important. Vous pouvez utiliser un systme Linux dj existant comme
   systme source, mais je le dconseille. Si vous oubliez un des
   paramtres des commandes que nous allons saisir, vous pourriez
   accidentellement rinstaller des choses sur votre systme source. Cela
   peut mener  des incompatibilits, et des conflits.

   Les BIOS des PC dont l'architecture est ancienne, pour la plupart des
   486 et des machines antrieures, ont une limitation ennuyeuse. Ils ne
   peuvent lire les disques durs au-del des 512 premiers mga-octets. Ce
   n'est pas vraiment un problme pour Linux, qui gre lui-mme les
   disques une fois lanc. Mais pour que Linux soit charg sur ces
   vieilles machines, le noyau doit rsider quelque part en-dessous de
   512 mga-octets. Si vous utilisez une de ces machines, vous devrez
   crer une partition distincte en-dessous de 512 Mo,  monter sur /boot
   pour chaque systme dont la partition racine se situe au-dessus de la
   limite des 512 Mo.

   La dernire fois que je l'ai fait, j'ai utilis Red Hat 6.1 comme
   systme source. J'ai install le systme de base plus :

     * cpp
     * egcs
     * egcs-c++
     * patch
     * make
     * dev86
     * ncurses-devel
     * glibc-devel
     * kernel-headers

   J'ai aussi install X-Window et Mozilla pour pouvoir lire la
   documentation facilement, mais ce n'est pas vraiment ncessaire.  la
   fin de mon travail, celui-ci avait pris environ 350 Mo d'espace disque
   (cela semble un peu lev, je me demande pourquoi).

   Le systme cible achev prenait 650 Mo, mais comprenait tout le code
   source et les fichiers intermdiaires. Si l'espace est limit, je vous
   conseille de faire un _make clean_ aprs la construction de chaque
   paquet. Cela dit, cette taille surprenante est un peu inquitante.

   Enfin, vous allez avoir besoin du code source du systme que vous
   allez construire. Ce sont les paquets dont nous avons parl dans le
   guide pratique  De la mise sous tension  l'invite de commande de
   Bash . On peut les obtenir depuis un CD, ou par l'Internet. Je
   donnerai les url de leurs sites amricains et des miroirs franais.

     * MAKEDEV : ftp://sunsite.unc.edu/pub/Linux/system/admin/ (USA),
       ftp://ftp.lip6.fr/pub/linux/sunsite/system/admin/ (France).
     * Lilo : ftp://lrcftp.epfl.ch/pub/linux/local/lilo/ (Suisse),
       ftp://ftp.lip6.fr/pub/linux/sunsite/system/boot/lilo/ (France).
     * Noyau Linux : utilisez un des miroirs lists sur
       http://www.kernel.org plutt que
       ftp://ftp.kernel.org/pub/linux/kernel/ (USA) car ils sont toujours
       en surcharge ; ftp://ftp.fr.kernel.org/pub/linux/kernel/ (France).
     * GNU libc : la bibliothque elle-mme, ainsi que les extensions
       linuxthreads sont sur ftp://ftp.gnu.org/pub/gnu/glibc/ (USA),
       ftp://ftp.lip6.fr/pub/gnu/glibc/ (France).
     * Extensions de la libc GNU : vous aurez aussi besoin des
       linuxthreads et des extensions libcrypt. Si libcrypt est absente
       du fait des lois amricaines sur l'exportation, vous pouvez la
       rcuprer sur ftp://ftp.gwdg.de/pub/gnu/glibc les extensions
       linuxthreads sont au mme endroit que la libc proprement dite.
     * GNU ncurses : ftp://ftp.gnu.org/gnu/ncurses (USA),
       ftp://ftp.lip6.fr/pub/gnu/ncurses (France).
     * SysVinit : ftp://sunsite.unc.edu/pub/Linux/system/daemons/init/
       (USA), ftp://ftp.lip6.fr/pub/linux/sunsite/system/daemons/init/
       (France).
     * GNU Bash : ftp://ftp.gnu.org/gnu/bash/ (USA),
       ftp://ftp.lip6.fr/pub/gnu/bash/ (France).
     * GNU sh-utils : ftp://ftp.gnu.org/gnu/sh-utils/ (USA),
       ftp://ftp.lip6.fr/pub/gnu/sh-utils/ (France).
     * util-linux : ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/
       (Pays-Bas), ftp://ftp.lip6.fr/pub/linux/sunsite/system/misc/
       (France). Ce paquet contient agetty et login.

   Pour rsumer, il vous faut :

     * Une machine avec deux partitions distinctes d'environ 400 Mo et
       700 Mo respectivement, bien que vous puissiez srement vous en
       tirer avec un espace plus restreint.
     * Une distribution de Linux (par exemple, un CD Red Hat), et de quoi
       l'installer (par exemple, un lecteur de CD).
     * Les archives tar de code source listes ci-dessus. (Le format tar
       permet de regrouper plusieurs fichiers en un seul. Un fichier tar
       peut tre compress.)

   Je pars du principe que vous pouvez installer le systme source
   vous-mme, sans aide de ma part.  partir de maintenant, je considre
   que c'est fait.

   Les premiers pas de ce projet consistent  faire dmarrer le noyau, et
    le laisser  paniquer  (panic) car il ne trouve pas le programme
   init. Cela signifie que nous allons devoir installer un noyau, et
   installer Lilo. Pour que Lilo s'installe facilement, nous aurons
   besoin des fichiers spciaux du rpertoire /dev du systme cible. Lilo
   en a besoin pour effectuer les accs bas niveau au disque, ncessaire
   pour crire le secteur d'amorage. _MAKEDEV_ est le script qui cre
   ces fichiers spciaux (vous pourriez bien sr les recopier depuis le
   systme source, mais ce serait tricher !). Mais d'abord, il nous faut
   un systme de fichiers dans lequel les mettre.
     _________________________________________________________________

2. Le systme de fichier

   Notre nouveau systme a besoin d'un systme de fichiers pour vivre.
   Donc, il nous faut tout d'abord crer ce systme de fichiers en
   utilisant _mke2fs_. Ensuite il faut le monter quelque part. Je vous
   suggre /mnt/cible. Dans ce qui va suivre, je considre que votre
   systme cible se trouve  cet endroit. Vous pouvez gagner un peu de
   temps en ajoutant une entre dans /etc/fstab de faon  ce que le
   montage de votre systme de destination se fasse automatique lors du
   dmarrage de votre systme source.

   Lorsque nous dmarrerons le systme cible, ce qui se trouve dans
   /mnt/cible se trouvera alors dans / (la racine).

   Nous avons besoin d'une structure de sous-rpertoires sur la cible.
   Jetez un oeil au standard de hirarchie des fichiers (_File Hierarchy
   Standard - FHS_, voir la section liens) pour trouver vous-mme ce
   qu'elle devrait tre, ou faites simplement un _cd_ vers l'endroit o
   la cible est monte et tapez aveuglment :
mkdir bin boot dev etc home lib mnt root sbin tmp usr var
cd var; mkdir lock log run spool
cd ../usr; mkdir bin include lib local sbin share src
cd share/; mkdir man; cd man
mkdir man1 man2 man3 man4 man5 man6 man7 man8 man9

   Comme le standard de hirarchie des fichiers et la plupart des paquets
   se contredisent en ce qui concerne l'endroit o les pages de manuel
   doivent se trouver, nous avons besoin d'un lien symbolique :
   cd ..; ln -s share/man man
     _________________________________________________________________

3. MAKEDEV

   Nous mettrons le code source dans le rpertoire /usr/src cible. Ainsi
   si votre systme de fichiers cible est mont sur /mnt/cible, et que
   vos archives tar sont dans /root, il faudra faire :
cd /mnt/cible/usr/src
tar -xzvf /root/MAKEDEV-2.5.tar.gz

   Ne vous comportez pas en amateur fini en copiant les archives 
   l'endroit o vous allez les dcompresser ;-)

   En principe, lorsque vous installez un logiciel, vous l'installez sur
   le systme en fonctionnement. En l'occurrence, ce n'est pas notre
   intention, nous souhaitons l'installer comme si /mnt/cible tait la
   racine du systme de fichiers. Les diffrents paquets ont diffrentes
   manires de vous laisser faire cela. Pour MAKEDEV, vous devez faire :
   ROOT=/mnt/cible make install

   Vous devez rechercher ces options dans les fichiers README et INSTALL
   ou faire un _./configure --help_.

   Explorez le Makefile de MAKEDEV pour voir l'usage qu'il fait de la
   variable ROOT, que nous avons dfinie dans cette commande. Ensuite
   jetez un oeil  la page de manuel en faisant un _man ./MAKEDEV.man_
   pour voir comment il fonctionne. Vous dcouvrirez que la mthode que
   nous devons utiliser pour crer ces fichiers spciaux consiste  faire
   un _cd /mnt/cible/dev_ puis un _./MAKEDEV generic_. Faites un _ls_
   pour dcouvrir tous les merveilleux fichiers spciaux qu'il a cr
   pour vous !
     _________________________________________________________________

4. Le noyau

   Ensuite, nous devons fabriquer un noyau. Je considre que vous l'avez
   dj fait, aussi serai-je bref. Il est plus facile d'installer Lilo si
   le noyau cens tre mont est dj l. Retournez dans le rpertoire
   usr/src de la cible, et extrayez-y les sources du noyau Linux. Entrez
   dans l'arborescence des sources (_cd linux_) et configurez le noyau,
   en utilisant votre mthode prfre, par exemple _make menuconfig_.
   Vous vous faciliterez grandement la vie si vous configurez un noyau
   sans module. Si vous choisissez d'avoir des modules, vous devrez
   diter le fichier Makefile, trouver INSTALL_MOD_PATH, et lui affecter
   la valeur /mnt/cible.

   Vous pouvez maintenant taper _make dep_, _make bzImage_, et si vous
   avez configur des modules : _make modules_, _make modules_install_.
   Copiez le noyau arch/i386/boot/bzImage et le plan systme System.map
   vers le rpertoire d'amorage de la cible /mnt/cible/boot, et nous
   seront prts  installer Lilo.
     _________________________________________________________________

5. Lilo

   Lilo est livr avec un script trs bien conu nomm _QuickInst_.
   Dcompressez les sources de Lilo dans le rpertoire des sources du
   systme cible, lancez ce script par la commande _ROOT=/mnt/cible
   ./QuickInst_. Il vous posera plusieurs questions concernant la manire
   dont vous souhaitez que Lilo soit install.

   Puisque nous avons affect  la variable ROOT la partition cible, les
   noms des fichiers que nous lui indiquons doivent tre relatifs  cette
   partition. Donc,  la question du nom du noyau  lancer par dfaut,
   rpondez /boot/bzImage, et _non_ /mnt/cible/boot/bzImage.

   J'ai trouv une erreur mineure dans le script, qui lui fait dire :
   ./QuickInst: /boot/bzImage: no such file

   Mais si vous vous contentez de l'ignorer, cela passe quand mme.

   Comment doit-on s'y prendre pour expliquer  _QuickInst_ o installer
   le secteur d'amorage ? Quand nous redmarrerons, nous voulons avoir
   le choix de dmarrer le systme source ou le systme cible, ou encore
   n'importe quel autre systme prsent sur la machine. Et nous
   souhaitons que l'instance de Lilo que nous mettons en place maintenant
   lance le noyau de notre nouveau systme. Comment raliser ces deux
   choses ? cartons-nous un moment du sujet et tudions la faon dont
   Lilo dmarre DOS sur un systme Linux en double-amorage. Le fichier
   lilo.conf d'un tel systme doit srement ressembler  a.
prompt
timeout = 50
default = linux

image = /boot/bzImage
        label  = linux
        root   = /dev/hda1
        read-only

other = /dev/hda2
        label = dos

   Si la machine est configure de cette faon, alors le bloc de
   dmarrage (_Master Boot Record - MBR_) est lu et charg par le Bios,
   et lance le chargeur d'amorage de Lilo (_bootloader_), qui affiche
   une invite de commande. Si vous tapez dos  cette invite, Lilo
   chargera le secteur d'amorage de hda2, qui lancera DOS.

   Ce que nous allons faire est exactement la mme chose,  une
   diffrence prs : le secteur d'amorage de hda2 sera un autre secteur
   d'amorage Lilo - celui-l mme que _QuickInst_ va installer. Donc le
   Lilo de la distribution Linux chargera le Lilo que nous avons
   construit, qui chargera le noyau que nous avons bti. Vous verrez
   alors deux invites Lilo au redmarrage.

   Pour raccourcir une longue histoire, lorsque _QuickInst_ vous demande
   o placer le secteur de boot, indiquez-lui l'endroit o se trouve
   votre systme de fichiers cible, par exemple /dev/hda2.

   Maintenant modifiez le fichier lilo.conf de votre systme source, de
   faon  ce qu'il comprenne une ligne ressemblant  :
other = /dev/hda2
        label = cible

   Lancez _lilo_, et nous devrions tre capables de faire notre premier
   dmarrage sur le systme cible.
     _________________________________________________________________

6. Glibc

   L'tape suivante consiste  installer init, mais comme la plupart des
   programmes qui tournent sous Linux, init utilise des fonctions issues
   de la bibliothque standard C GNU, glibc. Aussi l'installerons-nous en
   premier.

   Glibc est un paquet trs gros et trs complexe. Il faut 90 heures pour
   le construire sur mon vieux 386sx / 16 avec 8 Mo de mmoire. Mais cela
   ne prend que 33 minutes sur mon Celeron 433 avec 64 Mo de mmoire. Je
   pense que la quantit de mmoire est le principal critre dans notre
   cas. Si vous n'avez que 8 Mo de mmoire (ou - j'en tremble - encore
   moins !), prparez vous  une trs longue compilation.

   La documentation d'installation de glibc recommande une construction
   dans un rpertoire distinct. Cela vous permettra de recommencer
   facilement, en supprimant simplement ce rpertoire. Cela vous permet
   aussi d'conomiser 265 Mo d'espace disque.

   Comme d'habitude, dcompressez l'archive glibc-2.1.3.tar.gz (ou
   n'importe quelle autre version) dans /mnt/cible/usr/src.  prsent,
   nous devons dcompresser les extensions dans le rpertoire de glibc.
   Donc, faites un _cd glibc-2.1.3_, puis dcompressez  cet endroit les
   archives glibc-crypt-2.1.3.tar.gz et glibc-linuxthreads-2.1.3.tar.gz.

   Maintenant, nous pouvons crer le rpertoire de construction,
   configurer, construire et installer glibc. Voici les commandes que
   j'ai utilises, mais relisez vous-mme la documentation et
   assurez-vous de faire ce qui est le plus appropri dans votre
   environnement. Toutefois, avant de faire tout cela, vous voudrez sans
   doute connatre l'espace disque qu'il vous reste en faisant un _df_.
   Vous pourrez en faire un autre aprs avoir construit et install glibc
   pour en dduire son volume.
cd ..
mkdir glibc-build
../glibc-2.1.3/configure --enable-add-ons --prefix=/usr
make
make install_root=/mnt/cible install

   Remarquez que nous avons ici encore une autre faon de dire au paquet
   l'endroit o s'installer.
     _________________________________________________________________

7. SysVinit

   Fabriquer et installer les binaires de SysVinit est assez simple. Il y
   a juste une petit manipulation  faire dans le fichier Makefile, situ
   dans le sous-rpertoire src/. Dans les 4 dernires lignes, vous devez
   placer $(ROOT) juste devant /dev/initctl. Par exemple :
   @ if [ ! -p /dev/initctl ]; then \

   devient :
   @ if [ ! -p _$(ROOT)_/dev/initctl ]; then \

   Le fichier spcial initctl est un moyen de communication avec init.
   Par exemple, la page de manuel d'init indique que ce fichier doit tre
   utilis de prfrence au signal SIGPWR pour demander  init d'arrter
   le systme lorsque l'alimentation lectrique  bascul sur batterie
   suite  une panne de courant. Cette manipulation permet de s'assurer
   que ce fichier se trouvera dans le systme cible, et non dans le
   systme source.

   Une fois que c'est fait, placez-vous dans le sous-rpertoire src, et
   entrez :
make
ROOT=/mnt/cible make install

   Il existe aussi beaucoup de scripts associs  init. Il y a des
   scripts d'exemple fournis dans le paquet SysVinit, qui fonctionnent
   bien. Mais vous devez les installer manuellement. Ils sont rangs
   hirarchiquement sous debian/etc dans l'arborescence du code source.
   Vous pouvez recopier toute cette hirarchie dans le rpertoire etc du
   systme cible, avec une commande du style _cd ../debian/etc; cp -r *
   /mnt/cible/etc_. videment, vous voudrez les examiner avant de les
   recopier.

   Tout est dsormais en place pour permettre au noyau cible de lancer
   init au redmarrage. Le problme, cette fois, viendra des scripts qui
   ne pourront tre excuts car bash ne sera pas l pour les
   interprter. init tentera galement de lancer des getty, qui sont eux
   aussi inexistants. Redmarrez le systme, et assurez-vous que tout le
   reste fonctionne correctement.
     _________________________________________________________________

8. Ncurses

   L'tape suivante consiste  mettre Bash en place, mais bash a besoin
   de ncurses, aussi devons-nous installer celui-ci en premier. Ncurses
   remplace termcap dans la manire de grer les crans texte, mais
   apporte galement une compatibilit descendante en prenant en charge
   les appels termcap. Dans l'objectif d'avoir un systme moderne, simple
   et propre, je pense que le mieux est de dsactiver l'ancienne mthode
   termcap. Vous pourriez par la suite rencontrer des problmes avec des
   applications utilisant termcap, mais au moins vous connatrez les
   lments qui l'utilisent. Si vous en avez besoin, vous pourrez
   recompiler ncurses avec prise en charge de termcap.

   Les commandes que j'ai utilises sont :
./configure --prefix=/usr --with-install-prefix=/mnt/cible --with-shared --disa
ble-termcap
make
make install
     _________________________________________________________________

9. Bash

   Il m'a fallu beaucoup de lecture, de rflexion, de tests, et d'erreurs
   pour que Bash s'installe l o je pensais qu'il devait aller. Les
   options de configuration que j'ai utilises sont :
./configure --prefix=/mnt/cible/usr/local --exec-prefix=/mnt/cible \
            --with-curses

   Une fois que vous aurez construit et install Bash, vous devrez crer
   un lien symbolique comme ceci : _cd /mnt/cible/bin; ln -s bash sh_.
   Cela est d au fait que les scripts dbutent gnralement par une
   ligne comme celle-ci :
   #!/bin/sh

   Si vous n'avez ce lien symbolique, les scripts ne fonctionneront pas,
   car ils chercheront /bin/sh et non /bin/bash.

   Arriv  ce point, vous pouvez redmarrer si vous le souhaitez. Lors
   du redmarrage, vous devriez remarquer que, maintenant, les scripts
   s'excutent. Cependant, vous ne pourrez pas vous connecter, car il n'y
   pas encore de programmes getty ou login.
     _________________________________________________________________

10. Util-linux (getty et login)

   Le paquet util-linux contient agetty et login. Nous avons besoin des
   deux pour pouvoir nous connecter et obtenir l'invite de commande de
   bash. Aprs l'avoir install, faites un lien symbolique depuis agetty
   vers getty dans le rpertoire /sbin du systme cible. getty est un des
   programmes censs se trouver sur tous les systmes de type Unix, donc
   faire un lien est une meilleure ide que de modifier inittab pour
   qu'il lance agetty.

   Il me reste un problme avec la compilation d'util-linux. Le paquet
   contient galement le programme more, et, pour ce programme, je n'ai
   pas t capable de persuader make de raliser l'dition de liens avec
   le ncurses 5 du systme cible au lieu du ncurses 4 du systme source.

   Vous aurez aussi besoin d'un fichier /etc/passwd sur le systme cible.
   C'est l'endroit o le programme login ira vrifier si vous avez le
   droit de vous connecter. Comme il ne s'agit que d'un systme jouet,
   vous pouvez vous permettre  ce niveau des choses scandaleuses, comme
   de ne dfinir que l'utilisateur root, sans mot de passe ! Mettez le
   simplement dans le fichier /etc/passwd du systme cible :
   root::0:0:root:/root:/bin/bash

   Les champs sont spars par des deux-points, et correspondent, de
   gauche  droite,  l'identifiant de l'utilisateur,  son mot de passe
   (chiffr),  son numro d'utilisateur,  son numro de groupe,  son
   nom complet,  son rpertoire personnel, et  son interprteur de
   commandes par dfaut.
     _________________________________________________________________

11. Sh-utils

   Le dernier paquet dont nous ayons besoin est le sh-utils GNU. Le seul
   programme ncessaire  ce niveau est stty, qui est utilis dans
   /etc/init.d/rc, lui-mme utilis pour changer de niveau d'excution et
   entrer dans le niveau initial. En fait, je possde et ai utilis un
   paquet qui ne contient que stty mais je ne peux me souvenir d'o il
   vient. Il vaut mieux utiliser le paquet GNU, car il contient d'autres
   choses dont vous aurez besoin si vous voulez les ajouter au systme
   pour le rendre vraiment utilisable.

   Bien, a y est. Vous devriez maintenant avoir un systme qui va
   dmarrer et vous donner l'invite de connexion. Saisissez-y root, et
   vous devriez accder  l'interprteur de commandes. Vous ne pourrez
   pas faire grand chose avec, il n'y a mme pas la commande _ls_ pour
   voir votre travail. Tapez deux fois sur la touche _Tab_ pour voir les
   commandes disponibles. C'est la chose la plus intressante que j'ai
   trouve  faire avec.
     _________________________________________________________________

12. Rendre le systme plus utilisable

   Il semblerait que nous ayons l un systme plutt inutilisable. Mais
   en ralit, nous ne sommes pas trs loin de pouvoir commencer 
   travailler avec. L'une des premires choses  faire est de rendre le
   systme de fichiers racine accessible en lecture et en criture. Il y
   a un script issu du paquet SysVinit, /etc/init.d/mountall.sh qui
   s'occupe de cela, et effectue un _mount -a_ pour monter
   automatiquement tout ce qui est spcifi dans le fichier /etc/fstab.
   Mettez un lien symbolique du genre S05mountall vers lui dans le
   rpertoire etc/rc2.d du systme cible.

   Il se peut que ce script utilise des commandes que vous n'avez pas
   encore installes. Si c'est le cas, trouvez le paquet qui contient ces
   commandes et installez-le. Voyez la section astuces diverses pour
   avoir des indications sur la marche  suivre pour trouver ces paquets.

   Regardez les autres scripts de /etc/init.d. La plupart d'entre-eux
   doit tre incluse dans tout systme srieux. Ajoutez-les un  un, et
   assurez-vous que tout se lance en douceur avant d'en ajouter d'autres.

   Lisez le standard de hirarchie des fichiers (voir section liens). Il
   contient une liste des commandes qui devraient tre dans /bin et
   /sbin. Assurez-vous que toutes ces commandes sont installes sur votre
   systme. Mieux encore, trouvez la documentation Posix qui spcifie
   tout cela.

    partir de maintenant, il n'est plus question que d'ajouter de plus
   en plus de paquets, jusqu' ce que tout ce que vous souhaitez avoir se
   trouve sur votre systme. Installez les outils de construction comme
   make et gcc le plus tt possible. Une fois que cela sera fait, vous
   pourrez faire construire le systme cible par lui-mme, ce qui est
   bien moins complexe.
     _________________________________________________________________

13. Informations complmentaires

13.1. Astuces diverses

   Si vous avez une commande appele _machin_ sur un systme Linux avec
   RPM, et souhaitez avoir des indications sur l'endroit o trouver les
   sources, vous pouvez utiliser la commande :
   rpm -qif `which machin`

   Et si vous avez un CD de sources Red Hat, vous pouvez installer le
   code source avec
   rpm -i /mnt/cdrom/SRPMS/ce.qu.il.vient.de.dire-1.2.srpm

   Ceci mettra l'archive, avec les patches Redhats ventuels dans
   /usr/src/redhat/SOURCES.
     _________________________________________________________________

13.2. Liens

     * Il existe un guide pratique sur la manire de construire des
       logiciels  partir de leurs sources, le Software Building HOWTO.
     * Il existe aussi un guide pratique sur la manire de construire un
       systme Linux  partir de zro. Il met l'accent sur la
       construction d'un systme rellement utilisable, plutt que d'tre
       un simple exercice : Comment faire un systme Linux  partir de
       zro (_Linux from scratch - LFS_).
     * Le standard de hirarchie du systme de fichier Unix (FHS). Ce
       standard dcrit quels lments doivent aller  quels endroits dans
       un systme de fichier Unix, et pourquoi. Il indique galement le
       contenu minimum requis des rpertoires /bin, /sbin, et ctera.
       C'est une bonne rfrence si votre but est de raliser un systme
       minimal, mais fonctionnel. Il en existe une version franaise.
     _________________________________________________________________

14. Section administrative

14.1. Copyright

   Copyright  1999, 2000 Greg O'Keefe. Vous tes libre de l'utiliser, le
   copier, le distribuer ou le modifier, sans obligation, selon les
   termes de la licence publique gnrale GNU (GPL : GNU General Public
   Licence). Merci de citer l'auteur si vous utilisez tout ou partie de
   ce document dans un autre.
     _________________________________________________________________

14.2. Page principale

   Les mises  jour de ce document voluent sur From Powerup To Bash
   Prompt.
     _________________________________________________________________

14.3. Ractions

   J'aimerais recevoir vos commentaires, critiques et suggestions.
   Veuillez s'il vous plat me les envoyer en anglais  Greg O'Keefe
   <gcokeefe@postoffice.utas.edu.au>
     _________________________________________________________________

14.4. Rfrences et remerciements

   Les noms de produits cits sont des marques dposes par leurs
   propritaires respectifs, et considrs par cette note comme reconnus
   comme tels.

   Il y a quelques personnes que je voudrais remercier, pour m'avoir aid
    raliser tout ceci.

   Michael Emery
          Pour m'avoir rappel Unios.

   Tim Little
          Pour de bonnes indications concernant /etc/passwd

   sPaKr dans #linux sur efnet
          Qui a souponn l'utilisation de /etc/services par syslog, et
          m'a fait connatre la phrase  rolling your own  ( fabriquez
          votre propre systme ) pour dcrire la construction d'un
          systme  partir des sources.

   Alex Aitkin
          Pour avoir port Vico et son  verum ipsum factum  (La
          comprhension dcoule de l'exprience)  mon attention.

   Dennis Scott
          Pour avoir corrig mon arithmtique hexadcimale.

   jdd
          Pour avoir mis en vidence quelques erreurs typographiques.
     _________________________________________________________________

14.5. Historique des changements

   0.8 -> 0.9
          Ajout de la manipulation du fichier makefile de sysvinit. Cette
          information est due  Gerard Beekmans, connu pour le  Linux
          From Scratch .

   0.8
          Version initiale. Sparation de ce HOWTO du  From PowerUp to
          Bash Prompt .
     _________________________________________________________________

14.6. Amliorations prvues

     * Conversion au format DocBook.
     _________________________________________________________________

14.7. Adaptation franaise

14.7.1. Traduction

   La traduction franaise de ce document a t ralise par Dominique
   van den Broeck <dvandenbroeck@free.fr>, dcembre 2000 (v0.9).
     _________________________________________________________________

14.7.2. Relecture

   La relecture de ce document a t ralise par Jean-Philippe Gurard
   <jean-philippe.guerard@laposte.net>. Les version prcdentes ont t
   relues par Guillaume Allgre et Anthony Boureux.
