nixos-rebuild : appliquer les modifications
Après avoir modifié /etc/nixos/configuration.nix, il faut appliquer les changements avec nixos-rebuild.
Commandes principales
nixos-rebuild switch
Applique la configuration immédiatement et configure le boot sur cette génération :
sudo nixos-rebuild switch
C’est la commande la plus courante.
nixos-rebuild boot
Prépare la configuration mais ne l’active qu’au prochain redémarrage :
sudo nixos-rebuild boot
Utile pour les changements de kernel ou de bootloader.
nixos-rebuild test
Applique la configuration sans modifier le bootloader :
sudo nixos-rebuild test
Permet de tester une configuration. Un reboot reviendra à la configuration précédente.
nixos-rebuild build
Construit la configuration sans l’appliquer :
sudo nixos-rebuild build
Utile pour vérifier qu’une configuration compile sans erreur.
Gestion des générations
Chaque nixos-rebuild switch crée une nouvelle génération.
Lister les générations :
sudo nix-env --list-generations -p /nix/var/nix/profiles/system
Résultat :
1 2024-01-15 10:30:00
2 2024-01-16 14:22:00
3 2024-01-17 09:15:00 (current)
Rollback
Revenir à la génération précédente :
sudo nixos-rebuild switch --rollback
Ou choisir une génération spécifique au boot via le menu GRUB/systemd-boot.
Nettoyage
Supprimer les anciennes générations (garder les 5 dernières) :
sudo nix-collect-garbage --delete-older-than 5d
Ou supprimer toutes les anciennes générations sauf la courante :
sudo nix-collect-garbage -d
Libérer l’espace disque :
sudo nix-store --gc
Options utiles
Afficher ce qui va changer avant d’appliquer :
sudo nixos-rebuild build
nix store diff-closures /run/current-system ./result
Appliquer une configuration depuis un autre fichier :
sudo nixos-rebuild switch -I nixos-config=/chemin/vers/configuration.nix
Mise à jour du système
Mettre à jour les canaux (équivalent de apt update) :
sudo nix-channel --update
Puis reconstruire :
sudo nixos-rebuild switch --upgrade
Dépannage
Si le système ne démarre plus, booter sur une génération précédente depuis le menu de boot, puis :
sudo nixos-rebuild switch --rollback
Ou identifier et corriger le problème dans la configuration, puis :
sudo nixos-rebuild switch