Проект GNU анонсировал (http://lists.gnu.org/archive/html/guix-devel/2014-11/msg0037...) выпуск пакетного менеджера GNU Guix 0.8 (http://www.gnu.org/software/guix/) и построенного на его основе самодостаточного дистрибутива GNU/Linux. Дистрибутив может использоваться как в виртуализированных окружениях, так и на обычном оборудовании. При этом допускается установка не только в качестве обособленной ОС (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 (120 Мб).
Пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Пакеты оформляются в виде контейнеров, содержащих все необходимые для работы приложений компоненты и позволяющие запустить приложение без оглядки на состав базового системного окружения. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f6dvq84299f3249h8my6r9vs7a0n3-firefox-33.0.0/, где "f6dvq8..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre 3.17, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 4.9.2. В качестве системы инициализации используется сервисный менеджер GNU dmd (http://www.gnu.org/software/dmd/), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты dmd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовые образ поддерживает работу в консольном режиме, но для установки подготовлено (http://www.gnu.org/software/guix/package-list.html) более 500 готовых пакетов, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, а также ряд программ на базе библиотеки GTK+.
По сравнению с прошлым выпуском добавлено 162 новых пакета, обновлены версии 117 пакетов. В частности, добавлены такие пакеты, как abiword, zsh, eudev, lm-sensors, openjpeg, perf, rrdtool, ruby.
Задействованы новые версии программ, в том числе bash-4.3.30, coreutils-8.23, dbus-1.8.8, emacs-24.4, ffmpeg-2.4.3, gcc-4.9.2, glibc-2.20, gstreamer-1.0.10, gtk+-3.10.1, icecat-31.2.0, lua-5.2.3, mysql-5.1.73. Добавлена новая команда "guix environment (http://www.gnu.org/software/guix/manual/html_node/Invoking-g...)" для подготовки рабочего окружения, содержащего компоненты, необходимые для сборки указанного пакета. Реализованы новые команды для разработчиков: guix lint (http://www.gnu.org/software/guix/manual/html_node/Invoking-g...) и guix import (http://www.gnu.org/software/guix/manual/html_node/Invoking-g...). Добавлен новый сценарий ruby-build-system для сборки пакетов на языке Ruby.
Представлен (http://www.gnu.org/software/guix/manual/html_node/Emacs-Inte...) альтернативный пользовательский интерфейс для управления пакетами, построенный с использованием Emacs (guix.el) и позволяющий просматривать, искать и устанавливать интересующие приложения без манипуляций с утилитой guix из командной строки. Реализован (http://www.gnu.org/software/guix/manual/html_node/Security-U...) новый экспериментальный механизм быстрого развёртывания обновлений с устранением уязвимостей, без необходимости пересборки вышележащих зависимостей (например, после установки обновления к glibc или bash теперь не нужно пересобирать все остальные пакеты). В блоке настроек operating-system (http://www.gnu.org/software/guix/manual/html_node/operating_...) добавлены новые опции для определения раздела подкачки, маппинга блочных устройств, загрузки прошивок.
URL: https://savannah.gnu.org/forum/forum.php?forum_id=8147
Новость: http://www.opennet.dev/opennews/art.shtml?num=41083