Konsep Flatpak

ID Aplikasi

Setiap aplikasi memerlukan ID aplikasi yang unik, berdasarkan nama domain yang dibalik. Misalnya org.gnome.Maps. Semua sumber daya yang diekspor oleh aplikasi harus diawali dengan pengidentifikasi ini. Ini mencakup berkas desktop, berkas appdata untuk aplikasi, dan ikon apa pun yang dirujuk oleh berkas desktop.

Appdata

Berkas appdata untuk Flatpak digunakan untuk menampilkan informasi tentang aplikasi sebelum instalasi. Lihat Pedoman Pengemasan Fedora untuk Berkas AppData.

Runtime dan pustaka terbundel

Ketika Flatpak dijalankan, berkas yang terlihat oleh aplikasi berasal dari dua tempat:

  • Runtime Flatpak, yang dipasang di /usr. Ini berisi pustaka dan berkas data yang digunakan bersama oleh semua Flatpak Fedora. Tersedia runtime untuk setiap rilis Fedora.

  • Aplikasi Flatpak, yang dipasang di /app. Ini berisi kode aplikasi itu sendiri, tetapi juga memuat pustaka apa pun yang dibundel bersama aplikasi. Aplikasi dan pustaka harus dibangun ulang dengan awalan ini — hal ini dilakukan dengan membangun ulang untuk flatpak.

Pembuatan RPM

Pengemasan flatpak di Fedora memanfaatkan proses pembuatan RPM. Aplikasi dan pustaka terbundel dibangun ulang di sistem build Fedora (Koji) dengan target build khusus — hal ini memberikan beberapa keuntungan:

  • Berkas spesifikasi RPM yang sama yang digunakan untuk membuat build RPM biasa juga digunakan untuk membuat build RPM Flatpak.

  • Target build RPM Flatpak memiliki konfigurasi buildroot yang berbeda dengan makro yang membuat RPM dibangun dengan awalan /app.

Perlu dicatat bahwa build RPM Flatpak tidak akan berfungsi di luar konteks Flatpak, karena dibangun ulang dengan awalan /app dengan nama yang sama seperti pustaka sistem — Anda tidak dapat menggunakan dnf install untuk menginstalnya.

Citra OCI

Untuk Fedora, runtime dan aplikasi Flatpak dibangun sebagai Citra OCI dan didistribusikan melalui https://registry.fedoraproject.org. Ini memungkinkan Flatpak ditangani dengan cara yang sangat mirip dengan kontainer sisi server. (Flatpak juga umum didistribusikan melalui ostree.)