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

Материал из Викиновостей, свободного источника новостей

23 ноября 2020 года

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

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

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

  • Реализована возможность аутентификации репозиториев пакетов (каналов). "guix pull" и подобные команды теперь криптографически аутентифицируют извлекаемый из репозитория код, что защитает от получения из репозитория неавторизированных коммитов. Дополнительно добавлена команда "guix git authenticate", позволяющая использовать предложенный механизм аутентифиации для произвольных git-репозиториев.
  • В командах "guix pull" и "guix system reconfigure" реализовано определение и блокирование отката системы на старые версии, чтобы недопустить откат программ до уязвимых версий для эксплуатации исправленных уязвимостей.
  • Добавлен сервис автоматического обновления, который периодически запускает "guix pull" и "guix system reconfigure " для поддержания системы в актуальном состоянии.
  • Минимальный набор бинарных файлов для архитектур x86_64 и i686 сокращён до 60 МБ.
  • В сборочный процесс и программный интерфейс добавлена поддержка криптографичекских хэшей SHA-3 и BLAKE2s.
  • Повышено удобство работы графического инсталлятора и скрипта для установки Guix в окружении других дистрибутивов.
  • В guix search, guix system search и подобные команды добавлен режим постраничного просмотра.
  • В guix pull показан прогресс выполнения операции.
  • Сокращено время компиляции и снижено потребление ресурсов при выполнении команды "guix pull", благодаря задействованию нового компилятора, появившегося в Guile 3.0.4.
  • Добавлены три новых опции трансформации пакетов "--with-debug-info", "--with-c-toolchain" и "--without-tests".
  • В команде "guix pack -RR" появилась поддержка движка "fakechroot", позволяющего создавать перемещаемые пакеты, которые могут выполняться в окружениях без Guix.
  • В команде "guix system build" добавлена поддержка кросс-компиляции всей системы.
  • Добавлен сервис hurd-vm с кросс-компилированной системой

Guix GNU/Hurd, запускаемой в форме виртуальной машины в GNU/Linux. Началась работа по реализации родной поддержки GNU/Hurd.

  • Добавлен модуль "gnu image" и команда "guix system disk-image --image-type=TYPE" для работы с образами системы в форматах ISO-9660, qcow2 с pазделами ext4, ext2 с опциями Hurd и т.п.
  • В графический инсталлятор добавлена поддержка ФС NTFS.
  • Добавлены новые системные сервисы lxqt, udev-rules, hostapd, zram, autossh, webssh, ganeti, gmnisrv, guix-build-coordinator, guix-build-coordinator-agent, guix-build-coordinator-queue-builds, hurd-console, hurd-getty, hurd-vm, rshiny, secret-service,

simulated-wifi, unattended-upgrade.

  • Обновлены версии программ в 3652 пакетах, добавлено 1999 новых пакетов. В том числе обновлены версии GNOME 3.34.2, MATE 1.24.1, enlightenment 0.24.2, xfce 4.14.2,

xorg-server 1.20.8, bash 5.0.16,

gcc 10.2.0, gimp 2.10.22, glibc 2.31, go 1.14.10, inkscape 1.0.1, libreoffice 6.4.6.2, linux-libre 5.9.3, openjdk 14.0, python 3.8.2, rust 1.46.0.

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

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

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

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

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Доступен пакетный менеджер GNU Guix 1.2 и дистрибутив на его основе», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.