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

Представлен выпуск дистрибутива NixOS 19.09, основанного на пакетном менеджере Nix и предоставляющего ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS используется единый файл системной конфигурации (configuration.nix), предоставляется возможность быстрого отката обновлений, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится в домашнюю директорию), возможна одновременная установка нескольких версий одной программы. Размер полного установочного образа с KDE — 1.3 Гб, сокращённого консольного варианта — 560 Мб.

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

  • Обеспечен запуск инсталлятора под непривилегированным пользователем nixos вместо root (для получения прав root используется sudo -i без пароля);
  • Рабочий стол Xfce обновлён до ветки 4.14;
  • Пакет с PHP обновлён до ветки 7.3. Прекращена поддержка ветки PHP 7.1;
  • В модуле управления рабочим столорм GNOME 3 предоставлена возможность включения/отключения сервисов, приложений и дополнительных пакетов, таких как игры. Устанавливаемое окружение GNOME 3 по возможности приближено к оригинальной поставке. Прекращена установка приложений accerciser, dconf-editor, evolution, gnome-documents, gnome-nettool, gnome-power-manager, gnome-todo, gnome-tweaks, gnome-usage, gucharmap, nautilus-sendto и vinagre. В базовую поставку включены cheese, geary, gnome-color-manager и orca. Активирован сервис services.avahi.enable;
  • Обновлены версии компонентов дистрибутива, в том числе systemd 242;
  • Добавлен сервис dwm-status и модуль hardware.printers;
  • Прекращена поддержка Python 2.

При использовании Nix пакеты устанавливаются в отдельное дерево директорий /nix/store или поддиректорию в каталоге пользователя. Например, пакет устанавливается как /nix/store/f3a4…8a143-firefox-69.0.2/, где «f3a4…» является уникальным идентификатором пакета, используемым для контроля зависимостей. Пакеты оформляются в виде контейнеров, содержащих необходимые для работы приложений компоненты.

Между пакетами возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Возможна как загрузка готовых бинарных пакетов из репозитория (при установке обновлений к бинарным пакетам загружаются только delta-изменения), так и сборка из исходных текстов со всеми зависимостями. Коллекция пакетов представлена в специальном репозитории Nixpkgs.

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