Linux From Scratch 8.4 : sortez vos tabliers !

Posté par  . Édité par Davy Defaud. Modéré par bubar🦥. Licence CC By‑SA.
45
3
mar.
2019
Distribution

Comme chaque début d’année, c’est la période pour une nouvelle version de Linux From Scratch.

Linux From Scratch, ou LFS pour les intimes, est un livre décrivant pas à pas la construction à la main d’une distribution GNU/Linux, l’occasion idéale pour en apprendre plus sur GNU/Linux et créer la vôtre ! Tout cela 100 % traduit en français.

Logo de LFS

Quoi de neuf dans cette version ?

Cette nouvelle version (publiée seulement cinq heures après la version anglaise !) contient une mise à jour majeure de la chaîne d’outils avec les versions glibc 2.29, binutils 2.32 et bash 5.0. Au total, ce sont trente‐trois paquets qui ont été mis à jour. Enfin, le noyau Linux a été mis à jour vers la version 4.20.12. Tout cela, en plus des habituelles améliorations des explications et des descriptions.

Cette nouvelle version est accompagnée d’une mise à jour de BLFS qui contient environ mille paquets en plus du livre Linux From Scratch de base en version 8.4. Cette publication fait suite à la mise à jour de plus de sept cent trente paquets depuis la version précédente.

Est‐ce difficile ?

Bien que cela nécessite de bonnes connaissances de base à propos de GNU/Linux, le livre décrit avec précision chaque étape de la construction du système afin de la rendre abordable au plus grand nombre.

Le système

Celui‐ci est construit principalement en deux étapes. D’abord, la mise en place d’une chaîne de construction temporaire (aussi appelée toolchain) qui permet d’être indépendant du système hôte et d’assurer une construction stable, peu importe la distribution hôte choisie.

Ensuite, la construction du système final amorçable. Celui‐ci ressemblera à n’importe quelle distribution classique à l’exception du gestionnaire de paquets, que Linux From Scratch ne fournit pas par défaut. Libre à vous d’en ajouter un grâce à l’une des multitudes d’astuces disponibles (et traduites !), ou bien de créer le vôtre !

Et après ?

Linux From Scratch fournit la base d’une distribution GNU/Linux avec des paquets comme systemd ou SysVinit, ainsi que les principaux outils en ligne de commande, dont l’éditeur de texte vim (des instructions sont disponibles afin de le remplacer par votre éditeur de texte favori).

Afin d’avoir un système GNU/Linux répondant à vos besoins, vous voudrez sans doute poursuivre l’aventure en installant une multitude d’autres paquets, tels qu’un environnement de bureau. C’est l’objet d’un second livre, Beyond Linux From Scratch (BLFS) ou « Au‐delà de LFS », lui aussi disponible en version 8.4. BLFS apporte environ un millier de paquets supplémentaires par rapport à LFS. Si vous n’y trouvez pas votre bonheur, vous en savez suffisamment pour vous lancer dans le grand bain et compiler des paquets supplémentaires qui n’y sont pas présentés.

De retour du FOSDEM

Cette année encore, nous avons participé au FOSDEM avec un stand. L’occasion pour nous de rencontrer la communauté, de faire découvrir et de partager autour de ce merveilleux projet. De nombreuses personnes sont venues nous voir pour révéler leur terrible secret : elles ont construit un système LFS il y a cinq ou dix ans et s’en rappellent encore avec fierté. Ça nous a fait chaud au cœur. Merci à tous ceux qui sont passés sur le stand pour partager un souvenir ou pour se renseigner. Nous espérons avoir réussi à donner envie à plus de monde de se lancer dans cette magnifique aventure.

Photo de la table du stand LFS au FSODEM

Ce stand a aussi été l’occasion pour nous de récolter des fonds au profit du projet anglophone (puisque nous n’avons pas de frais particuliers) et après déduction des frais engagés pour l’achat des goodies et conversion, ce sont 80 US$ qui ont été récoltés. Merci à tous nos généreux donateurs !

Et maintenant ?

À vous de jouer, rejoignez l’aventure ! Faites‐nous des retours, sur nos lieux de rencontres habituels : liste de diffusion, IRC (#lfs-fr sur Freenode) et Mastodon. Si vos yeux saignent, vous pouvez nous aider à endiguer de nombreux cas de cécité précoce en proposant des corrections sur notre interface en ligne, ou via l’un des canaux précédents, si vous ne souhaitez pas créer de compte.

À bientôt !

Aller plus loin

  • # Justement en plein dedans

    Posté par  (site web personnel) . Évalué à 6.

    Je suis entrain de commencer ma propre distribution que je créé à partir de LFS. C'est vraiment très éducatif car bien qu'étant expérimenté sous Linux depuis 16 ans, je ne pensais pas que concevoir son toolchains en plusieurs étapes était aussi complexe.

    En tout cas je recommande pour ceux qui souhaitent vraiment comprendre le principe de bootstrap et les différentes passes de la recompilation du toolchain.

    git is great because linus did it, mercurial is better because he didn't

    • [^] # Corrections linguistiques

      Posté par  . Évalué à -10.

      • « Je suis en train de […] »
      • « […] que je crée à partir de LFS. […] »
      • « […] concevoir une chaîne de compilation […] »
      • « […] comprendre le principe d'amorçage […] »

      « Je suis en train de créer ma distribution en me basant sur LFS. C'est vraiment instructif. Notamment, la construction d'une chaîne de compilation, en plusieurs phases, qui me paraît complexe bien que j'ai seize ans d'expériences sous Linux. »

      Voir aussi :

      • [^] # Re: Corrections linguistiques

        Posté par  (site web personnel) . Évalué à 9.

        Ce n'est pas très constructif ni utile ou accueillant de signaler les fautes sur les commentaires (contrairement aux contenus).

        Et sinon, il y a toujours le risque du retour de bâton, comme de se faire rappeler qu'il faut ici écrire québécois sans majuscule, qu'il faut des points-virgules à la fin des éléments d'une liste à points et pas des points, sauf le dernier pour lequel on met un point.

        • [^] # Mise au point (grammaticale)

          Posté par  . Évalué à -10.

          À vous de voir quelle attitude adopter. Néanmoins, vous ne semblez pas enclin à apprendre la grammaire française (Ne vous emportez pas.).

          Dans des circonstances précises, on peut utiliser d'autres signes de ponctuation : la virgule si les éléments sont très courts (mais il peut être préférable, dans ce cas, d’opter pour une énumération horizontale) ou le point lorsque chaque élément de l'énumération constitue une phrase.

          J'ai fais une erreur de majuscule pour le mot "québécois". Je ne maîtrise pas toutes les règles grammaticales. J'ai mis la lettre "q" en majuscule à cause du sigle OQLF.

          • [^] # Re: Mise au point (grammaticale)

            Posté par  . Évalué à 3.

            Néanmoins, vous ne semblez pas enclin à apprendre la grammaire française (Ne vous emportez pas.).

            Je ne mettrais pas par écrit les mots qui me sont venus quand j'ai lu ça ; c'est proche capitaine Haddock dans ces meilleurs jours et illustre en gros "mais pour qui il se prend".

            En fait la grammaire pour la grammaire n'a que peut d'intérêt.
            Le commentaire sur lequel tu t'ébats est très compréhensible et tu ne fais qu'ajouter du bruit.

            Pour ma part, la correction des anglicismes m'énerve car je comprends mieux "toolchain" que "chaîne de truc" et "bootstrap" sur "amorçage" pour lesquels tes traductions sont plutôt approximatives.

            • [^] # Arrêt de la polémique

              Posté par  . Évalué à -4.

              Au temps pour moi. Non, ces traductions ne pas insensées comme vous l'insinuez. Pour ma part, la polémique est close : ce n'est pas l'endroit (voyez plutôt le forum). De plus, je ne souhaite pas polémiquer. Que chacun assume ses choix.

  • # Caractéristiques de Linux From Scratch

    Posté par  . Évalué à 0.

    • Quelle est la différence entre une nouvelle distribution et un système LFS ?
    • Combien y a t'il de niveaux de maîtrise, en général ?

    Des distributions originales sont prises en charge par seulement quelques personnes (création, maintenance, aide…). Par exemple, Void Linux était majoritairement développée par un développeur et malgré le peu de contributeurs, Funtoo Linux se démarque de Gentoo Linux (une méta-distribution).

    • [^] # Re: Caractéristiques de Linux From Scratch

      Posté par  . Évalué à 0.

      Je suis aussi étonné par la structure du projet. J'ai l'impression que le projet consiste essentiellement à réaliser un manuel technique pour chaque variante du système. En fait, le lecteur ne définit pas un système personnalisé mais choisit un manuel particulier. En d'autres termes, on applique un protocole rigide plutôt que de suivre un guide d'installation.

    • [^] # Re: Caractéristiques de Linux From Scratch

      Posté par  . Évalué à 10.

      J'ai un peu de mal à comprendre le commentaire, mais j'espère pouvoir donner des précisions utiles.

      Je trouve la frontière assez floue entre « système LFS » et « nouvelle distribution inspirée par LFS ». En fait, si on se contente de suivre le guide, on arrive à un système assez difficile à maintenir, pas forcément très personnalisé et finalement, on trouve mieux ailleurs. Mais le véritable intérêt et la force de LFS, c'est justement de ne pas suivre le livre, mais de s'en éloigner pour voir ce que ça donne.

      Une petite anecdote : je voulais mieux comprendre comment fonctionnait le système d'initialisation, et pour rigoler, j'ai écrit un Makefile qui lancerait tout le système (vu que make sait gérer les dépendances et fait du parallélisme, ça ferait une version un peu améliorée de sysVinit). Du coup j'ai suivi le guide, mais au lieu d'installer sysVinit, j'ai installé mon Makefile (que j'ai astucieusement appelé /sbin/init, avec un shebang du style #!/bin/make -j5 -f) et hop. En redémarrant, ça a fonctionné.

      On peut aussi expérimenter avec d'autres aspects, comme la gestion des paquets, la chaîne de construction et d'autres trucs. En définitive, même si terminer un système LFS en suivant le livre à la lettre est gratifiant et très instructif, quand on l'a déjà fait une ou deux fois et qu'on est à l'aise avec les principes du livre, il est encore plus intéressant de se lancer sans filet et de voir ce que ça donne :). Ça permet aussi d'être très à l'aise avec les concepts manipulés par les distributions, et de contribuer directement. Sans LFS, je ne sais pas si j'aurais eu le courage de contribuer sur la distribution que j'utilise maintenant.

      Une autre différence majeure entre distribution et LFS, c'est l'absence de gestionnaire de paquets. Il faut vraiment beaucoup s'éloigner du livre pour arriver à un point où il devient facile de « partager » des paquets entre machines : construire sur une machine et obtenir la même chose sur l'autre (soit en partageant le binaire, soit en partageant la recette). Donc à mon avis, une distribution inspirée par LFS n'est pas un système LFS, mais comme je le disais, la frontière est très floue.

      • [^] # Re: Caractéristiques de Linux From Scratch

        Posté par  . Évalué à 2.

        Merci d'avoir répondu. Vos propos confirment mes doutes : le lecteur exploite systématiquement le manuel en reproduisant les même opérations sauf lorsqu'il s'agit d'expérimentations personnelles.

        • [^] # Re: Caractéristiques de Linux From Scratch

          Posté par  . Évalué à 3.

          Pour ce qui est de la construction du système, c'est le but. C'est avant tout pédagogique. À la fin, on peut évidemment configurer son système aux petits oignons (noyau avec les modules qui nous font plaisir, configuration des services, …) mais on peut faire cela sur n'importe quelle autre distribution. Le livre suivant, BLFS, propose un peu plus d'options avec des notions de dépendances facultatives : on peut ajouter telle ou telle fonctionnalité à tel ou tel paquet.

          Le système LFS brut est assez minimal, il y a assez peu de différence sur ces quelques paquets entre distributions de toute façon, en dehors de la version ou des différences entre les variantes de LFS. BLFS propose un choix beaucoup plus large et on peut créer son système avec les fonctionnalités que l'on souhaite, beaucoup plus finement que sur une distribution même comme Gentoo.

          • [^] # Re: Caractéristiques de Linux From Scratch

            Posté par  . Évalué à 0.

            Gentoo Linux et LFS ont des principes similaires, leurs organisations diffèrent, leurs communautés se ressemblent. Je suis persuadé qu'un expert Gentoo peut obtenir un contrôle équivalent à celui de LFS. Cependant, il faudrait sûrement concevoir un gestionnaire de paquets pour un usage mono-utilisateur. Toutefois, ces deux partis ont une orientation différente.

            Les développeurs Gentoo ont structuré leur activité par domaines de compétences. Par contre, je ne sais pas comment s'est organisée la communauté LFS. Toutefois, ce qui m'ennuie le plus avec LFS semble être l'absence d'utilitaires, de méthodes alternatives [How To Become A Hacker].

    • [^] # Re: Caractéristiques de Linux From Scratch

      Posté par  . Évalué à 2.

      Désolé d'arriver aussi tard dans le thread.

      Une distribution classique se dote généralement d'outils supplémentaires:
      - Outils de configuration, qui décrivent les différentes recettes pour construire les paquets (cela inclut les patches, la configuration par défaut, mais aussi une description des chaînes de dépendances)
      - Outils de build, qui savent lire la configuration, démêler les dépendances, éventuellement les isoler (par-exemple sur le système de build Yocto un sysroot ne contenant que tes dépendances est créé à la compilation de chaque paquet, pour garantir que tu n'utilises pas des choses provenant d'autres paquets)
      - Outils de packaging et de gestion de paquets
      - Et parfois d'autres choses sympas : infra de test, builds reproductibles… etc

      On notera qu'une différence importante est que le distributeur:
      - Apporte des modifications aux sources pour les packager spécifiquement pour sa distribution (parfois avec des effets délétères…)
      - Apporte une configuration par défaut et sa vision de l'intégration entre les composants logiciels
      - Choisit un découpage en paquets
      Il est important que la distribution vive, que chaque utilisateur puisse la configurer comme il le veut et installer les paquets qui lui plaisent en gardant la compatibilité avec toutes les autres installations.

      Sur un LFS (en tout cas tel que je l'ai fait il y a plus de dix ans…) tu obtiens un système relativement monolithique. Si LFS est distribué comme un système de build automatique (ALFS le fait si je me rappelle bien), cela le rapproche d'une distribution "classique" dans le sens où tout le monde obtient une image similaire et compatible, nonobstant la distribution par paquets… En revanche LFS reste très simple dans son intégration logicielle comparé à une distro prête pour la grande distribution, c'est ce qui la rend utile pour apprendre.

      • [^] # Re: Caractéristiques de Linux From Scratch

        Posté par  . Évalué à -1.

        La première partie est aussi valable pour un système LFS : configurer, construire, installer, vérifier, corriger. Je crois que ces tâches sont effectuées par le gestionnaire de paquets des distributions Linux.

        L'usage de ALFS pour élaborer systématiquement une distribution basée sur LFS me rend perplexe. Actuellement, je ne suis pas en capacité d'étudier les scripts. Diverses distributions sont générées automatiquement (Kikstart, Preseed).

        • [^] # Re: Caractéristiques de Linux From Scratch

          Posté par  . Évalué à 1.

          En effet, je ne crois pas que ALFS soit vraiment adapté pour créer une distribution. Le but de ce script est double : pour les utilisateurs qui ont déjà suivi le livre plusieurs fois et qui n'ont plus rien à y apprendre, et pour les développeurs qui peuvent alors vérifier rapidement si les instructions du livre fonctionnent.

          Si on veut faire sa propre distribution, je trouve qu'il vaut mieux utiliser un gestionnaire de paquets pour gérer les logiciels (dont la base de la distribution : la chaîne de compilation et tout). Si je dis ça, c'est qu'un bon gestionnaire de paquet propose des outils pour que les utilisateurs installent des paquets pré-compilés (ou les compiler soi-même, peu importe) mais aussi des outils pour les développeurs de la distribution, pour qu'ils puissent tester ou compiler les paquets qu'ils proposent à leurs utilisateurs. Il reste utile d'extraire les commandes depuis le livre vers des recettes séparées. La chaîne de bootstrap du début (le chapitre 5 en fait) est aussi une très bonne source d'inspiration pour démarrer sa distribution sur des bases saines. Mais ALFS fournit à la fin un système complet, en un seul gros morceau. C'est pas très propre je trouve.

          Contrairement à une distribution, LFS place ses utilisateurs dans le rôle de mainteneur de distribution. Chacun est libre de faire ses choix, de modifier sa « distribution » comme il l'entend. La simplicité (toute relative) de LFS par rapport à des solutions plus avancées (dpkg, ebuild, rpm, …), fait aussi sa force : on peut voir vraiment les rouages essentiels d'une distribution. En revanche, je déconseille d'utiliser au quotidien un système LFS sans y apporter quelques modifications : il y a une raison pour laquelle on a inventé les gestionnaires de paquets et pour laquelle on automatise la construction des paquets.

  • # elle est fesse

    Posté par  . Évalué à 0.

    j'avais un copain - qui me manque :-( - qui ne jurait que par elle : il se la taillait au petits oignons !
    bien qu'étant persuadé qu'il y a beaucoup à en apprendre, je n'ai jamais franchi le pas…

  • # Très formateur

    Posté par  . Évalué à 2.

    Installer Linux From Scratch est extrêmement formateur sur le fonctionnement du système et les imbrications entre les différents logiciels.

    On peut évidemment aller plus vite en lisant des articles sur l'utilité de tel ou tel package de programmes mais rien ne vaut les mains dans le cambouis pour avoir une vue précise de ce qui tourne sur nos machines machines quand on les utilise.

  • # Initiation à Linux From Scratch

    Posté par  . Évalué à -2.

    À mon avis, l'introduction originale du projet élude l'inadéquation potentielle entre les attentes des utilisateurs et leurs progressions effectives.

    LFS Book (section Prerequisites)

    Building an LFS system is not a simple task. It requires a certain level of existing knowledge of Unix system administration in order to resolve problems and correctly execute the commands listed.

    In particular, as an absolute minimum, […] ability to use the command line […].

    Because the LFS book assumes at least this basic level of skill […]

    LFS FAQ (current)

    If you've read the prerequisites and audience pages you know that the target audience of LFS are intermediate and advanced Linux users. Anybody who has a couple of months experience with Linux and especially the console should be able to successfully assemble an LFS system.

    While LFS seems like a good guide for newbies to Linux, the reality is actually quite different. […]

    LFS essential prereading (2004-12-28)

    Many people attempt to build LFS without sufficient understanding or experience with LINUX.

    Effectivement, une personne ayant des notions d'administration système n'est plus débutante. En bref, les propos sont contradictoires ou divergents.

    DistroWatch (2017-10-30)

    How do you do package management post-installation?

    LFS FAQ (current)

    Package management - beyond that provided by tarballs and makefiles - is beyond the scope of the book.

    LFS book (current)

    The goal of Linux From Scratch is to build a complete and usable foundation-level system.

    L'information est disponible pour tous mais est surtout accessible aux utilisateurs intermédiaires et avancés. Pour conclure, il faudrait réviser (clarifier) l'introduction.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.