Nächste: , Vorige: , Nach oben: Kanäle   [Inhalt][Index]


7.3 Guix nachbilden

Der Befehl guix describe zeigt genau, aus welchen Commits die Guix-Instanz erstellt wurde, die Sie benutzen (siehe Aufruf von guix describe). 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 Aufruf von guix pull) oder von guix time-machine (siehe Aufruf von time-machine) ü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 Aufruf von guix shell). 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: , Vorige: , Nach oben: Kanäle   [Inhalt][Index]