Logiciels Graphiques

Flatpak : Les commandes essentielles

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

flatpak_logo



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


A noter, les versions récentes de flatpak (supérieures à 1.2 )autorisent l'installation de logiciels juste avec le nom (et non plus le paquet tout entier) :

Code BASH :
flatpak install flathub kdenlive


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]:




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.

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