Guix

      Commentaires fermés sur Guix

Guix est un gestionnaire de paquets fonctionnel et un système de gestion de configuration pour GNU. Il permet une installation et une gestion de logiciels reproductibles grâce à des paquets immuables et des descriptions de configuration déclaratives.

Liberté pour l’utilisateur :
  • de rajouter un logiciel dans le store
  • de se composer un profil à partir des éléments du store
  • de bâtir une version personnalisée d’un logiciel

Que permet Guix ?

  • Créer vos propres environnements de manière très flexible sans l’aide des administrateurs du cluster (c’est à dire sans être root).
  • Créer différents contextes de travail (profils).
  • Avoir une “recette” pour votre logiciel, afin de partager, faire installer et faire utiliser votre propre bibliothèque.

Pour commencer (À chaque nouvelle session)

source /opt/ohpc/pub/guix-start.sh

Mise à jour du référentiel Guix

guix pull

Gestion des paquets

Lister les paquets installés

guix package -I

Rechercher des paquets

https://packages.guix.gnu.org/ permet des recherches car les recherches en ligne de commande sont très verbeuses.

Recherche en ligne de commande

guix search emacs -> faire une recherche d'emacs

Pour quitter l’affichage, tapez la touche ‘q’.

Installation / Désinstallation

guix remove Nom_Du_Paquet -> Supprime l'installation
guix install Nom_Du_Paquet -> Fait une installation
guix install emacs python@3 python-tensorly -> installe emacs python en version 3 ...
 which python3 -> pour voir où est python3
~/.guix-profile/bin/python3

Le « Store » commun

Les commandes suivantes montrent que les programmes installés n’emcombrent pas votre répertoire mais sont situés dans /gnu/store commun à tous ! L’installation d’un utilisateur peut être très rapide si un autre à déjà fait l’installation. Seul des liens Unix sont créés ! De plus, cela permet de ne pas avoir plusieurs fois le programme installé.

ls -l ~/.guix-profile/bin/python3 lrwxrwxrwx 1 root root 69 Jan  1  1970 ~/.guix-profile/bin/python3 -> /gnu/store/8s8k2v6b5b7lyf5y5n534cjd9sipgas6-python-3.10.7/bin/python3 -> 

Les profils

Installer des paquets dans un profil

Installons gcc version 8 et lapack dans le profil nommé gcc8lapack

guix install -p $GUIX_USER_PROFILE_DIR/gcc8lapack gcc-toolchain@8 lapack -> construit un profil avec les logiciels listés
guix package -p $GUIX_USER_PROFILE_DIR/gcc8lapack -I -> liste les logiciels du profil

Ajout de vim dans le profil

guix install -p $GUIX_USER_PROFILE_DIR/gcc8lapack vim
guix package -p $GUIX_USER_PROFILE_DIR/gcc8lapack -I -> Listage du contenu du profil

Gestion des profils

Lister les profils

guix package --list-profiles

Aller dans un profil

guix shell -p $GUIX_USER_PROFILE_DIR/"gcc8lapack"
gcc --version -> gcc (GCC) 8.5.0 s'affiche
exit
gcc --version -> la version du système s'affiche

Gestion des générations

guix package --list-generations -> Liste les "générations"/étapes successives de l'environnement guix.
guix package --roll-back -> Revient à la génération précédente.
guix package --switch-generation=42 -> permute en génération 42
guix gc --delete-generations -> supprime les générations archivées
guix package -p $GUIX_USER_PROFILE_DIR/"gcc8lapack" --list-generations -> Liste les "générations" du profil gcc8lapack

Canaux

Editez le fichier ~/.config/guix/channels.scm pour ajouter des canaux. Exemple :

(append
(list (channel
(name 'guix-hpc)
(url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")
(branch "master")))
%default-channels)

HPC et Guix

Cet article est une introduction, une invitation à expérimenter guix. De nombreuses possibilités pour exploiter HPC/slurm existent mais restent à documenter. Cela nécessite du temps qui sera mobilisé au moment où l’on aura des utilisateurs demandeurs : Ils sont bienvenus !

Liens