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

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

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

  • Обновлены версии компонентов дистрибутива, в том числе ядро Linux 5.4 (было 4.19),
    gcc 9.2.0,
    glibc 2.30,
    mesa 19.3.3,
    openssl 1.1.1d,
    PostgreSQL 11, OpenSSH 8.1.

  • Рабочие столы обновлены до KDE 5.17.5 (+ KDE Applications 19.12.3),
    GNOME 3.34 и Pantheon 5.1.3 (из Elementary OS). При включении Pantheon через настройку services.xserver.desktopManager.pantheon.enable, автоматически включается и связанный с ним экран приглашения входа в систему.

  • В графическом инсталляторе после установки обеспечен автоматический запуск графического сеанса (раньше выводилось консольное приглашение с предложением запустить «systemctl start display-manager» если нужен графический интерфейс). Для отключения запуска экранного менеджера в загрузочное меню добавлен пункт «Disable display-manager».
  • Для ZFS-пулов обеспечен еженедельный запуск операции TRIM для накопителей NVME и SSD (настройка services.zfs.trim.enable). Если ZFS присутствует в настройке config.boot.initrd.supportedFilesystems или config.boot.supportedFilesystems также производится периодический запуск операций проверки (services.zfs.autoScrub.enable) и автоматического создания снапшотов (services.zfs.autoSnapshot.enable).
  • Код nixos-option переписан на языке C++ и расширен опцией «-r» для вывода всех настроек.
  • Настройки services.xserver.desktopManager.default и services.xserver.windowManager.default заменены на универсальную опцию services.xserver.displayManager.defaultSession (например, services.xserver.displayManager.defaultSession = «xfce+icewm»).
  • Добавлено 46 новых сервисов.
  • Образы для SD-карт по умолчанию сжаты при помощи bzip2.

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

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

Источник: opennet.ru

Добавить комментарий