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 "no
such file or directory" sans aucun dommage pour votre système. Ne dites pas
que je ne vous ai pas prévenu ;-)
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.
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.
$LFS/usr/src
. tar xvfz filename.tar.gz; rm filename.tar.gz
ou tar xvfz filename.tgz; rm filename.tgz
tar --use-compress-prog=bzip2
-xvf filename.tar.bz2; rm filename.tar.bz2
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 copier 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
.