Guix petit à petit (4) : les manifestes

Logo Guix

Sommaire :

Jusqu'ici, je t'ai montré comment gérer tes paquets logiciels manuellement, dans des profils, avec la commande guix package (et ses alias). Chacune de ces transactions crée une nouvelle génération d'un profil avec les modifications apportées.

Maintenant, je vais te montrer comment générer des profiles d'un seul coup avec ce qu'on appelle des manifestes !

Un manifest est un fichier source en Guile, dont le contenu ressemble à ça :

;; manifest-guile-dev.scm
(specifications->manifest
 '("emacs" "emacs-geiser" "emacs-paredit" "guile"))

Ce fichier peut alors être fourni en paramètre à la commande guix package comme suit :

# génère le profile "guile-dev" à partir du manifest "manifest-guile-dev.scm"
$ guix package --manifest=/path/to/manifest-guile-dev.scm --profile=${HOME}/.profiles-preso/guile-dev

À chaque fois que cette commande sera exécutée, le profile sera régénéré avec les dernières versions des paquets listés (c'est donc la même commande pour installer et mettre à jour les paquets) ! Et ce indépendamment de toute modification manuelle du profile. C'est-à-dire que si je génère mon profile à partir d'un manifeste ; puis que j'ajoute un paquet à mon profile via guix install ; puis que je régénère mon profile avec le manifeste, le paquet ajouté avec guix install ne sera pas présent dans la nouvelle génération.

Pour désinstaller un logiciel, il suffit d'éditer le manifeste et de supprimer le paquet en question.

Ensuite, il reste à activer le profile pour rendre la liste de logiciels accessibles :

GUIX_PROFILE="${HOME}/.profiles-preso/guile-dev" ; . "$GUIX_PROFILE"/etc/profile

Tu peux placer tes manifestes sous contrôle de version et ainsi les partager facilement, les inclure dans tes projets de développement logiciel, etc…

Liens utiles :

Merci beaucoup d'avoir lu cet article !

N'hésites pas à me donner ton avis, proposer une idée d'amélioration, ou poser une question ! Pour ce faire, laisses un commentaire plus bas ou contactes-moi

Abonnes-toi pour ne pas manquer les prochains :articles via Mastodon @jeko@write.as et RSSscreencasts via Peertube jeko@video.tedomum.net et RSS

Et encore plus important, partages ce blog et dis à tes amis que c'est le meilleur blog de l'histoire du logiciel libre ! Sans dec'

#guix #gnu #linux #hurd #français