Suivant: Authentification des canaux, Précédent: Utiliser un canal Guix personnalisé, Monter: Canaux [Table des matières][Index]
La sortie de guix pull --list-generations
ci-dessus montre
précisément quels commits ont été utilisés pour construire cette instance de
Guix. Nous pouvons donc la répliquer, disons sur une autre machine, en
fournissant une spécification de canal dans
~/.config/guix/channels.scm qui est « épinglé » à ces commits :
;; Déployer des commits précis de mes canaux préférés. (list (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (commit "6298c3ffd9654d3231a6f25390b056483e8f407c")) (channel (name 'variant-packages) (url "https://example.org/variant-packages.git") (commit "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
The guix describe --format=channels
command can even generate this
list of channels directly (voir Invoquer guix describe). The resulting
file can be used with the -C option of guix pull
(voir Invoquer guix pull) or guix time-machine
(voir Invoquer guix time-machine).
À ce moment les deux machines font tourner exactement le même Guix,
avec l’accès exactement aux même paquets. La sortie de guix
build gimp
sur une machine sera exactement la même, au bit près, que la
sortie de la même commande sur l’autre machine. Cela signifie aussi que les
deux machines ont accès à tous les codes sources de Guix, et transitivement,
à tous les codes sources de tous les paquets qu’il définit.
Cela vous donne des super-pouvoirs, ce qui vous permet de suivre la provenance des artefacts binaires avec un grain très fin et de reproduire les environnements logiciels à volonté — une sorte de capacité de « méta-reproductibilité », si vous voulez. Voir Inférieurs, pour une autre manière d’utiliser ces super-pouvoirs.