Vydanie systému samostatných balíkov Flatpak 1.18.0

После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux a spustené v špeciálnom kontajneri, ktorý izoluje aplikáciu od zvyšku systému. Pre Fedoru je zabezpečená podpora pre spúšťanie balíkov Flatpak, CentOS, Debian, Oblúk Linux, Gentoo, Linux Mäta, Alt Linux и UbuntuBalíky Flatpak sú súčasťou repozitára Fedora a sú podporované v štandardných programoch na správu aplikácií GNOME a KDE.

Kľúčové inovácie v pobočke Flatpak 1.18:

  • Реализована поддержка условных полномочий (conditional permission), позволяющих при запросе полномочий проверить наличие определённых возможностей в системе или в runtime. Например, при необходимости получения доступа к устройству ввода вместо «—device=all» можно запросить полномочие «—device-if=all:!has-input-device —device=input», которое предоставит доступ только к устройствам ввода или откатится на доступ ко всем устройствам если выборочное предоставление доступа не поддерживается в runtime. Аналогично можно запросить доступ к USB-устройвствам («has-usb-device» и «has-usb-portal») или совместно используемым подсистемам.
  • Разрешён доступ к устройству /dev/ntsync для обращения к
    модулю ядра NTSYNC, реализующему набор примитивов для синхронизации, применяемых в ядре Windows NT и позволяющих существенно поднять производительность Windows-hry spustené pomocou Wine.
  • Для GPU Intel Xe включена поддержка API VA-API для аппаратного ускорения декодирования видео.
  • Реализована возможность доступа к устройству /dev/kfd (Kernel Fusion Driver) с использованием полномочий, предоставляемых для DRI-устройств. Драйвер kfd реализует интерфейс для прямого выполнения вычислений на GPU AMD из приложений, использующих AMD ROCm, HIP и OpenCL.
  • Добавлена поддержка использования опций командой строки для проброса доступа к каталогам в изолированные приложения.
  • Добавлена поддержка каталога «preinstall.d», определяющего список предустанавливаемых Flatpak-приложений (для включения Flatpak-приложений в состав операционной системы).
  • Разрешена прямая установка приложений из образов контейнеров в формате OCI, которые могут загружаться из собственных OCI-репозиториев и локальных архивов.
  • В команду «flatpak install —from» добавлена поддержка URI «flatpak+https://».
  • В команду «flatpak run» добавлена опция «—clear-env» для очистки переменных окружения перед запуском приложения.
  • Предоставлена возможность экспорта корневого каталога хост-окружения в изолированное окружение приложения с доступом через каталог /run/host/root.
  • Добавлена возможность вывода результата выполнения команд в формате JSON.
  • Усилена изоляция сборочного окружения — команда «flatpak build» теперь не предоставляет по умолчанию доступ к хосту.
  • Добавлена команда «reinstall» для переустановки зависимостей (bundle).
  • Настройки D-Bus по умолчанию перенесены из каталога /etc в /usr.
  • Сокращено время запуска при использовании командного интерпретатора fish.
  • В libflatpak добавлена функция для получения информации о времени создания конфигурации, что позволяет приложениям, таким как GNOME Software, определить, что прокэшированные ими данные требуют обновления.
  • Удалена сборочная опция http_backend, вместо libsoup2 для загрузки по HTTP/HTTPS задействована библиотека libcurl.
  • По умолчанию включено использование escape-последовательностей для индикации прогресса выполнения операции.
  • Разрешено передавать права доступа к устройствам во вложенные sandbox-окружения, созданные через порталы Flatpak.
  • Для приложений, поставляемых в форме OCI-образов, реализован механизм «extra-data», например, позволяющий организовать воспроизведение видео h.265 во Flatpak-пакетах Fedora Linux.
  • Добавлена поддержка сжатия зависимостей (OCI bundle) с использованием алгоритма zstd, более эффективно сжимающего данные. По умолчанию для сжатия продолжает использоваться gzip, обеспечивающий максимальную совместимость.

Flatpak упрощает распространение программ, не входящих в штатные репозитории дистрибутивов, за счёт подготовки одного универсального контейнера, избавляющего разработчиков программ от необходимости формировать отдельные сборки для каждого дистрибутива. Пользователям, заботящимся о безопасности, Flatpak даёт возможность выполнить вызывающее сомнение приложение в контейнере, предоставив выборочный доступ только к необходимым сетевым функциям и файлам пользователя. Пользователям, интересующимся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений без необходимости внесения изменений в систему. Например, Flatpak-пакеты собираются для LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Štúdio atď.

Na zmenšenie veľkosti sú v balíku zahrnuté iba závislosti špecifické pre aplikáciu. Základné systémové a grafické knižnice (GTK, Qt, GNOME a KDE knižnice atď.) sú dodávané vo forme zásuvných štandardných runtime prostredí. Kľúčový rozdiel medzi Flatpak a Snap je v tom, že Snap používa komponenty hlavného systémového prostredia a izoláciu založenú na filtrovaní systémových volaní, zatiaľ čo Flatpak vytvára kontajner oddelený od systému a pracuje s veľkými runtime sadami, pričom neposkytuje balíčky ako závislosti, ale štandard. systémové prostredie (napríklad všetky knižnice potrebné na fungovanie programov GNOME alebo KDE).

Okrem štandardného systémového prostredia (runtime), inštalovaného prostredníctvom špeciálneho úložiska, sú dodávané ďalšie závislosti (bundle) potrebné pre chod aplikácie. Celkovo „runtime“ a „bundle“ tvoria obsah kontajnera, zatiaľ čo „runtime“ je inštalovaný oddelene a viazaný na niekoľko kontajnerov naraz, čo vám umožňuje vyhnúť sa duplikácii systémových súborov spoločných pre kontajnery.

Jeden systém môže mať nainštalovaných niekoľko rôznych „runtime“ (GNOME, KDE) alebo niekoľko verzií toho istého „runtime“ (GNOME 50, GNOME 49). Kontajner s aplikáciou ako závislosťou používa väzbu len na konkrétny runtime, bez toho, aby bral do úvahy jednotlivé balíky, ktoré tvoria vybraný runtime. Všetky chýbajúce prvky sú pribalené priamo k aplikácii. Pri vytváraní kontajnera je obsah "runtime" pripojený ako oddiel /usr a "bundle" je pripojený do adresára /app.

Runtime a aplikačné kontajnery sú vytvorené pomocou technológie OSTree, v ktorej sa obraz atomicky aktualizuje z úložiska podobného Gitu, čo umožňuje aplikovať metódy riadenia verzií na komponenty distribúcie (napríklad môžete rýchlo vrátiť systém späť na predchádzajúci štát). Balíky RPM sa prekladajú do úložiska OSTree pomocou vrstvy rpm-ostree.

Selektívna inštalácia a aktualizácia balíkov v rámci pracovného prostredia nie je podporovaná - systém sa neaktualizuje na úrovni jednotlivých komponentov, ale ako celku, pričom sa atomicky mení jeho stav. Poskytuje nástroje na postupnú aplikáciu aktualizácií, čím sa eliminuje potreba úplne nahradiť obraz pri každej aktualizácii.

Формируемое изолированное окружение не зависит от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, а также не может напрямую обращаться к оборудованию, за исключением вывода через DRI. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено через систему обмена сообщениями DBus и специальный API Portals.

Na izoláciu sa používa vrstva bublinovej fólie a tradičné Linux technológie virtualizácie kontajnerov založené na použití cgroups, menných priestorov, Seccomp a SELinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster