Concepts de base#

Flatpake peut être compris à travers un petit nombre de concepts clé. Il est utile d’être familiers avec ceux-ci avant d’apprendre comment utiliser Flatpak à partir de la ligne de commande ou de l’utiliser pour construire des applications.

_images/diagram.svg

Runtimes#

Les runtimes fournissent les dépendances de base utilisées par les applications. Chaque application doit être construite sur un runtime, et ce runtime doit être installé sur un système hôte pour que l’application s’exécute (Flatpak peut installer automatiquement le runtime requis par une application). Plusieurs runtimes différents peuvent être installés en même temps, y compris différentes versions du même runtime.

Les runtimes sont indépendants de la distribution et ne dépendent pas de versions de distribution particulières. Cela signifie qu’ils fournissent une base multi-distribution stable pour les applications et permettent aux applications de continuer à fonctionner indépendamment des mises à jour du système d’exploitation.

Bibliothèques groupées#

Si une application nécessite des dépendances qui ne sont pas dans son environnement d’exécution, elles peuvent être regroupées dans le cadre de l’application. Cela donne aux développeurs d’applications une flexibilité concernant les dépendances qu’ils utilisent, notamment en utilisant :

  • libraries that aren’t available in a runtime

  • different versions of libraries from the ones that are in a runtime

  • versions corrigées des bibliothèques

Bacs à sable#

Avec Flatpak, chaque application est construite et exécutée dans un environnement isolé, appelé « bac à sable » (sandbox). Chaque sandbox contient une application et son environnement d’exécution. Par défaut, l’application ne peut accéder qu’au contenu de son bac à sable. L’accès aux fichiers utilisateur, au réseau, aux sockets graphiques, aux sous-systèmes sur le bus et aux périphériques doit être explicitement autorisé. L’accès à d’autres choses, comme d’autres processus, est délibérément impossible.

Par nécessité, certaines ressources qui se trouvent à l’intérieur du bac à sable doivent être exposées à l’extérieur pour être utilisées par le système hôte. Celles-ci sont appelées « exports », car ce sont des fichiers qui sont exportés hors du bac à sable et incluent des éléments tels que le fichier et l’icône « .desktop » de l’application.

Portails#

Les portails sont un mécanisme par lequel les applications peuvent interagir avec l’environnement hôte à partir d’un bac à sable. Ils donnent la possibilité d’interagir avec des données, des fichiers et des services sans avoir besoin d’ajouter des autorisations de bac à sable.

Des exemples de fonctionnalités accessibles via des portails incluent l’ouverture de fichiers via une boîte de dialogue de sélection de fichiers ou l’impression. Les outils d’interface peuvent mettre en œuvre une prise en charge transparente des portails, de sorte que l’accès aux ressources en dehors du bac à sable fonctionnera de manière sécurisée et immédiate.

D’avantages d’informations à propos des portails peut être trouvés dans Sandbox Permissions.

Dépôts#

Les applications et les environnements d’exécution Flatpak sont généralement stockés et publiés à l’aide de dépôts, qui se comportent de manière très similaire aux dépôts Git. Un dépôt Flatpak peut contenir un seul objet ou plusieurs objets, et chaque objet est versionné, ce qui permet une mise à niveau et même une rétrogradation.

Chaque système qui utilise Flatpak peut être configuré pour accéder à n’importe quel nombre de dépôts distants. Une fois qu’un système a été configuré pour accéder à un « distant », le contenu du dépôt distant peut être inspecté et recherché, et il peut être utilisé comme source d’applications et de runtimes.

Lorsqu’une mise à jour est effectuée, les nouvelles versions des applications installées et des runtimes sont téléchargées à partir des dépôts concernés. Comme avec Git, seule la différence entre les versions est téléchargée, ce qui rend le processus très efficace.