Précédent: Services du dossier personnel, Monter: Configuration du dossier personnel [Table des matières][Index]
guix home
Une fois que vous avez écrit une déclaration d’environnement personnel
(voir Déclarer l’environnement personnel), elle peut être
instanciée avec la commande guix home
. Voici le résumé de
la commande :
guix home options… action file
file doit être le nom d’un fichier contenant une déclaration
home-environment
. action spécifie comment l’environnement
personnel est instancié, mais il y a quelques actions supplémentaires qui ne
l’instancient pas. Actuellement les valeurs suivantes sont prises en charge
:
search
Affiche les définitions des types de services personnels disponibles qui correspondent aux expressions régulières données, triées par pertinence :
$ guix home search shell name: home-shell-profile location: gnu/home/services/shells.scm:100:2 extends: home-files description: Create `~/.profile', which is used for environment initialization of POSIX compliant login shells. + This service type can be extended with a list of file-like objects. relevance: 6 name: home-fish location: gnu/home/services/shells.scm:640:2 extends: home-files home-profile description: Install and configure Fish, the friendly interactive shell. relevance: 3 name: home-zsh location: gnu/home/services/shells.scm:290:2 extends: home-files home-profile description: Install and configure Zsh. relevance: 1 name: home-bash location: gnu/home/services/shells.scm:508:2 extends: home-files home-profile description: Install and configure GNU Bash. relevance: 1 …
Comme pour guix search
, le résultat est écrit au format
recutils
, ce qui rend facile le filtrage de la sortie (voir GNU recutils databases dans GNU recutils manual).
container
Démarre un shell dans un environnement isolé — un conteneur — contenant votre dossier personnel spécifié par file.
Par exemple, voici comment vous pouvez démarrer un shell interactif dans un conteneur avec votre dossier personnel :
guix home container config.scm
C’est un conteneur jetable où vous pouvez gaiement jouer avec vos fichiers ; les changements effectués dans le conteneur et tous les processus qui y sont démarrés disparaissent aussitôt que vous sortez de ce shell.
Comme pour guix shell
, plusieurs options contrôlent ce conteneur :
Active le réseau dans le conteneur (il est désactivé par défaut).
Comme pour guix shell
, rend le répertoire source du système
hôte disponible en tant que target dans le conteneur — en
lecture-seule si vous utilisez --expose, et inscriptible si vous
utilisez --share (voir --expose et
--share).
En plus, vous pouvez lancer une commande dans ce conteneur, au lieu de démarrer un shell interactif. Par exemple, voici comment vérifier que les service Shepherd sont démarrés dans un conteneur personnel jetable :
guix home container config.scm -- herd status
La commande à lancer dans le conteneur doit être indiquée après --
(double tirets).
edit
Modifier ou visualiser la définition des types de services personnels donnés.
Par exemple, la commande plus bas ouvre votre éditeur, spécifié par la
variable d’environnement EDITOR
, sur la définition du type de service
home-mcron
:
guix home edit home-mcron
reconfigure
Construit l’environnement personnel décrit dans file et y bascule. Le
basculement signifie que le script d’activation sera évalué et (dans le
scénario de base) les liens symboliques vers les fichiers de configuration
générés dans la déclaration home-environment
seront créés dans
~. Si un fichier avec le même chemin existe dans le répertoire
personnel il sera déplacé vers
~/horodatage-guix-home-legacy-confis-backup, où
horodatage est l’epoch UNIX actuelle.
Remarque : Il est grandement recommandé de lancer
guix pull
une fois avant de lancerguix home reconfigure
pour la première fois (voir Invoquerguix pull
).
Cela met en application toute la configuration spécifiée dans file.
La commande démarre les services Shepherd spécifiés dans file qui ne
sont pas actuellement lancés ; si un service est actuellement exécuté cette
commande s’arrange pour qu’il soit mis à jour la prochaine fois qu’il est
stoppé (p. ex par herd stop service
ou herd restart
service
).
Cette commande crée une nouvelle génération dont le numéro est un de plus
que la génération actuelle (rapportée par guix home
list-generations
). Si cette génération existe déjà, elle sera réécrite.
Ce comportement correspond à celui de guix package
(voir Invoquer guix package
).
À la fin, le nouveau dossier personel est déployé dans ~/.guix-home. Ce répertoire contient les métadonnées de provenance : la liste des canaux utilisés (voir Canaux) et le fichier lui-même, s’il est disponible. Vous pouvez voir les informations de provenance avec :
guix home describe
Cette information est utile si vous voulez plus tard inspecter comment une génération particulière a été construite. En fait, en supposant que file est auto-contenu, vous pouvez reconstruire la génération n de votre environnement personnel avec :
guix time-machine \ -C /var/guix/profiles/per-user/USER/guix-home-n-link/channels.scm -- \ home reconfigure \ /var/guix/profiles/per-user/USER/guix-home-n-link/configuration.scm
Vous pouvez considérer cela comme une sorte de contrôle de version intégré ! Votre dossier personnel n’est pas seulement un artefact binaire : il contient ses propres sources.
Remarque : If you’re using Guix System,
guix-home-service-type
, on how to embed your home configuration in your system configuration such thatguix system reconfigure
deploys both your system and your home.
switch-generation
¶Bascule à une génération du dossier personnel existante. Cette action bascule de manière atomique à la génération du dossier personnel spécifiée.
La génération cible peut être spécifiée explicitement par son numéro de génération. Par exemple, l’invocation suivante passerait à la génération 7 du dossier personnel :
guix home switch-generation 7
La génération cible peut aussi être spécifiée relativement à la génération
actuelle avec la forme +N
ou -N
, où +3
signifie « trois
générations après la génération actuelle » et -1
signifie « une
génération précédent la génération actuelle ». Lorsque vous spécifiez un
nombre négatif comme -1
, il doit être précédé de --
pour
éviter qu’il ne soit compris comme une option. Par exemple :
guix home switch-generation -- -1
Cette action échouera si la génération spécifiée n’existe pas.
roll-back
¶Passe à la génération précédente du dossier personnel. C’est le contraire
de reconfigure
, et c’est exactement comme invoquer
switch-generation
avec pour argument -1
.
delete-generations
¶Supprimer des générations du dossier personnel, ce qui les rend disponibles
pour le ramasse-miettes (voir Invoquer guix gc
, pour des informations sur
la manière de lancer le « ramasse-miettes »).
Cela fonctionne comme pour ‘guix package --delete-generations’
(voir --delete-generations
). Avec aucun
argument, toutes les générations du dossier personnel sauf la génération
actuelle sont supprimées :
guix home delete-generations
Vous pouvez aussi choisir les générations que vous voulez supprimer. L’exemple plus bas supprime toutes les génération du dossier personnel plus vieilles que deux mois :
guix home delete-generations 2m
build
Construit la dérivation de l’environnement personnel, ce qui comprend tous les fichiers de configuration et les programmes requis. Cette action n’installe rien.
describe
Décrit la génération du dossier personnel actuel : son nom de fichier, ainsi que les informations de provenance si elles sont disponibles.
Pour afficher les paquets installés dans le profil de la génération actuelle
du dossier personnel, le drapeau --list-intalled
est proposé, avec la
même syntaxe que celle utilisée pour guix package --list-installed
(voir Invoquer guix package
). Par exemple, la commande suivante affiche
un tableau de tous les paquets avec « emacs » dans leur nom qui sont
installés dans la génération actuelle du profil du dossier personnel :
guix home describe --list-installed=emacs
list-generations
Affiche un résumé de chaque génération de l’environnement personnel
disponible sur le disque, dans un format lisible pour un humain. C’est
similaire à l’option --list-generations de guix package
(voir Invoquer guix package
).
Éventuellement, on peut spécifier un motif, avec la même syntaxe utilisée
pour guix package --list-generations
, pour restreindre la liste
des générations affichées. Par exemple, la commande suivante affiche les
générations de moins de 10 jours :
guix home list-generations 10d
Le drapeau --list-installed
peut aussi être spécifié, avec la même
syntaxe que celle utilisée dans guix home describe
. Cela peut être
utile si vous essayez de déterminer si un paquet a été ajouté au profil
personnel.
import
Génère un environnement personnel à partir des paquets du profil par défaut et des fichiers de configuration qui se trouvent dans votre répertoire personnel. Les fichiers de configuration sont copiés vers le répertoire donné, et un fichier home-configuration.scm sera rempli avec l’environnement personnel. Remarquez que les services personnels existants ne sont pas tous pris en charge (voir Services du dossier personnel).
$ guix home import ~/guix-config guix home: « /home/alice/guix-config » rempli avec tous les fichiers de configuration du dossier personnel
Et plus encore ! guix home
fournit aussi les sous-commandes
suivantes pour visualiser la manière dont les services de votre
environnement personnel sont liés les uns aux autres :
extension-graph
Émettre vers la sortie standard le graphe d’extension de service de
l’environnement personnel défini dans file (voir Composition de services, pour plus d’informations sur les extensions de service). Par
défaut, le format de sortie est le format Dot/Graphviz, mais vous pouvez
choisir un autre format avec --graph-backend, comme avec
guix graph
(voir --backend) :
La commande :
guix home extension-graph file | xdot -
montre les relations d’extension entre les services.
shepherd-graph
Affiche le graphe de dépendance des services shepherd de l’environnement personnel défini dans file sur la sortie standard. Voir Services Shepherd, pour plus d’informations et un exemple de graphe.
Encore une fois, le format de sortie par défaut est Dot/Graphviz, mais vous pouvez passer --graph-backend pour en choisir un autre.
options peut contenir n’importe quelle option commune de construction (voir Options de construction communes). En plus, options peut contenir l’une de ces options :
Considère l’environnement personnel en lequel s’évalue expr. C’est une alternative à la spécification d’un fichier qui s’évalue en un environnement personnel.
Dit à guix home reconfigure
de permettre le retour en arrière du
système.
Comme pour guix system
, guix home reconfigure
, par
défaut, vous empêche de faire revenir votre dossier personnel à une révision
plus vieille ou non liée par rapport aux révisions des canaux utilisés pour
le déployer — cette information est affichée par guix home
describe
. Avec --allow-downgrades, vous pouvez outrepasser cette
vérification, au risque de faire revenir votre dossier personnel en arrière
— faites attention !
Précédent: Services du dossier personnel, Monter: Configuration du dossier personnel [Table des matières][Index]