Suivant: Authentification des canaux, Précédent: Utiliser un canal Guix personnalisé, Monter: Canaux [Table des matières][Index]
La commande guix describe
ci-dessus montre précisément quels
commits ont été utilisés pour construire l’instance de Guix utilisée
(voir Invoquer guix describe
). Nous pouvons répliquer cette instance sur
une autre machine ou plus tard, en fournissant une spécification de canal «
épinglée » à ces commits et qui ressemble à ceci :
;; 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")))
Pour obtenir cette spécification de canaux épinglée, le plus simple est de
lancer guix describe
et de sauvegarder sa sortie au format
channels
dans un fichier, comme ceci :
guix describe -f channels > channels.scm
Le fichier channels.scm qui en résulte peut être passé à l’option
-C de guix pull
(voir Invoquer guix pull
) ou
guix time-machine
(voir Invoquer guix time-machine
), comme dans
cet exemple :
guix time-machine -C channels.scm -- shell python -- python3
Étant donné le fichier channels.scm, la commande ci-dessus récupérera
toujours exactement la même instance de Guix, puis utilisera cette
instance pour lancer exactement le même Python (voir Invoquer guix shell
). Sur n’importe quelle machine, à n’importe quel moment, elle lance
exactement le même binaire, bit à bit.
Les canaux épinglés répondent à un problème similaire à celui des « fichiers de verrouillage » implémentés par certains outils de déploiement — ils vous permettent d’épingler et de reproduire un ensemble de paquets. Dans le cas de Guix cependant, vous épinglez en fait l’entièreté de l’ensemble de paquets défini par les commits donnés des canaux ; en fait, vous épinglez l’ensemble de Guix, avec des modules cœurs et ses outils en ligne de commande. Vous gagnez aussi la garantie forte que vous obtenez, effectivement, exactement le même environnement logiciel.
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.
Suivant: Authentification des canaux, Précédent: Utiliser un canal Guix personnalisé, Monter: Canaux [Table des matières][Index]