GoboLinux geht seit 2003 mit einer eigenen Dateisystemhierarchie ganz eigene Wege. Sinnvoll oder unsinnig?
Mittlerweile respektieren fast alle Distributionen den seit 1993 genutzten Filesystem Hierarchy Standard (FHS [1]). So erscheint er als der Heilige Gral für das Layout der Verzeichnisse. Dabei stammen die Grundlagen aus der frühen Unix-Zeit, als Dennis Ritchie und Ken Thompson 1969 der Platz auf einer heute vergleichsweise winzigen 512-KByte-Festplatte ausging.
Geänderte Wurzel
Da sich im Laufe der Unix-Entwicklung das Wurzelverzeichnis auf zwei kleine Festplatten verteilte, musste sich auf der ersten Platte alles Nötige im Zugriff befinden, um beim Booten /usr einzuhängen. Das führte dazu, dass sich Verzeichnisse wie /bin, /lib und /sbin sowohl direkt unter der Wurzel fanden als auch noch einmal unter /usr. Diese unnötige Komplexität löste sich erst in jüngster Zeit durch die Umsetzung des Usrmerge bei den Distributionen etwas auf [2].
Es gab aber schon vor fast zwei Jahrzehnten Distributionen, die den FHS komplett infrage stellten und eigene Wege gingen. Das seit 2003 entwickelte GoboLinux [3] startete im gleichen Jahr wie NixOS [4], das ebenfalls nicht den Vorgaben des FHS folgt. GoboLinux setzte bereits damals als allererste Distribution überhaupt den Usrmerge um – bei Fedora geschah das erst 2012, bei Debian 2017.
Vor einigen Monaten erschien GoboLinux 017, das als Grundlage für diesen Rundgang dient.
Alles in einem
Während sich beim Einsatz des FHS die Dateien installierter Anwendungen über das gesamte System verteilen, finden Sie bei GoboLinux alle Teile von Firefox in einem Unterverzeichnis namens Firefox/, samt der Versionsangabe unter /Programs (Abbildung 1). Die Version spielt deswegen eine Rolle, weil Sie mit GoboLinux mehrere Versionen von Anwendungen oder Bibliotheken nebeneinander vorhalten und ausführen können.

Abbildung 1: Links ein Ausschnitt aus dem Verzeichnis /Programs, in dem GoboLinux alle installierten Anwendungen in Unterordnern ablegt, rechts ein Blick auf den Dateibaum: Alle gewohnten Verzeichnisse einer Installation bestehen lediglich aus Symlinks.
Diese abgeänderte Verzeichnishierarchie versöhnen die Entwickler über Symlinks mit dem FHS. Ein Blick in /System/Index/ zeigt zumindest teilweise den gewohnten Anblick der Dateistruktur. Software installieren Sie durch Entpacken in ein Verzeichnis unter /Programs. Anschließend aktivieren Sie sie über das Setzen von symbolischen Links, die den herkömmlichen Dateibaum des FHS abbilden.
Analog deinstallieren Sie eine Anwendung, indem Sie den entsprechenden Ordner löschen. Die Synchronisation zwischen dem Index der Paketverwaltung und dem Dateisystem bleibt dabei stets gewährleistet. Für eine nicht mehr vorhandene Anwendung deklariert das System den symbolischen Link als broken, also als kaputt.
Bei GoboLinux übernimmt also das Dateisystem die Arbeit des Paketmanagers. Welche Vorzüge und Nachteile das bringt, zeigt sich im Verlauf der täglichen Arbeit.
Nach Rezept
Bevor es aber an den praktischen Einsatz geht, gilt es, sich mit einer unverzichtbaren Zutat vertraut zu machen: den sogenannten Rezepten. Die GoboLinux-Maintainer liefern auf den Abbildern nur ein Minimum des Bestands an Software aus. Da das System auf Linux From Scratch (LFS) [5] aufbaut, ist es notwendig, alle nicht vorinstallierten oder als Binary verfügbaren Pakete zur Laufzeit zu bauen.
Hier kommen die Rezepte ins Spiel: Sie liefern dem Skript Compile die notwendigen Informationen, um ein Paket zu erstellen (Abbildung 2). In den Rezepten steht etwa, wo sich der Quellcode befindet und welches Build-Skript zum Bauen dient. Das Kommando Compile lädt den Quellcode herunter, entpackt und kompiliert ihn, und installiert den resultierenden Code. Dazu genügt der Befehl sudo Compile Paket. Zum Erstellen eigener Rezepte steht das Skript ContributeRecipe bereit.

Abbildung 2: Ähnlich wie im AUR von Arch Linux handelt es sich bei Rezepten unter GoboLinux um Bauanweisungen für Anwendungen – hier etwa für die ehemalige KDE-Vorzeigeanwendung Amarok.
Derzeit gibt es auf Github rund 3700 Rezepte [6]. Die erste Ansicht schneidet die Liste allerdings nach 1000 Einträgen ab. Außerdem bietet GoboLinux keine Suche nach Rezepten. Der einfachste Weg, um sich einen Überblick zu verschaffen, besteht darin, die Liste herunterzuladen und lokal zu pflegen (Abbildung 3).

Abbildung 3: Alle Rezepte finden sich auf Github, von wo Compile sie herunterlädt. Die Liste enthält rund 3700 Einträge. Um einen kompletten Überblick zu erhalten, sollten Sie sie lokal speichern.
Ein weiterer großer Unterschied zwischen GoboLinux und den meisten Distributionen liegt darin, dass es statt eines herkömmlichen Init-Systems wie SysVinit eigene Skripte verwendet. Unter /System/Settings/BootScripts finden Sie einige Dateien, die die gesamte Boot-Prozedur steuern: BootUp und Shutdown laufen beim Booten respektive Herunterfahren des Systems.
Es besteht die Möglichkeit, benutzerdefinierte Skripte einzurichten, um verschiedene Arten der Initialisierung des Systems festzulegen und über das Bootloader-Menü zu steuern. Auf diese Weise lassen sich ähnliche Zustände wie Runlevels erzeugen, üblicherweise Single und Multi für Einzel- und Mehrbenutzersysteme. GoboLinux gibt lediglich Console und Graphics vor.
Immer schlanker
In Sachen Desktop-Umgebungen verschlankte sich Gobo seit 2003 kontinuierlich. Zu Anfang lieferte der Distributor das System noch mit dem damals recht ressourcenhungrigen KDE 3 aus, gefolgt vom leichteren Enlightenment bis hin zum seit 2015 ausgelieferten Fenstermanager Awesome. Gleiches gilt bei den Anwendungen: Waren früher eine Bürosuite, eine Bildbearbeitung und vieles Weitere vorinstalliert, so erscheint Gobo in jüngerer Zeit mit sehr limitiertem Umfang.
Mit der aktuellen Version haben die Entwickler den Umgang mit den Rezepten vereinfacht. Diese liegen jetzt alle im bereits erwähnten Git-Repository, beim Erstellen einer Anwendung klont das System sie nach /Data/Compile/Recipes/ auf die Festplatte. Ansonsten nimmt GoboLinux 017 Abschied von Python 2 und GTK 2. Die Entwickler bieten nur ein Live-Abbild mit Installer für x86_64-Systeme an, das rund 1,9 GByte auf die Waage bringt [7].
Spartanisch
Nach dem Start und der Abfrage von Sprache und Tastaturlayout landen Sie im Terminal und erfahren, dass es von dort mit einem textbasierten Installer weitergeht (Abbildung 4). Die Eingabe von startx führt in die grafische Umgebung und den Fenster-Manager Awesome. Oben links öffnen Sie das spartanische Menü. Daneben finden Sie den Pager mit vier virtuellen Desktops.

Abbildung 4: Beim Start des Live-Systems startet zunächst ein Terminal. Hier rufen Sie direkt den Textinstaller auf oder wechseln in die grafische Umgebung.
Die einzigen weiteren Bedienelemente befinden sich in einer kleinen Leiste rechts oben und enthalten die aktuell hinzugekommene Bluetooth-Unterstützung sowie Anzeigen und Regler für die Internet-Verbindung, den Akku, die Anzeigehelligkeit, die Lautstärke sowie Datum und Uhrzeit (Abbildung 5).

Abbildung 5: Der Fenstermanager Awesome bietet neben den Modi Floating und Tiling auch Stacking sowie verschiedene Darstellungsvarianten, die Sie über das Menü erreichen.
Der oberste Punkt links im Menü widmet sich Awesome. Vorinstalliert bringt GoboLinux Firefox, Audacious, Rawtherapee, Gparted, Htop, Vim, Gvim, eine Druckerverwaltung und den X11-Compositor Compton mit. Darüber hinaus stellt die Distribution viele kleinere Tools bereit, die das System zusammenhalten. Es gibt jedoch keinen grafischen Texteditor, keinen Dateimanager, kein Kontrollzentrum und auch keinen Systemmonitor (Abbildung 6).

Abbildung 6: Da GoboLinux keinen grafischen Dateimanager mitbringt, war dies eine gute Gelegenheit, das Erstellen von Apps zu testen. Mit XFE kam über die Rezepte ein schlanker Dateimanager ins System.
Lassen Sie sich auf Gobo ein, erwarten die Entwickler, dass Sie wissen, wie Sie das System über die Kommandozeile verwalten. Als Shell kommt die Z-Shell zum Einsatz, mit chsh -s /bin/bash schalten Sie auf die Bash um. Fällt Ihnen die Entscheidung zwischen beiden schwer, hilft Ihnen ein Vergleich aus LU 01/2021 weiter [8].
Awesome
Wenn Sie Zsh bereits kennen oder kennenlernen möchten, greifen Sie auf eine der fertigen Konfigurationsdateien aus dem Netz zurück. Gleiches gilt für den auf Tiling, Stacking und Floating ausgelegten Fenster-Manager Awesome, dessen Konfiguration unter ~/.config/awesome/rc.lua sich ohne Kenntnisse der Sprache Lua schwierig gestaltet.
Sie steuern Awesome über Key-Bindings und bedienen ihn so vollständig über die Tastatur. Als Dreh- und Angelpunkt dient dabei standardmäßig die Super-Taste, die das System intern als Mod4 referenziert. Wie so oft erweist sich sowohl bei Zsh als auch bei Awesome das Arch Linux Wiki als guter Einstiegspunkt [9].
Auch dürfte inzwischen klar sein, dass eine Abfrage der Verzeichnisse etwa mit ls / nicht /etc, /bin, /usr oder /var ergibt. Es fördert vielmehr die Verzeichnisse /Depot, /Files, /Mount, /Programs, /System und /Users zutage. Was diese Verzeichnisse im Einzelnen enthalten, fasst die Tabelle “Verzeichnisstruktur von GoboLinux” zusammen.
|
Verzeichnis |
Zweck |
|---|---|
|
|
Systemdateien, Index, Binärdateien und Kernel. |
|
|
Alle Programme, abgelegt in eignen Ordnern. |
|
|
Home-Ordner (inklusive |
|
|
Enthält |
|
|
Mount-Verzeichnis, entspricht |
Das System arbeitet insofern transparent, als Sie bei der Eingabe von ls /etc und ls /System/Settings dieselbe Ausgabe erhalten. Das Verstecken des FHS steuern die Entwickler über das Kernel-Modul GoboHide. In dessen Konfiguration legen Sie fest, was der Benutzer sieht und was nicht.
Karger Installer
Die Installation erfolgt entweder aus dem Terminal heraus, indem Sie dort Installer eingeben, oder aus der grafischen Oberfläche über den Menüpunkt System Tools | GoboLinux installieren. Die beiden Wege unterscheiden sich lediglich durch die jeweilige Nutzeroberfläche und führen mit wenigen Optionen durch die nicht länger als fünf Minuten dauernde Installation.
Als Dateisystem bietet der Installer nur Ext4 an. Auf einen Bootloader verzichten Sie entweder oder installieren ihn auf sda1. Falls bereits eine andere Distribution einen Bootloader bereitstellt, nutzen Sie vorzugsweise diesen, indem Sie nach der Installation von GoboLinux in die entsprechende Distribution booten und dort den Befehl sudo update grub absetzen. Falls noch keine Partition bereitsteht, weist der Installer darauf hin, dass Sie zunächst eine gültige Partition mit Gparted oder Cfdisk erstellen müssen. (Abbildung 7)

Abbildung 7: Der einfach gestrickte Installer von GoboLinux überlässt es Anwendungen wie Gparted oder Cfdisk, eine Partition zu erstellen. Falls eine Partition vorliegt, formatiert er sie auf Wunsch mit dem Dateisystem Ext4.
Ein Reboot ohne Installationsmedium erlaubt dann die Auswahl von GoboLinux und führt wiederum ins Terminal, wo sie entweder bleiben oder per startx zur grafischen Ebene wechseln.
Die Installation einer Desktop-Umgebung sieht Gobo nicht vor. Es steht Ihnen aber frei, Plasma, Gnome oder Ihren Favoriten selbst zu bauen. Dabei dürfte aber selbst langjährigen Gentoo-Nutzern die Lust vergehen, denn die Abhängigkeiten müssen Sie zum Teil von Hand installieren oder – was öfter vorkommt – zunächst bauen. Für LXDE liegt ein Rezept vor.
Compile funktionierte im Test einmal, verweigerte auf zwei anderen Rechnern danach aber den Dienst, da das Repository auf Github nicht zu erreichen war. Das Kopieren der Rezepte nach /Data/Compile/Recipes behob das Problem.
Fazit
GoboLinux lässt sich mit zwei unterschiedlichen Ansätzen erkunden: entweder über das Ausprobieren am Live-Betrieb oder in der installierten Variante. Das System mit seiner unterschiedlichen Herangehensweise lädt geradezu dazu ein, es spielerisch kennenzulernen. Der zweite Ansatz führt über das Lesen der exzellenten Dokumentation [10]. Sie erläutert die weltanschaulichen und technischen Hintergründe, beantwortet in den FAQ häufig gestellte Fragen und bietet Anleitungen im Wiki.
Als täglicher Begleiter eignet sich GoboLinux – auch nach Aussage der Entwickler – eher für erfahrene Linux-Anwender, die häufig im Terminal arbeiten und denen es Spaß macht, sich einen Fenstermanager wie Awesome gefügig zu machen. Darüber hinaus bietet GoboLinux mit einem Blick über den Tellerrand einen Eindruck davon, was passiert, wenn unumstößlich gehaltene Paradigmen für neue Ideen Platz machen. (tle)
Infos
-
FHS: https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
-
Usrmerge: Ferdinand Thommes, “Zusammengefasst”, LU 08/2019, S. 94, https://www.linux-community.de/42078
-
GoboLinux: https://www.gobolinux.org/
-
NixOS: https://nixos.org
-
Linux From Scratch (LFS): http://www.linuxfromscratch.org/
-
Rezepte: https://github.com/gobolinux/Recipes
-
GoboLinux herunterladen: https://gobolinux.org/downloads.html
-
Bash vs. Zsh: Harald Zisler, “Kopf-an-Kopf-Rennen”, LU 01/2021, S. 20, https://www.linux-community.de/43879
-
Arch-Wiki: https://wiki.archlinux.org/index.php/awesome
-
GoboLinux-Dokumentation: https://gobolinux.org/documentation.html





