Linux Tools · 7 min read · Jan 03, 2026
IHLFS : Contrôle total sur ce que vous installez
IHLFS : Vérifiez ce que vous installez (et plus)
Introduction
En tant qu’utilisateur de LFS (voir : Linux From Scratch), je m’intéresse aux paquets installés sur mon système.
Une courte introduction sur LFS : LFS n’est pas une distribution comme Suse ou RedHat, la communauté LFS vise à fournir un guide pour configurer votre propre système Linux. Sur le site Web, il est décrit très en détail comment vous pouvez construire votre propre système Linux à partir de zéro. Chaque paquet est installé en compilant et en installant la source.
Dans la communauté LFS, il y a eu des enquêtes sur la façon de suivre les paquets installés. Il n’existe pas encore d’outil de ce type.
Jhalfs, le dernier outil pour automatiser le processus de construction d’un système LFS, a la capacité d’utiliser Paco, (voir : paco.sf.net)..
Paco est basé sur le mécanisme LD_PRELOAD, la même technique est utilisée par exemple dans Gentoo. Cette technique semble prometteuse, mais présente des inconvénients sérieux.
J’ai cherché un autre moyen de suivre ce qu’une commande comme
make installfait sur mon système. J’ai trouvé cette solution, grâce à l’excellente idée de Pierre Hebert. Il décrit dans un howto dans la section “Hints” du site Web LFS ou d’un miroir (voir : Lire les indices en ligne, “TRIP, un packager TRIvial pour LFS (et d’autres systèmes linux)”) comment vous pouvez obtenir un contrôle total sur ce que fait une commande d’installation arbitraire. Avec cela, vous pouvez suivre chaque fichier ajouté, chaque modification et chaque fichier ou répertoire supprimé. Cela ne fonctionne pas seulement avec la commande “make install” mentionnée ci-dessus, mais peut également suivre tout ce qu’une commande comme RMP fait.
L’outil IHLFS que j’ai développé est très basique et est basé sur la même technique que TRIP. Il vous permet d’avoir un aperçu de l’apparence de votre système après avoir installé des fichiers ou un paquet entier ou quoi que ce soit que vous souhaitez ajouter à votre système. Si vous n’êtes pas satisfait de l’apparence des choses - par exemple, vous voulez que certaines parties soient installées à des endroits différents - vous pouvez toujours revenir en arrière.
Le nom IHLFS signifie :
Install Helper Linux From Scratch
Cela se fait en créant une copie exacte de votre système (une sorte de système virtuel). Dans cette copie, vous êtes complètement libre de faire ce que vous voulez, sans aucun effet sur le système original. À tout moment, l’utilisateur a le choix de “déplacer” ou “vider” les modifications du système virtuel vers le réel.
Une autre utilisation de cette technique est de créer un environnement pour un utilisateur, qui pense qu’il est dans un vrai système, et agit de cette manière. Mais en attendant, il peut faire ce qu’il veut, sans nuire au système réel.
Technique de base
Cela peut sembler magique, mais c’est en réalité juste possible en combinant certaines techniques parmi toutes celles disponibles pour Linux.
En utilisant le système de fichiers Unionfs, un chroot et quelques répertoires remontés judicieusement, vous pouvez configurer ce système virtuel.
Unionfs
La partie la plus importante est l’utilisation de unionfs. Unionfs vous donne la possibilité de créer un système de fichiers, qui est l’union d’au moins deux autres. Voir www.unionfs.org pour plus d’infos. Maintenant, en laissant le nouveau système de fichiers être l’union de notre système de fichiers original (la racine) en mode lecture seule, et d’un système de fichiers temporaire (le cache) en mode lecture-écriture, vous aurez un système de fichiers qui ressemble exactement à votre système de fichiers original, mais dans lequel vous pouvez modifier, supprimer et/ou ajouter des fichiers sans rien faire à votre système original. Cela n’est pas possible, car la racine est montée en lecture seule. Chaque modification est stockée par le unionfs dans le cache.
La seule différence entre le système original et le système nouvellement créé est le chemin : dans le nouveau système, il commence toujours par le chemin du point de montage de l’union. C’est pourquoi l’étape suivante est nécessaire.
Chroot
En chrootant à ce point de montage, vous entrez dans un environnement qui est absolument une copie de votre système. Vous pouvez faire ce que vous voulez, même supprimer des répertoires et des fichiers cruciaux. Testez-le ! Regardez jusqu’où vous pouvez aller avant que votre système ne se bloque.
(Re)Montage
Une chose supplémentaire que vous devrez faire est de (re)monter plusieurs répertoires cruciaux comme /dev, /proc et /sys. Cela est dû au fait que le système de fichiers union ne préserve pas les points de montage existants.
Il est également recommandé de remonter certains répertoires spéciaux comme /tmp. Ce répertoire est utilisé par le script de configuration et la commande make pour stocker des résultats temporaires intermédiaires. Vous ne voulez pas que le programme ihlfs enregistre cela comme des changements sérieux. Cela vaut également pour le répertoire où la source est construite.
Exigences
Bien sûr, vous aurez besoin d’une version récente de Linux. Consultez le site Web pour les noyaux qui sont pris en charge et la version de Unionfs dont vous avez besoin. Un noyau différent signifie une version différente de unionfs.
Votre noyau doit prendre en charge le chargement de modules.
De plus, une partition avec suffisamment d’espace pour monter le cache. À ce moment, il s’agit d’une partition séparée.
J’ai comparé les performances d’une construction dans mon système normal et dans le système virtuel, je n’ai vu aucune différence significative.
Enfin, IHLFS utilise des commandes qui devraient être présentes sur tout système Linux (comme tar, chroot, modprobe, mount, bash, find, grep et bzip2).
Installation
Téléchargez le paquet depuis mon site Web :
wget http://linux.bononline.nl/linux/ihlfs/src/ihlfs-1.0.tar.bz2Décompressez l’archive dans un répertoire approprié :
tar -xjf ihlfs-1.0.tar.bz2
cd ihlfs-1.0L’installation de ihlfs se fait via le
./install.shscript. Il crée simplement quelques répertoires et copie quelques fichiers.
Comment ça fonctionne
Avant de commencer, assurez-vous que le système de fichiers où le cache ira est monté. Et vérifiez les paramètres dans le fichier de configuration /etc/ihlfs/ihlfs.conf. Quand tout est en ordre, lancez le programme avec :
ih lfsVous recevrez quelques messages, et quand tout est en ordre, il affichera un prompt :
/:>Maintenant, vous pouvez entrer n’importe quelle commande que vous aimez. Notez que l’union ne prend pas en charge la préservation des points de montage. Cela peut provoquer des effets comme des répertoires sources qui sont montés là où vous construisez normalement votre logiciel ne sont pas disponibles.
Lorsque vous souhaitez voir les changements jusqu’à présent, tapez :
listCela montre un résumé des changements.
Lorsque vous souhaitez déplacer tous les changements du cache vers la racine, entrez :
flushCette commande crée également une sauvegarde des fichiers et des répertoires qui seront écrasés, modifiés ou supprimés et une sauvegarde de tout ce qui sera installé.
Supprimer tous les changements se fait via :
cleanEnfin, arrêter la session se fait avec :
quit ou exitExemples
Voici quelques exemples simples. Ajoutez un fichier :
~:>touch /tmp/test4ihlfs
~:>listdonne dans le visualiseur mcview :
Résumé.
--------
Aucun fichier et/ou répertoire ajouté, supprimé, modifié ou écrasé trouvé !C’est à prévoir, le répertoire /tmp contourne l’union.
Maintenant, créez un fichier ailleurs :
~:>touch /var/tmp/test4ihlfs
~:>listRésumé.
--------
Fichiers ajoutés.
------------
/var/tmp/test4ihlfsContact
Si vous trouvez des bugs ou avez une idée de la façon dont les choses pourraient être faites de manière meilleure, faites-le moi savoir ! Mon adresse e-mail est stef at bononline dot nl. Mais avant d’aller plus loin, je voudrais dire que je sais que la façon dont j’ai programmé les choses peut ne pas toujours être la plus efficace. J’ai fait cela délibérément. En ce qui concerne le style de programmation, je préfère la lisibilité facile à l’efficacité.
À FAIRE
Ce paquet n’est pas encore terminé. Quiconque sait quelque chose sur les gestionnaires de paquets peut les pointer :
mettre le choix de l’éditeur dans le fichier de configuration
maintenant ihlfs n’a qu’un seul mode : interactif. Il crée un environnement pour l’utilisateur. Un mode ligne de commande comme :
ih lfs --command "make install"devrait également être possible.
ajouter des drapeaux pour identifier le nom du paquet et la version à installer.
ajouter quelques exemples avec diverses commandes
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.