How to Install GNU Guix System (2027 Edition)
Ce tutoriel présente l’installation et la configuration initiale de GNU Guix System, une distribution Linux reproductible et fonctionnelle, en insistant sur la simplicité du processus (quelques commandes) et la puissance de son système de gestion de paquets déclaratif.

SYNTHÈSE STRUCTURÉE
Pourquoi Guix System en 2027
L’intervenant qualifie Guix System de « one of the final non-legacy distros here in 2027 », au même titre que NixOS. Il souligne que sa philosophie de conception et son potentiel de « flex » avec neofetch en font une distribution de « fin de jeu » pour les utilisateurs Linux expérimentés. L’idée est que maîtriser Guix System confère une crédibilité technique immédiate.
Installation minimale en ligne de commande
L’installation se fait via une interface TUI (Text User Interface) après avoir défini la langue et le fuseau horaire. L’intervenant précise qu’il existe un outil graphique, mais qu’il préfère « the shell-based process because it is going to be easier for me. It’s about four or five commands. » Cette approche illustre la philosophie minimaliste de Guix.
Partitionnement manuel avec cfdisk
La procédure de partitionnement est classique :
- Création d’une table GPT avec
cfdisk /dev/vda - Partition EFI de 1 Go (
/dev/vda1) - Partition swap de 4 Go (
/dev/vda2) - Partition racine ext4 de 45 Go (
/dev/vda3) - Formatage :
mkfs.fat -F 32 /dev/vda1,mkswap /dev/vda2,mkfs.ext4 -L "guix system" /dev/vda3
Montage et préparation de l’environnement
Les partitions sont montées avec :
mount /dev/vda3 /mnt
mkdir /mnt/efi
mount /dev/vda1 /mnt/efi
swapon /dev/vda2
Puis le « cow store » est démarré avec herd start cow-store /mnt pour créer une copie du store GNU sur le disque cible.
Configuration déclarative avec config.scm
Le fichier de configuration est copié depuis l’ISO :
mkdir /mnt/etc
cp /etc/configuration/desktop.tmpl /mnt/etc/config.scm
L’intervenant utilise Emacs pour l’éditer, mais précise que « if you would like to use Vim or Vis or something different, you would just drop into a shell here. So you do guix shell vis to download this. » La configuration déclarative permet de définir l’ensemble du système (paquets, services, utilisateurs) dans un seul fichier.
Gestion des paquets : modules et dépendances
Pour ajouter un paquet, il faut :
- Trouver son module avec
guix show <paquet> | grep location - Importer ce module dans la section
use-modulesdu fichierconfig.scm - Ajouter le paquet dans la liste
packagesExemple avecbtop:
guix show btop | grep location
# Résultat : admin.scheme
Puis dans config.scm :
(use-modules ... (gnu packages admin) ...)
(packages (append (list ... btop ...) %base-packages))
Services système : Xorg, display manager et réseau
Les services sont ajoutés de manière similaire aux paquets. L’intervenant configure un environnement léger avec :
(services (append (list (service xorg-server-service-type)
(service slim-service-type)
(service dhcp-client-service-type))
%base-services))
Il supprime le service DNS par défaut et ferme le bloc operating-system.
Installation du système avec guix system init
La commande finale est :
guix system init /mnt/etc/config.scm /mnt
L’intervenant laisse volontairement une erreur (module manquant pour rofi) pour montrer la qualité des messages d’erreur de Guix : « It tells me explicitly when to add the X disorg packages module. » Il compare cela favorablement à NixOS.
Post-installation : mot de passe et premier démarrage
Après redémarrage, les mots de passe root et utilisateur sont définis :
passwd
passwd tony
L’intervenant utilise slim comme display manager et qtile comme window manager, avec une configuration initiale très minimaliste.
Gestion des paquets après installation
Pour ajouter un paquet sur un système déjà installé :
- Modifier
config.scm - Lancer
guix pullpour synchroniser les dépôts - Exécuter
guix system reconfigure /etc/config.scmCette commande est l’équivalent denixos-rebuild switchsur NixOS.
Personnalisation de l’environnement utilisateur
L’intervenant crée un fichier ~/.xsession pour lancer des commandes au démarrage de X :
#!/bin/sh
xset r rate 235
xrandr -s 1920x1080
xwallpaper --zoom ~/walls/castle.jpeg
picom &
exec qtile start
Il précise que ce n’est pas la méthode la plus « guix idiomatique » et qu’il abordera guix home dans une vidéo ultérieure.
Versionnement des fichiers de configuration
L’intervenant crée un dépôt Git pour ses fichiers de configuration :
mkdir ~/guix.files
cp -r ~/.config/qtile ~/guix.files/
cp -r ~/.config/alacritty ~/guix.files/
cp /etc/config.scm ~/guix.files/
cp ~/.xsession ~/guix.files/
git init && git add . && git commit -m "initial commit"
Il crée des alias dans ~/.bashrc :
alias gsr='sudo guix system reconfigure ~/guix.files/config.scm'
alias gvis='vis ~/guix.files/config.scm'
CONCEPTS CLÉS
- GNU Guix System : Distribution Linux basée sur le gestionnaire de paquets Guix, offrant des installations reproductibles et un système déclaratif complet.
guix system init: Commande d’installation initiale qui crée le système à partir d’un fichier de configuration.guix system reconfigure: Commande pour mettre à jour le système après modification du fichier de configuration (équivalent denixos-rebuild switch).- Cow store : Mécanisme de copie sur écriture qui permet d’utiliser le store GNU pendant l’installation sans écraser le système hôte.
guix show: Commande pour obtenir des informations détaillées sur un paquet, notamment son module d’import.
CONCLUSION
L’installation de Guix System est étonnamment simple (quelques commandes de partitionnement, un fichier de configuration déclaratif, et une commande d’initialisation). Sa force réside dans la clarté des messages d’erreur et la reproductibilité des configurations. Comme le dit l’intervenant, « this is definitely a cursory overview of the Guix system and how to get started on it », mais cela suffit pour comprendre pourquoi Guix System est considéré comme une distribution de « fin de jeu » pour les administrateurs Linux exigeants.