Проект GNU представил (http://lists.gnu.org/archive/html/guix-devel/2016-12/msg0085...) выпуск пакетного менеджера GNU Guix 0.12 (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 (150 Мб). Поддерживается работа на архитектурах i686, x86_64, mips64el и armv7.Пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42dd9df5d6a0b526066a4e54b7a6c02-firefox-50.0.0/, где "f42dd9..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre 4.4.36, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 6.2. В качестве системы инициализации используется сервисный менеджер 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) более 3000 готовых пакетов, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, а также ряд программ на базе библиотеки GTK+.
Основные новшества:
- По сравнению с прошлым выпуском добавлено 853 новых пакетов, в том числе сформированы пакеты с bind, clojure, dash, ecryptfs-utils, fcgi, gparted, kdevelop, kwayland, nfs-utils, openh264, p7zip, sddm, sendmail, snappy, utox, wayland-protocols, weston, xwayland. Добавлена большая порция новых модулей для Perl, R, Python, Emacs, Lua и Haskell;
- Обновлены версии программ в 864 пакетах, в том числе gnome-3.20.4, mate-desktop-1.16.1, bash-4.4.0, blender-2.78a, emacs-25.1, enlightenment-0.21.5, ffmpeg-3.2.2, perl-5.24.0, ruby-2.3.3, python-3.5.2, qt-5.6.2, windowmaker-0.95.7, wine-1.9.24, xorg-server-1.18.4;
- Добавлены новые системные сервисы: система печати на базе CUPS, SPICE vdagent, дисплейный менеджер SDDM, управление сеансами, реализация консоли в пространстве пользователя (kmscon), почтовый сервер на базе opensmtpd, Git, wpa-supplicant, rottlog, OpenSSH, Cuirass и набор сервисов для обеспечения работы с NFS;
- Представлен новый инструментарий для кросс-компиляции arm-none-eabi. Добавлена новая целевая архитектура для кросс-компиляции - i686-w64-mingw32 (MinGW);
- В команду 'guix system' добавлены новые операции 'switch-generation' и 'roll-back';
- В дистрибутиве GuixSD обеспечена возможность использования зашифрованного корневого раздела (используется LUKS);
- Добавлена поддержка установки в окружении GNU/Hurd;
- Монолитный пакет qt разделён на серию пакетов, с разбиением по модулям;
- Добавлена поддержка сборки Guix с использованием Guile 2.1/2.2;
- В пакетный менеджер добавлена новая опция "--with-graft" для трансформации пакетов (grafting);
- Добавлена поддержка системы сборки cargo и компоненты для импортирования пакетов для языка Rust;
- Добавлена поддержка системы сборки asdf для пакетов Common Lisp;
- Система сборки для Python переведена на использование по умолчанию setuptools;
- Реализована новая система обновления пакетов из ахрива CPAN.
URL: http://lists.gnu.org/archive/html/guix-devel/2016-12/msg0085...
Новость: http://www.opennet.me/opennews/art.shtml?num=45753