Flatpak est un système libre et communautaire pour la gestion de paquets, le déploiement de logiciels, et l'isolement d'applications (sandboxing). Il peut être intégré aux logithèques graphiques, ou utilisable en ligne de commande.
Le projet est mené par 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 :
Inconvénients, en particulier par rapport au format deb :
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 Flathub est ainsi devenu le canal privilégié, et parfois exclusif2) de nombreux développeurs et éditeurs, qui peuvent distribuer en un seul paquet leurs logiciels sur toutes les distributions Linux, en ayant la main sur l'environnement et les dépendances.
Pour utiliser Flatpak il faut installer le paquet flatpak
.
Les logiciels Flatpak ne viennent pas des dépôts de Canonical (qui développe et favorise snap, et fournit et promeut snapcraft), mais d'autres dépôts communautaires ou privés. Il faut référencer les dépôts qui nous intéressent avant de pouvoir installer quoi que ce soit.
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 le site Internet, mais pour l'intégrer à l'utilitaire Flatpak et lister et gérer ses applications avec un 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 tutoriel dédié à l'installation des dépôts Flatpak.
Pour pouvoir gérer les applications Flatpak (autrement que par la ligne de commande), vous pouvez à présent configurer ou installer une logithèque (une application permettant d'installer et gérer les autres applications).
Il existe plusieurs logithèques pour gérer les Flatpak. Malheureusement le 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 flatpak
(toutes les méthodes sont compatibles et interchangeables).
En plus de la gestion des paquets deb / APT, GNOME Logiciels dispose d'une extension pour gérer les logiciels Flatpak.
Pour en profiter il faut simplement installer le paquet gnome-software-plugin-flatpak
.
GNOME Logiciels intégrera désormais les programmes disponibles sur les dépôts Flatpak configurés (mais pas le Centre d'applications, développé par Canonical, qui n'implémente pas Flatpak et ne les affichera pas).
Plasma Discover (la logithèque KDE) dispose aussi d'une extension pour gérer les logiciels Flatpak.
Pour en profiter il suffit d'installer le paquet plasma-discover-flatpak-backend
.
Warehouse est une logithèque Flatpak proposée elle-même en Flatpak par ses développeurs sur le dépôt Flathub.
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ées (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 installé Flatpak avec le dépôt Flathub, installer le paquet io.github.flattool.Warehouse
, soit en ligne de commande :
flatpak install io.github.flattool.Warehouse
Easy Flatpak3) est aussi disponible sur le dépôt 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 installé Flatpak avec le dépôt Flathub en installant le paquet org.dupot.easyflatpak
, soit en ligne de commande :
flatpak install org.dupot.easyflatpak
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 page de documentation dédiée.
Les fichiers de configuration des logiciels installés ne sont pas déployés dans les répertoires habituels ~/.config
ou ~/.local
, mais sont par défaut confinés dans ~/.var
.
Les applications étant isolées (sandboxées) on peut gérer finement leurs permissions d'accès à chaque élément du système, ainsi que définir des variables d'environnement spécifiques pour chacune.
Ceci peut se faire en ligne de commande, avec la commande flatpak override
, mais le plus accessible est sans aucun doute l'application Flatseal :
Flatseal est lui-même distribué en Flatpak sur Flathub, et propose une interface graphique extrêmement pratique et complète pour la gestion de chaque application, de ses permissions et de son "bac à sable".4)
Après avoir installé Flatpak avec le dépôt Flathub, Flatseal s'installe via le paquet com.github.tchx84.Flatseal
, soit en ligne de commande :
flatpak install com.github.tchx84.Flatseal
Dans la colonne de gauche sont listées les applications installées. Cliquer sur l'application concernée pour accéder à ses paramètres et autorisations.
Le premier élément, nommé Toutes les applications, concerne le réglage des défauts pour toutes les applications. Ces paramètres sont écrasés si un autre est défini spécifiquement pour une application.
La commande flatpak
a de nombreuses utilisations possibles (pour le développement et la construction de paquets, pour la gestion avancée de dépôts et des environnements d'exécution, etc.) mais en tant qu'utilisateur, quelques usages en particulier sont à souligner.
man flatpak
ne vous donne pas d'informations directement utiles, mais une liste de sous-pages (flatpak-install, flatpak-update, flatpak-info, etc.) indépendantes.
Faites alors (par exemple) :
man flatpak-run
pour plus d'informations sur le lancement des applications.
Voir le tutoriel dédié.
flatpak install identifiant.du.logiciel
par exemple :
flatpak install warpinator
Le premier logiciel que vous installerez sera peut-être long à installer car le système téléchargera un environnement d'exécution, qui pourra être réutilisé par les logiciels en format Flatpak installés par la suite.
Si plusieurs dépôts ont été ajoutés au système (ou qu'on y trouve plusieurs versions - beta et stable), les différents choix sont présentés, et vous choisissez celui qui vous convient. Par exemple :
flatpak install maps
Looking for matches… Remotes found with refs similar to ‘maps’: 1) ‘flathub’ (system) 2) ‘flathub-beta’ (user) Which do you want to use (0 to abort)? [0-2]: 1 Similar refs found for ‘maps’ in remote ‘flathub’ (system): 1) app/io.github.rinigus.PureMaps/x86_64/stable 2) app/org.gnome.Maps/x86_64/stable Which do you want to use (0 to abort)? [0-2]: 2 org.gnome.Maps permissions: ipc network fallback-x11 wayland x11 dri dbus access [1] system dbus access [2] [1] org.freedesktop.secrets, org.gnome.OnlineAccounts, org.gnome.evolution.dataserver.AddressBook10, org.gnome.evolution.dataserver.Calendar8, org.gnome.evolution.dataserver.Sources5, org.gnome.evolution.dataserver.Subprocess.Backend.* [2] org.freedesktop.GeoClue2, org.freedesktop.NetworkManager ID Branch Op Remote Download 1. org.gnome.Maps.Locale stable i flathub < 11,7 MB (partial) 2. org.gnome.Maps stable i flathub < 5,7 MB Proceed with these changes to the system installation? [Y/n]: y
Le cas présenté est intentionnellement plus bavard que la moyenne.
Avec les versions plus anciennes de Flatpak, l'installation devait préciser le dépôt du logiciel :
flatpak install dépôt nom-du-logiciel
Mais l'actuelle version de Flatpak se débrouille pour trouver par le seul nom du logiciel, quitte à vous proposer un choix si plusieurs options sont trouvées.
Au terminal, entrez :
flatpak list
Les applications apparaissent avec les autres dans vos menus, normalement.
Toutefois sur certains environnements autres que GNOME la mise à jour de la liste des logiciels peut nécessiter un redémarrage du système. Le lancement via flatpak run
permet de contourner cette nécessité de redémarrage lors des installations fraîches vous pourrez utiliser votre application sans attendre qu'elle s'inscrive dans la liste des applications lancées en mode graphique.
flatpak run
permet aussi d'afficher des informations sur l'exécution de l'application dans le terminal, utile en cas de problème.
Cela se fait avec la commande suivante :
flatpak run identifiant.du.logiciel
flatpak run
+ la première lettre du nom complet du logiciel, et utilisez tabulation pour voir les noms exacts des applications installées correspondantes
flatpak list
vous pouvez obtenir la liste des application installées avec leur nom complet (en colonne Application ID
)
flatpak run nom.complet.application &
du signe &
vous pouvez continuer à utiliser le terminal sans interrompre l'exécution de l'application qui fonctionnera en arrière-plan tant que le terminal sera ouvert.
Les logiciels au format Flatpak sont mis à jour de la même manière que les autres par la logithèque (onglet "Mises à jour").
Pour mettre à jour manuellement les applications en ligne de commande :
flatpak update
Les logiciels au format Flatpak peuvent être désinstallés de la même manière que les autres par la logithèque (onglet "Installées").
Une application au format Flatpak peut être aussi retirée avec la commande
flatpak uninstall identifiant.du.logiciel
Pour supprimer les dépendances obsolètes, lancer la commande uninstall
avec l'option --unused
:
flatpak uninstall --unused
Si une application ne parvient pas à accéder aux fichiers présents sur un stockage externe, il faut l'y autoriser. Il s'agit d'une politique de sécurité par défaut des applications Flatpak.
On peut l'y autoriser soit eu moyen de Flatseal, soit en ligne de commande.
Dans l'interface de Flatseal cliquer dans la colonne de gauche sur l'icône de l'application en question, puis à droite faire défiler jusqu'à Filesystem (liste des sous-ensembles du système de fichiers disponible pour l'application), et activer l'interrupteur à droite de Tous les fichiers du système.
Ou en ligne de commande :
flatpak override id.de.l.application --filesystem=host
où id.de.l.application
est à remplacer par l'identifiant correct de l'application.
L'application aura ainsi accès à l'ensemble des fichiers du système.
Les icônes et fichiers .desktop
des applications Flatpak ne se trouvent pas dans /usr/share/
comme d'habitude, mais dans /var/lib/flatpak/exports/share/
.
Il pourrait arriver que certains environnements de bureau et certains utilitaires de paramétrage des menus ne soient pas en mesure de gérer ce fonctionnement.
Les versions de Flatpak antérieures à mi-2017 ne prennent pas en compte le thème de l'utilisateur, et n'autorisent donc que le thème Adwaita (ou Adwaita-dark).
La solution à ce problème n'existe que dans les versions de Flatpak postérieures à mi-20175).
Pour les versions plus récentes, référez-vous au paragraphe dédié du tutoriel d'installation.
Certains Flatpak utilisent le D-bus org.freedesktop.secrets
pour gérer des mots de passe ou des clés secrètes. Il faut dans ce cas leurs y autoriser l'accès manuellement. Pour ce faire on peut utiliser Flatseal, ou en ligne de commande :
sudo flatpak override --talk-name=org.freedesktop.secrets id.de.l.application
id.de.l.application
est à remplacer dans cette commande par l'identifiant correct de l'application.
Si cela ne résout pas le problème, lancez l'application en ligne de commande avec flatpak run
, un message d'erreur devrait s'afficher. Si celui-ci n'est pas éloquent, n'hésitez pas à demander de l'aide sur le forum !
Pour supprimer la prise en charge des applications au format flatpak, il suffit de supprimer le paquet flatpak
.
Si vous l'aviez ajouté (version 16.04 seulement), n'oubliez pas de retirer le PPA après désinstallation.