Gestion de logiciels avec GNU Guix

par Ludovic Courtes
Annonces, Documentation | Pas de commentaire

En plus de module, les usagers de PlaFRIM peuvent gérer leurs environnements logiciels avec GNU Guix, un outil de gestion de paquets générique.

Pourquoi utiliser Guix ?

Guix peut s'utiliser en complément et en parallèle de module. Il y a plusieurs raisons pour lesquelles il peut s'avérer utile pour vous :

  • Guix fournit plus de 7500 paquets notamment : des utilitaires comme tmux, des chaînes de compilation (GCC, Clang), des logiciels Python (Scikit-Learn, NumPy, etc.), des bibliothèques HPC (Open MPI, MUMPS, PETSc, etc.).
  • Des binaires pré-compilés sont généralement disponibles pour les paquets que vous installez, ce qui rend l'installation rapide.
  • Vous choisissez à quel moment vous mettez à jour ou enlevez les paquets que vous avec installés, et vous pouvez revenir en arrière à n'importe quel moment si une mise à jour a eu des effets indésirables.
  • Vous pouvez reproduire exactement le même environnement, bit à bit, sur PlaFRIM et sur n'importe quelle autre machine (portable, grappe de calcul, etc.).
  • Les environnements logiciels peuvent être "emballés" comme image Docker pour utilisation sur d'autres systèmes.

Prise en main

Recherche de paquets

Vous pouvez parcourir la liste de paquets en ligne ou avec une de ces commandes :

guix package --list-available
guix package -s
mot-clef

Installer des logiciels

Par défault Guix installe les logiciels dans votre répertoire d'accueil, sous ~/.guix-profile. Sur PlaFRIM, installer des logiciels avec Guix met automatiquement à jour vos variables d'environnement de sorte que, à la prochaine connexion, PATH, PYTHONPATH, et les autres variables du genre pointent sur ~/.guix-profile.

Pour installer la dernière chaîne de compilation GNU, lancez :

guix package --install gcc-toolchain

Pour Python 3.x avec NumPy and SciPy (remarque : la commande se nomme python3 et non python), lancez :

guix package -i python python-numpy python-scipy

Définir les variables d'environnement pour les chemins de recherche :

eval `guix package --search-paths=prefix`

Mettre à jour les paquets disponibles :

guix pull

Manipuler les "générations de profils"

Pour lister les "générations" de votre profil (c'est-à-dire les changements successifs que vous avez fait à votre ensemble de logiciels installés) :

guix package -l

Pour revenir à une génération précédente de votre profil :

guix package --roll-back

Utilisation des paquets Guix-HPC

Nous maintenanons un ensemble de paquets pour les logiciels des équipe-projets communes telles que STORM, HiePACS, and TaDaaM in dans le dépôt Guix-HPC. Pour l'utiliser, lancez :


$ git clone https://gitlab.inria.fr/guix-hpc/guix-hpc.git
$ export GUIX_PACKAGE_PATH=$PWD/guix-hpc/modules

Les logiciels propriétaires tels que CUDA ainsi que les variantes de logiciels libres dépendant de ceux-ci (comme par exemple starpu-cuda) sont disponibles séparément (requiert un compte gitlab.inria.fr) :


$ git clone https://gitlab.inria.fr/guix-hpc/guix-hpc-non-free.git
$ export GUIX_PACKAGE_PATH=$PWD/guix-hpc-non-free/modules

Créer des "lots applicatifs" portables

Une fois que vous avez un environnement logiciel qui vous convient sur PlaFRIM, vous aurez peut-être envie de créer un "lot applicatif" (application bundle) auto-suffisant que vous pourrez envoyer sur d'autres machines qui n'ont pas Guix. Avec guix pack vous pouvez créer des "images de conteneur" pour Docker ou Singularity ou même des archives tar. Pour plus d'information, voir les articles suivants :

Support

Pour plus d'information :

Merci d'envoyer vos demandes à plafrim-guix@inria.fr.

Sur la même thématique