Концепции Flatpak

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

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

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

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

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

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

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

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

  • The Flatpak application, mounted at /app. This contains the application code itself, but also contains any libraries that are bundled with the application. The application and libraries must be rebuilt with this prefix - this is done by including them in your module.

Модули

Для пакетов Flatpak в Fedora используется Модульность. Приложение и связанные библиотеки встроены в модуль — это дает пару преимуществ:

  • The module has a different buildroot configuration with macros that result in RPMs in the module being built with a prefix of /app.

  • The application author is in control of the particular versions of libraries that are included. Even if your application is built on the f37 runtime, you can use libraries from a newer or older version of Fedora, if required by your application.

Note that Flatpak modules will not work outside the Flatpak context, since they contain RPMs rebuilt with a prefix of /app with the same name as system ibraries - you cannot use dnf module enable to install them.

Образы OCI

For Fedora, Flatpak runtimes and applications are built as OCI Images and distributed via https://registry.fedoraproject.org. This allows Flatpaks to be handled in a very similar way to server side containers. (Flatpaks are also commonly distributed via ostree.)