{{tag>Noble application paquet flatpak}}
{{ :icons:flatpak.png?160|icône Flatpak}}
====== Gérer les applications avec Flatpak ======
Le système [[:Flatpak]] permet la distribution et le déploiement d'applications de bureau sur ordinateur personnel. Il fournit un environnement isolé du reste du système (//sandbox//), grâce auquel l'utilisateur peut faire fonctionner ces applications de manière sécurisée.
Les paquets Flatpak fonctionnent sur toutes les [[:distributions]] Linux, et on trouve de très nombreuses applications sur le [[:flatpak#Gestion des dépôts|dépôt]] principal (Flathub). Certaines ne sont d'ailleurs disponibles que dans ce format.
Cette page explique comment gérer ses applications [[:Flatpak]].
===== Pré-requis =====
Les applications [[:Flatpak]] ne sont malheureusement pas accessibles depuis le [[:snap_store|centre d'applications]].\\
Le gestionnaire de paquets [[:Flatpak]] n'est pas installé sur Ubuntu par défaut, mais il est simple à ajouter.
La procédure pour installer le gestionnaire Flatpak est décrite dans le chapitre //[[:flatpak#Installation]]// de la page //[[:Flatpak]]//.
En résumé :
- [[:deb#installer_un_paquet_deb|Installer]] le gestionnaire avec le paquet ''[[apt>flatpak]]'', soit en ligne de commande :sudo apt install flatpak
- Installer le dépôt [[:flatpak#ajout_du_depot_flathub|flathub]] :flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- Si vous désirez lister et gérer les applications [[:Flatpak]] dans une logithèque :
* extension [[:gnome-software|GNOME Logiciels]] pour (Ubuntu, [[:XFCE]], [[:Budgie]], etc.) : ''[[apt>gnome-software-plugin-flatpak]]''
* extension [[:plasma-discover|Plasma Discover]] pour [[:Kubuntu]] : ''[[apt>plasma-discover-flatpak-backend]]''
* Voir aussi le chapitre //[[:flatpak#Logithèques]]//, pour d'autres interfaces dédiées.
===== Installation d'applications =====
En fonction de ce que vous avez installé au [[#Pré-requis|chapitre précédent]], plusieurs méthodes permettent d'installer une application [[:Flatpak]].
* **[[:gnome-software|GNOME Logiciels]]** permet de chercher et installer une application. Si celle-ci existe dans différentes versions (par exemple [[:Flatpak]] et [[:deb]]), on peut sélectionner le format de son choix dans un menu déroulant situé sous le bouton //Installer// (il arrive aussi que certaines versions mal gérées apparaissent comme différentes applications, avec le même nom).\\ Ce menu permet aussi de choisir entre une installation au niveau système, ou dans l'espace utilisateur, sans requérir les [[:permissions administrateur]] -- voir //[[#Niveaux de privilèges]]//.
* La **Logithèque [[https://flathub.org/fr|Flathub]]** dispose de sa propre logithèque en ligne : ce site est également un magasin d'application. Il suffit de chercher l'application puis de cliquer sur le bouton //Installer// pour l'installer, depuis le [[:navigateur|navigateur Web]].
* **En [[:commande_shell|ligne de commande]]**, depuis un [[:terminal]] :
==== Commande flatpak ====
Pensez au [[:man|manuel]] de la commande pour plus d'informations.
Cependant ''man flatpak'' ne donne pas les informations les plus utiles, mais une liste de sous-pages indépendantes (''[[man>flatpak-install]]'', [[man>flatpak-update]], [[man>flatpak-info]], etc. correspondant à des sous-commande).
La commande ''[[:flatpak#Utilisation en ligne de commande|flatpak]]'' permet de gérer les applications, en proposant plusieurs sous-commandes, dont ''[[man>flatpak-install|flatpak install]]'' pour en installer une :
flatpak install id.de.l.application
où ''id.de.l.application'' est l'identifiant complet de l'application, ou seulement le nom ou un bout du nom de de celle-ci (voir ci-dessous).
Par exemple :
flatpak install org.gnome.Lollypop
On peut installer plusieurs applications en une commande :
flatpak install com.uploadedlobster.peek com.valvesoftware.Steam
Avec les versions plus anciennes de ''[[man>flatpak]]'', il était nécessaire de préciser le [[:flatpak#Gestion des dépôts|dépôt]] du logiciel :
flatpak install dépôt nom-du-logiciel
L'actuelle version de ''[[man>flatpak]]'' se débrouille pour trouver les correspondances par le seul nom du logiciel.
En outre quand on ne connaît pas l'identifiant complet de l'application, entrer seulement son nom suffit généralement : le terminal propose une liste des correspondances disponibles. Une même application peut aussi être présentée en plusieurs versions, par exemple une version de test (//beta//) et une version stable (sauf cas particuliers, privilégiez toujours les dernières versions //stables//).
La sous-commande ''[[man>flatpak-search|flatpak search]]'' permet de rechercher une application dans les [[:flatpak#Gestion des dépôts|dépôts disponibles]].\\
Par exemple :
flatpak search lollypop
pour rechercher une application appelée //[[:lollypop]]//.
Quelques exemples d'identifiants d'applications parmi [[https://flathub.org/fr/apps/collection/popular/1|les plus populaires]] sur Flathub :
^ Identifiant complet ^ Application ^
| ''[[https://flathub.org/fr/apps/org.videolan.VLC|org.videolan.VLC]]'' | lecteur [[:multimédia]] **[[:VLC]]** |
| ''[[https://flathub.org/fr/apps/com.brave.Browser|com.brave.Browser]]'' | [[:navigateur]] **[[:Brave]]** |
| ''[[https://flathub.org/fr/apps/org.libretro.RetroArch|org.libretro.RetroArch]]'' | [[:emulation|émulateur]] **RetroArch** |
| ''[[https://flathub.org/fr/apps/com.github.tchx84.Flatseal|com.github.tchx84.Flatseal]]'' | gestionnaire de permissions Flatpak **[[#Flatseal]]** |
| ''[[https://flathub.org/fr/apps/com.usebottles.bottles|com.usebottles.bottles]]'' | gestionnaire d'applications [[:Wine|Windows]] **[[https://usebottles.com/|Bottles]]** |
| ''[[https://flathub.org/fr/apps/net.lutris.Lutris|net.lutris.Lutris]]'' | [[:jeu#gestionnaires de jeux|gestionnaire de jeux]] **[[:Lutris]]** |
| ''[[https://flathub.org/fr/apps/com.heroicgameslauncher.hgl|com.heroicgameslauncher.hgl]]'' | [[:jeu#gestionnaires de jeux|gestionnaire de jeux]] **[[https://heroicgameslauncher.com/|Heroic Games Launcher]]** |
| ''[[https://flathub.org/fr/apps/om.valvesoftware.Steam|om.valvesoftware.Steam]]'' | [[:jeu#gestionnaires de jeux|gestionnaire de jeux]] **[[:Steam]]** |
| ''[[https://flathub.org/fr/apps/org.telegram.desktop|org.telegram.desktop]]'' | client de [[:messagerie instantanée]] **[[:Telegram]]** |
| ''[[https://flathub.org/fr/apps/com.discordapp.Discord|com.discordapp.Discord]]'' | client de [[:visioconférence]] **[[:Discord]]** |
| ''[[https://flathub.org/fr/apps/com.spotify.Client|com.spotify.Client]]'' | client audio **[[:Spotify]]** |
==== Les runtimes ====
Pour s'exécuter, certaines applications qu'on installera auront besoin d'un //runtime// (routine d'[[wpfr>environnement d'exécution]]). Ne soyez pas donc surpris si lors de l'installation d'une nouvelle application, une confirmation vous est demandée pour l'installation d'un //environnement d'exécution//. Celle-ci est automatique, et ne requiert donc rien d'autre qu'une approbation.
L'installation d'une application est généralement assez rapide, mais celle d'un //environnement d'exécution// peut prendre un peu de temps. Heureusement, des applications distinctes utilisent souvent un même //environnement d'exécution//.
===== Lister les application installées =====
En ligne de commande on utilise la commande ''[[man>flatpak-list|flatpak list]]'' :
flatpak list
Les application installées globalement au niveau du système se trouvent sous le [[:chemins|chemin]] ''/var/lib/flatpak/app/'' et les applications installées pour l'utilisateur courant dans son [[:arborescence#répertoire personnel]], sous ''~/.local/share/flatpak/app/''.
===== Lancer une application =====
Les applications apparaissent avec les autres [[:tutoriel:comment_lancer_application|dans le menu des applications]].\\
Toutefois sur certains [[:environnements]] autres que [[:GNOME]], la mise à jour de la liste des logiciels peut nécessiter un redémarrage de la [[:session utilisateur]].
Via le [[:terminal]], on utilise la commande ''[[man>flatpak-run|flatpak run]]'' :
flatpak run id.de.l.application
Cette commande permet de contourner la nécessité de redémarrage lors des installations fraîches, et d'utiliser l'application sans attendre qu'elle s'inscrive dans le menu des applications.
''[[man>flatpak-run|flatpak run]]'' permet aussi d'afficher des informations sur l'exécution de l'application dans le [[:terminal]], utile en cas de problème.
Entrez ''[[man>flatpak-run|flatpak run]]'' + la première lettre du nom complet du logiciel, et utilisez //tabulation// pour voir les noms exacts des applications installées correspondantes
Avec ''[[man>flatpak-list|flatpak list]]'' vous pouvez obtenir la liste des application installées avec leur nom complet (en colonne ''Application ID'')
En faisant suivre ''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.
===== Configuration =====
==== 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, avec la commande ''[[man>flatpak-override|flatpak override]]'', mais le plus accessible est sans aucun doute l'application **Flatseal** :
=== Flatseal ===
**[[https://flathub.org/apps/com.github.tchx84.Flatseal|Flatseal]]** est lui-même distribué en Flatpak sur [[https://flathub.org/fr/apps/com.github.tchx84.Flatseal|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".((voir par ex. : //[[https://fr.ubunlog.com/flatseal-gui-autorisations-de-triche-applications-flatpak/|Flatseal, une interface graphique pour modifier les autorisations de l'application Flatpak]]//))
Après avoir [[:flatpak#installation|installé Flatpak]] avec le [[:flatpak#ajout_du_depot_flathub|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
{{:captures:flatseal.png?800|Flatseal, réglage des défauts pour toutes les applications}}
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.
==== Accès aux stockages tiers ====
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 [[#configuration_et_permissions_des_applications|autoriser]] soit eu moyen de **[[#Flatseal]]**, soit en ligne de commande :
=== Avec Flatseal ===
{{:captures:flatseal-stockage.png?800|Flatseal Filesystem}}
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// pour donner tous les accès,
* ou de //Tous les fichiers utilisateur// si l'application n'a besoin que d'accéder à vos fichiers personnels (''/home'' de l'utilisateur), ce qui est plus sécurisé.\\
* ou entrez le [[:chemins|chemin]] de votre choix dans //Autres fichiers//.
=== En ligne de commande ===
//Ou// en [[:commande shell|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 (''host'').
Pour plus de finesse et de sécurité dans ces paramètres, voir la [[https://docs.flatpak.org/fr/latest/sandbox-permissions.html#filesystem-access|documentation officielle]].
===== Mise à jour =====
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, on utilise la sous-commande ''[[man>flatpak-update|update]]'' :
flatpak update
===== Désinstaller une application =====
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 commande ''[[man>flatpak-uninstall|flatpak uninstall]]'' :
flatpak uninstall id.de.l.application
Si vous avez installé avec l'option ''%%--user%%'', il faudra remettre cette option à la désinstallation.
Pour supprimer les dépendances obsolètes, comme les environnements d'exécutions devenus inutiles, utiliser l'option ''%%--unused%%'' :
flatpak uninstall --unused
Si plus aucun logiciel installé n'en provient, on peut aussi [[:flatpak#Supprimer un dépôt du système|retirer le dépôt]].
===== Niveaux de privilèges =====
La plupart des sous-commandes de ''[[man>flatpak]]'', dont ''[[man>flatpak-install|install]]'', possèdent une option ''%%--user%%'', par opposition à l'option par défaut ''%%--system%%'' (qui est active si on ne précise rien).\\
Il s'agit d'une option qui limite les droits d'accès au système du logiciel que vous venez d'installer, et qui permet aussi à l'[[:utilisateur]] d'installer une application sans nécessiter les [[:permissions administrateur]].
Par exemple :
flatpak install --user org.gnome.FeedReader
installe [[:FeedReader]] //uniquement pour l'[[:utilisateur]] courant//.\\
Les fichiers relatifs à cette application sont alors stockés dans ''~/.local/share/flatpak/app/org.gnome.FeedReader'' au lieu de ''/var/lib/flatpak/app/org.gnome.FeedReader'' comme ça aurait été le cas normalement. Les autres comptes utilisateurs éventuellement présents sur l'ordinateur n'auront alors pas accès à l'application.
Quand on installe des applications uniquement pour l'utilisateur courant, celles-ci sont stockées dans son [[:arborescence#répertoire personnel]].
===== Problèmes courants =====
==== Thèmes ====
On peut définir un thème pour toutes les applications dans **[[#Flatseal]]** :\\
cliquer dans la colonne de gauche sur //Toutes les applications// puis à droite descendre jusqu'à la section //Environment// et ajouter les variables suivantes en les ajustant :
GTK_THEME=nom-du-thème
et
ICON_THEME=nom-du-pack-d'icônes
(remplacer ''nom-du-thème'' et ''nom-du-pack-d'icônes'' par leurs noms respectifs, idéalement les mêmes que ceux choisis dans [[:gnome-tweaks#apparence|GNOME Ajustements]]).
=== Installer un thème ===
Si un logiciel n'a pas le bon thème, le plus simple est d'installer le thème depuis //Flathub//, à condition évidemment que celui-ci existe.\\
Exemples :
flatpak install org.gtk.Gtk3theme.Ambiance
flatpak install org.gtk.Gtk3theme.Communitheme
On peut obtenir la liste des thèmes disponibles en Flatpak grâce à la commande :
flatpak search --user --columns=app theme | grep org.gtk | sort -d
On peut aussi utiliser la commande ''[[man>flatpak-remote-ls|flatpak remote-ls]]'' :(([[https://www.linuxuprising.com/2018/05/how-to-get-flatpak-apps-to-use-correct.html|Source]]))
flatpak remote-ls | grep org.gtk.Gtk3theme
=== Utiliser un thème utilisateur ===
Si un thème n'existe pas en version Flatpak, on peut autoriser toutes les applications Flatpak à accéder aux thèmes de l'[[:utilisateur]] : dans **[[#Flatseal]]**, cliquer dans la colonne de gauche sur //Toutes les applications// puis à droite descendre jusqu'à la section //Filesystem//. Dans //Autres fichiers// ajouter l'accès à ''~/.themes'' (voir [[#avec flatseal|capture]]). Si le pack d'icônes n'est pas pris en compte on peut en faire de même avec le chemin ''~/.icons''.
==== Emplacements inaccessibles ====
Si un emplacement n'est pas accessible à partir de l'application, voir le chapitre //[[#Accès aux stockages tiers]]//.
==== 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 pourrait arriver que certains [[:environnements|environnements de bureau]] et certains utilitaires de paramétrage des menus ne soient pas en mesure de gérer ce fonctionnement.
==== Traduction ====
Les traductions sont normalement installées avec l'application. Si ce n'est pas le cas, installez le paquet ayant le nom de l'application mais avec le suffixe ''.Locale'' :
flatpak install org.gnome.Games.Locale
==== 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 **[[#Configuration et permissions des applications|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 [[https://flathub.org/apps/com.github.tchx84.Flatseal|Flatseal]].
- Sélectionner l'application incriminée.
- Activer l'option "peut fonctionner en arrière-plan".
Si cela ne résout pas le problème, lancez l'application en ligne de commande avec ''[[#Lancer une application|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 !
===== Voir aussi =====
* La page dédiée à l'utilitaire [[:Flatpak]]
* [[https://flatpak.org/|Site officiel de Flatpak]]
* [[https://flathub.org/fr|Flathub]]
* [[https://flathub.org/fr/apps/collection/popular/1|Applications les plus populaires]] sur Flathub
* **(//en//)** [[https://www.omgubuntu.co.uk/2017/07/7-flatpak-apps-can-install-right-now-flathub|article d'OMG Ubuntu à propos de l'installation de l'installation par flatpak]]
* **(//en//)** [[https://community.kde.org/Guidelines_and_HOWTOs/Flatpak|Tutoriel pour installer les applications KDE]]
==== 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]].//