À l’assaut de Linux From Scratch (partie 3)

Pour ce troisième chapitre, je ne saurais trop vous conseiller de travailler avec le livre en version anglaise plutôt qu’avec sa traduction française. Cette dernière est bien faite mais on y trouve quelques approximations qui compliquent le processus. En ce qui concerne la mise en page de la version PDF, elle n’est pas toujours soignée. Donc, je vous suggère de travailler avec la version HTML du manuel, qui est bien plus aérée.

Je vous annonce également que j’ai rédigé un script qui automatise tout le processus décrit dans l’article précédent. Ce script, le voici:

https://pastebin.com/HAywKQPq

J’ai fait la même chose pour cette troisième partie, mais je vous donnerai le lien à la fin. Nous allons maintenant entrer dans le vif du sujet et installer les outils de compilation croisée. Je trouve que ce n’est pas toujours simple d’en saisir le fonctionnement. Que ce soit en anglais ou en français, certains paragraphes sont incompréhensibles pour le commun des mortels, par exemple celui intitulé À propos de la compilation croisée (partie III du livre, page 54). Pardonnez-moi d’être dur mais c’est une catastrophe pédagogique.

Alors que faire? Eh bien, il faut ignorer ces explications, lancer les codes sans s’énerver, et petit à petit, la lumière va s’allumer. En gros, nous allons construire des outils de compilation croisée qui vont nous permettre de produire du code et de construire notre système d’exploitation en s’isolant du système hôte. La compilation transforme un code écrit par des humains (donc avec un haut niveau d’abstraction), en un code binaire que la machine peut comprendre.

Même s’il y a des variantes, Le principe général est toujours le même et il s’applique à chaque archive *.tar que nous avons téléchargée. Tout d’abord, il est impératif d’ouvrir un shell sous le nouveau profil utilisateur défini dans l’article précédent. Il ne faut pas rester en root.

[root@volgor miamondo]# su - benoit
benoit:/home/benoit$

Ensuite, voici le principe général applicable à chaque archive :

ActionsCommandes
Déplacement dans le répertoire $LFS/sourcescd $LFS/sources
Extraction de l’archive :
exemple binutils-2.35.tar.xz
tar -xf binutils-2.35.tar.xz
Déplacement dans le répertoire de codes source tout juste décompressécd binutils-2.35
Exécution des instructions données par le livre pour construire chaque paquet Voir tableau suivant
Déplacement dans le répertoire $LFS/sourcescd .. ou bien cd ../.. Ça dépend
Suppression du répertoire de codes source. Par contre, il faut conserver l’archive *tar!sudo rm -r binutils-2.35

Chaque paquet est différent mais il est traité avec le même processus. Exemple avec diffutils-3.7 dans le tableau ci-dessous.

ActionsCommandes
Paramètres de compilation propre à chaque paquet./configure --prefix=/usr
--host=$LFS_TGT
Compilation du paquetmake
Installation du paquetmake DESTDIR=$LFS install

Il est possible également qu’un paquet soit extrait et supprimé trois fois! C’est le cas avec gcc par exemple. Enfin, après l’installation de glibc, il y a un contrôle pour vérifier que tout se passe bien. Si le résultat est négatif, ce n’est pas la peine de continuer plus loin. Il faut trouver la panne.

Concernant l’installation des paquets, le livre est vraiment bien fait. Les développeuses (ou les développeurs) qui l’ont rédigé, ont pris soin d’expliquer en détail chaque paramètres de configuration. Sur ce point, je n’ai rien à redire. Le processus d’installation n’est pas une partie de plaisir mais je trouve quand-même que c’est très instructif.

J’ai automatisé toute cette partie dans un script qui m’a donné bien du fil à retordre. Le voici : https://pastebin.com/trDYBhyE

Ainsi, en lançant deux scripts et en me tournant les pouces, j’arrive aux portes du chroot. Ce sera le sujet du prochain article.

https://pastebin.com/HAywKQPqPartitionnement, téléchargement des archives,
Création d’un nouvel utilisateur
https://pastebin.com/trDYBhyECompilation et installation des paquets

Bon dimanche

Vus : 76
Publié par miamondo : 102