miamondo : À l’assaut de Linux From Scratch (partie 3)
dimanche 14 février 2021 à 02:23Avant de commencer ce troisième chapitre, je ne saurais trop vous conseiller le livre en version anglaise plutôt que sa traduction française. Cette dernière est bien faite mais on y trouve quelques approximations qui compliquent le processus. En outre, pour une question de mise en page pas toujours soignée, je vous suggère également de travailler avec la version HTML du manuel, qui est, à mon avis, bien plus aérée et par conséquent bien plus agréable à lire que la version PDF.
Nous allons maintenant entrer dans le vif du sujet. Ça va compiler ta mère!, comme disent les loubards des faubourgs. L’exercice n’est pas simple mais il est intéressant. Les plus perspicaces d’entre vous auront remarqué que j’ai choisi un titre un peu plus guerrier que les précédents. C’est pour me donner du courage. Alors, debout les morts, baïonnette au canon, Montjoie!!
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:
J’ai fait la même chose pour cette troisième partie mais je vous donnerai le lien à la fin. 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 traduit un code généré 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 :
Actions | Commandes |
---|---|
Déplacement dans le répertoire $LFS/sources | cd $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/sources | cd .. 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.
Actions | Commandes |
---|---|
Paramètres de compilation propre à chaque paquet | ./configure --prefix=/usr --host=$LFS_TGT |
Compilation du paquet | make |
Installation du paquet | make 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/HAywKQPq | Partitionnement, téléchargement des archives, Création d’un nouvel utilisateur |
https://pastebin.com/trDYBhyE | Compilation et installation des paquets |
Bon dimanche
Original post of miamondo.Votez pour ce billet sur Planet Libre.
Articles similaires
- miamondo : À la découverte de Linux From Scratch (partie 1) (04/02/2021)
- miamondo : À la découverte de Linux From Scratch (partie 2) (07/02/2021)