Next: , Previous: , Up: Canales   [Contents][Index]


7.3 Replicación de Guix

La salida de guix pull --list-generations previa muestra precisamente qué revisiones se usaron para construir esta instancia de Guix. Por tanto podemos replicarla, digamos, en otra máquina, proporcionando una especificaciones de canales en ~/.config/guix/channels.scm que está “clavada” en estas revisiones:

;; Despliega unas revisiones específicas de mis canales de interés.
(list (channel
       (name 'guix)
       (url "https://git.savannah.gnu.org/git/guix.git")
       (commit "d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300"))
      (channel
       (name 'paquetes-personalizados)
       (url "https://example.org/paquetes-personalizados.git")
       (branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))

The guix describe --format=channels command can even generate this list of channels directly (see Invocación de guix describe). The resulting file can be used with the -C option of guix pull (see Invocación de guix pull) or guix time-machine (see Invocación de guix time-machine).

En este punto las dos máquinas ejecutan exactamente el mismo Guix, con acceso a exactamente los mismos paquetes. La salida de guix build gimp en una máquina debe ser exactamente la misma, bit a bit, que la salida de la misma orden en la otra máquina. Esto también significa que ambas máquinas tienen acceso a todo el código fuente de Guix y, transitivamente, a todo el código fuente de cada paquete que define.

Esto le proporciona superpoderes, lo que le permite seguir la pista de la procedencia de los artefactos binarios con un grano muy fino, y reproducir entornos de software a su voluntad—un tipo de capacidad de “meta-reproducibilidad”, si lo desea. See Inferiores, para otro modo de tomar ventaja de estos superpoderes.