Софт

Опубликован пакетный менеджер GNU Guix 0.12 и дистрибутив GuixSD на его основе

Проект GNU представил

выпуск пакетного менеджера GNU Guix 0.12
и построенного на его основе дистрибутива GNU/Linux — GuixSD (Guix System Distribution). Допускается установка как в качестве обособленной ОС в системах виртуализации и на обычном оборудовании, так и запуск в уже установленных типовых окружениях GNU/Linux. Для загрузки сформированы образы для установки на USB Flash и использования в QEMU (150 Мб). Поддерживается работа на архитектурах i686, x86_64, mips64el и armv7.

Пакетный менеджер GNU Guix основан на наработках проекта Nix и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.

Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории Nixpkgs. Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.

Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42dd9df5d6a0b526066a4e54b7a6c02-firefox-50.0.0/, где «f42dd9…» является уникальным идентификатором пакета, используемым для контроля зависимостей.

Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre 4.4.36, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 6.2. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовые образ поддерживает работу в консольном режиме, но для установки подготовлено более 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.
HelpUTeam

Recent Posts

Windows 10 стала работать медленнее после установки обновления? Исправим это

Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…

3 года ago

Описание приложения-чата по приглашениям Clubhouse

Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…

3 года ago

Изменение почтового клиента по умолчанию в iOS 14 на Outlook, Spark, Gmail и другие

Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…

4 года ago

Включение пузырей уведомлений в чатах на Android 11

В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…

4 года ago

Как настроить беспроводную отладку в Android 11

От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…

4 года ago

Главные проблемы Android 11 Beta и следует ли устанавливать её

Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…

4 года ago