There are ways to install the 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 ways to do 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 an AppImage is and how to use AppImage to install applications in Linux. In addition, I’ll also tell you a few things you should keep in mind while using AppImage.
What is AppImage?
AppImage is a relatively new packaging format that gives you a click-to-run way of running applications in Linux. Unlike traditional DEB/RPM packages, AppImages can be used on any distribution and this is what makes them so attractive to the Linux users.
For years, we have DEB packages for Debian/Ubuntu-based Linux distributions and RPM packages for Fedora/SUSE-based Linux distributions.
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 the 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 the 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, and 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.
AppImage features
- Distribution agnostic: Can run on various different Linux distributions
- No need of installing and compiling software: Just click and play
- No need for root permission: System files are not touched
- Portability: Can be run anywhere including live disks
- Apps are in read-only mode
- Software is removed just by deleting the AppImage file
- Applications packaged in AppImage are not sandboxed by default.
How to use AppImage in Linux
Using AppImage is pretty simple. It is done in these three simple steps:
- Download AppImage file
- Make it executable
- Run it
Don’t worry, I’ll show you how to run AppImage in detail. I am using Ubuntu 22.04 in this AppImage tutorial, but you can also use the same steps on other Linux distributions. After all, the entire point of AppImage is to be independent of the distributions.
Step 1: Download the .appimage package
There is plenty of software that is available in AppImage format. Krita, Kdenlive, and OpenShot are just a few names. You can find an extensive list of applications available in AppImage format here.
I will be using the 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 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”.
Alternatively, if you prefer the command line, you can simply use the below command to make an AppImage file executable:
chmod u+x <AppImage File>
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?
If you are facing issues with AppImage in Ubuntu, this troubleshooting article may help you.
How to uninstall AppImage software
Since the software is never installed, there is no need to ‘uninstall’ it. For AppImages used according to Method 1, just delete the associated AppImage file and your software is removed from the system.
If you integrated the AppImage through AppImage Launcher, you can right-click on the application and select Remove AppImage from the system option.
This will ask you for confirmation.
Pressing OK will remove the AppImage and associated files from the system.
Optional: Use AppImage Launcher to to enhance your experience
In the previous method, in order to run an AppImage, you need to know the location of the AppImage file, and each time, you should go there and open it. This is a time-consuming process.
So there is a utility called AppImage Launcher for Linux, which allows you to manage the AppImage.
AppImage Launcher integrates your AppImage software with the application launcher. This means that the apps will now be available to be searched through the system application menu and you don’t need to go to the AppImage file each time.
For Ubuntu, there is a stable PPA available to install the AppImage Launcher.
sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt update
sudo apt install appimagelauncher
Once installed, you can open any AppImage file you downloaded by double-clicking. AppImage Launcher interface will be popped up and ask permission to integrate the AppImage with the system menu.
You can change the centralized AppImage file location to your liking by pressing the customize button. Also, in the above screenshots, you can toggle off the checkbox, which will automatically move the new AppImage to the specified location. Pressing the OK button will ask permission to either run once or integrate and run.
If you press run once, the application will run, but will not be integrated. So, in order to get the benefit, press “integrate and run”. This will move the AppImage to the specified location and the app will now be accessible from the system menu and can also be pinned to your dash or dock.
One convenience here is, you don’t even need to make the file executable. Everything will be done by AppImage Launcher.
Things to remember while using AppImage in Linux
There are a few additional things about AppImage that you should know.
1. Poorly packaged AppImage won’t run even with execution permission
The concept of AppImage is to have all the dependencies inside the package itself. But what if the developer thought that he had packaged all the dependencies 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:
abhishek@itsfoss:~/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 issues. If you encounter something like this, you should contact the developer and inform her/him about the issue.
2. Desktop integration without AppImage Launcher
When you run an 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 regularly installed application.
Your software will be searchable through GNOME or any application launcher. You can find it in the menu and lock it to the dash or Launcher.
You can, however, make (most) AppImage applications integrate with the desktop by using AppImage Launcher discussed above.
3. Desktop integration without AppImage Launcher 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. Unlike the AppImage Launcher, 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, remember that if you chose desktop integration and then moved the AppImage file to another 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 also depends on whether the developer provided this option.
In short, automatic updates are not always possible. It depends on whether the developer has added that feature or not. Most of the time, you’ll have to find on your own if a newer version of the software is available.
Conclusion
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.