NixOS 25.11 Xantusia: все новые функции и ключевые изменения

  • NixOS 25.11 «Xantusia» обновляет тысячи пакетов, модулей и опций, уделяя особое внимание чистоте и безопасности.
  • Рабочий стол делает шаг вперед с GNOME 49 и обновлениями набора инструментов, такими как LLVM 21, CMake 4 и новыми языковыми версиями.
  • В базы данных, контейнеры и службы вносятся многочисленные несовместимые изменения, требующие пересмотра существующих конфигураций.
  • Многие приложения переименовываются или прекращают работу в пользу более современных альтернатив, что подталкивает экосистему к поддерживаемому и безопасному программному обеспечению.

НикОС 25.11

NixOS возвращается с NixOS 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 «Xantusia» теперь доступна для установки и обновления на любой системе, использующей стабильные каналы. В течение семи месяцев, до 30 июня 2026 года, эта версия будет получать исправления безопасности и ошибки, что делает её рекомендуемым обновлением при переходе с предыдущей версии.

Предыдущая стабильная версия, NixOS 25.05 «Warbler» , официально устарела и больше не будет получать обновления безопасности после 31 декабря 2025 года. Если вы все еще используете версию 25.05 или более старую ветку, сейчас самое время спокойно спланировать переход на 25.11, ознакомившись с несовместимыми изменениями, которые мы подробно опишем в этом тексте.

Этот релиз также демонстрирует темпы разработки проекта . В период между NixOS 25.05 и NixOS 25.11 в разработке участвовали 2742 человека, которые в общей сложности внесли не менее 59 430 изменений в Nixpacks и конфигурацию системы. Эти цифры включают в себя всё: от незначительных исправлений и второстепенных пакетов до существенной переработки критически важных модулей дистрибутива.

Nixpkgs: пакеты, добавленные, обновленные и удаленные из NixOS 25.11

В этом цикле масштабное техническое обслуживание получил пакет Nixpkgs, являющийся основой не только NixOS, но и любой системы, использующей менеджер пакетов Nix в Linux или macOS.

С одной стороны, было добавлено 7002 новых пакета , что еще больше расширило спектр доступного программного обеспечения. Это включает в себя все: от передовых инструментов разработки до настольных приложений, утилит управления и научного программного обеспечения.

Одновременно с этим команда обновила 25 252 существующих пакета , приведя большинство популярных программ в соответствие с последними версиями и, прежде всего, внедрив исправления безопасности и улучшив производительность. Это крайне важно в средах, где необходима воспроизводимость при сохранении разумной актуальности.

Для обеспечения управляемости и безопасности репозитория Nixpkgs удалил 6338 старых пакетов , которые больше не поддерживались, были неисправны или устарели. Во многих случаях существуют прямые альтернативы в самом дереве Nixpkgs, но в других случаях они просто удаляются во избежание проблем с безопасностью или компиляцией.

Модули NixOS и параметры конфигурации

Помимо пакетов, NixOS отличается мощной декларативной модульной системой. Этот цикл включает 107 новых модулей , добавляющих поддержку новых служб, демонов, приложений и системных конфигураций. Они также добавляют 1778 новых параметров конфигурации, еще больше повышая детализацию описания системы.

С другой стороны, были удалены 41 модуль и 807 параметров конфигурации, которые устарели, перестали работать или были заменены более современными альтернативами . Если вы используете старые конфигурации, рекомендуется ознакомиться с уведомлениями об устаревании и адаптировать файлы перед обновлением до последней версии.

Важные новые функции рабочего стола: GNOME 49 «Brescia»

Одной из самых значительных новинок для пользователей настольных компьютеров является обновление до GNOME 49 «Brescia» . Эта версия среды рабочего стола делает решительный шаг в сторону Wayland и отказывается от сессий на основе X11, что может стать существенным изменением, если вы использовали старые конфигурации или расширения, которые явно зависели от Xorg.

GNOME 49 включает в себя новые приложения, такие как обновленный видеоплеер и улучшенная программа просмотра документов, а также переработанный календарь и множество небольших улучшений пользовательского интерфейса. Рекомендуется ознакомиться с официальными примечаниями к выпуску GNOME, если вам необходима какая-либо узкоспециализированная функциональность или сложные расширения.

Компиляторы C и наборы инструментов: LLVM, GCC и CMake

В разделе компиляции NixOS 25.11 обновляет LLVM до версии 21 , что является значительным шагом вперед для разработчиков, использующих C, C++ или Rust с инструментарием Clang. Эта версия включает в себя улучшения оптимизации, новые поддерживаемые цели и корректировки предупреждений, которые могут вызывать изменения в поведении в некоторых проектах.

Компилятор GCC поддерживается в ветке 14 , версии, которая уже хорошо зарекомендовала себя и протестирована в производственной среде. Это позволяет поддерживать совместимость с проектами, которые по-прежнему зависят от этого семейства компиляторов, без необходимости сталкиваться с существенными изменениями при каждом обновлении системы.

Тем временем CMake обновляется до версии 4 , что может открыть новые возможности в современных системах сборки, но также может потребовать корректировок в проектах, использующих устаревший синтаксис или команды. Если у вас есть старые шаблоны CMake, рекомендуется запустить тесты сборки перед завершением миграции.

GPU, вычисления и изменения в ROCm и CUDA

Для тех, кто работает с ускорением GPU, ветка rocmPackages_6 обновление до ROCm 6.3В то время как rocmPackages_5 Он удалён из дерева. Некоторые части реструктурированы: rocmPackages.rocm-thunk Он исчезает как отдельный пакет и интегрируется в rocmPackages.clr, y rocmPackages.clang-ocl Он уходит на пенсию после того, как в 2023 году его покинула AMD.

Параллельно прекращается официальная поддержка CUDA 10 , как уже было объявлено в примечаниях к выпуску NixOS 24.11. Пользователям, которые всё ещё используют очень старое оборудование, следует рассмотреть возможность обновления своих графических процессоров или поискать поддерживаемые альтернативы от других производителей или бэкэндов.

Браузер, прокси и проблемы компиляции Discord

Одна практическая проблема, которая выявилась в этой версии, заключается в том, что использование прокси во время компиляцииПользователь описывает, как можно успешно загрузить файл. discord-0.0.116.tar.gz из браузера с использованием корпоративного прокси, но при запуске nixos-rebuild Загрузка с помощью curl постоянно прерывается из-за ошибки curl: (35) Recv failure: Connection reset by peer пока не будут исчерпаны все попытки.

Сообщение об ошибке Nix указывает на то, что Не удалось загрузить tar-архив Discord. из-за отсутствия зеркала, тем самым нарушая вывод discord-0.0.116.tar.gz.drv и, в свою очередь, создание пользовательской среды и всей системы в целом. Хотя в журнале есть предупреждения об автоматических повторных попытках, такие переменные, как https_proxy o all_proxyЭто говорит о том, что среда выполнения в изолированной программной среде сборки не видит конфигурацию сети пользователя.

В NixOS, стандартные переменные среды прокси Они могут не распространяться напрямую в форки, если используется строгая песочница или если конфигурация системы не экспортирует их в сборки. Типичное решение заключается в настройке параметров Nix следующим образом: nix.extraOptions включать http_proxy, https_proxy и компании, или временно отключить «песочницу» для этой машины (не рекомендуется на длительный срок), пока настраиваете прокси-сервер так, чтобы он разрешал трафик с IP-адреса застройщика.

Другой вариант — использовать бинарные кэши, которые уже содержат Discord или другие проблемные пакеты, что предотвратит прямую загрузку исходных файлов Nix. В любом случае, подобные сетевые ошибки становятся более значительными в версии 25.11, которая обрабатывает так много компонентов одновременно и может приводить к различному поведению при разрешении URL-адресов.

Сеть, контейнеры и веб-сервисы

В области сетевых технологий и контейнеров NixOS 25.11 вносит существенные изменения. HTTP-прокси Squid обновлен до версии 7 , которая содержит ряд несовместимых изменений и, например, удаление функциональности ESI. Для настройки собственных параметров рекомендуется ознакомиться с примечаниями к выпуску Squid.

На уровне оркестрации containerd был обновлен до ветки 2.x , что вносит ряд изменений в поведение. Если вы используете containerd напрямую или как компонент платформы, крайне важно ознакомиться с документацией containerd 2.0, чтобы избежать неожиданностей в производственной среде.

В мире Docker версия docker_24 удаляется из дерева исходного кода, поскольку она больше не поддерживается и содержит известные уязвимости с июня 2024 года. Идея состоит в том, чтобы перевести установки на более новые и поддерживаемые версии Docker.

Что касается серверов и панелей управления, NetBox обновлен до версии 4.2со значительными изменениями на уровне схемы и поведения. Версия 4.0.x удалена из дерева, и пользователям рекомендуется следить за уведомлениями об обновлениях 4.1 и 4.2 перед обновлением. Другие службы, такие как Matomo Они переходят на использование версии 5 по умолчанию (версия 4 больше не поддерживается), и пакет удаляется. matomo-beta поскольку теперь легко перезаписать версию с overrideAttrs.

Kafka также претерпевает значительные изменения: 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 в cabpkg, xdragon становится драконьим дропом (С xdragon (как псевдоним) и siduck76-st он переименован в st-snazzyЕсть также маленькие буквы: шрифт серьезно-без Он отзывается, потому что разработчик изменил название на Serious Shanns, и он все еще не упакован.

Остальные проекты просто архивируются: gkraken, ephemeral, vocal, fluxus, sm64ex-coop, nexusmods-app, nodePackages.ganache И многие другие отмечены как сломанные, неподдерживаемые или небезопасные и удалены из Nixpacks. В некоторых случаях предлагается альтернатива (например, sm64coopdx заменить sm64ex-coop, или gnome-podcasts y kasts для замены гласной).

В сфере обмена сообщениями и обеспечения конфиденциальности пакеты signald, signaldctl и purple-signald устаревают из-за длительной несовместимости с официальными серверами Signal, а сервер Matrix conduwuit помечается как уязвимый после того, как его разработка была прекращена разработчиками.

Новые версии и изменения поведения популярных приложений

Помимо исчезновений, многие приложения обновляются с помощью изменения в поведении, которые нарушают совместимость, Так, например, Grafana Agent и его модуль Они уходят со сцены в пользу Grafana Alloy, у которой уже есть собственный сервис. services.alloyGrafana рекомендует перейти на grafana-alloy и предоставляет документацию для завершения передачи.

Экосистема мониторов и панелей также развивается: Prometheus переходит на ветку 3.x , о чем свидетельствуют официальные примечания о миграции, а Kanata, Authelia, Helmfile, Open-Policy-Agent и многие другие пакеты обновляются до основных версий с изменениями синтаксиса, форматов конфигурации и значений по умолчанию. В частности, OPA делает rego.v1 стилем по умолчанию , помечая синтаксис v0 как устаревший, хотя режим совместимости по-прежнему доступен.

Мир настольных компьютеров не сильно отстает: GIMP 3.0 выглядит как gimp3, Клубника обновлена ​​до серии 1.2 и отказывается от бэкэнда VLC и Qt5 (пакет исчезает) strawberry-qt5 и некоторые варианты с GStreamer/VLC), rofi Он переходит с версии 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.

Эль Пакет крошечный Затем он разделяет выходные данные на 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 29 для Macport поддерживается, но с исправлениями известных уязвимостей. Racket также подвергается сокращению: racket_7_9 выводится из эксплуатации из-за небезопасности , что вынуждает пользователей переходить на Racket 8, а вместе с этим удаляется fluxus , который годами зависел от этой неподдерживаемой версии.

Текстовый поисковик бинволк 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, цф 0.10.2 Он изменяет способ обработки Unicode и управляющих последовательностей, а также ast-grep удалить команду sg чтобы избежать конфликтов с shadow-utils, в то же время позволяя использовать устаревшую версию совместимости через enableLegacySg = true;.

В то же время семейство стандартных логарифмических функций nixLog* Он переписан с добавлением префикса уровня отладки и имени вызывающей функции, что заново вводит nixLog как безусловный логгер, который также добавляет контекст функции. Это упрощает отладку сложных выводов и перехватов.

Наконец, некоторые тестовые утилиты, такие как testers.shellcheck Теперь они предупреждают, если атрибут не указан. nameкоторый станет обязательным в будущих версиях. А в Хаскеле, testTarget помечен как устаревший в пользу testTargets, который принимает явный список целей вместо строки, разделенной пробелами.

Таким образом, версия NixOS 25.11 объединяет огромное количество изменений, от рабочего стола GNOME 49 и масштабных обновлений пакетов до глубоких корректировок в цепочках инструментов, сетевых службах и политиках совместимости, становясь ключевым изданием для всех, кто хочет поддерживать свою среду Nix в актуальном состоянии, не теряя при этом стабильности и воспроизводимости , которые характеризуют этот проект.

НикОС 24.11
Теме статьи:
Все, что вам нужно знать о долгожданном релизе NixOS 24.11

Добавить в качестве предпочтительного источника в Google