Проект GNU опубликовал (http://lists.gnu.org/archive/html/info-gnu/2018-12/msg00003....) пакетный менеджер GNU Guix 0.16 (http://www.gnu.org/software/guix/) и построенный на его основе дистрибутив GNU/Linux - GuixSD (Guix System Distribution). Отмечается (https://www.gnu.org/software/guix/blog/2018/gnu-guix-and-gui.../), что, скорее всего, данный выпуск станет последним перед формированием знакового релиза 1.0, так как все основные цели (https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/...) уже достигнуты. Дистрибутив допускает установку как в качестве обособленной ОС (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 (190 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7, aarch64 и mips64el.
Основные новшества (https://www.gnu.org/software/guix/blog/2018/gnu-guix-and-gui.../):
- Добавлены новые системные сервисы для ddclient, gitolite, iptables, pcscd, prometheus-node-exporter и varnish;
- Обновлены версии программ в 1945 пакетах, добавлено 985 новых пакетов. В том числе обновлены версии gcc 8.2.0, ядро linux-libre 4.19.6, bash 4.4.23, binutils 2.31.1, cups 2.2.8, enlightenment 0.22.4, gdb 8.2, ghc 8.4.3, gimp 2.10.6, glibc 2.28, gnupg 2.2.11, go 1.11.1, icecat 60.3.0-gnu1, icedtea 3.7.0, libreoffice 6.1.3.2, , ocaml 4.07.1, octave 4.4.1, perl 5.28.0, python 3.7.0, rust 1.28.0, r 3.5.1,
xorg-server 1.20.3;
- Сервисный менеджер GNU Shepherd обновлён до версии 0.5.0 (https://www.opennet.ru/opennews/art.shtml?num=49344), в которой добавлена возможность определения замены сервисов, обеспечен перезапуск всех зависимых сервисов при перезапуске родительского сервиса и реализована функциональность для определения собственных действий в сервисах;
- В команде "guix system reconfigure" добавлена поддержка загрузки замен сервисов, определённых в Shepherd;
- Добавлены команды "herd schedule mcron" и "herd statistics nscd" доя отображения запланированных в cron заданий и статистики DNS-сервера nscd;
- Добавлен модуль "guix channels (http://guix.info/manual/en/Channels.html)", предоставляющий возможность подключения к сторонним репозиториям пакетов (каналам). Поддержка каталов добавлена в команду "guix pull". Список каналов задаётся через файл ~/.config/guix/channels.scm;
- Добавлена команда "guix pull --profile" для выбора активного профиля (по умолчанию ~/.config/guix/current), позволяющая (https://www.gnu.org/software/guix/blog/2018/multi-dimensiona.../) наладить параллельную работу с несколькими ревизиями;
- Добавлен модуль "guix describe (https://www.gnu.org/software/guix/manual/en/html_node/Invoki...)" и одноимённа команда для отображения используемых ревизий и каналов;
$ guix describe
Generation 10 Sep 03 2018 17:32:44 (current)
guix e0fa68c
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: e0fa68c7718fffd33d81af415279d6ddb518f727
- Добавлен (https://www.gnu.org/software/guix/manual/en/html_node/Inferi...) модуль "guix inferior" для взаимодействия с другими экземплярами (ревизиями репозитрия) Guix, что может применяться, например, для сборки пакета из другой ревизии Guix или отображения различий между ревизиями. Для вывода списка новых и обновлённых пакетов реализована новая команда "guix pull -l", для замены ревизии - "guix repl", а для просмотра запущенных guix-процессов - "guix processes". В Manifest-файлах теперь могут указываться ссылки на произвольные коммиты Guix;
- В команды для работы с пакетом добавлены опции "--with-branch" и "--with-commit", позволяющие извлечь пакет из Git-репозитория, используя определённую ветку или коммит;
- В утилитах командной строки обеспечен более наглядный вывод инфорамации с подсвечиванием важных событий. Из вывода команд "guix packagе" и "guix system" исключены логи сборки, а в "guix build" важные события при сборке выделены цветом;
- Добавлен модуль с поддержкой архива Software Heritage (https://www.softwareheritage.org/) и возможностью выполнения через него операций "git checkout";
- Обеспечена поддержка повторяемых сборок, позволяющих убедиться в тождественности бинарной сборки эталонным исходным текстам. В случае, если репозиторий из которого собран пакет перестал существовать, предоставлена возможность загрузки кода из архива Software Heritage;
- URL с репозиторием для загрузки уже собранных бинарных пакетов (substitute URL) изменён на https://ci.guix.info;
- В команды "guix import pypi", "guix import hackage" и "guix import stackage" добавлена опция "--recursive" для выполнения рекурсивных запросов;
- В число обязательных зависимостей к Guix включены модули Guile-Gcrypt и Guile-JSON;
- В дистрибутиве обеспечена самодостаточная (https://www.opennet.ru/opennews/art.shtml?num=49188) сборка (bootstrap) компилятора Rust (пакет mrustc) из исходных текстов;
- Добавлен модуль "guix status" для формирования индикатора прогресса выполнения операций;
- Добавлены новые сборочные системы: clojure и guile.
Напомним, что пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42d4878f3a0b426064a6a54a0c6f92-firefox-63.0.0/, где "f42d48..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарн...
URL: http://lists.gnu.org/archive/html/info-gnu/2018-12/msg00003....
Новость: https://www.opennet.ru/opennews/art.shtml?num=49735