Увидел свет дистрибутив NixOS 24.04, основанный на пакетном менеджере Nix и предоставляющий ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS вся настройка системы происходит посредством единого файла системной конфигурации (configuration.nix), предоставляется возможность быстрого отката системы на предыдущую версию конфигурации, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями, есть возможность одновременного использования нескольких версий одной программы, обеспечены воспроизводимые сборки. Для архитектур x86_64 и ARM64 подготовлены установочные образы с KDE (2.6 ГБ) и GNOME (2.5 ГБ), а также сокращённый консольный вариант (1 ГБ).
При использовании Nix результат сборки пакетов хранится в отдельной поддиректории в /nix/store. Например, после сборки пакет firefox может записываться в /nix/store/1onlv5pc3ed4n5nskg8ew4twcfd0d5ce4ec5d4-firefox-125.0.1/, где “1onlv5pc3ed4n5nskg8ew4twcfd0d5ce4ec5d4” является хешем всех его зависимостей и инструкций сборки. Под установкой пакета подразумевается его сборка или скачивание уже собранного (при условии, что он был уже собран на Hydra – сервисе сборки проекта NixOS), а также формирование директории с символическими ссылками на все пакеты в профиле системы или пользователя, с последующим добавлении этой директории в список PATH. Аналогичный подход применяется в пакетном менеджере GNU Guix, который основан на наработках Nix. Коллекция пакетов представлена в специальном репозитории Nixpkgs.
Основные новшества:
- Добавлено 17777 пакетов, удалено 9393 пакета, обновлено 16249 пакетов. Добавлено 145 новых модулей, удалено 23 модуля. В разработке и сопровождении пакетов приняли участие 2491 разработчиков.
- Предложены выпуски пользовательских окружений KDE Plasma 6.0, GNOME 46 и MATE 1.28. В состав включены пакеты с пользовательским окружением Lomiri (бывший Unity8), использующим Wayland и дисплейный сервер Mir 2.
- Добавлено 66 новых сервисов, среди которых
AppImage, Anki Sync Server, Clevis, dnsproxy, Guix, intel-gpu-tools, isolate, microsocks, RustDesk, watchdogd. - Ядро Linux обновлено до версии 6.6 (была 6.1). Для сжатия файлов с прошивками задействован алгоритм zstd.
- Обеспечена установка загрузчика исполняемых файлов в формате ELF, который выводит сообщение об ошибке в случае запуска исполняемых файлов, собранных для для NixOS. Для отключения предусмотрена настройка “environment.stub-ld.enable”.
- Предоставлена возможность создания систем, в которых не установлен интерпретатор Perl (системные зависимости, использующие Perl, переведены в разряд необязательных опций).