GNU-Distribution Guix System im Test

Aus LinuxUser 10/2022

GNU-Distribution Guix System im Test

© Bruce Parrott / 123RF.com

Befreit!

Die GNU-Distribution Guix System glänzt mit reichlichen Neuerungen, guter Dokumentation, einfachem Handling und hoher Flexibilität.

Die Mehrzahl der aktiven Linux-Distributionen setzt auf bewährte Technologien und basiert häufig auf anderen Linux-Derivaten. Signifikante Weiterentwicklungen finden eher abseits dieses Mainstreams statt. Das bereits seit rund zehn Jahren erhältliche Guix System [1] oder kurz Guix, seit 2015 vom GNU-Projekt betreut, kommt mit zahlreichen Neuerungen, die in der aktuellen Version 1.3.0 erstmals den Desktop betreffen.

Guix gibt es in zahlreichen Varianten: Neben einer Version für ältere 32-Bit-Hardware pflegen die Entwickler ein Image für moderne 64-Bit-Systeme. Diese Abbilder mit einem Umfang von lediglich rund 610 MByte lassen problemlos selbst auf eine CD transferieren. Zusätzlich bietet das Projekt ein Paket für den Einsatz in einer virtuellen QEMU-Umgebung auf 64-Bit-Systemen an.

Der in Guix System integrierte Paketmanager GNU Guix lässt sich in Form eines Tarballs mit Binärdateien als zusätzliches Paketverwaltungssystem in die gängigen Linux-Derivate integrieren. Es gibt ihn für alle gängigen Intel-, AMD- und ARM-Architekturen. Dabei stehen auch für ARM-Systeme wie den Raspberry Pi Tarballs für 32- und 64-Bit-Systeme zum Herunterladen zur Verfügung [2].

Die Distribution Guix enthält neben der Paketverwaltung noch weitere Neuerungen: So bringt sie weder Systemd noch Upstart als Init-System mit, sondern setzt mit GNU Shepherd auf den Prozessdienst des Mikro-Kernels GNU Hurd. Als Betriebssystemkern kommt der Linux-Libre-Kernel ohne proprietäre Software-Blobs zum Einsatz. Die Paketverwaltung unterstützt neben unprivilegierten Installationen auch transaktionale Aktualisierungen und Downgrades.

Wegen der fehlenden proprietären Blobs unterstützt der komplett auf freiem Code aufbauende Linux-Libre-Kernel allerdings zahlreiche Hardwarekomponenten nicht richtig oder gar nicht. Dieses Manko fällt besonders bei WLAN-Adaptern mit Intel- oder Realtek-Chipsätzen auf. Meist problemlos funktionieren hingegen Adapter von Atheros. Auch einige WWAN-Adapter funktionieren nicht mit Guix, da sie proprietäre Firmware-Blobs benötigen. Daher sollten Sie dem System bei der Inbetriebnahme von Guix einen kabelgebundenen Zugang ins Internet bereitstellen, um Zugriff auf die Server des Projekts zu erhalten.

Installation

Nach dem Herunterladen des hybriden Abbilds, das Sie entweder von einem optischen Datenträger oder einem USB-Stick nutzen, starten Sie in einen schnörkellosen Grub-Bootmanager mit nur einer Option: der Installation des Systems auf einem Massenspeicher. Einen Live-Modus sieht die Distribution nicht vor.

Anders als ältere Varianten bringt die aktuelle Version einen Installationsassistenten mit, der das System zügig auf den Massenspeicher transferiert. Nach dem Start des Assistenten gelangen Sie in einen Ncurses-Dialog, in dem Sie zunächst die deutsche Lokalisierung einschalten (Abbildung 1). Nun wählen Sie die Art der Installation aus. Der Assistent gilt als bevorzugte Installationsmethode, alternativ gibt es einen reinen Konsolenmodus. Beachten Sie, dass die Zielpartition mindestens 16 GByte freien Speicher aufweisen muss, anderenfalls bricht der Installer mit einer entsprechenden Fehlermeldung ab.

Abbildung 1: Der Guix-Assistent führt in einer etwas rustikal wirkenden Ncurses-Oberfläche durch die Installation.

Abbildung 1: Der Guix-Assistent führt in einer etwas rustikal wirkenden Ncurses-Oberfläche durch die Installation.

Nach dem Festlegen von Zeitzone und Tastaturbelegung geben Sie einen Namen für den Rechner an. Danach folgt die erste Spezialität des Systems: Im nächsten Dialog fragt der Installer, ob Sie Substitut-Server aktivieren möchten. Dabei handelt es sich um Server im internen LAN, auf denen sich – ergänzend zu den im Internet befindlichen Maschinen des Projekts – fertige Binärpakete befinden, mit deren Hilfe Sie Software installieren können. In den nächsten Schritten setzen Sie ein Passwort für das Root-Konto und legen einen herkömmlichen Benutzer an.

Der folgende Dialog enthält eine weitere Spezialität von Guix System: Hier wählen Sie aus einer Liste eine oder mehrere Desktop-Umgebungen aus (Abbildung 2). Die Routine berücksichtigt alle ausgewählten Umgebungen und installiert sie anschließend zusammen mit den oberflächenspezifischen Applikationen.

Abbildung 2: Guix bietet viele grafische Desktops zur Installation an.

Abbildung 2: Guix bietet viele grafische Desktops zur Installation an.

Nach dem Hochfahren des installierten Betriebssystems stellen Sie im Anmeldedialog die gewünschte Desktop-Umgebung ein. Im vorletzten Schritt entscheiden Sie, welche sicherheitsrelevanten Dienste Sie in das System integrieren möchten. Dazu zählen etwa ein SSH-Server, NSS-Zertifikate von Mozilla sowie der Tor-Dienst, die sich alle zusammen installieren lassen.

Zu guter Letzt fragt der Installer noch das Partitionsschema des Massenspeichers ab. In diesem Dialog können Sie den Datenträger entweder automatisiert vorbereiten lassen oder manuell einrichten. Die automatisierte Partitionierung enthält auf Wunsch eine verschlüsselte Partition. Zusätzlich berechnet das automatisch Setup einen Swap-Bereich und legt ihn an.

Nach dem Anpassen aller Optionen blendet das System die getroffenen Einstellungen in einem abschließenden Fenster ein. Die Optionen lagert Guix alle in einer einfachen Konfigurationsdatei, die Sie später jederzeit modifizieren und dann das System neu installieren können. Bestätigen Sie die Optionen, startet die eigentliche Einrichtung. Nach einem Neustart gelangen Sie in den voreingestellten Desktop (Abbildung 3).

Abbildung 3: Guix System bringt auch exotische Arbeitsumgebungen wie Enlightenment mit.

Abbildung 3: Guix System bringt auch exotische Arbeitsumgebungen wie Enlightenment mit.

Applikationen

Standardmäßig richtet Guix System die mehr oder weniger zahlreich vorhandenen Anwendungen der gewählten Arbeitsumgebung ein. Ein grafisches Frontend für die Installation weiterer Programme gibt es aktuell noch nicht. Zusätzliche Software installieren Sie mit dem Befehl guix package. Er dient, ergänzt um verschiedene Optionen und Parameter, außerdem zum Verwalten vorhandener Anwendungen.

Die Entwickler integrierten darüber hinaus zahlreiche Alias-Befehle in die Paketverwaltung, mit deren Hilfe sich bestimmte Aufgaben schnell ausführen lassen. So ersetzt beispielsweise guix search den Befehl guix package -s. Um bestimmte installierbare Applikationen im Paketbestand zu suchen, geben Sie im einfachsten Fall guix search Paket ein. Durch verschiedene Parameter lässt sich die Suche entsprechend einschränken. Haben Sie das gewünschte Paket gefunden, installieren Sie es mit dem Kommando guix install Paket [3]. Die Paketverwaltung lädt nun das gewünschte Paket inklusive benötigter Abhängigkeiten herunter und richtet es ein.

Anders als bei den gängigen Paketverwaltungen benötigen Sie dafür keine Administratorrechte. Die Paketverwaltung integriert die Software in das jeweilige Nutzerprofil. Bei mehr als einem Anwender auf dem System gibt es für jeden ein eigenes Profil. Die verschiedenen Nutzer greifen also auf demselben System auf unterschiedliche Softwarebestände zu.

Aktualisierungen

Um das System auf dem aktuellen Stand zu halten, bietet Guix automatisierte Updates an. Dazu synchronisieren Sie zunächst mit dem Befehl guix pull die Repositories. Der Vorgang dauert eine gewisse Zeit, da er mehrere Kanäle mit Updates versorgt. Das System aktualisiert dabei automatisch den Softwarebestand. Der Befehl guix pull --news zeigt anschließend die Neuerungen an.

Der Befehl guix upgrade Paket aktualisiert einzelne Pakete. Daraus resultierende Aktualisierungen von Abhängigkeiten nimmt der Paketmanager ebenfalls automatisch vor. Die Paketverwaltung zeigt anschließend die Versionsänderungen des gewünschten Pakets an. Zum Abschluss des Upgrades aktualisiert die Routine das vorhandene Softwareprofil des Nutzers, sodass Sie beispielsweise mit guix package --list-installed die Versionsnummern der installierten Pakete aufrufen können. Dabei erscheinen nur die in Ihrem Anwenderprofil zusätzlich eingerichteten Pakete. Der Befehl guix pull --help ruft zusätzliche Programmparameter auf.

Das Alias guix remove Paket dient dazu, installierte Pakete aus dem System zu entfernen. Alternativ verwenden Sie das Kommando guix package -r Paket, das in Kombination mit weiteren Parametern ein größeres Funktionsspektrum bietet. guix remove Paket löscht das angegebene Softwarepaket nicht physikalisch aus dem System, sondern entfernt es lediglich aus dem jeweiligen Anwenderprofil. Bei einer möglichen späteren Neuinstallation der Software oder der Installation durch einen anderen Benutzer auf demselben System verringern sich dadurch das Download-Volumen und der Zeitaufwand erheblich, da der Paketmanager auf die vorhandenen Pakete zurückgreifen kann.

Mit guix gc befreien Sie das System von obsoleten Daten. Dieser Befehl löscht Dateiwaisen, inaktive Profile und überflüssige Links. Nach Abschluss des Vorgangs zeigt die Routine an, wie viel Speicherplatz auf dem System freigegeben wurde.

Rollback

Guix System erlaubt, das komplette System auf einen vorherigen Softwarestand zurückzusetzen. Diese Funktion erweist sich vor allem dann als nützlich, wenn ein Rechner nach Änderungen an der Konfiguration nicht mehr korrekt arbeitet. Dabei berücksichtigt die Funktion nicht nur die Systemkonfiguration, sondern auch alle auf Nutzerebene installierten und im Anwenderprofil gesicherten individuellen Pakete.

Die Anwenderprofile speichert der Paketmanager als Generationen. Geben Sie zum Zurücksetzen des Systems guix package --roll-back ein, dann zeigt das System nach dem Rollback an, auf welche Generation das Anwenderprofil transferiert wurde. Ohne weitere Parameter restauriert der Aufruf stets die der aktuellen Konfiguration vorausgehende Generation.

Um festzustellen, wie viele Generationen Ihres Anwenderprofils existieren, hilft Ihnen guix package --list-generations. Der Paketmanager führt nun alle Veränderungen detailliert in einer Tabelle auf. Dabei erscheinen neben den Paketen, die neu installiert, aktualisiert oder gelöscht wurden, auch deren Versionsnummern, das Datum und die Uhrzeit der Änderung sowie der Speicherort im System (Abbildung 4).

Abbildung 4: Durch das Generationenprofil lässt sich das System jederzeit zurücksetzen.

Abbildung 4: Durch das Generationenprofil lässt sich das System jederzeit zurücksetzen.

Möchten Sie den Softwarestand über mehrere Versionsgenerationen hinweg zurücksetzen, verwenden Sie folgenden Befehl:

$ guix package --switch-generation=Generationsnummer

Die Eingabe der gewünschten Generationsnummer setzt das System anschließend von jeder beliebigen Folgegeneration auf den angegebenen Stand zurück. Mithilfe dieses Befehls lässt sich das System aber ebenso gut von einer älteren Profilgeneration auf eine vorhandene beliebige neuere Version aktualisieren. Die entsprechenden Änderungen werden anschließend im Profil rekonstruiert, ohne dass erneut zeitraubende Software-Downloads für später installierte Applikationen anfallen.

Kanalisiert

Wie alle gängigen Linux-Distributionen verfügt Guix System über Software-Repositories (hier heißen sie Channels), die in der Grundeinstellung im Paketmanagement fehlen. Sie lassen sich individuell in die jeweiligen Nutzerprofile integrieren. Da es sich bei den Kanälen um Git-Repositories handelt, enthalten sie eine Versionsverwaltung, sodass Sie frei über die zu installierende Version entscheiden können.

Um zusätzliche Channels in das System einzubinden, legen Sie zunächst mit dem Kommando touch ~/.config/guix/channels.scm eine leere Textdatei an. Diese öffnen Sie im Anschluss mit einem Texteditor und tragen die jeweiligen Kanäle ein (Abbildung 5). Es genügt, die URLs der einzelnen Channels anzugeben. Insbesondere der Kanal Nonguix [4] dürfte für viele Anwender von Interesse sein, da er proprietäre Firmware-Blobs für zahlreiche Hardwarekomponenten enthält. Nur damit lassen sich die entsprechenden Chipsätze unter Guix nutzen.

Abbildung 5: Repositories verwalten Sie mithilfe der Konfigurationsdatei <code>channels.scm</code>.

Abbildung 5: Repositories verwalten Sie mithilfe der Konfigurationsdatei channels.scm.

Nach der Konfiguration der zusätzlichen Kanäle müssen Sie diese mit dem Befehl guix pull im System anmelden. Das Kommando aktualisiert die Paketlisten im Anwenderprofil, womit Ihnen die Inhalte der Channels zur Installation bereitstehen. Mittels guix pull --news prüfen Sie anschließend, welche Softwarepakete neu zur Verfügung stehen. Welche Kanäle das System nutzt, fragen Sie mit guix describe ab (Abbildung 6).

Abbildung 6: Der Aufruf <code>guix describe</code> zeigt alle aktiven Kan&auml;le an.

Abbildung 6: Der Aufruf guix describe zeigt alle aktiven Kanäle an.

Die wichtigsten Zusatzkanäle für Guix System bringen zahlreiche Komponenten mit. Neben Firmware-Blobs bietet Nonguix einen kompletten Kernel für den Einsatz auf Notebooks an. Darin finden Sie bereits proprietäre Blobs, mit denen sich Komponenten wie WLAN- und WWAN-Chipsätze ansprechen lassen, ohne die entsprechenden Module manuell laden zu müssen. Daneben finden Sie darin den Webbrowser Firefox – von Haus aus enthält Guix nur den Browser Icecat. Zu den weiteren nennenswerten Bestandteilen des Nonguix-Channels gehören die Windows-Laufzeitumgebung Wine, der Steam Game Store Client sowie Grafikkartentreiber des Herstellers Nvidia.

Der Guix Gaming Channel [5] wendet sich besonders an Freunde von Computerspielen und versammelt zahlreiche proprietäre Computerspiele für Linux. Er enthält jedoch keine Registrierungs- oder Lizenzdaten, diese müssen Sie gesondert erwerben. Der Flat Channel [6] richtet sich primär an Entwickler und Nutzer des GNU-Texteditors Emacs. Darin finden Sie Emacs 28, mit dem sich Lisp-Code einfach kompilieren lässt.

Fazit

Guix System wartet mit einer Reihe interessanter Innovationen auf, die zwar für fortgeschrittene Linux-Anwender eine gewisse Umstellung bedeuten, dafür jedoch einige Vorteile bieten. So erlaubt es die moderne Paketverwaltung, jederzeit ein Rollback auf einen früheren Systemstand auszuführen, ohne dazu eine umständliche und zeitraubende manuelle Installation zu erfordern. Auch die große Auswahl an Desktop-Umgebungen macht das System attraktiv. Ambitionierte Anwender, die eine ausgereifte Distribution abseits des Mainstreams suchen, kommen mit Guix System voll auf ihre Kosten. (tle/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben