{{tag>Focal application paquet}}
{{ :icons:flatpak.png?direct&160|icône Flatpak}}
====== Flatpak, un format de paquets universel ======
**[[wpfr>Flatpak]]** est un système libre et communautaire pour la [[:gestionnaire_de_paquets|gestion de paquets]], le déploiement de logiciels, et l'isolement d'applications (//sandboxing//). Il peut être intégré aux [[:gestionnaire_de_paquets#les_gestionnaire_de_paquets_graphiques|logithèques graphiques]], ou utilisable en [[:commande_shell|ligne de commande]].
Le projet est mené par [[wpfr>Freedesktop.org]] depuis 2014, jadis sous le nom de ''xdg-app'', le but étant de faciliter la distribution d'applications directement par leurs développeurs sur toutes les distributions.
**Flatpak** permet aujourd'hui aux utilisateurs Linux d'accéder à un immense catalogue d'applications, et d'installer et de faire fonctionner chacune d'entre elles de manière sûre et facilitée :
* Le risque d'instabilité est moindre (les applications et leurs bibliothèques étant isolées, leur installation n'a pas d'effet sur le système).
* Il n'y a **plus de conflit de dépendances**, chaque application étant livrée indépendamment avec ses bibliothèques.
* Le risque pour la sécurité et la fuite de données privées est extrêmement réduit : chaque application Flatpak est isolée dans son "bac à sable" et requiert si nécessaire la [[:gerer flatpak#configuration_et_permissions_des_applications|permission de l'utilisateur]] pour accéder au matériel (webcam, clefs USB, ...) et aux fichiers personnels.
* **[[https://flathub.org/fr|Flathub]]**, le [[#Gestion des dépôts|dépôt]] le plus populaire, propose des milliers d'applications((plus de [[https://docs.flathub.org/blog/over-one-million-active-users-and-growing|2400 applications]] début 2024)), et leur soumission est soigneusement supervisée afin d'éviter l'introduction de logiciel malveillant. Ce dépôt unique permet aussi d'éviter la multiplication des risques comme c'est le cas avec l'ajout de [[:PPA|PPAs]] individuels.
* La distribution d'applications pour toutes les [[:distributions]] étant grandement simplifiées pour les développeurs, sans avoir recours aux mainteneurs de celles-ci, une bien plus grande quantité d'applications est disponible, partout, et plus rapidement (dans leurs dernières versions).
**Inconvénients**, en particulier par rapport au format [[:deb]] :
* Le démarrage des applications peut s'avérer un peu plus lent.
* L'espace de stockage exploité par les applications avec leurs dépendances individuelles est plus important.
* L'isolement en bac à sable requiert parfois de donner manuellement certaines [[:gerer flatpak#configuration_et_permissions_des_applications|permissions]] aux applications pour autoriser certaines de leurs fonctions, ce qui peut induire une complexité supplémentaire (mais qui est une fonctionnalité de sécurité).
Depuis 2017, beaucoup d'applications populaires ont été rendues disponibles au format Flatpak : [[:Blender]], [[:Skype]], [[:Spotify]], [[:LibreOffice]], [[:Pitivi]], certaines applications [[:KDE]], beaucoup d'applications [[:GNOME]], beaucoup d'applications //elementaryOS//, etc. On y trouve aussi des applications propriétaires pour Linux, comme [[:Zoom]] ou [[:Teams]].
**Flatpak** avec [[https://flathub.org/fr|Flathub]] est ainsi devenu le canal privilégié, et parfois exclusif((C'est le cas de [[https://usebottles.com/|Bottles]] et de nombreuses [[https://apps.gnome.org/fr/|applis pour GNOME]] par exemple.)) de nombreux développeurs et éditeurs, qui peuvent distribuer en un seul paquet leurs logiciels sur toutes les [[:distributions|distributions Linux]], en ayant la main sur l'environnement et les dépendances.
Le format **Flatpak** concerne exclusivement des applications de [[:environnements|bureau]]. Pour des applications en ligne de commande, des services, ou des applications [[:serveur]], on s'orientera plutôt vers **[[:deb]]**, **[[:snap]]**, ou éventuellement **[[:docker]]**.
===== Installation =====
==== Installation de l'utilitaire Flatpak ====
Pour utiliser Flatpak il faut [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>flatpak]]''.
==== Ajout du dépôt Flathub ====
Les logiciels Flatpak ne viennent pas des dépôts de [[:Canonical]] (qui développe et favorise [[:snap]], et fournit et promeut [[https://snapcraft.io|snapcraft]]), mais d'autres dépôts communautaires ou privés. Il faut [[#Gestion des dépôts|référencer les dépôts]] qui nous intéressent avant de pouvoir installer quoi que ce soit.
**[[https://flathub.org/fr|Flathub]]** est le dépôt principal, et //de facto// standard : il est maintenu par la communauté et fournit l'énorme majorité des applications disponibles en Flatpak. On peut explorer celles-ci en ligne sur [[https://flathub.org/fr|le site Internet]], mais pour l'intégrer à l'utilitaire Flatpak et lister et gérer ses applications avec un [[:gestionnaire_de_paquets|gestionnaire]], il faut ajouter la source **Flathub** avec cette commande :
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Pour installer d'autres dépôts, voir le chapitre //[[#Ajouter un autre dépôt Flatpak]]//.
Pour pouvoir gérer les applications Flatpak (autrement que par la [[:gerer flatpak#Installation_d_applications|ligne de commande]]), vous pouvez à présent configurer ou installer une logithèque (une application permettant d'installer et gérer les autres applications).
==== Obtenir une version plus récente de Flatpak (PPA) ====
Si besoin vous pouvez mettre à niveau votre version de Flatpak par une plus récente que celle fournie par les dépôts officiels via un [[:PPA]].
- [[:PPA|Ajoutez dans vos sources de logiciels le PPA]] : ''ppa:flatpak/stable''.
- [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|Rechargez la liste des paquets]].
- [[:deb#installer_un_paquet_deb|Installez le paquet]] ''[[apt>flatpak]]''.
===== Logithèques =====
Il existe plusieurs logithèques pour gérer les Flatpak. Malheureusement le [[:snap store|Centre d'applications]] (//Snap Store//) installé par défaut sur Ubuntu ([[:GNOME]]) n'en fait pas partie.\\
Pour explorer et gérer les applications Flatpak graphiquement sur Ubuntu on doit donc installer une de ces applications au choix (ou toutes ensemble si le cœur vous en dit !).
Elles gèrent les applications exactement de la même manière que la commande ''[[man>flatpak]]'' (toutes les méthodes sont compatibles et interchangeables).
==== GNOME Logiciels ====
En plus de la gestion des paquets [[:deb]] / [[:APT]], **[[:gnome-software|GNOME Logiciels]]** dispose d'une extension pour gérer les logiciels Flatpak.\\
Pour en profiter il faut simplement [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>gnome-software-plugin-flatpak]]''.
[[:gnome-software|GNOME Logiciels]] intégrera désormais les programmes disponibles sur les [[:flatpak#Gestion des dépôts|dépôts Flatpak]] configurés (mais pas le [[:snap store|Centre d'applications]], développé par [[:Canonical]], qui n'implémente pas Flatpak et ne les affichera pas).
==== Discover ====
**[[:plasma-discover|Plasma Discover]]** (la logithèque [[:KDE]]) dispose aussi d'une extension (un //[[wpfr>backend]]//) pour gérer les applications Flatpak.
Pour en profiter il suffit d'[[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>plasma-discover-backend-flatpak]]''.
==== Warehouse ====
**[[https://github.com/flattool/warehouse|Warehouse]]** est une logithèque Flatpak proposée elle-même en [[:Flatpak]] par ses développeurs sur le dépôt [[https://flathub.org/fr/apps/io.github.flattool.Warehouse|Flathub]].
{{:captures:warehouse.png?800|Warehouse, page applications}}
Malgré une interface très simple et sobre (qui suit l'[[:ergonomie de GNOME]]), **Warehouse** dispose de fonctionnalités impressionnantes :\\
en plus des traditionnelles recherches, descriptions, installation et désinstallation des applications, il permet de gérer les dépôts (il propose des dépôts populaires), de visualiser toutes les applications installées en Flatpak, ainsi que les données utilisateurs qui y sont associées et l'espace de stockage qu'elles utilisent, ou encore de créer des instantanés (//snapshots//) de n'importe quel //container// (bac à sable). Ceci permet de sauvegarder l'état d'une application, quelle qu'elle soit, à un instant donné, et de restaurer cet état à volonté.
Pour installer **Warehouse**, après avoir [[#installation|installé Flatpak]] avec le [[#ajout_du_depot_flathub|dépôt Flathub]], installer le paquet ''io.github.flattool.Warehouse'', soit en ligne de commande :
flatpak install io.github.flattool.Warehouse
==== Easy Flatpak ====
**[[https://www.dupot.org/desktop.html|Easy Flatpak]]**(([[https://github.com/imikado/dupotEasyFlatpak|GitHub]])) est aussi disponible sur le dépôt [[https://flathub.org/fr/apps/org.dupot.easyflatpak|Flathub]].
Il permet de naviguer dans les applications par catégorie, de visualiser et d'exporter la liste des applications installées, et évidemment de gérer celles-ci. Il propose quelques //bundles// d'applications pour différentes activités.
On peut donc l'installer après avoir [[#installation|installé Flatpak]] avec le [[#ajout_du_depot_flathub|dépôt Flathub]] en installant le paquet ''org.dupot.easyflatpak'', soit en ligne de commande :
flatpak install org.dupot.easyflatpak
==== Bauh ====
**[[:Bauh]]** est une autre logithèque, qui gère aussi bien Flatpak que [[:snap]], [[:deb]] / [[:APT]] (le format natif d'Ubuntu), [[:AppImage]], des applications [[:web]] et autres...
**[[:Bauh]]** possède sa [[:bauh|page de documentation dédiée]].
===== Gestion des applications =====
La [[:gerer_flatpak|gestion des applications Flatpak]] possède sa page de documentation dédiée, où sont entre autres décrites :
* les procédures d'[[:gerer_flatpak#installation_d_applications|installation]],
* de [[:gerer_flatpak#mise à jour]],
* de [[:gerer_flatpak#Lancer une application|lancement]],
* et de [[:gerer_flatpak#desinstaller_une_application|désinstallations des applications]],
* ainsi que l'utilisation de la commande ''[[:gerer_flatpak#Commande flatpak|flatpak]]'',
* la gestion des [[:gerer_flatpak#thèmes]],
* et la gestion des [[:gerer_flatpak#configuration_et_permissions_des_applications|permissions des applications]].
===== Gestion des dépôts =====
==== Ajouter un autre dépôt Flatpak ====
Le concept de //[[:dépôt]]// Flatpak est parfois désigné par le terme //remote// (ce qui signifie //distant//).
Si [[https://flathub.org/fr|Flathub]] est le dépôt dominant, il existe d'autres dépôts Flatpak, le système ayant été pensé pour être décentralisé. La syntaxe générale de la commande ''[[man>flatpak-remote-add|remote-add]]'' est :
flatpak remote-add --if-not-exists nom_du_dépôt https://adresse.du.dépôt.flatpakrepo
Le dépôt des applications [[:KDE]] est ainsi :
flatpak remote-add --if-not-exists kdeapps https://distribute.kde.org/kdeapps.flatpakrepo
==== Flatpakref ====
Certains développeurs proposent des fichiers avec une extension ''.flatpakref''. Ces fichiers contiennent à la fois le paquet [[:Flatpak]] et la référence (l'adresse) d'un [[:flatpak#gestion_des_depots|dépôt]].
Ce format est particulièrement utile pour distribuer un petit projet encore en cours de développement, en facilitant ses futures mises à jour.
Pour installer un fichier ''.flatpakref'', vous devez accorder une grande confiance à la personne vous le proposant : celui-ci va ajouter un dépôt privé qui n'a été revu par aucune personne ou organisme indépendant. Le problème posé est similaire à celui d'un [[:PPA]] (avec tout de même la garantie supplémentaire que les applications installées depuis restent confinées) : le développeur peut techniquement vous proposer un [[wpfr>logiciel malveillant]] que votre système installera automatiquement.
Ces fichiers ''.flatpakref'' peuvent s'installer en ligne de commande comme un fichier ''.flatpak'' classique :
flatpak install adresse/du/fichier.flatpakref
L'adresse du fichier peut être le [[:chemins|chemin]] du fichier parmi les documents sur votre disque, ou bien une adresse réseau ou Internet ([[:web#URL]]).
Cette technique vous proposera, en cours d'installation, d'ajouter les dépôts nécessaires et [[:gerer_flatpak#installation_d_applications|installera l'application]].
==== Installation d'un dépôt pour un seul utilisateur ====
De la [[:gerer flatpak#Niveaux de privilèges|même manière]] qu'avec les applications, pour installer une application pour l'[[:utilisateur]] courant, on ajoute ce dépôt avec l'option ''%%--%%user'' :
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
==== Supprimer un dépôt du système ====
On utilise la commande ''[[man>flatpak-remote-delete|remote-delete]]'' :
flatpak remote-delete nom_du_dépôt
par exemple pour Flathub :
flatpak remote-delete flathub
===== Désinstallation =====
Ce chapitre concerne la désinstallation du gestionnaire **Flatpak**.
Pour la désinstallation d'une application, voir le chapitre //[[:gerer_flatpak#Désinstaller une application]]// sur la page concernant la gestion des applications Flatpak.
Pour supprimer la prise en charge des applications au format flatpak, il suffit de [[:deb#desinstaller_un_paquet_deb|supprimer le paquet]] ''flatpak''.
Si vous l'aviez ajouté, n'oubliez pas de [[:ppa#suppression_d_un_ppa|supprimer le PPA]] après désinstallation.
Si vous désirez simplement retirer //Flathub// mais que vous voulez toujours pouvoir profiter de vos applications installées, voir le chapitre //[[#Supprimer un dépôt du système]]//.
===== Voir aussi =====
* [[https://flatpak.org/|Site officiel]]
* [[wpfr>Flatpak]] sur Wikipédia
* [[:gerer_flatpak|Gestion des applications Flatpak]]
==== Dépôts ====
* [[https://flathub.org|Flathub]], le dépôt majeur où trouver des applications
==== Alternatives ====
* [[:deb]]
* [[:snap]]
* [[:Appimage]]
* [[:Docker]], [[docker#installation|Podman]]
* [[https://distrobox.it/|Distrobox]] ([[https://github.com/89luca89/distrobox|GitHub]])
* [[https://containertoolbx.org|Toolbx]] ([[https://github.com/containers/toolbox|GitHub]])
-----
//[[:Contributeurs]] : [[:utilisateurs:roschan]], [[:utilisateurs:krodelabestiole]].//