Every Linux newcomer hits the same wall: the app they want is either too old in their distro's repositories, or not there at all. On a long-term-support release, GIMP, OBS Studio, or LibreOffice can lag a year behind the current release. Flatpak fixes that without asking you to switch distros or add shady third-party repositories. It is a universal packaging system: one Flatpak package runs on Ubuntu, Fedora, Arch, openSUSE, and nearly everything else, bundled with the libraries it needs and sandboxed from the rest of your system.

What Flatpak actually does

A traditional package manager installs an app into the shared system, where it depends on the exact library versions your distro ships. A Flatpak instead bundles the app with its own runtime, a shared base layer of common libraries, and runs it inside a sandbox with limited access to your files, camera, and microphone.

First, apps stay current independently of your distro release. Flathub, the main Flatpak app store, ships the latest stable version of most desktop apps, so an Ubuntu LTS user can run the same GIMP as an Arch user. Second, apps are isolated by default. An app only sees what you explicitly allow, which is great for security and occasionally confusing when an app cannot find your files. Both points matter, and this guide covers both.

Prerequisites

You need a Linux desktop with a terminal and an internet connection. The commands below use sudo; on distros without sudo configured, run them as root instead. If you are still deciding between install methods, read our comparison of apt, Flatpak, and Snap first, it explains when each one is the right call.

Step 1: Install Flatpak

Flatpak is already preinstalled on Fedora Workstation, Linux Mint, Pop!_OS, and elementary OS. On the rest, one command does it:

BASH
# Ubuntu, Debian, Linux Mint (if missing)
sudo apt update && sudo apt install flatpak

# Fedora
sudo dnf install flatpak

# Arch Linux and derivatives
sudo pacman -S flatpak

# openSUSE
sudo zypper install flatpak

Verify the install with flatpak --version. Any recent version works fine; the command line has been stable for years.

Step 2: Add Flathub

Flatpak without an app source is an empty shelf. Flathub is the store most people mean when they say Flatpak, and adding it is one command:

BASH
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Log out and back in after adding it. On GNOME and KDE, the software center only picks up the new remote after a fresh login, and skipping this is the most common reason the next command cannot find an app.

Step 3: Install your first app

With Flathub added, install apps from the terminal or from your software center. The terminal is faster and shows you exactly what is happening:

BASH
# Search for an app
flatpak search firefox

# Install it (answer y when asked)
flatpak install flathub org.mozilla.firefox

# Run it
flatpak run org.mozilla.firefox

Notice the identifier format, org.mozilla.firefox. Every Flatpak app has one, and it is the reliable way to refer to an app when two programs share a similar name. Your desktop's software center, GNOME Software or KDE Discover, lists the same apps with a Flathub badge once the remote is active.

Step 4: Update, list, and remove apps

Flatpak updates apps independently of system updates. Make flatpak update a weekly habit:

BASH
# Update all Flatpak apps and runtimes
flatpak update

# List installed apps
flatpak list --app

# List the runtimes underneath them
flatpak list --runtime

# Remove an app (its data stays unless you add --delete-data)
flatpak uninstall org.mozilla.firefox

Runtimes are the shared library layers apps sit on, and they accumulate. An app you uninstalled may leave its runtime behind, and runtimes for old versions linger after upgrades. Clean them up with one command:

BASH
flatpak uninstall --unused

Run it after every uninstall round. On a laptop with a small disk, neglected runtimes can quietly eat several gigabytes, the same class of problem as the full-disk spiral on a server, just at desktop scale.

Step 5: Fix permissions with Flatseal

The sandbox is Flatpak's best feature and its most confusing one. An app that cannot open a file, cannot see your webcam, or cannot talk to another app is usually not broken, it is sandboxed. The fix is Flatseal, a graphical permissions editor for Flatpak apps:

BASH
flatpak install flathub com.github.tchx84.Flatseal

Open Flatseal, pick the app, and toggle what it needs. The three toggles that solve most real problems are filesystem access (give an editor access to your Documents folder, or your whole home directory if you trust it), camera and microphone for video calls, and permission to run in the background for apps that sync or notify. Prefer the narrowest access that works: give a text editor your Documents folder, not your entire home directory.

BASH
# Let an app see your home directory
flatpak override --user --filesystem=home org.gimp.GIMP

# Undo it later
flatpak override --user --reset org.gimp.GIMP

The --user flag keeps the change in your own account instead of system-wide, which is the right default on a shared machine. The terminal equivalent of a Flatseal toggle is one command:

Common problems and their fixes

"App not found" after adding Flathub. You skipped the logout step, or the remote was added for your user while the software center runs as the system. Log out and back in, then try flatpak search again.

Two copies of the same app. You now have both the distro package and the Flatpak of one program, and your launcher shows whichever it finds first. Decide which one you want and remove the other. Keep one source per app, the same discipline as in the apt, Flatpak, and Snap comparison.

Flatpak eats disk space. Run flatpak uninstall --unused and flatpak update. If an app still misbehaves after a bad update, flatpak repair --user checks installed files against their checksums and re-downloads the damaged ones.

Verify your setup

Run these three commands. All three should succeed without errors:

Run these three commands. All three should succeed without errors:

BASH
flatpak --version
flatpak remotes
flatpak list --app

flatpak remotes should list flathub, and flatpak list --app should show at least one app. If all three check out, you have a working universal app layer: new apps arrive from Flathub the day they are released, and every app runs in a sandbox you can inspect and adjust. Before a big round of installs, it is still worth taking a Timeshift snapshot so you can roll the whole system back if an experiment goes sideways.

Flatpak will not replace your package manager, and it should not. Native packages remain the right choice for system tools, drivers, and anything tightly integrated with your desktop. But for desktop apps you want current, sandboxed, and identical across distros, Flatpak is the closest thing Linux has to a single app store.

Sources