{{tag>application format paquet}}
{{ https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/App-image-logo.svg/220px-App-image-logo.svg.png?100}}
====== Appimage ======
Le format de paquets **Appimage** ([[wpfr>appimage|voir sur Wikipédia]]) permet de distribuer des logiciels de manière portable sur n’importe quelle distribution Linux, y compris Ubuntu.
Le but est de pouvoir déployer des applications par une procédure simple, assurant une grande compatibilité et évitant d’altérer le système hôte.
===== Avantages et inconvénients =====
==== Avantages ====
La grande force du format **Appimage** réside dans le fait qu’il n’exige **__aucun__ pré-requis** – sauf bien sûr une connexion à Internet pour récupérer les fichiers Appimage :
* **Installation par un compte utilisateur standard** : aucun droit d’administration n’est nécessaire ;
* **Gestion par un seul fichier de tout le logiciel** : aucun paquet et aucune bibliothèque ne sont à installer au préalable, à part le paquet [[apt>libfuse2]]. Le paquet embarque ses propres dépendances. Cela permet à des logiciels assez anciens de continuer à fonctionner alors que, pour des raisons d’obsolescence, leurs dépendances ont été retirées des versions plus récentes du système Ubuntu. À l’inverse, cela permet aussi de disposer de manière anticipée d’une nouvelle version non encore déployée sur Ubuntu.
==== Inconvénients ====
Le format **AppImage** a 6 principaux inconvénients :
- **Pas d’automatisation de la mise à jour** : les nouvelles fonctionnalités et les corrections de failles de sécurité seront disponibles dans les nouvelles versions à récupérer et à déployer de manière manuelle ;
- **Pas d’intégration au système** : à moins que l'installation soit gérée par l'application AppImage elle-même (ce qui est rarement le cas), aucune entrée ne sera ajoutée dans le menu des applications, et si l'AppImage ne l'a pas intégrée aucune icône ne sera affichée pour l'application une fois lancée (en fonction du pack d'icônes utilisée elle sera par exemple remplacée par un engrenage). Certains utilitaires tels que **AppImage Launcher** permettent de remédier à ces deux premiers inconvénients – voir ci-dessous la section concernant l'[[#intégration au bureau]] ;
- **Fichier plus volumineux** : un paquet AppImage embarque ses dépendances. Cela conduit à un plus grand nombre de fichiers inclus et à un plus grand espace occupé par rapport à l’équivalent au format //.deb// ;
- **Démarrage moins rapide** : le lancement du logiciel s’avère un peu plus lent que pour un logiciel classique au format //.deb// issu des dépôts ;
- **Sécurité plus incertaine** : un éditeur de distribution contrôle les paquets qu’il publie dans ses dépôts. Cela réduit le risque de logiciels fortement défectueux ("bogués") ou fortement agressifs (logiciels espions, …). Un fichier AppImage est généralement téléchargé depuis Internet, sans le contrôle d’une équipe de distribution. Le logiciel récupéré représente ainsi un danger de sécurité plus marqué.
Au-delà des avantages et inconvénients, certains (rares) logiciels sont publiés uniquement dans ce format. Le choix ne se pose alors plus.
===== Installer un appimage =====
En résumé, l’installation se déroule en 5 étapes :
- installer le paquet [[apt>libfuse2]], ou au terminal : **sudo apt install libfuse2** (a faire seulement à l'installation de votre 1er AppImage )
- Récupérer le fichier AppImage du logiciel souhaité, en le téléchargeant sur Internet ;
- Déposer le fichier dans un répertoire quelconque (on recommande généralement de créer un répertoire ''~/Applications''(([[wpfr>Stack Exchange Network|Ask Ubuntu]] : //[[https://askubuntu.com/a/1106044|Where should I put .Appimages files?]]//))) ;
- Autoriser son exécution (//clic-droit sur le fichier AppImage -> Propriétés -> Permissions -> Autoriser l’exécution//) ;
- (Optionnel) créer un [[raccourci-lanceur|lanceur]] qui fera apparaître le programme dans votre menu des applications. Sinon, pour démarrer le fichier AppImage, double-cliquer l’icône du fichier dans son répertoire.
**Automatisation** : l’application **AppImageLauncher** permet aussi de gérer les points 4 et 5 (autoriser l’exécution et créer un raccourci dans le menu d’Ubuntu). La télécharger au format **.deb** [[https://github.com/TheAssassin/AppImageLauncher/releases|sur le site du développeur]] (normalement la version AMD64 conviendra). Puis l’installer, la démarrer (**AppImage Launcher Settings**) et la paramétrer. Désormais un programme résident scrute le démarrage de toute AppImage. Ainsi, dès un premier lancement (par un clic sur l’icône associée) :
* le fichier AppImage est activé en exécution ;
* une icône est créée dans le menu Ubuntu sans vous poser de question ;
* le programme AppImage est déplacé dans le répertoire que vous aurez défini dans les paramètres de AppImage Launcher ;
* enfin, __si__ l’application au format AppImage présente une fonctionnalité de mise à jour distante, une offre de mise à jour vers une éventuelle nouvelle version vous sera proposée.
**AppImageLauncher** simplifie donc fortement l’installation et la mise à jour des fichiers AppImage.
==== Se procurer le fichier ====
Il faut tout d'abord se procurer le fichier AppImage de l'application qu'on veut utiliser. Vous pouvez le télécharger, ou l'amener sur votre ordinateur via une clé USB. Les fichiers en question n'ont hélas pas toujours l'extension ''.appimage'' ce qui ne facilite pas la compréhension de ce format par les débutants.
AppImage est le seul format de packaging existant sans gestionnaire de paquet ni dépôt : il faut chercher les applications en ligne soi-même, **faites attention à la fiabilité du site** sur lequel vous vous procurez l'AppImage.
Si on peut ponctuellement se procurer des logiciels Appimage sur le site officiel du développeur de l'application, sachez qu'il existe un « Appimage Store » officiel. [[https://appimage.github.io/apps/|Le AppimageHub officiel Linux]].\\
Il y a aussi le site [[https://apprepo.de]] qui en propose bon nombre en précisant bien **À vos risques et périls**
Des logiciels comme par exemple [[:Krita]]((Exemple d'application disponible au format AppImage : https://krita.org/fr/telechargement/krita-desktop/)), Subsurface, [[:kdenlive]] ou [[:Openshot]] fournissent les fichiers AppImage directement sur leur page web officielle, on peut donc leur faire confiance.
Arduino, [[:Blender]], Chromium, [[:Firefox]] ou encore [[:LibreOffice]] disposent aussi d'une installation par AppImage si besoin, mais de manière moins officielle((Le site https://bintray.com/probono/AppImages fournit des AppImages pour divers logiciels, avec l'aval et la confiance d'appimage.org)).
==== Modification des permissions ====
Tout d'abord, placez vos fichiers AppImage dans un dossier où ils pourront rester : si vous les supprimez par erreur, l'application sera supprimée !
Il va falloir **[[:permissions#modifier_les_permissions|rendre le fichier exécutable]]**. Cela peut être fait :
* Graphiquement (//clic-droit sur l'AppImage -> Propriétés -> Permissions -> Autoriser l'exécution//) ;
* En ligne de commande (pour une application fictive nommée truc) : \\ chmod a+x truc.appImage
Le format AppImage est en fait une archive, qui contient le logiciel et toutes les bibliothèques dont il dépend, si vous oubliez de le rendre exécutable, l'archive se montera comme un simple disque amovible, explorable avec un gestionnaire de fichiers !
===== Lancer un AppImage =====
Pour lancer un AppImage, il existe 4 possibilités :
- double cliquer sur le fichier AppImage.
- en ligne de commande, taper le nom du programme avec tout le chemin qui y mène. Par exemple pour Audacity, si ce dernier se trouve dans un répertoire **/Documents/appimage/**, il faudra taper : **~/Documents/appimage/audacity-linux-3.1.3-x86_64.AppImage**
- Créer __automatiquement__ un [[raccourci-lanceur|lanceur]] dans le menu des applications Ubuntu via le programme **Appimage Launcher** (cf. chapitre 2).
- Créer __manuellement__ un [[raccourci-lanceur|lanceur]], qu'on placera dans le répertoire caché **~/.local/share/applications/**, et qui apparaitra ainsi dans le menu des applications Ubuntu. Pour créer ce lanceur, créer un fichier au format texte que vous appellerez **//nom_du_programme//.desktop**. Dans ce fichier, collez les commandes suivantes (l'exemple ci-dessous est avec le programme [[audacity|Audacity]], adaptez-le à vos besoins) :
[Desktop Entry]
Encoding=UTF-8
Type=Application
Categories=Audio;AudioVideo;
Name=Audacity
Comment=Editions de fichiers audio
Exec=/home//Documents/appimage/audacity-linux-3.1.3-x86_64.AppImage
Icon=audacity
StartupNotify=false
Terminal=false
Hidden=false
===== Désinstaller un AppImage=====
Pour supprimer une application installée par ce format, il suffit de supprimer son fichier AppImage, tout simplement.
Effacez aussi le lanceur (s'il existe), qui est probablement dans **~/.local/share/applications/**.
===== Intégration au bureau =====
Les logiciels fournis dans ce format ne sont pas réellement installés sur le système, et ne sont donc pas présents dans les menus, il faut manuellement [[:raccourci-lanceur|créer un lanceur]] vers le fichier AppImage concerné.
Certains logiciels (comme //Etcher//, //Motrix// ou //[[:Molotov]]//) proposent, au moment de la première utilisation, de créer un lanceur automatiquement, ça reste cependant une pratique peu répandue.
Nous vous conseillons de créer un dossier AppImage dans Documents et y sauvegarder également les icônes de vos applications, afin de faciliter la création des lanceurs.
Il existe des applications d'intégration des paquets **Flatpak**, **Snap**, **AppImage** et des application hébergées sur le Github. Concernant l'Intégration de **AppImage** au sein des différentes interfaces graphiques d'Ubuntu :
==== AppImage Pool ====
**[[https://github.com/prateekmedia/appimagepool|AppImage Pool]]** est un client graphique simple pour [[https://www.appimagehub.com|AppImageHub]]. Il est disponible en AppImage, ainsi que sur le dépôt [[https://flathub.org/apps/io.github.prateekmedia.appimagepool|Flathub]] et peut donc s'installer en suivant [[:tutoriel:installer_application_flatpak|cette procédure]] puis en installant le paquet ''io.github.prateekmedia.appimagepool''.
Il permet de parcourir et de télécharger des AppImages depuis un dépôt centralisé. Puis d'intégrer les AppImages à l'environnement de bureau et de les mettre à jour ou de les désinstaller.
Il propose de définir chaque répertoire indépendamment, pour les AppImages, pour les //launchers//, et pour les icônes.
==== Gear Lever ====
**[[https://github.com/mijorus/gearlever|Gear Lever]]** permet d'intégrer les AppImages au bureau, en téléchargeant des îcones et créant des lanceurs. Il est aussi disponible sur le dépôt [[https://flathub.org/apps/it.mijorus.gearlever|Flathub]] et peut donc s'installer en suivant [[:tutoriel:installer_application_flatpak|cette procédure]] puis en installant le paquet ''it.mijorus.gearlever''.
Il permet de choisir le répertoire des AppImages et y enregistre les icônes dans un sous-répertoire ''.icons''. Il détecte les AppImages dans les //launchers// existants, il faut malheureusement ajouter les autres manuellement un par un.
==== AppImageLauncher ====
**[[https://github.com/TheAssassin/AppImageLauncher|AppImageLauncher]]** est le gestionnaire généralement recommandé pour la gestion des paquets AppImages.(([[https://appimage.org|Documentation officielle]] : //Integrating AppImages into the desktop// -> //[[https://docs.appimage.org/user-guide/run-appimages.html#appimagelauncher|AppImageLauncher]]//))((se référer à [[https://www.linuxuprising.com/2018/04/easily-run-and-integrate-appimage-files.html|Easily Run And Integrate AppImage Files With AppImageLauncher]] \\ — site : Linuxuprising.com ; auteur : logix ; date : 17 juillet 2018.))
Télécharger le paquet précompilé *.deb sur la page Github dédiée //[[https://github.com/TheAssassin/AppImageLauncher/releases|AppImageLauncher release builds]]//.
Cette application déplacera les icônes dans les répertoires correspondants si elles existent, mais n'en créera pas. Si l'AppImage n'en intègre pas, une roue crantée sera affichée en guise d’icône pour l'application (en fonction de votre pack d'icône).
==== Go AppImage ====
[[https://github.com/probonopd/go-appimage|Go AppImage]] est un ensemble d'outils incluant **[[https://github.com/probonopd/go-appimage/blob/master/src/appimaged/README.md|appimaged]]** et [[https://github.com/probonopd/go-appimage/blob/master/src/appimagetool/README.md|appimagetool]].
Il est possible d'utiliser appimaged en complément de AppImageLauncher. Pour l'installer **après avoir installé AppImageLauncher** :
wget "https://github.com/AppImage/appimaged/releases/download/continuous/appimaged-x86_64.AppImage"
rendez vous dans votre dossier personnel
sudo chmod a+x appimaged-x86_64.AppImage
sudo ./appimaged-x86_64.AppImage --install
==== Bauh ====
[[:Bauh]] est une alternative à [[#Go AppImage|Appimaged]] et [[#AppImageLauncher]], avec lesquels il est incompatible, qui gère de plus [[:flatpak]] et [[:snap]].
Si vous avez installé AppImageLauncher manuellement et que vous désirez suivre nos recommandations et souhaitez installer Bauh afin de bénéficier d'un gestionnaire stable pour les fichiers Snaps, Flatpak et AppImage, entrer cette commande dans un terminal :
sudo find / -type f -name "[Aa]pp[Ii]mage[Ll]auncher" -exec rm -f '{}' \;
sudo find / -type f -name "[Aa]ppimaged" -exec rm -f '{}' \;
En effet, vous devez désinstaller toute trace de ces deux logiciels avant l'utilisation du module AppImage de Bauh. \\
Rendez-vous sur [[:bauh|la page de Bauh]].
==== AppImageUpdate ====
[[https://github.com/AppImageCommunity/AppImageUpdate|AppImageUpdate]] permet de mettre à jour automatiquement certaines AppImages.
===== Problèmes connus =====
A partir d'Ubuntu 22.04, la facilité d'emploi des fichiers AppImage a commencé à se dégrader.
==== Ubuntu 22.04 ====
Ubuntu 22.04 n'inclue plus la librairie "libfuse.so.2" (mais la v3). Pour pouvoir exécuter des AppImage il est nécessaire d'installer libfuse2 via "sudo apt install libfuse2"), mais cela crée parfois la casse du bureau Gnome ! ([[https://bugs.launchpad.net/ubuntu/+source/fuse/+bug/1717878|Ref]]).
==== Ubuntu 24.04 ====
Ubuntu 24.04 n'inclue plus la librairie "libfuse.so.2" (mais la v3). Pour pouvoir exécuter des AppImage il **semble** nécessaire d'installer libfuse2 via "sudo apt install libfuse2t64"). [[https://itsfoss.com/cant-run-appimage-ubuntu/|Réf]]
===== Voir aussi =====
* [[https://appimage.org/|Site du Projet]]
* [[https://bintray.com/probono/AppImages|Divers fichiers AppImage disponibles au téléchargement]]
* **[[https://github.com/linuxdeploy/linuxdeploy|linuxdeploy]]** est un outil créé en 2018 pour la création et la maintenance d'AppImages.
-----
//Contributeurs : [[:utilisateurs:roschan]], [[:utilisateurs:krodelabestiole]]//