Основні поняття 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
. -
Автор програми контролює окремі версії бібліотек, які входять до складу. Навіть якщо ваша програма побудована під час життєвого циклу f37`, ви можете використовувати бібліотеки з нової чи старої версії Fedora, якщо цього вимагає ваша програма.
Зауважте, що модулі Flatpak не працюватимуть поза контекстом Flatpak, оскільки вони містять RPM, перебудовані з префіксом /app
з тим самим ім’ям, що і системні бібліотеки. У вас небуде можливості використання dnf module enable
для їх встановлення.
Образи OCI
Середовища виконання і програми Flatpak для Fedora збирають як образи OCI і поширюють за допомогою https://registry.fedoraproject.org. Це надає змогу працювати з Flatpak у спосіб, який є дуже подібним до контейнерів на боці сервера. (Крім того, пакунки Flatpak поширюються за допомогою ostree.)
Want to help? Learn how to contribute to Fedora Docs ›