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..