Nächste: Anpassung des systemweiten Guix, Vorige: Eigenen Guix-Kanal benutzen, Nach oben: Kanäle [Inhalt][Index]
Der Befehl guix describe
zeigt genau, aus welchen Commits die
Guix-Instanz erstellt wurde, die Sie benutzen (siehe guix describe
aufrufen). Sie können diese Instanz auf einer anderen Maschine oder zu
einem späteren Zeitpunkt nachbilden, indem Sie eine Kanalspezifikation
angeben, die auf diese Commits „festgesetzt“ ist.
;; Ganz bestimmte Commits der relevanten Kanäle installieren. (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (commit "6298c3ffd9654d3231a6f25390b056483e8f407c")) (channel (name 'paketvarianten) (url "https://example.org/variant-packages.git") (commit "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
Um so eine festgesetzte Kanalspezifikation zu bekommen, ist es am
einfachsten, guix describe
auszuführen und seine Ausgabe in
channels
-Formatierung in einer Datei zu speichern. Das geht so:
guix describe -f channels > channels.scm
Die erzeugte Datei channels.scm kann mit der Befehlszeilenoption
-C von guix pull
(siehe guix pull
aufrufen) oder
von guix time-machine
(siehe guix time-machine
aufrufen)
übergeben werden. Ein Beispiel:
guix time-machine -C channels.scm -- shell python -- python3
Anhand der Datei channels.scm ist festgelegt, dass der obige Befehl
immer genau dieselbe Guix-Instanz lädt und dann mit dieser Instanz
genau dasselbe Python startet (siehe guix shell
aufrufen). So werden
auf jeder beliebigen Maschine zu jedem beliebigen Zeitpunkt genau dieselben
Binärdateien ausgeführt, Bit für Bit.
Das Problem, das solche festgesetzten Kanäle lösen, ist ähnlich zu dem, wofür andere Werkzeuge zur Softwareauslieferung „Lockfiles“ einsetzen – ein Satz von Paketen wird reproduzierbar auf eine bestimmte Version festgesetzt. Im Fall von Guix werden allerdings sämtliche mit Guix ausgelieferte Pakete auf die angegebenen Commits fixiert; tatsächlich sogar der ganze Rest von Guix mitsamt seinen Kernmodulen und Programmen für die Befehlszeile. Dazu wird sicher garantiert, dass Sie wirklich genau dieselbe Software vorfinden werden.
Das verleiht Ihnen Superkräfte, mit denen Sie die Provenienz binärer Artefakte sehr feinkörnig nachverfolgen können und Software-Umgebungen nach Belieben nachbilden können. Sie können es als eine Art Fähigkeit zur „Meta-Reproduzierbarkeit“ auffassen, wenn Sie möchten. Der Abschnitt Untergeordnete beschreibt eine weitere Möglichkeit, diese Superkräfte zu nutzen.
Nächste: Anpassung des systemweiten Guix, Vorige: Eigenen Guix-Kanal benutzen, Nach oben: Kanäle [Inhalt][Index]