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

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

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

  • Проведена работа по сокращению размера контейнеров для пакетов NixOS. Минимальный размер контейнера уменьшен с 424 Мб до 212 Мб. Размер контейнера с Firefox уменьшился с 651 Мб до 259 Мб;
  • Реализована поддержка сборки с флагами для усиления безопасности (hardening). По умолчанию компиляция выполняется с включенными опциями »-Wformat -Wformat-security -Werror=format-security -fstack-protector-strong --param ssp-buffer-size=4 -O2 -D_FORTIFY_SOURCE=2 -fPIC -fno-strict-overflow», а компоновка с опциями »-z relro -z bindnow»;
  • Переработана поддержка grsecurity/PaX. В дистрибутиве теперь предлагается одно универсальное ядро Linux, для включения grsecurity в котором следует установить опцию «security.grsecurity.enable = true»;
  • Добавлена поддержка загрузки по сети с использованием PXE;
  • Обновлены версии программ, в том числе X.org server 1.18, Glibc 2.24, GCC 5.4.0 и systemd 231;
  • Добавлено более 50 новых сервисов, среди которых tmux, amdgpu, spacefm, emacs, packagekit, pptpd, xe-guest-utilities.

При использовании Nix пакеты устанавливаются в отдельное дерево директорий /nix/store или поддиректорию в каталоге пользователя. Например, пакет устанавливается как /nix/store/f6dvq84289f324959bh52r9vf7a0n3-firefox-48.0.0/, где «f6dvq8…» является уникальным идентификатором пакета, используемым для контроля зависимостей. Пакеты оформляются в виде контейнеров, содержащих необходимые для работы приложений компоненты. Между пакетами возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Возможна как загрузка готовых бинарных пакетов из репозитория (при установке обновлений к бинарным пакетам загружаются только delta-изменения), так и сборка из исходных текстов со всеми зависимостями. Коллекция пакетов представлена в специальном репозитории Nixpkgs.

© OpenNet