Suivant: La configuration parfaite, Précédent: Construire depuis Git, Monter: Contribuer [Table des matières][Index]
Pour garder un environnement de travail sain, il est utile de tester les changement localement sans les installer pour de vrai. Pour pouvoir distinguer votre rôle « d’utilisateur·rice final·e » de celui parfois haut en couleur de « développeur·euse ».
Pour cela, tous les outils en ligne de commande sont utilisables même sans
avoir lancé make install
. Pour faire cela, vous devez d’abord avoir
un environnement avec toutes les dépendances disponibles (voir Construire depuis Git), et puis préfixer simplement chaque commande avec
./pre-inst-env
(le script pre-inst-env se trouve dans le
répertoire de plus haut niveau de l’arborescence des sources de Guix ; il
est généré en lançant ./bootstrap
suivit de
./configure
). À titre d’exemple, voici comment construire le
paquet hello
tel que défini dans votre arborescence de travail (cela
suppose que guix-daemon
fonctionne déjà sur votre système ; c’est
OK si c’est une version différente) :
$ ./pre-inst-env guix build hello
De même, pour une session Guile qui utilise les modules Guix :
$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' ;;; ("x86_64-linux")
… et pour une REPL (voir Utiliser Guix de manière interactive) :
$ ./pre-inst-env guile scheme@(guile-user)> ,use(guix) scheme@(guile-user)> ,use(gnu) scheme@(guile-user)> (define snakes (fold-packages (lambda (package lst) (if (string-prefix? "python" (package-name package)) (cons package lst) lst)) '())) scheme@(guile-user)> (length snakes) $1 = 361
Si vous travaillez sur le démon et son code supporté ou si
guix-daemon
n’est pas déjà lancé sur votre système, vous pouvez le
lancer directement depuis l’arborescence de construction43 :
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
Le script pre-inst-env
paramètre toutes les variables
d’environnement nécessaires, dont PATH
et GUILE_LOAD_PATH
.
Remarquez que ./pre-inst-env guix pull
ne met pas à jour
l’arborescence des sources locale ; cela met seulement à jour le lien
symbolique de ~/.config/guix/current (voir Invoquer guix pull
).
Lancez git pull
à la place si vous voulez mettre à jour votre
arborescence des source locale.
Parfois, surtout si vous avez récemment mis à jour votre dépôt, lancer
./pre-inst-env
affichera des messages semblables à l’exemple
suivant :
;;; note: source file /home/user/projects/guix/guix/progress.scm ;;; newer than compiled /home/user/projects/guix/guix/progress.go
Ce n’est qu’une remarque et vous pouvez l’ignorer sans problème. Vous pouvez
vous débarrasser de ce message en lançant make -j4
. Jusqu’à ce que
vous fassiez cela, Guile sera un tout petit peu plus lent parce qu’il doit
interpréter le code au lieu d’utiliser les fichiers objets Guile
(.go) précompilés.
Vous pouvez lancer make
automatiquement quand vous travaillez avec
watchexec
du paquet watchexec
. Par exemple, pour construire
de nouveau à chaque fois que vous modifiez un fichier de paquet lancez
‘watchexec -w gnu/packages -- make -j4’.
Le drapeau
-E de sudo
garantit que GUILE_LOAD_PATH
est
correctement configuré de sorte que guix-daemon
et les outils
qu’il utilise puissent trouver les modules Guile dont ils ont besoin.
Suivant: La configuration parfaite, Précédent: Construire depuis Git, Monter: Contribuer [Table des matières][Index]