Suivant: , Précédent: , Monter: Canaux   [Table des matières][Index]


7.3 Répliquer Guix

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]