
„NixOS“ grįžta su... „NixOS 25.11“, versija, kuri atneša labai didelių pokyčių tiek pačioje sistemoje, tiek ją supančioje didžiulėje paketų ekosistemoje. Kodiniu pavadinimu „Xantusia“ jis jau prieinamas ir turi įdomių naujų funkcijų, skirtų staliniams kompiuteriams, serveriams, kūrėjams ir debesijos diegimui, tačiau taip pat turi nemažai nesuderinamumų ir nebenaudojamų paketų, kuriuos reikėtų atidžiai peržiūrėti prieš atnaujinant.
Šiame straipsnyje mes pamatysime Visos svarbios naujienos Iš „NixOS 25.11“ ir „Nixpkgs“ paketų bazės: pagrindiniai atnaujinimai, tokie kaip GNOME 49, LLVM 21 ir ROCm 6.3; reikšmingi „Go“, „Rust“, „Node.js“, „PostgreSQL“ ir „Docker“ pakeitimai; pervadintos paslaugos; nauji moduliai; ir papildomos konfigūravimo parinktys. Taip pat aptarsime realaus pasaulio atvejo analizę, susijusią su tarpinio serverio problemomis kompiliuojant „Discord“ ir kaip jas spręsti šioje naujoje aplinkoje.
„NixOS 25.11“ „Xantusia“: gyvavimo ciklas ir paleidimo skaičiai
Nauja stabili versija, NixOS 25.11 „Xantusia“Dabar jį galima įdiegti ir atnaujinti bet kurioje sistemoje naudojant stabilius kanalus. Šiam leidimui septynis mėnesius, iki 2026 m. birželio 30 d., bus diegiami saugumo pataisymai ir klaidų ištaisymai, todėl tai yra naujas rekomenduojamas atnaujinimas, jei naudojate ankstesnę versiją.
Ankstesnis stabilus, NixOS 25.05 „Girtuoklė“, oficialiai tampa nebeaktualu ir nuo 2025 m. gruodžio 31 d. nebegaus saugos naujinimų. Jei vis dar naudojate 25.05 ar dar senesnę šaką, pats laikas ramiai suplanuoti perkėlimą į 25.11 versiją, peržiūrint nesuderinamus pakeitimus, kuriuos išsamiai aprašysime šiame tekste.
Šis pristatymas taip pat yra demonstracija išsivystymo tempas projekto. Nuo „NixOS 25.05“ iki „NixOS 25.11“ versijose dalyvavo 2742 bendraautoriai, kurie kartu pasirašė ne mažiau kaip 59 430 „Nixpacks“ ir sistemos konfigūracijos pakeitimų. Už šių skaičių slypi viskas – nuo nedidelių pataisymų iki marginalių paketų ir esminių svarbių platinimo modulių pertvarkymų.
„Nixpkgs“: paketai pridėti, atnaujinti ir pašalinti iš „NixOS 25.11“
„Nixpkgs“ paketų rinkinys, kuris yra stuburo dalis Ne tik „NixOS“, bet ir bet kuri sistema, kuri naudoja „Nix“ paketų tvarkyklę „Linux“ ar „macOS“ sistemose, šį ciklą sulaukė didžiulio techninės priežiūros.
Viena vertus, yra buvę Pridėta 7002 nauji paketaitoliau plečiant prieinamos programinės įrangos asortimentą. Tai apima viską – nuo pažangiausių kūrimo įrankių iki darbalaukio programų, valdymo įrankių ir mokslinės programinės įrangos.
Tuo pačiu metu komanda turi Atnaujinta 25 252 esami paketaiTai užtikrina, kad dauguma populiariausių programų būtų atnaujintos į naujausias versijas, ypač tos, kuriose yra saugumo pataisų ir našumo patobulinimų. Tai labai svarbu aplinkose, kuriose būtinas atkuriamumas, kartu išlaikant pagrįstą atnaujinamumą.
Kad saugykla būtų lengvai valdoma ir saugi, „Nixpkgs“ turi Pašalinta 6338 senų paketų kurie nebebuvo prižiūrimi, buvo sugadinti arba pasenę. Daugeliu atvejų tiesioginės alternatyvos egzistuoja pačiame „Nixpkgs“ medyje, tačiau kitais atvejais jos tiesiog yra neprieinamos siekiant išvengti saugumo ar kompiliavimo problemų.
„NixOS“ moduliai ir konfigūravimo parinktys
Be savo paketų, „NixOS“ išsiskiria galinga deklaratyviųjų modulių sistema. Šis ciklas apėmė Įtraukti 107 nauji moduliaiŠie atnaujinimai prideda palaikymą naujoms paslaugoms, demonams, programoms ir sistemos konfigūracijoms. Jie taip pat suteikia 1778 naujas konfigūracijos parinktis, dar labiau padidindamos sistemos aprašymo detalumą.
Kita vertus, yra buvę pašalino 41 modulį ir 807 konfigūracijos parinktys, kurios paseno, sugedo arba buvo pakeistos modernesnėmis alternatyvomis. Jei pakartotinai naudojate senesnes konfigūracijas, prieš atnaujinant rekomenduojama peržiūrėti nebenaudojimo pranešimus, kad pritaikytumėte failus.
Svarbios naujos darbalaukio funkcijos: GNOME 49 „Brescia“
Viena iš svarbiausių naujų funkcijų stalinių kompiuterių vartotojams yra atnaujinimas GNOME 49 „Brescia“Ši darbalaukio aplinkos versija žengia ryžtingą žingsnį „Wayland“ link ir panaikina X11 pagrindu veikiančią sesiją, o tai gali būti reikšmingas pokytis, jei išlaikėte senesnes konfigūracijas ar plėtinius, kurie aiškiai priklausė nuo Xorg.
GNOME 49 apima Naujos programos Tai apima atnaujintą vaizdo grotuvą ir dokumentų peržiūros programą, taip pat perkurtą kalendorių ir daugybę nedidelių naudotojo patirties patobulinimų. Jei jums reikia labai specifinių funkcijų ar sudėtingų plėtinių, patartina peržiūrėti oficialias GNOME leidimo pastabas.
C kompiliatoriai ir įrankių grandinės: LLVM, GCC ir CMake
Kompiliavimo skyriuje pateikiami „NixOS 25.11“ atnaujinimai LLVM į 21 versijąTai reikšmingas žingsnis į priekį kūrėjams, naudojantiems C, C++ arba Rust su „Clang“ įrankių grandine. Šioje versijoje yra optimizavimo patobulinimų, naujų palaikomų tikslų ir įspėjimų, kurie gali pakeisti kai kurių projektų veikimą, koregavimai.
kompiliatorius GCC lieka 14-oje šakojeTai versija, kuri jau yra sukurta ir išbandyta gamyboje. Tai leidžia lengviau palaikyti suderinamumą su projektais, kurie vis dar priklauso nuo šios kompiliatorių šeimos, nesusiduriant su trikdančiais pokyčiais su kiekvienu sistemos atnaujinimu.
Savo ruožtu, CMake atnaujinta į 4 versijąTai gali įgalinti naujas funkcijas šiuolaikinėse kompiliavimo sistemose, tačiau taip pat gali reikėti koreguoti projektus, kuriuose buvo naudojama pasenusi sintaksė ar komandos. Jei turite senesnių CMake šablonų, prieš baigiant migraciją, rekomenduojama atlikti kompiliavimo testus.
GPU, skaičiavimas ir ROCm bei CUDA pakeitimai
Tiems, kurie dirba su GPU spartinimu, šaka „rocmPackages_6“ atnaujinimas į „ROCM 6.3“O rocmPackages_5 Jis pašalinamas iš medžio. Kai kurios dalys pertvarkomos: rocmPackages.rocm-thunk Jis išnyksta kaip atskiras paketas ir yra integruotas į rocmPackages.clrIr rocmPackages.clang-ocl Jis išeina į pensiją po to, kai 2023 m. jį paliko AMD.
Lygiagrečiai, Prarasta oficiali CUDA 10 paramaKaip jau minėta „NixOS 24.11“ išleidimo pastabose, vartotojai, kurie vis dar palaikė labai seną aparatinę įrangą, turėtų apsvarstyti galimybę atnaujinti savo GPU arba patikrinti, ar yra palaikomų alternatyvų iš kitų gamintojų ar posistemių.
Naršyklė, tarpiniai serveriai ir problemos kompiliuojant „Discord“
Vienas praktinis šios versijos aspektas yra tas, kad tarpinių serverių naudojimas kompiliavimo metuVartotojas aprašo, kaip sėkmingai atsisiųsti failą. discord-0.0.116.tar.gz iš naršyklės naudojant įmonės tarpinį serverį, bet kai veikia nixos-rebuild Atsisiuntimas naudojant „curl“ pakartotinai nepavyksta su klaida curl: (35) Recv failure: Connection reset by peer kol bus išnaudotos visos pastangos.
„Nix“ klaidos pranešimas rodo, kad Nepavyko atsisiųsti „Discord“ archyvo iš jokio veidrodžio, taip nutraukiant išvestį discord-0.0.116.tar.gz.drv ir, savo ruožtu, vartotojo aplinkos ir visos sistemos konstrukcija. Nors žurnale rodomi automatinių pakartotinių bandymų įspėjimai, tokie kintamieji kaip https_proxy o all_proxyTai rodo, kad vykdymo aplinka kūrimo smėlio dėžėje nemato vartotojo tinklo konfigūracijos.
„NixOS“ sistemoje standartiniai tarpinio serverio aplinkos kintamieji Jie gali neperduoti tiesiai į atšakas, jei naudojama griežta smėlio dėžė arba jei sistemos konfigūracija jų neeksportuoja į kompiliacijas. Įprastas sprendimas apima „Nix“ parinkčių konfigūravimą taip: nix.extraOptions Įtraukti http_proxy, https_proxy ir įmonę arba laikinai išjungti smėlio dėžę tame kompiuteryje (nerekomenduojama ilgalaikiam naudojimui), kol pakoreguosite tarpinį serverį, kad būtų leidžiamas srautas iš kūrėjo IP.
Kitas variantas – kreiptis į dvejetainiai talpyklos failai, kuriuose jau yra „Discord“ arba kitus probleminius paketus, todėl „Nix“ nereikės tiesiogiai atsisiųsti originalų. Bet kokiu atveju, tokio tipo tinklo klaidos tampa aktualesnės tokiose versijose kaip 25.11, kurios vienu metu perkelia tiek daug elementų ir gali sukelti skirtingą URL adresų sprendimo būdą.
Tinklas, konteineriai ir žiniatinklio paslaugos
Tinklų ir konteinerių srityje „NixOS 25.11“ pristato reikšmingų pakeitimų. „Squid“ HTTP tarpinio serverio atnaujinimai į 7 versijąŠiame leidime yra keletas nesuderinamų pakeitimų, pvz., pašalinta ESI funkcija. Jei norite pakoreguoti savo pasirinktinius nustatymus, rekomenduojama peržiūrėti „Squid“ leidimo pastabas.
Orkestravimo lygmeniu „containerd“ atnaujinimai jos 2.x šakaiTai atneša daug elgsenos pokyčių. Nesvarbu, ar naudojate „containerd“ tiesiogiai, ar kaip platformos komponentą, būtina peržiūrėti „containerd 2.0“ dokumentaciją, kad išvengtumėte netikėtumų gamybinėje aplinkoje.
„Docker“ pasaulyje docker_24 pašalinamas iš medžio nes jis nebepalaikomas ir nuo 2024 m. birželio mėn. turi žinomų pažeidžiamumų. Idėja yra perkelti diegimus į naujesnes ir prižiūrimas „Docker“ versijas.
Kalbant apie serverius ir valdymo pultus, „NetBox“ atnaujinta į 4.2 šakąsu reikšmingais pakeitimais schemos ir elgsenos lygmenyse. 4.0.x versija pašalinta iš medžio, todėl vartotojams patariama prieš atnaujinant sekti pranešimus apie 4.1 ir 4.2 atnaujinimus. Kitos paslaugos, pvz. matomo Jie pagal numatytuosius nustatymus persijungia į 5 versijos naudojimą (4 versija nebepalaikoma), o paketas pašalinamas. matomo-beta nes dabar versiją iš lengva perrašyti overrideAttrs.
Kafka taip pat žengia didelį žingsnį į priekį: „Apache Kafka“ atnaujinta į 4.0 šakąkuris nebepalaiko „ZooKeeper“. Visos instaliacijos turi būti perkeltos į „KRaft“ režimą, laikantis „Apache Foundation“ gairių. „NixOS“ sistemoje tai apima konfigūracijų peržiūrą, siekiant pašalinti nuorodas į „ZooKeeper“, ir tarpininkų diegimų pritaikymą.
Paslaugos, demonai ir programos, kurios pasikeičia arba išnyksta iš „NixOS 25.11“
Sąrašas Paketai ir paslaugos, kurie yra pervadinti, nesuderinamai atnaujinti arba pašalinti Šis ciklas yra labai ilgas, o tai rodo norą išvalyti senos ar problemiškos programinės įrangos medį.
Keletas pastebimų pavyzdžių: gkraken Jis išnyksta ir rekomenduojama jį naudoti. coolercontrol kaip alternatyva; opensmtpd-extras Jis šalinamas, nes nesuderinamas su „OpenSMTPD 7.6.0+“, užleidžiant vietą konkretiems paketams. opensmtpd-table-*; zammad Jis nustoja palaikyti MySQL ir verčia vartotojus pereiti prie PostgreSQL vadovaujantis oficialiu vadovu.
Vardų pasaulyje, „Minetest“ dabar vadinamas „Luanti“. kad atspindėtų ankstesnius pakeitimus, tačiau slapyvardžiai yra išlaikomi siekiant išvengti tiesioginių sutrikimų. Panašiai, poac pakeitimai namelio pakuotėje, „xdragon“ tampa „dragon-drop“ (su xdragon (kaip slapyvardis) ir siduck76-st jis pervadinamas į st-snazzyTaip pat yra mažų raidžių: šriftas rimtas-sans Jis pasitraukia, nes „Upstream“ pakeitė pavadinimą į „Serious Shanns“, vis dar neišpakuotas.
Kiti projektai tiesiog archyvuojami: gkraken, ephemeral, vokal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache ir daugelis kitų yra pažymėti kaip sugedę, neprižiūrimi arba nesaugūs ir pašalinti iš „Nixpacks“. Keliais atvejais siūloma alternatyva (pavyzdžiui, sm64coopdx pakeisti sm64ex-coop arba gnome-podcasts y kasts pakeisti balsę).
Pranešimų ir privatumo aplinkoje paketai signald, signaldctl ir purple-signal Jie nutraukiami dėl ilgalaikio nesuderinamumo su oficialiais „Signal“ serveriais ir „Matrix“ serveriu. kanalas Jis pažymėtas kaip pažeidžiamas po to, kai jį nutraukė kūrėjai.
Naujos versijos ir elgesio pokyčiai populiariose programose
Be dingimų, daugelis programų yra atnaujinamos su elgesio pokyčiai, kurie sutrikdo suderinamumą, Pavyzdžiui, Grafana agentas ir jo modulis Jie palieka sceną „Grafana Alloy“ naudai, kuri jau turi savo paslaugą. services.alloyGrafana rekomenduoja migruoti į grafana-alloy ir pateikia dokumentus, reikalingus perkėlimui užbaigti.
Monitorių ir ekranų ekosistema taip pat vystosi: Prometėjas šoka į 3.x šakąsu oficialiomis migracijos pažymomis, tuo tarpu kanata, authelia, helmfile, atvirosios politikos agentas ir daugelis kitų paketų yra atnaujinami į pagrindines versijas su sintaksės, konfigūracijos formatų ir numatytųjų reikšmių pakeitimais. Visų pirma, OPA leidžia rego.v1 dabar yra numatytasis stilius, pažymint v0 sintaksę kaip paveldėtą, nors suderinamumo režimas vis dar egzistuoja.
Stalinių kompiuterių pasaulis nedaug atsilieka: GIMP 3.0 atrodo kaip gimp3, Braškė atnaujinta iki 1.2 serijos ir atsisako VLC ir Qt5 posistemio (paketas dingsta) strawberry-qt5 ir kai kurios GStreamer/VLC parinktys), rofi Versija pakilo nuo 1.7.5 iki 1.7.6, o dvejetainiuose įskiepiuose buvo atlikti ABI pakeitimai. Tauon 7.9.0+ Jūsų duomenų bazė perkeliama į atgal nesuderinamą schemą, todėl patartina pasidaryti atsarginę kopiją ~/.local/share/TauonMusicBox prieš atidarant naują versiją.
Žiniatinklio kūrimo ir „JavaScript“ srityje „nodejs_latest“ vystosi iki 24.x serijos, yra eliminuojami nodejs_23 y nodejs_18ir išvalo „Node“ paketus, kurie niekada neturėjo būti globalūs (pvz., webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), su rekomendacija juos įdiegti projekto lygmeniu. Tokie įrankiai kaip pnpm pereina į 10 versiją su antriniu paketu pnpm_9 tiems, kuriems reikia suderinamumo.
Taip pat yra šriftų koregavimai: „nerdfonts“ yra padalintas į atskirus paketus po vardų erdve nerd-fonts ir šriftų diegimo keliai pasikeičia, dabar katalogai yra suskirstyti pagal šrifto tipą (<fontDirName>Tai verčia mus pritaikyti konfigūracijas, kurios rodė į senus maršrutus.
Branduolio, aparatinės įrangos ir sistemos aplinkos pakeitimai
Sistemos lygmeniu to atsisakyta visiškas 32 bitų „Darwin“ palaikymaspalaiko tik modernias platformas. Be to, triguba konfigūracija aarch64-darwin atitinka arm64-apple-darwin, atitinkantis „Apple“ ir LLVM lūkesčius.
El paquete tinycc Tada jis atskiria išvestis į dev, doc y lib, gaminimas tinycc.out Jame yra tik tcc dvejetainiai failai ir kryžminiai kompiliatoriai. TPM sistemoje tpm2-pkcs11 Jis kompiliuojasi be palaikymo abrmd Pagal numatytuosius nustatymus pirmenybė teikiama branduolio išteklių tvarkyklei; jei jums reikia varianto su abrmd, jis egzistuoja. tpm2-pkcs11.abrmdir „NixOS“ modulis automatiškai pasirenka pagal security.tpm2.abrmd.
„Udev“ kalboje taisyklės libjaylink Dabar jie reikalauja priklausyti grupei. jlink vietoj plugdev„NixOS“ sistemoje tai buvo labai neįprasta. Prieiga taip pat leidžiama per sėdimas sesijas, todėl poveikis yra ribotas, jei naudojate standartinį darbalaukį.
rekvizitai mkBinaryCache Jis modernizuotas ir pradėtas naudoti zstd kaip numatytasis suspaudimas
Sugeneruotiems dvejetainiams podkeriamsGalimybė tęsti liko atvira. xz per compression = "xz";Daugeliu atvejų tai pagerina dvejetainių failų generavimo ir naudojimo našumą.
Tinklo parinktyse networking.nat.externalIP ir externalIPv6 keičia savo elgsenątaisyklės networking.nat.forwardPorts Šios taisyklės dabar taikomos tik paketams, skirtiems aiškiai nurodytiems IP adresams. Tai apsaugo nuo netikėtų peradresavimų, tačiau gali tekti koreguoti esamus NAT apibrėžimus.
Failų sistemos valdyme apibrėžimai failų sistemos (pvz., failų sistemos."/") nustatomos naudojant lib.mkDefault iš „NixOS“ modulių, kurie leidžia juos visus pakeisti vienu metu, bet sukelia klaidų, jei perrašomi tik atskiri atributai nenurodant devicePriešingu atveju galite gauti tokių pranešimų kaip No device specified for mount point '/'.
Teksto redagavimas, kūrimo aplinkos ir įvairios „NixOS 25.11“ programos
„Emacs“ visatoje „NixOS 25.11“ Pašalinkite „Emacs 28“ ir „29“Įtrauktos ir standartinė, ir „Macport“ versijos, skirtos „Emacs 28“. „Emacs 29“ „Macport“ leidimas yra palaikomas, tačiau jame yra pataisų, skirtų žinomiems pažeidžiamumams. „Racket“ taip pat atliekamas šalinimas: racket_7_9 yra pašalintas dėl nesaugios veiklosskatina naudoti „Racket 8“ ir taip panaikina fluxus, kuri daugelį metų rėmėsi ta neprižiūrima versija.
Teksto paieškos sistema binwalk 3.1.0 Jis perrašytas Rust kalba, o susijęs Python modulis tampa nepasiekiamas; asmeninių paskyrų įrankis python3Packages.beancount Jis pakyla iki 3.1, o ankstesnė serija išlieka tokia pati. beancount_2El. laiškuose ir komandinės eilutės sąsajoje (CLI) tldr Jis persijungia prie Python kliento naudojimo vietoj C ir Himalajai Jis atnaujinamas iki 1.1.0 versijos su novatoriškais pakeitimais, kuriems reikia peržiūrėti konfigūraciją.
Įvairiuose įrankiuose, „nq 1.0“ pervadina „fq“ ir „tq“ į „nqtail“ ir „nqterm“, zf 0.10.2 Tai pakeičia Unicode ir Escape sekų tvarkymo būdą ir ast-grep pašalinti komandą sg siekiant išvengti konfliktų su „shadow-utils“, tuo pačiu leidžiant naudoti senesnę suderinamumo versiją per enableLegacySg = true;.
Tuo pačiu metu, standartinių žurnalo funkcijų šeima nixLog* Jis perrašytas taip, kad prieš derinimo lygį ir iškviečiančios funkcijos pavadinimą būtų nurodytas priešdėlis, iš naujo įtraukiant nixLog kaip besąlyginis registratorius, kuris taip pat prideda funkcijos kontekstą. Tai palengvina sudėtingų išvestinių ir kabliukų derinimą.
Galiausiai, kai kurios testavimo priemonės, pvz. testers.shellcheck Dabar jie įspėja, jei atributas nenurodytas. namekuris taps privalomas būsimose versijose. O Haskell kalboje testTarget pažymėtas kaip pasenęs naudai testTargets, kuris priima aiškų taikinių sąrašą vietoj tarpais atskirtos eilutės.
„NixOS“ 25.11 versija apjungia daugybę pakeitimų – nuo „GNOME 49“ darbalaukio ir didžiulių paketų atnaujinimų iki didelių įrankių grandinių, tinklo paslaugų ir suderinamumo politikos pakeitimų, todėl tai yra svarbi versija visiems, norintiems atnaujinti savo „Nix“ aplinką neprarandant iš akių... stabilumas ir atkuriamumas kurie apibūdina projektą.