Recherche de site Web

Comment mettre à niveau NixOS 23.11 vers 24.05 [Étape par étape]


NixOS 24.05, nommé Uakari, a été publié il y a quelques jours. L'un des principaux atouts de NixOS est son processus de mise à niveau simple et direct, garantissant que votre système reste à jour tout en maintenant stabilité et fiabilité. Dans ce tutoriel étape par étape, nous discuterons de la manière de mettre à niveau NixOS vers la dernière version disponible.

Aux fins de ce guide, je vais démontrer comment mettre à niveau NixOS 23.11 (Tapir) vers 24.05 (Uakari). Voici les détails de la version actuelle de mon NixOS 23.11 :

$ cat /etc/os-release 
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="23.11.5541.56528ee42526"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 23.11 (Tapir)"
SUPPORT_END="2024-06-30"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="23.11 (Tapir)"
VERSION_CODENAME=tapir
VERSION_ID="23.11"

Vérifier la version de NixOS

Sauvegarder les données

Cela devrait être la première étape, quel que soit le système d'exploitation que vous utilisez. Assurez-vous d'avoir sauvegardé toutes les données importantes que vous ne pouvez pas vous permettre de perdre.

Mettre à jour les canaux NixOS

Au cœur du processus de mise à niveau de NixOS se trouve le concept de Channels. Les Channels de NixOS sont des dépôts organisés qui distribuent des expressions Nix et leurs binaires associés, minutieusement testés et construits pour assurer une expérience fluide. Les channels disponibles incluent :

  • Canaux stables (par exemple, nixos-24.05) : Ces canaux reçoivent des correctifs de bugs et des mises à jour de paquets conservateurs, tels que des mises à jour mineures du noyau de 6.1 à 6.2, garantissant une expérience stable et fiable.
  • Canal instable (nixos-unstable) : Pour les aventureux, ce canal reflète la branche de développement active de NixOS, offrant les dernières fonctionnalités et mises à jour de pointe, bien qu'avec une instabilité potentielle.
  • Petits canaux (par exemple, nixos-24.05-small) : Identiques à leurs homologues réguliers mais avec moins de paquets binaires précompilés, ces canaux sont idéaux pour les environnements serveurs, offrant des mises à jour plus rapides lorsque des correctifs de sécurité critiques sont publiés.

Pour en savoir plus sur l'utilisation des chaînes Nix, consultez le guide suivant :

Commencer avec le gestionnaire de paquets Nix

Passer à NixOS 24.05 depuis la version 23.11

Lorsque vous installez NixOS pour la première fois (par exemple 23.11), vous êtes automatiquement abonné au canal correspondant à votre source d'installation.

Pour vérifier votre canal actuel, exécutez la commande suivante en tant que root ou utilisateur sudo :

$ sudo nix-channel --list | grep nixos
nixos https://nixos.org/channels/nixos-23.11

Vérifier le canal actuel dans NixOS

Comme vous le voyez dans la sortie ci-dessus, mon canal actuel est 23.11. Cela signifie que j'utilise NixOS 23.11.

Pour changer de canal vers la dernière version, utilisez simplement nix-channel --add https://channels.nixos.org/channel-name nixos.

Par exemple, pour passer au canal stable 24.05, nous utilisons :

$ sudo $nix-channel --add https://channels.nixos.org/nixos-24.05 nixos

Une fois abonné à la chaîne souhaitée, la mise à niveau est aussi simple que d'exécuter :

$ sudo nixos-rebuild switch --upgrade

Cette commande est équivalente à nix-channel --update nixos; nixos-rebuild switch, mettant à jour votre système vers la dernière version du canal sélectionné de manière transparente.

Si la mise à niveau réussit, vous verrez la sortie suivante :

[...]
updating GRUB 2 menu...
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
lsblk: /dev/mapper/no*[0-9]: not a block device
lsblk: /dev/mapper/raid*[0-9]: not a block device
lsblk: /dev/mapper/disks*[0-9]: not a block device
installing the GRUB 2 boot loader on /dev/sda...
Installing for i386-pc platform.
Installation finished. No error reported.
[...]

Redémarrez votre système NixOS.

$ sudo reboot

Après vous être connecté au système nouvellement mis à jour, vérifiez sa version pour confirmer si la mise à niveau a réussi.

[ostechnix@nixos:~]$ cat /etc/os-release 
ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
**BUILD_ID="24.05.803.b3b2b28c1daa"**
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_END="2024-12-31"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
**VERSION_ID="24.05"**

Vérifier la version et le nom de code de NixOS

Comme vous le voyez dans la sortie ci-dessus, nous avons réussi à passer à NixOS 24.05.

Mettre à niveau NixOS vers la version la plus récente

Si vous voulez essayer la pointe de la technologie (la dernière version), vous pouvez passer au canal nixos-unstable et effectuer la mise à jour comme indiqué ci-dessus. Voici les étapes pour mettre à jour NixOS vers la dernière version.

Tout d'abord, passez au canal instable de NixOS en utilisant la commande suivante :

$ sudo nix-channel --add https://channels.nixos.org/nixos-unstable nixos

Cette commande indique au gestionnaire de paquets Nix d'ajouter l'URL du canal instable (https://channels.nixos.org/nixos-unstable) et de l'associer au nom de canal nixos.

Vous pouvez vérifier à quel canal vous êtes actuellement abonné en utilisant la commande suivante :

$ sudo nix-channel --list | grep nixos

Cela affichera l'URL du canal et le nom associés à votre installation actuelle de NixOS.

Après avoir ajouté le canal nixos-unstable, vous pouvez ensuite mettre à jour votre installation NixOS vers la dernière version du canal instable en exécutant :

$ sudo nixos-rebuild switch --upgrade

Cela téléchargera et installera tous les derniers paquets et mises à jour depuis le canal instable.

Il est important de noter que le canal instable, comme son nom l'indique, contient les dernières mises à jour et modifications de pointe provenant de la branche principale de développement de NixOS.

Bien qu'il offre un accès aux fonctionnalités et packages les plus récents, il peut également introduire des instabilités ou des dysfonctionnements. Par conséquent, il n'est généralement pas recommandé d'utiliser le canal instable sur des systèmes de production ou dans des environnements critiques.

Si vous voulez revenir à un canal stable plus tard, vous pouvez utiliser une commande similaire nix-channel --add avec l'URL du canal stable souhaité (par exemple, https://channels.nixos.org/nixos-24.05 pour le canal stable NixOS 24.05).

Mises à jour automatiques

Pour une commodité maximale, NixOS propose une option de mise à jour automatique. En ajoutant les lignes suivantes à votre configuration.nix :

{
  system.autoUpgrade.enable = true;
  system.autoUpgrade.allowReboot = true;
}

Vous activez le nixos-upgrade.service, qui vérifie périodiquement et applique les mises à jour depuis votre canal auquel vous êtes abonné.

Si allowReboot est défini sur true, le système redémarrera automatiquement lorsque la nouvelle génération inclut des modifications du noyau, de l'initrd ou des modules du noyau.

Vous pouvez même spécifier un canal personnalisé pour les mises à jour automatiques :

{
  system.autoUpgrade.channel = "https://channels.nixos.org/nixos-24.05";
}

Conclusion

Avec NixOS, mettre à jour votre système n'a jamais été aussi simple. Que vous préfériez la stabilité du dernier canal stable ou l'avant-garde du canal instable, le processus est très facile !