NixOS 25.11 Xantusia: alla nya funktioner och viktiga ändringar

  • NixOS 25.11 “Xantusia” förnyar tusentals paket, moduler och tillval med starkt fokus på renlighet och säkerhet.
  • Skrivbordet tar ett språng framåt med GNOME 49 och verktygsuppdateringar som LLVM 21, CMake 4 och nya språkversioner.
  • Många inkompatibla ändringar introduceras i databaser, containrar och tjänster, vilket kräver en granskning av befintliga konfigurationer.
  • Många applikationer byter namn eller tas ur bruk till förmån för mer moderna alternativ, vilket driver ekosystemet mot underhållen och säker programvara.

Nix OS 25.11

NixOS är tillbaka med, Nix OS 25.11, en version som medför mycket djupgående förändringar både i själva systemet och i det stora ekosystemet av paket som omger det. Med kodnamnet "Xantusia" är det nu tillgängligt och kommer laddat med intressanta nya funktioner för stationära datorer, servrar, utveckling och molndistributioner, men också med ett antal inkompatibiliteter och föråldrade paket som bör granskas noggrant innan uppdatering.

I den här artikeln kommer vi att se Alla viktiga nyheter Från NixOS 25.11 och Nixpkgs-paketbasen: viktiga uppdateringar som GNOME 49, LLVM 21 och ROCm 6.3; betydande ändringar av Go, Rust, Node.js, PostgreSQL och Docker; omdöpta tjänster; nya moduler; och ytterligare konfigurationsalternativ. Vi kommer också att diskutera en verklig fallstudie som involverar proxyproblem vid kompilering av Discord och hur man åtgärdar dem i denna nya miljö.

NixOS 25.11 “Xantusia”: livscykel och lanseringssiffror

Den nya stabila versionen, NixOS 25.11 “Xantusia”Den kan nu installeras och uppdateras på vilket system som helst med stabila kanaler. Den här utgåvan kommer att få säkerhetsuppdateringar och buggfixar i sju månader, fram till den 30 juni 2026, så det är den nya rekommenderade uppgraderingen om du kommer från en tidigare version.

Den tidigare stabila, NixOS 25.05 “Sångare”, blir officiellt föråldrad och kommer att sluta ta emot säkerhetsuppdateringar från och med den 31 december 2025. Om du fortfarande använder 25.05 eller en ännu äldre gren är det ett bra tillfälle att lugnt planera din migrering till 25.11 och granska de inkompatibla ändringarna som vi kommer att beskriva i detalj i den här texten.

Denna lansering är också en uppvisning av utvecklingshastighet av projektet. Mellan NixOS 25.05 och NixOS 25.11 deltog 2 742 bidragsgivare, som tillsammans undertecknade inte mindre än 59 430 commits till Nixpacks och systemkonfigurationen. Bakom dessa siffror ligger allt från mindre korrigeringar till marginella paket till större omdesigner av kritiska distributionsmoduler.

Nixpkgs: Paket tillagda, uppdaterade och borttagna från NixOS 25.11

Nixpkgs-paketsamlingen, som är ryggraden Inte bara NixOS utan alla system som använder Nix-pakethanteraren på Linux eller macOS har fått massivt underhåll den här cykeln.

Å ena sidan har det funnits 7002 nya paket tillagdaytterligare utöka utbudet av tillgänglig programvara. Detta inkluderar allt från banbrytande utvecklingsverktyg till skrivbordsapplikationer, hanteringsverktyg och vetenskaplig programvara.

Samtidigt har laget Uppdaterade 25 252 befintliga paketDetta säkerställer att de flesta populära programvarorna uppdateras till de senaste versionerna, särskilt de med säkerhetsuppdateringar och prestandaförbättringar. Detta är avgörande i miljöer där reproducerbarhet är avgörande samtidigt som rimlig uppdatering bibehålls.

För att hålla arkivet hanterbart och säkert har Nixpkgs 6338 gamla paket borttagna som inte längre underhålls, var trasiga eller hade blivit föråldrade uppströms. I många fall finns direkta alternativ i själva Nixpkgs-trädet, men i andra fall görs de helt enkelt otillgängliga för att undvika säkerhets- eller kompileringsproblem.

NixOS-moduler och konfigurationsalternativ

Utöver sina paket utmärker sig NixOS genom sitt kraftfulla deklarativa modulsystem. Denna cykel har inkluderat 107 nya moduler införlivadeDessa uppdateringar lägger till stöd för nya tjänster, daemoner, applikationer och systemkonfigurationer. De ger också 1778 nya konfigurationsalternativ, vilket ytterligare ökar granulariteten med vilken ett system kan beskrivas.

Å andra sidan har det funnits tog bort 41 moduler och 807 konfigurationsalternativ som hade blivit föråldrade, trasiga eller ersatta av modernare alternativ. Om du återanvänder äldre konfigurationer är det en bra idé att granska meddelandena om utfasning för att anpassa dina filer innan du uppgraderar.

Anmärkningsvärda nya funktioner på skrivbordet: GNOME 49 “Brescia”

En av de stora nya funktionerna för datoranvändare är uppdateringen till GNOME 49 “Brescia”Den här versionen av skrivbordsmiljön tar ett avgörande steg mot Wayland och eliminerar den X11-baserade sessionen, vilket kan vara en betydande förändring om du behöll äldre konfigurationer eller tillägg som uttryckligen var beroende av Xorg.

GNOME 49 innehåller Nya applikationer Detta inkluderar en omarbetad videospelare och en uppdaterad dokumentvisare, samt en omdesignad kalender och ett flertal små förbättringar av användarupplevelsen. Det är lämpligt att granska de officiella GNOME-versionsinformationerna om du förlitar dig på någon mycket specifik funktionalitet eller komplexa tillägg.

C-kompilatorer och verktygskedjor: LLVM, GCC och CMake

I kompileringsavsnittet, NixOS 25.11-uppdateringar LLVM till version 21Detta är ett betydande steg framåt för utvecklare som använder C, C++ eller Rust med Clang-verktygskedjan. Den här versionen innehåller optimeringsförbättringar, nya stödda mål och justeringar av varningar som kan orsaka beteendeförändringar i vissa projekt.

kompilatorn GCC kvarstår i filial 14Detta är en version som redan är etablerad och testad i produktion. Detta gör det enklare att upprätthålla kompatibilitet med projekt som fortfarande är beroende av denna familj av kompilatorer utan att stöta på störande förändringar vid varje systemuppdatering.

För sin del, CMake är uppdaterad till version 4Detta kan möjliggöra nya funktioner i moderna byggsystem men kan också kräva justeringar i projekt som använde föråldrad syntax eller kommandon. Om du har äldre CMake-mallar är det en bra idé att köra byggtester innan du slutför migreringen.

GPU, beräkningsförmåga och förändringar i ROCm och CUDA

För de som arbetar med GPU-acceleration, grenen rocmPackages_6 uppgraderar till ROCm 6.3Medan rocmPackages_5 Den tas bort från trädet. Vissa delar omstruktureras: rocmPackages.rocm-thunk Den försvinner som ett separat paket och integreras i rocmPackages.clrOch rocmPackages.clang-ocl Han går i pension efter att ha övergivits av AMD 2023.

Parallellt, Officiellt stöd för CUDA 10 har upphörtSom redan nämnts i NixOS 24.11-utgåvan bör användare som fortfarande stödde mycket gammal hårdvara överväga att uppgradera sin GPU eller kontrollera om det finns underhållna alternativ från andra tillverkare eller backend-system.

Webbläsare, proxyservrar och problem med att kompilera Discord

Ett praktiskt problem som har uppdagats med denna version är användning av proxyservrar under kompileringarEn användare beskriver hur de kan ladda ner filen. discord-0.0.116.tar.gz från webbläsaren med hjälp av företagets proxy, men när du kör nixos-rebuild Nedladdningen med curl misslyckas upprepade gånger med ett felmeddelande curl: (35) Recv failure: Connection reset by peer tills alla försök är uttömda.

Nix-felmeddelandet indikerar att Discord-tarballen kunde inte laddas ner från ingen spegel, vilket bryter härledningen discord-0.0.116.tar.gz.drv och i sin tur konstruktionen av användarmiljön och hela systemet. Även om loggen visar varningar för automatiska återförsök, kan variabler som https_proxy o all_proxyDetta tyder på att körtidsmiljön i byggsandlådan inte ser användarens nätverkskonfiguration.

I NixOS, den standard proxymiljövariabler De kanske inte sprids direkt till forks om strikt sandboxing används eller om systemkonfigurationen inte exporterar dem till builds. Den typiska lösningen innebär att konfigurera Nix-alternativ som nix.extraOptions att inkludera http_proxy, https_proxy och företag, eller tillfälligt inaktivera sandlådan för den maskinen (rekommenderas inte på lång sikt) medan du justerar proxyservern för att tillåta trafik från byggarens IP-adress.

Ett annat alternativ är att tillgripa binära cacher som redan innehåller Discord eller andra problematiska paket, vilket förhindrar att Nix behöver ladda ner ursprungsfilerna direkt. I vilket fall som helst blir den här typen av nätverksfel mer relevanta i en version som 25.11, som flyttar så många delar samtidigt och kan ge upphov till olika beteenden i hur URL:er löses upp.

Nätverk, containrar och webbtjänster

Inom området nätverk och containrar introducerar NixOS 25.11 betydande förändringar. Squid HTTP-proxy uppgraderas till version 7Den här versionen innehåller flera inkompatibla ändringar, såsom borttagning av ESI-funktionalitet. För justeringar av dina anpassade inställningar rekommenderas att du granskar versionsinformationen för Squid.

På orkestreringsnivå, containerd-uppdateringar till sin 2.x-grenDetta medför ett antal beteendeförändringar. Oavsett om du använder containerd direkt eller som en del av en plattform är det viktigt att granska containerd 2.0-dokumentationen för att undvika överraskningar i produktionen.

I Docker-världen, docker_24 har tagits bort från trädet eftersom den inte längre stöds och har kända sårbarheter sedan juni 2024. Tanken är att pusha installationer till nyare och underhållna versioner av Docker.

Angående servrar och kontrollpaneler, NetBox är uppdaterad till gren 4.2med betydande förändringar på schema- och beteendenivåerna. Version 4.0.x har tagits bort från trädet och användare rekommenderas att följa meddelandena för uppdateringar 4.1 och 4.2 innan de uppgraderar. Andra tjänster som matomo De byter till att använda version 5 som standard (version 4 stöds inte längre) och paketet tas bort. matomo-beta eftersom det nu är enkelt att skriva över versionen från overrideAttrs.

Kafka gör också ett betydande språng: Apache Kafka uppdateras till gren 4.0som inte längre stöder ZooKeeper. Alla installationer måste migreras till KRaft-läge, enligt Apache Foundations riktlinjer. På NixOS innebär detta att granska konfigurationer för att ta bort referenser till ZooKeeper och anpassa broker-distributioner.

Tjänster, daemoner och applikationer som ändras eller försvinner från NixOS 25.11

Listan över Paket och tjänster som byts om, uppdateras inkompatibla eller tas ur bruk Det är väldigt långt i den här cykeln, ett tecken på viljan att rensa upp trädet från gammal eller problematisk programvara.

Några anmärkningsvärda exempel: gkraken Den försvinner och det rekommenderas att använda den coolercontrol som ett alternativ; opensmtpd-extras Den tas bort eftersom den inte är kompatibel med OpenSMTPD 7.6.0+, vilket ger plats åt specifika paket. opensmtpd-table-*; zammad Den slutar stödja MySQL och tvingar användare att migrera till PostgreSQL enligt den officiella guiden.

I namnens värld, Minetest heter nu Luanti för att återspegla förändringen uppströms, men alias bibehålls för att undvika omedelbara störningar. På liknande sätt, poac-ändringar i hyttpaket, xdragon blir drake-drop (Med xdragon (som ett alias) och siduck76-st det döps om till st-snazzyDet finns också små bokstäver: typsnittet seriös-sans Den drar sig tillbaka eftersom upstream har bytt namn till Serious Shanns, fortfarande oupppackad.

Andra projekt är helt enkelt arkiverade: gkraken, efemeral, vokal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache och många fler är markerade som trasiga, ounderhållna eller osäkra och borttagna från Nixpacks. I flera fall föreslås ett alternativ (till exempel, sm64coopdx för att ersätta sm64ex-coop, eller gnome-podcasts y kasts att ersätta en vokal).

I meddelande- och sekretessmiljön, paketen signald, signaldctl och purple-signald De avbryts på grund av långvarig inkompatibilitet med Signals officiella servrar och Matrix-servern. rörledning Den är markerad som sårbar efter att ha avbrutits av dess utvecklare.

Nya versioner och beteendeförändringar i populära applikationer

Bortsett från försvinnandena uppdateras många applikationer med beteendeförändringar som bryter kompatibilitet. Till exempel, Grafana Agent och dess modul De lämnar scenen till förmån för Grafana Alloy, som redan har en egen tjänst. services.alloyGrafana rekommenderar att migrera till grafana-alloy och tillhandahåller dokumentation för att slutföra överföringen.

Även ekosystemet för bildskärmar och paneler utvecklas: Prometheus tar steget till 3.x-grenenmed officiella migrationsanteckningar, medan kanata, authelia, helmfile, öppen policyagent och många andra paket uppdateras till huvudversioner med ändringar i syntax, konfigurationsformat och standardvärden. I synnerhet gör OPA det rego.v1 är nu standardstilen, vilket markerar v0-syntaxen som ärvd, även om ett kompatibilitetsläge fortfarande finns.

Skrivbordsvärlden ligger inte långt efter: GIMP 3.0 visas som gimp3, Jordgubben är uppdaterad till serie 1.2 och överger VLC- och Qt5-backend (paketet försvinner) strawberry-qt5 och vissa alternativ med GStreamer/VLC), ROFI Den går från 1.7.5 till 1.7.6 med ABI-ändringar i binära plugins, och tauon 7.9.0+ Din databas migreras till ett bakåtkompatibelt schema, så det är lämpligt att göra en säkerhetskopia av ~/.local/share/TauonMusicBox innan den nya versionen öppnas.

Inom webbutveckling och JavaScript, nodejs_latest utvecklas till 24.x-serien, elimineras nodejs_23 y nodejs_18och rensar upp Node-paket som aldrig borde ha varit globala (som till exempel webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), med rekommendationen att installera dem på projektnivå. Verktyg som pnpm hoppar till version 10 med ett sekundärt paket pnpm_9 för de som behöver kompatibilitet.

Det finns också justeringar av typsnitten: nerdfonts är uppdelat i individuella paket under namnrymden nerd-fonts och installationsvägarna för teckensnitten ändras, nu med kataloger efter teckensnittstyp (<fontDirName>Detta tvingar oss att anpassa konfigurationer som pekade mot de gamla vägarna.

Ändringar i kärna, hårdvara och systemmiljö

På systemnivå är den övergiven fullt stöd för 32-bitars Darwinendast moderna plattformar. Dessutom den tredubbla konfigurationen av aarch64-darwin överensstämmer med arm64-apple-darwin, vilket överensstämmer med Apples och LLVMs förväntningar.

El paquete tinycc Den separerar sedan utgångarna i dev, doc y lib, gör tinycc.out Den innehåller endast tcc-binärfiler och korskompilatorer. I TPM, tpm2-pkcs11 Den kompilerar utan stöd för abrmd Som standard prioriterar den kärnresurshanteraren; om du behöver varianten med abrmd finns den. tpm2-pkcs11.abrmdoch NixOS-modulen väljer automatiskt enligt security.tpm2.abrmd.

I udev gäller reglerna för libjaylänk De kräver nu att få tillhöra gruppen. jlink istället för plugdevDetta var mycket ovanligt i NixOS. Åtkomst är också tillåten via seat-sessioner, så effekten är begränsad om du använder en vanlig skrivbordsmiljö.

rekvisitan mkBinärcache Den moderniseras och börjar användas zstd som standardkomprimering

För de genererade binära cachenMöjligheten att fortsätta lämnas öppen. xz genom compression = "xz";Detta förbättrar prestandan vid generering och konsumtion av binärfiler i de flesta fall.

I nätverksalternativ, networking.nat.externalIP och externalIPv6 ändrar sitt beteendereglerna för networking.nat.forwardPorts Dessa regler gäller nu endast för paket som är avsedda för explicit angivna IP-adresser. Detta förhindrar oväntade omdirigeringar, men kan kräva justering av befintliga NAT-definitioner.

I filsystemhantering, definitionerna Filsystem (som fileSystems."/") ställs in med lib.mkDefault från NixOS-modulerna, vilket gör att alla kan ersättas på en gång men orsakar fel om endast enskilda attribut skrivs över utan att ange deviceAnnars kan du stöta på meddelanden som No device specified for mount point '/'.

Textredigering, utvecklingsmiljöer och olika verktyg i NixOS 25.11

I Emacs-universumet, NixOS 25.11 Ta bort Emacs 28 och 29Både standardversionen och Macport-versionen för Emacs 28 ingår. Macport-utgåvan av Emacs 29 bibehålls men med patchar för kända sårbarheter. Racket genomgår också rensning: racket_7_9 är återkallad på grund av osäkerdriver på för att använda Racket 8, och därmed eliminera fluxus, som hade förlitat sig på den ounderhållna versionen i åratal.

Textsökmotorn binwalk 3.1.0 Den skrivs om i Rust, och den tillhörande Python-modulen blir otillgänglig; verktyget för personliga konton python3Packages.bönaräkning Den stiger till 3.1 med den föregående serien bibehållen som beancount_2I e-post och CLI, tldr Den växlar till att använda Python-klienten istället för C, och himalaya Den uppdateras till version 1.1.0 med banbrytande förändringar som kräver en konfigurationsgranskning.

I olika verktyg, nq 1.0 byter namn på fq och tq till nqtail och nqterm, zf0.10.2 Den ändrar hur den hanterar Unicode och escape-sekvenser, och ast-grep ta bort kommandot sg för att undvika konflikter med skuggverktyg, samtidigt som en äldre kompatibilitetsversion fortfarande tillåts enableLegacySg = true;.

Samtidigt, familjen av standardloggfunktioner nixLog* Den skrivs om för att prefixa felsökningsnivån och det anropande funktionsnamnet, och återinförs nixLog som en ovillkorlig loggfil som också lägger till funktionskontexten. Detta gör det enklare att felsöka komplexa härledningar och hooks.

Slutligen, några testverktyg som t.ex. testare.shellcheck Nu varnar de dig om attributet inte anges. namevilket kommer att bli obligatoriskt i framtida versioner. Och i Haskell, testTarget är markerat som föråldrat till förmån för testTargets, som accepterar en explicit lista över mål istället för en mellanslagsseparerad sträng.

NixOS version 25.11 konsoliderar således ett stort antal förändringar, från GNOME 49-skrivbordet och massiva paketuppdateringar till djupgående justeringar i verktygskedjor, nätverkstjänster och kompatibilitetspolicyer, vilket gör den till en viktig utgåva för alla som vill hålla sin Nix-miljö uppdaterad utan att tappa bort ur sikte... stabilitet och reproducerbarhet som kännetecknar projektet.

Nix OS 24.11
Relaterad artikel:
Allt du behöver veta om den efterlängtade versionen av NixOS 24.11