Концепции Flatpak

Идентификатор приложения

Каждому приложению необходим уникальный идентификатор приложения, основанный на обратном доменном имени. Например, org.gnome.Maps. Все ресурсы, экспортируемые приложением, должны иметь префикс этого идентификатора. Сюда входят desktop file, файл данных приложения и любые значки, на которые ссылается файл desktop.

Смотрите Picking an application ID.

Данные приложения

Файл данных приложения для Flatpak используется для отображения информации о приложении перед установкой. См. Fedora Packaging Guidelines for AppData Files.

Среды выполнения и связанные библиотеки

Когда Flatpak выполняется, файлы, которые видит приложение, поступают из двух мест:

  • Среда выполнения Flatpak, смонтированная в /usr. Она содержит библиотеки и файлы данных, общие для всех пакетов Flatpak Fedora. Для каждого выпуска Fedora существует одна среда выполнения.

  • Приложение Flatpak, смонтированное в /app. Оно содержит код самого приложения, а также любые библиотеки, включённые в состав приложения. Приложение и библиотеки должны быть пересобраны с этим префиксом — это делается путём их пересборки для flatpak.

Сборки RPM

Упаковка flatpak в Fedora использует сборки RPM. Приложение и включённые библиотеки пересобираются в системе сборки Fedora (Koji) со специальной целью сборки — это даёт несколько преимуществ:

  • Тот же spec-файл RPM, который используется для создания обычной сборки RPM, также используется для создания сборки RPM для Flatpak.

  • Цель сборки Flatpak RPM имеет другую конфигурацию buildroot с макросами, в результате чего RPM собираются с префиксом /app.

Обратите внимание, что сборки RPM для Flatpak не будут работать вне контекста Flatpak, поскольку они пересобираются с префиксом /app и имеют те же имена, что и системные библиотеки — вы не можете использовать dnf install для их установки.

Образы OCI

В Fedora среды выполнения и приложения Flatpak собираются как образы OCI и распространяются через https://registry.fedoraproject.org. Это позволяет обрабатывать Flatpak так же, как и серверные контейнеры. (Flatpak также обычно распространяются через ostree.)