Init Freedom: GNU Guix

Mi, 22. Dezember 2021, Niklas

GNU Guix ist eine GNU/Linux Distribution, die vom GNU Projekt selbst entwickelt wird und ein ganz unkonventionelles Konzept der Paketverwaltung mitbringt. Die Distribution nutzt den Linux-libre Kernel und das GNU Shepherd Init System. Die Treiberverfügbarkeit ist aufgrund des Linux-libre Kernels eingeschränkter als bei anderen Distributionen, dafür wird aber nur 100 % freier Code verwendet.
Achtung NixOS Fans: GNU Guix hat sich stark von NixOS inspirieren lassen, wer also von NixOS begeistert ist, sollte hier unbedingt weiterlesen.

GNU Guix lässt sich wahlweise manuell über das Terminal oder über ein Installationsprogramm installieren. Da ich die Distribution nur für einen kurzen Test benötige, habe ich mich für die unkomplizierte Variante über das Installationsprogramm entschieden. Dieses kommt ohne X Server aus, sondern stellt ein User Interface direkt im Terminal dar und wird mit der Tastatur bedient. Trotzdem ist es übersichtlich und meiner Einschätzung nach einfach zu bedienen.

Die Installation ist wahlweise mit oder ohne Internetzugang möglich, mit Internetzugang habe ich die Möglichkeit, zusätzliche Pakete direkt bei der Systeminstallation mitzuinstallieren. Hierzu zählt auch die Auswahl des Desktops. Die meisten bekannten Desktopumgebungen werden angeboten, ich entscheide mich hier für Enlightenment.

Nach der Installation starte ich den Computer neu und sehe... nur einen schwarzen Bildschirm. Mit Strg+Alt+F2 wechsle ich ins Vollbildterminal und schaue mir das Xorg Log an. Scheinbar sind Xorg und der AMD Grafiktreiber in verschiedenen, inkompatiblen Versionen installiert. Merkwürdig. Ich fahre GNU Guix wieder herunter und probiere den fertig installierten USB-Stick nochmal mit einem Computer mit Nvidia Grafikkarte.

GNU Guix bootet weiterhin innerhalb weniger Sekunden, obwohl dieser Computer nur USB 2.0 Anschlüsse hat. Von der Performance bin ich beeindruckt. Hier startet nun auch Xorg und das grafische Anmeldeprogramm, GDM. Ich logge mich ein, alles funktioniert wie erwartet, bis auf die Tatsache, dass kaum Programme vorinstalliert sind, nicht mal ein grafischer Terminalemulator.

Mit guix install terminology im Vollbildterminal (Strg+Alt+F2) installiere ich mir das zum Enlightenment Desktop passende Terminal Programm. Das geht hier sogar ganz ohne sudo: Bei Guix kann jeder Benutzer eigene Pakete installieren, ohne dafür Root Rechte zu brauchen. Diese werden dann in einem Unterordner des Home Verzeichnisses verlinkt. Gespeichert wird alles an einem Platz - Wenn 20 Benutzer das gleiche Programm installieren, wird der Speicherplatz für dieses also nicht 20 Mal verbraucht, sondern trotzdem nur einmal. Verschiedene Nutzer können das gleiche Programm auch in verschiedenen Versionen installieren. Dann wird es in verschiedenen Ordnern gespeichert. Die verschiedenen Versionen behindern sich nicht gegenseitig.

Das Angebot im Repository von Guix ist riesig, laut Webseite sind aktuell 19542 Pakete gelistet. Damit übertrifft es sogar Arch Linux mit 12343 Paketen, das den Ruf hat, fast jedes Programm direkt im offiziellen Repository anzubieten. Die Pakete werden auf der Webseite alphabetisch aufgelistet oder können im Terminal mit guix search [suchbegriff] gesucht werden. Bei Guix sind jedoch ausschliesslich freie Programme zu finden. Statt Firefox wird beispielsweise GNUs eigener Fork IceCat angeboten, statt Chrome gibt es Ungoogled Chromium.

GNU Guix eignet sich sowohl für normale Computer, als auch für Server. Beliebte Webserver wie lighttpd und nginx sind vorhanden, ebenso gängige Programmiersprachen-Interpreter wie PHP, Python oder Ruby und sogar Synapse (Matrix Server) oder Prosody (Jabber/XMPP Server) lassen sich ganz einfach installieren.

Es handelt sich hierbei um eine Rolling Release Distribution. Durch ihren besonderen Paketmanager ist sie trotzdem stabil genug für einen Server: Wenn etwas schiefgeht, lassen sich Updates einfach rückgängig machen und ältere Zustände wiederherstellen. Wenn der Updateprozess unterbrochen wird, beispielsweise durch einen Absturz, kann nichts kaputtgehen: Nur erfolgreich beendete Transaktionen werden angewendet.

Wie oben bereits angedeutet, ist GNU Guix und insbesondere der Paketmanager, der übrigens auch auf anderen Distributionen installiert werden kann, stark von NixOS inspiriert. Der Paketmanager nutzt sogar Teile des Nix Codes, die Konfiguration und die Paketrezepte sind bei Guix allerdings in der Sprache GNU Guile Scheme geschrieben. Auch GNU Guix nutzt ein funktionales Modell und speichert seine Pakete in einer ähnlichen Verzeichnisstruktur, /gnu/store statt /nix/store. Wer bereits mit NixOS gearbeitet hat, wird also sicherlich viel Freude mit GNU Guix haben.

GNU Guix herunterladen

Fazit: GNU Guix hat meine Erwartungen erfüllt. Es ist ein sehr spannendes Projekt, für das man sich aber auch mehr Zeit nehmen müsste, um es wirklich richtig zu verstehen. Wenn man das Glück hat, ein Gerät zu haben, bei dem der Linux-libre Kernel alle Treiber unterstützt, lohnt sich das Ausprobieren auf jeden Fall. Insbesondere NixOS Fans werden hier begeistert sein.

Quellen: