Journal De l'installation de Guix System

Posté par  . Licence CC By‑SA.
56
3
août
2023

Sommaire

Bonjour, pour mon premier journal (compte récent, mais je lis DLFP depuis une vingtaine d'années), je vais vous parler de l'installation que je viens de faire de Guix System sur mon ordinateur portable personnel. C'est autant pour garder une trace pour moi-même, que pour partager mon expérience avec d'autres.

Introduction et blabla

S'il est vrai que la documentation de Guix est vraiment bien faite, et est dans les grandes lignes très suffisante, il n'est pas évident de trouver des retours d'expérience d'utilisateurs un peu plus lambda que la moyenne sur cette distribution. Il n'y a pas de forum, pas de wiki, juste une mailing list ou deux, un cookbook, c'est pas évident de trouver des infos sans se taper des discussions à rallonge où on n'est même pas sûr de trouver des réponses à nos questions.

Dans ce premier journal, on va uniquement parler de l'installation du système de base en tant qu'unique système sur votre ordinateur, pour une utilisation orientée desktop. Avec formatage du disque dur. On ne va pas se contenter de suivre bêtement la documentation, mais en profiter pour faire quelques choix différents, ou tout du moins montrer aux lecteurs que c'est pas bien velu si on veut l'utiliser au quotidien.

Les prérequis

D'ailleurs les prérequis sont relativement limités. Il faut quand même connaître un minimum le terminal, comprendre ce qu'on fait quand on tape une ligne de commande, savoir lire de la documentation, ce genre de choses. Je vais partir du principe que vous savez partitionner un disque dur. Rien ne vous empêche, si vous ne savez pas faire, d'aller voir les articles correspondants sur le wiki d'Arch Linux (peut-être la seule documentation mieux faite que celle de Guix).

Si vous avez le niveau pour Debian, Arch ou Gentoo, alors vous aurez le niveau pour Guix. Si vous connaissez dd, cat, nano, fdisk, cp et curl, vous savez déjà tout faire.

L'installation se fera sur un ordinateur avec UEFI.

blabla

Je ne suis moi-même pas un expert. Loin de là. Je ne connais ni scheme, ni Lisp, ni Guile, à vrai dire je ne suis même pas capable d'écrire un script bash de plus de quelques lignes. Je ne sais pas programmer. Je ne travaille pas dans l'informatique. Je suis un simple cuisinier qui s'intéresse au logiciel libre depuis environ toujours, mais ça s'arrête là. Je n'ai jamais vraiment contribué. Depuis 15 ans environ, mon ordinateur tourne sous Arch, et j'essaie de ne rien faire que je ne comprenne pas. J'ai le souvenir d'avoir essayé un live de Mandrake sur le Celeron 500MHz familial quand j'étais au lycée, c'était mon premier contact.

Vous pouvez utiliser le gestionnaire de paquet Guix sur votre distribution préférée

Bref, je m'égare tout ça pour dire, c'est pas dur. Je vous conseille quand même très fortement, avant de vous lancer dans l'installation du système, à passer deux ou trois jours à lire la documentation officielle, à installer le gestionnaire de paquet Guix sur votre distribution actuelle pour jouer un peu avec, apprendre les deux-trois trucs de base (gestion des paquets par exemple, syntaxe de guile également, ce genre de choses). Ce n'est pas du tout indispensable, mais c'est mieux pour vous. Lisez au moins la documentation d'installation officielle, et gardez-la ouverte pour la suivre en parallèle de ce guide.

C'est bien gentil Guix, mais on fait comment si on a du matos qui a besoin de firmware non-libre ?

Ce que ce journal n'est pas, c'est une présentation de Guix. Il y a déjà tout ce qu'il faut sur Internet, et même sur LinuxFR. En revanche, on va parler du sujet qui fâche, le fait que ce soit une distribution avec uniquement du logiciel libre, et donc linux-libre en tant que noyau. C'est chiant. Donc on va utiliser le dépôt tiers nonguix, qui contient des logiciels privateurs. Si on veut faire fonctionner le wifi, c'est presque indispensable.

Le problème, c'est qu'évidemment le média d'installation utilise lui aussi (forcément) linux-libre. Si comme moi vous n'avez qu'une carte wifi Intel pour accéder à Internet, vous êtes déjà bloqué avant même d'avoir commencé. Heureusement, il y a deux ressources dont on va se servir et qui vont grandement nous simplifier la tâche. Le dépôt nonguix donc, mais aussi l'excellent site System Crafters, qui a lui-même déjà écrit un guide d'installation avec le noyau de nonguix. Plus qu'une inspiration, ça sera carrément notre support de base. En plus d'avoir écrit son guide, il met à disposition des médias d'installation avec le noyau de nonguix. Compilé automatiquement toutes les semaines. La vie est belle. Qu'il soit béni sur sept générations, et que ses louanges soient chantées du Nord au Sud et d'Est en Ouest.

l'Installation

On va donc commencer par récupérer l'image d'installation ici. Ensuite on va la copier sur une clé USB :

#si votre clé usb est /dev/sdb, sinon adaptez à partir du résultat de lsblk
dd if=image.iso of=/dev/sdb

Ensuite on redémarre, on boote sur la clé USB, on passe Grub, on arrive au bout de quelques instants sur l'installeur graphique. La première étape consiste à choisir la langue d'installation. Sans surprise j'ai choisi français.

Vient la timezone, pour moi Europe puis Paris. Le hostname, la disposition bépo clavier.

Ensuite on a un choix à faire. On va partir sur installation graphique, et non installation shell. Ça va nous permettre de générer un premier fichier de configuration, mais on l'éditera à la main avant de lancer l'installation proprement dite en ligne de commande. Autrement dit, on ne va pas aller tout à fait au bout du processus en mode graphique.

À l'étape d'après, on va se connecter au réseau wifi. Si comme moi vous avez une carte wifi qui nécessite de charger un firmware non libre, vous aurez droit à un avertissement de non prise en charge du matériel. Cet avertissement est caduque, puisqu'on utilise un média d'installation avec le noyau linux, et non linux-libre. Votre carte devrait donc fonctionner normalement.
Pour se connecter, je vous laisse faire. Il faut appuyer sur scan pour scanner les réseaux, sélectionner le bon, entrer le mot de passe… Si vous avez déjà utilisé une interface graphique dans une console, c'est sans surprise. Pour les autres, sachez qu'il faut se déplacer avec les flèches du clavier dans les listes, <tab> pour changer la surbrillance, <espace> pour changer les options, <entrée> pour valider.

Premier problème : la date

Là vous pouvez éventuellement rencontrer une première difficultée. L'ordinateur se connecte au réseau wifi, mais l'installeur refuse d'aller plus loin sous prétexte qu'il n'est pas connecté à Internet. Ça peut être parce que la date n'est pas bonne, et de ce fait il refuse de valider le certificat du site qu'il contacte pour valider la connexion. Pas de panique, on va régler ça. L'installeur grapgique est sur le TTY1. Sur le 2 il y a la documentation d'installation officielle. On va aller sur le 3. Donc ctrl + alt + F3, entrée pour se connecter, date pour vérifier que notre théorie est la bonne. Si c'est bien cela, man date pour apprendre à régler la bonne date (indice : -s).

On retourne dans l'installeur graphique avec ctrl + alt + F1, on se reconnecte au wifi, et normalement tout roule.

On continue

Ensuite on peut choisir d'activer ou pas la découverte des serveurs de substituts sur le réseau local. Vous faites bien ce que vous voulez, mais si vous êtes ici, sauf à vous être introduits clandestinement à l'INRIA, vous pouvez chosir de ne pas l'activer.

Pour ceux qui ont eu la flemme de lire la doc, les substituts c'est les paquets précompilés. Sans eux ça vous allez tout compiler sur votre machine comme une distribution source. Mais dans tous les cas, même si on désactive la recherche locale, on va quand même utiliser les serveurs de substituts globaux.

Le mot de passe root, vous mettez un truc au pif, on ne s'en servira pas. Création de votre utilisateur, pareil le mot de passe ne sera pas pris en compte (mais le reste si !).

Le débat sans fin : Gnome, ou Gnome ? Vous choisissez votre gestionnaire de bureau préféré. Dans ce guide on part sur Gnome, on tolère XFCE, et le reste on connait même pas. Dans un éventuel futur journal on utilisera Sway, voire mieux encore (mais c'est une surprise).

Dans les services de base qu'on nous propose d'activer, on ne désélectionne surtout pas les certificats ! Sinon on ne pourra pas vérifier les certificats TLS des serveurs qu'on contacte, et votre expérience de navigation sur le web va vite être limitée.

Et c'est parti pour le partitionnement du disque

C'est mal, mais je ne chiffre pas mes partitions. Il faut dire que mon ordinateur ne quitte que rarement mon salon, et quasiment jamais ma maison.

Histoire de me rajouter une difficulté, j'ai décide pour la première fois de ne pas utiliser ext4 comme système de fichier, mais btrfs, suite à l'article de PCI.. Je ne connais pas ce FS, mais ça devrait bien se passer. On lit la page du wiki d'Arch correspondante, la section de la documentation de Guix qui va bien, le man de btrfs, et on est prêt à configurer tout ça.

Dans l'installeur graphique, on sélectionne méthode manuelle. On sélectionne le disque sur lequel on veut installer le système, afin de créer une nouvelle table de partition gpt.

Ensuite on va créer deux partitions en sélectionnant l'espace libre disponible :

nom : efi
Type : fat32
ESP : oui
Taille : 512MB
Point de montage : /boot/efi

puis

nom : guix-pool
type : btrfs
ESP : non
Taille : la valeur par défaut (tout le reste du disque)
Chiffrement : non
Point de montage : /

J'ai un problème avec le label (ici "guix-pool") que Guix ne reconnait jamais. Dans la configuration j'utilise donc les UUID.

Si vous préférez, vous pouvez utiliser fdisk ou parted dans le TTY3 pour arriver au même résultat. Si vous voulez chiffrer vos partitions, grand bien vous fasse. Ça va utiliser LUKS. Je ne rentre pas dans les détails, mais c'est pas compliqué. Vous choissiez un mot de passe et Guix va tout configurer tout seul si vous utilisez les partitions de manière classique. Avec les sous-volumens btrfs, il va sûrement falloir bricoler un peu.
Si vous préférez utiliser XFS ou EXT4, pas de souci vous êtes quand même les bienvenus.

Une fois le disque partitionné, l'installeur va nous afficher le fichier de configuration qu'il a généré. On ne s'en occupe pas ici.

C'est terminé pour l'installation graphique

À partir de là, on va retourner dans le TTY3 pour finir l'installation à la main. Donc ctrl + alt + F3.

En premier, on va choisir la bonne disposition clavier avec la commande loadkeys. Par défaut le clavier est en qwerty, pour la plupart un loadkeys fr suffira, mais pour certaines personnes très belles, les écrivains et les maires, un loadkeys fr-bepo sera plus approprié.

L'installeur graphique a déjà monté le futur disque système sur /mnt, mais nous on veut encore le modifier un peu pour utiliser les sousvolumes de btrfs. On va donc le démonter :

umount -R /mnt
#Si vous voulez nommer le disque "guix-pool"
#Je donne la commande pour info mais encore une fois, chez moi ça ne sert à rien
btrfs filesystem label /dev/sda2 guix-pool

Nous allons créer pas moins de 4 sous-volumes. Un pour la racine, un pour le store, un pour les homes des utilisateurs et un pour le swap.

# D'abord on monte le pool avec une option de compression
# Les options sont choisies après lecture du wiki de Arch et du manpage de btrfs, vous faites comme vous le sentez
mount -o compress-force=zstd /dev/sda2 /mnt
btrfs subvolume create /mnt/root
btrfs subvolume create /mnt/swap
btrfs subvolume create /mnt/home
btrfs subvolume create /mnt/gnustore

Je crois que les vrais utilisent une seule commande du type btrfs subvolume create /mnt/{root,swap,home,gnustore} mais moi vu mon niveau j'hésite à faire le foufou.

Comme on a créé un sous-volume pour la racine, il faut la désigner comme défaut pour le montage (c'est pas du tout obligatoire, mais on va le faire pour info).

btrfs subvolume list -p /mnt

Voici le résultat de la commande chez moi :

ID 256 gen 917 parent 5 top level 5 path root
ID 257 gen 375 parent 5 top level 5 path swap
ID 258 gen 630 parent 5 top level 5 path gnustore
ID 259 gen 917 parent 5 top level 5 path home

L'ID 256 est ce qui nous intéresse :

btrfs subvolume set-default 256 /mnt

À partir de là si on monte /dev/sda2 sans plus de précision, c'est en fait le sous-volume root qu'on va monter.

On crée le swapfile :

# J'ai 8Go de RAM, donc la taille est identique pour permettre l'hibernation (normalement tu connais)
btrfs filesystem mkswapfile --size 8g --uuid clear /mnt/swap/swapfile

L'installeur graphique a déjà créé des dossiers et fichiers à la racine du disque, sauf que nous on a créé un sous-volume. On va y déplacer tout ceci :

mv /mnt/boot /mnt/root/boot
mv /mnt/etc /mnt/root/etc

Il faut ensuite redémonter le disque, puis tout remonter à sa bonne place :

umount /mnt

#préciser le sous-volume est facultatif si vous l'avez défini par défaut
mount -o compress-force=zstd,subvol=root /dev/sda2 /mnt

#on crée les points de montage
mkdir /mnt/swap
mkdir /mnt/home
mkdir -p /mnt/gnu/store

#on monte les sous-volumes au bon endroit
mount -o subvol=swap /dev/sda2 /mnt/swap
mount -o compress-force=zstd,subvol=home /dev/sda2 /mnt/home
mount -o compress-force=zstd,subvol=gnustore /dev/sda2 /mnt/gnu/store

C'est terminé pour la configuration du disque, maintenant on va pouvoir retourner sur le guide de System Crafters pour l'installation proprement dite. On a monté le sous-volume contenant le fichier de swap pour la gloire, il est vrai que ça ne sert à rien pour l'instant. Mais comme ça vous savez tout faire.

Dans la même idée, on peut créer les sous-volumes avant de démonter le disque la première fois. C'est un peu redondant de le démonter puis de le remonter. Voire carrément inutile. Mais c'est comme ça que j'ai fait parce que j'ai tout découvert au fur et à mesure.

Notez que depuis le noyau 6.2, linux active automagiquement le trim pour les SSD, pas besoin de s'en soucier.

Dernières petites choses avant de lancer l'installation

On va suivre le paragraphe « Editing the generated configuration » :

# emacs, nano et vim sont disponibles dans le media d'installation.
# Je conseille emacs ou vim pour avoir la correspondance des parenthèses.
vim /mnt/etc/config.scm
# on ajoute (nongnu pakages linux)
(use-modules (gnu) (nongnu packages linux))

# un peu plus bas, sous (operating-system on ajoute le noyau et les firmwares non libres
(kernel linux)
(firmware (list linux-firmware))

# Il faut également configurer le montage des volumes du pool btrfs qu'on a créé.
# Pour l'instant on monte le minimum, on s'occupera du swapfile plus tard.
# Dans (file-systems (cons* on ajoute tout ce qui va bien
# lsblk -o name,uuid pour avoir l'uuid du disque si besoin

(file-systems (cons* (file-system
                         (mount-point "/")
                         (device (uuid "934dfddf-a883-4f49-ae8d-462bd12924dd"))
                         (type "btrfs")
                         (options "subvol=rootvol,compress-force=zstd"))
                     (file-system
                         (mount-point "/home")
                         (device (uuid "934dfddf-a883-4f49-ae8d-462bd12924dd"))
                         (type "btrfs")
                         (options "subvol=home,compress-force=zstd"))
                     (file-system
                         (mount-point "/gnu/store")
                         (device (uuid "934dfddf-a883-4f49-ae8d-462bd12924dd"))
                         (type "btrfs")
                         (options "subvol=gnustore,compress-force=zstd"))
                     (file-system
                         (mount-point "/boot/efi")
                         (device (uuid "F89C-C0FC"
                                       'fat32))
                         (type "vfat")) 
                     %base-file-systems)))

Si on suit le guide de System Crafters, l'installation ne va pas utiliser le serveur de substituts de nonguix, et donc compiler le noyau linux sur votre machine. Ce n'est pas ce qu'on veut, on va donc activer son utilisation. Pour cela, vous connaissez la chanson, on lit la documentation officielle, paragraphe "Substitutes for nonguix".

Voici ce à quoi ça se résume pour autoriser le serveur :

curl https://substitutes.nonguix.org/signing-key.pub > key.pub
guix archive --authorize < key.pub
# Le warning n'est pas important, nous ne sommes que sur un système temporaire.

On peut maintenant lancer l'installation.

herd start cow-store /mnt
cp /etc/channels.scm /mnt/etc/
guix time-machine -C /mnt/etc/channels.scm -- system init --substitute-urls="https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org" /mnt/etc/config.scm /mnt

On attend, l'installation est un peu longue. Si certains substituts ne sont pas disponibles, des compilations vont avoir lieu en local. C'est normal. Une fois que c'est terminé, on peut redémarrer la machine avec reboot.

On sort évidemment la clé USB contenant le média d'installation pour ne pas démarrer dessus, et normalement sous vos yeux ébahis on découvre notre système Guix fraîchement installé. Les mots de passe n'étant pas encore définis, on ne peut pas s'identifier dans GDM. ctrl + alt + F2 pour avoir une invite de commande. On commence par s'identifier en root puis on utilise passwd puis passwd <nom-d'utilisateur> pour créer les mots de passe. exit pour quitter la session, et ctrl + alt + F7 pour retourner sur le display manager. On peut alors s'identifier avec son utilisateur et le mot de passe qu'on vient de créer.

Je vous laisse lire la fin sur System Crafters, il n'y a plus aucun changement. Faites le ! C'est important pour la suite de votre voyage dans Guix.

Je m'arrête ici pour ce journal. En fonction de son succès il y aura des suites, déjà pour améliorer notre configuration système de base. (il manque l'utilisation du swapfile par exemple, pour l'instant on l'a créé pour rien), l'utilisation du serveur de substitut nonguix dans le système installé, la définition de services supplémentaires, le microcode cpu, la gestion de l'énergie, etc. Ensuite pour la gestion de la home avec guix home, et la définition de services utilisateurs simples (mpd par exemple). Peut-être ensuite le packaging d'applications simples, voire la contribution au projet.

Pour l'instant nous n'avons pas activé la prise en charge du serveur de substituts de nonguix dans le système installé. C'est pas forcément trivial même avec la doc donc il y aura un journal à ce propos si ça vous intéresse. Je pense qu'il y en a assez pour aujourd'hui.
Attention cela signifie que si vous installez un paquet provenant de nonguix (mise à jour du noyau, ou firefox, ou autre), il sera compilé en local.

Si vous connaissez déjà un peu Guix, je serais curieux d'avoir votre retour sur ce journal. Je me répète, je suis loin d'être sûr de moi dans ce que je fais, il y a peut-être des erreurs. En tous cas j'ai écris ce journal dans mon système fraîchement configuré, donc ça démarre.

Si vous estimez que ce journal a besoin d'un peu plus de contexte (autrement dit, si vous avez la flemme de lire la documentation de Guix), n'hésitez pas à le dire, je ferais un journal préquel.

Merci pour votre patience. Je vous prie d'agréer Madame, Monsieur, des bisous.

  • # La suite !

    Posté par  . Évalué à 10.

    En fonction de son succès il y aura des suites, déjà pour améliorer notre configuration système de base.

    Moi, je vote pour la qualité de la prose. Je n'installerai probablement jamais Guix (ou alors, pour faire joujou), même si je suis assez séduit par le concept du gestionnaire de paquet, mais j'ai lu l'article jusqu'au bout parce qu'il était bien écrit.

    Apparemment, y a pas que la cuisine et les installations de distributions Linux dans tes qualités.

    • [^] # Re: La suite !

      Posté par  . Évalué à 6.

      Merci beaucoup, je crois que ce n'était pas possible de me faire plus plaisir qu'avec ce compliment.

      Pour essayer de fluidifier au maximum la lecture, ma technique est simple : j'écris tout d'une traite, comme ça vient, sans réfléchir avant à l'organisation. Ensuite seulement, je rajoute des titres pour compartimenter un peu le contenu.

      • [^] # Re: La suite !

        Posté par  (site web personnel) . Évalué à 5.

        Salut, c'est marrant je me suis un peu reconnu dans ta présentation, ne sachant programmer que 2 ou 3 trucs basiques en bash ou en html… et depuis une vingtaine d'années, passant pas mal de temps ici en mode ninja ;)

        Comme Glandos, félicitations pour ton journal d'utilisateur passionné, je ne trouve
        rien à redire, il se lit aisément, les choses sont concises et précises et je me joins
        volontiers aux personnes qui demandent une suite ;)

        Dessinateur et artiste peintre, (j'ai aussi travaillé en cuisine ;) l'informatique me fascine
        par son aspect Logiciels Libres/Multimédia.
        Ai tout de même réussi à contribuer à 5 ou 6% de la traduction en français du manuel d'utilisation de Guix.
        Je ne pensais pas que c'était aussi dur, pas la traduction elle-même mais les logiciels de traduction… Ma contribution s'est arrêtée là.

        Mais il était hors de question que je ne partage pas mon expérience :

        https://debian-facile.org/viewtopic.php?id=22682&p=2

        Encore merci pour ton journal (qui en appelle d'autres !)

        • [^] # Re: La suite !

          Posté par  . Évalué à 3.

          (j'ai aussi travaillé en cuisine

          on est beaucoup de cuisiniers ici
          j'en connais au moins 3 de plus

  • # Avis à la modération

    Posté par  . Évalué à 4.

    Si on suit le guide de System Crafters, l'installation ne va pas utiliser le serveur de substituts de nonguix, et donc compiler le noyau linux sur votre machine. Ce n'est pas ce qu'on veut, on va donc activer son utilisation. Pour cela, vous connaissez la chanson, on lit la documentation officielle, paragraphe "Substitutes for nonguix".

    Dans ce passage, j'ai oublié le lien vers la documentation. Pouvez-vous la rajouter svp ?

    Le lien est https://gitlab.com/nonguix/nonguix

    Merci.

    Si on suit le guide de System Crafters, l'installation ne va pas utiliser le serveur de substituts de nonguix, et donc compiler le noyau linux sur votre machine. Ce n'est pas ce qu'on veut, on va donc activer son utilisation. Pour cela, vous connaissez la chanson, on lit la documentation officielle, paragraphe "Substitutes for nonguix".

    • [^] # Re: Avis à la modération

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      Corrigé, merci.

      « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

      • [^] # Re: Avis à la modération

        Posté par  . Évalué à 1.

        Merci et désolé pour le dérangement. Tant qu'à faire si vous voulez retoucher la première phrase pour quelque chose d'un peu plus inclusif, genre juste "bonjour", ou "bonjour à toutes et tous".

  • # Argument pour ce choix ?

    Posté par  . Évalué à 5.

    Salut,
    Un grand merci pour le partage, c'est bien didactique et détaillé. Hate le lire la suite.

    De mon coté j'ai pas mal hésité entre NixOs et Guix quand j'ai voulu tester ce genre de distrib. J'ai finalement c'est Nix que j'ai choisi. Mais je serais intéressé de savoir ce qui t'as fait choisir GuiX.

    • [^] # Re: Argument pour ce choix ?

      Posté par  . Évalué à 5.

      Merci.

      Tout est parti de ma volonté d'améliorer ma gestion des dotfiles. Je suis tombé sur home-manager, donc sur Nix, et en creusant un peu sur Guix.

      J'étais parti pour NixOS également. Plus de paquets, Systemd que je connais déjà, home-manager. Mais d'un autre côté, je n'ai pas accroché avec le site web de Nix, j'ai vite compris que la documentation était très fractionnée.

      J'ai reconsidéré le choix, et je me suis dit que mon niveau stagnait depuis quelques temps. Passer à Guix me permettrait en même temps d'apprendre Guile, voire emacs, et s'il y a l'essentiel il reste encore pas mal de logiciels à packager. L'idée de partir de zéro et de finir par être capable de contribuer me plait.

      NixOS, je m'en serai servi comme d'Arch, en simple consommateur.

      Et pour me motiver, quoi de nieux que de partager ma progression et mon expérience sur DLFP ?

      Pas vraiment de choix technique donc, plus un choix personnel.

      • [^] # Re: Argument pour ce choix ?

        Posté par  . Évalué à 2.

        Merci pour la réponse.
        Ta vision conforte ce que j’ai pu lire. Nix a une forte communauté et un écosystème riche, GuiX ayant fait des choix plus restrictif a moins attiré.
        Coté doc, c’est aussi ce que j’ai lu. NiX a une doc relativement complète mais non homogène, alors que GuiX semble mieux architecturé.

        Bon, je pense que je vais passer par Nix pour me faire la main et voir si GuiX peux me suffire sur mon serveur.

    • [^] # Commentaire supprimé

      Posté par  . Évalué à 0. Dernière modification le 05 août 2023 à 19:07.

      Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Argument pour ce choix ?

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 06 septembre 2023 à 14:44.

      Petit retour d’expérience sur NixOS…

      Je voulais un OS (GNU-)Linux, capable de se mettre à jour sans intervention de l’utilisateur, sécurisant (on peut rattraper une erreur de configuration), et avec support du chiffrage complet du disque au niveau de l’installeur. Mon choix s’est porté sur NixOS.

      Et, j’avoue, j’avais bien envie de tenter l’expérience de l’« OS fonctionnel ».

      Finalement, malgré ma longue expérience de la programmation et de Linux, y compris en tant qu’admin de serveurs Debian, Ubuntu, Arch…, j’ai trouvé que NixOS est un peu pénible à l’usage.

      Comme ce PC n’était pas pour moi (d’où l’importance de son auto-mise-à-jour), je ne manipule en fait NixOS qu’occasionnellement, et chaque fois, il est difficile de se rappeler les commandes complexes pour chercher un package, l’installer (conf dans /etc), etc.

      Si, au moins, les commandes données dans la documentation fonctionnaient, ce serait bien. Mais chaque fois, ça me dit que telle ou telle fonctionnalité expérimentale n’est pas active et qu’il faut que j’ajoute 2 ou 3 paramètres à ma commande, sans bien expliciter avec quelle syntaxe précisément.

      Quant aux logiciels, je suis relativement confiant sur le fait que pour un serveur (conf plus simple), ça fait le job. Mais pour un bureau utilisateur, on sent les limites de l’approche fonctionnelle. Il suffit de voir les logs de démarrage de Gnome pour se rendre compte que tout ça fonctionne avec des « bouts de scotch » qui maintiennent l’illusion tant bien que mal… Et il y a des écarts avec le fonctionnement nominal, comme des extensions qui refusent de rester activées d’une session à la suivante…

      Notez que ce n’est pas un reproche envers la distribution et ses auteurs ! Je comprends très bien les raisons de ce que j’observe, et je félicite les auteurs pour avoir réussi à atteindre ce niveau. Il est probable que progressivement, via les retours des distributions audacieuses comme celle-ci, ou comme peut l’être RancherOS, ou comme a pu l’être il y a quelques années GoboLinux, peu à peu les logiciels s’appuient moins sur les a-priori qui peuvent s’avérer faux, bref : deviennent plus fonctionnels au lieu de s’appuyer sur des effets de bord.

      En attendant, je regrette parfois d’avoir choisi NixOS, et je me demande en lisant cet article si j’aurais eu une meilleure expérience avec Guix.

      [EDIT] Et à part ça, j’ai hâte de lire la suite. C’était très agréable à lire !

  • # bravo

    Posté par  . Évalué à 5.

    Félicitations pour l'écriture de votre journal. Pour un 1er article, non seulement c'est bien écrit, mais il est techniquement impressionnant pour un cuisinier !

    Sinon, je suis utilisateur de guix, et je confirme que niveau doc, le site est bien foutu, mais j'ai du mal à trouver de la doc un peu plus poussée également, sans rentrer dans le côté extrème du contenu des listes ou de certaines vidéos sur scheme…

    Bref, sinon il y a aussi les cafés guix animés par des universitaires, pertinents et accessibles (j'espère qu'ils ne m'en voudront pas d'en faire la pub).

    • [^] # Re: bravo

      Posté par  . Évalué à 3.

      mais il est techniquement impressionnant pour un cuisinier !

      Je ne sais pas trop comment le prendre. Bien j'imagine :-)

      Il n'y a rien de difficile dans ce journal. Il ne s'agit que de lire de la documentation, je n'ai rien inventé. Tout le crédit revient à System Crafters.

      Merci pour les cafés guix, je m'y pencherai à l'occasion.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.