Linux Tools · 6 min read · Jan 03, 2026
IHLFS: Vollständige Kontrolle über das, was Sie installieren
IHLFS: Überprüfen Sie, was Sie installieren (und mehr)
Einführung
Als LFS (siehe: Linux From Scratch) Benutzer interessiere ich mich dafür, welche Pakete auf meinem System installiert sind.
Eine kurze Einführung in LFS: LFS ist keine Distribution wie Suse oder RedHat, die LFS-Community hat sich zum Ziel gesetzt, eine Anleitung zur Einrichtung Ihres eigenen Linux-Systems bereitzustellen. Auf der Website wird sehr detailliert beschrieben, wie Sie Ihr eigenes Linux-System von Grund auf neu erstellen können. Jedes Paket wird durch Kompilieren und Installieren des Quellcodes installiert.
In der LFS-Community gab es Untersuchungen, wie man den Überblick über die installierten Pakete behalten kann. Momentan gibt es noch kein solches Tool.
Jhalfs, das neueste Tool zur Automatisierung des Prozesses zum Erstellen eines LFS-Systems, hat die Fähigkeit, Paco zu verwenden, (siehe: paco.sf.net)..
Paco basiert auf dem LD_PRELOAD-Mechanismus, die gleiche Technik wird beispielsweise in Gentoo verwendet. Diese Technik sieht vielversprechend aus, hat aber einige ernsthafte Nachteile.
Ich habe nach einer anderen Möglichkeit gesucht, um nachzuvollziehen, was ein Befehl wie
make installauf meinem System bewirkt. Ich habe diese Lösung gefunden, dank der hervorragenden Idee von Pierre Hebert. Er beschreibt in einem Howto im Abschnitt “Hinweise” der LFS-Website oder eines Spiegels (siehe: Hinweise online lesen, “TRIP, ein TRIvial Packager für LFS (und andere Linux-Systeme)”) wie Sie vollständige Kontrolle darüber erlangen können, was ein beliebiger Installationsbefehl bewirkt. Damit können Sie jede hinzugefügte Datei, jede Modifikation und jede gelöschte Datei oder Verzeichnis nachverfolgen. Es funktioniert nicht nur mit dem oben genannten Befehl “make install”, sondern kann auch alles nachverfolgen, was ein Befehl wie RMP tut.
Das Tool IHLFS, das ich entwickelt habe, ist sehr einfach und basiert auf der gleichen Technik wie TRIP. Es ermöglicht Ihnen, eine Vorschau darauf zu erhalten, wie Ihr System aussehen wird, nachdem Sie Dateien oder ein ganzes Paket oder was auch immer Sie zu Ihrem System hinzufügen möchten, installiert haben. Wenn Sie mit dem Aussehen der Dinge nicht zufrieden sind - zum Beispiel, wenn Sie möchten, dass Teile an anderen Orten installiert werden - können Sie jederzeit zurückgehen.
Der Name IHLFS steht für:
Install Helper Linux From Scratch
Dies geschieht, indem eine exakte Kopie Ihres Systems erstellt wird (eine Art virtuelles System). In dieser Kopie sind Sie völlig frei in dem, was Sie tun, ohne dass dies Auswirkungen auf das ursprüngliche System hat. Jederzeit hat der Benutzer die Wahl, die Änderungen vom virtuellen System in das reale zu “verschieben” oder “zu leeren”.
Ein weiterer Anwendungsfall für diese Technik besteht darin, eine Umgebung für einen Benutzer zu schaffen, der denkt, er sei in einem echten System, und sich auch so verhält. Aber in der Zwischenzeit kann er tun, was er möchte, ohne dem echten System Schaden zuzufügen.
Grundtechnik
Das mag wie Magie erscheinen, ist aber in Wirklichkeit nur möglich, indem einige Techniken kombiniert werden, die für Linux verfügbar sind.
Durch die Verwendung des Dateisystems Unionfs, eines chroot und einiger gut gewählter neu gemounteter Verzeichnisse können Sie dieses virtuelle System einrichten.
Unionfs
Der wichtigste Teil ist die Verwendung von unionfs. Unionfs gibt Ihnen die Möglichkeit, ein Dateisystem zu erstellen, das die Vereinigung von mindestens zwei anderen ist. Siehe www.unionfs.org für weitere Informationen. Indem Sie das neue Dateisystem als die Vereinigung unseres ursprünglichen Dateisystems (des Wurzelverzeichnisses) im Nur-Lese-Modus und eines temporären Dateisystems (des Caches) im Lese-Schreib-Modus festlegen, erhalten Sie ein Dateisystem, das genau wie Ihr ursprüngliches Dateisystem aussieht, in dem Sie jedoch Dateien ändern, löschen und/oder hinzufügen können, ohne etwas an Ihrem ursprünglichen System zu tun. Dies ist nicht möglich, da das Wurzelverzeichnis schreibgeschützt gemountet ist. Jede Modifikation wird von unionfs im Cache gespeichert.
Der einzige Unterschied zwischen dem ursprünglichen und dem neu erstellten System ist der Pfad: Im neuen System beginnt er immer mit dem Pfad des Mountpoints der Union. Deshalb ist der nächste Schritt notwendig.
Chroot
Durch das Chrooten zu diesem Mountpoint betreten Sie eine Umgebung, die eine exakte Kopie Ihres Systems ist. Sie können tun, was Sie möchten, sogar wichtige Verzeichnisse und Dateien entfernen. Testen Sie es! Sehen Sie, wie weit Sie gehen können, bevor Ihr System stecken bleibt.
(Re)Mounting
Eine zusätzliche Sache, die Sie tun müssen, ist das (Re)mounten mehrerer wichtiger Verzeichnisse wie /dev, /proc und /sys. Dies liegt daran, dass das Union-Dateisystem vorhandene Mountpunkte nicht beibehält.
Es wird auch empfohlen, einige spezielle Verzeichnisse wie /tmp neu zu mounten. Dieses Verzeichnis wird vom Konfigurationsskript und dem Make-Befehl verwendet, um temporäre Zwischenergebnisse zu speichern. Sie möchten nicht, dass das ihlfs-Programm diese als ernsthafte Änderungen registriert. Das gilt auch für das Verzeichnis, in dem der Quellcode erstellt wird.
Anforderungen
Natürlich benötigen Sie eine aktuelle Linux-Version. Suchen Sie auf der Website nach den unterstützten Kerneln und der Version von Unionfs, die Sie benötigen. Ein anderer Kernel bedeutet eine andere Version von unionfs.
Ihr Kernel muss das Laden von Modulen unterstützen.
Außerdem benötigen Sie eine Partition mit ausreichend Speicherplatz, um den Cache zu mounten. Momentan ist dies eine separate Partition.
Ich habe die Leistung eines Builds in meinem normalen System und im virtuellen System verglichen und keinen signifikanten Unterschied festgestellt.
Schließlich verwendet IHLFS Befehle, die auf jedem Linux-System vorhanden sein sollten (wie tar, chroot, modprobe, mount, bash, find, grep und bzip2).
Installation
Laden Sie das Paket von meiner Website herunter:
wget http://linux.bononline.nl/linux/ihlfs/src/ihlfs-1.0.tar.bz2Entpacken Sie das Archiv in ein geeignetes Verzeichnis:
tar -xjf ihlfs-1.0.tar.bz2
cd ihlfs-1.0Die Installation von ihlfs erfolgt über das
./install.shSkript. Es erstellt einfach einige Verzeichnisse und kopiert einige Dateien.
Wie funktioniert es
Bevor Sie starten, stellen Sie sicher, dass das Dateisystem, in dem der Cache gespeichert wird, gemountet ist. Und überprüfen Sie die Einstellungen in der Konfigurationsdatei /etc/ihlfs/ihlfs.conf. Wenn alles in Ordnung ist, starten Sie das Programm mit:
ihlfsSie erhalten einige Nachrichten, und wenn alles in Ordnung ist, wird eine Eingabeaufforderung angezeigt:
/:>Jetzt können Sie jeden Befehl eingeben, den Sie möchten. Beachten Sie, dass die Union das Beibehalten von Mountpunkten nicht unterstützt. Dies kann dazu führen, dass Quellverzeichnisse, die dort gemountet sind, wo Sie normalerweise Ihre Software erstellen, nicht verfügbar sind.
Wenn Sie die bisherigen Änderungen sehen möchten, geben Sie ein:
listDies zeigt eine Zusammenfassung der Änderungen.
Wenn Sie alle Änderungen vom Cache in das Wurzelverzeichnis verschieben möchten, geben Sie ein:
flushDieser Befehl erstellt auch ein Backup der Dateien und Verzeichnisse, die überschrieben, modifiziert oder gelöscht werden, sowie ein Backup von allem, was installiert werden soll.
Das Entfernen aller Änderungen erfolgt über:
cleanSchließlich beenden Sie die Sitzung mit:
quit oder exitBeispiele
Hier einige einfache Beispiele. Fügen Sie eine Datei hinzu:
~:>touch /tmp/test4ihlfs
~:>listzeigt im Viewer mcview:
Zusammenfassung.
--------
Es wurden keine hinzugefügten, gelöschten, modifizierten oder überschriebenen Dateien und/oder Verzeichnisse gefunden!Das ist zu erwarten, das /tmp-Verzeichnis umgeht die Union.
Jetzt erstellen Sie eine Datei an einem anderen Ort:
~:>touch /var/tmp/test4ihlfs
~:>listZusammenfassung.
--------
Hinzugefügte Dateien.
------------
/var/tmp/test4ihlfsKontakt
Wenn Sie Fehler finden oder eine Idee haben, wie Dinge besser gemacht werden könnten, lassen Sie es mich bitte wissen! Meine E-Mail-Adresse ist stef at bononline dot nl. Aber bevor Sie weitergehen, möchte ich sagen, dass ich weiß, dass die Art und Weise, wie ich die Dinge programmiert habe, nicht immer die effektivste ist. Ich habe dies absichtlich getan. Wenn es um Programmstil geht, bevorzuge ich leicht lesbar über Effektivität.
TODO
Dieses Paket ist noch nicht fertig. Jeder, der etwas über Paketmanager weiß, kann darauf hinweisen:
Wählen Sie den Editor in der Konfigurationsdatei aus
Jetzt hat ihlfs nur einen Modus: interaktiv. Es erstellt eine Umgebung für den Benutzer. Ein Befehlszeilenmodus wie:
ihlfs --command "make install"sollte ebenfalls möglich sein.
Fügen Sie Flags hinzu, um den Paketnamen und die Version zu identifizieren, die installiert werden.
Fügen Sie einige Beispiele mit verschiedenen Befehlen hinzu
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.