Flatpak has emerged as a pivotal technology in the modern Linux ecosystem, offering a standardized and sandboxed way to distribute and run applications. Unlike traditional package managers that often install software system-wide, Flatpak applications are self-contained, meaning they bundle their own dependencies. This isolation offers significant advantages, particularly in terms of security, stability, and the ability to run multiple versions of the same application simultaneously. For users seeking a streamlined and modern approach to software management, understanding and implementing Flatpak is essential. This guide will walk you through the process of installing Flatpak on various Linux distributions, configuring it, and beginning to leverage its benefits.

Understanding Flatpak: A Modern Approach to Application Distribution
Before diving into the installation process, it’s beneficial to grasp the core concepts behind Flatpak. At its heart, Flatpak is a universal package system for Linux. Its primary goal is to simplify the distribution of desktop applications, allowing developers to package their software once and have it run on any Linux distribution that supports Flatpak. This universality is achieved through a combination of containerization technologies and a clever dependency management system.
The Power of Sandboxing and Isolation
One of Flatpak’s most compelling features is its sandboxing capabilities. Each Flatpak application runs in an isolated environment, separate from the rest of the system. This isolation significantly enhances security. If a Flatpak application were to be compromised, the damage would be confined to the sandbox, preventing it from affecting the host operating system or other applications. This is a stark contrast to traditional installation methods where an application might have broad access to system resources.
Furthermore, sandboxing resolves the perennial “dependency hell” problem that has plagued Linux users for years. Developers can include specific versions of libraries and runtimes their applications need without worrying about conflicts with system-installed packages or other applications. This means users can often install the latest versions of their favorite software, even if their distribution’s repositories are lagging behind.
Runtimes and Applications: The Building Blocks
Flatpak’s architecture is built around two fundamental concepts: runtimes and applications. Runtimes are collections of shared libraries and dependencies that multiple applications can utilize. Think of them as the foundational components that applications are built upon. By sharing common runtimes, Flatpak reduces disk space usage and speeds up installations, as only unique dependencies need to be downloaded for each application.
Applications, on the other hand, are the actual software packages that users interact with. They are built on top of specific runtimes and contain all the necessary code and assets to function. This modular design allows for efficient updates and maintenance of both the underlying system components and the end-user applications.
Flathub: The Central Repository
While Flatpak itself is the packaging technology, Flathub serves as the primary, community-driven repository for Flatpak applications. It’s akin to a curated app store for Linux, offering a vast and ever-growing collection of popular software, from productivity suites and creative tools to development utilities and games. Installing Flatpak on your system is the first step; then, you’ll typically add the Flathub remote to access its extensive library.
Installing Flatpak on Your Linux Distribution
The installation process for Flatpak varies slightly depending on your specific Linux distribution. Most major distributions offer Flatpak in their official repositories, making it a straightforward process.
Debian and Ubuntu-Based Systems
For Debian, Ubuntu, Linux Mint, and their derivatives, Flatpak can be installed using the apt package manager. Open a terminal and execute the following command:
sudo apt update
sudo apt install flatpak
After the installation is complete, it’s highly recommended to reboot your system to ensure that all necessary system services are properly initialized and can recognize Flatpak.
Fedora
Fedora has excellent built-in support for Flatpak. In fact, it’s often pre-installed on recent Fedora Workstation releases. If it’s not, you can install it via dnf:
sudo dnf install flatpak
As with Debian/Ubuntu, a system reboot after installation is a good practice.
Arch Linux and Manjaro
On Arch Linux and its derivatives like Manjaro, Flatpak is available in the official repositories. Use pacman to install it:
sudo pacman -S flatpak
Again, a reboot is advisable after the installation.
openSUSE
For openSUSE users, Flatpak can be installed using zypper:
sudo zypper install flatpak
A system restart is recommended.
Other Distributions
For distributions not explicitly listed, you can typically find Flatpak in their respective package repositories. Consult your distribution’s documentation for the correct package manager and command. If Flatpak is not available in your distribution’s repositories, you can also build it from source, though this is a more advanced procedure and generally not recommended for most users.
Configuring Flatpak and Adding Remotes
Once Flatpak is installed, the next crucial step is to configure it and add application sources. The primary source for Flatpak applications is Flathub, so we’ll focus on adding that remote.
Adding the Flathub Remote
The Flathub repository hosts a vast array of applications. To add it to your Flatpak configuration, open a terminal and run:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
This command adds Flathub as a remote source. The --if-not-exists flag ensures that if you already have Flathub added, the command won’t produce an error.
Verifying the Installation and Remote
To confirm that Flatpak is installed correctly and that Flathub has been added, you can run a few commands. First, check the Flatpak version:
flatpak --version
Next, list the currently configured remotes:
flatpak remotes
This should show flathub in the output. You can also try searching for an application to ensure the remote is working:
flatpak search firefox
If you see Firefox listed, your Flatpak installation and Flathub remote are configured correctly.
Installing Desktop Environment Integration (Optional but Recommended)
For a seamless user experience, it’s highly recommended to install the Flatpak integration for your desktop environment. This integration typically adds Flatpak applications to your application menu, allowing you to launch them just like any other installed application.

-
For GNOME:
sudo apt install gnome-software-plugin-flatpak # Debian/Ubuntu sudo dnf install gnome-software-plugin-flatpak # Fedora sudo pacman -S gnome-software-plugin-flatpak # Arch/Manjaro sudo zypper install gnome-software-plugin-flatpak # openSUSEAfter installation, restart GNOME Software (or your system) and you should see Flatpak apps appear.
-
For KDE Plasma:
bash
sudo apt install plasma-discover-backend-flatpak # Debian/Ubuntu
sudo dnf install plasma-discover-backend-flatpak # Fedora
sudo pacman -S plasma-discover-backend-flatpak # Arch/Manjaro
sudo zypper install plasma-discover-backend-flatpak # openSUSE
After installation, restart Discover (or your system).
These plugins allow you to browse, install, and manage Flatpak applications directly from your distribution’s software center.
Managing Flatpak Applications
With Flatpak installed and Flathub added, you’re ready to start installing and managing applications. Flatpak provides a set of commands for this purpose.
Installing Applications
To install an application from Flathub, you first need its application ID. You can find this ID by searching on the Flathub website (flathub.org) or by using the flatpak search command. For example, to install the latest version of Firefox:
flatpak install flathub org.mozilla.firefox
The flatpak install command will prompt you to confirm the installation and download the necessary runtime and application data. This can take some time depending on your internet connection and the size of the application.
Listing Installed Applications
To see a list of all Flatpak applications and runtimes currently installed on your system, use the following command:
flatpak list
This command will display the application ID, version, branch, and installation directory for each installed item.
Running Applications
Once an application is installed, you can run it using its application ID:
flatpak run org.mozilla.firefox
If you’ve installed the desktop environment integration, the application will also appear in your system’s application menu, and you can launch it from there.
Updating Applications and Runtimes
Keeping your Flatpak applications and runtimes up-to-date is crucial for security and stability. Flatpak provides a command to update all installed items:
flatpak update
This command will check all configured remotes for newer versions of installed applications and runtimes and prompt you to install them.
Uninstalling Applications
If you no longer need a Flatpak application, you can uninstall it using its application ID:
flatpak uninstall org.mozilla.firefox
This command will remove the application and any associated data.
Managing Runtimes
Runtimes are shared dependencies. Flatpak automatically manages them, installing new ones as needed and keeping track of which applications depend on them. You can list installed runtimes with:
flatpak list --runtime
Flatpak also has a command to clean up unused runtimes, which can help free up disk space:
flatpak uninstall --unused
This command will identify and offer to remove any runtimes that are no longer required by any installed applications.
Advanced Flatpak Concepts and Troubleshooting
As you become more familiar with Flatpak, you might encounter more advanced use cases or troubleshooting scenarios.
Permissions and Portals
The sandboxing mechanism of Flatpak is robust, but it can sometimes limit the functionality of applications if they need access to certain system resources or features. Flatpak uses a system called “portals” to grant applications controlled access to host system features in a secure and standardized way. Examples include portals for file choosers, print dialogs, and desktop notifications.
When an application requests access to a resource it doesn’t have permission for, a portal might be invoked to ask the user for permission. For example, if a Flatpak application needs to save a file, a file chooser portal will appear, allowing you to select a location on your system.
You can inspect and manage permissions for individual Flatpak applications using the flatpak override command. For instance, to grant an application access to your home directory:
flatpak override --user --filesystem=$HOME org.example.MyApp
Caution: Modifying permissions should be done with care, as it can potentially weaken the security benefits of sandboxing. Always understand what a permission does before granting it.
Branches and Versions
Flatpak applications can have different “branches,” which often correspond to different release versions or stability tracks (e.g., stable, beta, master). When installing, you can specify a branch if you don’t want the default (usually stable):
flatpak install flathub org.example.MyApp --branch=beta
This allows you to test development versions or stick to a specific stable release line.
Troubleshooting Common Issues
- Applications not appearing in the menu: Ensure you have installed the correct desktop environment integration package for your specific desktop environment. Restarting your session or the software center may be necessary.
- Installation errors: Check your internet connection and ensure your disk has sufficient free space. Sometimes, clearing the Flatpak cache can resolve issues:
flatpak uninstall --all --noninteractivefollowed byflatpak uninstall --unused. - Application crashes or misbehavior: This could be due to a bug in the application itself, a conflict with a permission, or an issue with the runtime. Try running the application from the terminal to see if any error messages are displayed:
flatpak run org.example.MyApp. You can also check the Flathub issue tracker for known problems. - Disk space usage: Over time, Flatpak can consume significant disk space with multiple runtimes and applications. Regularly use
flatpak uninstall --unusedto clean up orphaned runtimes.

Removing Flatpak Entirely
If you decide that Flatpak is not for you, you can uninstall it and remove all installed Flatpak applications and runtimes. The exact steps might vary slightly, but generally, you would:
- Uninstall all Flatpak applications:
flatpak uninstall --all - Remove the Flathub remote:
flatpak remote-delete flathub - Uninstall the Flatpak package itself using your distribution’s package manager (e.g.,
sudo apt remove flatpak,sudo dnf remove flatpak,sudo pacman -R flatpak,sudo zypper rm flatpak). - Remove the desktop integration packages.
By following these steps, you can effectively install, configure, and manage Flatpak applications on your Linux system, opening the door to a more flexible and modern software experience.
