
NixOS ist zurück mit Nix OS 25.11, eine Version, die sehr tiefgreifende Änderungen mit sich bringt Sowohl das System selbst als auch das umfangreiche Ökosystem der dazugehörigen Pakete sind betroffen. Die unter dem Codenamen „Xantusia“ entwickelte Software ist ab sofort verfügbar und bietet zahlreiche interessante neue Funktionen für Desktop-PCs, Server, Entwicklungsumgebungen und Cloud-Bereitstellungen. Allerdings birgt sie auch einige Inkompatibilitäten und veraltete Pakete, die vor einem Update sorgfältig geprüft werden sollten.
In diesem Artikel werden wir sehen Alle wichtigen Neuigkeiten Ab NixOS 25.11 und der Nixpkgs-Paketbasis: wichtige Aktualisierungen wie GNOME 49, LLVM 21 und ROCm 6.3; bedeutende Änderungen an Go, Rust, Node.js, PostgreSQL und Docker; umbenannte Dienste; neue Module; und zusätzliche Konfigurationsoptionen. Wir werden außerdem eine Fallstudie aus der Praxis zu Proxy-Problemen beim Kompilieren von Discord und deren Behebung in dieser neuen Umgebung besprechen.
NixOS 25.11 „Xantusia“: Lebenszyklus- und Markteinführungszahlen
Die neue stabile Version, NixOS 25.11 „Xantusia“Es kann nun auf jedem System über stabile Kanäle installiert und aktualisiert werden. Diese Version erhält sieben Monate lang, bis zum 30. Juni 2026, Sicherheitsupdates und Fehlerbehebungen und ist daher das empfohlene Upgrade für alle, die von einer älteren Version wechseln.
Der vorherige Stall, NixOS 25.05 „Warbler“Version 25.05 wird offiziell veraltet sein und ab dem 31. Dezember 2025 keine Sicherheitsupdates mehr erhalten. Wenn Sie noch Version 25.05 oder eine ältere Version verwenden, ist jetzt ein guter Zeitpunkt, Ihre Migration auf Version 25.11 in Ruhe zu planen und die inkompatiblen Änderungen zu beachten, die wir im Folgenden detailliert beschreiben werden.
Diese Produkteinführung dient auch als Schaufenster für Entwicklungsrate des Projekts. Zwischen NixOS 25.05 und NixOS 25.11 beteiligten sich 2742 Mitwirkende und trugen gemeinsam nicht weniger als 59.430 Commits zu Nixpacks und der Systemkonfiguration bei. Hinter diesen Zahlen verbergen sich alles von kleineren Fehlerbehebungen und weniger wichtigen Paketen bis hin zu grundlegenden Überarbeitungen kritischer Distributionsmodule.
Nixpkgs: In NixOS 25.11 hinzugefügte, aktualisierte und entfernte Pakete
Die Nixpkgs-Paketsammlung, die die Wirbelsäule Nicht nur NixOS, sondern jedes System, das den Nix-Paketmanager unter Linux oder macOS verwendet, wurde in diesem Zyklus einer umfassenden Wartung unterzogen.
Auf der einen Seite gab es 7002 neue Pakete hinzugefügtDie Palette der verfügbaren Software wird weiter ausgebaut. Dies umfasst alles von hochmodernen Entwicklungswerkzeugen über Desktop-Anwendungen und Management-Tools bis hin zu wissenschaftlicher Software.
Gleichzeitig hat das Team 25.252 bestehende Pakete wurden aktualisiertDadurch wird sichergestellt, dass die gängigste Software auf dem neuesten Stand ist, insbesondere solche mit Sicherheitsupdates und Leistungsverbesserungen. Dies ist entscheidend in Umgebungen, in denen Reproduzierbarkeit unerlässlich ist und gleichzeitig eine angemessene Aktualität gewährleistet werden muss.
Um das Repository überschaubar und sicher zu halten, hat Nixpkgs 6338 alte Pakete entfernt die nicht mehr gepflegt wurden, defekt waren oder in den vorgelagerten Paketen veraltet waren. In vielen Fällen existieren direkte Alternativen innerhalb des Nixpkgs-Quellcodes selbst, in anderen Fällen sind sie jedoch aus Sicherheits- oder Kompilierungsgründen nicht verfügbar.
NixOS-Module und Konfigurationsoptionen
Neben seinen Paketen zeichnet sich NixOS durch sein leistungsstarkes deklaratives Modulsystem aus. Dieser Zyklus umfasste 107 neue Module integriertDiese Aktualisierungen erweitern die Unterstützung für neue Dienste, Daemons, Anwendungen und Systemkonfigurationen. Sie bieten außerdem 1778 neue Konfigurationsoptionen und erhöhen damit die Granularität, mit der ein System beschrieben werden kann.
Andererseits gab es 41 Module entfernt und 807 Konfigurationsoptionen, die veraltet, fehlerhaft oder durch modernere Alternativen ersetzt wurden. Wenn Sie ältere Konfigurationen wiederverwenden, empfiehlt es sich, die Hinweise zur Veraltung zu prüfen und Ihre Dateien vor dem Upgrade entsprechend anzupassen.
Bemerkenswerte Neuerungen auf dem Desktop: GNOME 49 „Brescia“
Eine der wichtigsten Neuerungen für Desktop-Nutzer ist das Update auf GNOME 49 „Brescia“Diese Version der Desktop-Umgebung geht einen entscheidenden Schritt in Richtung Wayland und beseitigt die X11-basierte Sitzung. Dies kann eine erhebliche Umstellung bedeuten, wenn Sie ältere Konfigurationen oder Erweiterungen beibehalten haben, die explizit von Xorg abhängig waren.
GNOME 49 enthält Neue Anwendungen Dies umfasst einen überarbeiteten Videoplayer und einen aktualisierten Dokumentenbetrachter sowie einen neu gestalteten Kalender und zahlreiche kleinere Verbesserungen der Benutzerfreundlichkeit. Es empfiehlt sich, die offiziellen GNOME-Versionshinweise zu lesen, wenn Sie auf spezielle Funktionen oder komplexe Erweiterungen angewiesen sind.
C-Compiler und Toolchains: LLVM, GCC und CMake
Im Abschnitt „Kompilierung“ werden die Aktualisierungen von NixOS 25.11 beschrieben. LLVM auf Version 21Dies ist ein bedeutender Fortschritt für Entwickler, die C, C++ oder Rust mit der Clang-Toolchain verwenden. Diese Version enthält Optimierungen, neue unterstützte Ziele und Anpassungen an Warnungen, die in manchen Projekten zu Verhaltensänderungen führen können.
der Compiler GCC bleibt in Zweigstelle 14Diese Version ist bereits etabliert und im Produktiveinsatz getestet. Dadurch lässt sich die Kompatibilität mit Projekten, die noch auf dieser Compilerfamilie basieren, leichter aufrechterhalten, ohne dass es bei jedem Systemupdate zu gravierenden Änderungen kommt.
Für seinen Teil, CMake wurde auf Version 4 aktualisiert.Dies ermöglicht neue Funktionen in modernen Build-Systemen, erfordert aber möglicherweise auch Anpassungen in Projekten, die veraltete Syntax oder Befehle verwenden. Bei älteren CMake-Vorlagen empfiehlt es sich, vor dem endgültigen Abschluss der Migration Build-Tests durchzuführen.
GPU, Computing und Änderungen in ROCm und CUDA
Für diejenigen, die mit GPU-Beschleunigung arbeiten, der Zweig rocmPackages_6 auf ROCm 6.3 aktualisierenWährend rocmPackages_5 Es wird vom Baum entfernt. Einige Teile werden umstrukturiert: rocmPackages.rocm-thunk Es verschwindet als separates Paket und wird integriert in rocmPackages.clrund rocmPackages.clang-ocl Er geht in den Ruhestand, nachdem er 2023 von AMD im Stich gelassen wurde.
Parallel zu, Die offizielle Unterstützung für CUDA 10 ist weggefallen.Wie bereits in den Versionshinweisen zu NixOS 24.11 erwähnt, sollten Benutzer, die noch sehr alte Hardware unterstützen, ein Upgrade ihrer GPU in Erwägung ziehen oder prüfen, ob es unterstützte Alternativen von anderen Herstellern oder Backends gibt.
Browser, Proxys und Probleme beim Kompilieren von Discord
Ein praktisches Problem, das bei dieser Version aufgetreten ist, ist die Verwendung von Proxys während der KompilierungEin Benutzer beschreibt, wie er die Datei erfolgreich herunterladen kann. discord-0.0.116.tar.gz vom Browser über den Unternehmensproxy, aber beim Ausführen nixos-rebuild Der Download mit curl schlägt wiederholt mit einem Fehler fehl. curl: (35) Recv failure: Connection reset by peer bis alle Versuche ausgeschöpft sind.
Die Nix-Fehlermeldung deutet darauf hin, dass Das Discord-Tarball-Archiv konnte nicht heruntergeladen werden. Da kein Spiegelbild vorhanden ist, wird die Ableitung unterbrochen. discord-0.0.116.tar.gz.drv und damit wiederum die Konstruktion der Benutzerumgebung und des Gesamtsystems. Obwohl das Protokoll Warnungen vor automatischen Wiederholungsversuchen anzeigt, werden Variablen wie beispielsweise https_proxy o all_proxyDies lässt darauf schließen, dass die Laufzeitumgebung innerhalb der Build-Sandbox die Netzwerkkonfiguration des Benutzers nicht erkennt.
In NixOS, Standard-Proxy-Umgebungsvariablen Sie werden möglicherweise nicht direkt an Forks weitergegeben, wenn striktes Sandboxing verwendet wird oder die Systemkonfiguration sie nicht in Builds exportiert. Die typische Lösung besteht darin, Nix-Optionen wie folgt zu konfigurieren: nix.extraOptions einschließen http_proxy, https_proxy und Unternehmen, oder die Sandbox für diese Maschine vorübergehend deaktivieren (langfristig nicht empfohlen), während der Proxy-Server so eingestellt wird, dass Datenverkehr von der IP-Adresse des Erstellers zugelassen wird.
Eine weitere Möglichkeit besteht darin, auf Folgendes zurückzugreifen: Binär-Caches, die bereits Discord enthalten oder andere problematische Pakete, wodurch Nix daran gehindert wird, die Ursprünge direkt herunterzuladen. In jedem Fall werden diese Netzwerkfehler in einer Version wie 25.11 relevanter, da diese so viele Komponenten gleichzeitig verschiebt und dadurch das Verhalten bei der URL-Auflösung verändert werden kann.
Netzwerk-, Container- und Webdienste
Im Bereich Netzwerktechnik und Container führt NixOS 25.11 bedeutende Änderungen ein. Squid HTTP-Proxy-Upgrade auf Version 7Diese Version enthält einige inkompatible Änderungen, wie beispielsweise die Entfernung der ESI-Funktionalität. Informationen zu Anpassungen Ihrer benutzerdefinierten Einstellungen finden Sie in den Squid-Versionshinweisen.
Auf der Orchestrierungsebene containerd wird auf den 2.x-Zweig aktualisiertDies bringt eine Reihe von Verhaltensänderungen mit sich. Unabhängig davon, ob Sie containerd direkt oder als Komponente einer Plattform verwenden, ist es unerlässlich, die containerd 2.0-Dokumentation zu lesen, um Überraschungen im Produktivbetrieb zu vermeiden.
In der Docker-Welt, docker_24 wurde aus dem Baum entfernt weil es nicht mehr unterstützt wird und seit Juni 2024 bekannte Sicherheitslücken aufweist. Die Idee ist, Installationen auf neuere und gepflegte Versionen von Docker umzustellen.
Was Server und Bedienfelder betrifft, NetBox wurde auf Version 4.2 aktualisiert.mit wesentlichen Änderungen auf Schema- und Verhaltensebene. Version 4.0.x wurde aus dem Verzeichnisbaum entfernt. Benutzern wird empfohlen, vor dem Upgrade die Benachrichtigungen für die Updates 4.1 und 4.2 zu beachten. Andere Dienste wie z. B. Matomo Sie stellen standardmäßig auf Version 5 um (Version 4 wird nicht mehr unterstützt), und das Paket wird entfernt. matomo-beta da es nun einfach ist, die Version von overrideAttrs.
Auch Kafka vollzieht einen bedeutenden Sprung: Apache Kafka wurde auf Branch 4.0 aktualisiert.Da ZooKeeper nicht mehr unterstützt wird, müssen alle Installationen gemäß den Richtlinien der Apache Foundation in den KRaft-Modus migriert werden. Unter NixOS bedeutet dies, die Konfigurationen zu überprüfen, um Verweise auf ZooKeeper zu entfernen, und die Broker-Bereitstellungen anzupassen.
Dienste, Daemons und Anwendungen, die sich in NixOS 25.11 ändern oder verschwinden.
Die Liste der Pakete und Dienste, die umbenannt, inkompatibel aktualisiert oder eingestellt werden. Dieser Zyklus ist sehr lang, ein Zeichen für die Bereitschaft, alte oder problematische Software aus dem System zu entfernen.
Einige bemerkenswerte Beispiele: gkraken Es verschwindet und es wird empfohlen, es zu verwenden. coolercontrol als Alternative; opensmtpd-extras Es wird entfernt, da es nicht mit OpenSMTPD 7.6.0+ kompatibel ist und Platz für spezifische Pakete macht. opensmtpd-table-*; zammad Es stellt die Unterstützung für MySQL ein und zwingt die Benutzer, gemäß der offiziellen Anleitung auf PostgreSQL umzusteigen.
In der Welt der Namen, Minetest heißt jetzt Luanti um die vorgelagerte Änderung widerzuspiegeln, aber Aliase werden beibehalten, um unmittelbare Störungen zu vermeiden. Ebenso poac-Änderungen zu cabinpkg, xdragon wird zu dragon-drop (Mit xdragon (als Alias) und siduck76-st es wird umbenannt in st-snazzyEs gibt auch Kleinbuchstaben: die Schriftart ernsthaft-sans Es wird zurückgezogen, weil der Upstream den Namen in Serious Shanns geändert hat, das Projekt ist noch nicht paketiert.
Andere Projekte werden einfach archiviert: gkraken, ephemeral, vocal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache Viele weitere Pakete sind als defekt, nicht gewartet oder unsicher gekennzeichnet und werden aus Nixpacks entfernt. In einigen Fällen wird eine Alternative vorgeschlagen (zum Beispiel …). sm64coopdx um sm64ex-coop zu ersetzen, oder gnome-podcasts y kasts (um einen Vokal zu ersetzen).
Im Umfeld von Messaging und Datenschutz werden die Pakete signald, signaldctl und purple-signald Sie werden aufgrund anhaltender Inkompatibilität mit den offiziellen Servern von Signal und dem Matrix-Server eingestellt. Leitung Es gilt als anfällig, da die Entwicklung durch die Hersteller eingestellt wurde.
Neue Versionen und Verhaltensänderungen in beliebten Anwendungen
Abgesehen von den Verschwinden werden viele Anwendungen aktualisiert mit Verhaltensänderungen, die die Kompatibilität beeinträchtigen. Zum Beispiel Grafana Agent und sein Modul Sie verlassen den Markt zugunsten von Grafana Alloy, das bereits über einen eigenen Service verfügt. services.alloyGrafana empfiehlt die Migration zu grafana-alloy und stellt die zur Durchführung der Übertragung erforderlichen Unterlagen bereit.
Das Ökosystem der Monitore und Panels entwickelt sich ebenfalls weiter: Prometheus vollzieht den Sprung zum 3.x-Zweig.mit offiziellen Migrationshinweisen, während kanata, authelia, helmfile, open-policy-agent Viele weitere Pakete werden auf Hauptversionen aktualisiert, die Änderungen an Syntax, Konfigurationsformaten und Standardwerten mit sich bringen. Insbesondere OPA ändert seine Syntax. rego.v1 ist jetzt der Standardstil, wobei die v0-Syntax als geerbt gekennzeichnet wird, obwohl weiterhin ein Kompatibilitätsmodus existiert.
Die Desktop-Welt steht dem kaum nach: GIMP 3.0 erscheint als gimp3, Strawberry wurde auf Version 1.2 aktualisiert. und gibt das VLC- und Qt5-Backend auf (das Paket verschwindet). strawberry-qt5 und einige Optionen mit GStreamer/VLC), rofi Es geht von Version 1.7.5 auf 1.7.6 mit ABI-Änderungen in Binär-Plugins, und tauon 7.9.0+ Ihre Datenbank wird auf ein inkompatibles Schema migriert, daher ist es ratsam, eine Sicherungskopie anzulegen. ~/.local/share/TauonMusicBox vor dem Öffnen der neuen Version.
Im Bereich Webentwicklung und JavaScript, nodejs_latest wird zur Serie 24.x weiterentwickelt.werden eliminiert nodejs_23 y nodejs_18und entfernt Node-Pakete, die niemals global hätten sein sollen (wie z. B. webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), mit der Empfehlung, sie auf Projektebene zu installieren. Tools wie beispielsweise pnpm springt auf Version 10 mit einem Sekundärpaket pnpm_9 Für diejenigen, die Kompatibilität benötigen.
Es gibt auch Anpassungen an den Schriftarten: nerdfonts ist in einzelne Pakete unterteilt. unter dem Namensraum nerd-fonts und die Installationspfade für die Schriftarten ändern sich, sie enthalten nun Verzeichnisse nach Schriftarttyp (<fontDirName>Dies zwingt uns, Konfigurationen anzupassen, die auf die alten Routen verwiesen haben.
Änderungen an Kernel, Hardware und Systemumgebung
Auf Systemebene wird es aufgegeben. Volle Unterstützung für 32-Bit-DarwinEs werden ausschließlich moderne Plattformen gepflegt. Darüber hinaus die dreifache Konfiguration von aarch64-darwin entspricht arm64-apple-darwin, was den Erwartungen von Apple und LLVM entspricht.
El Paquete tinycc Anschließend werden die Ausgaben getrennt in dev, doc y libmachen tinycc.out Es enthält ausschließlich die TCC-Binärdateien und Cross-Compiler. In TPM, tpm2-pkcs11 Es lässt sich ohne Unterstützung für kompilieren. abrmd Standardmäßig wird der Kernel-Ressourcenmanager priorisiert; falls Sie die Variante mit abrmd benötigen, ist diese verfügbar. tpm2-pkcs11.abrmdund das NixOS-Modul wählt automatisch entsprechend aus security.tpm2.abrmd.
In udev gelten die Regeln von libjaylink Sie fordern nun, der Gruppe angehören zu dürfen. jlink statt plugdevDies war unter NixOS sehr ungewöhnlich. Der Zugriff ist auch über Sitzplatzsitzungen möglich, sodass die Auswirkungen bei Verwendung eines Standard-Desktop-PCs begrenzt sind.
die Requisiten mkBinaryCache Es wird modernisiert und beginnt zu nutzen zstd als Standardkomprimierung
Für die generierten Binär-CachesDie Option, fortzufahren, bleibt offen. xz durch compression = "xz";Dies verbessert in den meisten Fällen die Leistung bei der Erzeugung und dem Verbrauch von Binärdateien.
In den Netzwerkoptionen networking.nat.externalIP und externalIPv6 ändern ihr Verhalten: die Regeln von networking.nat.forwardPorts Diese Regeln gelten nun nur noch für Pakete, die an explizit angegebene IP-Adressen gerichtet sind. Dadurch werden unerwartete Weiterleitungen verhindert, es kann jedoch erforderlich sein, bestehende NAT-Definitionen anzupassen.
Im Bereich der Dateisystemverwaltung, die Definitionen Dateisysteme (wie z. B. Dateisysteme."/") werden mit lib.mkDefault festgelegt. aus den NixOS-Modulen, wodurch alle Attribute gleichzeitig ersetzt werden können, jedoch Fehler auftreten, wenn nur einzelne Attribute ohne Angabe überschrieben werden. deviceAndernfalls könnten Ihnen Meldungen wie diese begegnen. No device specified for mount point '/'.
Textbearbeitung, Entwicklungsumgebungen und verschiedene Hilfsprogramme von NixOS 25.11
Im Emacs-Universum, NixOS 25.11 Emacs 28 und 29 entfernenSowohl die Standardversion als auch die MacPort-Version von Emacs 28 sind enthalten. Die MacPort-Edition von Emacs 29 wird weiterhin gepflegt, enthält aber Patches für bekannte Sicherheitslücken. Auch Racket wird überarbeitet: Racket_7_9 wurde aufgrund von Sicherheitsbedenken zurückgezogen.die Verwendung von Racket 8 forcieren und dadurch eliminieren Fluxus, die sich jahrelang auf diese nicht mehr gewartete Version verlassen hatte.
Die Textsuchmaschine binwalk 3.1.0 Es wurde in Rust neu geschrieben, und das zugehörige Python-Modul ist nicht mehr verfügbar; das Tool für persönliche Konten python3Packages.beancount Der Wert steigt auf 3.1, wobei die vorherige Reihe beibehalten wird. beancount_2Per E-Mail und CLI, tldr Es wechselt zur Verwendung des Python-Clients anstelle von C, und Himalaya Es wird auf Version 1.1.0 aktualisiert, die bahnbrechende Änderungen enthält, die eine Überprüfung der Konfiguration erfordern.
In verschiedenen Werkzeugen nq 1.0 benennt fq und tq in nqtail und nqterm um., zf 0.10.2 Es ändert die Art und Weise, wie es Unicode und Escape-Sequenzen verarbeitet, und ast-grep Entfernen Sie den Befehl sg um Konflikte mit shadow-utils zu vermeiden und gleichzeitig eine Legacy-Kompatibilitätsversion zu ermöglichen enableLegacySg = true;.
Gleichzeitig die Familie der Standardlogarithmusfunktionen nixLog* Es wurde umgeschrieben, um die Debugging-Stufe und den Namen der aufrufenden Funktion voranzustellen und so Folgendes wieder einzuführen nixLog als unbedingter Logger, der auch den Funktionskontext hinzufügt. Dies erleichtert das Debuggen komplexer Ableitungen und Hooks.
Schließlich gibt es einige Testprogramme wie zum Beispiel testers.shellcheck Jetzt werden Sie gewarnt, wenn das Attribut nicht angegeben wird. namewas in zukünftigen Versionen obligatorisch werden wird. Und in Haskell, testTarget ist als veraltet markiert zugunsten testTargets, das anstelle einer durch Leerzeichen getrennten Zeichenkette eine explizite Liste von Zielen akzeptiert.
NixOS Version 25.11 vereint somit eine Vielzahl von Änderungen, vom GNOME 49-Desktop und umfangreichen Paketaktualisierungen bis hin zu tiefgreifenden Anpassungen an Toolchains, Netzwerkdiensten und Kompatibilitätsrichtlinien. Damit ist sie eine Schlüsselversion für alle, die ihre Nix-Umgebung aktuell halten möchten, ohne dabei die Zukunft aus den Augen zu verlieren. Stabilität und Reproduzierbarkeit die das Projekt charakterisieren.