Проект GNU опубликовал (http://lists.gnu.org/archive/html/info-gnu/2016-08/msg00002....) выпуск пакетного менеджера GNU Guix 0.11 (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 (152 Мб).Пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f6daq14249f3249h8my6r9vs7a0n3-firefox-48.0.0/, где "f6daq1..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre 4.4.16, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 6.1. В качестве системы инициализации используется сервисный менеджер GNU dmd (http://www.gnu.org/software/dmd/), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты dmd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовые образ поддерживает работу в консольном режиме, но для установки подготовлено (http://www.gnu.org/software/guix/package-list.html) более 3000 готовых пакетов, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, а также ряд программ на базе библиотеки GTK+.
Основные новшества:
- По сравнению с прошлым выпуском добавлено 484 новых пакетов, в том числе сформированы пакеты с erlang, Go, connman, cgit, gnome-shell-extensions, dia, supertux, большая порция новых модулей для emacs, perl, R и python;
- Обновлены версии программ в 678 пакетах, в том числе gnome-3.20.1, clang-3.8.1, enlightenment-0.21.1, wayland-1.11.0;
- Добавлены новые системные сервисы: urandom-seed-service, dicod-service, gc-root-service-type, mcron-service,
rngd-service, dropbear-service, pam-limits-service;- Java-пакеты снабжены префиксом "java-";- Реализованы новые модульные пакеты с Qt, пришедшие на смену монолитному пакету "qt";- Проведена работа по обеспечению повторяемых сборок, обеспечивающих одинаковых результат при повторных пересборках;
- В сборщик мусора "guix gc" добавлена опция "--free-space" и добавлена информация об освобождаемом дисковом пространстве;- В случае проблем с загрузкой кода приложения обеспечена возможность загрузки с запасных зеркал;- Заметно увеличена производительность построения профиля. В профиль включены БД XDG desktop и MIME;- Реализован интерфейс для определения местоположения пакетов для редактора Emacs (M-x guix-locations);- В команду "guix publish" добавлены новые опции "--ttl" и "--compression";- Для "guix refresh" представлен новый механизм обновления "hackage".
URL: http://lists.gnu.org/archive/html/info-gnu/2016-08/msg00002....
Новость: http://www.opennet.me/opennews/art.shtml?num=44916