Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
flatpak [Le 26/07/2017, 16:04] Roschan liens |
flatpak [Le 29/06/2025, 19:15] (Version actuelle) krodelabestiole [Flatpak, un format de paquets universel] reformulation / refactoring |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Xenial application format paquet}} | + | {{tag>Focal application paquet}} |
- | ---- | + | {{ :icons:flatpak.png?direct&160|icône Flatpak}} |
- | {{ http://i.imgur.com/epoTNSU.png?100}} | + | ====== Flatpak, un format de paquets universel ====== |
- | ====== Le système Flatpak ====== | + | |
- | Le logiciel **Flatpak** est un utilitaire pour le déploiement de logiciels, la gestion de paquets et la virtualisation d'applications sur ordinateurs personnels. | + | **[[wpfr>Flatpak]]** est un système libre et communautaire pour la [[:gestionnaire_de_paquets|gestion de paquets]], le déploiement de logiciels, et l'isolement d'applications (//sandboxing//). Il peut être intégré aux [[:gestionnaire_de_paquets#les_gestionnaire_de_paquets_graphiques|logithèques graphiques]], ou utilisable en [[:commande_shell|ligne de commande]]. |
- | Il fournit un environnement isolé du reste du système (//sandbox//), où l'utilisateur peut faire fonctionner des applications de manière isolée : | + | Le projet est mené par [[wpfr>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. |
- | * le risque pour la stabilité est moindre (les paquets et fichiers de configuration existants ne sont pas modifiés) ; | + | |
- | * il n'y a **pas de conflits de dépendances** ; | + | |
- | * le risque pour la sécurité est moindre : les applications utilisant Flatpak doivent demander la permission de l'utilisateur pour accéder au matériel (webcam, clefs USB, ...) et aux fichiers de l'utilisateur. | + | |
- | 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 par des développeurs tiers 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 [[#configuration_et_permissions_des_applications|permission de l'utilisateur]] pour accéder au matériel (webcam, clefs USB, ...) et aux fichiers personnels. | ||
+ | * **[[https://flathub.org/fr|Flathub]]**, le dépôt le plus populaire, propose des milliers d'applications((plus de [[https://docs.flathub.org/blog/over-one-million-active-users-and-growing|2400 applications]] début 2024)), et leur soumission est soigneusement supervisée afin d'éviter l'introduction de logiciel malveillant. Ce dépôt unique permet aussi d'éviter la multiplication des risques comme c'est le cas avec l'ajout de [[:PPA|PPAs]] individuels. | ||
+ | * 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). | ||
- | Depuis 2017, beaucoup d'applications populaires commencent à être disponibles au format Flatpak : Blender, [[:Skype]], Spotify, LibreOffice, [[:Pitivi]], certaines applications [[:KDE]], beaucoup d'applications [[:GNOME]], etc. | + | **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 [[#configuration_et_permissions_des_applications|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é). | ||
- | Les applications récentes en cours de développement actif sont parfois même disponibles presque uniquement sous forme de Flatpak ! C'est par exemple le cas d'[[:Eolie]] au moment où j'écris ces lignes. | + | 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]]. |
- | ===== Pré-requis ===== | + | **Flatpak** avec [[https://flathub.org/fr|Flathub]] est ainsi devenu le canal privilégié, et parfois exclusif((C'est le cas de [[https://usebottles.com/|Bottles]] et de nombreuses [[https://apps.gnome.org/fr/|applis pour GNOME]] par exemple.)) de nombreux développeurs et éditeurs, qui peuvent distribuer en un seul paquet leurs logiciels sur toutes les [[:distributions|distributions Linux]], en ayant la main sur l'environnement et les dépendances. |
- | Il faut absolument une version d'Ubuntu __supérieure à [[:16.04]]__. | + | ===== Installation ===== |
- | Les [[:sudo|droits d'administration]] et un connexion internet sont requises pour l'installation de flatpak en tant que tel. | + | ==== Installation de l'utilitaire Flatpak ==== |
- | Une connexion à internet est aussi nécessaire pour télécharger les logiciels à installer via **flatpak**. | + | Pour utiliser Flatpak il faut [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>flatpak]]''. |
- | ===== Installation ===== | + | ==== Intégration aux logithèques ==== |
- | ==== Méthode recommandée (17.04 et plus) ==== | + | * Le paquet ''[[apt>gnome-software-plugin-flatpak]]'' permet de gérer les logiciels Flatpak depuis la [[:gnome-software|logithèque GNOME]]. |
+ | * Le paquet ''[[apt>plasma-discover-flatpak-backend]]'' permet de gérer les logiciels Flatpak depuis la [[:plasma-discover|logithèque KDE]]. | ||
- | Flatpak devrait être pré-installé à partir d'Ubuntu 17.04, mais au cas où il ne le soit pas, [[installez le paquet]] **[[apt>flatpak]]** depuis les dépôts. | + | ==== Ajout du dépôt Flathub ==== |
- | ==== Via un PPA (16.04) ==== | + | Les logiciels Flatpak ne viennent pas des dépôts de [[:Canonical]] (qui soutient plutôt [[:snap]]), mais d'autres dépôts. Il faut référencer les dépôts qui nous intéressent avant de pouvoir installer quoi que ce soit sur Ubuntu. |
+ | **[[https://flathub.org/fr|Flathub]]** est le principal dépôt de logiciels au format Flatpak : il est maintenu par des tiers de confiance et fournit l'énorme majorité des applications disponibles en Flatpak. On peut explorer celles-ci en ligne sur [[https://flathub.org/fr|ce site Internet]], mais pour l'intégrer à l'utilitaire Flatpak et lister et gérer ses applications avec la logithèque ou depuis le terminal, il faut ajouter **Flathub** comme source de logiciels avec cette commande : | ||
- | - [[:PPA|Ajoutez le PPA]] **ppa:alexlarsson/flatpak**((https://launchpad.net/~alexlarsson/+archive/ubuntu/flatpak)) dans vos sources de logiciels. | + | <code bash>flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo</code> |
- | - [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|Rechargez la liste des paquets]] | + | [[:gnome-software|GNOME Logiciels]] intégrera désormais les programmes disponibles sur ce dépôt (mais la logithèque Ubuntu ne les affichera pas). |
- | - [[Installez le paquet]] **[[apt>flatpak]]**. | + | |
+ | Pour installer d'autres dépôts, voir le [[:tutoriel:installer_application_flatpak#ajouter_le_depot_flathub|tutoriel dédié]] à l'installation des dépôts flatpak. | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
- | <note important>FIXME à compléter et à déplacer dans un tutoriel dédié.</note> | + | 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. |
+ | |||
+ | <note help>Pensez au [[:man|manuel]] de la commande pour plus d'informations. | ||
+ | Attention, ''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) : | ||
+ | <code>man flatpak-run</code> | ||
+ | pour plus d'informations sur le lancement des applications. | ||
+ | </note> | ||
==== Installation de logiciels ==== | ==== Installation de logiciels ==== | ||
- | Chaque développeur tiers indique les lignes de commande permettant d'installer son logiciel dans ce format.\\ | + | **Voir le [[:tutoriel:installer_application_flatpak|tutoriel dédié]].** |
- | Quelques exemples dans l'onglet "Command line" de la page [[http://flatpak.org/apps.html|du projet]]. | + | |
- | <note help>Il n'est pas nécessaire d'ajouter [[:sudo]] devant les commandes d'installation ou de désinstallation des flatpaks, puisqu'un popup apparaîtra pour vous demander votre mot de passe en cas de besoin !</note> | + | * Soit directement à partir du site [[https://flathub.org/home|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 :<code>flatpak install identifiant.du.logiciel</code>par exemple :<code>flatpak install warpinator</code> | ||
- | Généralement, une seule ligne suffit | + | 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. |
- | <code>flatpak install nom_du_flatpak</code> | + | |
- | mais il est possible qu'on vous demande d'ajouter des dépôts flatpak par exemple: | + | 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 : |
- | <code>flatpak remote-add une_adresse_url</code>. | + | |
- | <note tip>Les logiciels flatpak sont théoriquement gérables depuis [[:gnome-software|la logithèque]], selon la version de cette dernière (>=3.22.6) et en fonction des dépôts paramétrés. Ce n'est donc pas normalement possible sur la version [[:16.04]] LTS !</note> | + | <code>flatpak install maps</code> |
- | ==== Utilisation de logiciels ==== | + | <code>Looking for matches… |
- | Les logiciels apparaissent avec les autres, normalement. Vous pourrez les lancer comme indiqué **[[tutoriel:comment_lancer_application|ici]]**, ou via le [[:terminal]] avec la [[:commande_shell|commande]] suivante :\\ | + | Remotes found with refs similar to ‘maps’: |
- | <code>flatpak run nom_de_l_appli</code> | + | |
- | <note help>Bien qu'il soit mal rédigé, pensez au [[:man|manuel]] de la commande pour plus d'informations. | + | 1) ‘flathub’ (system) |
- | <code>man flatpak</code></note> | + | 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 | ||
+ | </code> | ||
+ | |||
+ | 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 : | ||
+ | <code>flatpak install dépôt nom-du-logiciel</code> | ||
+ | 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 : | ||
+ | <code>flatpak list</code> | ||
+ | |||
+ | ==== Lancement d'application ==== | ||
+ | |||
+ | Les applications apparaissent avec les autres [[tutoriel:comment_lancer_application|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_shell|commande]] suivante : | ||
+ | <code>flatpak run identifiant.du.logiciel</code> | ||
+ | |||
+ | <note tip>Entrez ''flatpak run'' + la première lettre du nom complet du logiciel, et utilisez //tabulation// pour voir les noms exacts des applications installées correspondantes</note> | ||
+ | <note tip>Avec ''flatpak list'' vous pouvez obtenir la liste des application installées avec leur nom complet (en colonne ''Application ID'')</note> | ||
+ | <note tip>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.</note> | ||
+ | |||
+ | ==== 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 : | ||
+ | <code>flatpak update</code> | ||
==== Désinstallation de logiciels ===== | ==== Désinstallation de logiciels ===== | ||
- | Un flatpak peut être retiré avec la commande | ||
- | <code>flatpak uninstall nom_du_flatpak</code> | ||
- | <note tip>Utilisez tabulation pour voir les noms des applications installées</note>. | ||
- | ===== Problèmes rencontrés ===== | + | 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 | ||
+ | <code>flatpak uninstall identifiant.du.logiciel</code> | ||
+ | |||
+ | Pour supprimer les dépendances obsolètes, lancer la commande ''uninstall'' avec l'option ''%%--unused%%'' : | ||
+ | <code>flatpak uninstall --unused</code> | ||
+ | |||
+ | ==== 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 [[https://flathub.org/apps/com.github.tchx84.Flatseal|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.((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]]//)) | ||
+ | |||
+ | ===== Problèmes courants ===== | ||
==== Lanceurs et icônes ==== | ==== 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 très 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. | + | 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 ==== | ==== 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//).\\ | 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-2017((http://www.omgubuntu.co.uk/2017/05/flatpak-theme-issue-fix|Source)). | + | La solution à ce problème n'existe que dans les versions de Flatpak postérieures à mi-2017((**(//en//)** [[https://www.omgubuntu.co.uk/2017/05/flatpak-theme-issue-fix|source]])). |
+ | |||
+ | Pour les versions plus récentes, référez-vous au [[:tutoriel:installer_application_flatpak#themes|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 **[[#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". | ||
===== Désinstallation ===== | ===== Désinstallation ===== | ||
- | Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés. | + | Pour supprimer la prise en charge des applications au format flatpak, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer le paquet]] ''flatpak''. |
- | Si vous l'aviez ajouté, n'oubliez pas de [[:ppa#suppression_d_un_ppa|retirer le PPA]] après désinstallation. | + | Si vous l'aviez ajouté (version 16.04 seulement), n'oubliez pas de [[:ppa#suppression_d_un_ppa|retirer le PPA]] après désinstallation. |
+ | |||
+ | <note> | ||
+ | Si vous désirez simplement retirer //flathub// mais que vous voulez toujours pouvoir profiter de vos applications installées, référez-vous plutôt à la section dédiée du [[:tutoriel/installer_application_flatpak|tutoriel détaillé]]. | ||
+ | </note> | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
+ | |||
* [[wpfr>Flatpak]] | * [[wpfr>Flatpak]] | ||
- | * [[http://flatpak.org/|Site du Projet]] | + | * [[https://flatpak.org/|Site du Projet]] |
- | * [[http://flatpak.org/apps.html|Les applications disponibles]] sur le site du projet | + | |
+ | ==== Tutoriels ==== | ||
+ | |||
+ | * **[[:tutoriel/installer_application_flatpak|Tutoriel détaillé d'installation d'applications flatpak]]** | ||
+ | |||
+ | ==== Dépôts ==== | ||
+ | |||
+ | * [[https://flathub.org|Le dépôt majeur où trouver des applications]] | ||
+ | |||
+ | ==== Logithèques compatibles ==== | ||
* [[:gnome-software|Logithèque GNOME]] | * [[:gnome-software|Logithèque GNOME]] | ||
+ | * [[:plasma-discover|Logithèque KDE Plasma]] | ||
+ | * [[:Bauh]] | ||
+ | |||
+ | ==== Alternatives ==== | ||
+ | |||
+ | * [[:deb]] | ||
+ | * [[:snap]] | ||
* [[:appimage]] | * [[:appimage]] | ||
- | * **(en)** [[:https://community.kde.org/Guidelines_and_HOWTOs/Flatpak|Tutoriel pour installer les applications KDE]] | + | * [[:docker]] |
+ | * [[https://github.com/89luca89/distrobox|Distrobox]] | ||
----- | ----- | ||
- | //Contributeurs : [[:utilisateurs:roschan]] | + | //Contributeurs : [[:utilisateurs:roschan]], [[:utilisateurs:krodelabestiole]]// |
- | , ...// | + |