Nächste: Das Konfigurationssystem nutzen, Nach oben: Systemkonfiguration [Inhalt][Index]
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 (siehestatic-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 statusFür genaue Informationen über einen bestimmten Dienst schreiben Sie seinen Namen zum Befehl dazu:
sudo herd status sshdSiehe 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 derguix
-Befehl des aktiven Benutzers ausgeführt und nicht der des Administratornutzers „root“, weilsudo
die UmgebungsvariablePATH
unverändert lässt.Das macht hier einen Unterschied, weil
guix pull
denguix
-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“-Nutzersguix system reconfigure
ausführen, müssten Sie auch für ihnguix 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]