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


6.3 Guix nachbilden

Die Ausgabe von guix pull --list-generations oben zeigt genau, aus welchen Commits diese Guix-Instanz erstellt wurde. Wir können Guix so zum Beispiel auf einer anderen Maschine nachbilden, indem wir eine Kanalspezifikation in ~/.config/guix/channels.scm 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")))

Der Befehl guix describe --format=channels kann diese Kanalliste sogar direkt erzeugen (siehe Aufruf von guix describe). Die erzeugte Datei kann mit den -C genannten Befehlszeilenoptionen von guix pull (siehe Aufruf von guix pull) oder von guix time-machine (siehe Aufruf von time-machine) benutzt werden.

Somit läuft auf beiden Maschinen genau dasselbe Guix und es hat Zugang zu genau denselben Paketen. Die Ausgabe von guix build gimp auf der einen Maschine wird Bit für Bit genau dieselbe wie die desselben Befehls auf der anderen Maschine sein. Das bedeutet auch, dass beide Maschinen Zugang zum gesamten Quellcode von Guix und daher auch transitiv Zugang zum Quellcode jedes davon definierten Pakets haben.

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.