Previous: Invocación de guix describe
, Up: Gestión de paquetes [Contents][Index]
guix archive
La orden guix archive
permite a las usuarias exportar
archivos del almacén en un único archivador, e importarlos
posteriormente en una máquina que ejecute Guix. En particular, permite que
los archivos del almacén sean transferidos de una máquina al almacén de otra
máquina.
Nota: Si está buscando una forma de producir archivos en un formato adecuado para herramientas distintas a Guix, see Invocación de
guix pack
.
Para exportar archivos del almacén como un archivo por la salida estándar, ejecute:
guix archive --export opciones especificaciones...
especificaciones deben ser o bien nombres de archivos del almacén o
especificaciones de paquetes, como las de guix package
(see Invocación de guix package
). Por ejemplo, la siguiente orden crea un
archivo que contiene la salida gui
del paquete git
y la salida
principal de emacs
:
guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar
Si los paquetes especificados no están todavía construidos, guix
archive
los construye automáticamente. El proceso de construcción puede
controlarse mediante las opciones de construcción comunes (see Opciones comunes de construcción).
Para transferir el paquete emacs
a una máquina conectada por SSH, se
ejecutaría:
guix archive --export -r emacs | ssh otra-maquina guix archive --import
De manera similar, un perfil de usuaria completo puede transferirse de una máquina a otra de esta manera:
guix archive --export -r $(readlink -f ~/.guix-profile) | \ ssh otra-maquina guix archive --import
No obstante, fíjese que, en ambos ejemplos, todo emacs
y el perfil
como también todas sus dependencias son transferidas (debido a la
-r), independiente de lo que estuviese ya disponible en el almacén
de la máquina objetivo. La opción --missing puede ayudar a
esclarecer qué elementos faltan en el almacén objetivo. La orden
guix copy
simplifica y optimiza este proceso completo, así que
probablemente es lo que debería usar en este caso (see Invocación de guix copy
).
Cada elemento del almacén se escribe en formato de archivo normalizado
o nar (descrito a continuación), y la salida de guix archive
--export
(y entrada de guix archive --import
) es un
empaquetado nar.
El formato “nar” es comparable a ‘tar’ en el espíritu, pero con diferencias que lo hacen más apropiado para nuestro propósito. Primero, en vez de almacenar todos los metadatos Unix de cada archivo, el formato nar solo menciona el tipo de archivo (normal, directorio o enlace simbólico); los permisos Unix y el par propietario/grupo se descartan. En segundo lugar, el orden en el cual las entradas de directorios se almacenan siempre siguen el orden de los nombres de archivos de acuerdo a la ordenación de cadenas en la localización C. Esto hace la producción del archivo completamente determinista.
El formato del empaquetado nar es esencialmente una concatenación de cero o más nar junto a metadatos para cada elemento del almacén que contiene: su nombre de archivo, referencias, derivación correspondiente y firma digital.
Durante la exportación, el daemon firma digitalmente los contenidos del archivo, y la firma digital se adjunta. Durante la importación, el daemon verifica la firma y rechaza la importación en caso de una firma inválida o si la clave firmante no está autorizada.
Las opciones principales son:
--export
Exporta los archivos del almacén o paquetes (véase más adelante). Escribe el archivo resultante a la salida estándar.
Las dependencias no están incluidas en la salida, a menos que se use --recursive.
-r
--recursive
Cuando se combina con --export, instruye a guix archive
para incluir las dependencias de los elementos dados en el archivo. Por
tanto, el archivo resultante está auto-contenido: contiene la clausura de
los elementos exportados del almacén.
--import
Lee un archivo de la entrada estándar, e importa los archivos enumerados allí en el almacén. La operación se aborta si el archivo tiene una firma digital no válida, o si está firmado por una clave pública que no está entre las autorizadas (vea --authorize más adelante).
--missing
Lee una lista de nombres de archivos del almacén de la entrada estándar, uno por línea, y escribe en la salida estándar el subconjunto de estos archivos que faltan en el almacén.
--generate-key[=parámetros]
¶Genera un nuevo par de claves para el daemon. Esto es un prerrequisito antes
de que los archivos puedan ser exportados con --export. Esta
operación es habitualmente instantánea pero puede tomar tiempo si la piscina
de entropía necesita tiene que rellenarse. En el sistema Guix
guix-service-type
se encarga de generar este par de claves en el
primer arranque.
El par de claves generado se almacena típicamente bajo /etc/guix, en
signing-key.pub (clave pública) y signing-key.sec (clave
privada, que se debe mantener secreta). Cuando parámetros se omite, se
genera una clave ECDSA usando la curva Ed25519, o, en versiones de Libgcrypt
previas a la 1.6.0, es una clave RSA de 4096 bits. De manera alternativa,
los parámetros pueden especificar parámetros genkey
adecuados
para Libgcrypt (see gcry_pk_genkey
in The Libgcrypt Reference Manual).
--authorize
¶Autoriza importaciones firmadas con la clave pública pasada por la entrada estándar. La clave pública debe estar en el “formato avanzado de expresiones-s”—es decir, el mismo formato que el archivo signing-key.pub.
La lista de claves autorizadas se mantiene en el archivo editable por personas /etc/guix/acl. El archivo contiene “expresiones-s en formato avanzado” y está estructurado como una lista de control de acceso en el formato Infraestructura Simple de Clave Pública (SPKI).
--extract=directorio
-x directorio
Lee un único elemento del archivo como es ofrecido por los servidores de sustituciones (see Sustituciones) y lo extrae a directorio. Esta es una operación de bajo nivel necesitada únicamente para casos muy concretos; véase a continuación.
For example, the following command extracts the substitute for Emacs served
by ci.guix.gnu.org
to /tmp/emacs:
$ wget -O - \ https://ci.guix.gnu.org/nar/gzip/…-emacs-24.5 \ | gunzip | guix archive -x /tmp/emacs
Los archivos de un único elemento son diferentes de los archivos de
múltiples elementos producidos por guix archive --export
;
contienen un único elemento del almacén, y no embeben una firma. Por
tanto esta operación no verifica la firma y su salida debe
considerarse insegura.
El propósito primario de esta operación es facilitar la inspección de los
contenidos de un archivo que provenga probablemente de servidores de
sustituciones en los que no se confía (see Invocación de guix challenge
).
--list
-t
Lee un único elemento del archivo como es ofrecido por los servidores de sustituciones (see Sustituciones) e imprime la lista de archivos que contiene, como en este ejemplo:
$ wget -O - \ https://ci.guix.gnu.org/nar/lzip/…-emacs-26.3 \ | lzip -d | guix archive -t
Previous: Invocación de guix describe
, Up: Gestión de paquetes [Contents][Index]