Linux From Scratch
(linuxfromscratch.org)- Manuel pas à pas guidant l’utilisateur pour construire lui-même un système Linux à partir du code source
- La version 12.4 a été publiée le 1er septembre 2025 et inclut notamment le kernel 6.16.1, GCC 15.2.0 et Glibc 2.42 les plus récents
- Couvre l’ensemble du processus, de la configuration d’une cross-toolchain à l’installation d’outils temporaires puis à la finalisation d’un système amorçable
- Chaque chapitre distingue en détail la liste des paquets, l’ordre de compilation, les procédures de test et la configuration du système
- Une ressource importante pour les développeurs et les ingénieurs système souhaitant apprendre l’architecture interne de Linux et créer une distribution sur mesure
Vue d’ensemble
- Linux From Scratch (LFS) est un projet conçu pour permettre aux utilisateurs de construire eux-mêmes un système Linux sans partir d’une distribution existante
- Il explique étape par étape comment compiler et configurer tous les composants à partir du code source
- Gerard Beekmans en est le fondateur, et Bruce Dubbs assure la direction éditoriale
- La documentation est proposée sous la forme d’un manuel en ligne basé sur HTML, avec pour chaque étape des liens détaillés et les versions des paquets indiquées
Informations de version
- La version stable actuelle est la 12.4, publiée le 1er septembre 2025
- Le copyright appartient à Gerard Beekmans pour la période 1999–2025
- La dernière version inclut des paquets majeurs comme Linux 6.16.1, GCC 15.2.0, Glibc 2.42 et Python 3.13.7
Structure du document
- Le document se compose de 5 grandes parties : préface, préparation de la compilation, construction de la cross-toolchain, construction du système, configuration du démarrage et annexes
- Préface (Preface) : présente le public visé, les connaissances requises, la conformité aux standards et les raisons du choix des paquets
- Préparation de la compilation (Preparing for the Build) : inclut les exigences du système hôte, la création des partitions et la configuration des variables d’environnement
- Construction de la cross-toolchain et des outils temporaires (Building the LFS Cross Toolchain and Temporary Tools) : met en place les composants essentiels comme Binutils, GCC et Glibc
- Construction du système LFS (Building the LFS System) : installation et configuration des principaux logiciels système
- Finalisation d’un système LFS amorçable (Making the LFS System Bootable) : compilation du kernel et configuration de GRUB
- Annexes (Appendices) : comprennent les abréviations, les dépendances, les scripts de démarrage et la licence
Composants principaux
- La liste des paquets comprend plus de 100 utilitaires et bibliothèques essentiels
- Exemples : Coreutils 9.7, Bash 5.3, Perl 5.42.0, Python 3.13.7, OpenSSL 3.5.2, Systemd Udev 257.8
- Pour chaque paquet, les étapes d’installation, de test et de nettoyage (cleanup) sont détaillées
- Inclut des scripts de démarrage basés sur SysVinit 3.14 ainsi que la configuration du chargeur de démarrage GRUB 2.12
Configuration système et démarrage
- Le chapitre 9 (System Configuration) couvre le réseau, les locales, la gestion des périphériques et la configuration des entrées
- Le chapitre 10 (Making the LFS System Bootable) inclut la rédaction de
/etc/fstab, la compilation du kernel et la configuration de GRUB - Le chapitre 11 (The End) présente le redémarrage du système et des ressources pour aller plus loin
Annexes et licence
- L’annexe D inclut les scripts
bootetsysconfigen version 20250827 - L’annexe F mentionne deux licences : Creative Commons et MIT License
- Des ressources de référence sont également fournies, comme la liste des dépendances, le glossaire et les remerciements
Importance
- LFS est un projet pédagogique et de recherche qui permet d’expérimenter directement les principes de construction et l’architecture de Linux
- Il sert de référence standard pour la construction d’un environnement Linux minimal aux administrateurs système, développeurs de distributions et chercheurs en sécurité
1 commentaires
Avis sur Hacker News
Il avait commencé en 1999 et l’a utilisé jusqu’en 2001, mais a fini par abandonner car la gestion des dépendances et les recompilations étaient trop pénibles
À l’époque, la documentation n’était pas aussi détaillée qu’aujourd’hui, il fallait donc tout retracer soi-même, et il y avait aussi beaucoup de paquets obscurs
Malgré cela, il garde un très bon souvenir de cette période où, après être passé à Slackware, il compilait lui-même des paquets comme XFree86 et GNOME et y contribuait
Si vous en avez le temps, il recommande vivement d’essayer. Votre regard sur Linux en sera complètement transformé
Aujourd’hui, cela vaudrait sans doute la peine de retenter l’expérience dans une machine virtuelle
La vraie force de LFS/BLFS, c’est de pouvoir ajuster le système à son propre usage
Cette personne suit 4 000 projets avec un script Ruby. Si gem-coop devient une alternative viable à rubygems.org commercial, elle prévoit de republier son projet
Elle n’a jamais vraiment utilisé le système terminé, mais estime que ces quelques soirées y ont largement valu la peine
Selon ce commentaire, ce meilleur accès à l’information est une des grandes raisons de la croissance de Linux
Quand il était plus jeune, construire LFS lui a appris qu’on pouvait accéder aux niveaux les plus bas d’un ordinateur
Cela dit, Gentoo ou Arch offrent un effet pédagogique comparable avec un temps d’installation bien plus court
Beaucoup disent « je vais faire LFS plutôt que Gentoo », mais la plupart abandonnent en cours de route ou finissent par détester durablement les distributions basées sur les sources
Slackware et LFS y sont comparés à Haskell, avec l’idée qu’aller trop loin dans l’extrême finit par devenir improductif
LFS est abondamment documenté, et même si Slackware a été dépassé par son époque, les efforts de Patrick restent remarquables
Il récupérait des pièces de PC 386/486 dans un entrepôt de recyclage informatique à Seattle, les assemblait et y installait Linux
Il a grandi en apprenant Linux sur ces ordinateurs Frankenstein qu’il avait fabriqués
Avec un système basé sur RPM, les transactions de dnf permettent de suivre l’historique des installations et d’effectuer des retours en arrière, ce qui rend l’administration bien plus simple
Après avoir suivi le livre une fois pour construire un OS, il devient plus facile de comprendre les différences entre distributions, et cela donne un sentiment d’appropriation du système
Comme il s’agissait d’une compilation croisée pour ARMv6, c’était très difficile, mais extrêmement instructif
Il a automatisé les builds avec Jenkins et structuré le système avec des scripts bash et des Makefile
L’image finale faisait environ 40 Mo, et il en était très fier
« ne sautez jamais les tests »
Comme glibc tolère lui-même certains échecs de tests, cette personne a repris une formule similaire dans les tests de son propre logiciel
En voyant l’avertissement « enfreindre cette étape peut casser le système », elle a eu l’impression d’être face à une distribution Linux façon Dark Souls
Recompiler le noyau reste pénible à cause du trop grand nombre d’options, mais ce genre d’apprentissage fait partie du charme de Linux
C’est une culture qu’on voit rarement dans d’autres OS, surtout Windows
Quelqu’un se demande s’il existe une version BSD de LFS