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


2.5 Invoquer guix-daemon

Le programme guix-daemon implémente toutes les fonctionnalités d’accès au dépôt. Cela inclus le lancement des processus de construction, le lancement du ramasse-miettes, la demande de disponibilité des résultats de construction, etc. Il tourne normalement en root comme ceci :

# guix-daemon --build-users-group=guixbuild

Pour des détails sur son paramétrage, voir Paramétrer le démon.

Par défaut, guix-daemon lance les processus de construction sous différents UID récupérés depuis le groupe de construction spécifié avec --build-users-group. En plus, chaque processus de construction est lancé dans un environnement chroot qui ne contient que le sous-ensemble du dépôt dont le processus de construction dépend, tel que spécifié par sa dérivation (voir dérivation), plus un ensemble de répertoires systèmes spécifiques. Par défaut ce dernier contient /dev et /dev/pts. De plus, sous GNU/Linux, l’environnement de construction est un conteneur : en plus d’avoir sa propre arborescence du système de fichier, elle a un espace de montage séparé, son propre espace de PID, son espace de réseau, etc. Cela aide à obtenir des constructions reproductibles (voir Fonctionnalités).

Lorsque le démon effectue une construction pour le compte de l’utilisateur·rice, il crée un répertoire sous /tmp ou sous le répertoire spécifié par sa variable d’environnement TMPDIR. Ce répertoire est partagé avec le conteneur pendant la durée de la construction, bien que dans le conteneur, l’arborescence de construction est toujours appelée /tmp/guix-build-name.drv-0.

Le répertoire de construction est automatiquement supprimé à la fin, à moins que la construction n’ait échoué et que le client ait spécifié --keep-failed (voir --keep-failed).

Le démon écoute les connexions et démarre un sous-processus pour chaque session démarrée par un client (l’une des sous-commandes de guix). La commande guix processes vous permet d’obtenir un aperçu de l’activité sur votre système en affichant chaque session et client actif. Voir Invoquer guix processes pour plus d’informations.

Les options en ligne de commande suivantes sont disponibles :

--build-users-group=groupe

Utiliser les comptes du groupe pour lancer les processus de construction (voir comptes de construction).

--no-substitutes

Ne pas utiliser de substitut pour les résultats de la construction. C’est-à-dire, toujours construire localement plutôt que de permettre le téléchargement de binaires pré-construits (voir Substituts).

Lorsque le démon tourne avec --no-substitutes, les clients peuvent toujours activer explicitement la substitution via l’appel de procédure distante set-build-options (voir Le dépôt).

--substitute-urls=urls

Considérer urls comme la liste séparée par des espaces des URL des sources de substituts par défaut. Lorsque cette option est omise, ‘https://ci.guix.gnu.org’ est utilisé.

Cela signifie que les substituts sont téléchargés depuis les urls, tant qu’ils sont signés par une signature de confiance (voir Substituts).

--no-offload

Do not use offload builds to other machines (voir Réglages du délestage du démon). That is, always build things locally instead of offloading builds to remote machines.

--cache-failures

Mettre les échecs de construction en cache. Par défaut, seules les constructions réussies sont mises en cache.

Lorsque cette option est utilisée, guix gc --list-failures peut être utilisé pour demander l’ensemble des éléments du dépôt marqués comme échoués ; guix gc --clear-failures vide la liste des éléments aillant échoué. Voir Invoquer guix gc.

--cores=n
-c n

Utiliser n cœurs CPU pour construire chaque dérivation ; 0 signifie autant que possible.

La valeur par défaut est 0, mais elle peut être modifiée par les clients comme avec l’option --cores de guix build (voir Invoquer guix build).

L’effet est de définir la variable d’environnement NIX_BUILD_CORES dans le processus de construction, qui peut ensuite l’utiliser pour exploiter le parallélisme en interne — par exemple en lançant make -j$NIX_BUILD_CORES.

--max-jobs=n
-M n

Permettre au plus n travaux de construction en parallèle. La valeur par défaut est 1. La mettre à 0 signifie qu’aucune construction ne sera effectuée localement ; à la place, le démon déchargera les constructions (voir Réglages du délestage du démon) ou échouera.

--max-silent-time=secondes

Lorsque le processus de construction ou de substitution restent silencieux pendant plus de secondes, le terminer et rapporter une erreur de construction.

La valeur par défaut est 0, ce qui désactive le délai.

La valeur spécifiée ici peut être modifiée par les clients (voir --max-silent-time).

--timeout=secondes

De même, lorsque le processus de construction ou de substitution dure plus de secondes, le terminer et rapporter une erreur de construction.

La valeur par défaut est 0, ce qui désactive le délai.

La valeur spécifiée ici peut être modifiée par les clients (voir --timeout).

--rounds=N

Construire chaque dérivations N fois à la suite, et lever une erreur si les résultats de construction consécutifs ne sont pas identiques bit-à-bit. Remarquez que ce paramètre peut être modifié par les clients comme guix build (voir Invoquer guix build).

Lorsqu’utilisé avec --keep-failed, la sortie différente est gardée dans le dépôt sous /gnu/store/…-check. Cela rend plus facile l’étude des différences entre les deux résultats.

--debug

Produire une sortie de débogage.

Cela est utile pour déboguer des problèmes de démarrage du démon, mais ensuite elle peut être modifiée par les clients, par exemple par l’option --verbosity de guix build (voir Invoquer guix build).

--chroot-directory=rép

Ajouter rép au chroot de construction.

Cela peut changer le résultat d’un processus de construction — par exemple s’il utilise une dépendance facultative trouvée dans rép lorsqu’elle est disponible ou pas sinon. Pour cette raison, il n’est pas recommandé d’utiliser cette option. À la place, assurez-vous que chaque dérivation déclare toutes les entrées dont elle a besoin.

--disable-chroot

Désactive les constructions dans un chroot.

Utiliser cette option n’est pas recommandé car, de nouveau, elle permet aux processus de construction d’accéder à des dépendances non déclarées. Elle est nécessaire cependant lorsque guix-daemon tourne sans privilèges.

--log-compression=type

Compresser les journaux de construction suivant le type, parmi gzip, bzip2 ou none.

À moins que --lose-logs ne soit utilisé, tous les journaux de construction sont gardés dans localstatedir. Pour gagner de la place, le démon les compresse automatiquement avec bzip2 par défaut.

--disable-deduplication

Désactiver la « déduplication » automatique des fichiers dans le dépôt.

Par défaut, les fichiers ajoutés au dépôt sont automatiquement « dédupliqués » : si un nouveau fichier est identique à un autre fichier trouvé dans le dépôt, le démon en fait un lien en dur vers l’autre fichier. Cela réduit considérablement l’utilisation de l’espace disque au prix d’une charge en entrée/sortie plus grande à la fin d’un processus de construction. Cette option désactive cette optimisation.

--gc-keep-outputs[=yes|no]

Dire si le ramasse-miettes (GC) doit garder les sorties des dérivations utilisées.

Lorsqu’elle est à « yes », le GC gardera les sorties de toutes les dérivations — les fichiers .drv — accessibles dans le dépôt. La valeur par défaut est « no », ce qui signifie que les sorties des dérivations ne sont gardées que si elles sont accessibles à partir d’une racine du GC. Voir Invoquer guix gc pour plus d’informations sur les racines du GC.

--gc-keep-derivations[=yes|no]

Dire si le ramasse-miettes (GC) doit garder les dérivations correspondant à des sorties utilisées.

Lorsqu’elle est à « yes », comme c’est le cas par défaut, le GC garde les dérivations — c.-à-d. les fichiers .drv — tant qu’au moins une de leurs sorties est utilisée. Cela permet de garder une trace de l’origine des éléments du dépôt. Le mettre à « no » préserve un peu d’espace disque.

De cette manière, avec --gc-keep-derivations à « yes », l’accessibilité des sorties s’étend des sorties aux dérivations et avec --gc-keep-outputs à « yes », elle s’étend des dérivations aux sorties. Quand les deux options sont à « yes », le GC gardera tous les prérequis de construction (les sources, le compilateur, les bibliothèques, et les autres outils de construction) des objets accessibles dans le dépôt, indépendamment du fait qu’ils soient ou non accessibles depuis une racine du GC. Cela est pratique pour les développeurs car ça leur fait gagner du temps de reconstruction et de téléchargement.

--impersonate-linux-2.6

Sur les système basés sur Linux, se faire passer pour Linux 2.6. Cela signifie que l’appel système du noyau uname rapportera 2.6 comme numéro de version.

Cela peut être utile pour construire des programmes qui dépendent (généralement sans fondement) du numéro de version du noyau.

--lose-logs

Ne pas garder les journaux de construction. Par défaut ils sont gardés dans localstatedir/guix/log.

--system=système

Supposer que système est le type de système actuel. Par défaut c’est la paire architecture-noyau trouvée à la configuration, comme x86_64-linux.

--listen=extrémité

Écouter les connexions sur extrémité. extrémité est interprété comme un nom de fichier d’un socket Unix-domain s’il commence par / (barre oblique). Sinon, extrémité est interprété comme un nom de domaine ou d’hôte et un port sur lequel écouter. Voici quelques exemples :

--listen=/gnu/var/daemon

Écouter les connexions sur le socket Unix-domain /gnu/var/daemon en le créant si besoin.

--listen=localhost

Écouter les connexions TCP sur l’interface réseau correspondant à localhost sur le port 44146.

--listen=128.0.0.42:1234

Écouter les connexions TCP sur l’interface réseau correspondant à 128.0.0.42 sur le port 1234.

Cette option peut être répétée plusieurs fois, auquel cas guix-daemon accepte des connexions sur toutes les extrémités spécifiées. On peut indiquer aux commandes clientes à quoi se connecter en paramétrant la variable d’environnement GUIX_DAEMON_SOCKET (voir GUIX_DAEMON_SOCKET).

Remarque : Le protocole du démon est non authentifié et non chiffré. Utiliser --listen=host est adapté sur des réseaux locaux, comme pour des grappes de serveurs, où seuls des nœuds de confiance peuvent se connecter au démon de construction. Dans les autres cas où l’accès à distance au démon est requis, nous conseillons d’utiliser un socket Unix-domain avec SSH.

Lorsque --listen est omis, guix-daemon écoute les connexions sur le socket Unix-domain situé à localstatedir/guix/daemon-socket/socket.


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