Installation de GNU Guix avec Nonguix
Introduction
GNU Guix est un gestionnaire de paquets fonctionnel et une distribution GNU/Linux déclarative. Nonguix est un canal complémentaire qui ajoute les paquets non-libres (pilotes, firmware, etc.).
Installation du système de base
Télécharger l'image ISO
wget https://ftp.gnu.org/gnu/guix/guix-system-install-1.4.0.x86_64-linux.iso
Créer une clé USB bootable
sudo dd if=guix-system-install-1.4.0.x86_64-linux.iso of=/dev/sdX bs=4M status=progress && sync
Options d'installation
Deux modes disponibles :
- Mode graphique : installateur guidé depuis le menu de démarrage
- Mode manuel : partitionnement et configuration en ligne de commande
Comprendre les canaux Guix
Un canal est un dépôt Git contenant des définitions de paquets.
Par défaut, Guix utilise le canal officiel (logiciels libres uniquement). Nonguix étend cette collection avec :
- Pilotes propriétaires
- Firmware
- Noyau Linux complet
Les canaux permettent de :
- Étendre le catalogue de paquets
- Maintenir ses propres définitions
- Contrôler les versions utilisées
Configuration du serveur de substituts
Les substituts sont des binaires pré-compilés. Sans eux, Guix compile tout depuis les sources.
Ajouter le serveur Nonguix
Dans /etc/config.scm :
(operating-system
(services (modify-services %desktop-services
(guix-service-type config => (guix-configuration
(inherit config)
(substitute-urls
(append (list "https://substitutes.nonguix.org")
%default-substitute-urls))
(authorized-keys
(append (list (local-file "./signing-key.pub"))
%default-authorized-guix-keys))))))
...)
Télécharger la clé d'autorisation
wget https://substitutes.nonguix.org/signing-key.pub
Placer le fichier au bon endroit selon le chemin spécifié dans la configuration.
Vérification
guix weather firefox
Cette commande indique le taux de disponibilité des substituts pour Firefox.
Ajout du canal Nonguix
Configuration des canaux
Créer le fichier de configuration :
mkdir -p ~/.config/guix
nano ~/.config/guix/channels.scm
Contenu du fichier
(cons* (channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(branch "master")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
%default-channels)
L'introduction et l'empreinte GPG vérifient l'authenticité du canal.
Mise à jour des canaux
guix pull
hash guix
guix pull télécharge les nouvelles définitions de paquets. L'opération peut prendre plusieurs minutes.
Vérification
guix describe
Les canaux guix et nonguix doivent apparaître avec leurs commits respectifs.
Installation du noyau Linux non-libre
Le noyau Linux-libre exclut les blobs propriétaires, ce qui pose problème pour le WiFi et les GPU récents.
Modification de la configuration système
Éditer /etc/config.scm :
sudo nano /etc/config.scm
Imports nécessaires
(use-modules (gnu)
(nongnu packages linux)
(nongnu system linux-initrd))
(use-service-modules networking ssh)
Configuration
(operating-system
(kernel linux)
(initrd microcode-initrd)
(firmware (list linux-firmware))
(host-name "guix-system")
(timezone "Europe/Paris")
(locale "fr_FR.utf8")
;; ... reste de la configuration
)
Explications :
kernel linux: noyau Linux completinitrd microcode-initrd: microcode CPU (Intel/AMD)firmware (list linux-firmware): firmware propriétaires
Reconfiguration du système
sudo guix system reconfigure /etc/config.scm
Cette commande :
- Télécharge le noyau et les firmware
- Génère une nouvelle génération du système
- Met à jour GRUB
Redémarrage
sudo reboot
GRUB affichera la nouvelle génération avec le noyau Linux complet.
Vérification
uname -r
Doit afficher une version du noyau Linux standard.
Installation de paquets supplémentaires
guix install git vim htop