
NixOS er tilbake med, Nix OS 25.11, en versjon som medfører svært dyptgripende endringer både i selve systemet og i det enorme økosystemet av pakker som omgir det. Kodenavnet «Xantusia» er nå tilgjengelig og kommer fullpakket med interessante nye funksjoner for stasjonære datamaskiner, servere, utvikling og skydistribusjoner, men også med en god del inkompatibiliteter og utdaterte pakker som bør gjennomgås nøye før oppdatering.
I denne artikkelen får vi se Alle de viktige nyhetene Fra NixOS 25.11 og Nixpkgs-pakkebasen: viktige oppdateringer som GNOME 49, LLVM 21 og ROCm 6.3; betydelige endringer i Go, Rust, Node.js, PostgreSQL og Docker; omdøpte tjenester; nye moduler; og ytterligere konfigurasjonsalternativer. Vi vil også diskutere en casestudie fra den virkelige verden som involverer proxy-problemer ved kompilering av Discord og hvordan man kan håndtere dem i dette nye miljøet.
NixOS 25.11 «Xantusia»: livssyklus og lanseringstall
Den nye stabile versjonen, NixOS 25.11 «Xantusia»Den kan nå installeres og oppdateres på alle systemer ved hjelp av stabile kanaler. Denne utgaven vil motta sikkerhetsoppdateringer og feilrettinger i syv måneder, frem til 30. juni 2026, så det er den nye anbefalte oppgraderingen hvis du kommer fra en tidligere versjon.
Den forrige stabile, NixOS 25.05 «Warbler», blir offisielt foreldet og vil slutte å motta sikkerhetsoppdateringer fra 31. desember 2025. Hvis du fortsatt bruker 25.05 eller en enda eldre gren, er det et godt tidspunkt å rolig planlegge migreringen til 25.11, og gjennomgå de inkompatible endringene som vi vil beskrive i detalj i denne teksten.
Denne lanseringen er også et utstillingsvindu for utviklingshastighet av prosjektet. Mellom NixOS 25.05 og NixOS 25.11 deltok 2742 bidragsytere, og til sammen signerte de ikke færre enn 59 430 commits til Nixpacks og systemkonfigurasjonen. Bak disse tallene ligger alt fra mindre rettelser til marginale pakker til større redesign av kritiske distribusjonsmoduler.
Nixpkgs: Pakker lagt til, oppdatert og fjernet fra NixOS 25.11
Nixpkgs-pakkesamlingen, som er ryggrad Ikke bare NixOS, men alle systemer som bruker Nix-pakkebehandleren på Linux eller macOS har fått massivt vedlikehold denne syklusen.
På den ene siden har det vært 7002 nye pakker lagt tilytterligere utvidelse av utvalget av tilgjengelig programvare. Dette inkluderer alt fra banebrytende utviklingsverktøy til skrivebordsapplikasjoner, administrasjonsverktøy og vitenskapelig programvare.
Samtidig har laget Oppdaterte 25 252 eksisterende pakkerDette sikrer at mesteparten av populær programvare oppdateres til nyere versjoner, spesielt de med sikkerhetsoppdateringer og ytelsesforbedringer. Dette er avgjørende i miljøer der reproduserbarhet er viktig, samtidig som rimelig oppdatering opprettholdes.
For å holde depotet håndterbart og sikkert har Nixpkgs 6338 gamle pakker fjernet som ikke lenger ble vedlikeholdt, var ødelagte eller hadde blitt foreldet oppstrøms. I mange tilfeller finnes det direkte alternativer i selve Nixpkgs-treet, men i andre er de rett og slett gjort utilgjengelige for å unngå sikkerhets- eller kompileringsproblemer.
NixOS-moduler og konfigurasjonsalternativer
I tillegg til pakkene sine, utmerker NixOS seg ved sitt kraftige deklarative modulsystem. Denne syklusen har inkludert 107 nye moduler innlemmetDisse oppdateringene legger til støtte for nye tjenester, daemoner, applikasjoner og systemkonfigurasjoner. De bringer også med seg 1778 nye konfigurasjonsalternativer, noe som ytterligere øker granulariteten som et system kan beskrives med.
På den annen side har det vært fjernet 41 moduler og 807 konfigurasjonsalternativer som var blitt foreldet, ødelagte eller erstattet av mer moderne alternativer. Hvis du bruker eldre konfigurasjoner på nytt, er det lurt å se gjennom avskrivningsvarslene for å tilpasse filene dine før du oppgraderer.
Viktige nye funksjoner på skrivebordet: GNOME 49 «Brescia»
En av de store nye funksjonene for desktopbrukere er oppdateringen til GNOME 49 «Brescia»Denne versjonen av skrivebordsmiljøet tar et avgjørende skritt mot Wayland og eliminerer den X11-baserte økten, noe som kan være en betydelig endring hvis du beholdt eldre konfigurasjoner eller utvidelser som eksplisitt var avhengige av Xorg.
GNOME 49 inneholder Nye applikasjoner Dette inkluderer en nyutviklet videospiller og en oppdatert dokumentvisning, samt en nyutviklet kalender og en rekke små forbedringer av brukeropplevelsen. Det anbefales å gjennomgå de offisielle GNOME-utgivelsesnotatene hvis du er avhengig av svært spesifikk funksjonalitet eller komplekse utvidelser.
C-kompilatorer og verktøykjeder: LLVM, GCC og CMake
I kompileringsdelen, NixOS 25.11-oppdateringer LLVM til versjon 21Dette er et betydelig sprang fremover for utviklere som bruker C, C++ eller Rust med Clang-verktøykjeden. Denne versjonen inkluderer optimaliseringsforbedringer, nye støttede mål og justeringer av advarsler som kan forårsake endringer i atferd i noen prosjekter.
kompilatoren GCC forblir i avdeling 14Dette er en versjon som allerede er etablert og testet i produksjon. Dette gjør det enklere å opprettholde kompatibilitet med prosjekter som fortsatt er avhengige av denne kompilatorfamilien uten å oppleve forstyrrende endringer med hver systemoppdatering.
For sin del, CMake er oppdatert til versjon 4Dette kan muliggjøre nye funksjoner i moderne byggesystemer, men kan også kreve justeringer i prosjekter som brukte utdatert syntaks eller kommandoer. Hvis du har eldre CMake-maler, er det lurt å kjøre byggetester før du fullfører migreringen.
GPU, databehandling og endringer i ROCm og CUDA
For de som jobber med GPU-akselerasjon, grenen rocmPackages_6 oppgraderer til ROCm 6.3Mens rocmPackages_5 Den er fjernet fra treet. Noen deler er omstrukturert: rocmPackages.rocm-thunk Den forsvinner som en separat pakke og integreres i rocmPackages.clr, Og rocmPackages.clang-ocl Han pensjonerer seg etter å ha blitt forlatt av AMD i 2023.
Parallelt, Offisiell støtte for CUDA 10 er borteSom allerede nevnt i NixOS 24.11-utgivelsesnotatene, bør brukere som fortsatt støttet svært gammel maskinvare vurdere å oppgradere GPU-en sin eller sjekke om det finnes vedlikeholdte alternativer fra andre produsenter eller backend-systemer.
Nettleser, proxyer og problemer med å kompilere Discord
Et praktisk problem som har kommet frem i lyset med denne versjonen er bruk av proxyer under kompileringerEn bruker beskriver hvordan de kan laste ned filen. discord-0.0.116.tar.gz fra nettleseren ved hjelp av bedriftsproxyen, men når du kjører nixos-rebuild Nedlastingen med curl mislykkes gjentatte ganger med en feil curl: (35) Recv failure: Connection reset by peer inntil alle forsøk er uttømt.
Nix-feilmeldingen indikerer at Kunne ikke laste ned Discord-tarballen fra intet speil, og dermed bryte avledningen discord-0.0.116.tar.gz.drv og dermed konstruksjonen av brukermiljøet og hele systemet. Selv om loggen viser advarsler om automatiske nye forsøk, kan variabler som https_proxy o all_proxyDette tyder på at kjøretidsmiljøet i byggesandkassen ikke ser brukerens nettverkskonfigurasjon.
I NixOS, standard proxy-miljøvariabler De kan ikke forplante seg direkte til forks hvis streng sandkasseing brukes, eller hvis systemkonfigurasjonen ikke eksporterer dem til bygg. Den typiske løsningen innebærer å konfigurere Nix-alternativer som nix.extraOptions å inkludere http_proxy, https_proxy og selskap, eller deaktiver sandkassen midlertidig for den maskinen (anbefales ikke på lang sikt) mens du justerer proxy-serveren for å tillate trafikk fra byggerens IP-adresse.
Et annet alternativ er å ty til binære cacher som allerede inneholder Discord eller andre problematiske pakker, og dermed forhindrer Nix fra å måtte laste ned opprinnelsesfilene direkte. Uansett blir denne typen nettverksfeil mer relevante i en versjon som 25.11, som flytter så mange deler samtidig og kan føre til ulik oppførsel i måten URL-er løses opp på.
Nettverk, containere og webtjenester
Innen nettverk og containere introduserer NixOS 25.11 betydelige endringer. Squid HTTP-proxy oppgraderes til versjon 7Denne utgaven inneholder flere inkompatible endringer, som fjerning av ESI-funksjonalitet. For justeringer av dine tilpassede innstillinger anbefales det å se gjennom Squid-utgivelsesnotatene.
På orkestreringsnivå, containerd-oppdateringer til sin 2.x-grenDette medfører en rekke atferdsendringer. Enten du bruker containerd direkte eller som en komponent i en plattform, er det viktig å gjennomgå containerd 2.0-dokumentasjonen for å unngå overraskelser i produksjonen.
I Docker-verdenen, docker_24 er fjernet fra treet fordi den ikke lenger støttes og har kjente sårbarheter siden juni 2024. Tanken er å pushe installasjoner til nyere og vedlikeholdte versjoner av Docker.
Når det gjelder servere og kontrollpaneler, NetBox er oppdatert til gren 4.2med betydelige endringer på skjema- og virkemåtenivåene. Versjon 4.0.x er fjernet fra treet, og brukere anbefales å følge varslene for oppdateringer 4.1 og 4.2 før de oppgraderer. Andre tjenester som matomo De bytter til å bruke versjon 5 som standard (versjon 4 støttes ikke lenger), og pakken fjernes. matomo-beta siden det nå er enkelt å overskrive versjonen fra overrideAttrs.
Kafka gjør også et betydelig sprang: Apache Kafka er oppdatert til gren 4.0som ikke lenger støtter ZooKeeper. Alle installasjoner må migreres til KRaft-modus, i henhold til Apache Foundations retningslinjer. På NixOS innebærer dette å gjennomgå konfigurasjoner for å fjerne referanser til ZooKeeper og tilpasse meglerdistribusjoner.
Tjenester, daemoner og applikasjoner som endres eller forsvinner fra NixOS 25.11
Listen over Pakker og tjenester som har fått nytt navn, er inkompatible oppdaterte eller er pensjonert Det er veldig lang tid i denne syklusen, et tegn på viljen til å rydde opp i treet for gammel eller problematisk programvare.
Noen bemerkelsesverdige eksempler: gkraken Den forsvinner, og det anbefales å bruke den. coolercontrol som et alternativ; opensmtpd-ekstraer Den fjernes fordi den ikke er kompatibel med OpenSMTPD 7.6.0+, noe som gir plass til spesifikke pakker. opensmtpd-table-*; zammad Den slutter å støtte MySQL og tvinger brukere til å migrere til PostgreSQL ved å følge den offisielle veiledningen.
I navnenes verden, Minetest heter nå Luanti for å gjenspeile endringen oppstrøms, men alias opprettholdes for å unngå umiddelbare forstyrrelser. På samme måte, endringer i hyttepakke, xdragon blir drage-drop (med xdragon (som et alias) og siduck76-st det blir omdøpt til st-snazzyDet finnes også små bokstaver: skrifttypen seriøs-sans Den trekker seg fordi upstream har endret navn til Serious Shanns, fortsatt uutpakket.
Andre prosjekter er ganske enkelt arkivert: gkraken, flyktig, vokal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache og mange flere er merket som ødelagte, uvedlikeholdte eller utrygge og fjernet fra Nixpacks. I flere tilfeller foreslås et alternativ (for eksempel, sm64coopdx å erstatte sm64ex-coop, eller gnome-podcasts y kasts for å erstatte en vokal).
I meldings- og personvernmiljøet, pakkene signald, signaldctl og purple-signald De blir avviklet på grunn av langvarig inkompatibilitet med Signals offisielle servere og Matrix-serveren. rørledning Den er markert som sårbar etter at den ble avviklet av utviklerne.
Nye versjoner og endringer i atferd i populære applikasjoner
Bortsett fra forsvinningene, oppdateres mange applikasjoner med atferdsendringer som bryter kompatibilitet. For eksempel, Grafana Agent og dens modul De forlater scenen til fordel for Grafana Alloy, som allerede har sin egen tjeneste. services.alloyGrafana anbefaler å migrere til grafana-alloy og fremlegger dokumentasjon for å fullføre overføringen.
Økosystemet av skjermer og paneler er også i utvikling: Prometheus tar spranget til 3.x-grenenmed offisielle migrasjonsnotater, mens kanata, authelia, helmfile, åpen-policy-agent og mange andre pakker oppdateres til hovedversjoner med endringer i syntaks, konfigurasjonsformater og standardverdier. Spesielt gjør OPA det rego.v1 er nå standardstilen, som markerer v0-syntaksen som arvet, selv om en kompatibilitetsmodus fortsatt finnes.
Desktop-verdenen er ikke langt bak: GIMP 3.0 vises som gimp3, Jordbær er oppdatert til serie 1.2 og forlater VLC- og Qt5-backend (pakken forsvinner) strawberry-qt5 og noen alternativer med GStreamer/VLC), Rofi Den går fra 1.7.5 til 1.7.6 med ABI-endringer i binære plugins, og tauon 7.9.0+ Databasen din blir migrert til et bakoverkompatibelt skjema, så det anbefales å ta en sikkerhetskopi av ~/.local/share/TauonMusicBox før du åpner den nye versjonen.
Innen webutvikling og JavaScript, nodejs_latest utvikler seg til 24.x-serien, er eliminert nodejs_23 y nodejs_18og rydder opp i Node-pakker som aldri skulle ha vært globale (som for eksempel webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), med anbefaling om å installere dem på prosjektnivå. Verktøy som pnpm hopper til versjon 10 med en sekundærpakke pnpm_9 for de som trenger kompatibilitet.
Det er også justeringer av skrifttypene: nerdfonts er delt inn i individuelle pakker under navnerommet nerd-fonts og installasjonsstiene for skrifttypene endres, nå med kataloger etter skrifttype (<fontDirName>Dette tvinger oss til å tilpasse konfigurasjoner som pekte mot de gamle rutene.
Endringer i kjernen, maskinvaren og systemmiljøet
På systemnivå er det forlatt full støtte for 32-bit Darwinopprettholder kun moderne plattformer. Videre trippelkonfigurasjonen av aarch64-darwin samsvarer med arm64-apple-darwin, i samsvar med forventningene til Apple og LLVM.
El paquete tinycc Deretter skiller den utgangene inn i dev, doc y lib, lager tinycc.out Den inneholder bare tcc-binærfilene og krysskompilatorene. I TPM, tpm2-pkcs11 Den kompilerer uten støtte for abrmd Som standard prioriterer den kjerneressursbehandleren; hvis du trenger varianten med abrmd, finnes den. tpm2-pkcs11.abrmdog NixOS-modulen velger automatisk i henhold til security.tpm2.abrmd.
I udev gjelder reglene for libjaylink Nå krever de å tilhøre gruppen. jlink i stedet for plugdevDette var svært uvanlig i NixOS. Tilgang er også tillatt via seteøkter, så effekten er begrenset hvis du bruker en standard skrivebordscomputer.
rekvisittene mkBinærbuffer Den er modernisert og begynner å brukes zstd som standardkomprimering
For de genererte binære hurtigbufferneMuligheten til å fortsette står åpen. xz gjennom compression = "xz";Dette forbedrer ytelsen i generering og forbruk av binærfiler i de fleste tilfeller.
I nettverksalternativer, networking.nat.externalIP og externalIPv6 endrer oppførselen sin: reglene for networking.nat.forwardPorts Disse reglene gjelder nå bare for pakker som er ment for eksplisitt spesifiserte IP-adresser. Dette forhindrer uventede omdirigeringer, men det kan kreve justering av eksisterende NAT-definisjoner.
I filsystembehandling er definisjonene Filsystemer (som filsystemer."/") settes ved hjelp av lib.mkDefault fra NixOS-modulene, som tillater å erstatte dem alle samtidig, men forårsaker feil hvis bare individuelle attributter overskrives uten å spesifisere deviceEllers kan du oppleve meldinger som No device specified for mount point '/'.
Tekstredigering, utviklingsmiljøer og diverse verktøy i NixOS 25.11
I Emacs-universet, NixOS 25.11 Fjern Emacs 28 og 29Både standardversjonen og Macport-versjonen for Emacs 28 er inkludert. Macport-utgaven av Emacs 29 opprettholdes, men med oppdateringer for kjente sårbarheter. Racket gjennomgår også en oppgradering: racket_7_9 er trukket tilbake på grunn av usikkertpresser på for å bruke Racket 8, og dermed eliminere flussus, som hadde vært avhengig av den uvedlikeholdte versjonen i årevis.
Tekstsøkemotoren binwalk 3.1.0 Den skrives om i Rust, og den tilhørende Python-modulen blir utilgjengelig; verktøyet for personlige kontoer python3Packages.beancount Den stiger til 3.1 med den forrige serien opprettholdt som beancount_2I e-post og CLI, TLDR Den bytter til å bruke Python-klienten i stedet for C, og Himalaya Den oppdateres til versjon 1.1.0 med banebrytende endringer som krever en konfigurasjonsgjennomgang.
I diverse verktøy, nq 1.0 endrer navn på fq og tq til nqtail og nqterm, zf 0.10.2 Den endrer måten den håndterer Unicode og escape-sekvenser på, og ast-grep fjern kommandoen sg for å unngå konflikter med skyggeverktøy, samtidig som en eldre kompatibilitetsversjon fortsatt tillater gjennomgang enableLegacySg = true;.
Samtidig er familien av standard loggfunksjoner nixLog* Den skrives om for å sette prefikset for feilsøkingsnivået og navnet på den kallende funksjonen, og gjeninnføres nixLog som en ubetinget logger som også legger til funksjonskonteksten. Dette gjør feilsøking av komplekse avledninger og hooks enklere.
Til slutt noen testverktøy som f.eks. testere.shellcheck Nå advarer de deg hvis attributtet ikke er oppgitt. namesom vil bli obligatorisk i fremtidige versjoner. Og i Haskell, testTarget er merket som foreldet til fordel for testTargets, som godtar en eksplisitt liste over mål i stedet for en mellomromseparert streng.
NixOS versjon 25.11 konsoliderer dermed et stort antall endringer, fra GNOME 49-skrivebordet og massive pakkeoppdateringer til dype justeringer i verktøykjeder, nettverkstjenester og kompatibilitetspolicyer, noe som gjør den til en viktig utgivelse for alle som ønsker å holde Nix-miljøet sitt oppdatert uten å miste av syne ... stabilitet og reproduserbarhet som kjennetegner prosjektet.