Доступний пакетний менеджер GNU Guix 1.0 та дистрибутив GuixSD на його основі

Відбувся реліз пакетного менеджера GNU Guix 1.0 та побудованого на його основі дистрибутива GuixSD GNU/Linux (Guix System Distribution). Значна зміна номера версії обумовлена ​​завершенням реалізації всіх цілей, поставлених на формування знакового релізу. Випуск підбив підсумок семи років роботи над проектом та визнаний готовим для повсякденного використання. Для завантаження сформовані образи для встановлення на USB Flash (243 Мб) та використання в системах віртуалізації (474 ​​Мб). Підтримується робота на архітектурах i686, x86_64, armv7 та aarch64.

Дистрибутив допускає встановлення як як відокремленою ОС у системах віртуалізації, у контейнерах та на звичайному обладнанні, так і запуск у вже встановлених дистрибутивах GNU/Linux, виступаючи у ролі платформи для розгортання додатків. Користувачеві надаються такі функції, як облік залежностей, повторювані зборки, робота без root, відкат на минулі версії у разі проблем, керування конфігурацією, клонування оточень (створення точної копії програмного оточення на інших комп'ютерах) тощо.

Основні нововведення:

  • Доданий новий інтерактивний інсталятор, що працює у текстовому режимі;

    Доступний пакетний менеджер GNU Guix 1.0 та дистрибутив GuixSD на його основі

  • Підготовлений новий образ для віртуальних машин, придатний як ознайомлення з дистрибутивом, так створення робочих оточень розробки;
  • Додані нові системні сервіси cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent та zabbix-server;
  • Оновлено версії програм у 2104 пакетах, додано 1102 нових пакетів. У тому числі оновлено версії clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3,
    gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1,
    guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4,
    libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1,
    octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0,
    sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1 та xorg-server 1.20.4;

  • Сервісний менеджер GNU Shepherd оновлено до версії 0.6, в якій реалізований режим роботи сервісів one-shot, при якому сервіс відразу після успішного запуску позначається зупиненим, що може знадобитися для запуску одноразових робіт перед іншими сервісами, наприклад, для чищення або ініціалізації;
  • Для команди "guix package" додані типові для інших пакетних менеджерів псевдоніми "install", "remove", "upgrade" та "search". Для пошуку пакета можна використовувати команду "guix search", для встановлення "guix install", а для оновлення "guix pull" та "guix upgrade";
  • У пакетний менеджер додано індикатор прогресу виконання операцій та підсвічування кольорами діагностичних повідомлень. За замовчуванням більшість команд тепер запускається без детального виведення на екран, який включається окремою опцією "-v" (verbosity);
  • У пакетний менеджер guix додана нова команда "guix system delete-generations" та опції "guix pack -save-provenance", "guix pull -news", "guix environment -preserve", "guix gc -list-roots", "guix gc-delete-generations», «guix weather-coverage»;
  • Додані нові опції перетворення пакетів "-with-git-url" і "-with-branch";
  • У дистрибутив додано конфігураційні поля "keyboard-layout" для визначення розкладки клавіатури, "xorg-configuration" для налаштування X-сервера, "label" для мітки розділу та "essential-services" для визначення основних сервісів;
  • Додана команда «guix pack -RR» для створення tar-архівів з файлами, що переміщуються виконуються, які можуть запускатися як щодо шляхів у просторі імен користувача, так і щодо PRoot;
  • У "guix pull" забезпечено формування кешу пакетів для прискорення операцій пошуку на ім'я та забезпечене вбудовування пакету "glibc-utf8-locales";
  • Забезпечено повну повторюваність (біт у біт) ISO-образів, що генеруються командою «guix system»;
  • Як менеджер входу задіяний GDM замість SLiM;
  • Припинено підтримку збірки Guix з використанням Guile 2.0.

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

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

Складальне оточення для пакетів формується у вигляді контейнера, що містить всі необхідні для додатків компоненти, що дозволяє сформувати набір пакетів, здатний працювати без огляду на склад базового системного оточення дистрибутива, в якому Guix використовується в якості надбудови. Між пакетами Guix можливе визначення залежностей, для пошуку наявності вже встановлених залежностей використовується сканування хеш-ідентифікаторів в директорії встановлених пакетів. Пакети встановлюються в окреме дерево директорій або піддиректорію в каталозі користувача, що дозволяє забезпечити його паралельне співіснування з іншими пакетними менеджерами та забезпечити широкий спектр існуючих дистрибутивів. Наприклад, пакет встановлюється як /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, де «f42d58…» є унікальним ідентифікатором пакета, який використовується для контролю залежностей.

Дистрибутив включає лише вільні компоненти та поставляється з ядром GNU Linux-Libre, очищеним від невільних елементів бінарних прошивок. Для збирання застосовується GCC 8.3. Як система ініціалізації використовується сервісний менеджер GNU Shepherd (колишній dmd), що розвивається як альтернатива SysV-init з підтримкою залежностей. Керуючий демон та утиліти Shepherd написані мовою Guile (одна з реалізацій мови Scheme), яка також використовується і для визначення параметрів запуску сервісів. Базовий образ підтримує роботу в консольному режимі, але для встановлення підготовлено 9714 готових пакетів, серед яких компоненти графічного стека на базі X.Org, віконні менеджери dwm і ratpoison, робочий стіл Xfce, а також добірка графічних додатків.

Джерело: opennet.ru

Додати коментар або відгук