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 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: Kanalauthentifizierung, Vorige: Eigenen Guix-Kanal benutzen, Nach oben: Kanäle   [Inhalt][Index]