
NixOS er tilbage med, Nix OS 25.11, en version, der medfører meget dybtgående ændringer både i selve systemet og i det enorme økosystem af pakker, der omgiver det. Med kodenavnet "Xantusia" er det nu tilgængeligt og kommer fyldt med interessante nye funktioner til desktops, servere, udvikling og cloud-implementeringer, men også med et rimeligt antal inkompatibiliteter og forældede pakker, der bør gennemgås omhyggeligt før opdatering.
I denne artikel vil vi se Alle de vigtige nyheder Fra NixOS 25.11 og Nixpkgs-pakkebasen: vigtige opdateringer såsom GNOME 49, LLVM 21 og ROCm 6.3; betydelige ændringer til Go, Rust, Node.js, PostgreSQL og Docker; omdøbte tjenester; nye moduler; og yderligere konfigurationsmuligheder. Vi vil også diskutere en casestudie fra den virkelige verden, der involverer proxy-problemer ved kompilering af Discord, og hvordan man håndterer dem i dette nye miljø.
NixOS 25.11 “Xantusia”: livscyklus og lanceringstal
Den nye stabile version, NixOS 25.11 “Xantusia”Den kan nu installeres og opdateres på ethvert system ved hjælp af stabile kanaler. Denne udgave vil modtage sikkerhedsrettelser og fejlrettelser i syv måneder, indtil 30. juni 2026, så det er den nye anbefalede opgradering, hvis du kommer fra en tidligere version.
Den forrige stabile, NixOS 25.05 “Sanger”, bliver officielt forældet og vil stoppe med at modtage sikkerhedsopdateringer fra 31. december 2025. Hvis du stadig bruger 25.05 eller en endnu ældre gren, er det et godt tidspunkt roligt at planlægge din migrering til 25.11 og gennemgå de inkompatible ændringer, som vi vil beskrive i detaljer i denne tekst.
Denne lancering er også et fremvisning af udviklingshastighed af projektet. Mellem NixOS 25.05 og NixOS 25.11 deltog 2742 bidragydere, der tilsammen underskrev ikke færre end 59.430 commits til Nixpacks og systemkonfigurationen. Bag disse tal ligger alt fra mindre rettelser til marginale pakker til større redesign af kritiske distributionsmoduler.
Nixpkgs: Pakker tilføjet, opdateret og fjernet fra NixOS 25.11
Nixpkgs-pakkesamlingen, som er rygrad Ikke kun NixOS, men ethvert system, der bruger Nix-pakkehåndteringen på Linux eller macOS, har modtaget massiv vedligeholdelse i denne cyklus.
På den ene side har der været Tilføjet 7002 nye pakkeryderligere udvidelse af udvalget af tilgængelig software. Dette omfatter alt fra banebrydende udviklingsværktøjer til desktopapplikationer, administrationsværktøjer og videnskabelig software.
Samtidig har holdet Opdaterede 25.252 eksisterende pakkerDette sikrer, at de fleste populære softwareversioner opdateres til de seneste versioner, især dem med sikkerhedsrettelser og forbedringer af ydeevnen. Dette er afgørende i miljøer, hvor reproducerbarhed er afgørende, samtidig med at en rimelig opdatering opretholdes.
For at holde arkivet overskueligt og sikkert har Nixpkgs 6338 gamle pakker fjernet som ikke længere blev vedligeholdt, var ødelagte eller var blevet forældede upstream. I mange tilfælde findes der direkte alternativer i selve Nixpkgs-træet, men i andre er de simpelthen gjort utilgængelige for at undgå sikkerheds- eller kompileringsproblemer.
NixOS-moduler og konfigurationsmuligheder
Ud over sine pakker er NixOS kendetegnet ved sit kraftfulde deklarative modulsystem. Denne cyklus har inkluderet 107 nye moduler indarbejdetDisse opdateringer tilføjer understøttelse af nye tjenester, dæmoner, applikationer og systemkonfigurationer. De bringer også 1778 nye konfigurationsmuligheder, hvilket yderligere øger granulariteten, hvormed et system kan beskrives.
På den anden side har der været fjernede 41 moduler og 807 konfigurationsmuligheder, der var blevet forældede, ødelagte eller erstattet af mere moderne alternativer. Hvis du genbruger ældre konfigurationer, er det en god idé at gennemgå udfasningsmeddelelserne for at tilpasse dine filer, før du opgraderer.
Bemærkelsesværdige nye funktioner på skrivebordet: GNOME 49 “Brescia”
En af de store nye funktioner for desktopbrugere er opdateringen til GNOME 49 “Brescia”Denne version af skrivebordsmiljøet tager et afgørende skridt i retning af Wayland og eliminerer den X11-baserede session, hvilket kan være en betydelig ændring, hvis du har beholdt ældre konfigurationer eller udvidelser, der eksplicit afhang af Xorg.
GNOME 49 inkorporerer Nye applikationer Dette inkluderer en opdateret videoafspiller og en opdateret dokumentfremviser, samt en nydesignet kalender og adskillige små forbedringer af brugeroplevelsen. Det anbefales at gennemgå de officielle GNOME-udgivelsesnoter, hvis du er afhængig af meget specifik funktionalitet eller komplekse udvidelser.
C-compilere og værktøjskæder: LLVM, GCC og CMake
I kompileringssektionen, NixOS 25.11 opdateringer LLVM til version 21Dette er et betydeligt spring fremad for udviklere, der bruger C, C++ eller Rust med Clang-værktøjskæden. Denne version inkluderer optimeringsforbedringer, nye understøttede mål og justeringer af advarsler, der kan forårsage ændringer i adfærd i nogle projekter.
compileren GCC forbliver i filial 14Dette er en version, der allerede er etableret og testet i produktion. Dette gør det nemmere at opretholde kompatibilitet med projekter, der stadig er afhængige af denne familie af compilere, uden at støde på forstyrrende ændringer ved hver systemopdatering.
For sin del, CMake er opdateret til version 4Dette kan muliggøre nye funktioner i moderne byggesystemer, men kan også kræve justeringer i projekter, der brugte forældet syntaks eller kommandoer. Hvis du har ældre CMake-skabeloner, er det en god idé at køre byggetests, før du færdiggør migreringen.
GPU, databehandling og ændringer i ROCm og CUDA
For dem, der arbejder med GPU-acceleration, grenen rocmPackages_6 opgradering til ROCm 6.3Mens rocmPackages_5 Den fjernes fra træet. Nogle dele omstruktureres: rocmPackages.rocm-thunk Den forsvinder som en separat pakke og er integreret i rocmPackages.clr, Og rocmPackages.clang-ocl Han går på pension efter at være blevet forladt af AMD i 2023.
Parallelt, Officiel support til CUDA 10 er ophørtSom allerede nævnt i NixOS 24.11-udgivelsesnoterne, bør brugere, der stadig understøttede meget gammel hardware, overveje at opgradere deres GPU'er eller kontrollere, om der findes vedligeholdte alternativer fra andre producenter eller backends.
Browser, proxyer og problemer med at kompilere Discord
Et praktisk problem, der er kommet frem i lyset med denne version, er brug af proxyer under kompileringerEn bruger beskriver, hvordan de kan downloade filen. discord-0.0.116.tar.gz fra browseren ved hjælp af virksomhedens proxy, men når den kører nixos-rebuild Download med curl mislykkes gentagne gange med en fejl curl: (35) Recv failure: Connection reset by peer indtil alle forsøg er udtømte.
Nix-fejlmeddelelsen angiver, at Discord-tarballen kunne ikke downloades fra intet spejl, og dermed bryde afledningen discord-0.0.116.tar.gz.drv og dermed opbygningen af brugermiljøet og hele systemet. Selvom loggen viser advarsler om automatiske genforsøg, kan variabler som f.eks. https_proxy o all_proxyDette tyder på, at runtime-miljøet i byggesandkassen ikke ser brugerens netværkskonfiguration.
I NixOS, den standard proxy-miljøvariabler De forplanter sig muligvis ikke direkte til forks, hvis der anvendes streng sandboxing, eller hvis systemkonfigurationen ikke eksporterer dem til builds. Den typiske løsning involverer at konfigurere Nix-indstillinger som nix.extraOptions at medtage http_proxy, https_proxy og firma, eller midlertidigt deaktivere sandkassen for den pågældende maskine (anbefales ikke på lang sigt), mens du justerer proxyserveren til at tillade trafik fra builderens IP-adresse.
En anden mulighed er at ty til binære caches, der allerede indeholder Discord eller andre problematiske pakker, hvilket forhindrer Nix i at skulle downloade originalerne direkte. Under alle omstændigheder bliver disse typer netværksfejl mere relevante i en version som 25.11, der flytter så mange dele på én gang og kan medføre forskellige adfærdsmønstre i den måde, URL'er opløses på.
Netværk, containere og webtjenester
Inden for netværk og containere introducerer NixOS 25.11 betydelige ændringer. Squid HTTP proxy opgraderes til version 7Denne udgave indeholder adskillige inkompatible ændringer, såsom fjernelse af ESI-funktionalitet. For justeringer af dine brugerdefinerede indstillinger anbefales det at gennemgå Squid-udgivelsesnoterne.
På orkestreringsniveau, containerd-opdateringer til sin 2.x-grenDette medfører en række adfærdsændringer. Uanset om du bruger containerd direkte eller som en komponent i en platform, er det vigtigt at gennemgå containerd 2.0-dokumentationen for at undgå overraskelser i produktionen.
I Docker-verdenen, docker_24 er fjernet fra træet fordi den ikke længere understøttes og har kendte sårbarheder siden juni 2024. Ideen er at pushe installationer til nyere og vedligeholdte versioner af Docker.
Angående servere og kontrolpaneler, NetBox er opdateret til gren 4.2med betydelige ændringer på skema- og adfærdsniveau. Version 4.0.x er fjernet fra træet, og brugerne rådes til at følge notifikationerne for opdateringer 4.1 og 4.2, før de opgraderer. Andre tjenester som f.eks. matomo De skifter til at bruge version 5 som standard (version 4 understøttes ikke længere), og pakken fjernes. matomo-beta da det nu er nemt at overskrive versionen fra overrideAttrs.
Kafka tager også et betydeligt spring: Apache Kafka er opdateret til branch 4.0som ikke længere understøtter ZooKeeper. Alle installationer skal migreres til KRaft-tilstand i henhold til Apache Foundations retningslinjer. På NixOS involverer dette gennemgang af konfigurationer for at fjerne referencer til ZooKeeper og tilpasning af broker-implementeringer.
Tjenester, dæmoner og applikationer, der ændres eller forsvinder fra NixOS 25.11
Listen over Pakker og tjenester, der er omdøbt, inkompatibelt opdateret eller udgået Det er meget langt i denne cyklus, et tegn på viljen til at rydde op i træet for gammel eller problematisk software.
Nogle bemærkelsesværdige eksempler: gkraken Den forsvinder, og det anbefales at bruge den. coolercontrol som et alternativ; opensmtpd-ekstramateriale Den fjernes, fordi den ikke er kompatibel med OpenSMTPD 7.6.0+, hvilket giver plads til specifikke pakker. opensmtpd-table-*; zammad Den stopper med at understøtte MySQL og tvinger brugerne til at migrere til PostgreSQL i henhold til den officielle vejledning.
I navnenes verden, Minetest hedder nu Luanti for at afspejle den opstrøms ændring, men aliaser opretholdes for at undgå øjeblikkelige afbrydelser. Tilsvarende, poac ændringer til kabinepakke, xdragon bliver drage-drop (med xdragon (som et alias) og siduck76-st det omdøbes til st-snazzyDer er også små bogstaver: skrifttypen seriøs-sans Den trækker sig tilbage, fordi upstream har ændret navn til Serious Shanns, stadig uudpakket.
Andre projekter er blot arkiveret: gkraken, flygtig, vokal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache og mange flere er markeret som ødelagte, uvedligeholdte eller usikre og fjernet fra Nixpacks. I flere tilfælde foreslås et alternativ (for eksempel, sm64coopdx at erstatte sm64ex-coop, eller gnome-podcasts y kasts at erstatte en vokal).
I besked- og privatlivsmiljøet er pakkerne signald, signaldctl og purple-signald De udgår på grund af langvarig inkompatibilitet med Signals officielle servere og Matrix-serveren. rørledning Den er markeret som sårbar efter at være blevet afbrudt af dens udviklere.
Nye versioner og ændringer i adfærd i populære applikationer
Udover forsvinden er mange applikationer opdateret med Adfærdsændringer, der bryder kompatibilitet. For eksempel Grafana Agent og dens modul De forlader scenen til fordel for Grafana Alloy, som allerede har sin egen tjeneste. services.alloyGrafana anbefaler at migrere til grafana-alloy og fremlægger dokumentation for at fuldføre overførslen.
Økosystemet af skærme og paneler er også under udvikling: Prometheus tager springet til 3.x-grenenmed officielle migrationsnotater, mens Kanata, Authelia, Helmfile, Open Policy Agent og mange andre pakker opdateres til større versioner med ændringer i syntaks, konfigurationsformater og standardværdier. Især gør OPA det rego.v1 er nu standardstilen, der markerer v0-syntaksen som arvet, selvom der stadig findes en kompatibilitetstilstand.
Desktopverdenen er ikke langt bagefter: GIMP 3.0 vises som gimp3, Jordbær er opdateret til serie 1.2 og opgiver VLC- og Qt5-backend'en (pakken forsvinder) strawberry-qt5 og nogle muligheder med GStreamer/VLC), rofi Den går fra 1.7.5 til 1.7.6 med ABI-ændringer i binære plugins, og tauon 7.9.0+ Din database migreres til et bagudkompatibelt skema, så det anbefales at lave en sikkerhedskopi af ~/.local/share/TauonMusicBox før du åbner den nye version.
Inden for webudvikling og JavaScript, nodejs_latest udvikler sig til 24.x-serien, elimineres nodejs_23 y nodejs_18og rydder op i Node-pakker, der aldrig burde have været globale (såsom webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), med anbefalingen om at installere dem på projektniveau. Værktøjer som f.eks. pnpm hopper til version 10 med en sekundær pakke pnpm_9 for dem, der har brug for kompatibilitet.
Der er også justeringer af skrifttyperne: nerdfonts er opdelt i individuelle pakker under navnerummet nerd-fonts og installationsstierne for skrifttyperne ændres, nu med mapper efter skrifttype (<fontDirName>Dette tvinger os til at tilpasse konfigurationer, der pegede på de gamle ruter.
Ændringer i kerne, hardware og systemmiljø
På systemniveau er det opgivet fuld understøttelse af 32-bit Darwinopretholdelse af kun moderne platforme. Desuden den tredobbelte konfiguration af aarch64-darwin er i overensstemmelse med arm64-apple-darwin, hvilket stemmer overens med Apples og LLVMs forventninger.
El paquete tinycc Derefter opdeler den output i dev, doc y lib, gør tinycc.out Den indeholder kun tcc-binærfiler og krydskompilere. I TPM, tpm2-pkcs11 Den kompilerer uden understøttelse af abrmd Som standard prioriterer den kernelressourcehåndteringen; hvis du har brug for varianten med abrmd, findes den. tpm2-pkcs11.abrmdog NixOS-modulet vælger automatisk i henhold til security.tpm2.abrmd.
I udev gælder reglerne for libjaylink De kræver nu at tilhøre gruppen. jlink i stedet for plugdevDette var meget usædvanligt i NixOS. Adgang er også tilladt via sædesessioner, så effekten er begrænset, hvis du bruger en standard desktop.
rekvisitterne mkBinærCache Den er moderniseret og begynder at blive brugt zstd som standardkomprimering
For de genererede binære cachesMuligheden for at fortsætte står åben. xz gennem compression = "xz";Dette forbedrer ydeevnen i generering og forbrug af binære filer i de fleste tilfælde.
I netværksindstillinger, networking.nat.externalIP og externalIPv6 ændrer deres opførsel: reglerne for networking.nat.forwardPorts Disse regler gælder nu kun for pakker, der er bestemt til eksplicit angivne IP-adresser. Dette forhindrer uventede omdirigeringer, men det kan kræve justering af eksisterende NAT-definitioner.
I filsystemhåndtering er definitionerne Filsystemer (såsom fileSystems."/") indstilles ved hjælp af lib.mkDefault fra NixOS-modulerne, hvilket tillader udskiftning af dem alle på én gang, men forårsager fejl, hvis kun individuelle attributter overskrives uden at specificere deviceEllers kan du støde på beskeder som No device specified for mount point '/'.
Tekstredigering, udviklingsmiljøer og forskellige værktøjer i NixOS 25.11
I Emacs-universet, NixOS 25.11 Fjern Emacs 28 og 29Både standardversionen og Macport-versionen til Emacs 28 er inkluderet. Macport-udgaven af Emacs 29 er vedligeholdt, men med programrettelser til kendte sårbarheder. Racket gennemgår også en beskæring: racket_7_9 er trukket tilbage på grund af usikkerpresser på for at bruge Racket 8, og dermed eliminerer fluxus, som havde været afhængig af den uvedligeholdte version i årevis.
Tekstsøgemaskinen binwalk 3.1.0 Det omskrives i Rust, og det tilhørende Python-modul bliver utilgængeligt; værktøjet til personlige konti python3Packages.beancount Den stiger til 3.1, hvor den tidligere serie bibeholdes som beancount_2I e-mail og CLI, tldr Den skifter til at bruge Python-klienten i stedet for C, og himalaya Den opdateres til version 1.1.0 med banebrydende ændringer, der kræver en konfigurationsgennemgang.
I forskellige værktøjer, nq 1.0 omdøber fq og tq til nqtail og nqterm, zf 0.10.2 Den ændrer den måde, den håndterer Unicode og escape-sekvenser på, og ast-grep fjern kommandoen sg for at undgå konflikter med skyggeprogrammer, samtidig med at en ældre kompatibilitetsversion stadig tillades enableLegacySg = true;.
Samtidig er familien af standardlogfunktioner nixLog* Den omskrives for at sætte præfikset for debugging-niveauet og navnet på den kaldende funktion, og genindføres nixLog som en ubetinget logger, der også tilføjer funktionskonteksten. Dette gør det nemmere at fejlfinde komplekse afledninger og hooks.
Endelig nogle testværktøjer som f.eks. testere.shellcheck Nu advarer de dig, hvis attributten ikke er angivet. namehvilket vil blive obligatorisk i fremtidige versioner. Og i Haskell, testTarget er markeret som forældet til fordel for testTargets, som accepterer en eksplicit liste over mål i stedet for en mellemrumssepareret streng.
NixOS version 25.11 konsoliderer således et stort antal ændringer, fra GNOME 49-skrivebordet og massive pakkeopdateringer til dybe justeringer i værktøjskæder, netværkstjenester og kompatibilitetspolitikker, hvilket gør den til en vigtig udgivelse for alle, der ønsker at holde deres Nix-miljø opdateret uden at miste fokus på... stabilitet og reproducerbarhed der kendetegner projektet.