
NixOS est de retour avec NixOS 25.11 , une version qui apporte des changements profonds au système lui-même et à son vaste écosystème de paquets. Nom de code « Xantusia », cette version est désormais disponible et propose de nouvelles fonctionnalités intéressantes pour les postes de travail, les serveurs, le développement et les déploiements cloud. Cependant, elle présente également un certain nombre d'incompatibilités et de paquets supprimés ; il est donc conseillé de les examiner attentivement avant la mise à jour.
Dans cet article, nous aborderons toutes les nouveautés importantes de NixOS 25.11 et de la base de paquets Nixpkgs : des mises à jour majeures telles que GNOME 49, LLVM 21 et ROCm 6.3 ; des changements significatifs apportés à Go, Rust, Node.js, PostgreSQL et Docker ; des services renommés ; de nouveaux modules ; et des options de configuration supplémentaires. Nous étudierons également un cas concret de problèmes de proxy lors de la compilation de Discord et comment les résoudre dans ce nouvel environnement.
NixOS 25.11 « Xantusia » : chiffres du cycle de vie et du lancement
La nouvelle version stable, NixOS 25.11 « Xantusia » , est désormais disponible pour l'installation et les mises à jour sur tout système utilisant les canaux stables. Cette version bénéficiera de correctifs de sécurité et de corrections de bogues pendant sept mois, jusqu'au 30 juin 2026, ce qui en fait la mise à niveau recommandée si vous effectuez une mise à niveau depuis une version précédente.
La version stable précédente, NixOS 25.05 « Warbler » , est désormais officiellement obsolète et ne recevra plus de mises à jour de sécurité après le 31 décembre 2025. Si vous utilisez encore la version 25.05 ou une version encore plus ancienne, c’est le moment idéal pour planifier sereinement votre migration vers la version 25.11, en prenant en compte les changements incompatibles que nous détaillerons dans ce texte.
Cette version illustre également le rythme de développement du projet . Entre NixOS 25.05 et NixOS 25.11, 2 742 contributeurs ont participé, réalisant collectivement pas moins de 59 430 modifications sur les Nixpacks et la configuration système. Ces chiffres englobent aussi bien des corrections mineures et des modifications de paquets marginaux que des refontes importantes de modules de distribution essentiels.
Nixpkgs : Paquets ajoutés, mis à jour et supprimés de NixOS 25.11
La collection de paquets Nixpkgs, qui constitue l' épine dorsale non seulement de NixOS mais aussi de tout système utilisant le gestionnaire de paquets Nix sous Linux ou macOS, a bénéficié d'une maintenance massive au cours de ce cycle.
D'une part, 7 002 nouveaux logiciels ont été ajoutés , élargissant encore la gamme disponible. Celle-ci comprend des outils de développement de pointe, des applications de bureau, des utilitaires de gestion et des logiciels scientifiques.
Dans le même temps, l'équipe a mis à jour 25 252 packages existants , permettant ainsi aux logiciels les plus utilisés de bénéficier des dernières versions et, surtout, de correctifs de sécurité et d'améliorations de performance. Ceci est crucial dans les environnements où la reproductibilité est essentielle, tout en garantissant une mise à jour raisonnable des logiciels.
Afin de garantir la gestion et la sécurité du dépôt, Nixpkgs a supprimé 6 338 anciens paquets qui n'étaient plus maintenus, qui étaient défectueux ou qui étaient devenus obsolètes. Dans de nombreux cas, des alternatives directes existent au sein même de l'arborescence Nixpkgs, mais dans d'autres, ils sont simplement supprimés pour éviter des problèmes de sécurité ou de compilation.
Modules et options de configuration NixOS
Outre ses paquets, NixOS se distingue par son puissant système de modules déclaratifs. Ce cycle comprend 107 nouveaux modules , ajoutant la prise en charge de nouveaux services, démons, applications et configurations système. Ces modules apportent également 1 778 nouvelles options de configuration, augmentant ainsi la granularité avec laquelle un système peut être décrit.
En revanche, 41 modules et 807 options de configuration devenus obsolètes, défectueux ou remplacés par des alternatives plus modernes ont été supprimés . Si vous réutilisez d'anciennes configurations, il est conseillé de consulter les avis de dépréciation afin d'adapter vos fichiers avant de passer à la dernière version.
Parmi les nouveautés notables sur le bureau : GNOME 49 « Brescia »
L'une des principales nouveautés pour les utilisateurs d'ordinateurs de bureau est la mise à jour vers GNOME 49 « Brescia » . Cette version de l'environnement de bureau marque une étape décisive vers Wayland et supprime la session basée sur X11, ce qui peut représenter un changement important si vous utilisiez d'anciennes configurations ou extensions dépendant explicitement de Xorg.
GNOME 49 inclut de nouvelles applications, comme un lecteur vidéo remanié et une visionneuse de documents mise à jour, ainsi qu'un calendrier repensé et de nombreuses améliorations mineures de l'expérience utilisateur. Il est conseillé de consulter les notes de version officielles de GNOME si vous utilisez des fonctionnalités spécifiques ou des extensions complexes.
Compilateurs et chaînes d'outils C : LLVM, GCC et CMake
Dans la section compilation, NixOS 25.11 met à jour LLVM vers la version 21 , une avancée majeure pour les développeurs utilisant C, C++ ou Rust avec la chaîne d'outils Clang. Cette version inclut des améliorations d'optimisation, de nouvelles cibles prises en charge et des ajustements des avertissements susceptibles d'entraîner des modifications de comportement dans certains projets.
Le compilateur GCC est maintenu sur la branche 14 , une version déjà bien établie et testée en production. Cela facilite le maintien de la compatibilité avec les projets qui dépendent encore de cette famille de compilateurs, sans subir de changements perturbateurs à chaque mise à jour du système.
CMake , quant à lui, est en cours de mise à jour vers la version 4 , ce qui pourrait activer de nouvelles fonctionnalités dans les systèmes de compilation modernes, mais pourrait également nécessiter des ajustements dans les projets utilisant une syntaxe ou des commandes obsolètes. Si vous utilisez d'anciens modèles CMake, il est conseillé d'exécuter des tests de compilation avant de finaliser la migration.
GPU, calcul et changements dans ROCm et CUDA
Pour ceux qui travaillent avec l'accélération GPU, la branche Mise à niveau des packages rocm_6 vers ROCm 6.3, pendant que rocmPackages_5 Il est retiré de l'arbre. Certaines parties sont restructurées : rocmPackages.rocm-thunk Il disparaît en tant que paquet séparé et est intégré à rocmPackages.clret rocmPackages.clang-ocl Il prend sa retraite après avoir été abandonné par AMD en 2023.
Parallèlement, la prise en charge officielle de CUDA 10 est abandonnée , comme annoncé dans les notes de version de NixOS 24.11. Les utilisateurs qui utilisent encore du matériel très ancien devraient envisager de mettre à niveau leur carte graphique ou de rechercher des alternatives maintenues auprès d'autres fabricants ou d'autres plateformes.
Navigateur, proxys et problèmes de compilation de Discord
Un problème pratique qui a été mis en évidence avec cette version est le utilisation de proxys lors des compilationsUn utilisateur décrit comment il parvient à télécharger le fichier. discord-0.0.116.tar.gz depuis le navigateur en utilisant le proxy d'entreprise, mais lors de l'exécution nixos-rebuild Le téléchargement avec curl échoue systématiquement avec une erreur curl: (35) Recv failure: Connection reset by peer jusqu'à épuisement de toutes les tentatives.
Le message d'erreur Nix indique que Impossible de télécharger l'archive tar de Discord sans miroir, rompant ainsi la dérivation discord-0.0.116.tar.gz.drv et, par conséquent, la construction de l'environnement utilisateur et du système complet. Bien que le journal affiche des avertissements de nouvelles tentatives automatiques, des variables telles que https_proxy o all_proxyCela suggère que l'environnement d'exécution au sein du bac à sable de compilation ne voit pas la configuration réseau de l'utilisateur.
Dans NixOS, le variables d'environnement proxy standard Il se peut qu'elles ne se propagent pas directement aux forks si un sandbox strict est utilisé ou si la configuration système ne les exporte pas vers les builds. La solution classique consiste à configurer les options Nix comme suit : nix.extraOptions inclure http_proxy, https_proxy et l'entreprise, ou désactiver temporairement le bac à sable pour cette machine (non recommandé à long terme) tout en ajustant le serveur proxy pour autoriser le trafic provenant de l'adresse IP du constructeur.
Une autre solution consiste à utiliser des caches binaires contenant déjà Discord ou d'autres paquets problématiques, évitant ainsi à Nix de télécharger directement les origines. Quoi qu'il en soit, ce type d'erreurs réseau est plus problématique dans une version comme la 25.11, qui gère simultanément de nombreux composants et peut entraîner des comportements différents lors de la résolution d'URL.
Réseau, conteneurs et services web
Dans le domaine des réseaux et des conteneurs, NixOS 25.11 introduit des changements importants. Le proxy HTTP Squid est mis à jour vers la version 7 , une édition comportant plusieurs modifications incompatibles et, par exemple, la suppression de la fonctionnalité ESI. Pour adapter vos configurations personnalisées, il est recommandé de consulter les notes de version de Squid.
Au niveau de l'orchestration, containerd a été mis à jour vers sa branche 2.x , ce qui entraîne plusieurs modifications de comportement. Si vous utilisez containerd directement ou comme composant d'une plateforme, il est essentiel de consulter la documentation de containerd 2.0 afin d'éviter toute mauvaise surprise en production.
Dans l'univers Docker, la version docker_24 est retirée de l'arbre de distribution car elle n'est plus prise en charge et présente des vulnérabilités connues depuis juin 2024. L'objectif est de faire migrer les installations vers des versions plus récentes et mieux maintenues de Docker.
Concernant les serveurs et les panneaux de contrôle, NetBox a été mis à jour vers la branche 4.2.avec des modifications importantes au niveau du schéma et du comportement. La version 4.0.x est supprimée de l'arborescence, et il est conseillé aux utilisateurs de suivre les notifications de mise à jour 4.1 et 4.2 avant de procéder à la mise à niveau. D'autres services tels que matome Ils passent à l'utilisation de la version 5 par défaut (la version 4 n'est plus prise en charge), et le paquet est supprimé. matomo-beta puisqu'il est désormais facile d'écraser la version de overrideAttrs.
Kafka fait également l'objet d'une évolution majeure : Apache Kafka est mis à jour vers la branche 4.0 , qui ne prend plus en charge ZooKeeper. Toutes les installations doivent être migrées en mode KRaft, conformément aux recommandations de la Fondation Apache. Sous NixOS, cela implique de revoir les configurations afin de supprimer toute référence à ZooKeeper et d'adapter les déploiements des brokers en conséquence.
Services, démons et applications qui changent ou disparaissent de NixOS 25.11
La liste des paquets et services renommés, mis à jour de manière incompatible ou mis hors service est très longue dans ce cycle, signe de la volonté de nettoyer l'arbre des logiciels anciens ou problématiques.
Quelques exemples notables : gkraken Il disparaît et il est recommandé de l'utiliser coolercontrol comme alternative ; opensmtpd-extras Il est supprimé car il n'est pas compatible avec OpenSMTPD 7.6.0+, laissant place à des paquets spécifiques. opensmtpd-table-*; zammad Il cesse de prendre en charge MySQL et oblige les utilisateurs à migrer vers PostgreSQL en suivant le guide officiel.
Dans le monde des noms, Minetest s'appelle désormais Luanti pour refléter le changement en amont, mais des alias sont conservés pour éviter des perturbations immédiates. De même, modifications apportées au bagage cabine par POAC, xdragon devient dragon-drop (Avec xdragon (comme alias) et siduck76-st il est renommé en st-snazzyIl y a aussi des lettres minuscules : la police sérieux-sans Il est retiré car le projet en amont a changé son nom en Serious Shanns, et n'est toujours pas emballé.
D'autres projets sont simplement archivés : gkraken, éphémère, vocal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache et beaucoup d'autres sont signalés comme défectueux, non maintenus ou non sécurisés et retirés des Nixpacks. Dans plusieurs cas, une alternative est suggérée (par exemple, sm64coopdx pour remplacer sm64ex-coop, ou gnome-podcasts y kasts (pour remplacer une voyelle).
Dans le domaine de la messagerie et de la confidentialité, les paquets signald, signaldctl et purple-signald sont progressivement dépréciés en raison d'une incompatibilité prolongée avec les serveurs officiels de Signal, et le serveur conduwuit de Matrix est signalé comme vulnérable après avoir été abandonné par ses développeurs.
Nouvelles versions et modifications de comportement dans les applications populaires
Hormis les disparitions, de nombreuses applications sont mises à jour avec changements de comportement qui rompent la compatibilité. Par exemple, Agent Grafana et son module Ils quittent le marché au profit de Grafana Alloy, qui possède déjà son propre service. services.alloyGrafana recommande de migrer vers grafana-alloy et fournit la documentation nécessaire pour finaliser le transfert.
L'écosystème des moniteurs et des panneaux de contrôle évolue également : Prometheus passe à la branche 3.x , avec des notes de migration officielles, tandis que Kanata, Authelia, Helmfile, Open-Policy-Agent et de nombreux autres paquets sont mis à jour vers des versions majeures, avec des modifications de syntaxe, de formats de configuration et de valeurs par défaut. En particulier, OPA fait de rego.v1 le style par défaut , la syntaxe v0 étant considérée comme obsolète, bien qu'un mode de compatibilité reste disponible.
Le monde des ordinateurs de bureau n'est pas loin derrière : GIMP 3.0 apparaît sous le nom de gimp3, Strawberry est mis à jour vers la série 1.2 et abandonne le backend VLC et Qt5 (le paquet disparaît) strawberry-qt5 et quelques options avec GStreamer/VLC), rofi La version passe de 1.7.5 à 1.7.6 avec des modifications de l'ABI dans les plugins binaires, et tauon 7.9.0+ Votre base de données est en cours de migration vers un schéma incompatible avec les versions précédentes. Il est donc conseillé d'en effectuer une sauvegarde. ~/.local/share/TauonMusicBox avant d'ouvrir la nouvelle version.
Dans le domaine du développement web et de JavaScript, nodejs_latest évolue vers la série 24.x, sont éliminés nodejs_23 y nodejs_18et nettoie les paquets Node qui n'auraient jamais dû être globaux (tels que webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), avec la recommandation de les installer au niveau du projet. Des outils tels que pnpm passe à la version 10 avec un emballage secondaire pnpm_9 pour ceux qui ont besoin de compatibilité.
Des ajustements ont également été apportés aux polices de caractères : Nerdfonts est divisé en packages individuels sous l'espace de noms nerd-fonts et les chemins d'installation des polices changent, ayant désormais des répertoires par type de police (<fontDirName>Cela nous oblige à adapter des configurations qui pointaient vers les anciens itinéraires.
Modifications apportées au noyau, au matériel et à l'environnement système
Au niveau système, toute prise en charge de Darwin 32 bits est abandonnée , seules les plateformes modernes étant conservées. De plus, la triple configuration aarch64-darwin est remplacée par arm64-apple-darwin , conformément aux attentes d'Apple et de LLVM.
El Paquete minuscule Il sépare ensuite les sorties en dev, doc y lib, en faisant quoi tinycc.out Il contient uniquement les binaires tcc et les compilateurs croisés. Dans TPM, tpm2-pkcs11 Il se compile sans prise en charge de abrmd Par défaut, il privilégie le gestionnaire de ressources du noyau ; si vous avez besoin de la variante avec abrmd, elle existe. tpm2-pkcs11.abrmdet le module NixOS choisit automatiquement en fonction de security.tpm2.abrmd.
Dans udev, les règles de libjaylink Ils exigent désormais d'appartenir au groupe. jlink au lieu de plugdevC'était très rare sous NixOS. L'accès est également possible via des sessions utilisateur, ce qui limite l'impact si vous utilisez un poste de travail standard.
les accessoires mkBinaryCache Il est modernisé et commence à être utilisé zstd compression par défaut
Pour les caches binaires générésL'option de continuer reste ouverte. xz par compression = "xz";Cela améliore les performances de génération et de consommation de fichiers binaires dans la plupart des cas.
Dans les options réseau, Les propriétés networking.nat.externalIP et externalIPv6 modifient leur comportement.: les règles de networking.nat.forwardPorts Ces règles ne s'appliquent désormais qu'aux paquets destinés à des adresses IP explicitement spécifiées. Cela empêche les redirections inattendues, mais peut nécessiter l'ajustement des définitions NAT existantes.
Dans la gestion des systèmes de fichiers, les définitions Les systèmes de fichiers (tels que fileSystems."/") sont définis à l'aide de lib.mkDefault à partir des modules NixOS, ce qui permet de les remplacer tous en une seule fois, mais provoque des erreurs si seuls des attributs individuels sont écrasés sans le spécifier deviceSinon, vous pourriez recevoir des messages comme No device specified for mount point '/'.
Édition de texte, environnements de développement et divers utilitaires de NixOS 25.11
Dans l'univers Emacs, NixOS 25.11 supprime Emacs 28 et 29 , aussi bien la version standard que la version MacPorts de 28. L'édition MacPorts d'Emacs 29 est maintenue, mais avec des correctifs pour les vulnérabilités connues. Racket est également mis hors service : racket_7_9 est abandonné en raison de failles de sécurité , incitant les utilisateurs à adopter Racket 8. Par conséquent, fluxus , qui dépendait de cette version non maintenue depuis des années, est supprimé.
Le moteur de recherche textuel binwalk 3.1.0 Il est réécrit en Rust, et le module Python associé devient indisponible ; l'outil de comptes personnels python3Packages.beancount Elle passe à 3.1, la série précédente étant maintenue à beancount_2Dans le courrier électronique et l'interface de ligne de commande, tldr Il passe à l'utilisation du client Python au lieu du C, et Himalaya Elle passe à la version 1.1.0 avec des changements révolutionnaires qui nécessitent une révision de la configuration.
Dans divers outils, nq 1.0 renomme fq et tq en nqtail et nqterm, zf 0.10.2 Cela modifie la façon dont il gère l'Unicode et les séquences d'échappement, et ast-grep supprimer la commande sg pour éviter les conflits avec shadow-utils, tout en permettant une version de compatibilité héritée via enableLegacySg = true;.
Parallèlement, la famille des fonctions logarithmiques standard nixLog* Il est réécrit pour préfixer le niveau de débogage et le nom de la fonction appelante, réintroduisant nixLog Il s'agit d'un outil de journalisation inconditionnel qui ajoute également le contexte de la fonction. Cela facilite le débogage des dérivations et des hooks complexes.
Enfin, certains utilitaires de test tels que tester.shellcheck Désormais, ils vous avertissent si l'attribut n'est pas fourni. namequi deviendra obligatoire dans les versions futures. Et en Haskell, testTarget est marqué comme obsolète en faveur de testTargets, qui accepte une liste explicite de cibles au lieu d'une chaîne de caractères séparée par des espaces.
La version 25.11 de NixOS consolide ainsi un grand nombre de changements, du bureau GNOME 49 et des mises à jour massives des paquets aux ajustements profonds des chaînes d'outils, des services réseau et des politiques de compatibilité, devenant une édition clé pour tous ceux qui souhaitent maintenir leur environnement Nix à jour sans perdre de vue la stabilité et la reproductibilité qui caractérisent le projet.