Vorige: Persönliche Dienste, Nach oben: Persönliche Konfiguration [Inhalt][Index]
guix home
aufrufenSobald Sie eine Deklaration Ihrer Persönlichen Umgebung haben (siehe
Deklaration der Persönlichen Umgebung), kann diese instanziiert
werden, indem Sie den Befehl guix home
aufrufen. Zusammengefasst:
guix home Optionen… Aktion Datei
Datei muss der Name einer Datei sein, in der eine Persönliche Umgebung
als home-environment
-Objekt steht. Aktion gibt an, wie das
Betriebssystem instanziiert wird (abgesehen von unterstützenden Aktionen, wo
nichts instanziiert wird). Derzeit werden folgende Werte dafür unterstützt:
search
Verfügbare Definitionen Persönlicher Dienste anzeigen, die zum angegebenen regulären Ausdruck passen, sortiert nach Relevanz:
$ guix home search shell name: home-shell-profile location: gnu/home/services/shells.scm:100:2 extends: home-files description: Create `~/.profile', which is used for environment initialization of POSIX compliant login shells. + This service type can be extended with a list of file-like objects. relevance: 6 name: home-fish location: gnu/home/services/shells.scm:640:2 extends: home-files home-profile description: Install and configure Fish, the friendly interactive shell. relevance: 3 name: home-zsh location: gnu/home/services/shells.scm:290:2 extends: home-files home-profile description: Install and configure Zsh. relevance: 1 name: home-bash location: gnu/home/services/shells.scm:508:2 extends: home-files home-profile description: Install and configure GNU Bash. relevance: 1 …
Wie auch bei guix search
wird das Ergebnis im
recutils
-Format geliefert, so dass es leicht ist, die Ausgabe zu
filtern (siehe GNU-recutils-Datenbanken in Handbuch von
GNU recutils).
container
Eine Shell in einer isolierten Umgebung – einem Container – öffnen, die die in Datei angegebene Persönliche Umgebung enthält.
Zum Beispiel würden Sie so eine interaktive Shell in einem Container starten, der Ihrer Persönlichen Umgebung entspricht:
guix home container config.scm
In diesem Wegwerf-Container können Sie Dateien nach Herzenslust verändern, denn innerhalb des Containers gemachte Änderungen oder gestartete Prozesse sind alle wieder weg, sobald Sie die Shell verlassen.
Wie auch guix shell
hält sich der Container an einige
Befehlszeilenoptionen:
Netzwerkzugriff im Container erlauben (was nach Voreinstellung abgeschaltet ist).
Wie bei guix shell
wird das Verzeichnis unter Quelle vom
Wirtssystem im Container als Ziel verfügbar gemacht. Bei
--expose gibt es nur Lesezugriff und bei --share auch
Schreibzugriff darauf (siehe --expose und
--share).
Des Weiteren können Sie einen Befehl im Container ausführen lassen, anstatt eine interaktive Shell zu starten. Zum Beispiel würden Sie so überprüfen, welche Shepherd-Dienste im Persönlichen Wegwerf-Container gestartet werden:
guix home container config.scm -- herd status
Den Befehl, der im Container auszuführen ist, geben Sie nach zwei kurzen
Strichen --
an.
edit
Die Definition des angegebenen Persönlichen Dienstes bearbeiten oder anzeigen.
Beispielsweise öffnet folgender Befehl Ihren Editor, der mit der
Umgebungsvariablen EDITOR
gewählt werden kann, an der Stelle, wo der
home-mcron
-Diensttyp definiert ist:
guix home edit home-mcron
reconfigure
Die in der Datei beschriebene Persönliche Umgebung erstellen und zu
ihr wechseln. Wechseln bedeutet, dass das Aktivierungsskript ausgewertet
wird und (in der Grundeinstellung) symbolische Verknüpfungen auf
Konfigurationsdateien, die anhand der Deklaration der Persönlichen Umgebung
im home-environment
-Objekt erzeugt werden, in ~ angelegt
werden. Wenn die Datei mit demselben Pfad bereits im Persönlichen
Verzeichnis existiert, wird sie nach
~/Zeitstempel-guix-home-legacy-configs-backup verschoben. Dabei
ist Zeitstempel eine Zeitangabe seit der UNIX-Epoche.
Anmerkung: Es ist sehr zu empfehlen,
guix pull
einmal auszuführen, bevor Sieguix home reconfigure
zum ersten Mal aufrufen (sieheguix pull
aufrufen).
Dieser Befehl setzt die in der Datei festgelegte Konfiguration
vollständig um. Der Befehl startet die in der Datei angegebenen
Shepherd-Dienste, die aktuell nicht laufen; bei aktuell laufenden Diensten
wird sichergestellt, dass sie aktualisiert werden, sobald sie das nächste
Mal angehalten wurden (z.B. durch herd stop Dienst
oder
herd restart Dienst
).
Dieser Befehl erzeugt eine neue Generation, deren Nummer (wie guix
home list-generations
sie anzeigt) um eins größer als die der aktuellen
Generation ist. Wenn die so nummerierte Generation bereits existiert, wird
sie überschrieben. Dieses Verhalten entspricht dem von guix
package
(siehe guix package
aufrufen).
Nach Abschluss wird die neue Persönliche Umgebung unter ~/.guix-home verfügbar gemacht. Das Verzeichnis enthält Provenienz-Metadaten: Dazu gehören die Liste der Kanäle, die benutzt wurden (siehe Kanäle) und die Datei selbst, wenn sie verfügbar ist. Sie können die Provenienzinformationen auf diese Weise ansehen:
guix home describe
Diese Informationen sind nützlich, falls Sie später inspizieren möchten, wie diese spezielle Generation erstellt wurde. Falls die Datei eigenständig ist, also keine anderen Dateien zum Funktionieren braucht, dann können Sie tatsächlich die Generation n Ihrer Persönlichen Umgebung später erneut erstellen mit:
guix time-machine \ -C /var/guix/profiles/per-user/Benutzer/guix-home-n-link/channels.scm -- \ home reconfigure \ /var/guix/profiles/per-user/Benutzer/guix-home-n-link/configuration.scm
Sie können sich das als eine Art eingebaute Versionskontrolle vorstellen! Ihre Persönliche Umgebung ist nicht nur ein binäres Erzeugnis: Es enthält seinen eigenen Quellcode.
switch-generation
¶Zu einer bestehenden Generation der Persönlichen Umgebung wechseln. Diese Aktion wechselt das Profil der Persönlichen Umgebung atomar auf die angegebene Generation der Persönlichen Umgebung.
Die Zielgeneration kann ausdrücklich über ihre Generationsnummer angegeben werden. Zum Beispiel würde folgender Aufruf einen Wechsel zur Generation 7 der Persönlichen Umgebung bewirken:
guix home switch-generation 7
Die Zielgeneration kann auch relativ zur aktuellen Generation angegeben
werden, in der Form +N
oder -N
, wobei +3
zum Beispiel
„3 Generationen weiter als die aktuelle Generation“ bedeuten würde und
-1
„1 Generation vor der aktuellen Generation“ hieße. Wenn Sie einen
negativen Wert wie -1
angeben, müssen Sie --
der
Befehlszeilenoption voranstellen, damit die negative Zahl nicht selbst als
Befehlszeilenoption aufgefasst wird. Zum Beispiel:
guix home switch-generation -- -1
Diese Aktion schlägt fehl, wenn die angegebene Generation nicht existiert.
roll-back
¶Zur vorhergehenden Generation der Persönlichen Umgebung wechseln. Dies ist
die Umkehrung von reconfigure
und tut genau dasselbe wie
switch-generation
mit dem Argument -1
aufzurufen.
delete-generations
¶Generationen der Persönlichen Umgebung löschen, wodurch diese zu Kandidaten
für den Müllsammler werden (siehe guix gc
aufrufen für Informationen,
wie Sie den „Müllsammler“ laufen lassen).
Es funktioniert auf die gleiche Weise wie ‘guix package --delete-generations’ (siehe --delete-generations). Wenn keine Argumente angegeben werden, werden alle Generationen der Persönlichen Umgebung außer der aktuellen gelöscht:
guix home delete-generations
Sie können auch eine Auswahl treffen, welche Generationen Sie löschen möchten. Das folgende Beispiel hat die Löschung aller Generationen der Persönlichen Umgebung zur Folge, die älter als zwei Monate sind:
guix home delete-generations 2m
build
Die Ableitung der Persönlichen Umgebung erstellen, einschließlich aller Konfigurationsdateien und Programme, die benötigt werden. Diese Aktion installiert jedoch nichts davon.
describe
Die aktuelle Generation der Persönlichen Umgebung beschreiben: ihren Dateinamen sowie Provenienzinformationen, falls verfügbar.
Um installierte Pakete im Profil der aktuellen Persönlichen Generation zu
finden, wird die Befehlszeilenoption --list-installed
angeboten,
deren Syntax dieselbe ist wie bei guix package --list-installed
(siehe guix package
aufrufen). Zum Beispiel zeigt der folgende Befehl
eine Tabelle mit allen Paketen, deren Name „emacs“ enthält und die ins
Profil der aktuellen Persönlichen Generation installiert sind, an:
guix home describe --list-installed=emacs
list-generations
Eine für Menschen verständliche Zusammenfassung jeder auf der Platte
verfügbaren Generation der Persönlichen Umgebung ausgeben. Dies ähnelt der
Befehlszeilenoption --list-generations von guix package
(siehe guix package
aufrufen).
Optional kann ein Muster angegeben werden, was dieselbe Syntax wie
guix package --list-generations
benutzt, um damit die Liste
anzuzeigender Generationen einzuschränken. Zum Beispiel zeigt der folgende
Befehl Generationen an, die bis zu 10 Tage alt sind:
guix home list-generations 10d
Sie können auch die Befehlszeilenoption --list-installed
angeben mit
derselben Syntax wie in guix home describe
. Das kann nützlich
sein, wenn Sie herausfinden möchten, wann ein bestimmtes Paket zum
Persönlichen Profil hinzukam.
import
Eine Deklaration der Persönlichen Umgebung anhand der Pakete im
Standardprofil und der Konfigurationsdateien im Persönlichen Verzeichnis des
Benutzers anlegen. Dabei werden die Konfigurationsdateien in das angegebene
Verzeichnis kopiert und eine home-configuration.scm wird darin mit
dem, was die Persönliche Umgebung ausmacht, gefüllt. Beachten Sie, dass
guix home import
nicht alle Persönlichen Dienste, die es gibt,
unterstützt (siehe Persönliche Dienste).
$ guix home import ~/guix-config guix home: Alle Konfigurationsdateien für die Persönliche Umgebung wurden in „/home/alice/guix-config“ geschrieben
Es gibt noch mehr zu sehen! Mit guix home
können Sie folgende
Unterbefehle benutzen, um zu visualisieren, wie die Dienste Ihrer
Persönlichen Umgebung voneinander abhängen:
extension-graph
Auf die Standardausgabe den Diensterweiterungsgraphen der in der
Datei definierten Persönlichen Umgebung ausgeben (siehe Dienstkompositionen für mehr Informationen zu Diensterweiterungen). Vorgegeben ist,
ihn im Dot-/Graphviz-Format auszugeben, aber Sie können ein anderes Format
mit --graph-backend auswählen, genau wie bei guix graph
(siehe --backend):
Der Befehl:
guix home extension-graph Datei | xdot -
zeigt die Erweiterungsrelation unter Diensten an.
shepherd-graph
Auf die Standardausgabe den Abhängigkeitsgraphen der Shepherd-Dienste der in der Datei definierten Persönlichen Umgebung ausgeben. Siehe Shepherd-Dienste für mehr Informationen sowie einen Beispielgraphen.
Auch hier wird nach Vorgabe die Ausgabe im Dot-/Graphviz-Format sein, aber Sie können ein anderes Format mit --graph-backend auswählen.
Unter den Optionen können beliebige gemeinsame Erstellungsoptionen aufgeführt werden (siehe Gemeinsame Erstellungsoptionen). Des Weiteren kann als Optionen Folgendes angegeben werden:
Als Konfiguration der Persönlichen Umgebung das
home-environment
-Objekt betrachten, zu dem der Ausdruck
ausgewertet wird. Dies ist eine Alternative dazu, die Konfiguration in einer
Datei festzulegen.
An guix home reconfigure
die Anweisung erteilen,
Systemherabstufungen zuzulassen.
Genau wie bei guix system
verhindert guix home
reconfigure
standardmäßig, dass Sie Ihre Persönliche Umgebung herabstufen
auf ältere Versionen oder auf Versionen, die mit den Kanalversionen Ihrer
vorigen Persönlichen Umgebung (guix home describe
zeigt diese)
nicht zusammenhängen. Sie können --allow-downgrades angeben,
um die Überprüfung zu umgehen, und tragen dann selbst die Schuld, wenn Sie
Ihre Persönliche Umgebung herabstufen. Vorsicht ist geboten!
Vorige: Persönliche Dienste, Nach oben: Persönliche Konfiguration [Inhalt][Index]