Essayons de comprendre GNU Guix
Guix est un gestionnaire de paquet transactionnel très prometteur. L'utilisation qui m'intéresse le plus et d'avoir un système déclaratif et reproductible pour gérer un environnement logiciel. Ça serait vraiment utile pour archiver le code et les simulations d'un article scientifique.
Pour le moment, j'ai compris que:
- On peut définir une liste de spécifications de paquets sous la forme d'une liste chaînes de caractères.
- On peut transformer cette liste en manifeste avec la procédure
(specifications->manifest), un manifeste peut être utilisé pour lancer un environment peuplé avec ces packagesguix shell --manifest manifest.scm - On peut utiliser Guix Home pour gérer les fichiers de configurations.
Voici un exemple de home-config.scm
(use-modules
(gnu)
(gnu home)
(gnu packages)
(gnu home services shells))
(define my-packages
(list "emacs"
"guile"
"emacs-geiser" "emacs-geiser-guile"
"emacs-ergoemacs-mode"
"fish")
)
(home-environment
(packages (map specification->package my-packages))
(services (list
(service home-fish-service-type)))
)