Доступен пакетный менеджер GNU Guix 1.1 и дистрибутив на его основе
15 апреля 2020 года
Состоялся релиз пакетного менеджера GNU Guix 1.1 и построенного на его основе дистрибутива GNU/Linux. Для загрузки сформированы образы для установки на USB Flash (241 Мб)и использования в системах виртуализации (479 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7 и aarch64.
Дистрибутив допускает установку как в качестве обособленной ОС в системах виртуализации, в контейнерах и на обычном оборудовании, так и запуск в уже установленных дистрибутивах GNU/Linux, выступая в роли платформы для развёртывания приложений. Пользователю предоставляются такие функции, как учёт зависимостей, повторяемые сборки, работа без root, откат на прошлые версии в случае проблем, управление конфигурацией, клонирование окружений (создание точной копии программного окружения на других компьютерах) и т.п.
Основные новшества:
- Добавлена новая команда "guix deploy", предназначенная для развёртывания разом начинки нескольких компьютеров, например, новых окружений в VPS или удалённых систем, доступных по SSH.
- Авторам сторонних репозиториев пакетов (каналов) предоставлены средства для написания новостных сообщений, которые пользователь может прочитать при выполнении команды "guix pull --news".
- Добавлена команда "guix system describe", дающая возможность при развёртывании оценить изменения между двумя разными экземплярами системы.
- В команду "guix pack" добавлена поддержка генерации образов для Singularity и Docker.
- Добавлена команда "guix time-machine", позволяющая откатиться до любого выпуска пакета, сохранённого в архиве Software Heritage.
- В "guix system" добавлена опция "--target", предоставляющая частичную поддержку кросс-компиляции;
- Обеспечено выполнение Guix с использованием Guile 3, что положительно отражается на производительности.
- Граф зависимостей пакетов ограничен сокращённым набором бинарных исходных компонентов сборки (seed), что является большим шагом к реализации полностью проверяемого бутстрэппинга (bootstrap).
- Реализован фреймворк для автоматизированного тестирования графического инсталлятора. Инсталлятор теперь собирается в системе непрерывной интеграции и тестируется в разных конфигурациях (шифрованный и обычный корневой раздел, установка с рабочими столами и т.п.).
- Добавлены сборочные системы для Node.js, Julia и Qt, упрощающие написание пакетов для связанных с данными проектами приложений.
- Добавлены новые системные сервисы auditd, fontconfig-file-system, getmail, gnome-keyring, kernel-module-loader,
knot-resolver, mumi, nfs, nftables, nix, pagekite, pam-mount, patchwork, polkit-wheel, provenance, pulseaudio, sane, singularity, usb-modeswitch
- Обновлены версии программ в 3368 пакетах, добавлено 3514 новых пакетов. В том числе обновлены версии xfce 4.14.0, gnome 3.32.2, mate 1.24.0, xorg-server 1.20.7, bash 5.0.7, binutils 2.32, cups 2.3.1, emacs 26.3, enlightenment 0.23.1,
gcc 9.3.0, gimp 2.10.18, glibc 2.29, gnupg 2.2.20, go 1.13.9, guile 2.2.7, icecat 68.7.0-guix0-preview1, icedtea 3.7.0, libreoffice 6.4.2.2, linux-libre 5.4.31, , openjdk 12.33, perl 5.30.0, python 3.7.4, rust 1.39.0.
Напомним, что пакетный менеджер GNU Guix основан на наработках проекта Nix и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории Nixpkgs. Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42a5878f3a0b426064a2b64a0c6f92-firefox-75.0.0/, где "f42a58..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 9.3. В качестве системы инициализации используется сервисный менеджер GNU Shepherd ( бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 13162 готовых пакета, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, рабочий стол Xfce, а также подборка графических приложений.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.