AppImage is a package format like Flatpak and Snap, which was created in 2013 as the successor to “PortableLinuxApps”. From the user’s point of view, AppImages are particularly easy to install – namely, not at all. All you have to do is download an AppImage, execute this file … and the program is up and running. The motto is: “one app = one file”.

In practice, however, it is not quite that simple. In order to run the AppImage file, it must first be made executable: And if you don’t want it to lie around in the download directory, you have to move it to a better place. According to Linux conventions, the appropriate place is the opt/ directory, although the AppImage developers rather favor a per-user apprach (installation to the home directory of the respective user) instead of a “global” one. And finally, in order to start the program from the menu or launcher of your desktop in the future, you have to create a .desktop file for the AppImage under ~/.local/share/applications/ (or system-wide under /usr/share/applications/). Later on, you have to take care of updates yourself. In order to “uninstall” AppImages, just delete the AppImage itself and the .desktop file.

Circumventing the Snap vs.Flatpak wars

This manual approach is necessary, because unlike for Snaps or for Flatpaks, Linux distributions usually don’t come with a built-in installation or upgrade mechanism for AppImages. On the other hand, anyone can use AppImages on any Linux system, so there is no need for Snap vs. a Flatpak wars. While the latter two have large companies behind them, namely Red Hat and Canonical, there is no large sponsor behind AppImages. Accordingly, they are also less widespread.

AppImageLauncher to the rescue

AppImageLauncher is a tool that automatically performs the steps described above to set up AppImages. Ubuntu users can install the application from a PPA recommended by the developer:

sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt install appimagelauncher

AppImageLauncher also runs on other distibutions: Packages of the launcher are available not only for Ubuntu, but also for Debian, Netrunner and OpenSuse, and recently in a lite version packaged as … an AppImage, what else?

As soon as you double-click a downloaded AppImage, AppImageLauncher hooks in and asks whether the application should be executed only once or integrated into the system. In the second case, a .desktop file is created and the application is moved to a folder ~/Applications. This folder and also the folders to be monitored for double-clicking AppImages (~/Downloads by default) can be customized. You can also select /opt as a target, but installing to this directory will not work because /opt requires root privileges by default. In this case, you would have to relax the rights for this directory or give your user (and possibly other users of the PC) the necessary rights, which makes this process inconvenient. As mentioned above, the AppImage developers share the oppionion that AppImages should not be installed “globally”.

By right-clicking on the application icon, one can also update or uninstall an AppImage under Gnome and other desktops that support this. Unfortunately, the update does not work in the PPA version of AppImageLauncher because no one has built a .deb package for libappimageupdate, a library required for such functionality.

Is there a “hub” for AppImages?

Snaps have the snap store, flatpaks have the flathub. There are also directories for AppImages, the largest being AppImages on Github and AppImageHub, both with well over 1,000 applications.

Documentation

The English-language AppImage documentation contains both a user guide, which describes the use of AppImages from the user’s point of view, and a packaging guide for developers who want to distribute their own or third-party applications as AppImages.