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


22.2 Lancer Guix avant qu’il ne soit installé

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 ».

To that end, all the command-line tools can be used even if you have not run make install. To do that, you first need to have an environment with all the dependencies available (voir Construire depuis Git), and then simply prefix each command with ./pre-inst-env (the pre-inst-env script lives in the top build tree of Guix; voir Construire depuis Git to generate it). As an example, here is how you would build the hello package as defined in your working tree (this assumes guix-daemon is already running on your system; it’s OK if it’s a different version):

$ ./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 construction45 :

$ 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’.


Notes de bas de page

(45)

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]