====== Flatpak ====== {{ :dummy.png?75x75|}} **Flatpak** (anciennement connu sous le nom de **xdg-app**) est un système de distribution d'applications pour les systèmes d'exploitation Linux. Il permet de créer des paquets d'applications qui sont indépendants des distributions Linux et qui peuvent être installés et exécutés sur n'importe quelle distribution Linux prenant en charge **Flatpak**. Les applications **Flatpak** sont fournies avec toutes leurs dépendances, ce qui facilite leur installation et leur exécution. **Flatpak** est basé sur la technologie de conteneurisation pour assurer l'isolation de l'application et la sécurité. Il est également conçu pour faciliter la mise à jour et la distribution des applications, ainsi que pour permettre aux utilisateurs de gérer les différentes versions d'une application en même temps. **Flatpak** est de plus en plus utilisé par les développeurs et les éditeurs de logiciels pour distribuer des applications sur Linux, en particulier pour les applications qui ne sont pas disponibles dans les référentiels officiels des distributions Linux. ===== Commandes courantes ===== Voici quelques commandes courantes pour utiliser **Flatpak** en ligne de commande : -- Rechercher une application Flatpak disponible : flatpak search nom-de-l-application -- Installer une application Flatpak : flatpak install nom-de-l-application -- Mettre à jour une application Flatpak : flatpak update nom-de-l-application -- Supprimer une application Flatpak : flatpak uninstall nom-de-l-application -- Lister les applications Flatpak installées : flatpak list -- Lister les mises à jour disponibles pour les applications Flatpak : flatpak update --appstream -- Lancer une application Flatpak : flatpak run nom-de-l-application -- Afficher des informations détaillées sur une application Flatpak : flatpak info nom-de-l-application Ces commandes peuvent nécessiter des privilèges d'administration, et doivent donc être exécutées en tant que superutilisateur ou en utilisant la commande ''sudo''. ===== Technologie ===== Flatpak s'appuie sur des technologies existantes telles que cgroups, les espaces de noms (namespaces), les montages de liens (bind mounts) et seccomp dans le noyau Linux, OSTree du projet Atomic et le format OCI (Open Container Initiative) développé par l'initiative Open Container. Les **cgroups** permettent de limiter les ressources d'un processus, tels que l'utilisation de CPU, de mémoire ou de stockage. Les espaces de noms permettent de créer des environnements isolés pour les processus, de sorte que chaque processus pense qu'il est le seul processus sur le système. Les montages de liens permettent de monter des systèmes de fichiers à l'intérieur de conteneurs ou d'environnements de //sandboxing//. **seccomp** est un mécanisme de sécurité du noyau Linux qui permet de restreindre les appels système disponibles à un processus. Il peut être utilisé pour restreindre les appels système dangereux ou non nécessaires, ce qui améliore la sécurité de l'application. **OSTree** est une technologie de gestion des fichiers pour les systèmes de fichiers de type image. Il permet de gérer efficacement les mises à jour de fichiers, les instantanés et les versions des systèmes de fichiers, ce qui en fait une technologie idéale pour la distribution de paquets d'applications. Le **format OCI** est un format de conteneur standard pour les applications. Il définit une interface entre les outils de construction, de distribution et de déploiement de conteneurs, ce qui permet de garantir la portabilité des applications entre différents systèmes. **Flatpak** utilise une politiques de sécurité [[informatique:linux:system:sandbox|sandbox]] pour exécuter l'application, ce qui signifie que l'application est exécutée dans un environnement isolé, qui restreint son accès à certaines parties du système. Par exemple, l'application ne peut pas accéder aux fichiers de l'utilisateur en dehors de son espace de travail, et ne peut pas accéder aux périphériques système sans les autorisations appropriées. ===== Emplacement sur le système hôte ===== Lorsqu'un utilisateur installe une application **Flatpak** sur son système, les fichiers de l'application sont installés dans un répertoire spécifique sur le système de fichiers, qui est géré par le moteur **Flatpak**. Par défaut, les applications **Flatpak** sont installées dans le répertoire ''/var/lib/flatpak/app/''. Chaque application est installée dans son propre répertoire portant un nom généré automatiquement, qui correspond au nom de l'application et à sa version. Les exécutables de l'application sont installés dans le sous-répertoire ''current/'', tandis que les données de l'application sont stockées dans le sous-répertoire ''data/''. Les utilisateurs n'ont normalement pas besoin de connaître l'emplacement exact des fichiers d'application **Flatpak**, car ces fichiers sont gérés automatiquement par le moteur **Flatpak**. Les utilisateurs peuvent simplement lancer l'application depuis leur menu d'applications ou leur interface de bureau, comme ils le feraient avec n'importe quelle autre application. ===== Flatpak sous Fedora ===== La distribution **Fedora Linux** est réputé pour pas ne pas fournir des logiciels non libres et même rendre difficle d'accès à des composants non libres. Depuis **Fedora 35**, Fedora inclut une définition de référentiel **Flatpak** pour **Flathub** dans le paquet **fedora-flathub-remote**. Ce paquet ajoute un référentiel pointant vers //flathub.org// lorsque les **référentiels tiers sont activés** sur un système Fedora Linux via **GNOME Initial Setup** ou **GNOME Software**. **Ce référentiel est filtré** pour inclure uniquement des paquets spécifiquement approuvés par Fedora. (Si l'utilisateur installe manuellement le référentiel **Flathub**, le filtre est supprimé et le référentiel **Flathub** n'est plus géré en tant que référentiel tiers.). Les utilisateurs qui n'optent pas pour l'option **référentiels tiers**, ne voient aucun contenu de **Flathub**. Le référentiel **Flathub** actuel est filtré par une liste d'autorisations, de manière à ne rendre disponible qu'un sous-ensemble limité de logiciels de **Flathub**. {{ :informatique:linux:applications:pasted:20230227-220149.png}} A partir de Fedora 38, lors de l'utilisation du gestionnaire de logiciels graphique **GNOME Software**, les **Flatpak** de **Flathub** ne seront sélectionnés par défaut que s'il n'y a pas de **Flatpak Fedora** ou de **RPM** disponible. Dans **GNOME Software**, les utilisateurs pourront toujours sélectionner manuellement une source différente pour des applications individuelles. Le mécanisme de filtrage restera en place, et il sera possible de rétablir un filtre via une mise à jour de package, si nécessaire à l'avenir. Il a été indiqué qu'il est légalement acceptable de supprimer le filtrage du référentiel **Flathub** que Fedora rend disponible pour les utilisateurs qui optent pour cette option. L'interface utilisateur pour l'activation des référentiels de logiciels tiers indique clairement qu'ils contiennent des **logiciels propriétaires**. **GNOME Software** affiche des informations sur le caractère **open source** ou **propriétaire** des applications, de sorte que les utilisateurs puissent décider s'ils veulent les installer ou non. -- https://www.fedoraproject.org/wiki/Changes/UnfilteredFlathub