Rabi Siddique
451 words
2 minutes
Flatpak on Linux

Flatpak is a way to install and run apps on Linux. It works across all distributions — Arch, Ubuntu, Fedora, etc. Think of it like an app store for Linux.

Why Flatpak?#

On Linux, different distros have different package managers (pacman on Arch, apt on Ubuntu, dnf on Fedora). An app developer would need to package their app differently for each one. Flatpak solves this — the developer packages the app once, and it works everywhere.

Sandboxing#

The key idea behind Flatpak is sandboxing. When you install an app via your system package manager, it has broad access to your system. A Flatpak app runs inside its own isolated bubble. It gets its own separate space for storing data and can only access parts of your system that you explicitly allow.

For example, system Chrome stores its data in ~/.config/google-chrome/, while Flatpak Chrome stores it in ~/.var/app/com.google.Chrome/. They are completely independent — they don’t share bookmarks, extensions, or login sessions.

Installing Flatpak#

On Arch Linux, Flatpak itself is available via pacman:

sudo pacman -S flatpak

On Ubuntu:

sudo apt install flatpak

After installing, you’ll want to add Flathub — the main repository where Flatpak apps are hosted:

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

A reboot is recommended after setting this up for the first time.

Common Commands#

Install an app:

flatpak install flathub com.google.Chrome

Breaking this down:

  • flatpak install — the install command.
  • flathub — the remote repository to install from. This is the name you gave when you added the Flathub remote earlier. This is optional — if you omit it, Flatpak will search all configured remotes and prompt you to pick one if the app exists in multiple. If you only have Flathub configured, it’ll use that automatically.
  • com.google.Chrome — the application ID. Every Flatpak app has a unique reverse-DNS style ID (like org.mozilla.firefox, com.spotify.Client, com.visualstudio.code).

You can find app IDs by searching on flathub.org or from the terminal:

flatpak search chrome

This will show matching apps along with their application IDs, so you know exactly what to pass to flatpak install.

Run an app:

flatpak run com.google.Chrome

Though in practice, installed Flatpak apps show up in your app launcher like any other app.

List installed apps:

flatpak list

Update all Flatpak apps:

flatpak update

Uninstall an app:

flatpak uninstall com.google.Chrome

Remove unused runtimes and dependencies:

flatpak uninstall --unused

Things to Keep in Mind#

  • Flatpak apps are separate from system-installed apps. If you have Chrome installed via both pacman and Flatpak, they won’t share any data. This can cause subtle issues like the wrong browser opening when other apps try to open a link.
  • Flatpak apps can be larger in size because they bundle their own dependencies instead of using shared system libraries.
  • Some Flatpak apps may need extra permissions to access things like your filesystem, USB devices, or camera. You can manage these with a tool called Flatseal.

This blog post was written with the help of Claude.

Flatpak on Linux
https://rabisiddique.com/posts/flatpak/
Author
Rabi Siddique
Published at
2026-04-14