Linux From Sratch
Gerard Beekmans
Version 2.2, 3 avril 2000
Ce document d�crit comment cr�er de toute pi�ce un syst�me Linux �
partir des sources des applications et d'une distribution d�j�
install�e.
______________________________________________________________________
Table des mati�res
1. Introduction
1.1 De quoi s'agit-il ?
1.2 Mises � jour
1.3 Historique de ce document
1.4 Listes de diffusion
1.4.1 Inscription
1.4.2 R�silier une inscription
1.5 Contact
2. Conventions utilis�es dans ce document
2.1 A propos de $LFS
2.2 Comment t�l�charger les applications
2.3 Comment installer les applications
3. Les paquetages que vous devez t�l�charger
3.1 Applications indispensables
3.2 Applications facultatives
4. Pr�parer le nouveau syst�me
4.1 Comment allons-nous proc�der
4.2 Cr�er une nouvelle partition
4.3 Cr�er un syst�me de fichiers
4.4 Monter la nouvelle partition
4.5 Cr�er les r�pertoire
4.6 Copier le r�pertoire
5. Rendre le syst�me LFS amor�able
5.1 Installer Sysvinit
5.2 Configurer Sysvinit
5.3 Cr�er les fichiers passwd et group
5.4 Installer le shell Bash
5.5 Ajouter une entr�e � LILO
5.6 Tester le syst�me
6. Installer un noyau
6.1 Remarque au sujet de ftp.kernel.org
6.2 Configurer le noyau
6.3 Mettre � jour LILO
6.4 Tester le syst�me
7. Installer les applications de base
7.1 A propos des symboles de d�bogage
7.2 Pr�parer le syst�me LFS pour installer les applications de base
7.2.1 Installer Binutils
7.2.2 Installer Bzip2
7.2.3 Installer Diffutils
7.2.4 Installer Fileutils
7.2.5 Installer GCC sur le syst�me normal si n�cessaire
7.2.6 Installer GCC sur le syst�me LFS
7.2.6.1 Cr�ation des liens symboliques n�cessaires
7.2.7 Installer Glibc
7.2.7.1 Copier les anciens fichiers de la biblioth�que NSS
7.2.8 Installer grep
7.2.9 Installer gzip
7.2.10 Installer Make
7.2.11 Installer Sed
7.2.12 Installer Sh-utils
7.2.13 Installer Tar
7.2.14 Installer Textutils
7.2.15 Installer Util-linux
7.3 Installer les applications de base
7.3.1 Remonter la partition et activer le swap
7.3.2 Installer GCC
7.3.3 Installer Bison
7.3.4 Installer Mawk
7.3.5 Installer Findutils
7.3.6 Installer Termcap
7.3.7 Installer Ncurses
7.3.8 Installer Less
7.3.9 Installer Perl
7.3.10 Installer M4
7.3.11 Installer Texinfo
7.3.12 Installer Autoconf
7.3.13 Installer Automake
7.3.14 Installer Bash
7.3.15 Installer Flex
7.3.16 Installer Binutils
7.3.17 Installer Bzip2
7.3.18 Installer Diffutils
7.3.19 Installer E2fsprogs
7.3.20 Installer File
7.3.21 Installer Fileutils
7.3.22 Installer Grep
7.3.23 Installer Groff
7.3.24 Installer Gzip
7.3.25 Installer Ld.so
7.3.26 Installer Libtool
7.3.27 Installer Linux86
7.3.28 Installer Lilo
7.3.29 Installer Make
7.3.30 Installer Sh-Utils
7.3.31 Installer Shadow Password Suite
7.3.32 Installer Man
7.3.33 Installer Modutils
7.3.34 Installer Procinfo
7.3.35 Installer Procps
7.3.36 Installer Psmisc
7.3.37 Installer Sed
7.3.38 Installer le d�mon start-stop
7.3.39 Installer Sysklogd
7.3.40 Installer Sysvinit
7.3.41 Install Tar
7.3.42 Installer Textutils
7.3.43 Installer Vim
7.3.44 Installer Util-linux
7.4 Suppression des anciens fichiers de la biblioth�que NSS
7.5 Configurer les applications
7.5.1 Configurer Glib
7.5.2 Configurer LILO
7.5.3 Configurer Sysklogd
7.5.4 Configurer Shadow Password Suite
7.5.5 Configurer Sysvinit
7.5.6 Cr�er le fichier
8. Cr�ez les scripts de d�marrage du syst�me
8.1 Pr�parer les r�pertoires et les fichiers principaux
8.2 Cr�er le script de red�marrage
8.3 Cr�er le script d'arr�t
8.4 Cr�er le script
8.5 Cr�er le script
8.6 Cr�er le script
8.7 Cr�er le script de d�marrage
8.8 Cr�er le script de d�marrage
8.9 Cr�er les liens symboliques et fixer les permissions
8.10 Cr�er le fichier
9. Configurer la base du r�seau
9.1 Installer Netkit-base
9.2 Installer Net-tools
9.2.1 Cr�er le script de d�marrage
9.2.2 Param�trer les permissions et les liens symboliques
9.2.3 Cr�er le fichier
9.2.4 Cr�ez le fichier
9.2.5 Cr�er le fichier
9.2.6 Param�trer les permissions et liens symboliques pour
9.2.7 Tester la configuration du r�seau
9.3 Tester le syst�me
10. Installer les d�mons r�seau
10.1 Configurer SMTP
10.1.1 Cr�er les groupes et utilisateurs
10.1.2 Cr�er les r�pertoires
10.1.3 Installer Sendmail
10.1.4 Configuring Sendmail
10.1.5 Installer Procmail
10.1.6 Cr�er le script de d�marrage
10.1.7 Param�trer les permissions et liens symboliques
10.2 Configurer FTP
10.2.1 Cr�er les groupes et utilisateurs
10.2.2 Installer Proftpd
10.2.3 Cr�er le script de d�marrage
10.2.4 Param�trer les permissions et les liens symboliques
10.3 Configurer HTTP
10.3.1 Installer Apache
10.3.2 Configurer Apache
10.3.3 Cr�er le script de d�marrage
10.3.4 Param�trer les permissions et liens symboliques
10.4 Configurer Telnet
10.4.1 Installer le d�mon et le client telnet
10.4.2 Cr�er le fichier de configuration
10.4.3 Cr�er le script de d�marrage
10.4.4 Param�trer les permissions et liens symboliques
10.5 Configurer PPP
10.5.1 Configurer le noyau
10.5.2 Cr�er le groupe
10.5.3 Installer PPP
10.5.4 Cr�er le fichier
10.5.5 Cr�er le fichier
10.5.6 Cr�er le fichier
10.5.7 Remarque concernant l'authentification des mots de passe
11. Installer les clients r�seau
11.1 Installer les clients Email
11.1.1 Installer Mailx
11.1.2 Installer Mutt
11.1.3 Installer Fetchmail
11.1.4 Tester le syst�me email
11.2 Installer le client FTP
11.2.1 Installer Netkit-ftp
11.2.2 Tester le syst�me FTP
11.3 Installer le client HTTP
11.3.1 Installer Zlib
11.3.2 Installer Lynx
11.3.3 Tester le syst�me HTTP
11.4 Installer le client Telnet
11.4.1 Tester le syst�me Telnet
11.5 Installer les clients PPP
11.5.1 Cr�er le script de connexion
11.5.2 Cr�er le script de d�connexion
11.5.3 Tester le syst�me PPP
12. Installer le syst�me X Window
12.1 Installer X
12.2 Cr�er
12.3 Cr�er le lien symbolique
12.4 Cr�er le lien symbolique
12.5 Ajouter
12.6 Configurer X
12.7 Tester X
12.8 Installer Window Maker
12.9 Pr�parer le syst�me pour l'installation de Window Maker
12.9.1 Installer libPropList
12.9.2 Installer libXpm
12.9.3 Installer libpng
12.9.4 Installer libtiff
12.9.5 Installer libjpeg
12.9.6 Installer libungif
12.9.7 Installer WindowMaker
12.10 Mettre � jour le cache du chargeur dynamique
12.11 Configurer Window Maker
12.12 Tester Window Maker
13. Ressources
13.1 Livres
13.2 HOWTOs
13.3 Autre
14. La Fin
15. Copyright & information de licence
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
11..11.. DDee qquuooii ss''aaggiitt--iill ??
J'ai utilis� de nombreuses distributions Linux diff�rentes, toutefois
aucune d'elles ne m'a jamais vraiment satisfait. Parfois l'agencement
des scripts de d�marrage ne me convenait pas, parfois la configuration
par d�faut des programmes n'�tait pas � mon go�t. J'en suis venu �
penser que je ne serai jamais compl�tement satisfait par un syst�me
Linux tant que je n'en construirais pas un moi-m�me. L'id�al �tait de
partir uniquement des fichiers sources de chaque application et donc
de n'utiliser aucun paquetage pr�construit ni disquette ou CDROM
installant un syst�me de base.
A premi�re vue, cette id�e semblait saugrenue, voire presque
irr�alisable. La plupart des probl�mes qui freinaient ma progression
venaient de mon manque de connaissances au sujet de certains
programmes et m�canismes. Ainsi apr�s avoir rencontr� et r�solu tous
les probl�mes li�s � la d�pendance, � la compilation, etc, je parvins
� mettre en place un syst�me Linux op�rationnel. J'ai nomm� alors ce
syst�me LFS, qui signifie en anglais Linux From Scratch (NDT :
approximativement "Linux de Z�ro").
En pratique, nous mettrons en place ce syst�me id�al � partir d'une
distribution Linux d�j� en place .
11..22.. MMiisseess �� jjoouurr
La derni�re version anglaise de ce document est disponible � tout
moment � l'adresse :
http://www.linuxfromscratch.org
11..33.. HHiissttoorriiqquuee ddee ccee ddooccuummeenntt
2.1.5 - 26 mars 2000
Il ne s'agit pas d'une liste exhaustive des modifications. Comme la
version 2.0 est une mise � jour majeure, seuls les changements majeurs
sont mentionn�s.
� Modification de la structure de l'arborescence - LFS est conforme �
la norme FHS. Peut-�tre pas � 100%.
� Nouvelle m�thode d'installation de la Glibc
� Nouvelle m�thode d'installation de GCC
� Suppression de l'utilisation de paquetages pr�construits Debian.
� M�thode d'installation des applications compl�tement r�vis�e -
�limination de la n�cessit� d'utiliser des paquetages li�s
statiquement dans le chapitre 6.1.
� Divers bogues corrig�s concernant l'installation des applications
� Quelques programmes suppl�mentaires du paquetage util-linux
install�s
� Ajout de l'installation du programme Bzip2
� Explications plus d�taill�es concernant $LFS - ce qu'il faut et ce
qu'il ne faut pas faire.
� Proc�dure d'installation simplifi�e pour tous les paquetages des
chapitres 5 � 9.1
� Installation de la Glibc et de GCC, poss�dant jusqu'� pr�sent leur
propre chapitre, incluse dans le chapitre 7.
� Chapitre concernant les serveurs Internet modifi� : cr�ation de
deux chapitres : D�mons R�seau et Clients R�seau. Le chapitre
concernant Internet a �t� partag� entre ceux-ci.
� Echange des chapitres 13 et 14 (X et Internet) et concat�nation des
chapitres concernant X et WindowMaker.
� Un nouveau programme Man est utilis�. Il est plus facile �
manipuler et � configurer que le man-db utilis� pr�c�demment. Les
deux versions r�alisent sensiblement le m�me travail.
� Ajout du chapitre 13 : les ressources. Ce chapitre contient les
r�f�rences de nombreux livres et HOWTOs qui vous seront utilis�s au
cours ou au terme de la construction du syst�me LFS.
� Chapitre 3 : lien bzip2 corrig�
� Chapitre 7.2.42 : m�thode d'installation d'Util-Linux simplifi�e.
� Chapitre 3.1 : emplacement de procps modifi�
� Chapitre 7.2 : �change de l'installation de Vim et d'Util-Linux
(car nous avons besoin d'un �diteur de textes pour installer Util-
Linux)
� Chapitre 7.3.33: installation de procps corrig�e
� Chapitre 5.2: fichier inittab modifi� de mani�re � ce que le
syst�me ne signale plus de fichiers manquants au d�marrage de la
machine.
� Chapitre 6: r��criture de l'installation du noyau
� Chapitre 10.3: Script de d�marrage d'Apache modifi�
� Chapitre 10.3.2: section concernant la modification du fichier
httpd.conf supprim�e. Elle n'est plus n�cessaire. Ajout des
fichiers de /usr/apache/man dans le fichier
/usr/share/misc/man.conf.
� Chapitre 11.1: Correction du fichier Makefile du paquetage mailx
afin de simplifier la proc�dure d'installation.
� Chapitre 11.3.1: Ajout de l'option --shared lors de l'ex�cution de
configure afin que la Zlib soit install�e comme une biblioth�que
dynamique plut�t que statique.
� Chapitre 11.6: Lynx li� � la biblioth�que Ncurses plut�t que Slang.
� Chapitre 12: Le fichier man_db.config de la nouvelle application
man-db contient toujours le r�pertoire X11/man.
2.2 - 3 avril 2000
� Les domaines linuxfromscratch.org et linuxfromscratch.com sont
op�rationnels. Tous les liens vers huizen.dds.nl/glb et
tts.ookhio.dds.nl ont �t� remplac�s par les liens appropri�s vers
www.linuxfromscratch.org.
� Apr�s le red�marrage de la machine au chapitre 7.3, la partition
swap est activ�e avant de commencer � compiler les applications.
11..44.. LLiisstteess ddee ddiiffffuussiioonn
Il existe deux listes auxquelles vous pouvez vous inscrire : lfs-
discuss et lfs-announce. La premi�re est une liste publique non
mod�r�e concernant tout ce qui a trait � ce document. La seconde est
une liste publique mod�r�e. Tout le monde peut s'y inscrire mais
personne ne peut y poster de message, � l'exception des mod�rateurs.
Cette liste est principalement d�di�e aux annonces de nouvelles
versions de ce document.
Si vous �tes inscrits � la liste de diffusion lfs-discuss, vous n'avez
pas besoin de vous inscrire � lfs-announce. En effet, tout ce qui est
envoy� sur la liste lfs-announce est �galement envoy� sur lfs-discuss.
11..44..11.. IInnssccrriippttiioonn
Pour vous inscrire � une liste, envoyez un email, dont le corps
contient soit _s_u_b_s_c_r_i_b_e _l_f_s_-_d_i_s_c_u_s_s, soit _s_u_b_s_c_r_i_b_e _l_f_s_-_a_n_n_o_u_n_c_e_, �
mailto:
[email protected]
Majordomo vous enverra une demande de confirmation. Celle-ci
contiendra un code d'authentification et la marche � suivre pour
poursuivre la demande d'inscription. Une fois que vous aurez r�pondu �
ce mail, vous serez alors inscrit � la liste.
11..44..22.. RR��ssiilliieerr uunnee iinnssccrriippttiioonn
Pour r�silier votre inscription � une liste, envoyez un email, dont le
corps contient soit _u_n_s_u_b_s_c_r_i_b_e _l_f_s_-_d_i_s_c_u_s_s soit _u_n_s_u_b_s_c_r_i_b_e _l_f_s_-
_a_n_n_o_u_n_c_e � l'adresse suivante : mailto:
[email protected]
11..55.. CCoonnttaacctt
Envoyez de pr�f�rence toutes vos questions � la liste de diffusion. Si
vous avez besoin de me contacter personnellement, envoyez un mail �
l'adresse suivante : mailto:
[email protected]
22.. CCoonnvveennttiioonnss uuttiilliiss��eess ddaannss ccee ddooccuummeenntt
22..11.. AA pprrooppooss ddee $$LLFFSS
Lisez ce qui suit attentivement : tout au long de ce document, vous
rencontrerez fr�quemment des r�f�rences � une variable dont le nom est
$LFS. Celle-ci doit �tre syst�matiquement remplac�e par le point de
montage de la partition sur laquelle vous cr�ez votre syst�me LFS. La
fa�on de cr�er et de monter cette partition sera expliqu�e en d�tail
au chapitre 4. Dans mon cas, j'utilise le r�pertoire /mnt/hda5 comme
point de montage pour la partition LFS. Ainsi toutes les occurrences
de $LFS de ce document sont � remplacer par /mnt/hda5. Donc si je lis
la commande : cp inittab $LFS/etc, je taperai en r�alit� cp inittab
/mnt/hda5/etc
Vous devez effectuer cette substitution quel que soit l'endroit o�
vous rencontrez $LFS, que ce soit dans une commande, ou dans un
fichier que vous devez cr�er ou �diter.
Il existe une deuxi�me m�thode qui consiste � d�finir la variable
d'environnement $LFS. De cette mani�re, vous tapez les commandes
comportant une r�f�rence � $LFS telles quelles et le shell proc�dera �
la substitution lui-m�me. Pour d�finir $LFS, utilisez la commande :
export LFS=/mnt/hda5
Dans ce cas, vous saisissez sans modification la commande cp inittab
$LFS/etc rencontr�e dans ce document et le shell ex�cutera en r�alit�
cp inittab /mnt/hda5/etc .
Si vous utilisez cette m�thode, il est tr�s important que la variable
d'environnement $LFS soit toujours d�clar�e. Si ce n'est pas le cas,
les occurrences de $LFS pr�sentes dans les commandes que vous taperez
seront ignor�es et le reste sera ex�cut�. Ainsi la commande cp inittab
$LFS/etc sera traduite par le shell en cp inittab /etc avec pour
cons�quence d'�craser le fichier inittab de votre syst�me Linux. Un
fichier comme inittab n'est pas tr�s difficile � reconstruire, mais
imaginez ce qui se passera si $LFS n'est pas d�fini au cours de
l'installation de la biblioth�que C. Vous endommagerez gravement votre
syst�me et � moins que vous ne soyez un expert Linux, vous serez
oblig� de tout r�installer. Je vous conseille donc d'utiliser la
m�thode de substitution manuelle. Ainsi au pire, si vous vous trompez
en saisissant le nom du point de montage de votre partition LFS, le
syst�me renverra une erreur du type "_n_o _s_u_c_h _f_i_l_e _o_r _d_i_r_e_c_t_o_r_y" sans
aucun dommage pour votre syst�me. Ne dites pas que je ne vous ai pas
pr�venu ;-)
22..22.. CCoommmmeenntt tt��ll��cchhaarrggeerr lleess aapppplliiccaattiioonnss
Tout au long de ce document, je supposerai que vous avez enregistr�
tous les paquetages que vous avez t�l�charg� dans un sous-r�pertoire
de $LFS/usr/src.
J'utilise par convention le r�pertoire $LFS/usr/src/sources. "sources"
contient les r�pertoires 0 � 9 et a � z. Ainsi le paquetage
Sysvinit-2.78.tar.gz est sauvegard� dans $LFS/usr/sources/s/ , tandis
que bash-3.02.tar.gz se trouve dans $LFS/usr/src/sources/b/ . Vous
n'�tes pas oblig� de suivre ce mod�le, ce n'est qu'un exemple. Il est
par contre pr�f�rable de ne pas conserver de paquetages dans
$LFS/usr/src car ce r�pertoire servira � d�compresser les archives au
fur et � mesure que nous en aurons besoin.
Le prochain chapitre contient la liste des paquetages que vous devez
t�l�charger. A ce point du document, la partition destin�e � recevoir
le syst�me LFS n'existe pas. Vous devez donc sauvegarder ces
paquetages dans un endroit temporaire et vous rappelez de les copier
de cet endroit vers $LFS/usr/src/<r�pertoiredevotrechoix> au terme du
chapitre 4.
22..33.. CCoommmmeenntt iinnssttaalllleerr lleess aapppplliiccaattiioonnss
Avant de pouvoir faire quelque chose des paquetages, vous devez les
d�sarchiver. G�n�ralement, il s'agit d'archives au format tar/gz
(l'extension est soit .tar.gz soit .tgz) ou au format tar/bz
(extension .tar.bz2). Le compresseur Bzip2 est un peu plus efficace
que gzip mais n'est pas toujours install� par d�faut. Ainsi si vous
t�l�chargez des archives au format bz, v�rifiez que Bzip2 est
disponible sur votre syst�me. Je n'expliquerai qu'une seule fois, dans
ce paragraphe, comment d�sarchiver les paquetages, aussi lisez
attentivement ce qui suit.
� Commencez par _c_o_p_i_e_r les paquetages depuis l'emplacement o� vous
les avez enregistr�s vers le r�pertoire $LFS/usr/src.
� Si l'archive est au format tar/gz, d�sarchivez-la gr�ce � la
commande : tar xvfz filename.tar.gz; rm filename.tar.gz ou tar xvfz
filename.tgz; rm filename.tgz
� S'il s'agit d'une archive tar/bz2, utilisez la commande : tar
--use-compress-prog=bzip2 -xvf filename.tar.bz2; rm
filename.tar.bz2
� Enfin si l'archive est au format tar (pas de compression), utilisez
la commande : tar xvf filename.tar; rm filename.tar
Remarquez que nous effa�ons le paquetage juste apr�s l'avoir
d�sarchiv� car nous n'en avons plus besoin. C'est pourquoi vous devez
_c_o_p_i_e_r l'archive et non la d�placer. Si vous la d�placez, la
d�sarchivez et l'effacez, vous devrez la t�l�charger � nouveau lorsque
vous en aurez besoin.
Lorsque le paquetage est d�sarchiv�, un nouveau r�pertoire est cr��
dans le r�pertoire actif ($LFS/usr/src si vous suivez ce document � la
lettre). Vous devez vous positionner dans ce r�pertoire avant de
poursuivre l'installation. Finalement tout ce qui pr�c�de peut se
r�sumer � "D�sarchivez xxx". Ainsi lorsque vous lirez cette phrase,
copiez l'archive dans $LFS/usr/src, d�sarchivez-la gr�ce � la commande
tar et positionnez-vous dans le r�pertoire cr��. Ensuite vous pouvez
continuer � suivre les instructions.
Apr�s avoir install� un paquetage, vous pouvez en faire deux choses.
Soit vous effacez le r�pertoire qui contient ses sources, soit vous le
conservez. Quelle que soit votre d�cision, je ne m'en porterai pas
plus mal. Toutefois si vous avez besoin de r�utiliser un paquetage
plus tard dans le document (tous les logiciels du chapitre 7.2 seront
r�install�s dans le chapitre 7.3), vous devez d'abord effacer le
r�pertoire et d�sarchiver � nouveau l'archive. Si vous ne le faites
pas, vous pourriez avoir quelques probl�mes inh�rents aux param�tres
utilis�s lors de la pr�c�dente compilation. Ceux-ci s'appliquaient �
votre syst�me Linux normal mais pas au syst�me LFS. M�me un simple
make clean ne suffit pas � nettoyer totalement les sources de
l'arborescence. Le script configure g�n�re �galement des fichiers
r�partis dans divers sous-r�pertoires et ces fichiers sont rarement
effac�s au cours de l'ex�cution de make clean.
33.. LLeess ppaaqquueettaaggeess qquuee vvoouuss ddeevveezz tt��ll��cchhaarrggeerr
Vous trouverez ci-dessous la liste des paquetages que vous devez
absolument t�l�charger pour mener � bien la m�thode expos�e dans ce
document et obtenir un syst�me LFS op�rationnel. J'ai �galement
indiqu� les serveurs sur lesquels ils sont disponibles, mais c'est �
vous de vous assurer que vous t�l�chargez bien la derni�re version des
applications. Les versions indiqu�es dans la liste correspondent �
celles utilis�es dans ce document et ont donc �t� test�es. Ainsi si
vous rencontrez le moindre probl�me que vous ne pouvez r�soudre avec
les archives que vous avez r�cup�r�es, t�l�chargez la version indiqu�e
dans ce document (dans le cas o� vous avez t�l�charg� une version plus
r�cente).
33..11.. AApppplliiccaattiioonnss iinnddiissppeennssaabblleess
Sysvinit (2.78) :
ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/
Bash (2.03) :
ftp://ftp.gnu.org/gnu/bash/
Linux Kernel (2.2.14) :
ftp://ftp.kernel.org/pub/linux/kernel/
Binutils (2.9.1) :
ftp://ftp.gnu.org/gnu/binutils/
Bzip2 (0.9.5d) :
http://sourceware.cygnus.com/bzip2/
Diff Utils (2.7) :
ftp://ftp.gnu.org/gnu/diffutils/
File Utils (4.0) :
ftp://ftp.gnu.org/gnu/fileutils/
GCC (2.95.2) :
ftp://ftp.gnu.org/gnu/gcc/
Glibc (2.1.3) :
ftp://ftp.gnu.org/gnu/glibc/
Glibc-crypt (2.1.2) :
ftp://ftp.gwdg.de/pub/linux/glibc/
Glibc-linuxthreads (2.1.3) :
ftp://ftp.gnu.org/gnu/glibc/
Grep (2.4) :
ftp://ftp.gnu.org/gnu/grep/
Gzip (1.2.4) :
ftp://ftp.gnu.org/gnu/gzip/
Make (3.78.1) :
ftp://ftp.gnu.org/gnu/make/
Sed (3.02) :
ftp://ftp.gnu.org/gnu/sed/
Shell Utils (2.0) :
ftp://ftp.gnu.org/gnu/sh-utils/
Tar (1.13) :
ftp://ftp.gnu.org/gnu/tar/
Text Utils (2.0) :
ftp://ftp.gnu.org/gnu/textutils/
Util Linux (2.10f) :
ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/
Bison (1.28) :
ftp://ftp.gnu.org/gnu/bison/
Mawk (1.3.3) :
ftp://ftp.whidbey.net/pub/brennan/
Find Utils (4.1) :
ftp://ftp.gnu.org/gnu/findutils/
Ncurses (5.0) :
ftp://ftp.gnu.org/gnu/ncurses/
Less (340) :
ftp://ftp.gnu.org/gnu/less/
Perl (5.005_03) :
ftp://ftp.gnu.org/gnu/perl/
M4 (1.4) :
ftp://ftp.gnu.org/gnu/m4/
Texinfo (4.0) :
ftp://ftp.gnu.org/gnu/texinfo/
Autoconf (2.13) :
ftp://ftp.gnu.org/gnu/autoconf/
Automake (1.4) :
ftp://ftp.gnu.org/gnu/automake/
Flex (2.5.4a) :
ftp://ftp.gnu.org/gnu/flex/
E2fsprogs (1.18) :
ftp://tsx-11.mit.edu/pub/linux/packages/ext2fs/
File (3.26) :
http://www.linuxfromscratch.org/download/file-3.26-lfs.tar.gz
Groff (1.15) :
ftp://ftp.gnu.org/gnu/groff/
Ld.so (1.9.9) :
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/
Libtool (1.3.4) :
ftp://ftp.gnu.org/gnu/libtool/
Linux86 (0.14.3) :
http://www.linuxfromscratch.org/download/linux86-0.14.3-lfs.tar.gz
Lilo (21) :
ftp://sunsite.unc.edu/pub/Linux/system/boot/lilo/
Shadow Password Suite (19990827) :
ftp://piast.t19.ds.pwr.wroc.pl/pub/linux/shadow/
Man (1.5h1) :
ftp://ftp.win.tue.nl/pub/linux-local/utils/man/
Modutils (2.3.9) :
ftp://ftp.ocs.com.au/pub/modutils/
Termcap (1.3) :
ftp://ftp.gnu.org/gnu/termcap/
Procinfo (17) :
ftp://ftp.cistron.nl/pub/people/svm/
Procps (2.0.6) :
ftp://people.redhat.com/johnsonm/procps/
Psmisc (19) :
ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/
Start-stop-daemon (0.4.1) :
http://www.linuxfromscratch.org/download/ssd-0.4.1-lfs.tar.gz
Sysklogd (1.3.31) :
ftp://sunsite.unc.edu/pub/Linux/system/daemons/
Vim (5.6) :
ftp://ftp.vim.org/pub/editors/vim/unix/
33..22.. AApppplliiccaattiioonnss ffaaccuullttaattiivveess
Toutes les applications list�es ci-dessous, trait�es � partir du
chapitre 13, ne sont pas indispensables. C'est � vous de d�terminer
les paquetages dont vous avez besoin. Par exemple, si vous souhaitez
pouvoir acc�der � Internet par le biais du syst�me LFS, vous devez
installer les utilitaires concernant le courrier �lectronique, le web,
etc.
Netkit-base (0.17) :
ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/
Net-tools (1.54) :
http://www.tazenda.demon.co.uk/phil/net-tools/
Procmail (3.14) :
ftp://ftp.procmail.org/pub/procmail/
Sendmail (8.9.3) :
ftp://ftp.sendmail.org/pub/sendmail/
Mailx (8.1.1) :
http://www.linuxfromscratch.org/download/mailx-8.1.1-fixed.tar.gz
Mutt (1.0i) :
ftp://ftp.mutt.org/pub/mutt/
Fetchmail (5.2.0) :
http://www.tuxedo.org/~esr/fetchmail/
Netkit-telnet (0.17) :
ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/
Proftpd (1.2.0pre9) :
ftp://ftp.tos.net/pub/proftpd/
Netkit-ftp (0.17) :
ftp://ftp.uk.linux.org/pub/linux/Networking/netkit-devel/
Apache (1.3.11) :
http://www.apache.org/dist/
Zlib Library (1.1.3) :
http://www.cdrom.com/pub/infozip/zlib/
Lynx (2.8.2) :
http://www.slcc.edu/lynx/release/
PPP (2.3.11) :
ftp://cs.anu.edu.au/pub/software/ppp/
Xfree86 (3.3.5) :
ftp://ftp.xfree86.org/pub/XFree86/
libPropList (0.9.1) :
ftp://ftp.windowmaker.org/pub/libs/
libXpm (4.7) :
ftp://sunsite.unc.edu/pub/Linux/libs/X/
libpng (1.0.3) :
http://www.cdrom.com/pub/png/
libtiff (3.4) :
ftp://ftp.sgi.com/graphics/tiff/
libjpeg (6b) :
http://www.ijg.org/
libungif (4.1.0) :
ftp://prtr-13.ucsc.edu/pub/libungif/
WindowMaker (0.61.1) :
ftp://ftp.windowmaker.org/pub/release/
44.. PPrr��ppaarreerr llee nnoouuvveeaauu ssyysstt��mmee
44..11.. CCoommmmeenntt aalllloonnss--nnoouuss pprroocc��ddeerr
Nous allons construire le syst�me LFS en utilisant une distribution
Linux d�j� en place, comme par exemple Debian, SuSE, Slackware,
Mandrake, RedHat, etc. Vous n'avez pas besoin de disquette de
d�marrage particuli�re. Nous utiliserons tous les outils du syst�me
d�j� en place (compilateur, �diteur de liens, �diteur de textes et
quelques autres).
Si vous ne disposez pas d'un syst�me d�j� en place, vous ne pourrez
pas utiliser la m�thode d�crite dans ce document. Il est donc dans ce
cas indispensable que vous en installiez un, peu importe la
distribution, tant qu'elle n'est pas trop vieille. Je pense que toute
distribution �g�e d'au maximum un an devrait convenir. Par ailleurs,
vous vous �viterez pas mal de soucis si cette distribution est bas�e
sur glibc-2.0 ou mieux. Je n'ai pas pris en compte les syst�mes bas�s
sur Libc5 puisque je n'ai pas eu l'occasion d'en utiliser un.
44..22.. CCrr��eerr uunnee nnoouuvveellllee ppaarrttiittiioonn
Pour construire notre nouveau syst�me Linux, nous avons besoin d'une
partition Linux vide. Pr�voyez un minimum de 500 Mo, cela devrait
suffire. Vous pouvez �ventuellement utiliser une partition de 250 Mo,
si vous souhaitez construire un syst�me Linux simple (sans syst�me X
Window ou outils d�di�s � la navigation sur Internet). Si vous
disposez d�j� d'une partition Linux Native vide, vous pouvez passer
cette sous-section.
D�marrez le programme fdisk (ou tout partitionneur de votre choix, du
moment qu'il autorise la cr�ation de partitions Linux) en indiquant le
disque dur sur lequel vous souhaitez cr�er la nouvelle partition Linux
(par exemple fdisk /dev/hda si la nouvelle partition doit �tre cr��e
sur le disque dur ma�tre du premier contr�leur IDE). Cr�ez une
partition Linux Native, mettez � jour la table de partition et quittez
fdisk. Si un message vous indique de red�marrer l'ordinateur afin
d'�tre s�r que la table de partition est mise � jour, faites-le.
Notez le nom de la nouvelle partition (par exemple hda5) car vous en
aurez besoin plus tard. Cette partition sera appel�e _p_a_r_t_i_t_i_o_n _L_F_S
dans la suite du document.
44..33.. CCrr��eerr uunn ssyysstt��mmee ddee ffiicchhiieerrss eexxtt22 ssuurr llaa nnoouuvveellllee ppaarrttiittiioonn
Une fois que la partition est cr��e, nous devons y installer un
syst�me de fichiers ext2. Pour ce faire, utilisez la commande mke2fs.
Indiquez le nom de la nouvelle partition comme unique option et le
syst�me de fichiers sera cr��. Ainsi si la partition porte le nom
hda5, utilisez la commande mke2fs /dev/hda5.
44..44.. MMoonntteerr llaa nnoouuvveellllee ppaarrttiittiioonn
Une fois que le syst�me de fichiers est cr��, il est pr�t � �tre
utilis�. Tout ce qu'il vous reste � faire pour le rendre accessible
est de le monter. En reprenant notre exemple pr�c�dent, si vous
montez la partition sous /mnt/hda5, vous pouvez vous positionner dans
ce r�pertoire et faire ce que vous voulez. Je supposerai par la suite
que vous avez mont� la partition LFS dans un sous-r�pertoire de /mnt.
Vous avez pu constater que, par convention, je monte mes partitions
dans des r�pertoires portant le nom de cette partition (hda5 mont�
sous /mnt/hda5). Libre � vous de faire comme bon vous semble, voire
d'utiliser le r�pertoire /mnt.
Voici en r�sum� la m�thode pour monter la partition LFS :
� Cr��z le r�pertoire /mnt s'il n'existe pas encore
� Cr��z le r�pertoire /mnt/xxx o� xxx est � remplacer par le nom de
la partition LFS.
� Montez la partition LFS en lan�ant : mount /dev/xxx /mnt/xxx o� xxx
est � remplacer par le nom de la partition LFS.
Ce r�pertoire (/mnt/xxx) correspond � la variable $LFS expliqu�e plus
haut. Je vous rappelle donc que si vous lisez "cp inittab $LFS/etc",
en r�alit� vous devez taper "cp inittab /mnt/xxx/etc" o� xxx est �
remplacer par le nom de la partition LFS.
44..55.. CCrr��eerr lleess rr��ppeerrttooiirree
Cr�ez l'arborescence de base, au standard FHS, du syst�me LFS. Si vous
souhaitez plus d'informations sur le standard FHS, consultez le site
http://www.pathname.com/fhs/. Tapez les commandes suivantes :
cd $LFS
mkdir bin boot dev etc home lib mnt proc root sbin tmp usr var
cd $LFS/usr
mkdir bin include lib sbin share src
ln -s share/man man
ln -s share/doc doc
ln -s . local
ln -s ../etc etc
ln -s ../var var
cd $LFS/usr/share
mkdir dict doc info locale man nls misc terminfo zoneinfo
cd $LFS/usr/share/man
mkdir man1 man2 man3 man4 man5 man6 man7 man8
cd $LFS/var
mkdir lock log run spool tmp
Maintenant que les r�pertoires sont cr��s, copiez les archives
t�l�charg�es au chapitre 3 dans un sous-r�pertoire de $LFS/usr/src
(vous devez cr�er ce sous-r�pertoire vous-m�me).
44..66.. CCooppiieerr llee rr��ppeerrttooiirree //ddeevv
Nous pourrions utiliser la commande mknod pour cr�er les fichiers du
r�pertoire $LFS/dev, mais cela prend du temps. C'est pourquoi je vous
conseille de simplement recopier le r�pertoire /dev vers la partition
$LFS. Pour ce faire, utilisez la commande suivante, tous les droits et
liens symboliques originaux seront conserv�s.
cp -av /dev $LFS
chown root.root $LFS/dev/*
55.. RReennddrree llee ssyysstt��mmee LLFFSS aammoorr��aabbllee
55..11.. IInnssttaalllleerr SSyyssvviinniitt
Normalement, lorsque le noyau a termin� de se charger et d'initialiser
divers composants syst�mes, il tente de charger un programme appel�
init qui terminera le processus de d�marrage. Le paquetage utilis� sur
la majorit� sinon tous les syst�mes Linux est Sysvinit et c'est
justement lui que nous utilisons pour notre syst�me LFS.
� D�sarchivez Sysvinit
� Positionnez-vous dans le r�pertoire src
� Editez le fichier Makefile
� Quelque part dans ce fichier, mais avant la r�gle "all", ajoutez
cette ligne : _R_O_O_T _= _$_L_F_S
� Pr�fixez toutes les occurrences /dev des quatre derni�res lignes
par _$_(_R_O_O_T_)
Apr�s avoir fait cela, les quatre derni�res lignes du fichier doivent
ressembler � :
@if [! -p $(ROOT)/dev/initctl ]; then \
echo "Creating $(ROOT)/dev/initctl"; \
rm -f $(ROOT)/dev/initctl; \
mknod -m 600 $(ROOT)/dev/initctl p; fi
� Installez le paquetage en ex�cutant :
make -e LDFLAGS=-static; make install
55..22.. CCoonnffiigguurreerr SSyyssvviinniitt
Pour que Sysvinit fonctionne, vous devez cr�er un fichier de
configuration appropri�. Cr�ez le fichier $LFS/etc/inittab contenant :
# Begin /etc/inittab
id:2:initdefault:
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
1:2345:respawn:/sbin/sulogin
# End /etc/inittab
55..33.. CCrr��eerr lleess ffiicchhiieerrss ppaasssswwdd eett ggrroouupp
Comme vous pouvez le voir dans le fichier inittab, lorsque nous
amor�ons le syst�me, init d�marre le programme sulogin qui vous
demandera le mot de passe root. Cela signifie que nous avons besoin de
cr�er un fichier de mots de passe sur le syst�me LFS.
� Cr�ez le fichier $LFS/etc/passwd contenant:
_r_o_o_t_:_s_3_9_4_u_l_1_B_k_v_m_q_2_:_0_:_0_:_r_o_o_t_:_/_r_o_o_t_:_/_b_i_n_/_b_a_s_h
� Cr�ez le fichier $LFS/etc/group contenant: _r_o_o_t_:_:_0_:
Le mot de passe encod� dans le fichier passwd est: _l_f_s_1_2_3
Lorsque le syst�me vous demandera le mot de passe root, c'est celui-ci
que vous devez entrer.
55..44.. IInnssttaalllleerr llee sshheellll BBaasshh
Apr�s que sulogin ait valid� le mot de passe root, il tentera de
lancer un interpr�teur de commandes (plus simplement appel� _s_h_e_l_l),
g�n�ralement Bash. Nous devons donc le compiler. Mais comme aucune
biblioth�que n'est encore disponible sur le syst�me, nous devons le
lier statiquement, ainsi que nous avons proc�d� pour Sysvinit.
� D�sarchivez Bash
� Installez Bash en lan�ant:
./configure --enable-static-link
make; make -e prefix=$LFS/usr install
mv $LFS/usr/bin/bash $LFS/bin
cd $LFS/bin; ln -s bash sh
55..55.. AAjjoouutteerr uunnee eennttrr��ee �� LLIILLOO
Afin de pouvoir d�marrer le syst�me LFS, nous devons mettre � jour le
fichier/etc/lilo.conf. Ajoutez-y les lignes suivantes :
image=<image du noyau courant>
label=<label>
root=$LFS
read-only
Remplacez <image du noyau courant> par le nom du fichier contenant
l'image du noyau utilis� par votre syst�me. Vous pouvez remplacer
<label> par ce que bon vous semble. Pour ma part, j'utilise comme
label "lfs". Ce label correspond � ce que vous devez taper au
d�marrage de la machine lorsque LILO vous demande le syst�me que vous
souhaitez d�marrer.
Maintenant lancez lilo afin de mettre � jour l'amorceur du syst�me.
55..66.. TTeesstteerr llee ssyysstt��mmee
Apr�s avoir effectu� les op�rations pr�c�dentes, vous pouvez v�rifier
s'il est possible de se connecter au syst�me LFS en red�marrant la
machine. N'oubliez pas � l'affichage de LILO de taper le label que
vous avez choisi plus haut. Si tout se d�roule correctement, sulogin
vous demandera le mot de passe root. Saisissez-le. Vous devriez alors
vous retrouver sous le shell. Remarquez que vous ne pourrez pas
arr�ter le syst�me par l'interm�diaire de la commande shutdown. Bien
que ce programme soit pr�sent, il vous renverra comme erreur "You
don't exist. Go away" si vous essayez de l'ex�cuter. Cela signifie que
le syst�me est incapable de localiser le fichier des mots de passe
(/etc/passwd). Sulogin, bien que statiquement li�, d�pend quand m�me
de la biblioth�que NSS (Name Server Switch) qui fait partie de la
biblioth�que C que nous installerons ult�rieurement. La biblioth�que
NSS est utilis�e dans ce cas pour indiquer � sulogin o� se trouve le
fichier de mots de passe.
Pour le moment, vous pouvez red�marrer le syst�me en utilisant reboot
-f . Cette commande outrepassera le red�marrage du syst�me normalement
op�r� par shutdown et red�marrera instantan�ment. Comme le syst�me de
fichiers est mont� en lecture seule, cette op�ration n'endommagera
rien. Par contre vous pourriez �tre inform� au prochain d�marrage que
le syst�me de fichiers n'a pas �t� correctement d�mont� et qu'il faut
lancer e2fsck pour v�rifier s'il n'y a pas de probl�me.
66.. IInnssttaalllleerr uunn nnooyyaauu
66..11.. RReemmaarrqquuee aauu ssuujjeett ddee ffttpp..kkeerrnneell..oorrgg
A la section 2, j'ai indiqu� que vous pouviez t�l�charger un noyau
depuis
ftp://ftp.kernel.org/ . Toutefois ce site est souvent charg� et
ses administrateurs vous encouragent � utiliser un miroir pr�s de chez
vous. Dans ce cas, l'adresse est du type
ftp://ftp.<code
pays>.kernel.org/ (par exemple ftp.fr.kernel.org).
66..22.. CCoonnffiigguurreerr llee nnooyyaauu
� Renommez le r�pertoire /usr/src/linux (m�me s'il s'agit d'un lien
symbolique) en utilisant mv /usr/src/linux /usr/src/linux-old
� Effacez les liens /usr/include/linux et /usr/include/asm gr�ce � la
commande rm -r /usr/include/linux /usr/include/asm
� D�sarchivez les sources du noyau dans le r�pertoire /usr/src/ (un
r�pertoire /usr/src/linux sera cr��)
� Cr�ez les liens symboliques /usr/include/linux et /usr/include/asm
en ex�cutant :
cd /usr/include
ln -s ../src/linux/include/linux linux
ln -s ../src/linux/include/asm-<cpu> asm
Regardez dans le r�pertoire /usr/src/linux/include quels sont les
sous-r�pertoires asm-* pr�sents. Choisissez celui qui correspond �
votre plateforme. Par exemple s'il s'agit d'un PC Intel, vous lancerez
la commande ln -s ../src/linux/include/asm-i386 asm
� Choisissez une m�thode pour configurer le noyau (consultez le
fichier README pour plus d�tails concernant la m�thode de
configuration) et assurez-vous de ne rien configurer en module pour
le moment car nous ne disposerons pas des applications n�cessaires
pour charger des modules avant un bout de temps.
� Apr�s en avoir termin� avec la configuration du noyau, lancez make
dep
� Compilez-le gr�ce � la commande make bzImage
� Copiez le fichier arch/<cpu>/boot/bzImage dans /boot (ou �
l'endroit utilis� par votre syst�me Linux pour enregistrer les
images noyau)
� Vous pouvez �ventuellement renommer le fichier /boot/bzImage en
quelque chose comme /boot/lfskernel
� Copiez l'arborescence compl�te des sources du noyau sur la
partition LFS gr�ce � la commande : cp -av /usr/src/linux
$LFS/usr/src
� Cr�ez les liens symboliques $LFS/usr/include/linux et
$LFS/usr/include/asm en tapant :
cd $LFS/usr/include
ln -s ../src/linux/include/linux linux
ln -s ../src/linux/include/asm asm
66..33.. MMeettttrree �� jjoouurr LLIILLOO
� Editez le fichier /etc/lilo.conf et rendez-vous � la section LFS
� Remplacez le nom de l'image du noyau par lfskernel (ou tout autre
nom que vous lui avez donn�)
� Lancez lilo pour mettre � jour l'amorceur.
66..44.. TTeesstteerr llee ssyysstt��mmee
Red�marrez votre syst�me sous LFS. V�rifiez que le nouveau noyau
n'effectue aucune op�ration anormale (comme un crash).
77.. IInnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee
Dans ce chapitre, nous installerons toutes les applications qui
constituent un syst�me Linux de base. Au terme de ce chapitre vous
disposerez d'un syst�me Linux pleinement op�rationnel. Les chapitres
suivants traitent de sujets facultatifs comme par exemple la
configuration du r�seau, des serveurs et clients Internet (telnet,
ftp, http, email) et du syst�me X Window. Vous �tes libre d'ignorer
autant de chapitres qu'il vous plaira. Ainsi si vous ne souhaitez pas
vous connecter � Internet, vous n'aurez que peut d'int�r�t � consulter
le chapitre d�di�.
Il y a un certain nombre de paquetages que vous devez imp�rativement
installer avant de pouvoir mettre en place les applications de base.
En effet un script typique aura besoin de programmes comme rm, grep,
sed, mv, cat, cp, diff. Vous devez �galement pouvoir d�compresser des
archives, compiler et �diter les liens des applications. Tous les
outils correspondants doivent �tre install�s avant toute chose. Ils
seront de plus li�s statiquement. En effet votre syst�me Linux utilise
peut-�tre une version de biblioth�que C diff�rente de celle qui sera
utilis�e par le syst�me LFS. Or les applications que vous allez
installer dans cette section seraient th�oriquement li�es avec la
biblioth�que C de votre syst�me normal. Ceci pourrait engendrer des
conflits de biblioth�que si vous ex�cutez ces applications sous le
syst�me LFS. C'est pourquoi nous devons les lier statiquement dans un
premier temps. Puis au cours de la mise en place du syst�me LFS nous
lierons � nouveau ces applications avec la biblioth�que C utilis�e par
le syst�me LFS.
77..11.. AA pprrooppooss ddeess ssyymmbboolleess ddee dd��bbooggaaggee
Par d�faut, chaque programme et biblioth�que est compil� avec les
symboles de d�bogage. Cela signifie que vous pouvez ex�cuter ce
programme ou cette biblioth�que par l'interm�diaire d'un d�bogueur et
que ce dernier produira une sortie de l'ex�cution plus compr�hensible.
Toutefois ces symboles de d�bogage augmentent la taille du fichier
produit de mani�re significative. Par convention, tous les logiciels
install�s dans ce document incluront ces symboles (puisque je ne sais
pas si la majorit� des lecteurs fait ou non du d�bogage). Libre � vous
de supprimer par la suite les symboles de d�bogage en utilisant le
programme strip de la mani�re suivante : strip --strip-debug
nomdufichier (le fichier doit �tre au format elf ou a.out). Vous
pouvez utiliser des jokers si vous souhaitez traiter plusieurs
fichiers d'un coup (exemple : strip --strip-debug $LFS/usr/bin/*).
Si vous vous demandez l'influence des symboles de d�bogage sur la
taille des fichiers, voici quelques statistiques :
� Binaire Bash statique avec symboles de d�bogage : 2.3MB
� Binaire Bash statique sans symbole de d�bogage : 645KB
� Binaire Bash dynamique avec symboles de d�bogage : 1.2MB
� Binaire Bash dynamique sans symbole de d�bogage : 478KB
� $LFS/usr/lib (fichiers glibc and gcc) avec symboles de d�bogage :
87MB
� $LFS/usr/lib (fichiers glibc and gcc) sans symbole de d�bogage :
16MB
Ces tailles sont donn�es � titre indicatif et d�pendent grandement du
compilateur et de la version de biblioth�que C utilis�s, mais au final
les r�sultats avec ou sans symboles de d�bogage seront comparables.
Pour ma part, au terme de ce chapitre et apr�s avoir supprim� les
symboles de d�bogage des fichiers ex�cutables et biblioth�ques, j'ai
r�cup�r� environ 102 Mo d'espace disque. Diff�rence remarquable. Mais
elle sera encore plus grande en r�alisant cette op�ration au terme du
document.
77..22.. PPrr��ppaarreerr llee ssyysstt��mmee LLFFSS ppoouurr iinnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee
77..22..11.. IInnssttaalllleerr BBiinnuuttiillss
� D�sarchivez binutils
� Installez le paquetage en tapant :
./configure
make -e LDFLAGS=-all-static
make -e prefix=$LFS/usr install
77..22..22.. IInnssttaalllleerr BBzziipp22
� D�sarchivez Bzip2
� Editez le fichier Makefile
� Trouvez les lignes commen�ant par : $(CC) $(CFLAGS) -o
� Remplacez-les par: $(CC) $(CFLAGS) $(LDFLAGS) -o
� Installez le paquetage en lan�ant:
make -e LDFLAGS=-static
make -e PREFIX=$LFS/usr install
cd $LFS/usr/bin
mv bunzip2 bzip2 $LFS/bin
77..22..33.. IInnssttaalllleerr DDiiffffuuttiillss
� D�sarchivez diffutils
� Installez le paquetage en lan�ant:
./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
Ce paquetage peut causer des erreurs relatives � l'�dition statique
des liens sur certaines plateformes. Si c'est votre cas, vous pouvez
t�l�charger une version corrig�e du paquetage � l'adresse :
http://www.linuxfromscratch.org/download/diffutils-2.7-fixed.tar.gz
77..22..44.. IInnssttaalllleerr FFiilleeuuttiillss
� D�sarchivez fileutils
� Installer le paquetage en lan�ant :
./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
cd $LFS/usr/bin
mv chgrp chmod chown cp dd df ln ls mkdir mknod mv rm rmdir sync $LFS/bin
77..22..55.. IInnssttaalllleerr GGCCCC ssuurr llee ssyysstt��mmee nnoorrmmaall ssii nn��cceessssaaiirree
Afin de compiler Glibc-2.1.3, le compilateur gcc-2.95.2 doit �tre
install� sur le syst�me Linux normal. Remarquez que n'importe quelle
version sup�rieure ou �gale � 2.8 fera l'affaire. N�anmoins de
nombreux syst�mes bas�s sur glibc-2.0 disposent de gcc-2.7.2.3. Celui-
ci n'est pas apte � compiler et ne doit pas �tre utilis� pour compiler
glibc-2.1. L'installation de la version 2.95.2 de gcc sur le syst�me
normal n'�crasera pas la version d�j� en place. Avant de proc�der �
cette installation, assurez-vous que vous en avez r�ellement besoin.
V�rifiez le num�ro de version de votre compilateur au moyen de la
commande gcc --version. S'il est sup�rieur ou �gal � 2.8, tout va
bien, vous n'avez pas besoin de faire la moindre mise � jour. Cela
dit, si vous rencontrez des probl�mes lors de la compilation de glibc,
n'h�sitez pas � installer gcc-2.95.2
� D�sarchivez GCC
� Installez le paquetage en lan�ant:
mkdir $LFS/usr/src/gcc-build; cd $LFS/usr/src/gcc-build
../gcc-2.95.2/configure --prefix=/usr/gcc2952 \
--with-local-prefix=/usr/gcc2952 --with-gxx-include-dir=/usr/gcc2952/include/g++ \
--enable-shared --enable-languages=c,c++
make bootstrap; make install
77..22..66.. IInnssttaalllleerr GGCCCC ssuurr llee ssyysstt��mmee LLFFSS
� D�sarchivez GCC
� Installez le paquetage en lan�ant:
mkdir $LFS/usr/src/gcc-build;cd $LFS/usr/src/gcc-build
../gcc-2.95.2/configure --enable-languages=c --disable-nls
make -e LDFLAGS=-static bootstrap
make -e prefix=$LFS/usr local_prefix=$LFS/usr install
77..22..66..11.. CCrr��aattiioonn ddeess lliieennss ssyymmbboolliiqquueess nn��cceessssaaiirreess
Il est n�cessaire de cr�er quelques liens symboliques afin que chaque
application puisse trouver le compilateur et le pr�processeur. Ainsi
certains programmes lancent le programme cc, d'autres gcc, certains
programmes supposent que cpp est dans /lib (c'est-�-dire /usr/lib sur
notre syst�me LFS) et d'autres, dans /usr/bin.
� Cr�ez les liens symboliques suivants gr�ce aux commandes:
cd $LFS/lib; ln -s ../usr/lib/gcc-lib/<host>/2.95.2/cpp cpp
cd $LFS/usr/lib; ln -s gcc-lib/<host>/2.95.2/cpp cpp
cd $LFS/usr/bin; ln -s gcc cc
Remplacez <host> par le r�pertoire o� r�side gcc-2.95.2 (i686-unknown-
linux dans mon cas). G�n�ralement, vous trouverez deux r�pertoires
diff�rents.
77..22..77.. IInnssttaalllleerr GGlliibbcc
Remarque concernant le paquetage glibc-crypt:
-*-*-*-*-*-
Glibc-crypt n'est pas inclus dans la distribution principale
de la biblioth�que GNU C du fait de restrictions gouvernementales, principalement
en France, Russie et Etats-Unis, concernant la diffusion et l'utilisation de
logiciels de cryptage. Consultez la note "Legal Problems" du manuel pour plus
d'informations.
En particulier, les Etats-Unis interdisent l'exportation de ce logiciel
sans licence, m�me par Internet. Ainsi ne le t�l�chargez pas sur le site FTP
principal de la FSF (ftp.gnu.org) si vous r�sidez � l'ext�rieur des Etats-Unis.
Ce logiciel a �t� compl�tement d�velopp� � l'ext�rieur des Etats-Unis.-*-*-*-*-*-
"Ce logiciel" fait r�f�rence au paquetage glibc-crypt disponible sur
ftp://ftp.gwdg.de/pub/linux/glibc. Cette loi n'affecte que les
personnes ne r�sidant pas aux Etats-Unis. Il n'est pas interdit
d'importer des logiciels bas�s sur DES, donc si vous r�sidez aux
Etats-Unis, vous �tes libre de l'importer depuis ce site allemand.
� D�sarchivez Glibc
� Copiez les archives glibc-crypt et glibc-linuxthreads dans le
r�pertoire cr�� au cours du d�sarchivage de Glibc
� D�compressez ces archives depuis ce point mais ne vous positionnez
pas dans les r�pertoires cr��s par cette nouvelle d�compression.
Contentez-vous de d�compresser ces archives.
� Cr�ez un nouveau fichier configparms contenant:
# Begin configparms
slibdir=/lib
sysconfdir=/etc
# End configparms
� Si votre syst�me Linux normal dispose d'une version de gcc apte �
compiler glibc, installez ce paquetage en lan�ant :
mkdir $LFS/usr/src/glibc-build;cd $LFS/usr/src/glibc-build
../glibc-2.1.3/configure --enable-add-ons
make; make install_root=$LFS install
� Si votre syst�me Linux normal ne dispose pas d'une version de gcc
apte � compiler glibc et que vous avez install� gcc-2.95.2 pour ce
faire, proc�dez comme suit:
mkdir $LFS/usr/src/glibc-build; cd $LFS/usr/src/glibc-build
CC=/usr/gcc2952/bin/gcc ../glibc-2.1.3/configure --enable-add-ons
make; make install_root=$LFS install
77..22..77..11.. CCooppiieerr lleess aanncciieennss ffiicchhiieerrss ddee llaa bbiibblliiootthh��qquuee NNSSSS
Si votre syst�me Linux normal est bas� sur glibc-2.0.x, vous devez
copier les fichiers de la biblioth�que NSS sur le syst�me LFS.
Quelques programmes li�s statiquement ont besoin de cette
biblioth�que, notamment ceux recherchant les noms, identifiants et
groupes des utilisateurs. Vous pouvez v�rifier quelle est la version
de biblioth�que C utilise gr�ce � la commande : ls -l libc.so.*
Votre syst�me est bas� sur glibc-2.0 si l'affichage produit ressemble
� : /lib/libc.so.6 -> libc-2.0.7.so
Votre syst�me est bas� sur glibc-2.1 si l'affichage produit ressemble
� : /lib/libc.so.6 -> libc-2.1.2.so
Si vous avez un fichier libc-2.0.x.so (o� x est le num�ro de micro
version comme par exemple 7), copiez les fichiers de la biblioth�que
NSS gr�ce � la commande : cp -av /lib/*nss* $LFS/lib
77..22..88.. IInnssttaalllleerr ggrreepp
� D�sarchivez grep
� Installez le paquetage en lan�ant:
./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
Ce paquetage peut causer des erreurs relatives � l'�dition statique
des liens sur certaines plateformes. Si c'est votre cas, vous pouvez
t�l�charger une version corrig�e du paquetage � l'adresse :
http://www.linuxfromscratch.org/download/grep-2.4-fixed.tar.gz
77..22..99.. IInnssttaalllleerr ggzziipp
� D�sarchivez gzip
� Installez le paquetage en lan�ant:
./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
cd $LFS/usr/bin
mv gunzip gzip $LFS/bin
Ce paquetage peut causer des erreurs de compilation sur certaines
plateformes. Si c'est votre cas, vous pouvez t�l�charger une version
corrig�e du paquetage � l'adresse :
http://www.linuxfromscratch.org/download/gzip-1.2.4-fixed.tar.gz
77..22..1100.. IInnssttaalllleerr MMaakkee
� D�sarchivez Make
� Installez le paquetage en lan�ant:
./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
77..22..1111.. IInnssttaalllleerr SSeedd
� D�sarchivez sed
� Installez le paquetage en lan�ant:
./configure
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
mv $LFS/usr/bin/sed $LFS/bin
Ce paquetage peut causer des erreurs relatives � l'�dition statique
des liens sur certaines plateformes. Si c'est votre cas, vous pouvez
t�l�charger une version corrig�e du paquetage � l'adresse :
http://www.linuxfromscratch.org/download/sed-3.02-fixed.tar.gz
77..22..1122.. IInnssttaalllleerr SShh--uuttiillss
� D�sarchivez sh-utils
� Installez le paquetage en lan�ant:
./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
cd $LFS/usr/bin
mv date echo false pwd stty su true uname hostname $LFS/bin
77..22..1133.. IInnssttaalllleerr TTaarr
� D�sarchivez tar
� Installez le paquetage en lan�ant:
./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
mv $LFS/usr/bin/tar $LFS/bin
77..22..1144.. IInnssttaalllleerr TTeexxttuuttiillss
� D�sarchivez textutils
� Installez le paquetage en lan�ant:
./configure --disable-nls
make -e LDFLAGS=-static
make -e prefix=$LFS/usr install
mv $LFS/usr/bin/cat $LFS/bin
77..22..1155.. IInnssttaalllleerr UUttiill--lliinnuuxx
� D�sarchivez util-linux
� Installez le paquetage en lan�ant:
./configure
cd lib;make
cd ../mount;make -e LDFLAGS=-static
cp mount umount $LFS/bin
cp swapon $LFS/sbin
77..33.. IInnssttaalllleerr lleess aapppplliiccaattiioonnss ddee bbaassee
L'installation de toutes les applications est franchement r�p�titive
et vous pensez peut-�tre qu'il serait plus simple de donner un mode
d'emploi g�n�rique et d'ajouter quelques explications concernant les
paquetages qui ne suivraient pas ce mode d'emploi. Bien que je sois
d'accord avec vous sur ce point, j'ai d�lib�r�ment choisi d'�crire le
mode d'emploi pour chaque paquetage. Cela permet d'�viter toute
confusion ou erreur.
Avant d'aller plus loin dans l'installation, vous devez d�marrer le
syst�me LFS. Pour ce faire, vous devez d�terminer quelle partition est
utilis�e comme swap par votre syst�me. Vous trouverez cette
information dans le fichier /etc/fstab. La ligne concern�e ressemble �
: _/_d_e_v_/_h_d_a_6 _n_o_n_e _s_w_a_p _s_w _0 _0 . Le quatri�me champ de la ligne doit
contenir 'sw'. Cela indique qu'il s'agit de la partition de swap.
Vous devez alors noter quelque part la d�signation de cette partition
(comme par exemple /dev/hda6 dans notre cas). Lorsque vous avez
d�termin� quelle partition est celle de swap, vous pouvez red�marrer
la machine.
77..33..11.. RReemmoonntteerr llaa ppaarrttiittiioonn eett aaccttiivveerr llee sswwaapp
Avant d'�tre en mesure d'installer des applications suppl�mentaires
depuis le syst�me LFS, vous devez remonter la partition en mode
lecture/�criture. Il est �galement n�cessaire d'activer la partition
de swap de mani�re � �viter tout risque de saturation de m�moire au
cours de compilations importantes (par exemple la compilation de gcc):
mount -o remount,rw / /
/sbin/swapon <swap device>
77..33..22.. IInnssttaalllleerr GGCCCC
� D�sarchivez GCC et installez-le en tapant:
mkdir $LFS/usr/src/gcc-build;cd $LFS/usr/src/gcc-build
../gcc-2.95.2/configure --with-gxx-include-dir=/usr/include/g++ \
--enable-shared --enable-languages=c,c++
make bootstrap; make install
77..33..33.. IInnssttaalllleerr BBiissoonn
� D�sarchivez bison et installez-le en tapant:
./configure --datadir=/usr/share/bison
make; make install
77..33..44.. IInnssttaalllleerr MMaawwkk
� D�sarchivez mawk et installez-le en tapant:
./configure
make; make install
cd /usr/bin; ln -s mawk awk
77..33..55.. IInnssttaalllleerr FFiinndduuttiillss
� D�sarchivez findutils et installez-le en tapant:
./configure
make; make install
Ce paquetage peut causer des erreurs de compilation sur certaines
plateformes. Si c'est votre cas, vous pouvez t�l�charger une version
corrig�e du paquetage � l'adresse :
http://www.linuxfromscratch.org/download/findutils-4.1-fixed.tar.gz
77..33..66.. IInnssttaalllleerr TTeerrmmccaapp
� D�sarchivez Termcap et installez-le en tapant:
./configure
make; make install
77..33..77.. IInnssttaalllleerr NNccuurrsseess
� D�sarchivez ncurses et installez-le en tapant:
./configure --with-shared
make; make install
77..33..88.. IInnssttaalllleerr LLeessss
� D�sarchivez Less et installez-le en tapant:
./configure
make; make install
mv /usr/bin/less /bin
77..33..99.. IInnssttaalllleerr PPeerrll
� D�sarchivez Perl et installez-le en tapant:
./configure.gnu
make; make install
Remarquez que nous sautons l'�tape 'make test', car pour le moment le
syst�me n'est pas en mesure de lancer le test de Perl. Nous faisons
donc confiance � la compilation.
77..33..1100.. IInnssttaalllleerr MM44
� D�sarchivez M4 et installez-le en tapant:
./configure
make; make install
77..33..1111.. IInnssttaalllleerr TTeexxiinnffoo
� D�sarchivez Texinfo et installez-le en tapant:
./configure
make; make install
77..33..1122.. IInnssttaalllleerr AAuuttooccoonnff
� D�sarchivez Autoconf et installez-le en tapant:
./configure
make; make install
77..33..1133.. IInnssttaalllleerr AAuuttoommaakkee
� D�sarchivez Automake et installez-le en tapant:
./configure
make install
77..33..1144.. IInnssttaalllleerr BBaasshh
� D�sarchivez Bash et installez-le en tapant:
./configure
make; make install
mv /usr/bin/bash /bin
77..33..1155.. IInnssttaalllleerr FFlleexx
� D�sarchivez Flex et installez-le en tapant:
./configure
make; make install
77..33..1166.. IInnssttaalllleerr BBiinnuuttiillss
� D�sarchivez Binutils et installez-le en tapant:
./configure
make; make install
77..33..1177.. IInnssttaalllleerr BBzziipp22
� D�sarchivez Bzip2 et installez-le en tapant:
make; make install
cd /usr/bin; mv bunzip2 bzip2 /bin
77..33..1188.. IInnssttaalllleerr DDiiffffuuttiillss
� D�sarchivez Diffutils et installez-le en tapant:
./configure
make; make install
77..33..1199.. IInnssttaalllleerr EE22ffsspprrooggss
� D�sarchivez E2fsprogs et installez-le en tapant:
./configure
make; make install
mv /usr/sbin/mklost+found /sbin
77..33..2200.. IInnssttaalllleerr FFiillee
� D�sarchivez File et installez-le en tapant:
./configure
make; make install
77..33..2211.. IInnssttaalllleerr FFiilleeuuttiillss
� D�sarchivez Fileutils et installez-le en tapant:
./configure
make; make install
cd /usr/bin
mv chgrp chmod chown cp dd df ln ls mkdir mknod mv rm rmdir sync /bin
77..33..2222.. IInnssttaalllleerr GGrreepp
� D�sarchivez Grep et installez-le en tapant:
./configure
make; make install
77..33..2233.. IInnssttaalllleerr GGrrooffff
� D�sarchivez Groff et installez-le en tapant:
./configure
make; make install
77..33..2244.. IInnssttaalllleerr GGzziipp
� D�sarchivez Gzip et installez-le en tapant:
./configure
make; make install
cd /usr/bin; mv z* gunzip gzip /bin
77..33..2255.. IInnssttaalllleerr LLdd..ssoo
� D�sarchivez Ld.so et installez-le en tapant:
cd util; make ldd ldconfig
cp ldd /bin; cp ldconfig /sbin
rm /usr/bin/ldd
77..33..2266.. IInnssttaalllleerr LLiibbttooooll
� D�sarchivez Libtool et installez-le en tapant:
./configure
make; make install
77..33..2277.. IInnssttaalllleerr LLiinnuuxx8866
� D�sarchivez Linux86 et installez-le en tapant:
cd as
make; make install
cd ../ld
make ld86; make install
77..33..2288.. IInnssttaalllleerr LLiilloo
� D�sarchivez Lilo et installez-le en tapant:
make; make install
77..33..2299.. IInnssttaalllleerr MMaakkee
� D�sarchivez Make et installez-le en tapant:
./configure
make; make install
77..33..3300.. IInnssttaalllleerr SShh--UUttiillss
� D�sarchivez Sh-utils et installez-le en tapant:
./configure
make; make install
cd /usr/bin
mv date echo false pwd stty su true uname hostname /bin
77..33..3311.. IInnssttaalllleerr SShhaaddooww PPaasssswwoorrdd SSuuiittee
� D�sarchivez Shadow et installez-le en tapant:
./configure
make; make install
cd etc
cp limits login.access login.defs.linux shells suauth /etc
mv /etc/login.defs.linux /etc/login.defs
cd /usr/sbin
mv chpasswd dpasswd groupadd groupdel groupmod logoutd mkpasswd \
newusers useradd userdel usermod grpck pwck vipw grpconv grpunconv \
pwconv pwunconv /sbin
77..33..3322.. IInnssttaalllleerr MMaann
� D�sarchivez Man et installez-le en tapant:
./configure -default
make all; make install
77..33..3333.. IInnssttaalllleerr MMoodduuttiillss
� D�sarchivez Modutils et installez-le en tapant:
./configure
make; make install
77..33..3344.. IInnssttaalllleerr PPrroocciinnffoo
� D�sarchivez Procinfo et installez-le en tapant:
make; make install
77..33..3355.. IInnssttaalllleerr PPrrooccppss
� D�sarchivez Procps et installez-le en tapant:
gcc -O3 -Wall -Wno-unused -c watch.c
make; make -e XSCPT="" install
mv /usr/bin/kill /bin
77..33..3366.. IInnssttaalllleerr PPssmmiisscc
� D�sarchivez Psmisc et installez-le en tapant:
make; make install
77..33..3377.. IInnssttaalllleerr SSeedd
� D�sarchivez Sed et installez-le en tapant:
./configure
make; make install
mv /usr/bin/sed /bin
77..33..3388.. IInnssttaalllleerr llee dd��mmoonn ssttaarrtt--ssttoopp
� D�sarchivez start-stop-daemon et installez-le en tapant:
make start-stop-daemon
cp start-stop-daemon /sbin
cp start-stop-daemon.8 /usr/share/man/man8
77..33..3399.. IInnssttaalllleerr SSyysskkllooggdd
� D�sarchivez Sysklogd et installez-le en tapant:
make; make install
77..33..4400.. IInnssttaalllleerr SSyyssvviinniitt
� D�sarchivez Sysvinit et installez-le en tapant:
cd src
make; make install
77..33..4411.. IInnssttaallll TTaarr
� D�sarchivez Tar et installez-le en tapant:
./configure
make; make install
mv /usr/bin/tar /bin
77..33..4422.. IInnssttaalllleerr TTeexxttuuttiillss
� D�sarchivez Textutils et installez-le en tapant:
./configure
make; make install
mv /usr/bin/cat /bin
77..33..4433.. IInnssttaalllleerr VViimm
� D�compressez les archives Vim-rt et Vim-src et installez-les en
tapant:
./configure
make; make install
77..33..4444.. IInnssttaalllleerr UUttiill--lliinnuuxx
� D�sarchivez le paquetage Util-linux
� Editez le fichier MCONFIG, cherchez et modifiez les variables
suivantes comme indiqu� ci-dessous:
HAVE_PASSWD=yes
HAVE_SLN=yes
HAVE_TSORT=yes
� Installez le paquetage en lan�ant :
groupadd -g 5 tty
./configure
make; make install
77..44.. SSuupppprreessssiioonn ddeess aanncciieennss ffiicchhiieerrss ddee llaa bbiibblliiootthh��qquuee NNSSSS
Si vous avez copi� les fichiers de la biblioth�que NSS de votre
syst�me Linux normal vers le syst�me LFS (car votre syst�me normal
utilise glibc-2.0), il est temps de les supprimer en tapant:
rm /lib/libnss*.so.1 /lib/libnss*2.0*
77..55.. CCoonnffiigguurreerr lleess aapppplliiccaattiioonnss
Maintenant que toutes les applications sont install�es, vous devez en
configurer certaines afin qu'elles fonctionnent correctement.
77..55..11.. CCoonnffiigguurreerr GGlliibb
Vous devez cr�er le fichier /etc/nsswitch.conf. Bien que glibc
fournisse des valeurs par d�faut si ce fichier est absent ou corrompu,
celles-ci sont incompatibles avec le fonctionnement r�seau du syst�me
que nous aborderons plus tard. Par ailleurs, vous devez �galement
r�gler le fuseau horaire. Voici donc comment proc�der :
� Cr�ez un nouveau fichier /etc/nsswitch.config contenant:
# Begin /etc/nsswitch.conf
passwd: files
group: files
shadow: files
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: db files
# End /etc/nsswitch.conf
� Lancez le script tzselect et r�pondez aux questions concernant
votre fuseau horaire.
� Lorsque vous avez termin�, le programme vous fournit l'emplacement
d'un fichier dont vous aurez besoin ci-dessous.
� Cr�ez un lien symbolique pour l'heure locale en lan�ant : ln -s
/usr/share/zoneinfo/<emplacement donn� par tzselect> /etc/localtime
La sortie de tzselect ressemble � "EST5EDT" ou "Canada/Eastern". Le
lien symbolique que vous devez cr�er avec cette information sera dans
ce cas : ln -s /usr/share/zoneinfo/EST5EDT /etc/localtime ou ln -s
/usr/share/zoneinfo/Canada/Eastern /etc/localtime
77..55..22.. CCoonnffiigguurreerr LLIILLOO
Il n'est pas n�cessaire de cr�er le fichier de configuration de lilo
de toute pi�ce. Utilisez plut�t le fichier de votre syst�me Linux
normal. Ce fichier est diff�rent pour chaque machine et je ne peux
donc pas vous donner de mod�le. Comme il n'y a aucune raison de
modifier la configuration LILO actuelle de votre syst�me, contentez-
vous de copier le fichier original sans le modifier.
� Cr�ez le r�pertoire /mnt/original
� Montez votre syst�me Linux normal sur ce point de montage en
lan�ant mount /dev/xxx /mnt/original (remplacez /dev/xxx par le nom
de la partition Linux normale).
� Copiez le fichier de configuration de lilo ainsi que les images de
noyau qu'il utilise :
cp /mnt/original/etc/lilo.conf /etc
cp /mnt/original/boot/* /boot
Si votre syst�me Linux normal ne sauvegarde pas les images des noyaux
dans le r�pertoire /mnt/original/boot, cherchez alors dans le fichier
lilo.conf l'emplacement ad�quat et copiez les images dans le
r�pertoire o� lilo s'attend � les trouver. Ainsi si lilo indique que
le noyau se trouve dans /boot/kernel, vous devez copier le noyau
contenu dans /mnt/original/boot/kernel vers /boot/kernel. Vous pouvez
�galement copier le noyau dans /boot et modifier le fichier lilo.conf
pour tenir compte de ce changement. Ces deux m�thodes sont valables, �
vous de choisir.
77..55..33.. CCoonnffiigguurreerr SSyysskkllooggdd
� Cr�ez le r�pertoire /var/log gr�ce � : mkdir /var/log
� Cr�ez le fichier /etc/syslog.conf contenant :
# Begin /etc/syslog.conf
auth,authpriv.* -/var/log/auth.log
*.*;auth,authpriv.none -/var/log/sys.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *
# End /etc/syslog.conf
77..55..44.. CCoonnffiigguurreerr SShhaaddooww PPaasssswwoorrdd SSuuiittee
Ce paquetage contient notamment les utilitaires n�cessaires pour
modifier les mots de passe des utilisateurs et ajouter ou supprimer de
nouveaux groupes et utilisateurs. Je n'expliquerai pas ce que
'_p_a_s_s_w_o_r_d _s_h_a_d_o_w_i_n_g' signifie. Vous trouverez toutes les informations
utiles dans les fichiers de documentation et HOWTO. Il y a cependant
une chose que vous devez garder � l'esprit : si vous d�cidez
d'utiliser le support '_s_h_a_d_o_w', tous les programmes qui ont besoin de
v�rifier les mots de passe (xdm, les d�mons ftp, pop3d, etc) doivent
�tre compatible avec ce support.
M�me si vous pensez que vous n'avez pas besoin d'utiliser les
'_s_h_a_d_o_w_e_d _p_a_s_s_w_o_r_d_s' (NDT: litt�ralement mots de passe masqu�s) (apr�s
avoir lu la documentation � ce sujet), vous devez n�anmoins conserver
l'archive correspondante car les outils qu'elle contient fonctionnent
�galement sans '_s_h_a_d_o_w _p_a_s_s_w_o_r_d'. Notez que vous pouvez choisir � tout
moment d'activer ou de d�sactiver les mots de passe '_s_h_a_d_o_w'.
Consultez la section 5 du fichier Shadow-Password-HOWTO. Vous y
apprendrez comment tester si le syst�me '_s_h_a_d_o_w' fonctionne et si ce
n'est pas le cas, comment le d�sactiver. S'il ne fonctionne pas et que
vous n'avez effectu� aucune modification, vous vous retrouverez avec
un syst�me totalement inutilisable lorsque vous vous voudrez vous
connecter. Vous pouvez facilement rem�dier � ce probl�me en passant
comme param�tre init=/sbin/sulogin au noyau. Il sera alors n�cessaire
de d�compresser l'archive util-linux, d'aller dans le r�pertoire
login-utils, de compiler le programme login et de le copier � la place
de /bin/login. La situation n'est jamais vraiment d�sesp�r�e, du
moins pas sous Linux. Cela dit, vous pouvez vous �pargner bien des
d�sagr�ments en vous documentant et en effectuant les tests
n�cessaires. ;-)
77..55..55.. CCoonnffiigguurreerr SSyyssvviinniitt
Apr�s avoir modifi� comme suit le fichier /etc/inittab, vous aurez la
possibilit� de vous connecter au syst�me par l'interm�diaire de agetty
ou login. Sulogin ne sera plus utilis� pour les connexions normales.
� Editez le fichier /etc/inittab et modifiez-le comme suit:
# Begin /etc/inittab
id:2:initdefault:
si::sysinit:/etc/init.d/rcS
su:S:wait:/sbin/sulogin
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
ft:6:respawn:/sbin/sulogin
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
1:2345:respawn:/sbin/agetty /dev/tty1 9600
2:2345:respawn:/sbin/agetty /dev/tty2 9600
3:2345:respawn:/sbin/agetty /dev/tty3 9600
4:2345:respawn:/sbin/agetty /dev/tty4 9600
5:2345:respawn:/sbin/agetty /dev/tty5 9600
6:2345:respawn:/sbin/agetty /dev/tty6 9600
# End /etc/inittab
77..55..66.. CCrr��eerr llee ffiicchhiieerr //vvaarr//rruunn//uuttmmpp
Les programmes comme login, shutdown ont besoin d'�crire dans le
fichier /var/run/utmp. Celui-ci contient des informations concernant
les personnes actuellement connect�es au syst�me et la date du dernier
arr�t du syst�me.
� Cr�ez le fichier /var/run/utmp en utilisant : touch /var/run/utmp
� Modifiez les permissions en lan�ant : chmod 644 /var/run/utmp
88.. CCrr��eezz lleess ssccrriippttss ddee dd��mmaarrrraaggee dduu ssyysstt��mmee
Ces scripts sont lanc�s au d�marrage du syst�me et sont responsables
de diverses t�ches comme, par exemple, monter le syst�me de fichiers
en lecture/�criture, activer le _s_w_a_p, r�gler quelques param�tres
syst�mes et lancer divers d�mons dont le syst�me a besoin.
88..11.. PPrr��ppaarreerr lleess rr��ppeerrttooiirreess eett lleess ffiicchhiieerrss pprriinncciippaauuxx
Dans cette section vous avez besoin du paquetage Sysvinit.
� Cr�ez les r�pertoires n�cessaires en tapant:
cd /etc
mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d rcS.d
� Positionnez-vous dans le r�pertoire contenant l'archive Sysvinit
d�compress�e
� Copiez le fichier Debian/etc/init.d/rc vers /etc/init.d
� Allez dans le r�pertoire /etc/init.d
� Cr�ez un nouveau fichier rcS contenant :
#!/bin/sh
# Begin /etc/init.d/rcS
runlevel=S
prevlevel=N
umask 022
export runlevel prevlevel
trap ":" INT QUIT TSTP
for i in /etc/rcS.d/S??*
do
[ ! -f "$i" ] && continue;
$i start
done
# End /etc/init.d/rcS
88..22.. CCrr��eerr llee ssccrriipptt ddee rreedd��mmaarrrraaggee rreebboooott
� Cr�ez un nouveau fichier reboot contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/reboot
echo -n "System reboot in progress..."
/sbin/reboot -d -f -i
# End /etc/init.d/reboot
88..33.. CCrr��eerr llee ssccrriipptt dd''aarrrr��tt hhaalltt
� Cr�ez un nouveau fichier halt contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/halt
/sbin/halt -d -f -i -p
# End /etc/init.d/halt
88..44.. CCrr��eerr llee ssccrriipptt mmoouunnttffss
� Cr�ez un nouveau fichier mountfs contenant:
#!/bin/sh
# Begin /etc/init.d/mountfs
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
echo -n "Remounting root file system in read-write mode..."
/bin/mount -n -o remount,rw /
check_status
> /etc/mtab
/bin/mount -f -o remount,rw /
echo -n "Mounting proc file system..."
/bin/mount proc
check_status
# End /etc/init.d/mountfs
88..55.. CCrr��eerr llee ssccrriipptt uummoouunnttffss
� Cr�ez un nouveau fichier umountfs contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/umountfs
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
echo "Deactivating swap..."
/bin/swapoff -av
check_status
echo -n "Unmounting file systems..."
/bin/umount -a -r
check_status
# End /etc/init.d/umountfs
88..66.. CCrr��eerr llee ssccrriipptt sseennddssiiggnnaallss
� Cr�ez un nouveau fichier sendsignals contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/sendsignals
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
echo -n "Sending all processes the TERM signal..."
/sbin/killall5 -15
check_status
echo -n "Sending all processes the KILL signal..."
/sbin/killall5 -9
check_status
88..77.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee cchheecckkrroooott
� Cr�ez un fichier /etc/init.d/checkroot contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/checkroot
echo "Activating swap..."
/sbin/swapon -av
if [ -f /fastboot ]
then
echo "Fast boot, no file system check"
else
/bin/mount -n -o remount,ro /
if [ $? = 0 ]
then
if [ -f /forcecheck ]
then
force="-f"
else
force=""
fi
echo "Checking root file system..."
/sbin/fsck $force -a /
if [ $? -gt 1 ]
then
echo
echo "fsck failed. Please repair your file system manually by"
echo "running fsck without the -a option"
echo "Please note that the file system is currently mounted in"
echo "read-only mode."
echo
echo "I will start sulogin now. CTRL+D will reboot your system."
/sbin/sulogin
/reboot -f
fi
else
echo "Cannot check root file system because it is not mounted in"
echo "read-only mode."
fi
fi
# End /etc/init.d/checkroot
88..88.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee ssyysskkllooggdd
� Cr�ez un nouveau fichier /etc/init.d/sysklogd contenant ce qui
suit:
#!/bin/sh
# Begin /etc/init.d/sysklogd
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
case "$1" in
start)
echo -n "Starting system log daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/syslogd -- -m 0
check_status
echo -n "Starting kernel log daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/klogd
check_status
;;
stop)
echo -n "Stopping kernel log daemon..."
start-stop-daemon -K -q -o -p /var/run/klogd.pid
check_status
echo -n "Stopping system log daemon..."
start-stop-daemon -K -q -o -p /var/run/syslogd.pid
check_status
;;
reload)
echo -n "Reloading system load daemon configuration file..."
start-stop-daemon -K -q -o -s 1 -p /var/run/syslogd.pid
check_status
;;
restart)
echo -n "Stopping kernel log daemon..."
start-stop-daemon -K -q -o -p /var/run/klogd.pid
check_status
echo -n "Stopping system log daemon..."
start-stop-daemon -K -q -o -p /var/run/syslogd.pid
check_status
sleep 1
echo -n "Starting system log daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/syslogd -- -m 0
check_status
echo -n "Starting kernel log daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/klogd
check_status
;;
*)
echo "Usage: $0 {start|stop|reload|restart}"
exit 1
;;
esac
# End /etc/init.d/sysklogd
88..99.. CCrr��eerr lleess lliieennss ssyymmbboolliiqquueess eett ffiixxeerr lleess ppeerrmmiissssiioonnss
� Param�trez les permissions et liens symboliques comme suit :
chmod 755 rcS reboot halt mountfs umountfs sendsignals checkroot sysklogd
cd ../rc0.d
ln -s ../init.d/sysklogd K90sysklogd
ln -s ../init.d/sendsignals S80sendsignals
ln -s ../init.d/umountfs S90umountfs
ln -s ../init.d/halt S99halt
cd ../rc6.d
ln -s ../init.d/sysklogd K90sysklogd
ln -s ../init.d/sendsignals S80sendsignals
ln -s ../init.d/umountfs S90umountfs
ln -s ../init.d/reboot S99reboot
cd ../rcS.d
ln -s ../init.d/checkroot S05checkroot
ln -s ../init.d/mountfs S10mountfs
cd /etc/rc2.d
ln -s ../init.d/sysklogd S03sysklogd
88..1100.. CCrr��eerr llee ffiicchhiieerr //eettcc//ffssttaabb
� Cr�ez un fichier /etc/fstab contenant ce qui suit :
/dev/<LFS-partition designation> / ext2 defaults 0 1
/dev/<swap-partition designation> none swap sw 0 0
proc /proc proc defaults 0 0
99.. CCoonnffiigguurreerr llaa bbaassee dduu rr��sseeaauu
99..11.. IInnssttaalllleerr NNeettkkiitt--bbaassee
� D�sarchivez Netkit-base et installez-le en tapant:
./configure
make; make install
cd etc.sample; cp services protocols /etc
mv /usr/bin/ping /bin
99..22.. IInnssttaalllleerr NNeett--ttoooollss
� D�sarchivez Net-tools et installez-le en tapant:
make; make install
mv /usr/bin/netstat /bin
cd /usr/sbin; mv ifconfig route /sbin
99..22..11.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//llooccaallnneett
� Cr�ez un nouveau fichier /etc/init.d/localnet contenant ce qui
suit:
#!/bin/sh
# Begin /etc/init.d/localnet
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
echo -n "Setting up loopback device..."
/sbin/ifconfig lo 127.0.0.1
check_status
echo -n "Setting up hostname..."
/bin/hostname --file /etc/hostname
check_status
# End /etc/init.d/localnet
99..22..22.. PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lleess lliieennss ssyymmbboolliiqquueess
� Fixez les permissions ad�quates en lan�ant : chmod 755
/etc/init.d/localnet
� Cr�ez les liens symboliques appropri�s en lan�ant : cd /etc/rcS.d;
ln -s ../init.d/localnet S03localnet
99..22..33.. CCrr��eerr llee ffiicchhiieerr //eettcc//hhoossttnnaammee
Cr�ez un nouveau fichier /etc/hostname contenant le nom d'h�te de la
machine. Il ne s'agit pas du FQDN (nom de domaine pleinement
qualifi�). Il ne s'agit que du nom que vous souhaitez donner � votre
machine sur un r�seau (yoda - gandalf - neo - etc).
99..22..44.. CCrr��eezz llee ffiicchhiieerr //eettcc//hhoossttss
Si vous souhaitez configurer une carte r�seau, vous devez choisir une
adresse IP, un nom de domaine pleinement qualifi� et les alias que
vous mettrez dans le fichier /etc/hosts. Petit exemple :
<monip> myhost.mydomain.org aliases
Assurez-vous que l'adresse IP appartient � un r�seau priv�. Les plages
d'adresses valides � utiliser sont:
Class Networks
A 10.0.0.0
B 172.16.0.0 through 172.31.0.0
C 192.168.0.0 through 192.168.255.0
192.168.1.1 est une adresse valide. me.linuxfromscratch.org est un nom
de domaine pleinement qualifi� valide.
Si vous ne souhaitez pas utiliser de carte r�seau, vous aurez
simplement besoin d'un FQDN. Des programmes comme Sendmail en ont
besoin pour travailler correctement. D'ailleurs Sendmail ne d�marrera
m�me pas s'il ne dispose pas d'un FQDN.
Voici le fichier /etc/hosts dont vous avez besoin si vous ne
configurez pas de carte r�seau:
# Begin /etc/hosts (no network card version)
127.0.0.1 me.lfs.org <contents of /etc/hostname> localhost
# End /etc/hosts (no network card version)
Voici le fichier /etc/hosts dont vous avez besoin si vous configurez
une carte r�seau:
# Begin /etc/hosts (version sans carte r�seau)
127.0.0.1 localhost
192.168.1.1 me.lfs.org <contenu de /etc/hostname>
# End /etc/hosts (version sans carte r�seau)
Evidemment, vous n'�tes pas oblig� de choisir 192.168.1.1 et
me.lfs.org. Choisissez ce que bon vous semblera.
99..22..55.. CCrr��eerr llee ffiicchhiieerr //eettcc//iinniitt..dd//eetthhnneett
Cette sous-section est utile uniquement si vous configurez une carte
r�seau. Si ce n'est pas le cas, continuez votre lecture au-del�.
Cr�ez un nouveau fichier /etc/init.d/ethnet contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/ethnet
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
/sbin/ifconfig eth0 <addresse_ip>
check_status
# End /etc/init.d/ethnet
99..22..66.. PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess ppoouurr
//eettcc//iinniitt..dd//eetthhnneett
� Fixez correctement les permissions en lan�ant chmod 755 ethnet
� Cr�ez les liens symboliques appropri�s en lan�ant cd ../rc2.d; ln
-s ../init.d/ethnet S10ethnet
99..22..77.. TTeesstteerr llaa ccoonnffiigguurraattiioonn dduu rr��sseeaauu
� D�marrez le script localnet en lan�ant /etc/init.d/localnet
� D�marrez le script ethnet, si vous en avez cr�� un, en lan�ant
/etc/init.d/ethnet
� Testez si /etc/hosts est correctement configur� en lan�ant:
ping <votre FQDN>
ping <votre nom d'h�te>
ping localhost
ping 127.0.0.1
ping 192.168.1.1 (uniquement si vous avez configur� votre carte r�seau)
Les cinq commandes ping qui pr�c�dent doivent fonctionner sans
probl�me. Si ce n'est pas le cas, la base du r�seau n'est pas
correctement configur�e.
99..33.. TTeesstteerr llee ssyysstt��mmee
Maintenant que tous les logiciels sont install�s, que les scripts de
d�marrage existent et que le r�seau local est op�rationnel, il est
temps de red�marrer l'ordinateur afin de tester si ces nouveaux
scripts fonctionnent correctement. Dans un premier temps, lorsque
vous cr�ez ces scripts, il est pr�f�rable de les ex�cuter manuellement
depuis le r�pertoire /etc/init.d afin de corriger les erreurs les plus
�videntes (erreurs de saisie notamment). Lorsque ces scripts seront
op�rationnels, il faudra s'assurer qu'ils se comportent �galement
correctement au d�marrage et � l'arr�t du syst�me. Il n'existe qu'une
seule fa�on de v�rifier cela. Red�marrez votre syst�me LFS gr�ce � la
commande shutdown -r now. Au terme de ce red�marrage, vous arriverez �
une invite normale, comparable � ce que vous avez sous votre syst�me
Linux normal (sauf si vous utilisez un gestionnaire d'affichage comme
XDM, KDM etc).
A ce niveau, votre syst�me LFS basique est op�rationnel. Tout ce qui
suit est optionnel, vous pouvez donc ignorer les chapitres que vous
souhaitez. Mais gardez � l'esprit que si vous passez certaines
sections comme l'installation de biblioth�ques, certains programmes ne
fonctionneront pas. Ainsi Lynx a besoin de la biblioth�que zlib. De
plus zlib n'est pas uniquement utilis�e par Lynx. A vous donc de
v�rifier ces probl�mes de d�pendance.
1100.. IInnssttaalllleerr lleess dd��mmoonnss rr��sseeaauu
1100..11.. CCoonnffiigguurreerr SSMMTTPP
1100..11..11.. CCrr��eerr lleess ggrroouuppeess eett uuttiilliissaatteeuurrss
Cr�ez les groupes dont Sendmail a besoin en tapant:
groupadd -g 1 bin
groupadd -g 2 kmem
groupadd -g 3 mail
useradd -u 1 -g bin -d /bin -s /bin/sh bin
1100..11..22.. CCrr��eerr lleess rr��ppeerrttooiirreess
Le courrier �lectronique sortant est stock� dans le r�pertoire
/var/spool/mqueue . Le courrier entrant est transmis � Procmail par
Sendmail, puis stock� dans le r�pertoire /var/mail. Cr�ez ces
r�pertoires et fixez les permissions :
mkdir /var/spool/mqueue
mkdir /var/mail
cd /var/spool; ln -s ../mail mail
chmod 700 /var/spool/mqueue
chmod 775 /var/mail
chgrp mail /var/mail
chmod 1777 /tmp
1100..11..33.. IInnssttaalllleerr SSeennddmmaaiill
� D�sarchivez Sendmail et installez-le en tapant:
cd src
./Build; ./Build install
1100..11..44.. CCoonnffiigguurriinngg SSeennddmmaaiill
Configurer Sendmail est plus facile � dire qu'� faire. Il y a un tas
de choses � prendre en compte lorsque l'on configure cette application
et je ne peux pas toutes les �voquer. C'est pourquoi pour le moment
vous allez cr�er une configuration basique et standard. Si vous
souhaitez peaufiner cette configuration, libre � vous, mais ce n'est
pas le bon document pour apprendre comment faire. Vous pouvez
�ventuellement utiliser le fichier /etc/sendmail.cf (ou
/etc/mail/sendmail.cf) existant.
� Positionnez-vous dans le r�pertoire cf des sources
� Cr�ez un nouveau fichier cf/lfs.mc contenant ce qui suit:
OSTYPE(LFS)
FEATURE(nouucp)
define(`LOCAL_MAILER_PATH', /usr/bin/procmail)
MAILER(local)
MAILER(smtp)
� Cr�ez un fichier ostype/LFS.m4 vide en lan�ant touch ostype/LFS.m4
� Compilez le fichier lfs.mc en lan�ant m4 m4/cf.m4 cf/lfs.mc >
cf/lfs.cf
� Copiez cf/lfs.cf vers /etc/sendmail.cf
� Cr�ez un fichier /etc/aliases vide en lan�ant touch /etc/aliases
� Initialisez cette base de donn�es vide en tapant : sendmail -v -bi
1100..11..55.. IInnssttaalllleerr PPrrooccmmaaiill
� D�sarchivez Procmail et installez-le en tapant:
make; make install; make install-suid
1100..11..66.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//sseennddmmaaiill
� Cr�ez un nouveau fichier /etc/init.d/sendmail contenant ce qui
suit:
#!/bin/sh
# Begin /etc/init.d/sendmail
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
case "$1" in
start)
echo -n "Starting Sendmail..."
start-stop-daemon -S -q -o -x /usr/sbin/sendmail -- -bd
check_status
;;
stop)
echo -n "Stopping Sendmail..."
start-stop-daemon -K -q -o -p /var/run/sendmail.pid
check_status
;;
reload)
echo -n "Reloading Sendmail configuration file..."
start-stop-daemon -K -q -s 1 -p /var/run/sendmail.pid
check_status
;;
restart)
echo -n "Stopping Sendmail..."
start-stop-daemon -K -q -o -p /var/run/sendmail.pid
check_status
sleep 1
echo -n "Starting Sendmail..."
start-stop-daemon -S -q -o -x /usr/sbin/sendmail -- -bd
check_status
;;
*)
echo "Usage: $0 {start|stop|reload|restart}"
exit 1
;;
esac
# End /etc/init.d/sendmail
1100..11..77.. PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess
� Fixez les permissions appropri�es en lan�ant chmod 755
/etc/init.d/sendmail
� Cr�ez les liens symboliques ad�quats en lan�ant :
cd /etc/init.d/rc2.d; ln -s ../init.d/sendmail S20sendmail
cd ../rc0.d; ln -s ../init.d/sendmail K20sendmail
cd ../rc6.d; ln -s ../init.d/sendmail K20sendmail
1100..22.. CCoonnffiigguurreerr FFTTPP
1100..22..11.. CCrr��eerr lleess ggrroouuppeess eett uuttiilliissaatteeuurrss
� Cr�ez les groupes n�cessaires en lan�ant :
groupadd -g 65534 nogroup
groupadd -g 4 ftp
� Cr�ez les utilisateurs n�cessaires en lan�ant :
useradd -u 65534 -g nogroup -d /home nobody
useradd -u 4 -g ftp -s /bin/sh -m ftp
1100..22..22.. IInnssttaalllleerr PPrrooffttppdd
� D�sarchivez Proftpd et installez-le en tapant:
./configure
make; make install
1100..22..33.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//pprrooffttppdd
� Cr�ez un nouveau fichier /etc/init.d/proftpd contenant ce qui suit:
#!/bin/sh
# Begin /etc/init.d/proftpd
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
case "$1" in
start)
echo -n "Starting Pro FTP daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/proftpd
check_status
;;
stop)
echo -n "Stopping Pro FTP daemon..."
start-stop-daemon -K -q -o -x /usr/sbin/proftpd
check_status
;;
restart)
echo -n "Stopping Pro FTP daemon..."
start-stop-daemon -K -q -o -x /usr/sbin/proftpd
check_status
sleep 1
echo -n "Starting Pro FTP daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/proftpd
check_status
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
# End /etc/init.d/proftpd
1100..22..44.. PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lleess lliieennss ssyymmbboolliiqquueess
� Fixez les permissions appropri�es en lan�ant : chmod 755
/etc/init.d/proftpd
� Cr�ez les liens symboliques n�cessaires en lan�ant :
cd /etc/rc2.d; ln -s ../init.d/proftpd S40proftpd
cd ../rc0.d; ln -s ../init.d/proftpd K40proftpd
cd ../rc6.d; ln -s ../init.d/proftpd K40proftpd
1100..33.. CCoonnffiigguurreerr HHTTTTPP
1100..33..11.. IInnssttaalllleerr AAppaacchhee
� D�sarchivez Apache et installez-le en tapant :
./configure
make; make install
1100..33..22.. CCoonnffiigguurreerr AAppaacchhee
Il n'y a pas grande configuration � faire. La seule chose n�cessaire
est d'ajouter le chemin d'acc�s /usr/apache/man au fichier
/usr/share/misc/man.conf
� Editez le fichier /usr/share/misc/man.conf
� Ajoutez cette ligne apr�s les autres lignes commen�ant par MANPATH
: _M_A_N_P_A_T_H _/_u_s_r_/_a_p_a_c_h_e_/_m_a_n
1100..33..33.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//aappaacchhee
� Cr�ez un nouveau fichier /etc/init.d/apache contenant ce qui suit :
#!/bin/sh
# Begin /etc/init.d/apache
case "$1" in
start)
echo -n "Starting Apache HTTP daemon..."
/usr/apache/bin/apachectl start
;;
stop)
echo -n "Stopping Apache HTTP daemon..."
/usr/apache/bin/apachectl stop
;;
restart)
echo -n "Restarting Apache HTTP daemon..."
/usr/apache/bin/apachectl restart
;;
force-restart)
echo -n "Stopping Apache HTTP daemon..."
/usr/apache/bin/apachectl stop
sleep 1
echo -n "Starting Apache HTTP daemon..."
/usr/apache/bin/apachectl start
;;
*)
echo "Usage: $0 {start|stop|restart|force-restart}"
;;
esac
# End /etc/init.d/apache
1100..33..44.. PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess
� Fixez les permissions appropri�es en lan�ant chmod 755
/etc/init.d/apache
� Cr�ez les liens symboliques appropri�s en lan�ant :
cd /etc/rc2.d; ln -s ../init.d/apache S50apache
cd ../rc0.d; ln -s ../init.d/apache K50apache
cd ../rc6.d; ln -s ../init.d/apache K50apache
1100..44.. CCoonnffiigguurreerr TTeellnneett
1100..44..11.. IInnssttaalllleerr llee dd��mmoonn eett llee cclliieenntt tteellnneett
� D�sarchivez Netkit-telnet et installez-le en tapant:
./configure
make; make install
1100..44..22.. CCrr��eerr llee ffiicchhiieerr ddee ccoonnffiigguurraattiioonn //eettcc//iinneettdd..ccoonnff
� Cr�ez un nouveau fichier /etc/inetd.conf contenant ce qui suit :
# Begin /etc/inetd.conf
telnet stream tcp nowait root /usr/sbin/in.telnetd
# End /etc/inetd.conf
1100..44..33.. CCrr��eerr llee ssccrriipptt ddee dd��mmaarrrraaggee //eettcc//iinniitt..dd//iinneettdd
� Cr�ez un nouveau fichier /etc/init.d/inetd contenant ce qui suit :
#!/bin/sh
# Begin /etc/init.d/inetd
check_status()
{
if [ $? = 0 ]
then
echo "OK"
else
echo "FAILED"
fi
}
case "$1" in
start)
echo -n "Starting Internet Server daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/inetd
check_status
;;
stop)
echo -n "Stopping Internet Server daemon..."
start-stop-daemon -K -q -o -p /var/run/inetd.pid
check_status
;;
reload)
echo -n "Reloading Internet Server configuration file..."
start-stop-daemon -K -q -s 1 -p /var/run/inetd.pid
check_status
;;
restart)
echo -n "Stopping Internet Server daemon..."
start-stop-daemon -K -q -o -p /var/run/inetd.pid
check_status
sleep 1
echo -n "Starting Internet Server daemon..."
start-stop-daemon -S -q -o -x /usr/sbin/inetd
check_status
;;
*)
echo "Usage: $0 {start|stop|reload|restart}"
;;
esac
# End /etc/init.d/inetd
1100..44..44.. PPaarraamm��ttrreerr lleess ppeerrmmiissssiioonnss eett lliieennss ssyymmbboolliiqquueess
� Fixez les permissions appropri�es en lan�ant : chmod 755
/etc/init.d/inetd
� Cr�ez les liens symboliques appropri�s en lan�ant :
cd /etc/rc2.d; ln -s ../init.d/inetd S30inetd
cd ../rc0.d; ln -s ../init.d/inetd K30inetd
cd ../rc6.d; ln -s ../init.d/inetd K30 inetd
1100..55.. CCoonnffiigguurreerr PPPPPP
1100..55..11.. CCoonnffiigguurreerr llee nnooyyaauu
Avant de pouvoir vous connecter � Internet, vous devez configurer le
support PPP dans le noyau. Pour ce faire, soit vous compilez le noyau
avec support PPP int�gr�, soit vous compilez le support PPP en module
qui sera charg� lorsque n�cessaire. Quelle que soit la m�thode que
vous pr�f�rez, vous devez recompiler le noyau maintenant s'il ne
supporte pas le protocole PPP.
1100..55..22.. CCrr��eerr llee ggrroouuppee
� Cr�ez le groupe du d�mon PPP en lan�ant : groupadd -g7 daemon
1100..55..33.. IInnssttaalllleerr PPPPPP
� D�sarchivez PPP et installez-le en tapant :
./configure
make; make install
1100..55..44.. CCrr��eerr llee ffiicchhiieerr //eettcc//rreessoollvv..ccoonnff
� Cr�ez un nouveau fichier /etc/resolv.conf contenant ce qui suit :
# Begin /etc/resolv.conf
nameserver <adresse IP du serveur DNS primaire de votre FAI>
nameserver <adresse IP du serveur DNS secondaire de votre FAI>
# End /etc/resolv.conf
1100..55..55.. CCrr��eerr llee ffiicchhiieerr //eettcc//pppppp//ppeeeerrss//pprroovviiddeerr
� Cr�ez un r�pertoire /etc/ppp/peers
� Cr�ez un nouveau fichier /etc/ppp/peers/provider contenant ce qui
suit :
# Begin /etc/ppp/peers/provider
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
/dev/ttyS1
115200
defaultroute
noipdefault
# End /etc/ppp/peers/provider
1100..55..66.. CCrr��eerr llee ffiicchhiieerr //eettcc//cchhaattssccrriippttss//pprroovviiddeerr
� Cr�ez le r�pertoire /etc/chatscripts
� Cr�ez un nouveau fichier /etc/chatscripts/provider contenant ce qui
suit :
# Begin /etc/chatscripts/provider
ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK ATDT <num�ro de t�l�phone de votre FAI>
TIMEOUT 35
CONNECT ''
TIMEOUT 10
ogin: \ q<nom d'utilisateur FAI>
TIMEOUT 10
assword: \ q<mot de passe FAI>
# End /etc/chatscripts/provider
1100..55..77.. RReemmaarrqquuee ccoonncceerrnnaanntt ll''aauutthheennttiiffiiccaattiioonn ddeess mmoottss ddee ppaassssee
Comme vous pouvez le voir dans les scripts ci-dessus (ce sont les
scripts que j'utilise lorsque je ne travaille pas sous X), je me
connecte chez mon FAI (Fournisseur d'Acc�s Internet) en utilisant ces
scripts de communication plut�t qu'en utilisant l'authentification pap
ou chap. Bien que mon FAI supporte pap, j'ai choisi de proc�der de
fa�on l�g�rement diff�rente, avec les avantages et inconv�nients que
cette m�thode comporte. Dans mon cas, les avantages sont plus nombreux
que les inconv�nients. En fait, en utilisant cette m�thode, j'ai plus
de contr�le sur la proc�dure de connexion et je peux voir ce qui se
passe et quand �a se passe.
Par exemple, la plupart du temps, lorsque je me connecte, j'ouvre une
fen�tre dans laquelle j'ex�cute
tail -f /var/log/syslog de mani�re � pouvoir voir quand (avec mon FAI
ce serait plut�t 'si') les informations comme l'identifiant et le mot
de passe sont envoy�s.
1111.. IInnssttaalllleerr lleess cclliieennttss rr��sseeaauu
1111..11.. IInnssttaalllleerr lleess cclliieennttss EEmmaaiill
1111..11..11.. IInnssttaalllleerr MMaaiillxx
� D�sarchivez Mailx et installez-le en tapant
make; make install
1111..11..22.. IInnssttaalllleerr MMuutttt
Mon client mail favori est Mutt, c'est donc celui-l� que je vous
conseille d'installer. Il ne s'agit pas d'une obligation, si vous avez
un client mail pr�f�r�, installez-le. Apr�s tout, c'est votre syst�me,
pas le mien. Notez que, si votre client est sous X Window, vous devrez
attendre le chapitre concernant l'installation du syst�me X Window
pour pouvoir l'installer.
� D�sarchivez Mutt et installez-le en tapant:
./configure
make; make install
1111..11..33.. IInnssttaalllleerr FFeettcchhmmaaiill
� D�sarchivez Fetchmail et installez-le en tapant:
./configure
make; make install
1111..11..44.. TTeesstteerr llee ssyysstt��mmee eemmaaiill
Il est grand temps de tester notre syst�me de courrier �lectronique.
� Lancez Sendmail en tapant /usr/sbin/sendmail -bd (vous devez
indiquer le chemin d'acc�s � Sendmail complet. Si vous ne le faites
pas, Sendmail n'aura pas la possibilit� de recharger le fichier
sendmail.cf lorsque vous utiliserez la commande kill -1 <sendmail
pid>).
� Envoyez-vous un mail en lan�ant echo "Ceci est un email d'essai" |
mail -s test root
� D�marrez le programme mail, vous devez voir appara�tre votre mail.
� Cr�ez un nouvel utilisateur en lan�ant useradd -m testuser; passwd
testuser
� Envoyez un mail � ce nouvel utilisateur en lan�ant echo "mail
d'essai vers testuser" | mail -s test testuser
� Connectez-vous sur le compte de cet utilisateur et lancez le
programme mail pour voir si l'envoi a fonctionn�. Si c'est le cas,
envoyez un mail � root de la m�me mani�re que vous avez envoy� un
mail � testuser.
Si toutes ces �tapes se sont termin�es correctement, vous �tes parvenu
� configurer un syst�me mail local. Cela ne signifie pas qu'il est
op�rationnel pour Internet. Vous pouvez supprimer l'utilisateur de
test en lan�ant userdel -r testuser
1111..22.. IInnssttaalllleerr llee cclliieenntt FFTTPP
1111..22..11.. IInnssttaalllleerr NNeettkkiitt--ffttpp
� D�sarchivez Netkit-ftp et installez-le en tapant:
./configure
make; make install
1111..22..22.. TTeesstteerr llee ssyysstt��mmee FFTTPP
� Lancez le d�mon Pro FTP en tapant : /etc/init.d/proftpd start
� Ouvrez une session FTP sur l'h�te local en tapant : ftp localhost
� Connectez-vous en tant qu'utilisateur anonyme et d�connectez-vous �
nouveau.
1111..33.. IInnssttaalllleerr llee cclliieenntt HHTTTTPP
1111..33..11.. IInnssttaalllleerr ZZlliibb
Zlib est une biblioth�que de compression utilis�e par des programmes
comme zip et unzip de PKware. Lynx utilise cette biblioth�que pour
compresser certains fichiers.
� D�sarchivez Zlib et installez-le en tapant:
./configure --shared
make; make install
1111..33..22.. IInnssttaalllleerr LLyynnxx
� D�sarchivez Lynx et installez-le en tapant:
./configure --libdir=/etc --with-zlib
make; make install
make install-help; make install-doc
1111..33..33.. TTeesstteerr llee ssyysstt��mmee HHTTTTPP
� D�marrez le d�mon Apache en tapant : /etc/init.d/apache start
� D�marrez une session http vers l'h�te local en tapant : lynx
http://localhost
� Quittez lynx.
1111..44.. IInnssttaalllleerr llee cclliieenntt TTeellnneett
Le client Telnet a d�j� �t� install� lorsque nous avons mis en place
le d�mon correspondant, au chapitre pr�c�dent.
1111..44..11.. TTeesstteerr llee ssyysstt��mmee TTeellnneett
� D�marrez le d�mon Serveur Internet (et avec lui telnetd) en tapant
: /etc/init.d/inetd start
� D�marrez une session telnet vers l'h�te local en tapant : telnet
localhost
� Connectez et d�connectez-vous.
1111..55.. IInnssttaalllleerr lleess cclliieennttss PPPPPP
1111..55..11.. CCrr��eerr llee ssccrriipptt ddee ccoonnnneexxiioonn
� Cr�ez un nouveau fichier /usr/bin/pon contenant ce qui suit :
#!/bin/sh
# Begin /usr/bin/pon
/usr/sbin/pppd call provider
# End /usr/bin/pon
1111..55..22.. CCrr��eerr llee ssccrriipptt ddee dd��ccoonnnneexxiioonn
� Cr�ez un nouveau fichier /usr/bin/poff contenant ce qui suit :
#!/bin/sh
# Begin /usr/bin/poff
set -- `cat /var/run/ppp*.pid`
case $# in
0)
kill -15 `ps axw|grep "pppd call [[allnum:]]+"|grep -v grep|awk '{print $1}'`
exit 0
;;
1)
kill -15 $1
exit 0
;;
esac
# End /usr/bin/poff
1111..55..33.. TTeesstteerr llee ssyysstt��mmee PPPPPP
� Connectez-vous � Internet en tapant pon
� Essayez de vous connecter � un site comme
http://www.linuxfromscratch.org
� D�connectez-vous d'Internet en lan�ant poff
1122.. IInnssttaalllleerr llee ssyysstt��mmee XX WWiinnddooww
1122..11.. IInnssttaalllleerr XX
� D�sarchivez X et installez-le en tapant :
make World
make install; make install.man
Au cours de la compilation, vous verrez quelques erreurs indiquant que
le script "makedepend" est incapable de trouver les fichiers stddef.h,
stdarg.h et float.h. Manifestement ce script n'est pas aussi efficace
que le compilateur car la compilation se d�roule sans probl�me. Cr�er
des liens symboliques ne r�soudra pas le probl�me, au contraire cela
en cr�era d'autres.
Vous pouvez donc superbement ignorer ces erreurs, ainsi que celles du
type "pointer targets in passing arg x of somefunction differ in
signedness". D'ailleurs vous pouvez r��crire ces fichiers si vous le
souhaitez, pour ma part, je m'abstiendrai.
1122..22.. CCrr��eerr //eettcc//lldd..ssoo..ccoonnff
Cr�ez un nouveau fichier /etc/ld.so.conf contenant ce qui suit :
# Begin /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
# End /etc/ld.so.conf
� Mettez � jour le chargeur dynamique en tapant ldconfig
1122..33.. CCrr��eerr llee lliieenn ssyymmbboolliiqquuee //uussrr//iinncclluuddee//XX1111
� Afin que le pr�processeur trouve les fichiers X11/*.h, vous devez
cr�er le lien symbolique suivant : ln -s /usr/X11R6/include/X11
/usr/include/X11
1122..44.. CCrr��eerr llee lliieenn ssyymmbboolliiqquuee //uussrr//XX1111
Souvent, les applications copient des fichiers vers /usr/X11, sans
avoir � se soucier de la version X utilis�e. Ce lien symbolique n'a
pas �t� cr�� � l'installation du syst�me X Window, vous devez donc le
faire.
� Cr�ez le lien symbolique /usr/X11 en tapant ln -s /usr/X11R6
/usr/X11
1122..55.. AAjjoouutteerr //uussrr//XX1111//bbiinn �� llaa vvaarriiaabbllee dd''eennvviirroonnnneemmeenntt $$PPAATTHH
Il y a diff�rentes m�thodes pour ajouter le chemin /usr/X11/bin � la
variable d'environnement $PATH . Voici une fa�on de proc�der :
� Cr�ez un nouveau fichier /root/.bashrc contenant: _e_x_p_o_r_t
_P_A_T_H_=_$_P_A_T_H_:_/_u_s_r_/_X_1_1_/_b_i_n
Vous devez vous d�connecter et vous reconnecter au syst�me afin que
cette modification soit prise en compte.
Une autre m�thode consiste � mettre � jour la variable $PATH en tapant
: export PATH=$PATH:/usr/X11/bin manuellement
1122..66.. CCoonnffiigguurreerr XX
� Configurez le serveur X en lan�ant xf86config
Si le fichier XF86Config cr�� par xf86config n'est pas apte � faire
d�marrer le serveur, il est alors pr�f�rable de copier le fichier
XF86Config existant sur votre syst�me Linux normal dans /etc. Dans
certains cas, vous serez m�me oblig� de modifier manuellement ce
fichier de configuration lorsque xf86config sera incapable de g�rer
certains aspects de la configuration. Quoi qu'il en soit, modifier
manuellement ce fichier est tr�s long et le r�sultat obtenu n'est pas
toujours celui attendu.
1122..77.. TTeesstteerr XX
Maintenant que X est configur� proprement, il est temps de faire un
premier test.
� Lancez le serveur X en tapant startx
Le serveur X d�marrera et affichera trois terminaux xterm � l'�cran.
Si c'est effectivement le cas, votre syst�me X fonctionne
correctement.
1122..88.. IInnssttaalllleerr WWiinnddooww MMaakkeerr
J'ai choisi d'installer Window Maker car j'utilise ce gestionnaire de
fen�tres depuis un certain temps et j'en suis tr�s satisfait. Comme
d'habitude, vous �tes libre d'installer votre gestionnaire de fen�tres
favori, voire d'en installer plusieurs en fonction de votre humeur. Il
suffira de sp�cifier dans le fichier $HOME/.xinitrc (ou
$HOME/.xsession si vous utilisez xdm) lequel lancer.
1122..99.. PPrr��ppaarreerr llee ssyysstt��mmee ppoouurr ll''iinnssttaallllaattiioonn ddee WWiinnddooww MMaakkeerr
1122..99..11.. IInnssttaalllleerr lliibbPPrrooppLLiisstt
� D�sarchivez libPropList et installez-le en tapant:
./configure
make; make install
1122..99..22.. IInnssttaalllleerr lliibbXXppmm
� D�sarchivez libXpm et installez-le en tapant :
xmkmf; make Makefiles; make includes; make depend
cd lib; make; make install
cd ..; make; make install
Cette installation l�g�rement diff�rente est due � un _b_u_g dans un des
fichiers Makefile. Il d�pend des fichiers du r�pertoire lib qui ne
sont pas encore install�s mais ne les cherche pas dans le r�pertoire
lib. Nous devons donc installer ces fichiers avant de compiler le
paquetage.
1122..99..33.. IInnssttaalllleerr lliibbppnngg
� D�sarchivez libpng et installez-le en tapant :
make -f scripts/makefile.lnx; make -f scripts/makefile.lnx install
1122..99..44.. IInnssttaalllleerr lliibbttiiffff
� D�sarchivez libtiff et installez-le en tapant:
./configure
make; make install
1122..99..55.. IInnssttaalllleerr lliibbjjppeegg
� D�sarchivez libjpeg et installez-le en tapant:
./configure --enable-shared --enable-static
make; make install
1122..99..66.. IInnssttaalllleerr lliibbuunnggiiff
� D�sarchivez libungif et installez-le en tapant:
./configure
make; make install
1122..99..77.. IInnssttaalllleerr WWiinnddoowwMMaakkeerr
� D�sarchivez WindowMaker et installez-le en tapant:
./configure
make; make install
1122..1100.. MMeettttrree �� jjoouurr llee ccaacchhee dduu cchhaarrggeeuurr ddyynnaammiiqquuee
� Mettez � jour le cache du chargeur dynamique en lan�ant: ldconfig
1122..1111.. CCoonnffiigguurreerr WWiinnddooww MMaakkeerr
Tout utilisateur souhaitant utiliser WindowMaker doit d'abord lancer
le script wmaker.inst. Ce dernier copiera les fichiers n�cessaires
dans le r�pertoire de l'utilisateur et modifiera le fichier
$HOME/.xinitrc (ou le cr�era s'il n'existe pas).
� Configurer Window Maker en lan�ant wmaker.inst
1122..1122.. TTeesstteerr WWiinnddooww MMaakkeerr
� D�marrez le serveur X et v�rifiez que le gestionnaire de fen�tres
Window Maker d�marre convenablement. Pour ce faire, utilisez la
commande startx
1133.. RReessssoouurrcceess
Une liste de livres, HOWTOs et autres documents dont vous pourriez
avoir besoin. Cette liste est loin d'�tre exhaustive mais contient le
n�cessaire pour d�marrer. Nous esp�rons �tre en mesure de la compl�ter
au fur et � mesure que nous trouverons de nouveaux documents utiles.
1133..11.. LLiivvrreess
� _S_e_n_d_m_a_i_l publi� par O'Reilly. ISBN: 1-56592-222-0
� _L_i_n_u_x _N_e_t_w_o_r_k _A_d_m_i_n_i_s_t_r_a_t_o_r_'_s _G_u_i_d_e publi� par O'Reilly. ISBN:
1-56592-087-2
� _R_u_n_n_i_n_g _L_i_n_u_x publi� par O'Reilly. ISBN: 1-56592-151-8
1133..22.. HHOOWWTTOOss
� ISP-Hookup-HOWTO � l'adresse
http://www.linuxdoc.org
� Linux Network Administrator's Guide en ligne � l'adresse :
http://www.linuxdoc.org
1133..33.. AAuuttrree
� Les diverses pages de manuel et pages info livr�es avec les
paquetages.
1144.. LLaa FFiinn
Vous venez d'atteindre la fin du document Linux From Scratch HOWTO.
J'esp�re que cette exp�rience vous a permis de compl�ter vos
connaissances concernant le syst�me Linux. Si vous souhaitez voir
figurer ici certaines informations (corrections de bogues,
applications suppl�mentaires oubli�es que vous consid�rez comme
importantes), faites-le nous savoir. Ensemble, gr�ce � votre aide et �
vos suggestions, nous am�liorerons ce document.
1155.. CCooppyyrriigghhtt && iinnffoorrmmaattiioonn ddee lliicceennccee
Copyright (C) 1999 Gerard Beekmans. Ce document ne peut �tre distribu�
que conform�ment aux termes et conditions expos�s dans la licence LDP,
disponible � l'adresse
http://www.linuxdoc.org/COPYRIGHT.html.
Il n'est toutefois pas n�cessaire d'afficher cette notice, comme
d�crit dans la licence LDP, si seule une petite partie de ce document
est utilis�e � des fins d'illustration ou de citation. Toutefois je
vous demande de faire figurer, avec la citation, la mention: "Extrait
de LFS-HOWTO �
http://huizen.dds.nl/~glb/"