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


6.4 Le dépôt

Conceptuellement, le dépôt est l’endroit où les dérivations qui ont bien été construites sont stockées — par défaut, /gnu/store. Les sous-répertoires dans le dépôt s’appellent des éléments du dépôt ou parfois des chemins du dépôt. Le dépôt a une base de données associée qui contient des informations comme les chemins du dépôt auxquels se réfèrent chaque chemin du dépôt et la liste des éléments du dépôt valides — les résultats d’une construction réussie. Cette base de données se trouve dans localstatedir/guix/dblocalstatedir est le répertoire d’états spécifié via --localstatedir à la configuration, typiquement /var.

C’est toujours le démon qui accède au dépôt pour le compte de ses clients (voir Invoquer guix-daemon). Pour manipuler le dépôt, les clients se connectent au démon par un socket Unix-domain, envoient une requête dessus et lisent le résultat — ce sont des appels de procédures distantes, ou RPC.

Remarque : Les utilisateurs ne doivent jamais modifier les fichiers dans /gnu/store directement. Cela entraînerait des incohérences et casserait l’hypothèse d’immutabilité du modèle fonctionnel de Guix (voir Introduction).

Voir guix gc --verify, pour des informations sur la manière de vérifier l’intégrité du dépôt et d’essayer de réparer des modifications accidentelles.

Le module (guix store) fournit des procédures pour se connecter au démon et pour effectuer des RPC. Elles sont décrites plus bas. Par défaut, open-connection, et donc toutes les commandes guix se connectent au démon local ou à l’URI spécifiée par la variable d’environnement GUIX_DAEMON_SOCKET.

Variable d'environnement : GUIX_DAEMON_SOCKET

Lorsqu’elle est initialisée, la valeur de cette variable devrait être un nom de fichier ou une URI qui désigne l’extrémité du démon. Lorsque c’est un nom de fichier, il dénote un socket Unix-domain où se connecter. En plus des noms de fichiers, les schémas d’URI supportés sont :

file
unix

Pour les sockets Unix-domain. file:///var/guix/daemon-socket/socket est équivalent à /var/guix/daemon-socket/socket.

guix

Ces URI dénotent des connexions par TCP/IP, sans chiffrement ni authentification de l’hôte distant. L’URI doit spécifier le nom d’hôte et éventuellement un numéro de port (par défaut 44146) :

guix://master.guix.example.org:1234

Ce paramétrage est adapté aux réseaux locaux, comme dans le cas de grappes de serveurs, où seuls des noms de confiance peuvent se connecter au démon de construction sur master.guix.example.org.

L’option --listen de guix-daemon peut être utilisé pour lui dire d’écouter des connexions TCP (voir --listen).

ssh

These URIs allow you to connect to a remote daemon over SSH. This feature requires Guile-SSH (voir Prérequis) 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://charlie@guix.example.org:22

Comme pour guix copy, les fichiers de configuration du client OpenSSH sont respectés (voir Invoquer guix copy).

Des schémas d’URI supplémentaires pourraient être supportés dans le futur.

Remarque : La capacité de se connecter à un démon de construction distant est considéré comme expérimental à la version 1.1.0. Contactez-nous pour partager vos problèmes ou des suggestions que vous pourriez avoir (voir Contribuer).

Procédure Scheme : open-connection [uri] [#:reserve-space? #t]

Se connecte au démon à travers le socket Unix-domain à uri (une chaîne de caractères). Lorsque reserve-space? est vrai, cela demande de réserver un peu de place supplémentaire sur le système de fichiers pour que le ramasse-miette puisse opérer au cas où le disque serait plein. Renvoie un objet serveur.

file defaults to %default-socket-path, which is the normal location given the options that were passed to configure.

Procédure Scheme : close-connection server

Ferme la connexion au serveur.

Variable Scheme : current-build-output-port

Cette variable est liée à un paramètre SRFI-39, qui se réfère au port où les journaux de construction et d’erreur envoyés par le démon devraient être écrits.

Les procédures qui font des RPC prennent toutes un objet serveur comme premier argument.

Procédure Scheme : valid-path? server path

Renvoie #t lorsque path désigne un élément du dépôt valide et #f sinon (un élément invalide peut exister sur le disque mais rester invalide, par exemple parce que c’est le résultat d’une construction annulée ou échouée).

Une condition &store-protocol-error est levée si path n’est pas préfixée par le répertoire du dépôt (/gnu/store).

Procédure Scheme : add-text-to-store server name text [references]

Ajoute text dans le fichier name dans le dépôt et renvoie son chemin. references est la liste des chemins du dépôt référencés par le chemin du dépôt qui en résulte.

Scheme Procedure : build-derivations store derivations [mode] Build derivations, a list of <derivation> objects,

.drv file names, or derivation/output pairs, using the specified mode(build-mode normal) by default.

Remarque que le module (guix monads) fournit une monade ainsi que des version monadiques des procédures précédentes, avec le but de rendre plus facile de travailler avec le code qui accède au dépôt (voir La monade du dépôt).

Cette section est actuellement incomplète.


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