Comment interagir avec un paquet Guix ?
En préalable de ces explications, il est nécessaire d’avoir installé Guix sur votre machine ; voir ce lien pour plus de détails.
Ce tutoriel explicite les principales commandes permettant d’interagir avec les paquets Guix pour générer et interagir avec des environnements logiciels temporaires.
Comment accéder aux paquets diamond ?
Quand vous utilisez Guix, l’ensemble des paquets disponibles proviennent du canal guix par défaut : GNU Guix. Cependant, il est possible d’ajouter des canaux pour étendre la liste des paquets disponible. Dans le cadre du projet DIAMOND, certains codes ont été packagés via Guix et son disponible dans le canal guix-packages. Pour ajouter ce canal précis et donc pouvoir installer les paquets à l’aide de la commande guix install
, il faut créer un fichier ~/.config/guix/channels.scm
sur votre machine ou sur l’infrastructure HPC que vous utiliserez. Ce fichier doit contenir les lignes suivantes :
Une fois ceci fait, la commande guix pull
va mettre à jour la collection de paquets à partir du canal par défaut (GNU Guix) et du canal Diamond (guix-packages).
Attention
Une fois
guix pull
terminé, il est important d’exécuter les commandes suivantes, pour être sûr d’utiliser la commandeguix
à jour :
Enfin, pour vérifier que vous avez bien accès aux paquets Diamond, vous pouvez essayer de rechercher le paquet quantum-espresso
:
Comment utiliser les paquets guix ?
La commande guix shell
Cette commande fait apparaître un environnement logiciel temporaire contenant les dépendances permettant d’utiliser le code comme on le souhaite. En général, il est recommandé d’utiliser le flag --pure
ainsi qu’un fichier manifest.scm
. Pour le premier, il joue un rôle similaire au flag --cleanenv
d’Apptainer et permet de nettoyer les variables d’environnement du système hôte avant l’apparition de l’environnement logiciel temporaire. Le fichier manifest.scm
liste l’ensemble des paquets nécessaires à la bonne exécution du code. Plusieurs exemples de manifests sont disponible sur le dépôt gitlab regroupant l’ensemble des paquets Guix définis dans le cadre du projet Diamond : guix-packages.
Une utilisation classique de la commande guix shell
peut donc se résumer à la ligne suivante :
La commande guix time-machine
Certains paquets requièrent une version spécifique d’une ou plusieurs dépendances. Cependant, si vous avez exécuté la commande guix pull
, alors vous disposez des dernières versions de l’ensemble des paquets. Vous pouvez donc vous retrouvez dans un cas où le code que vous voulez utiliser ne se construit pas. Pas de panique, Guix a une solution tout faîte pour ces problèmes ! En effet, la commande guix time-machine
vous permet de revenir à un commit précédent, et donc d’avoir accès à des versions antérieures des dépendances. En pratique, il est recommandé d’utiliser un fichier channels.scm
qui contient les informations relatives au commit voulu. Encore une fois, plusieurs exemples de fichiers channels sont disponible sur le dépôt Gitlab du projet Diamond : guix-packages.
Une utilisation classique de la commande guix time-machine
peut donc se résumer à la ligne suivante :