Выпуск дистрибутива NixOS 23.05, использующего пакетный менеджер Nix

Состоялся выпуск дистрибутива NixOS 23.05, основанного на пакетном менеджере Nix и предоставляющего ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS вся настройка системы происходит посредством единого файла системной конфигурации (configuration.nix), предоставляется возможность быстрого отката системы на предыдущую версию конфигурации, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями, есть возможность одновременного использования нескольких версий одной программы, обеспечены воспроизводимые сборки. Размер полного установочного образа с KDE 2.4 ГБ, GNOME — 2.3 ГБ, сокращённого консольного варианта — 812 МБ.

При использовании Nix результат сборки пакетов хранится в отдельной поддиректории в /nix/store. Например, после сборки пакет firefox может записываться в /nix/store/1onlv6pc3ez4n5nskg8ew7twcfd0d5ce4ec5d4-firefox-113.0.2/, где «1onlv6pc3ez4n5nskg8ew7twcfd0d5ce4ec5d4» является хешем всех его зависимостей и инструкций сборки. Под установкой пакета подразумевается его сборка или скачивание уже собранного (при условии, что он был уже собран на Hydra — сервисе сборки проекта NixOS), а также формирование директории с символическими ссылками на все пакеты в профиле системы или пользователя, с последующим добавлении этой директории в список PATH. Аналогичный подход применяется в пакетном менеджере GNU Guix, который основан на наработках Nix. Коллекция пакетов представлена в специальном репозитории Nixpkgs.

Основные новшества:

  • Добавлено 16240 пакетов, удалено 13466 пакетов, обновлено 13524 пакетов. Обновлены версии пакетов, например, systemd 253, glibc 2.37, GNOME 44, Cinnamon 5.6, KDE 5.27. Ядро Linux обновлено с версии 5.15 до 6.1.
  • Добавлено 63 новых сервиса, среди которых Deepin Desktop, Budgie Desktop, SFTPGo, lldap, ivpn, openvscode-server, ulogd, wstunnel.
  • Добавлена поддержка спецификации PEP 668 для исключения конфликтов между Python-пакетами, установленными для всей системы командой «pip install» и пакетным менеджером дистрибутива.
  • В утилиту nixos-rebuild добавлена опция «—specialisation» для изменения специализации для команд switch и test.
  • В библиотеке libxcrypt отключены ненадёжные алгоритмы хэширования паролей.
  • По умолчанию включена опция boot.bootspec.enable, приводящая к генерации загрузочной спецификации (boot.json, RFC-125) для каждой системы, что, например, позволяет реализовать в NixOS поддержку UEFI SecureBoot, обеспечить работу с несколькими initrd, унифицировать скрипты установки загрузчика и применять схемы с ротацией рабочих дисковых разделов.

Источник: http://www.opennet.ru/opennews/art.shtml?num=59226