Ubuntu Linux ships with tools — namely, apt-get and snap — that let you install packages designed to run on Ubuntu. But what if you want to install software that can run on any Linux distribution, not just Ubuntu?
AppImage is the solution. AppImage is a tool for installing software on Linux that works across all major Linux distributions, including but not limited to Ubuntu. On top of this, AppImage offers benefits such as the ability to run software without sudo or root privileges and to avoid having to extract and set up packages before you can run apps.
This article walks through everything you need to know about using AppImage on Ubuntu. It explains how AppImage works, how to install the AppImage tool on Ubuntu, how to install AppImage packages, and even the basics of how to create AppImage packages of your own on an Ubuntu system.
What Is AppImage?
AppImage is an open source tool for packaging and running software on any Linux distribution.
Related: What Is AppImage? Benefits, Drawbacks, and Getting Started
AppImage is designed based on the following principles:
- Each application that users want to run should be a single file. They shouldn't have to download multiple files, libraries, or dependencies to run a single app.
- The app installation process should be simple. There shouldn't be a need to extract a package or install different parts of the app to different parts of the file system, or for users to answer a lot of configuration questions during installation.
- Users should be able to run applications without superuser (i.e., root or sudo) privileges.
- The app management process should be consistent across Linux distributions, meaning that no matter which version of Linux you use, you can rely on the same tools and process for running and removing software.
These factors set AppImage apart from most other Linux package managers, including the package management software that is available by default on Ubuntu.
AppImage vs. apt-get and snap
If you use Ubuntu, you probably know that Ubuntu comes with its own tools for managing packages. All versions of Ubuntu include apt-get (or just apt for short), which can install software using what are known as Debian packages. In addition, modern versions of Ubuntu ship with snap, an alternative package manager that relies on snap packages.
Apt-get and snap are both similar to AppImage in that they let you install software based on packages. Both are also relatively easy to use.
Related: How to Install Ubuntu on a Computer or Virtual Machine
However, the major differences between AppImage on the one hand, and apt and snap on the other, are that:
- AppImage doesn't require root privileges, but you do need to be the root user (or use sudo) to install software with apt and snap. (Technically, you can use snap without being root, but only if you configure access rights properly using the polkit authorization framework.)
- AppImage works on any Linux distribution, not just Ubuntu. Apt and snap are also supported on other Linux distributions, but not all.
- AppImage application packages don't require the installation of other packages to resolve application dependencies. Apt doesn't work this way. (Snap packages are more similar to AppImage in this respect, given that snaps also don't require external packages to resolve dependencies.)
- AppImage packages are not installed in the conventional sense. You simply run them, without having to extract package components and move them into various parts of your file system.
AppImage is also comparable in some ways to Docker, which is another tool for packaging and running applications across Ubuntu or any other Linux distribution using containers. But Docker is mainly used for running server applications, whereas AppImage orients more toward the world of desktop apps.
Plus, Docker applications require an orchestration system, like Kubernetes, in order to work well at scale. There are no orchestration tools designed for AppImage apps because users typically only run a few AppImage apps at a time, whereas with Docker, they might run dozens or hundreds of containers.
How to Use AppImage on Ubuntu
Using AppImage on Ubuntu boils down to four simple steps:
Step 1: Install FUSE
AppImage doesn't require any special tools, but some AppImage apps require a utility called FUSE to run. FUSE is not installed by default in Ubuntu 22.04, but you can install it by running this command in a terminal:
sudo apt-get install fuse libfuse2
Step 2: Download an AppImage app
Next, download an AppImage app. You can find apps in online repositories like AppImageHub. Some developers also provide AppImage packages in their GitHub or GitLab repositories.
Once you've found a package, download and save it to your system using a web browser, or download it through the command line using a tool like wget:
For the purposes of this article, I downloaded a package for KDiskMark from AppImageHub and saved the file to my ~/home/Downloads folder on Ubuntu.
Step 3: Make the AppImage file executable
AppImage files need to be executable to run. You can add execution permission on the command line with a command like:
chmod +x TerminEv-latest-x86-64.AppImage
Or open up the folder that contains the package in a file browser, right-click the package's icon, select Properties and use the Permissions tab to make sure the box for executing the file is set:
Note that the configuration screen you see in a file browser may vary depending on which Ubuntu version and file browser you use.
Step 4: Run the app
Once you've set executable permissions, you can simply run the app.
To do this on the command line, type the name of your AppImage file preceded by the characters ./
Alternatively, double-click the package's icon in a file browser, or right-click on the icon and select the Run option.
Creating Desktop Shortcuts for AppImage on Ubuntu
If you plan to use an AppImage package on a regular basis, you may want to set up a desktop shortcut so you can access it easily, without having to navigate to its location within your file system.
To do this, first make sure that you save the AppImage file in a location where it will be permanently accessible. It doesn't really matter which location you choose as long as you have permissions to access it; you could create a folder inside your Home directory labeled "AppImage apps" and store AppImage images there.
Then, open up your favorite text editor (like gedit, which you can launch by typing "gedit" in a terminal) and create a file that defines the desktop shortcut. The file should contain the following lines:
[Desktop Entry] Name=YourApp Exec=/path/to/app.AppImage Icon=/path/to/nextcloud-icon.png comment=app Type=Application Terminal=false Encoding=UTF-8 Categories=Utility;
Note the bolded fields, which you should change based on the location where you chose to store your image and to whichever icon you'd like to display for the desktop shortcut.
You should also change the "Name" field based on the name of your app.
Once you've entered the right values, save your file to your Desktop directory (i.e., /home/yourusername/Desktop). The desktop launcher should now be visible. If double-clicking on the icon doesn't launch your app, right-click to open the Properties window and make sure permissions are set to allow the launcher to run as a program. This may be necessary even if you already set executable permissions for the AppImage file itself, since the image file is different from the desktop shortcut file.
You can also add the launcher to your applications menu by copying it to the /usr/share/applications directory with a command like:
sudo cp /home/yourusername/YourApp.desktop /usr/share/applications/
How to Remove AppImages on Ubuntu
Because AppImage packages don't install themselves to the Ubuntu file system, the only thing you have to do if you want to uninstall an AppImage is remove the file you downloaded.
You can do that by right-clicking on the file inside a file browser and selecting the option to delete it or move it to the trash. Or remove it on the command line with:
You'll also want to remove any .desktop launchers that you created for the app in your Desktop and/or /usr/share/applications folders.
How to Create and Distribute an AppImage on Ubuntu
Creating your own AppImage package for use on Ubuntu or any other Linux distribution is relatively simple, by the standards of package management.
The exact steps depend on which type of app you are packaging, but they typically boil down to:
- Creating a .yml file. This is a configuration file that defines the contents of your app.
- Using a tool called pkg2appimage to build an AppImage package based on the configuration you define in the .yml file.
Importantly, these steps, which are detailed in the AppImage documentation, assume your application is already packaged in a different format. If you instead are working with application source code or raw binaries, you'll need to follow a longer process that will in many cases require you to compile code. Check out this guide for the details.
Once you've created an AppImage package, you can publish it to a repository to distribute it to other Ubuntu users.
Conclusion: The Benefits of AppImage for Ubuntu
AppImage is certainly not the only way to run software packages on Ubuntu. But it's simpler and faster in many respects than using apt and snap, the more common software installation tools for Ubuntu. Plus, if you use multiple Linux distributions, AppImage offers the benefit of enabling you to manage and run software in a consistent way, without relying on distribution-specific tooling.
About the authorChristopher Tozzi is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.