Next: Derivaciones, Previous: Search Paths, Up: Interfaz programática [Contents][Index]
Conceptualmente, el almacén es el lugar donde se almacenan las derivaciones cuya construcción fue satisfactoria—por defecto, /gnu/store. Los subdirectorios en el almacén se denominan elementos del almacén o rutas del almacén en ocasiones. El almacén tiene una base de datos asociada que contiene información como las rutas del almacén a las que referencia cada ruta del almacén, y la lista de elementos válidos del almacén—los resultados de las construcciones satisfactorias. Esta base de datos reside en localstatedir/guix/db, donde localstatedir es el directorio de estado especificado vía --localstatedir en tiempo de configuración, normalmente /var.
El almacén siempre es accedido a través del daemon en delegación de
sus clientes (see Invocación de guix-daemon
). Para manipular el almacén, los
clientes se conectan al daemon por un socket de dominio Unix, le envían
peticiones y leen el resultado—esto son llamadas a procedimientos remotos,
o RPC.
Nota: Las usuarias nunca deben modificar archivos directamente bajo el directorio /gnu/store. Esto llevaría a inconsistencias y rompería las premisas de inmutabilidad del modelo funcional de Guix (see Introducción).
See
guix gc --verify
, para información sobre cómo comprobar la integridad del almacén e intentar recuperarse de modificaciones accidentales.
El módulo (guix store)
proporciona procedimientos para conectarse al
daemon y realizar RPCs. Estos se describen más adelante. Por defecto,
open-connection
, y por tanto todas las órdenes guix
, se
conectan al daemon local o a la URI especificada en la variable de entorno
GUIX_DAEMON_SOCKET
.
Cuando se ha definido, el valor de esta variable debe ser un nombre de archivo o una URI designando el punto de conexión del daemon. Cuando es un nombre de archivo, denota un socket de dominio Unix al que conectarse. Además de nombres de archivos, los esquemas de URI aceptados son:
file
unix
Estos son equivalentes a los sockets de dominio
Unix. file:///var/guix/daemon-socket/socket
es equivalente a
/var/guix/daemon-socket/socket.
guix
¶Estas URI denotan conexiones sobre TCP/IP, sin cifrado ni verificación de la máquina remota. La URI debe especificar el nombre de máquina y opcionalmente un número de puerto (por defecto se usa el puerto 44146):
guix://principal.guix.example.org:1234
Esta configuración es apropiada para redes locales, como clusters, donde
únicamente los nodos de confianza pueden conectarse al daemon de
construcción en principal.guix.example.org
.
La opción --listen de guix-daemon
puede usarse para
indicarle que escuche conexiones TCP (see --listen).
ssh
¶These URIs allow you to connect to a remote daemon over SSH. This feature
requires Guile-SSH (see Requisitos) and a working guile
binary in PATH
on the destination machine. It supports public key and
GSSAPI authentication. A typical URL might look like this:
ssh://carlos@guix.example.org:22
Como con guix copy
, se tienen en cuenta los archivos habituales de
configuración del cliente OpenSSH (see Invocación de guix copy
).
Esquemas URI adicionales pueden ser aceptados en el futuro.
Nota: La conexión con daemon de construcción remotos se considera experimental en 1592f1a. Por favor, contacte con nosotras para compartir cualquier problema o sugerencias que pueda tener (see Contribuir).
Abre una conexión al daemon a través del socket de dominio Unix apuntado por uri (una cadena). Cuando reserve-space? es verdadero, le indica que reserve un poco de espacio extra en el sistema de archivos de modo que el recolector de basura pueda operar incluso cuando el disco se llene. Devuelve un objeto servidor.
El valor por defecto de uri es %default-socket-path
, que ese la
ruta esperada según las opciones proporcionadas a configure
.
Cierra la conexión al servidor.
Esta variable está enlazada a un parámetro SRFI-39, que referencia al puerto donde los logs de construcción y error enviados por el daemon deben escribirse.
Los procedimientos que realizan RPCs toman todos como primer parámetro un objeto servidor.
Devuelve #t
cuando ruta designa un elemento válido del almacén
y #f
en otro caso (un elemento no-válido puede existir en el disco
pero aun así no ser válido, por ejemplo debido a que es el resultado de una
construcción que se interrumpió o falló).
Una condición &store-protocol-error
se eleva si ruta no
contiene como prefijo el directorio del almacén (/gnu/store).
Añade texto bajo el archivo nombre en el almacén, y devuelve su ruta en el almacén. referencias es la lista de rutas del almacén a las que hace referencia la ruta del almacén resultante.
Construye derivaciones, una lista de objetos <derivation>
,
nombres de archivo .drv, o pares derivación/salida, usando el
modo especificado—(build-mode normal)
en caso de omisión.
Fíjese que el módulo (guix monads)
proporciona una mónada así como
versiones monádicas de los procedimientos previos, con el objetivo de hacer
más conveniente el trabajo con código que accede al almacén (see La mónada del almacén).
Esta sección actualmente está incompleta.
Next: Derivaciones, Previous: Search Paths, Up: Interfaz programática [Contents][Index]