
NixOS се завръща с, Nix OS 25.11, версия, която носи много дълбоки промени както в самата система, така и в огромната екосистема от пакети, които я заобикалят. С кодово име „Xantusia“, тя вече е достъпна и е заредена с интересни нови функции за настолни компютри, сървъри, разработка и облачни внедрявания, но също така и с доста несъвместимости и остарели пакети, които трябва да бъдат внимателно прегледани преди актуализиране.
В тази статия ще видим Всички важни новини От NixOS 25.11 и базата пакети Nixpkgs: ключови актуализации като GNOME 49, LLVM 21 и ROCm 6.3; значителни промени в Go, Rust, Node.js, PostgreSQL и Docker; преименувани услуги; нови модули; и допълнителни опции за конфигуриране. Ще обсъдим и реален казус, включващ проблеми с прокси сървъра при компилиране на Discord и как да се справите с тях в тази нова среда.
NixOS 25.11 „Xantusia“: данни за жизнения цикъл и пускането на пазара
Новата стабилна версия, NixOS 25.11 „Ксантузия“Вече може да се инсталира и актуализира на всяка система, използваща стабилни канали. Това издание ще получава корекции за сигурност и корекции на грешки в продължение на седем месеца, до 30 юни 2026 г., така че е новата препоръчителна надстройка, ако идвате от предишна версия.
Предишната стабилна, NixOS 25.05 „Певачката“, официално става остарял и ще спре да получава актуализации за сигурност от 31 декември 2025 г. Ако все още сте на версия 25.05 или дори по-стар клон, е подходящ момент спокойно да планирате миграцията си към 25.11, като прегледате несъвместимите промени, които ще опишем подробно в този текст.
Това представяне е и демонстрация на скорост на развитие на проекта. Между NixOS 25.05 и NixOS 25.11, 2742 сътрудници са участвали, като колективно са подписали не по-малко от 59 430 commit-а към Nixpacks и системната конфигурация. Зад тези цифри се крие всичко - от малки корекции до маргинални пакети и големи редизайн-и на критични дистрибутивни модули.
Nixpkgs: Добавени, актуализирани и премахнати пакети от NixOS 25.11
Колекцията от пакети Nixpkgs, която е гръбнак Не само NixOS, но всяка система, която използва мениджъра на пакети Nix на Linux или macOS, е претърпяла мащабна поддръжка през този цикъл.
От една страна, е имало Добавени са 7002 нови пакетадопълнително разширяване на гамата от наличен софтуер. Това включва всичко - от авангардни инструменти за разработка до настолни приложения, помощни програми за управление и научен софтуер.
В същото време екипът има Актуализирани са 25 252 съществуващи пакетаТова гарантира, че най-популярният софтуер се актуализира до най-новите версии, особено тези с корекции за сигурност и подобрения в производителността. Това е от решаващо значение в среди, където възпроизводимостта е от съществено значение, като същевременно се поддържа разумна актуалност.
За да поддържа хранилището управляемо и сигурно, Nixpkgs има 6338 стари пакета са премахнати които вече не се поддържаха, бяха повредени или бяха остарели нагоре по веригата. В много случаи съществуват директни алтернативи в самото дърво на Nixpkgs, но в други те просто са недостъпни, за да се избегнат проблеми със сигурността или компилацията.
NixOS модули и опции за конфигуриране
В допълнение към пакетите си, NixOS се отличава с мощната си декларативна модулна система. Този цикъл включва Включени са 107 нови модулаТези актуализации добавят поддръжка за нови услуги, демони, приложения и системни конфигурации. Те също така въвеждат 1778 нови опции за конфигуриране, което допълнително увеличава детайлността, с която може да бъде описана една система.
От друга страна, е имало премахнати 41 модула и 807 опции за конфигурация, които са остарели, повредени или заменени от по-модерни алтернативи. Ако използвате повторно по-стари конфигурации, е добре да прегледате известията за отхвърляне, за да адаптирате файловете си преди надграждане.
Забележителни нови функции на работния плот: GNOME 49 „Брешия“
Една от големите нови функции за потребителите на настолни компютри е актуализацията до ГНОМ 49 „Бреша“Тази версия на десктоп средата прави решителна крачка към Wayland и елиминира сесията, базирана на X11, което може да е значителна промяна, ако сте поддържали по-стари конфигурации или разширения, които изрично зависят от Xorg.
GNOME 49 включва Нови приложения Това включва обновен видеоплейър и актуализиран прегледник на документи, както и преработен календар и множество малки подобрения в потребителското изживяване. Препоръчително е да прегледате официалните бележки за изданието на GNOME, ако разчитате на някаква специфична функционалност или сложни разширения.
C компилатори и инструменти: LLVM, GCC и CMake
В секцията за компилация, актуализациите на NixOS 25.11 LLVM до версия 21Това е значителен скок напред за разработчиците, използващи C, C++ или Rust с инструментариума Clang. Тази версия включва подобрения в оптимизацията, нови поддържани цели и корекции на предупрежденията, които могат да причинят промени в поведението в някои проекти.
компилаторът GCC остава в клон 14Това е версия, която вече е установена и тествана в производство. Това улеснява поддържането на съвместимост с проекти, които все още зависят от това семейство компилатори, без да се натъкват на разрушителни промени с всяка системна актуализация.
От своя страна, CMake е актуализиран до версия 4Това може да активира нови функции в съвременните системи за изграждане, но може също да изисква корекции в проекти, които използват остарял синтаксис или команди. Ако имате по-стари CMake шаблони, е добре да изпълните тестове за изграждане, преди да финализирате миграцията.
Графичен процесор, изчисления и промени в ROCm и CUDA
За тези, които работят с GPU ускорение, клонът актуализация на rocmPackages_6 до ROCm 6.3Докато rocmPackages_5 Премахва се от дървото. Някои части са преструктурирани: rocmPackages.rocm-thunk Той изчезва като отделен пакет и се интегрира в rocmPackages.clrИ rocmPackages.clang-ocl Той се пенсионира, след като беше изоставен от AMD през 2023 г.
Паралелно, Официалната поддръжка за CUDA 10 е загубенаКакто вече беше споменато в бележките за изданието NixOS 24.11, потребителите, които все още поддържат много стар хардуер, трябва да обмислят надграждане на своя графичен процесор или да проверят дали има поддържани алтернативи от други производители или бекендове.
Браузър, прокси сървъри и проблеми с компилирането на Discord
Един практически проблем, който се появи с тази версия, е използване на прокси сървъри по време на компилацииПотребител описва как може успешно да изтегли файла. discord-0.0.116.tar.gz от браузъра, използващ корпоративния прокси сървър, но когато се изпълнява nixos-rebuild Изтеглянето с curl се проваля многократно с грешка curl: (35) Recv failure: Connection reset by peer докато всички опити се изчерпят.
Съобщението за грешка на Nix показва, че Архивният файл на Discord не можа да бъде изтеглен от никакво огледало, като по този начин се нарушава изводът discord-0.0.116.tar.gz.drv и, от своя страна, изграждането на потребителската среда и цялата система. Въпреки че логът показва предупреждения за автоматични повторни опити, променливи като https_proxy o all_proxyТова предполага, че средата за изпълнение в рамките на пясъчната кутия за изграждане не вижда мрежовата конфигурация на потребителя.
В NixOS, стандартни променливи на прокси средата Те може да не се разпространяват директно към форкове (forks), ако се използва стриктно sandboxing или ако системната конфигурация не ги експортира в компилации. Типичното решение включва конфигуриране на Nix опции като nix.extraOptions да включва http_proxy, https_proxy и компания или временно деактивирайте пясъчната кутия за тази машина (не се препоръчва дългосрочно), докато настройвате прокси сървъра, за да разрешите трафик от IP адреса на създателя.
Друг вариант е да се прибегне до двоични кешове, които вече съдържат Discord или други проблемни пакети, като по този начин се предотвратява директното изтегляне на оригиналите от Nix. Във всеки случай, тези видове мрежови грешки стават по-актуални във версия като 25.11, която премества толкова много части едновременно и може да доведе до различно поведение в начина, по който се разрешават URL адресите.
Мрежа, контейнери и уеб услуги
В областта на мрежите и контейнерите, NixOS 25.11 въвежда значителни промени. Squid HTTP прокси ъпгрейди до версия 7Това издание включва няколко несъвместими промени, като например премахването на ESI функционалността. За корекции на вашите персонализирани настройки се препоръчва да прегледате бележките към изданието на Squid.
На ниво оркестрация, containerd актуализира своя 2.x клонТова води до редица промени в поведението. Независимо дали използвате containerd директно или като компонент на платформа, е важно да прегледате документацията на containerd 2.0, за да избегнете изненади в производствения процес.
В света на Докер, docker_24 е премахнат от дървото защото вече не се поддържа и има известни уязвимости от юни 2024 г. Идеята е да се прехвърлят инсталации към по-нови и поддържани версии на Docker.
Относно сървърите и контролните панели, NetBox е актуализиран до версия 4.2със значителни промени на ниво схема и поведение. Версия 4.0.x е премахната от дървото и на потребителите се препоръчва да следят известията за актуализации 4.1 и 4.2 преди надграждане. Други услуги, като например matomo Те преминават към използване на версия 5 по подразбиране (версия 4 вече не се поддържа) и пакетът се премахва. matomo-beta тъй като сега е лесно да се презапише версията от overrideAttrs.
Кафка също прави значителен скок: Apache Kafka е актуализиран до версия 4.0който вече не поддържа ZooKeeper. Всички инсталации трябва да бъдат мигрирани в режим KRaft, следвайки указанията на Apache Foundation. В NixOS това включва преглед на конфигурациите за премахване на препратки към ZooKeeper и адаптиране на внедряванията на брокери.
Услуги, демони и приложения, които се променят или изчезват от NixOS 25.11
Списъкът с Пакети и услуги, които са преименувани, актуализирани несъвместимо или пенсионирани Този цикъл е много дълъг, което е знак за готовност за почистване на дървото на стария или проблемния софтуер.
Някои забележителни примери: кракен Изчезва и се препоръчва да се използва coolercontrol като алтернатива; opensmtpd-extras Премахва се, защото не е съвместим с OpenSMTPD 7.6.0+, отстъпвайки място на специфични пакети. opensmtpd-table-*; Замад Спира поддръжката на MySQL и принуждава потребителите да мигрират към PostgreSQL, следвайки официалното ръководство.
В света на имената, Minetest вече се казва Luanti за да отрази промяната нагоре по веригата, но псевдонимите се запазват, за да се избегнат незабавни прекъсвания. По подобен начин, промени в POAC на cabinpkg, xdragon става dragon-drop (с xdragon (като псевдоним) и siduck76-st той е преименуван на st-snazzyИма и малки букви: шрифтът сериозен без Изтегля се, защото upstream промени името си на Serious Shanns, все още неопаковано.
Други проекти просто се архивират: gkraken, ефимерен, вокален, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache и много други са маркирани като счупени, неподдържани или опасни и са премахнати от Nixpacks. В няколко случая се предлага алтернатива (например, sm64coopdx да замени sm64ex-coop, или gnome-podcasts y kasts за да замени гласна).
В средата за съобщения и поверителност, пакетите сигнализиран, signaldctl и purple-signald Те се прекратяват поради продължителна несъвместимост с официалните сървъри на Signal и сървъра на Matrix. тръбопровод Маркиран е като уязвим, след като е спрян от разработчиците си.
Нови версии и промени в поведението на популярни приложения
Освен изчезванията, много приложения се актуализират с промени в поведението, които нарушават съвместимостта, Например, Grafana Agent и неговият модул Те напускат сцената в полза на Grafana Alloy, която вече има собствена услуга. services.alloyГрафана препоръчва мигриране към grafana-alloy и предоставя документи за завършване на прехвърлянето.
Екосистемата от монитори и панели също се развива: Прометей прави скок към клон 3.xс официални миграционни бележки, докато Каната, Authelia, helmfile, агент за отворени политики и много други пакети са актуализирани до основни версии с промени в синтаксиса, конфигурационните формати и стойностите по подразбиране. По-специално, OPA го прави rego.v1 вече е стилът по подразбиране, маркирайки синтаксиса v0 като наследен, въпреки че все още съществува режим на съвместимост.
Светът на настолните компютри не изостава много: GIMP 3.0 се появява като gimp3, Ягодата е актуализирана до серия 1.2 и изоставя VLC и Qt5 backend-а (пакетът изчезва) strawberry-qt5 и някои опции с GStreamer/VLC), рофи Преминава от версия 1.7.5 на 1.7.6 с промени в ABI в двоичните плъгини и таун 7.9.0+ Вашата база данни се мигрира към схема, която е несъвместима с обратното, така че е препоръчително да направите резервно копие на ~/.local/share/TauonMusicBox преди да отворите новата версия.
В областта на уеб разработката и JavaScript, nodejs_latest еволюира до серия 24.x, се елиминират nodejs_23 y nodejs_18и почиства Node пакетите, които никога не е трябвало да бъдат глобални (като например webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), с препоръката да се инсталират на ниво проект. Инструменти като pnpm преминава към версия 10 с вторичен пакет pnpm_9 за тези, които се нуждаят от съвместимост.
Има и корекции на шрифтовете: nerdfonts е разделен на отделни пакети под пространството от имена nerd-fonts и пътищата за инсталиране на шрифтовете се променят, като сега има директории по тип шрифт (<fontDirName>Това ни принуждава да адаптираме конфигурации, които сочеха към старите маршрути.
Промени в ядрото, хардуера и системната среда
На системно ниво е изоставено пълна поддръжка за 32-битов Darwinподдържане само на съвременни платформи. Освен това, тройната конфигурация на aarch64-darwin съответства на arm64-apple-darwin, което е в съответствие с очакванията на Apple и LLVM.
пакет tinycc След това разделя изходите на dev, doc y lib, правене tinycc.out Съдържа само tcc двоичните файлове и крос-компилаторите. В TPM, tpm2-pkcs11 Компилира се без поддръжка за abrmd По подразбиране, той дава приоритет на мениджъра на ресурсите на ядрото; ако ви е необходим вариантът с abrmd, той съществува. tpm2-pkcs11.abrmdи модулът NixOS автоматично избира според security.tpm2.abrmd.
В udev, правилата на libjaylink Сега те настояват да принадлежат към групата. jlink вместо plugdevТова беше много необичайно в NixOS. Достъпът е разрешен и чрез сесии на работното място, така че въздействието е ограничено, ако използвате стандартен десктоп.
подпорите mkBinaryCache Модернизиран е и започва да се използва zstd като компресия по подразбиране
За генерираните двоични кешовеОпцията за продължаване е оставена отворена. xz чрез compression = "xz";Това подобрява производителността при генерирането и потреблението на двоични файлове в повечето случаи.
В мрежовите опции, networking.nat.externalIP и externalIPv6 променят поведението сиправилата на networking.nat.forwardPorts Тези правила вече се прилагат само за пакети, предназначени за изрично посочени IP адреси. Това предотвратява неочаквани пренасочвания, но може да изисква коригиране на съществуващите NAT дефиниции.
В управлението на файловата система, дефинициите Файловите системи (като например fileSystems."/") се задават с помощта на lib.mkDefault от модулите на NixOS, което позволява замяната им наведнъж, но причинява грешки, ако се презаписват само отделни атрибути, без да се уточнява deviceВ противен случай може да се сблъскате със съобщения като No device specified for mount point '/'.
Редактиране на текст, среди за разработка и различни помощни програми на NixOS 25.11
В света на Emacs, NixOS 25.11 Премахнете Emacs 28 и 29Включени са както стандартната версия, така и версията за Macport за Emacs 28. Macport версията на Emacs 29 се поддържа, но с корекции за известни уязвимости. Racket също претърпява орязване: racket_7_9 е оттеглена поради небезопасна игранастоявайки да използваме Ракета 8 и по този начин елиминирайки поток, който разчиташе на тази неподдържана версия в продължение на години.
Търсачката на текст binwalk 3.1.0 Пренаписва се в Rust и свързаният с него Python модул става недостъпен; инструментът за лични акаунти python3Packages.beancount Той се покачва до 3.1, като предишната серия се запазва. beancount_2В имейл и CLI, tldr Превключва към използване на Python клиента вместо C и Хималаи Актуализира се до версия 1.1.0 с новаторски промени, които изискват преглед на конфигурацията.
В различни инструменти, nq 1.0 преименува fq и tq на nqtail и nqterm., zf 0.10.2 Това променя начина, по който обработва Unicode и escape последователности, и ast-grep премахнете командата sg за да се избегнат конфликти със shadow-utils, като същевременно се позволи достъп до съвместима със стари версии enableLegacySg = true;.
В същото време, семейството от стандартни лог функции nixLog* Пренаписва се, за да се постави префиксът на нивото за дебъгване и името на извикващата функция, въвеждайки отново nixLog като безусловен регистратор, който също добавя контекста на функцията. Това улеснява дебъгването на сложни деривации и куки.
И накрая, някои помощни програми за тестване, като например тестери.shellcheck Сега те ви предупреждават, ако атрибутът не е предоставен. nameкоето ще стане задължително в бъдещите версии. А в Haskell, testTarget е маркиран като остарял в полза на testTargets, който приема изричен списък с цели вместо низ, разделен с интервал.
По този начин версия 25.11 на NixOS консолидира огромен брой промени, от работния плот на GNOME 49 и масивните актуализации на пакетите до дълбоки корекции в инструментариума, мрежовите услуги и политиките за съвместимост, което я прави ключова версия за всеки, който иска да поддържа своята Nix среда актуална, без да губи от поглед... стабилност и възпроизводимост които характеризират проекта.