How to Work with AppImages Under Debian

There was a time, not that long ago, when you had fairly limited choices for installing software on your Debian machine. Either you installed it from the official repositories, you crossed your fingers that the project had their own .deb package, or you installed it from source. Recently we’ve seen a veritable explosion of choice for installing software, which may or may not be a good thing depending on how you look at it. My personal favourite of the new batch is Flatpak, it’s simple and it work across most platforms. The competitor is Snap which does basically all the same things but it controlled by Canonical. There’s also AppImage which is what I’ll cover in this article.

So, if I like Flatpak, how come I’m covering AppImage? In my spare time I like to pretend I’m an engineer and as such as such I play around with FreeCAD. I’m no good at driving it (or making things) but I do like to draw things that I’ll never make. FreeCAD is a great piece of software but it’s up against some really tough commercial opposition so it doesn’t get the love it really deserves. Recently (Sept 2024) it announced it was soon to release version one which will mostly solve some long running issues that made the software difficult for inexperienced users. The key word it soon, in my experience that will be several months at least. FreeCAD is available via both the Debian repositories and Flatpak but neither will have the release candidates for version one. This is where AppImage comes in, it’s a way for projects to easily ship a project without the constraints that the Debian repositories or Flatpak would put on versioning with the benefit that the AppImage is also universal (across Linux distributions).

In this article I’ll show you what an AppImage is and how to install one on your Debian machine. I’ll be using FreeCAD as my example.

Does AppImage Actually Install the Application?

No, not in the traditional sense at least. The .appimage file is a completely self contained and application that comes with all the libraries and other files needed to run it bundled into the one immutable container. There’s no need to extraction or installation, it’s literally just that one file. That also means that to remove the application you just delete that one file.

How Do I Run an AppImage?

This is simple, it’s three steps at most and maybe only two depending on your desktop environment. The steps are:

  1. Download the AppImage
  2. Mark it as executable
  3. Run it

The second step may or may not be necessary depending on how your desktop environment handles the file. I’m running KDE and Dolphin (the file manager) appears to recognise the .AppImage extension. What this means is when I double click on the file it asks if I would like to run it and then it remembers that decision.

If you double click on the file and it doesn’t run you need to first mark it executable as your web browser won’t do this for you – that would be a massive security risk if it did. Simply right click on the file and select properties. Somewhere in the properties window that opens will be the ability to set the execute permission. Unfortunately I can’t offer much more help than that due to the multitude of desktop environments available. The permissions box for KDE is shown below. You can either choose “Is Executable” or use advanced permissions.

Either way, running the application is just a matter of double clicking on the file. It’s as easy as that. Note that your desktop environment might ask you if you really want to run the application. This is a warning to remind you that this is an application that you’ve downloaded from the Internet. It’s to make you stop and think about whether you got it from a trustworthy source.

Anything Else?

While you can certainly run an AppImage directly from your download folder I much prefer to create a folder in my home directory for the application and move the AppImage there. It just keeps everything neat and tidy and gives me somewhere for the files that application creates.

What About Application Preferences?

Wait a moment, I said the AppImage container was immutable so what happens to preferences? Like many applications AppImage applications typically store preferences in the ~/.config directory.

It’s worth pointing out that if an application has a built in update function it probably won’t work correctly with an AppImage because it’s immutable. The only option is to download the latest version of the AppImage.

Is There a Dedicated Launcher?

Yes, it’s called AppImage Launcher. I don’t use it and it’s not in the Debian repositories at the time of writing. It’s packaged for Ubuntu so it may or may not work on the version of Debian you are using. It is here.

A better alternative is to just create a manual entry in your desktop environments application launcher (start menu). This will, obviously, require manually cleaning up if you delete the AppImage.