Brief: This AppImage tutorial shows you how to use AppImage to install software and how to remove the applications it installed.
There are ways to install software in Ubuntu or any other Linux distribution. Downloading .deb or .rpm files and double click on them to install software is one of the most convenient way to that.
Recently, you might have noticed that some applications are downloaded with an extension .appimage. And you may wonder what are these .appimage files.
In this tutorial I’ll show you what is an AppImage and how to use AppImage to install applications in Linux. In addition to that, I’ll also tell you a few things that you should keep in mind while using AppImage.
A. What is AppImage?
While these packages provide a convenient way of installing software to their respective distribution users, it is not the most convenient for the application developer. The developers have to create multiple packages for multiple distributions. This is where AppImage comes into picture.
AppImage is a universal software package format. By packaging the software in AppImage, the developer provides just one file ‘to rule them all’. End user, i.e. you, can use it in most (if not all) modern Linux distributions
AppImage doesn’t install software in the traditional way
A typical Linux software will create files at various places, requiring root permission to make these changes to the system.
AppImage doesn’t do it. In fact, AppImage doesn’t really install the software. It is a compressed image with all the dependencies and libraries needed to run the desired software.
You execute the AppImage file, you run the software. There is no extraction, no installation. You delete the AppImage file, the software is removed (we’ll see about it later). You can compare it to .exe files in Windows that allow you to run the software without actually going through the installation procedure.
Let me list some of the features or benefits of AppImage.
- Distribution agnostic: Can run on various different Linux distributions
- No need of installing and compiling software: Just click and play
- No need of root permission: System files are not touched
- Portability: Can be run anywhere including live disks
- Apps are in read only mode
- Software are removed just by deleting the AppImage file
- Applications packaged in AppImage are not sandboxed by default.
B. How to use AppImage in Linux
Using AppImage is fairly simple. It is done in these 3 simple steps:
- Download AppImage file
- Make it executable
- Run it
Don’t worry, I’ll show you how to run AppImage in details. I am using Ubuntu 16.04 in this AppImage tutorial but you can use the same steps on other Linux distributions as well. After all, the entire point of AppImage is to be independent of the distributions.
Step 1: Download .appimage package
There are plenty of software that are available in AppImage format. GIMP, Krita, Scribus and OpenShot are just a few names. You can find an extensive list of applications available in AppImage format here.
I will be using OpenShot video editor in this tutorial. You can download it from its website.
Step 2: Make it executable
By default, the downloaded AppImage file won’t have the execution permission. You’ll have to change the permission on the file to make it executable. You don’t need root privilege to do that.
If you prefer the graphical way, just right click on the downloaded .appimage file and select Properties.
In the next screen, go to the Permissions tab and check the box that says “Allow executing file as program”.
That’s it. You have made the file executable.
Alternatively, if you prefer the command line, you can simply use chmod u+x <AppImage File> to make it executable.
Step 3: Run the AppImage file
Once you have made the AppImage file executable, just double click on it to run it. It will see the software running as you would have installed it on your system. Cool, isn’t it?
C. How to uninstall AppImage software
Since the software is never installed, there is no need of ‘uninstalling’ it. Just delete the associated AppImage file and your software is removed from the system.
D. Things to remember while using AppImage in Linux
There are few additional things about AppImage that you should know.
1. Poorly packaged AppImages won’t run even with execute permission
The concept of AppImage is to have all the dependency inside the package itself. But what if the developer thought that he had packaged all the dependency but that didn’t really happen?
In such cases, you’ll see that even giving execute permission to the AppImage does nothing. You click on the AppImage and nothing happens.
You can check if there is such an error by opening a terminal and running the AppImage like you run a shell script. Here’s an example:
[email protected]:~/Downloads$ ./compress-pdf-v0.1-x86_64\ \(1\).AppImage /tmp/.mount_compreWhr2rq/check: line 3: xterm: command not found Traceback (most recent call last): File "compress-pdf_Qt.py", line 5, in <module> from PyQt5 import QtCore, QtGui, QtWidgets ModuleNotFoundError: No module named 'PyQt5'
As you can see, the AppImage I was trying to run had some packaging issue. If you encounter something like this, you should contact the developer and inform her/him about the issue.
2. Desktop integration
When you run AppImage file, some software may prompt you to ‘install a desktop file’. If you select yes, your AppImage will be integrated with your Linux system like a regular installed application.
Which means that your software will be searchable through Unity or GNOME. You can find it in menu and lock it to the Plank or Launcher.
3. Desktop integration may require manual cleanup post removal
If you choose desktop integration, you’ll have a few files created in your system. The file size will only be in a few Kb though. When you delete the AppImage file, these desktop files remain in your system. You may leave it as it is or delete it manually.
4. Choose where you put the AppImage files
The downloaded AppImage files should arrive in the Download folder. But this might not be the best place to keep it as it gets cluttered over time. It is better to keep them in a separate directory for easier management.
Also keep in mind that if you chose desktop integration and then moved the AppImage file to some other location, you’ll have to remove the desktop files first. Else the desktop integration might not work.
5. Update is not always an option
Maybe some software will check for updates automatically and notify you about the availability of a newer version. But that’s not going to happen most of the time.
There is a command line option to check and update the software but that too depends if the developer provided this option or not.
In short, automatic updates are not always possible. It depends whether the developer has added that feature or not. Most of the time, you’ll have to find your own if there is a newer version of the software available.
There are other “universal Linux apps” such as Snap by Ubuntu and Flatpak by Fedora. Since this article was about using AppImage, I didn’t go into the Snap vs Flatpak vs AppImage debate.
To me, AppImage is a nice way to use software across Linux distributions. I do hope that the update process improves here to make it much more useful for end users.
What do you think of AppImage? Do you prefer to use AppImage in Linux over other formats? Share your views in the comments below.