From f8b5d657a666df3f81a85599f082d5e50949b72d Mon Sep 17 00:00:00 2001 From: Konrad Hinsen Date: Tue, 11 Feb 2020 12:12:59 +0100 Subject: [PATCH] Intro Guix --- module5/ressources/guix_tutorial_fr.org | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/module5/ressources/guix_tutorial_fr.org b/module5/ressources/guix_tutorial_fr.org index d6abb5a..6bf870d 100644 --- a/module5/ressources/guix_tutorial_fr.org +++ b/module5/ressources/guix_tutorial_fr.org @@ -8,9 +8,15 @@ * Point de départ Pour utiliser Guix, il faut évidemment l'installer. Il y a deux façons d'y arriver: -1. Installer [[https://guix.gnu.org/manual/en/html_node/System-Installation.html][Guix System]] sur votre ordinateur, à la place d'une distribution Linux plus traditionnelle comme Debian ou Ubuntu. Tout votre système est alors géré avec Guix, ce qui a des avantages (notamment la reproductibilité totale de votre configuration), mais aussi des inconvénients (il y a moins que logiciels disponibles pour Guix que pour une vieille distribution genre Debian). +1. Installer [[https://guix.gnu.org/manual/en/html_node/System-Installation.html][Guix System]] sur votre ordinateur, à la place d'une distribution Linux plus traditionnelle comme Debian ou Ubuntu. Tout votre système est alors géré avec Guix, ce qui a des avantages (notamment la reproductibilité totale de votre configuration), mais aussi des inconvénients (il y a moins que logiciels disponibles pour Guix que pour une vieille distribution genre Debian). Vous pouvez bien sûr installer Guix dans une machine virtuelle. -2. Installer [[https://guix.gnu.org/manual/en/html_node/Binary-Installation.html][le gestionnaire de paquets Guix]] sur un ordinateur qui tourne déjà sous Linux. Vous pouvez alors utiliser Guix en parallèle avec le gestionnaire de paquets de votre distribution, ce qui donne beaucoup de flexibilité, mais il faut bien sûr faire attention à quel paquet est installé comment, et éviter des doublons. *Si vous utilisez Guix avec une autre distribution pour suivre ce tutoriel, assurez-vous de n'avoir installé ni Python ni Jupyter par un autre moyen que Guix, sinon des erreurs incompréhensibles sont presque garanties !* +2. Installer seulement [[https://guix.gnu.org/manual/en/html_node/Binary-Installation.html][le gestionnaire de paquets Guix]] sur un ordinateur qui tourne déjà sous Linux. Vous pouvez alors utiliser Guix en parallèle avec le gestionnaire de paquets de votre distribution, ce qui donne beaucoup de flexibilité, mais il faut bien sûr faire attention à quel paquet est installé comment, et éviter des doublons. Python est particulièrement problématique, parce que la coexistence de plusieurs installations de Python nécessite quelques précautions (qui n'ont rien à voir avec Guix d'ailleurs). Votre distribution Python a fort probablement déjà une installation Python, et ce tutoriel vous fera travailler avec un Python fourni par Guix, ce qui crée la possibilité d'un conflit. Si vous rencontrez des difficultés que vous ne pouvez pas résoudre (normalement le résultat d'une configuration personnalisée par $PATH et/ou $PYTHONPATH), perséverez : dès que vous arrivez au point ou je commence à utiliser "guix environment", ça devrait fonctionner quand-même (c'est fait pour!). + +D'abord, quelques mots sur le fonctionnement de Guix pour les habitués de Linux - si vous ne comprenez pas ces explications, ce n'est pas grave pour la suite. La gestion traditionnelle des logiciels sous Linux est basé sur des conventions définissant l'emplacement des fichiers. Par exemple, les exécutables se trouve sous =/bin=, =/usr/bin=, et =/usr/local/bin=. Ce genre de convention est très contraignant parce qu'elle vous empêche d'installer facilement plusieurs versions d'un même logiciel. + +Guix fonctionne autrement: il place tous les fichiers sous =/gnu/store=, ou chaque paquet à son sous-répertoire avec un nom très long et très bizarre comme par example =/gnu/store/kwf1gzgk7f0l1sz84d0frrfvlqysnbz7-jupyter-1.0.0=. Les 32 permiers caractères de ces noms de ces sous-répertoires sont en fait une somme de contrôle calculé sur le code source du logiciel et de toutes ses dépendances. Si vous installez Jupyter 1.0.0 avec une autre version de Python, cette somme de contrôle change, et elle change même si vous compilez Python avec une autre version de =gcc=. C'est comme ça que Guix permet la coëxistence de plusieurs versions. + +Sur cette base, Guix introduit des /profils/, qui remplacent la collection conventionnelle des répertoires comme =/bin=, =/lib=, =/etc= etc. A l'intérieur d'un profil, vous retrouvez ces répertoires, mais leur contenu ne consiste que de liens symboliques vers les paquets sous =/gnu/store=. Chaque utilisateur a son profil personnel, sous =$HOME/.guix-profile=. C'est comme ça que chaque utilisateur peut gèrer sa propre collection de logiciels, sans dépendre d'un administrateur pour les installer ou mettre à jour. Et comme les profils sont légers, on peut en définir d'autres à volonté (mais je n'en parle pas dans ce tutoriel). On peut aussi travailler avec des profils ephémères qui s'appellent "environnements". C'est cette approche que j'ai choisi pour ce tutoriel. * Séquence 2: Créer son propre environnement, automatiser sa construction et le partage ** 2.2 Installer tous les paquets dont on a besoin -- 2.18.1