Passage à GNU GuixSD

Il y a quelques semaines, j’ai décidé d’installer GNU GuixSD sur mon ordinateur personnel, en remplacement de Salix.

Dans cet article, je vais tenter de présenter cette distribution atypique et expliquer mes motivations à l’installer.

Logo de GuixSD

Abandon de Salix

Avant tout, j’aimerais indiquer les raisons qui m’ont poussé à abandonner Salix.

J’ai installé Salix en 2012, il y a donc plus de 6 ans (le système s’appelait Salix OS initialement). J’avais décrit mes impressions dans un article. À l’époque, c’était la version 13.37. J’ai ensuite migré vers la version 14.0, puis vers la version 14.1 et enfin vers la version 14.2.

Logo de Salix

J’ai eu quelques surprises ici et lors de migrations mais le système était globalement très stable. J’ai apprécié la base Slackware Linux et la possibilité de migrer à son rythme.

Seulement voilà, au bout des années, je commençais à avoir quelques reproches :

  • Mozilla Firefox était devenu instable (c’était encore la version ESR 52). Il prenait beaucoup de mémoire et plantait très souvent. Ce n’est pas sûr que ce problème soit vraiment lié à la distribution mais je devais changer de distribution pour le vérifier.
  • L’installation d’un paquet était un peu laborieuse. Il faut d’abord lancer slapt-get pour chercher si un paquet binaire existe. S’il n’existe pas, il faut ensuite lancer slapt-src pour chercher si un SlackBuild (la recette de construction d’un paquet binaire) existe. Si il existe, la construction est lancée mais les dépendances peuvent manquer. On installe alors les dépendances puis on relance la construction. Si le SlackBuild n’est pas disponible, ce qui était devenu pour moi assez fréquent, on doit chercher un SlackBuild sur Internet ou prendre son courage à deux mains et construire un SlackBuild ou un SLKBUILD (une recette simplifiée de construction de paquets binaires) soi-même.
  • Les mises à jour de noyau Linux étaient toujours un peu galère car je me retrouvais sans connexion Wifi et avec la nécessité de réappliquer la procédure de réinstallation du pilote propriétaire de l’adapatateur Wifi.

Mais toutes ces raisons ne sont en réalité que des fausses excuses. En vérité, j’avais surtout envie de voir autre chose. J’avais découvert les gestionnaires de paquets Nix et GNU Guix. Je les avais installés sur le système Salix, en complément du gestionnaire de paquets du système (et pour palier le manque de paquets). J’ai adhéré au concept et je souhaitais aller un pas plus loin en installant un système fondé sur ce type de gestionnaire de paquets.

Présentation de GNU Guix et GuixSD

Mais qu’est-ce que GNU Guix et GuixSD ?

GNU Guix est un gestionnaire de paquets avancé qui ne se limite pas à la simple maintenance de logiciels installés sur un système.

Logo de GNU Guix

Tout d’abord, il permet à un utilisateur ordinaire d’installer des logiciels sans être administrateur. L’intérêt est limité pour moi puisque j’ai naturellement accès au compte root mais je trouve que la fonctionnalité est assez sympathique. Et puis, si on peut éviter de se connecter en tant qu’administrateur, c’est toujours préférable.

Ensuite, GNU Guix permet de se créer des environnements personnalisés, dans lequel on peut installer un ensemble de logiciels dans des versions précises, sans toucher aux logiciels installés sur le système. C’est particulièrement intéressant lorsqu’on fait du développement logiciel et qu’on a besoin de bibliothèques dans des versions spécifiques ou dans plusieurs versions (pour tester). Ludovic Courtès, un des développeurs principaux de GNU Guix, explique très bien cet aspect dans deux articles publiés dans GNU/Linux Magazine (disponibles ici et ).

Enfin, GNU Guix est utilisé comme base de la distribution GNU GuixSD dans le sens où il permet la construction d’un système d’exploitation. La configuration du système (noyau à utiliser, systèmes de fichier, services disponibles, logiciels installés de base…) est décrite dans un seul fichier élémentaire, que GNU Guix utilise pour construire ou mettre à jour un système d’exploitation, et tout ceci de manière transactionnelle (si une mise à jour échoue en plein milieu, aucun changement n’est appliqué sur le système) et versionnée (si la nouvelle configuration ne fonctionne pas, ou moins bien, on peut revenir à la version précédente du système).

N’est-ce pas impressionnant tout cela ?

Plus concrètement, GNU GuixSD est une distribution qui permet d’installer un système d’exploitation i686 (32 bits) et x86_64 (64 bits) avec une base GNU et le noyau Linux-libre. Elle présente plus de 9000 paquets logiciels. Ils sont tous entièrement libres et ne présentent en particulier aucun microcode (firmware), ce qui explique le choix du noyau Linux-libre. Ce dernier point est un peu contraignant car il limite assez fort le nombre d’adaptateurs Wifi pouvant fonctionner avec la distribution fournie. Il est cependant possible, moyennant quelques efforts, de passer outre cette limitation, comme je l’expliquerai dans un prochain article. Il est à noter que c’est le gestionnaire de services GNU Shepherd qui est utilisé (donc pas de systemd ici).

Motivations du choix de GNU GuixSD

Alors, pourquoi avoir choisi GNU GuixSD ? Eh bien pour les raisons suivantes :

  • les possibilités offertes par le gestionnaire de paquets GNU Guix et, en particulier, la possibilité de se créer des environnements personnalisés ;
  • la garantie d’avoir une base entièrement libre ;
  • l’absence de systemd (dont je n’apprécie pas la conception) ;
  • l’aspect innovant de la distribution et du gestionnaire de paquets.

Dans un prochain article, je détaillerai ma découverte de cette distribution.

Mots-clefs : , , , , , ,

5 Réponses à “Passage à GNU GuixSD”

  1. Stéphane dit :

    Hello,

    J’ai découvert ce système il y à quelques mois (sur le « papier ») et ça à l’aire vraiment cool, mais je suis plus frileux que toi pour un passage en « prod » sur mon laptop.

    Si dans un prochain article tu peux expliqué (même rapidement) ce qui t’as posé problème lors de l’install, je sauterai peut-être le pas ;)

    En tout cas, merci pour ce billet qui était très intéressent.
    Bonne install (si ce n’est déjà fait) et merci encore.
    Stéphane

  2. Grime dit :

    Salut,

    Merci pour l’article, très intéressant, je trouve ça dommage et dangereux l’absence de firmwares par contre.
    Avec par exemple le microcode Intel, entre un binaire troué présent par défaut dans le BIOS et un binaire moins troué mais mis à jour via Linux, mon choix est vite fait.

  3. julien1001 dit :

    Stéphane :
    Je te remercie pour ton commentaire.
    J’ai beaucoup hésité avant de sauter le pas. Je viens de publier un article qui décrit mon cheminement et mes impressions avec cette distribution. N’hésite pas à ajouter un commentaire dans cet article si tu as des questions.

    Grime :
    Je te remercie pour ton commentaire.
    Ta remarque est pertinente. Je dois avouer que je ne m’y connais pas trop dans cette histoire de microcodes. Néanmoins, il me semble, en règle générale, assez sain de limiter le code propriétaire.
    Dans l’exemple que tu présentes, ne serait-il pas préférable de flasher le BIOS avec le correctif une bonne fois pour toutes (si c’est possible) ?

  4. Grime dit :

    Pour faire simple, tous les CPUs x86 Intel/AMD récents utilisent un microcode qui peut être mis à jour. C’est un blob qui, entre autres, corrige les bugs du CPU (comme un patch qui corrige un logiciel).
    Il est effectivement possible de le mettre à jour via le BIOS/UEFI, ce qui est recommandable étant donné qu’une mise à jour de BIOS peut mettre à jour et corrigé d’autres firmwares, notamment le terrible Intel Management Engine qui a connu une grosse faille. Cependant pour le BIOS tu es dépendant du constructeur, si ton PC n’est plus supporté, il ne te reste plus comme solution que de mettre à jour le microcode via un OS.

    Pour le fait de limiter le code propriétaire, je suis d’accord surtout à un niveau logiciel. Mais là on est à une couche en dessous, on parle de microcode, càd un blob très lié au matériel qui est déjà là et automatiquement chargé via le BIOS. En cas de faille mieux vaut le patcher et puis ça ne rajoute pas vraiment de code propriétaire, ça le corrige plutôt ;) .

  5. julien1001 dit :

    Grime: merci pour ton explication.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>