Sortie du système de package autonome Flatpak 1.18.0

После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux et exécutée dans un conteneur spécial qui isole l'application du reste du système. La prise en charge des paquets Flatpak est assurée pour Fedora. CentOS, Debian, Arch LinuxGentoo, Linux Menthe, Alt Linux и UbuntuLes paquets Flatpak sont inclus dans le dépôt Fedora et sont pris en charge par les programmes de gestion d'applications standard GNOME et KDE.

Innovations clés dans la branche 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- Jeux lancés avec 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 Studio, etc.

Pour réduire la taille, seules les dépendances spécifiques à l'application sont incluses dans le package. Les bibliothèques système et graphiques de base (bibliothèques GTK, Qt, GNOME et KDE, etc.) sont fournies sous la forme d'environnements d'exécution standard de plug-ins. La principale différence entre Flatpak et Snap est que Snap utilise les composants de l'environnement système principal et une isolation basée sur le filtrage des appels système, tandis que Flatpak crée un conteneur séparé du système et fonctionne avec de grands ensembles d'exécution, fournissant non pas des packages en tant que dépendances, mais des packages standard. l'environnement du système (par exemple, toutes les bibliothèques nécessaires au fonctionnement des programmes GNOME ou KDE).

En plus de l'environnement système standard (runtime), installé via un référentiel spécial, des dépendances supplémentaires (bundle) nécessaires au fonctionnement de l'application sont fournies. Au total, « runtime » et « bundle » forment le contenu du conteneur, tandis que « runtime » est installé séparément et lié à plusieurs conteneurs à la fois, ce qui permet d'éviter la duplication des fichiers système communs aux conteneurs.

Un système peut avoir plusieurs « runtimes » différents installés (GNOME, KDE) ou plusieurs versions du même « runtime » (GNOME 50, GNOME 49). Un conteneur avec une application comme dépendance utilise une liaison uniquement avec un runtime spécifique, sans prendre en compte les packages individuels qui forment le runtime sélectionné. Tous les éléments manquants sont emballés directement avec l'application. Lors de la création d'un conteneur, le contenu du "runtime" est monté en tant que partition /usr et "bundle" est monté dans le répertoire /app.

Les conteneurs d'exécution et d'application sont construits à l'aide de la technologie OSTree, dans laquelle l'image est mise à jour atomiquement à partir d'un référentiel de type Git, ce qui permet d'appliquer des méthodes de contrôle de version aux composants de distribution (par exemple, vous pouvez rapidement restaurer le système à un état précédent). État). Les packages RPM sont traduits dans le référentiel OSTree à l'aide de la couche rpm-ostree.

L'installation et la mise à jour sélectives des packages dans l'environnement de travail ne sont pas prises en charge - le système n'est pas mis à jour au niveau des composants individuels, mais dans son ensemble, modifiant atomiquement son état. Fournit des outils pour appliquer les mises à jour de manière incrémentielle, éliminant ainsi le besoin de remplacer complètement l'image à chaque mise à jour.

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

Pour l'isolation, une couche de papier bulle et une méthode traditionnelle Linux Les technologies de virtualisation de conteneurs basées sur l'utilisation de cgroups, d'espaces de noms, de Seccomp et de SELinux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster