Проект GNU анонсировал (http://lists.gnu.org/archive/html/info-gnu/2014-07/msg00009....) выпуск пакетного менеджера GNU Guix 0.7 (http://www.gnu.org/software/guix/) и построенного на его основе самодостаточного GNU/Linux дистрибутива. Начиная с выпуска 0.7 дистрибутив может использоваться, не только в виртуализированных окружениях, но и на реальном оборудовании, благодаря реализации (http://www.gnu.org/software/guix/manual/html_node/System-Ins...) инсталлятора. В дополнение к запускаемому в QEMU загрузочному образу (ftp://alpha.gnu.org/gnu/guix/) (120 Мб) началось формирование сборки для установки на USB Flash.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre 3.15, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 4.9.1. В качестве системы инициализации используется сервисный менеджер 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+.
По сравнению с прошлым выпуском добавлено 134 новых пакета, обновлены версии 87 пакетов. В частности, добавлены такие пакеты, как
busybox, udev, vlc, transmission, sudo, fish, gconf, gimp, gnumeric, kmod, mplayer, openmpi, wireless-tools и wpa-supplicant. Задействованы новые версии программ dmd-0.2, ffmpeg-2.3, gcc-4.9.1,
gnupg-2.0.25, gnutls-3.2.15, grep-2.20, gstreamer-0.10.36, gtk+-3.10.1, lua-5.2.3, openssl-1.0.1h, python-2.7.6, qemu-2.0.0, qt-5.2.1, texlive-2014, tor-0.2.4.22. В дополнение к архитектурам x86_64-linux и i686-linux началось формирование бинарных сборок пакетов для платформы mips64el-linux.
Пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Пакеты оформляются в виде контейнеров, содержащих все необходимые для работы приложений компоненты и позволяющие запустить приложение без оглядки на состав базового системного окружения. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f6dvq84299f3249h8my6r9vs7a0n3-firefox-24.0.0/, где "f6dvq8..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
По сравнению с прошлым выпуском для команды "guix package" реализована опция "--show", а для команды "guix refresh" - опция "--list-dependent". Представлен новый модуль "guix gexp" c реализацией G-выражений (http://www.gnu.org/software/guix/manual/html_node/G_002dExpr...) - нового механизма для встраивания операций управления сборкой в блоки кода, выполняемые на стороне хоста. Модуль "gnu system" и связанные с ним модули переведены на использование G-выражений, что позволило заметно упростить их код и обеспечить более качественный контроль зависимостей при сборке.
Добавлены новые модули:
- guix build vm - поддержка образов виртуальных машин;
- guix build activation - активация системы;
- guix build syscalls;
- guix build install, gnu system install - компоненты инсталлятора;
- gnu system file-systems - для определения файловых систем;
- gnu - обобщает обращение к некоторым модулям "gnu *".
URL: http://lists.gnu.org/archive/html/info-gnu/2014-07/msg00009....
Новость: http://www.opennet.me/opennews/art.shtml?num=40278