Проект GNU опубликовал (http://lists.gnu.org/archive/html/guix-devel/2017-12/msg0010...) пакетный менеджер GNU Guix 0.14 (http://www.gnu.org/software/guix/) и построенного на его основе дистрибутива GNU/Linux - GuixSD (Guix System Distribution). Допускается установка как в качестве обособленной ОС (http://www.gnu.org/software/guix/manual/html_node/System-Ins...) в системах виртуализации и на обычном оборудовании, так и запуск (http://www.gnu.org/software/guix/manual/html_node/Installati...) в уже установленных типовых окружениях GNU/Linux. Для загрузки сформированы (ftp://alpha.gnu.org/gnu/guix/) образы для установки на USB Flash и использования в QEMU (190 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7, aarch64 и mips64el.Пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42d68df5d8a0b526064a6a54a7c6f02-firefox-57.0.0/, где "f42d68..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 7. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (https://www.gnu.org/software/shepherd/) (бывший dmd (https://www.gnu.org/software/shepherd/#history)), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовые образ поддерживает работу в консольном режиме, но для установки подготовлено (http://www.gnu.org/software/guix/package-list.html) более 6600 готовых пакетов, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, а также ряд программ на базе библиотеки GTK+.
Основные новшества:
- Установочный образ GuixSD теперь доступен в формате ISO-9660 и может быть использован как на DVD, так и на USB Flash (ранее поставлялся только образ для Flash). В состав установочного образа добавлен сервис sshd;
- В наборе ‘%desktop-services’ конфигуратор Wicd заменён на NetworkManager;
- В команду "guix system disk-image" добавлена поддержка создания образов в формате ISO-9660;
- В GuixSD представлен новый Bootloader API, обеспечивающий поддержку GRUB (UEFI, BIOS), U-Boot и Extlinux;
- В "guix system vm" вместо unionfs теперь используется overlayfs;
- TeX Live разделён на порцию мелких пакетов (texlive-*);
- Добавлена команда "guix system search" для поиска сервисов;
- Добавлены новые системы сборки "font", "meson", "minify", "scons" и "texlive". В cmake-build-system добавлена поддержка кросс-компиляции. Улучшена работа asdf-build-system, emacs-build-system,
ant-build-system и go-build-system;
- Команда "guix package" расширена показом сведений о числе загруженных данных, возможностью выявления на раннем этапе коллизий в пакетах, сортировкой пакетов по релевантности при поиске и предупреждением в случае недостаточного дискового пространства;
- В "guix pull" обеспечено извлечение кода напрямую из Git, используя Guile-Git;
- В guix-daemon добавлены новые опции "--listen", "--timeout", "--max-silent-time";
- Добавлена новая команда "guix weather";
- В "guix refresh" прекращено использование FTP для пакетов GNU и GNOME;
- Добавлена компанда "guix import json" для загрузки метаданных пакета в формате JSON;- В guix-daemon добавлена опция "--listen", полезная при установке Guix в кластере;
- Обновлены версии программ в 1403 пакетах, добавлено 1211 новых пакетов;
- Добавлены новые системные сервисы для certbot, fcgiwrap, gdm, git-http, knot, libvirt, memcached, mongodb, mpd, murmur, rsync, tailon и sysctl.
URL: http://lists.gnu.org/archive/html/guix-devel/2017-12/msg0010...
Новость: http://www.opennet.dev/opennews/art.shtml?num=47703