Nächste: Untergeordnete, Vorige: guix pull
aufrufen, Nach oben: Paketverwaltung [Inhalt][Index]
guix time-machine
aufrufenDer Befehl guix time-machine
erleichtert den Zugang zu anderen
Versionen von Guix. Damit können ältere Versionen von Paketen installiert
werden oder eine Berechnung in einer identischen Umgebung reproduziert
werden. Die zu benutzende Guix-Version wird über eine Commit-Angabe oder
eine Kanalbeschreibungsdatei, wie sie durch guix describe
erzeugt
werden kann, festgelegt (siehe guix describe
aufrufen).
Sagen wir, Sie würden gerne in der Zeit zurückreisen zu den Tagen um
November 2020, als die Version 1.2.0 von Guix veröffentlicht worden ist, und
außerdem möchten Sie nach Ihrer Ankunft den damaligen guile
-Befehl
ausführen:
guix time-machine --commit=v1.2.0 -- \ environment -C --ad-hoc guile -- guile
Mit obigem Befehl wird Guix 1.2.0 geladen und daraufhin dessen Befehl
guix environment
ausgeführt, um eine Umgebung, in einen Container
verpackt, zu betreten, wo dann guile
gestartet wird (guix
environment
ist mittlerweile Teil von guix shell
, siehe
guix shell
aufrufen). Es ist so, als würden Sie einen DeLorean
fahren12! Der erste Aufruf von guix
time-machine
kann lange dauern, weil vielleicht viele Pakete
heruntergeladen oder sogar erstellt werden müssen, aber das Ergebnis bleibt
in einem Zwischenspeicher und danach geschehen Befehle für denselben Commit
fast sofort.
Anmerkung: Vergangene Commits zu Guix sind unveränderlich und
guix time-machine
bietet genau dieselbe Software, wie sie in einer damaligen Guix-Version bestanden hat. Demzufolge werden auch keine Sicherheitspatches für alte Versionen von Guix oder dessen Kanäle nachgeliefert. Unbedachter Gebrauch derguix time-machine
lässt Sicherheitsschwachstellen freien Raum. Siehe --allow-downgrades.
Die allgemeine Syntax lautet:
guix time-machine Optionen… -- Befehl Argument…
Dabei werden der Befehl und jedes Argument… unverändert an den
guix
-Befehl der angegebenen Version übergeben. Die Optionen,
die die Version definieren, sind dieselben wie bei guix pull
(siehe guix pull
aufrufen):
--url=URL
--commit=Commit
--branch=Branch
Den guix
-Kanal von der angegebenen URL benutzen, für den
angegebenen Commit (eine gültige Commit-ID, dargestellt als
hexadezimale Zeichenkette oder Namen eines Git-Tags) oder Branch.
--channels=Datei
-C Datei
Die Liste der Kanäle aus der angegebenen Datei auslesen. Die Datei muss Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet wird. Siehe Kanäle für nähere Informationen.
Wie bei guix pull
wird in Ermangelung anderer Optionen der letzte
Commit auf dem master-Branch benutzt. Mit dem Befehl
guix time-machine -- build hello
wird dementsprechend das Paket hello
erstellt, so wie es auf dem
master-Branch definiert ist, was in der Regel einer neueren Guix-Version
entspricht als der, die Sie installiert haben. Zeitreisen funktionieren also
in beide Richtungen!
Beachten Sie, dass durch guix time-machine
Erstellungen von
Kanälen und deren Abhängigkeiten ausgelöst werden können, welche durch die
gemeinsamen Erstellungsoptionen gesteuert werden können (siehe Gemeinsame Erstellungsoptionen).
Wenn Sie DeLorean nicht kennen, sollten Sie eine Zeitreise in die 1980er in Betracht ziehen.
Nächste: Untergeordnete, Vorige: guix pull
aufrufen, Nach oben: Paketverwaltung [Inhalt][Index]