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

6 июля 2018 года

Проект GNU опубликовал пакетный менеджер GNU Guix 0.15 и построенный на его основе дистрибутив GNU/Linux - GuixSD (Guix System Distribution). Допускается установка как в качестве обособленной ОС в системах виртуализации и на обычном оборудовании, так и запуск в уже установленных типовых окружениях GNU/Linux. Для загрузки сформированы образы для установки на USB Flash и использования в QEMU (190 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7, aarch64 и mips64el.

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

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

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

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

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

  • В команде 'guix pack’ появилась возможность сборки образов со SquashFS и создания tar-архивов с перемещаемыми исполняемыми файлами;
  • Добавлены новые команды "guix system docker-image" и "guix offload status";
  • Для guix-daemon реализован набор правил SELinux и добавлена поддержка сборок ARMv7 на системах AArch64;
  • В "guix system" обеспечен вывод информации о модулях ядра, которые следует добавить в initrd, а также предупреждений о некорректно сопоставленных устройствах и нехватке дискового пространства
  • В настройку operating-system добавлено новое поле initrd-modules;
  • Пакеты для Python 2.x переименованы с "python" на "python2";
  • Возобновлена поддержка систем RHEL6 с ядром Linux 2.6;
  • Сервисный менеджер GNU Shepherd обновлён до версии 0.4.0 и теперь сохраняет логи через syslogd;
  • Добавлены новые системные сервисы для alsa, cat-avatar-generator, darkstat, dhcpd, dnsmasq, enlightenment, fprintd,

hpcguix-web, httpd, mate, modem-manager, openntpd, php-fpm, qemu-binfmt и wesnothd;

  • Обновлены версии программ в 2231 пакете, добавлено 1200 новых пакетов, в том числе android-bionic-uapi, daemontools, git-annex, keepalived, krita ,google-brotli, lyx, mate, qtwebview, vsftpd, wpa-supplicant-gui, wine-staging и youtube-viewer, а также большие подборки модулей для Emacs, Go, Java, R, Perl, Python и Haskell.

Источники

править


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

Комментарии

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