Доступен пакетный менеджер GNU Guix 1.1 и дистрибутив на его основе

Состоялся релиз пакетного менеджера GNU Guix 1.1 и построенного на его основе дистрибутива GNU/Linux. Для загрузки сформированы образы для установки на USB Flash (241 Мб)и использования в системах виртуализации (479 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7 и aarch64.

Дистрибутив допускает установку как в качестве обособленной ОС в системах виртуализации, в контейнерах и на обычном оборудовании, так и запуск в уже установленных дистрибутивах GNU/Linux, выступая в роли платформы для развёртывания приложений. Пользователю предоставляются такие функции, как учёт зависимостей, повторяемые сборки, работа без root, откат на прошлые версии в случае проблем, управление конфигурацией, клонирование окружений (создание точной копии программного окружения на других компьютерах) и т.п.

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

  • Добавлена новая команда «guix deploy», предназначенная для развёртывания разом начинки нескольких компьютеров, например, новых окружений в VPS или удалённых систем, доступных по SSH.
  • Авторам сторонних репозиториев пакетов (каналов) предоставлены средства для написания новостных сообщений, которые пользователь может прочитать при выполнении команды «guix pull --news».
  • Добавлена команда «guix system describe», дающая возможность при развёртывании оценить изменения между двумя разными экземплярами системы.
  • В команду «guix pack» добавлена поддержка генерации образов для Singularity и Docker.
  • Добавлена команда «guix time-machine», позволяющая откатиться до любого выпуска пакета, сохранённого в архиве Software Heritage.
  • В «guix system» добавлена опция »--target», предоставляющая частичную поддержку кросс-компиляции;
  • Обеспечено выполнение Guix с использованием Guile 3, что положительно отражается на производительности.
  • Граф зависимостей пакетов ограничен сокращённым набором бинарных исходных компонентов сборки (seed), что является большим шагом к реализации полностью проверяемого бутстрэппинга (bootstrap).
  • Реализован фреймворк для автоматизированного тестирования графического инсталлятора. Инсталлятор теперь собирается в системе непрерывной интеграции и тестируется в разных конфигурациях (шифрованный и обычный корневой раздел, установка с рабочими столами и т.п.).
  • Добавлены сборочные системы для Node.js, Julia и Qt, упрощающие написание пакетов для связанных с данными проектами приложений.
  • Добавлены новые системные сервисы auditd, fontconfig-file-system, getmail, gnome-keyring, kernel-module-loader, knot-resolver, mumi, nfs, nftables, nix, pagekite, pam-mount, patchwork, polkit-wheel, provenance, pulseaudio, sane, singularity, usb-modeswitch
  • Обновлены версии программ в 3368 пакетах, добавлено 3514 новых пакетов. В том числе обновлены версии xfce 4.14.0, gnome 3.32.2, mate 1.24.0, xorg-server 1.20.7, bash 5.0.7, binutils 2.32, cups 2.3.1, emacs 26.3, enlightenment 0.23.1, gcc 9.3.0, gimp 2.10.18, glibc 2.29, gnupg 2.2.20, go 1.13.9, guile 2.2.7, icecat 68.7.0-guix0-preview1, icedtea 3.7.0, libreoffice 6.4.2.2, linux-libre 5.4.31, , openjdk 12.33, perl 5.30.0, python 3.7.4, rust 1.39.0.

Напомним, что пакетный менеджер GNU Guix основан на наработках проекта Nix и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.

Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории Nixpkgs. Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.

Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42a5878f3a0b426064a2b64a0c6f92-firefox-75.0.0/, где «f42a58…» является уникальным идентификатором пакета, используемым для контроля зависимостей.

Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 9.3. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 13162 готовых пакета, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, рабочий стол Xfce, а также подборка графических приложений.


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

© OpenNet