Разработчики сообщества GNU представили проект GNU Guix, в рамках которого началось развитие нового пакетного менеджера и основанного на нём свободного дистрибутива приложений GNU. Для тестирования доступен первый альфа-выпуск проекта, который поставляется с небольшим набором пакетов, составляющих дистрибутив Guix. В настоящее время дистрибутив не поддерживает формирование отдельной загружаемой системы и поставляется как набор пакетов с приложениями для установки в уже установленных GNU/Linux системах.

Анонсированный пакетный менеджер основан на наработках проекта Nix и кроме стандартных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы и средства уборки мусора (выявление и удаление неиспользуемых версий пакетов).

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

Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов (в примере выше "r8vvq9k...") в директории установленных пакетов. Поддерживается как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости.

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

Из планов по развитию проекта можно отметить выпуск в феврале или марте 2013 года версии с поддержкой средств для автоматического обновления пакетов и устранения коллизий при сборке, а также подготовка пакетов с графическими приложениями. В июне ожидается выпуск экспериментального загружаемого дистрибутива GNU/Linux-Libre, системная конфигурация в котором будет определяться на предметно-ориентированном языке. В сентябре планируется выпустить релиз GNU Guix 1.0, который будет поставляться с инсталлятором и будет пригоден для решения задач пользователей.

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