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

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

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

  • В состав включено десктоп-окружение Pantheon, разрабатываемое проектом Elementary OS (включение через services.xserver.desktopManager.pantheon.enable);
  • Существенно переработан модуль с системой оркестровки контейнеров Kubernetes, который разделён на отдельные компоненты. Для увеличения безопасности по умолчанию включены TLS и RBAC;
  • В systemd.services добавлены опции для запуска сервисов в chroot-окружении;
  • Добавлен установочный образ для архитектуры Aarch64 с поддержкой UEFI;
  • Обновлены версии компонентов дистрибутива, в том числе CPython 3.7 (был 3.6);
  • Добавлено 22 новых сервиса, среди которых CockroachDB, bolt, lirc, roundcube, weechat и knot.

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

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

© OpenNet