Flatpak, un format de paquets universel
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 :
- 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 permission de l'utilisateur pour accéder au matériel (webcam, clefs USB, …) et aux fichiers personnels.
- 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 de donner manuellement certaines permissions aux applications pour autoriser certaines de leurs fonctionnalités, ce qui peut induire une complexité supplémentaire (mais qui est aussi gage 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 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.
Installation
Installation de l'utilitaire Flatpak
Pour utiliser Flatpak il faut installer le paquet flatpak
.
Intégration aux logithèques
- Le paquet
gnome-software-plugin-flatpak
permet de gérer les logiciels Flatpak depuis GNOME Logiciels (logithèque GNOME). - Le paquet
plasma-discover-flatpak-backend
permet de gérer les logiciels Flatpak depuis Plasma Discover (logithèque KDE).
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 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
GNOME Logiciels intégrera désormais les programmes disponibles sur ce dépôt (mais pas le Centre d'applications, développé par Canonical, qui n'implémente pas Flatpak et ne les affichera pas).
Pour installer d'autres dépôts, voir le tutoriel dédié à l'installation des dépôts Flatpak.
Utilisation
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.
Installation de logiciels
Voir le tutoriel dédié.
- Soit directement à partir du site Flathub (ce site est également un magasin d'application).
- Soit à partir de Gnome Software (si le plugin logithèque a bien été installé). Les logiciels flatpak y sont mélangés avec les logiciels au format .deb. On peut les reconnaître sur la page du logiciel : la zone source indique le dépôt : dl.flathub.org pour flathub, par exemple.
- Soit en ligne de commande :
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.
Connaître les logiciels installés
Au terminal, entrez :
flatpak list
Lancement d'application
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.
Mise à jour des logiciels
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
Désinstallation de logiciels
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
Fichiers de configuration
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
.
Configuration et permissions des applications
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 (généralement avec la commande flatpak override
) mais le plus accessible est sans aucun doute l'application Flatseal qui est elle-même distribuée en Flatpak et propose une interface graphique extrêmement pratique et complète pour la gestion de chaque application.3)
Problèmes courants
Lanceurs et icônes
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 est alors probable que vos thèmes d'icônes et certains utilitaires de paramétrage des menus ne soient pas en mesure de gérer ce fonctionnement.
Thème
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-20174).
Pour les versions plus récentes, référez-vous au paragraphe dédié du tutoriel d'installation.
Problème lors de l'enregistrement ou l'accès à un secret
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.
L'application se ferme peu après avoir été ouverte
- Installer Flatseal.
- Sélectionner l'application incriminée.
- Activer l'option "peut fonctionner en arrière-plan".
Désinstallation
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.