{{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 **[[wpfr>AppImage]]** permet de distribuer des applications de manière portable sur n'importe quelle [[:distributions|distribution Linux]], y compris bien sûr 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 pour utiliser un fichier AppImage, autre que la librairie [[:FUSE]] : * **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]]'' ou ''[[apt>libfuse2t64]]'' (voir [[#Installer une AppImage|ci-dessous]]) quand il ne l'est pas déjà. L'AppImage embarque ses propres dépendances. Cela permet à des applications assez anciennes 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 pas encore disponible dans les [[:dépôts]] officiels d'Ubuntu. ==== Inconvénients ==== Le format **AppImage** a quelques 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 de l'application s'avère un peu plus lent que celui d'une application [[:paquet|empaquetée]] au format [[:deb]] ; * **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 défectueux (//bugués//) ou malveillants (logiciels espions, //malwares//, etc.). Une application AppImage peut être téléchargée depuis n'importe quel site Internet, sans le contrôle d'une équipe de distribution. Le logiciel récupéré représente ainsi un risque de sécurité notable. Dans ces conditions mieux vaut généralement lui préférer les formats [[:snap]] et [[:Flatpak]], qui offrent les mêmes avantages sans la plupart des inconvénients (ils proviennent généralement de dépôts centralisés et leur mise à jour est automatiques). Cependant le choix ne se pose pas toujours, certaines applications n'étant distribuées que dans ce format. ===== Installer une AppImage ===== L'installation se déroule en quelques étapes : - À partir de la version Ubuntu [[:noble|Noble 24.04]], l'[[:tutoriel:comment_installer_un_paquet|installation du paquet]] ''[[apt>libfuse2t64]]'' est un pré-requis à l'utilisation d'une AppImage (à faire une seule fois sur chaque système Ubuntu). Pour Ubuntu [[:jammy|Jammy 22.04]], c'est le paquet ''[[apt>libfuse2]]'' qu'il faut [[:tutoriel:comment_installer_un_paquet|installer]]. Il était installé par défaut sur les versions précédentes. - Récupérer le fichier AppImage de l'application souhaitée, en le téléchargeant sur Internet (//attention à la confiance qu'on accorde au site// : vérifier l'utilisation du protocole HTTPS, et que le nom de domaine soit bien celui de l'éditeur ou d'un [[:git#principaux_depots_git|dépôt Git]]) ; - 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 sur le fichier depuis un [[:gestionnaire de fichiers]]. **Automatisation** : l’application **[[#AppImageLauncher]]** ou le service **[[#go_appimageappimaged|appimaged]]** permettent de gérer les points 4 et 5 automatiquement (autoriser l’exécution et créer un raccourci dans le menu d’Ubuntu) : * 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 ; * 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 est proposée. Ces logiciels simplifient 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 un des seuls formats de //[[:paquet|packaging]]// qui n'ait pas initialement été associé à un gestionnaire de paquet, ni dépôt particulier : il faut en principe chercher les applications en ligne soi-même. //Faites donc **attention** à la fiabilité du site// sur lequel vous vous procurez l'AppImage. Désormais il existe tout de même au moins deux dépôts qui tentent cette centralisation, mais semblent encore loin d'être exhaustifs : * le **[[https://appimage.github.io/apps/|AppImage store]]** officiel * et **[[https://www.appimagehub.com/|AppImageHub]]**. Des applications 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. ==== 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 fichier AppImage est en fait une archive, qui contient l'application et toutes les bibliothèques dont elle dépend. Si vous oubliez de le rendre exécutable, l'archive peut se monter comme un simple disque amovible, explorable avec un [[:gestionnaire de fichiers]] ! ===== Lancer une AppImage ===== Pour lancer une 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 entrer : ''~/Documents/appimage/audacity-linux-3.1.3-x86_64.AppImage''. - Créer **automatiquement** un [[:raccourci-lanceur|lanceur]] dans le menu des applications d'Ubuntu via **[[#AppimageLauncher]]** ou **[[#Go AppImage / appimaged|appimaged]]**. - 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, voir le chapitre //[[:raccourci-lanceur#Création d'un lanceur]]// : créer un fichier (texte simple) qu'on appellera ''//nom_du_programme//.desktop'' et dans lequel on colle les lignes suivantes (exemple ci-dessous pour le programme [[: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 une 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 sont généralement directement des applications exécutables, et pas des installateurs. Ils ne sont pas directement intégrés au système, et ne sont par exemple pas présents dans le [[:gnome-shell#l_appmenu|menu des applications]] ni les menus contextuels. 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 répertoire ''Applications'' dans votre [[:arborescence#répertoire personnel]] (''~/Applications/'') et d'y sauvegarder également les icônes de vos applications, afin de faciliter la création des lanceurs. Il existe diverses applications d'intégration des paquets **AppImage** au sein des différentes interfaces graphiques d'Ubuntu, entre lesquelles il faut //choisir// (elles sont généralement incompatibles les unes avec les autres) : ==== 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. ==== Levier de vitesse (Gear Lever en VO) ==== **[[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. ==== Go AppImage / appimaged ==== [[https://github.com/probonopd/go-appimage|Go AppImage]] est un ensemble d'outils développés par le créateur du format Appimage incluant **appimaged**. Celui-ci est un service permettant de rendre exécutable et d'intégrer automatiquement les applications Appimage à l'[[:environnements|environnement de bureau]]. C'est une solution plus moderne que **[[#AppImageLauncher]]**, et généralement recommandée. Ce service détecte les fichiers **AppImage** téléchargés, les rend exécutables, et créé automatiquement un [[:raccourci-lanceur|lanceur]] ''%%appimagekit_***.desktop%%'' dans le répertoire ''~/.local/share/applications'' (donc une icône / raccourci pour l'application). Ce lanceur est aussi supprimé ou mis à jour automatiquement avec le fichier AppImage de l'application. La procédure pour l'installer est décrite en anglais sur [[https://github.com/probonopd/go-appimage/blob/master/src/appimaged/README.md|cette page]] : # Supprimer les éventuels outils pré-existants susceptibles d'entrer en conflit systemctl --user stop appimaged.service || true sudo apt-get -y purge appimagelauncher || true [ -f ~/.config/systemd/user/default.target.wants/appimagelauncherd.service ] && rm ~/.config/systemd/user/default.target.wants/appimagelauncherd.service # Videz le cache rm "$HOME"/.local/share/applications/appimage* # Installez Firejail si vous le souhaitez (fournit des fonctionnalités de sandboxing) # Téléchargez mkdir -p ~/Applications wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous -O - | grep "appimaged-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2) -P ~/Applications/ chmod +x ~/Applications/appimaged-*.AppImage # Lancez ~/Applications/appimaged-*.AppImage Le fichier ''%%~/Applications/appimaged-***.AppImage%%'' est un //wrapper// pour les autres AppImages (une "pseudo application" qui sert à lancer les applications réelles). On peut vérifier le bon fonctionnement du service avec la commande : systemctl --user status appimaged ==== AppImageLauncher ==== **[[https://github.com/TheAssassin/AppImageLauncher|AppImageLauncher]]** et **[[#go_appimageappimaged|appimaged]]** sont les gestionnaires généralement recommandés 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.)) Ils ne sont cependant pas compatibles l'un avec l'autre ! Télécharger le paquet compilé ''.deb'' sur la page Github dédiée //[[https://github.com/TheAssassin/AppImageLauncher/releases|AppImageLauncher release builds]]// (la version AMD64 convient sur les ordinateurs classiques). 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 pour procéder automatiquement à son intégration au système. 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). ==== 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 ===== ==== FUSE ==== A partir de la version [[:jammy|Jammy 22.04]], Ubuntu n'inclut plus la librairie [[:FUSE]] en version 2 (''libfuse.so.2''), qui est pourtant nécessaire à l'exécution des anciennes Appimages, malheureusement encore souvent d'actualité. Les nouvelles Appimage (de [[https://github.com/TheAssassin/type3-runtime|type 3]]) sont conçues pour fonctionner avec la librairie [[:FUSE]] en version 3, qui est désormais installée par défaut sur Ubuntu. === Ubuntu 22.04 === Ubuntu [[:jammy|Jammy 22.04]] n'inclut plus la librairie ''libfuse.so.2'' (mais la version 3). Pour pouvoir exécuter une ancienne AppImage il est nécessaire d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>libfuse2]]'', mais cela crée parfois la casse du bureau Gnome !((voir ce [[https://bugs.launchpad.net/ubuntu/+source/fuse/+bug/1717878|rapport de bug]])) === Ubuntu 24.04 === Ubuntu [[:noble|Noble 24.04]] n'inclut plus non plus la librairie ''libfuse.so.2'' (mais aussi la version 3). Pour pouvoir exécuter une ancienne AppImage il est nécessaire d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>libfuse2t64]]''.((It's FOSS : //[[https://itsfoss.com/cant-run-appimage-ubuntu/|Can't Run AppImage on Ubuntu? Here's How to Fix it]]//)) ===== 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]]//