Основні поняття Flatpak

Ідентифікатор програми

Кожній програмі потрібен унікальний ідентифікатор програми ID, який заснований на зворотньому доменному імені. Для прикладу org.gnome.Maps. Усі ресурси, які експортовані програмою, повинні бути встановлені з використанням цього ідентифікатора. Сюди входить desktop file, файл програми для самої програми та будь-які іконки, на які посилається файл робочого столу.

Appdata

Файл програми для Flatpak використовується для відображення інформації про програму перед встановленням. Див. Fedora Packaging Guidelines for AppData Files.

Середовища виконання і пов’язані бібліотеки

При виконанні програми з Flatpak, файли, які бачить програма, зберігаються у двох місцях:

  • Flatpak runtime, mounted at /usr. Тут містяться бібліотеки та файли даних, якими спільно користуються всі Fedora Flatpaks. Для кожної версії Fedora існує одна версія виконання.

  • Flatpak application, mounted at /app. Тут міститься сам код програми, а також тут містяться будь-які бібліотеки, які входять у комплект програми. Програма та бібліотеки повинні бути перебудовані з цим префіксом - це робиться шляхом включення їх у модуль.

Модулі

При пакуванні flatpak у Fedora використовується модульність. Програма і пов’язані із нею бібліотеки збираються у модуль — це надає декілька переваг:

  • У модуля є власні налаштування кореневої теки збирання із макросами, які роблять так, що RPM у модулі збираються із префіксом /app.

  • Автор програми контролює окремі версії бібліотек, які входять до складу. Навіть якщо ваша програма побудована під час життєвого циклу f33, ви можете використовувати бібліотеки з нової чи старої версії Fedora, якщо цього вимагає ваша програма.

Зауважте, що модулі Flatpak не працюватимуть поза контекстом Flatpak, оскільки вони містять RPM, перебудовані з префіксом /app з тим самим ім’ям, що і системні бібліотеки. У вас небуде можливості використання dnf module enable для їх встановлення.

Образи OCI

Середовища виконання і програми Flatpak для Fedora збирають як образи OCI і поширюють за допомогою https://registry.fedoraproject.org. Це надає змогу працювати з Flatpak у спосіб, який є дуже подібним до контейнерів на боці сервера. (Крім того, пакунки Flatpak поширюються за допомогою ostree.)