AppImage¶
AppImage (former klik
, PortableLinuxApps
) is a format for Linux portable applications. Its major advantages are:
- It does not require root permissions.
- It does not require to install any application (it uses chmod +x).
- It does not require the installation of runtime or a daemon into the system.
AppImage might be used to distribute desktop applications, command-line tools and system services (daemons).
AppImage uses filesystem in user-space (FUSE). It allows to easily mount the images and inspect their contents.
The main steps of the packaging process are pretty straightforward and could be easily automated:
- Create a directory like
MyApp.AppDir
- Download the AppImage runtime (AppRun file) and put it into the directory.
- Copy all dependency files, like libraries (.so), resources (e.g. images) inside the directory.
- Fill the myapp.desktop configuration file with some brief metadata of your application: name, category…
- Run appimagetool.
The copy step can be automatically done with Conan using the json generator and a custom script or just using the deploy generator.
The result of the previous steps will give you a MyApp-x86_64.AppImage file, which is a regular Linux ELF file:
$ file MyApp-x86_64.AppImage
MyApp-x86_64.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.18, stripped
Finally, that file file could be easily distributed just by copying and uploading it to a Web or a FTP server, moving it to the flash drive, etc..