После полутора лет разработки опубликована новая стабильная ветка инструментария Flatpak 1.18, предоставляющего систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux そして、アプリケーションをシステムの他の部分から隔離する特別なコンテナ内で実行されます。Fedora では Flatpak パッケージの実行がサポートされています。 CentOS, Debian、アーチ LinuxGentoo、 Linux ミント、オルト Linux и UbuntuFlatpakパッケージはFedoraのリポジトリに含まれており、標準のGNOMEおよびKDEアプリケーション管理プログラムでサポートされています。
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-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 スタジオなど
サイズを削減するために、アプリケーション固有の依存関係のみがパッケージに含まれています。基本的なシステム ライブラリとグラフィック ライブラリ (GTK、Qt、GNOME、KDE ライブラリなど) は、プラグイン標準ランタイム環境の形式で提供されます。 Flatpak と Snap の主な違いは、Snap はメイン システム環境のコンポーネントを使用し、フィルタリング システム コールに基づいて分離するのに対し、Flatpak はシステムとは別のコンテナを作成し、大規模なランタイム セットで動作し、パッケージを依存関係として提供するのではなく、標準で提供することです。システム環境 (たとえば、GNOME または KDE プログラムの動作に必要なすべてのライブラリ)。
特別なリポジトリを通じてインストールされる標準システム環境 (ランタイム) に加えて、アプリケーションの動作に必要な追加の依存関係 (バンドル) が提供されます。全体として、「ランタイム」と「バンドル」はコンテナーのコンテンツを形成しますが、「ランタイム」は個別にインストールされ、一度に複数のコンテナーに関連付けられるため、コンテナーに共通するシステム ファイルの重複を避けることができます。
50 つのシステムに、複数の異なる「ランタイム」 (GNOME、KDE) または同じ「ランタイム」の複数のバージョン (GNOME 49、GNOME XNUMX) をインストールすることができます。依存関係としてアプリケーションを持つコンテナーは、選択したランタイムを形成する個々のパッケージを考慮せずに、特定のランタイムへのバインディングのみを使用します。不足している要素はすべてアプリケーションに直接パッケージ化されます。コンテナを作成すると、「runtime」の内容は /usr パーティションとしてマウントされ、「bundle」は /app ディレクトリにマウントされます。
ランタイム コンテナとアプリケーション コンテナは、OSTree テクノロジを使用して構築されます。このテクノロジでは、イメージが Git のようなリポジトリからアトミックに更新され、バージョン管理メソッドを配布コンポーネントに適用できます (たとえば、システムを以前の状態にすばやくロールバックできます)。州)。 RPM パッケージは、rpm-ostree レイヤーを使用して OSTree リポジトリに変換されます。
作業環境内でのパッケージの選択的なインストールと更新はサポートされていません。システムは個々のコンポーネントのレベルではなく、全体として更新され、その状態がアトミックに変更されます。更新を段階的に適用するためのツールを提供し、更新のたびにイメージを完全に置き換える必要がなくなります。
Формируемое изолированное окружение не зависит от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, а также не может напрямую обращаться к оборудованию, за исключением вывода через DRI. Вывод графики и организация ввода реализованы при помощи протокола Wayland или через проброс сокета X11. Взаимодействие с внешней средой построено через систему обмена сообщениями DBus и специальный API Portals.
断熱材として、気泡緩衝材の層と従来の Linux cgroups、namespaces、Seccomp、SE を使用したコンテナ仮想化技術Linux. При создании пакета изоляция может быть отключена, чем пользуются разработчики некоторых пакетов для получения полного доступа к ФС и всем устройствам в системе.
出所: オープンネット.ru
