Flatpak : Les commandes essentielles
Table des matières
Les flatpak sont, sous Linux, un système de paquets universels. Le but est de faciliter le déploiement sécurisé d'applications sur différentes distributions.
Les applications sont exécutées dans un environnement « bac à sable » (sandbox) pour que ces applications soient isolées du système mais que les documents soient accessibles.
Chaque paquet dispose de permissions particulières, exemple avec Kdenlive :
Un flatpak nécessitant des dépendances (Exemple : Kdenlive ayant besoin de Qt), flatpak s'occupe de gérer ces dernières lors de l'installation.
Il est possible de gérer ses paquets flatpak avec GNOME Logiciels (Dans Fedora et CentOS par exemple) ou en ligne de commande.
La partie graphique étant très intuitive, cet article se consacre principalement à la gestion en mode texte.
Le logiciel Kdenlive sera utilisé dans cet article car il est simple et est représentatif de la plupart des applications disponibles (Dépend de Qt et KDE, Possède des traductions)
Sur votre distribution, vous devez installer flatpak.
Sur Fedora, CentOS c'est le cas par défaut.
Ensuite, ces paquets sont stockés dans des dépôts. Le plus connu et rempli est flathub.
Pour ajouter le dépôt "flathub" suivre les instructions sur le site web : https://flatpak.org/setup/
Pour installer le dépôt en graphique GNOME Logiciels : Télécharger le fichier https://flathub.org/repo/flathub.flatpakrepo et l'exécuter pour que le dépôt s'installe avec GNOME Logiciels.
En ligne de commande :
Les paquets flatpak portent toutes la même dénomination (l'identifiant ou id) :
com.societe.Application
Exemple : org.kde.kdenlive
Exemple : org.gimp.GIMP
Exemple : com.google.AndroidStudio
Exemple : fr.handbrake.ghb
Les paquets de langue de l'applications sont nommés ainsi :
Exemple : org.kde.kdenlive.Locale
Si on veut trouver une architecture bien précise, on la précise ainsi :
Exemple : org.kde.kdenlive/i386
Parfois des logiciels sont fournis en plusieurs versions (Branches) pour les manipuler, on précise la version avec une double barre oblique :
Exemple : org.kde.Platform.Locale//5.12
Les flatpak peuvent s'installer de 2 manières :
system : c'est à dire que les applications sont utilisables par tous les utilisateurs du système. (C'est l'option par défaut)
user : l'application est installée pour l'utilisateur exécutant la commande. L'option --user doit être spécifiée pour installer le flatpak dans ce mode.
Pour gérer les dépôts, 3 sous commandes sont utiles.
Installer un dépôt distant (exemple avec flathub):
Lister les dépôts distants :
Si on veut supprimer un dépôt (exemple avec flathub) :
A noter 2 autres dépôts pour les applications GNOME et KDE :
Pour trouver des applications on va utiliser la commande search :
Exemple :
Cette commande liste uniquement les applications. Si on cherche des traductions, la commande search ne les affichera pas.
Pour avoir tout le contenu du dépôt et lister ce qui nous intéresse, on va préférer la commande remote-ls (à coupler avec grep pour filtrer sur le logiciel) :
Exemple pour Kdenlive :
Pour installer un flatpak, on utilise la commande install et on précise le nom du dépôt :
Exemple :
Les dépendances sont gérées puisque ici, Kdenlive a besoin de la plateforme KDE, qui est téléchargée également.
Pour installer les traductions de Kdenlive :
Pour avoir plus d'infos sur les platpak installés (version, architecture, dépôt, Runtime utilisé/version, etc.) c'est la commande info :
Exemple :
Une fois les applications installées,on les lance graphiquement comme une application normale (les icônes et raccourcis sont créés dans le menu d'application.
En ligne de commande, on procédera ainsi :
Exemple :
C'est ainsi qu'on verra aussi les retours dans la console et les différentes erreurs (traduction manquante, crash, etc...)
Pour mettre à jour on utilise la commande update
Exemple :
Pour lister les applications installées sur le système, il s'agit de la commande list.
Exemple :
Si on ne veut lister que les applications installées (pas les traductions, les dépendances) on ajoute --app :
Exemple :
On va pouvoir utiliser aussi l'option --columns pour filtrer la vue avec ce qui nous intéresse.
Si je veux connaitre les runtimes utilisés pour chaque application :
Pour supprimer des applications installées sur le système, il s'agit de la commande uninstall
Exemple :
Et pour supprimer les dépendances obsolètes c'est l'option --unused à coupler avec uninstall
Lorsque des applications sont installées sous forme de Flatpak, les fichiers de configuration ne sont pas placés dans le dossier .config du répertoire de l'utilisateur.
Prenons par exemple le logiciel OBS Studio.
Si l'application est installée à travers le gestionnaire de paquets de la distribution, les fichiers de configuration seront dans :
Si l'application est installée à travers le paquet Flatpak (ID = com.obsproject.Studio), on retrouvera la configuration dans :
Ce dossier est séparé en plusieurs sous-dossiers avec :
- cache : Fichiers de cache de l'application (équivalent de /home/$USER/.cache)
- config : Fichiers de configuration de l'application (équivalent de /home/$USER/.config)
- data : Fichiers de données locales de l'application à garder de façon persistante
- D'autres dossiers si besoin
Si une application reste en anglais, la lancer dans la console :
Exemple : flatpak run org.kde.kdenlive
Le message typique est :
Pour les applications GTK, vérifier que :
org.gnome.Platform.Locale soit installé
org.xxx.logiciel.Locale soit aussi installé
Pour les applications Qt, vérifier que :
org.kde.Platform.Locale soit installé (dans la version nécessaire)
org.xxx.logiciel.Locale soit aussi installé
Si tout est installé, vérifier dans les paramètres de l'application s'il n'y a pas la possibilité de changer la langue en Français.
Parfois, il peut arriver qu'il y ait un souci au moment du téléchargement de paquets :
Dans ce cas, il va falloir réparer flatpak et retélécharger les métadonnées.
Réparer flatpak pour l'utilisateur concerné :
Passer en root et réparer également :
Toujours en root on met à jour les données appstream :
Prenons par exemple 2 applications, 1 GTK (SoundConverter) et 1 Qt (Clementine).
Nous souhaitons forcer ces applications à utiliser le même thème que votre système (pour mon cas Adwaita-dark)
Listez d'abord les runtimes utilisés par vos applications flatpak :
On notera que SoundConverter utilise org.gnome.Platform
On notera aussi que Clementine utilise org.kde.Platform/x86_64/5.15-21.08
Cherchez votre thème avec flatpak search :
Pour les applications GTK (utilisant org.gnome.Platform ou org.freedesktop.Platform), installez le thème souhaité. Pour Adwaita Dark :
On va ensuite forcer ce thème GTK aux applications :
Pour les applications Qt (utilisant org.kde.Platform), installez le thème souhaité. Pour Adwaita Dark :
Sélectionnez le thème pour le bon runtime. Rappelez-vous, Clementine utilise org.kde.Platform/x86_64/5.15-21.08 :
Ensuite, on va forcer ce thème aux applications QT :
Si malgré tout vous voulez en savoir plus sur les flatpak, les pages de manuel sont garnies d'options :
Ainsi que les pages man de toutes les sous commandes listées dans la page man précédente :
Introduction
Les flatpak sont, sous Linux, un système de paquets universels. Le but est de faciliter le déploiement sécurisé d'applications sur différentes distributions.
Les applications sont exécutées dans un environnement « bac à sable » (sandbox) pour que ces applications soient isolées du système mais que les documents soient accessibles.
Chaque paquet dispose de permissions particulières, exemple avec Kdenlive :
Code TEXT :
permissions: ipc, network, pulseaudio, x11, devices file access: host, xdg-config/kdeglobals:ro, xdg-run/dconf, ~/.config/dconf:ro dbus access: com.canonical.AppMenu.Registrar, com.canonical.AppMenu.Registrar.*
Un flatpak nécessitant des dépendances (Exemple : Kdenlive ayant besoin de Qt), flatpak s'occupe de gérer ces dernières lors de l'installation.
Il est possible de gérer ses paquets flatpak avec GNOME Logiciels (Dans Fedora et CentOS par exemple) ou en ligne de commande.
La partie graphique étant très intuitive, cet article se consacre principalement à la gestion en mode texte.
Le logiciel Kdenlive sera utilisé dans cet article car il est simple et est représentatif de la plupart des applications disponibles (Dépend de Qt et KDE, Possède des traductions)
Prérequis
Sur votre distribution, vous devez installer flatpak.
Sur Fedora, CentOS c'est le cas par défaut.
Ensuite, ces paquets sont stockés dans des dépôts. Le plus connu et rempli est flathub.
Pour ajouter le dépôt "flathub" suivre les instructions sur le site web : https://flatpak.org/setup/
Pour installer le dépôt en graphique GNOME Logiciels : Télécharger le fichier https://flathub.org/repo/flathub.flatpakrepo et l'exécuter pour que le dépôt s'installe avec GNOME Logiciels.
En ligne de commande :
Code BASH :
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Informations sur les paquets flatpak
Nommage des paquets
Les paquets flatpak portent toutes la même dénomination (l'identifiant ou id) :
com.societe.Application
Exemple : org.kde.kdenlive
Exemple : org.gimp.GIMP
Exemple : com.google.AndroidStudio
Exemple : fr.handbrake.ghb
Les paquets de langue de l'applications sont nommés ainsi :
Code TEXT :
com.societe.application.Locale
Exemple : org.kde.kdenlive.Locale
Si on veut trouver une architecture bien précise, on la précise ainsi :
Code TEXT :
com.societe.application/arch
Exemple : org.kde.kdenlive/i386
Parfois des logiciels sont fournis en plusieurs versions (Branches) pour les manipuler, on précise la version avec une double barre oblique :
Code BASH :
com.societe.application//x.y
Exemple : org.kde.Platform.Locale//5.12
Applications système ou utilisateur
Les flatpak peuvent s'installer de 2 manières :
system : c'est à dire que les applications sont utilisables par tous les utilisateurs du système. (C'est l'option par défaut)
user : l'application est installée pour l'utilisateur exécutant la commande. L'option --user doit être spécifiée pour installer le flatpak dans ce mode.
Utiliser Flatpak
Les dépôts
Pour gérer les dépôts, 3 sous commandes sont utiles.
Installer un dépôt distant (exemple avec flathub):
Code BASH :
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Lister les dépôts distants :
Code BASH :
flatpak remotes
Code TEXT :
Name Options flathub system
Si on veut supprimer un dépôt (exemple avec flathub) :
Code BASH :
flatpak remote-delete flathub
A noter 2 autres dépôts pour les applications GNOME et KDE :
Code BASH :
flatpak remote-add gnome-apps https://sdk.gnome.org/gnome-apps.flatpakrepo flatpak remote-add --if-not-exists kdeapps --from https://distribute.kde.org/kdeapps.flatpakrepo
Chercher en ligne des flatpak
Pour trouver des applications on va utiliser la commande search :
Code BASH :
flatpak search application
Exemple :
Code BASH :
flatpak search kdenlive
Code TEXT :
Application ID Version Branch Remotes Description org.kde.kdenlive 18.12.1 stable flathub Video Editor
Cette commande liste uniquement les applications. Si on cherche des traductions, la commande search ne les affichera pas.
Pour avoir tout le contenu du dépôt et lister ce qui nous intéresse, on va préférer la commande remote-ls (à coupler avec grep pour filtrer sur le logiciel) :
Code BASH :
flatpak remote-ls -a flathub
Exemple pour Kdenlive :
Code BASH :
flatpak remote-ls -a flathub | grep -i kdenlive
Code TEXT :
org.kde.kdenlive org.kde.kdenlive.Debug org.kde.kdenlive.Locale org.kde.kdenlive.Sources
Installer des flatpak
Pour installer un flatpak, on utilise la commande install et on précise le nom du dépôt :
Code BASH :
flatpak install depot leflatpak
Exemple :
Code BASH :
flatpak install flathub org.kde.kdenlive
Code TEXT :
Required runtime for org.kde.kdenlive/x86_64/stable (runtime/org.kde.Platform/x86_64/5.12) found in remote flathub Do you want to install it? [y/n]: y Installing in system: org.kde.Platform/x86_64/5.12 flathub d3e20330f263 org.kde.KStyle.Adwaita/x86_64/5.12 flathub ff24e32a3ab8 org.kde.Platform.Locale/x86_64/5.12 flathub 0e043b7a8e49 org.kde.kdenlive/x86_64/stable flathub 3e6f5af9d954 permissions: ipc, network, pulseaudio, x11, devices file access: host, xdg-config/kdeglobals:ro, xdg-run/dconf, ~/.config/dconf:ro dbus access: com.canonical.AppMenu.Registrar, com.canonical.AppMenu.Registrar.* org.kde.kdenlive.Locale/x86_64/stable flathub 9ffa8a28cadd
Les dépendances sont gérées puisque ici, Kdenlive a besoin de la plateforme KDE, qui est téléchargée également.
Pour installer les traductions de Kdenlive :
Code BASH :
flatpak install flathub org.kde.kdenlive.Locale
Des infos sur les flatpak installés
Pour avoir plus d'infos sur les platpak installés (version, architecture, dépôt, Runtime utilisé/version, etc.) c'est la commande info :
Code BASH :
flatpak info leflatpak
Exemple :
Code BASH :
flatpak info org.kde.kdenlive
Code TEXT :
Ref: app/org.kde.kdenlive/x86_64/stable ID: org.kde.kdenlive Arch: x86_64 Branch: stable Origin: flathub Collection ID: org.flathub.Stable Date: 2019-01-29 07:57:02 +0000 Subject: update: KDE runtime 5.12 (0c16024d) Commit: 3e6f5af9d954fba57cf562017e3a26f6181c03a391cd7c4ffa042c9bcb2b43f2 Parent: 44b566eabdfbbf07338e4949bda8135131794cbaa98790051a50dbc6fb4f5461 Location: /var/lib/flatpak/app/org.kde.kdenlive/x86_64/stable/3e6f5af9d954fba57cf562017e3a26f6181c03a391cd7c4ffa042c9bcb2b43f2 Installed size: 402.5 MB Runtime: org.kde.Platform/x86_64/5.12 Sdk: org.kde.Sdk/x86_64/5.12
Lancer des flatpak
Une fois les applications installées,on les lance graphiquement comme une application normale (les icônes et raccourcis sont créés dans le menu d'application.
En ligne de commande, on procédera ainsi :
Code BASH :
flatpak run leflatpak
Exemple :
Code BASH :
flatpak run org.kde.kdenlive
C'est ainsi qu'on verra aussi les retours dans la console et les différentes erreurs (traduction manquante, crash, etc...)
Mettre à jour les flatpak
Pour mettre à jour on utilise la commande update
Code BASH :
flatpak update
Exemple :
Code TEXT :
Looking for updates... Installing in system: org.freedesktop.Platform.Locale/x86_64/18.08 flathub 3756db4fedc7 org.freedesktop.Platform.html5-codecs/x86_64/18.08 flathub 337041240b18 Is this ok [y/n]: y
Lister les applications installées
Pour lister les applications installées sur le système, il s'agit de la commande list.
Code BASH :
flatpak list
Exemple :
Code BASH :
Ref Options org.gimp.GIMP/x86_64/stable system,current org.kde.kdenlive/x86_64/stable system,current org.libreoffice.LibreOffice/x86_64/stable system,current org.freedesktop.Platform.ffmpeg/x86_64/1.6 system,runtime org.freedesktop.Platform.html5-codecs/x86_64/18.08 system,runtime org.freedesktop.Platform/x86_64/18.08 system,runtime org.gnome.Platform/x86_64/3.28 system,runtime org.kde.KStyle.Adwaita/x86_64/5.12 system,runtime org.kde.Platform/x86_64/5.12 system,runtime
Si on ne veut lister que les applications installées (pas les traductions, les dépendances) on ajoute --app :
Code BASH :
flatpak list --app
Exemple :
Code TEXT :
Ref Options org.gimp.GIMP/x86_64/stable system,current org.kde.kdenlive/x86_64/stable system,current org.libreoffice.LibreOffice/x86_64/stable system,current
On va pouvoir utiliser aussi l'option --columns pour filtrer la vue avec ce qui nous intéresse.
Si je veux connaitre les runtimes utilisés pour chaque application :
Code BASH :
flatpak list --app --columns=application,runtime
Code TEXT :
Application ID Runtime org.gimp.GIMP org.gnome.Platform/x86_64/43 org.kde.kdenlive org.kde.Platform/x86_64/5.15-21.08 org.libreoffice.LibreOffice org.freedesktop.Platform/x86_64/22.08
Désinstaller des flatpak
Pour supprimer des applications installées sur le système, il s'agit de la commande uninstall
Code BASH :
flatpak uninstall leflatpak
Exemple :
Code BASH :
flatpak uninstall org.kde.kdenlive
Code TEXT :
Uninstalling from system: org.kde.kdenlive/x86_64/stable org.kde.kdenlive.Locale/x86_64/stable Is this ok [y/n]: y
Et pour supprimer les dépendances obsolètes c'est l'option --unused à coupler avec uninstall
Code BASH :
flatpak uninstall --unused
Code TEXT :
Uninstalling from system: org.kde.KStyle.Adwaita/x86_64/5.12 org.kde.Platform/x86_64/5.12 org.kde.Platform.Locale/x86_64/5.12 Is this ok [y/n]:
Localisation des préférences des applications
Lorsque des applications sont installées sous forme de Flatpak, les fichiers de configuration ne sont pas placés dans le dossier .config du répertoire de l'utilisateur.
Prenons par exemple le logiciel OBS Studio.
Si l'application est installée à travers le gestionnaire de paquets de la distribution, les fichiers de configuration seront dans :
Code BASH :
/home/$USER/.config/obs-studio/
Si l'application est installée à travers le paquet Flatpak (ID = com.obsproject.Studio), on retrouvera la configuration dans :
Code BASH :
/home/$USER/.var/app/com.obsproject.Studio
Ce dossier est séparé en plusieurs sous-dossiers avec :
- cache : Fichiers de cache de l'application (équivalent de /home/$USER/.cache)
- config : Fichiers de configuration de l'application (équivalent de /home/$USER/.config)
- data : Fichiers de données locales de l'application à garder de façon persistante
- D'autres dossiers si besoin
Problèmes connus
Applications en Anglais
Si une application reste en anglais, la lancer dans la console :
Exemple : flatpak run org.kde.kdenlive
Le message typique est :
Code TEXT :
Gtk-WARNING **: 11:41:45.337: Locale not supported by C library. Using the fallback 'C' locale
Pour les applications GTK, vérifier que :
org.gnome.Platform.Locale soit installé
org.xxx.logiciel.Locale soit aussi installé
Pour les applications Qt, vérifier que :
org.kde.Platform.Locale soit installé (dans la version nécessaire)
org.xxx.logiciel.Locale soit aussi installé
Si tout est installé, vérifier dans les paramètres de l'application s'il n'y a pas la possibilité de changer la langue en Français.
Error While trying to checkout
Parfois, il peut arriver qu'il y ait un souci au moment du téléchargement de paquets :
Code TEXT :
Error: Error deploying: While trying to checkout 305a04169e9092e7c31a0fde61c185d01e18dc1e8a710aac1e02e8479330ed64 into /var/lib/flatpak/runtime/org.freedesktop.Sdk/x86_64/20.08/.305a04169e9092e7c31a0fde61c185d01e18dc1e8a710aac1e02e8479330ed64-DRHSY0: Opening content object
Dans ce cas, il va falloir réparer flatpak et retélécharger les métadonnées.
Réparer flatpak pour l'utilisateur concerné :
Code BASH :
flatpak repair --user
Passer en root et réparer également :
Code BASH :
flatpak repair
Toujours en root on met à jour les données appstream :
Code BASH :
flatpak update --appstream
Harmonisation des thèmes avec flatpak
Prenons par exemple 2 applications, 1 GTK (SoundConverter) et 1 Qt (Clementine).
Nous souhaitons forcer ces applications à utiliser le même thème que votre système (pour mon cas Adwaita-dark)
Listez d'abord les runtimes utilisés par vos applications flatpak :
Code BASH :
flatpak list --app --columns=application,runtime
Code TEXT :
Application ID Runtime org.clementine_player.Clementine org.kde.Platform/x86_64/5.15-21.08 org.soundconverter.SoundConverter org.gnome.Platform/x86_64/42
On notera que SoundConverter utilise org.gnome.Platform
On notera aussi que Clementine utilise org.kde.Platform/x86_64/5.15-21.08
Cherchez votre thème avec flatpak search :
Code BASH :
flatpak search --columns name,application,branch adwaita
Code TEXT :
Name Application ID Branch Adwaita theme org.kde.KStyle.Adwaita 6.4 Adwaita theme org.kde.KStyle.Adwaita 6.3 Adwaita theme org.kde.KStyle.Adwaita 6.2 Adwaita theme org.kde.KStyle.Adwaita 5.9 Adwaita theme org.kde.KStyle.Adwaita 5.15-22.08 Adwaita theme org.kde.KStyle.Adwaita 5.15-21.08 Adwaita theme org.kde.KStyle.Adwaita 5.15 Adwaita theme org.kde.KStyle.Adwaita 5.14 Adwaita theme org.kde.KStyle.Adwaita 5.13 Adwaita theme org.kde.KStyle.Adwaita 5.12 Adwaita theme org.kde.KStyle.Adwaita 5.11 Adwaita theme org.kde.KStyle.Adwaita 5.10 AdwSteamGtk io.github.Foldex.AdwSteamGtk stable Gradience com.github.GradienceTeam.Gradience stable Adwaita dark GTK theme org.gtk.Gtk3theme.Adwaita-dark 3.22 Akwa org.gtk.Gtk3theme.Akwa 3.22 Akwa org.gtk.Gtk3theme.Akwa-light 3.22 Akwa-dark org.gtk.Gtk3theme.Akwa-dark 3.22 Adementary GTK+ theme org.gtk.Gtk3theme.Adementary 3.24 Ultimate Media Downloader com.ktechpit.ultimate-media-downloader stable GabTag com.github.lachhebo.Gabtag stable
Pour les applications GTK (utilisant org.gnome.Platform ou org.freedesktop.Platform), installez le thème souhaité. Pour Adwaita Dark :
Code BASH :
flatpak install org.gtk.Gtk3theme.Adwaita-dark
On va ensuite forcer ce thème GTK aux applications :
Code BASH :
flatpak override --env=GTK_THEME=Adwaita-dark
Pour les applications Qt (utilisant org.kde.Platform), installez le thème souhaité. Pour Adwaita Dark :
Code BASH :
flatpak install org.kde.KStyle.Adwaita
Sélectionnez le thème pour le bon runtime. Rappelez-vous, Clementine utilise org.kde.Platform/x86_64/5.15-21.08 :
Code TEXT :
Similar refs found for ‘org.kde.KStyle.Adwaita’ in remote ‘flathub’ (system): 1) runtime/org.kde.KStyle.Adwaita/x86_64/5.9 2) runtime/org.kde.KStyle.Adwaita/x86_64/5.15-21.08 3) runtime/org.kde.KStyle.Adwaita/x86_64/5.15-22.08 4) runtime/org.kde.KStyle.Adwaita/x86_64/6.2 5) runtime/org.kde.KStyle.Adwaita/x86_64/6.3 6) runtime/org.kde.KStyle.Adwaita/x86_64/6.4 7) runtime/org.kde.KStyle.Adwaita/x86_64/5.10 8) runtime/org.kde.KStyle.Adwaita/x86_64/5.11 9) runtime/org.kde.KStyle.Adwaita/x86_64/5.12 10) runtime/org.kde.KStyle.Adwaita/x86_64/5.14 11) runtime/org.kde.KStyle.Adwaita/x86_64/5.13 12) runtime/org.kde.KStyle.Adwaita/x86_64/5.15 Which do you want to use (0 to abort)? [0-12]: 2
Ensuite, on va forcer ce thème aux applications QT :
Code BASH :
flatpak override --env=QT_STYLE_OVERRIDE=Adwaita-dark
Documentation et aide fournie avec flatpak
Si malgré tout vous voulez en savoir plus sur les flatpak, les pages de manuel sont garnies d'options :
Code BASH :
man flatpak
Ainsi que les pages man de toutes les sous commandes listées dans la page man précédente :
Code BASH :
man flatpak-list man flatpak-install man flatpak-update