GNU Guix 1.3 paketihaldur ja selle põhjal koostatud jaotamine on saadaval

Состоялся релиз пакетного менеджера GNU Guix 1.3 и построенного на его основе дистрибутива GNU/Linux. Для загрузки сформированы образы для установки на USB Flash (610 МБ) и использования в системах виртуализации (972 МБ). Поддерживается работа на архитектурах i686, x86_64, Power9, armv7 и aarch64.

Distributsioon võimaldab installimist nii eraldiseisva operatsioonisüsteemina virtuaalsüsteemides, konteinerites ja tavalises riistvaras kui ka käivitamist juba paigaldatud GNU/Linuxi distributsioonides, olles platvormiks rakenduste juurutamiseks. Kasutajatele pakutakse selliseid funktsioone nagu sõltuvuste haldamine, korduvad kogumid, töö ilma root-õiguseta, probleemide korral varasematele versioonidele tagasipöördumine, konfiguratsiooni haldamine, keskkondade kloonimine (täpsete programmikeskkondade koopia loomine teistel arvutitel) jne.

Põhilised uuendused:

  • Реализована начальная поддержка архитектуры POWER9 (powerpc64le-linux).
  • Предоставлена возможность использования декларативного режима развёртывания, при котором вместо серии команд «guix install» и «guix remove» запускается одна команда «guix package —manifest=manifest.scm» с определением в файле manifest.scm всех приложений, которые требуется установить. Для генерации манифеста на основе имеющегося профиля установки в команде «guix package» предложены опции «—export-manifest» и «—export-channels».
  • Добавлена опция трансформации пакетов «—with-latest», полезная для тех, кто хочет иметь самые свежие версии программ, даже если для приложения ещё не сформирован готовый пакет для Guix. Также добавлена опция «—with-patch» для сборки серии пакетов c применением патча к одному или нескольким из них.
  • В командах «guix» реализован вывод рекомендаций с предложением замен в случае опечатки или наличия альтернативных подкоманд. $ guix package —export-manifests guix package: error: export-manifests: unrecognized option hint: Did you mean `export-manifest’?
  • В «guix refresh» добавлена поддержка загрузки обновлений с хостинга SourceForge, а также режим generic-html для получения обновления с домашней страницы проекта.
  • Добавлена новая команда «guix import go» для рекурсивного импорта пакетов на языке Go с учётом зависимостей. В команде «guix import opam» реализована поддержка пакетов Coq. В «guix import crate» обеспечен учёт семантического версионирования в режиме рекурсивной загрузки. Удалена команда «guix import nix».
  • Проведена оптимизация установки предварительно собранных бинарных пакетов (substitute) и ускорена работа команды «guix system init».
  • В команду «guix environment» добавлена опция «—profile».
  • В guix-daemon добавлена опция «—discover» для обнаружения в локальной сети serverite, отдающих собранные бинарные пакеты (substitute), используя протоколы mDNS/DNS-SD. Для отправки анонсов с серверов в команду «guix publish» добавлена опция «—advertise».
  • Реализована возможность использования алгоритма Zstd для сжатия пакетов.
  • В режиме «—verbosity=1» прекращён вывод загружаемых URL.
  • Вместо подкоманд «disk-image» и «vm-image» предложена общая команда «guix system image».
  • В образе дистрибутива для virtuaalmasinad добавлена поддержка протокола SPICE.
  • В установочный скрипт добавлен режим автоматической инсталляции.
  • Добавлен сервис lvm-device-mapping для поддержки менеджера томов LVM (Linux Logical Volumne Manager).
  • Добавлен режим «guix system image -t rock64-raw» для генерации образов дистрибутива для плат Rock64.
  • В initrd по умолчанию включена поддержка bcachefs.
  • В сервере печати CUPS по умолчанию включён сервис «brlaser» для поддержки принтеров Brother.
  • Добавлены новые системные сервисы agate, cuirass-remote-worker, ipfs, keepalived, laminar, radicale, syncthing, transmission-daemon, wireguard, xorg-server.
  • Обновлены версии программ в 3100 пакетах, добавлено 2009 новых пакетов. В том числе обновлены версии gcc 10.3.0, glibc 2.31, GNOME 3.34.5, gnupg 2.2.27, go 1.14.15, guile 3.0.5, icecat 78.10.0-guix0-preview1, icedtea 3.7.0, inkscape 1.0.2, julia 1.5.3, libreoffice 6.4.7.2, linux-libre 5.11.15, ocaml 4.11.1, octave 6.2.0, openjdk 14.0, python 3.8.2, racket 8.0, rust 1.51.0, r 4.0.4, sbcl 2.1.3, Xfce 4.16.0 и xorg-server 1.20.10.
  • Устранена уязвимость CVE-2021-27851 в guix-daemon, позволяющая локальному пользователю поднять свои привилегии в системе. Проблема связана с тем, что во время выполнения команды «guix build» сборочный каталог оставался доступен всем на запись и пользователь мог создать жёсткую ссылку на файл, принадлежащий пользователю root и размещённый вне сборочного каталога, например, «/etc/shadow». Если при сборке была указана опция «—keep-failed» то в случае сбоя guix-daemon менял владельца для всего сборочного дерева на текущего пользователя, включая жёсткие ссылки.

Tulet meelde, et GNU Guix pakihaldur põhineb Nix projekti arendustel ja pakub lisaks traditsioonilistele pakihalduse funktsioonidele ka selliseid võimalusi nagu tehingupõhised uuendused, uuenduste tagasiviimise võimalus, töötamine ilma superkasutaja õigusteta, erikasutajatele seotud profiilide tugi, ühe rakenduse mitme versiooni samaaegne installimine ning prahi koristamise vahendid (kasutamata pakiversioonide tuvastamine ja eemaldamine). Rakenduste ehitusskeemide määratlemiseks ja pakireeglite koostamiseks soovitatakse kasutada spetsialiseeritud kõrgema taseme domeenispetsiifilist keelt ja Guile Scheme API komponente, mis võimaldavad pakihalduse kõiki toiminguid teha funktsionaalses programmeerimiskeeles Scheme.

Toetatakse Nix-pakihalduri jaoks ettevalmistatud pakettide kasutamist, mis asuvad Nixpkgs'i hoidlas. Lisaks pakettide haldamisele on võimalik luua skripte rakenduste konfiguratsiooni haldamiseks. Paketi koostamisel laaditakse automaatselt alla ja koostatakse kõik sellega seotud sõltuvused. On võimalik laadida valmis binaarpakette hoidlast või koostada need allikate tekstidest koos kõigi sõltuvustega. On rakendatud vahendeid, et hoida installitud programmide versioonid ajakohasena, korraldades värskenduste paigaldamist välisest hoidlast.

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

Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 9.3. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 17243 готовых пакета, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, рабочий стол Xfce, а также подборка графических приложений.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster