{{tag>sysadmin linux format appimage image}}
====== Le format AppImage ======
Le format **AppImage** est un format d'application portable/autonome. Une application empaquetée au format **AppImage** intègre toute les dépendances nécessaires à son fonctionnement. Elle peut ainsi s’exécuter sur de nombreuses distributions GNU/Linux simplement par copier coller et positionnement du droit d'exécution.
De nombreux logiciels sont à présent proposés sous ce format et téléchargeables directement sur les sites web appartenant auteurs/développeurs.
Les versions récentes d'Ubuntu intègrent un système équivalent : [[sysadmin/linux/snap| Snap]]
Puisque l'application est autonome, elle n'est pas intégrée au système de paquetage de la distribution GNU/Linux, elle doit être mise à jour par l'utilisateur ou intégrer son propre système de notification de mises à jours.
L'utilisateur n'a pas besoin de privilèges administrateur pour télécharger et lancer une application AppImage. Après téléchargement, le fichier doit être rendu exécutable par exemple via la commande **chmod**:
chmod u+x my_app_example.AppImage
===== Emplacements =====
Pas d'installation nécessaire, par convention les fichiers AppImage sont placés dans les répertoires:
* ''%%$HOME/Applications%%'' pour les applications avec interface graphique
* ''%%$HOME/.local/bin%%'' ou ''%%$HOME/bin%%'' pour les applications en CLI
===== Gestion des fichiers AppImage =====
Plusieurs logiciels proposent d'assister l'utilisateur dans la gestion des paquets AppImages (notamment pour les intégrer dans l'environnement de bureau virtuel):
* **[[software/applications/appimagelauncher|AppImageLauncher]]**: Permet de générer les lanceurs dans la plupart des environnements de bureaux virtuels.
* **App Outlet**: équivalent d'un market ou d'un store agnostique aux distributions proposant tous types d'applications portables aux formats AppImage, Flatpak ou Snap.
* **AppImage installer**: CLI télécharge et intègre les fichiers AppImage à l'environnement de bureau virtuel.
===== Prérequis : fuse =====
Sur de nombreuses distributions, il est **nécessaire** d'installer le composant [[https://github.com/AppImage/AppImageKit/wiki/FUSE|fuse (Filesystem in UserSpacE)]] pour pouvoir exécuter les applications AppImage.
Dans l'exemple ci-dessous la tentative d'exécution d'une application AppImage retourne une erreur :
./FreeCAD-0.21.2-Linux-x86_64.AppImage
dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information
Le système n'arrive pas à charger la bibliothèque fuse en version 2. Sur les versions Ubuntu récentes (>= 22.04), le système est livré avec fuse en version 3.
# Affiche la version du système
cat /etc/os-release | grep VERSION_ID
VERSION_ID="23.10"
# Affiche la version du paquet fuse
dpkg -l | grep fuse
ii fuse3 3.14.0-4 amd64 Filesystem in Userspace (3.x version)
Pour installer la bibliothèque fuse2 :
sudo add-apt-repository universe
sudo apt install libfuse2
===== Manipulation du format AppImage =====
==== Extraction des fichiers ====
Il est possible d'extraire les fichiers du paquet AppImage avec l'option **%%--appimage-extract%%**
# Extraction des fichiers de l'image dans le dossier courant
./myImage.AppImage --appimage-extract
==== Créer un fichier AppImage =====
:TODO:
==== Exécution hors sandbox ====
Normalement les images s'exécutent dans un environnement confiné (sandbox).
Dans certains cas il peut être utile de lancer l'application sans confinement :
===== Raccourcis / Lanceurs =====
Pour créer un raccourcis sur le bureau virtuel, confère le wiki [[sysadmin:linux:creer_icone_bureau_linux| créer un icône (lanceur)]].
===== Dépannages =====
==== Erreur "The SUID sandbox helper binary was found, but is not configured correctly." ====
Certaines applications refusent de se lancer et retourne un message du type :
The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_pia-3.vvemOE/chrome-sandbox is owned by root and has mode 4755.
Décompresser l'image et modifier les droits sur le fichier **chrome-sandbox** présent à la racine de l'arborescence de l'application :
# Décompresser l'image
/pia-3.0.3.AppImage --appimage-extract
cd squashfs-root/
sudo chown root: chrome-sandbox
sudo chmod 4755 chrome-sandbox
Le problème a été rencontré pour les applications Pia,[[software:applications:etcher]], [[software:applications:joplin]]
===== Références =====
* [[https://appimage.org/|Site officiel AppImage (appimage.org) ]]
* [[https://docs.appimage.org/index.html|Documentation sur le format AppImage (appimage.org)]]
* [[https://github.com/AppImage/AppImageKit|Outil de construction des paquets AppImage (github.com)]]
* https://www.appimagehub.com/
* https://www.numetopia.fr/comment-installer-et-utiliser-des-appimage-sous-linux/
* https://www.youtube.com/watch?v=dhhXbus-INw