Nächste: , Nach oben: Systemkonfiguration   [Inhalt][Index]


11.1 Einstieg

Vermutlich lesen Sie diesen Abschnitt, nachdem Sie zuvor Guix System installiert haben (siehe Systeminstallation), und wollen wissen, wie Sie jetzt weitermachen. Falls Sie bereits über Erfahrung mit der Administration eines GNU/Linux-Systems verfügen, sei gesagt, dass Guix System deutlich anders konfiguriert wird, als Sie es kennen: Systemdienste installiert man nicht mit guix install, man richtet Dienste nicht durch Änderungen an Dateien in /etc ein und neue Benutzerkonten legt man nicht mit einem Aufruf von useradd an. Hier wird all dies stattdessen in einer Systemkonfigurationsdatei niedergeschrieben.

Daher lautet der erste Schritt bei Guix System, die Systemkonfigurationsdatei zu schreiben. Zum Glück wurde bereits eine bei der Systeminstallation erzeugt; sie steht in /etc/config.scm.

Anmerkung: Den Ort, an dem Sie Ihre Systemkonfigurationsdatei aufbewahren, können Sie frei wählen – sie muss nicht /etc/config.scm heißen. Es ist eine gute Idee, sie unter Versionskontrolle zu stellen, zum Beispiel in einem Git-Repository.

Die gesamte Konfiguration des Systems – Benutzerkonten, Systemdienste, Zeitzone, Locale – wird in dieser Datei stattfinden, die dieser Schablone folgt:

(use-modules (gnu))
(use-package-modules )
(use-service-modules )

(operating-system
  (host-name )
  (timezone )
  (locale )
  (bootloader )
  (file-systems )
  (users )
  (packages )
  (services ))

Diese Konfigurationsdatei ist in Wirklichkeit ein Scheme-Programm. In den ersten Zeilen werden Module importiert, die Variable zur Verfügung stellen, die wir im Rest der Datei brauchen – z.B. Pakete, Dienste und so weiter. Die Form operating-system deklariert die Systemkonfiguration als ein Verbundsobjekt, das aus einigen Feldern besteht. Siehe Das Konfigurationssystem nutzen, wenn Sie vollständige Beispiele sehen möchten und mehr darüber erfahren möchten, was Sie eintragen.

Der zweite Schritt, wo Sie die Konfigurationsdatei haben, ist, sie zu testen. Natürlich können Sie auch Ihr Glück herausfordern und diesen Schritt überspringen – es ist Ihre Sache! Um sie zu testen, übergeben Sie die Konfigurationsdatei an guix system vm (dafür müssen Sie nicht root sein, ein normaler Benutzer ohne besondere Berechtigungen reicht aus):

guix system vm /etc/config.scm

Dieser Befehl liefert den Namen eines Shell-Skripts, welches eine virtuelle Maschine (VM) startet, auf der das System läuft, wie es in der Konfigurationsdatei deklariert wurde:

/gnu/store/…-run-vm.sh

In der VM können Sie sich als root ohne Passwort anmelden. So können Sie leicht prüfen, ob Ihre Konfigurationsdatei fehlerfrei ist und sich so verhält wie gewünscht, ohne dass Sie Ihr System der Gefahr aussetzen müssen. Siehe guix system aufrufen für weitere Informationen.

Anmerkung: Beim Gebrauch von guix system vm werden hardwareabhängige Bereiche wie die Dateisysteme und zugeordneten Geräte außen vor gelassen, weil sie in der VM nicht sinnvoll getestet werden können. Andere Bereiche wie eine statische Netzwerkkonfiguration (siehe static-networking-service-type) bleiben zwar, funktionieren in der VM aber nicht ohne Weiteres.

Der dritte Schritt, sobald Sie mit Ihrer Konfiguration zufrieden sind, ist, diese zu instanziieren – sie also auf Ihrem System wirksam werden zu lassen. Dazu geben Sie ein:

sudo guix system reconfigure /etc/config.scm

Dies ist eine transaktionelle Operation: Entweder sie ist erfolgreich und endet mit einem aktualisierten System, oder sie scheitert und es ändert sich nichts. Beachten Sie, dass dadurch keine Systemdienste neu gestartet werden, die schon vorher liefen. Wenn Sie die laufenden Dienste aktualisieren möchten, müssen Sie den Rechner neu starten oder sie selbst neu starten. Um zum Beispiel den Daemon für Secure Shell (SSH) zu starten, würden Sie dies ausführen:

sudo herd restart sshd

Anmerkung: Systemdienste werden durch Shepherd verwaltet (siehe Jump Start in The GNU Shepherd Manual). Mit dem Befehl herd können Sie Dienste einsehen, starten und stoppen. Um den Status der Dienste zu sehen, geben Sie ein:

sudo herd status

Für genaue Informationen über einen bestimmten Dienst schreiben Sie seinen Namen zum Befehl dazu:

sudo herd status sshd

Siehe Dienste für weitere Informationen.

Das System speichert Informationen über seine Provenienz – sprich die Konfigurationsdatei und welche Kanäle verwendet wurden, um sie aufzuspielen. So können Sie die Provenienz einsehen:

guix system describe

Des Weiteren bleiben vorherige Systemgenerationen bei guix system reconfigure erhalten und Sie können sich deren Liste anzeigen lassen:

guix system list-generations

Vor allem können Sie jederzeit das System auf eine vorherige Generation zurücksetzen, wenn etwas schiefgeht! Sobald Sie den Rechner neu starten, wird Ihnen ein Untermenü im Bootloader auffallen, das mit „Old system generations“ bezeichnet wird. Über dieses können Sie eine ältere Generation Ihres Systems starten, falls die neueste Generation auf irgendeine Weise „kaputt“ ist oder auf andere Weise nicht Ihren Wünschen entspricht. Sie können es auch dauerhaft zurücksetzen:

sudo guix system roll-back

Alternativ rufen Sie guix system switch-generation auf, um zu einer bestimmten Generation zu wechseln.

Ab und zu werden Sie der alten Generationen überdrüssig und löschen die, die Sie nicht mehr brauchen, damit der Müllsammler Platz auf der Platte freiräumen kann (siehe guix gc aufrufen). Um zum Beispiel Generationen zu löschen, die mehr als 4 Monate alt sind, geben Sie ein:

sudo guix system delete-generations 4m

Von da an, wenn Sie etwas an der Konfiguration des Systems ändern möchten, etwa ein Benutzerkonto hinzufügen oder Parameter eines Dienstes verändern wollen, müssen Sie zunächst die Konfigurationsdatei bearbeiten und dann rufen Sie guix system reconfigure auf wie oben gezeigt. Wenn Sie bewirken möchten, dass aktuellere Systemsoftware läuft, holen Sie sich zunächst eine aktuelle Version von Guix und rekonfigurieren Ihr System anschließend mit diesem neuen Guix:

guix pull
sudo guix system reconfigure /etc/config.scm

Wir empfehlen, diese Schritte regelmäßig zu wiederholen, damit Ihr System die aktuellen Sicherheitsaktualisierungen benutzt (siehe Sicherheitsaktualisierungen).

Anmerkung: Bei Nutzung von sudo guix wird der guix-Befehl des aktiven Benutzers ausgeführt und nicht der des Administratornutzers „root“, weil sudo die Umgebungsvariable PATH unverändert lässt.

Das macht hier einen Unterschied, weil guix pull den guix-Befehl und Paketdefinitionen nur für dasjenige Benutzerkonto aktualisiert, mit dem es ausgeführt wird. Würden Sie stattdessen in der Login-Shell des „root“-Nutzers guix system reconfigure ausführen, müssten Sie auch für ihn guix pull ausführen.

So viel dazu! Wenn Guix für Sie insgesamt neu ist, siehe Einstieg. In den nächsten Abschnitten wird auf den Kern der Sache näher eingegangen: die Systemkonfiguration.


Nächste: Das Konfigurationssystem nutzen, Nach oben: Systemkonfiguration   [Inhalt][Index]