Flatpak, Snap & AppImage

Universal app formats that work on every Linux distro. Install apps without worrying about which distro you're on.

The Problem These Solve

Every Linux distro has its own package manager and its own way of packaging software. Ubuntu uses APT, Fedora uses DNF, Arch uses pacman — and the app you want might be available on one but not the other, or packaged in different versions.

This is a headache for app developers, too. If you make an app and want everyone on Linux to use it, you'd have to package it separately for Ubuntu, Fedora, Arch, openSUSE, and every other distro out there. That's a lot of work.

Universal app formats solve this by letting developers package their app once and have it work on any distro. There are three main ones: Flatpak, Snap, and AppImage. Each takes a different approach, but they all have the same goal: get you the apps you want, no matter which Linux distro you're running.

Flatpak

Flatpak is the most popular universal app format in the Linux community. Apps are downloaded from a central catalog called Flathub (think of it like an app store), and each app runs in a sandbox — a walled-off area that limits what it can access on your system. This makes Flatpak apps safer by default.

Many distros ship with Flatpak already set up (Fedora, Linux Mint, Pop!_OS). Others need a quick install first.

Installing Flatpak on Your Distro

# Ubuntu / Debian
sudo apt install flatpak

# Fedora (usually already installed)
sudo dnf install flatpak

# Arch / Manjaro
sudo pacman -S flatpak

# Linux Mint (already installed by default)
Restart after installing. After installing Flatpak for the first time, log out and back in (or reboot) so your system recognizes Flatpak apps in menus and launchers.

Add Flathub

Flathub is the main repository where Flatpak apps live. You need to connect to it once:

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

On some distros like Fedora or Mint, Flathub may already be configured. Running the command above won't hurt — it'll just say it already exists.

Install, Update, and Remove Apps

# Search for an app
flatpak search firefox

# Install an app
flatpak install flathub org.mozilla.firefox

# Run an app
flatpak run org.mozilla.firefox

# Update all your Flatpak apps
flatpak update

# Remove an app
flatpak uninstall org.mozilla.firefox

# Remove an app AND its data
flatpak uninstall --delete-data org.mozilla.firefox

# See everything you have installed
flatpak list

# Clean up unused runtimes and leftover data
flatpak uninstall --unused
Tip: You don't need to memorize app IDs like org.mozilla.firefox. When you run flatpak install flathub firefox, it'll search and ask you to confirm the right one.

Browse Apps on Flathub

The easiest way to find Flatpak apps is to visit flathub.org in your browser. You can browse by category, see screenshots, read descriptions, and click an install button that opens your software center. It's the closest thing Linux has to a polished app store.

Managing Permissions with Flatseal

Because Flatpak apps run in a sandbox, they don't automatically get access to everything on your system. Sometimes an app might not be able to see your files, access your webcam, or use a specific folder.

Flatseal is a simple graphical tool that lets you control what each Flatpak app is allowed to do. Think of it as a permissions manager — like the one on your phone that lets you decide which apps can use your camera or location.

# Install Flatseal
flatpak install flathub com.github.tchx84.Flatseal

Open Flatseal, pick an app from the list on the left, and you'll see toggles for things like:

Most of the time, app permissions are already set correctly. You'll only need Flatseal if something isn't working (like an app can't see your Downloads folder) or if you want to lock down an app you don't fully trust.

Flatpak: Pros and Cons

ProsCons
Works on virtually every distroApps use more disk space (they bundle their own libraries)
Apps are sandboxed for better securityFirst launch can be a little slower than native packages
Huge selection of apps on FlathubSome apps may need permission tweaks to work perfectly
Easy updates with flatpak updateTheming can look inconsistent with your desktop
Fully open-source infrastructureUses shared runtimes that take extra space on first install

Snap

Snap is Canonical's universal app format. Canonical is the company behind Ubuntu, and Snap comes pre-installed on Ubuntu. It works similarly to Flatpak — apps are sandboxed and installed from a central store — but the backend infrastructure is different.

Snaps can package more than just desktop apps. Server software, command-line tools, and even entire desktop environments can be distributed as Snaps.

Using Snap

If you're on Ubuntu, Snap is already set up. On other distros, you'd need to install the snapd service first, though most non-Ubuntu users prefer Flatpak instead.

# Search for an app
snap find firefox

# Install an app
sudo snap install firefox

# See what's installed
snap list

# Update all snaps (they also auto-update in the background)
sudo snap refresh

# Remove a snap
sudo snap remove firefox

# See info about a snap
snap info firefox

The Snap Store

You can browse available Snaps at snapcraft.io/store. On Ubuntu, the built-in "Ubuntu Software" app is actually a frontend for the Snap Store, so you can install Snaps just by clicking buttons in a graphical window.

Snap: Pros and Cons

ProsCons
Pre-installed on Ubuntu — zero setupSlower startup than native packages (Snaps use compressed filesystem images)
Auto-updates in the backgroundAuto-updates can't be fully disabled (some users find this annoying)
Can package CLI tools and servers, not just GUI appsThe Snap Store backend is proprietary (not open source)
Apps are sandboxedSmaller app selection compared to Flathub
Built-in rollback to previous versionsLoop devices show up in lsblk output (cosmetic but confusing)
How to remove Snap from Ubuntu

Some Ubuntu users prefer to remove Snap entirely and use Flatpak instead. This is totally optional — Snap works fine for most people. But if you want to go Snap-free, here's how.

Heads up: On Ubuntu, the Firefox browser and the Software Center are Snaps by default. Removing Snap means you'll need to reinstall these apps through other means (like Flatpak or a PPA). Make sure you have a backup browser available before doing this.
# Step 1: List installed snaps so you know what you'll lose
snap list

# Step 2: Remove all installed snaps one by one
# (remove Firefox and Software Center last)
sudo snap remove --purge snap-store
sudo snap remove --purge firefox
sudo snap remove --purge gtk-common-themes
sudo snap remove --purge gnome-42-2204    # version may differ
sudo snap remove --purge core22           # version may differ
sudo snap remove --purge bare
sudo snap remove --purge snapd

# Step 3: Remove snapd itself
sudo apt remove --autoremove snapd

# Step 4: Prevent snapd from being reinstalled as a dependency
sudo mkdir -p /etc/apt/preferences.d
cat <<EOF | sudo tee /etc/apt/preferences.d/no-snap.pref
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOF

# Step 5: Clean up leftover snap directories
sudo rm -rf /snap /var/snap /var/lib/snapd ~/snap

# Step 6: Install Flatpak as a replacement (optional but recommended)
sudo apt install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

After rebooting, install Firefox via Flatpak or from Mozilla's official APT repository.

AppImage

AppImage takes the simplest possible approach: the entire app is a single file. You download it, make it executable, and run it. No installation, no package manager, no root password needed. It's the closest thing Linux has to a portable Windows .exe.

How to Use an AppImage

There are just three steps:

  1. Download the .AppImage file from the app's website
  2. Make it executable — either right-click the file, go to Properties > Permissions > check "Allow executing as program," or use the terminal:
# Make it executable
chmod +x SomeApp.AppImage

# Run it
./SomeApp.AppImage

That's it. The app runs directly from that file. If you want to "uninstall" it, just delete the file.

Tip: You can put your AppImages anywhere you like — your home folder, a dedicated ~/Applications folder, your desktop, wherever. They don't install files across your system.

Finding AppImages

There's no single "app store" for AppImages, but AppImageHub maintains a catalog of available apps. Many projects also offer AppImage downloads directly on their GitHub releases page or website.

AppImage: Pros and Cons

ProsCons
Dead simple — download one file and run itNo automatic updates (you have to download new versions yourself)
No installation or root access neededNo sandboxing — the app has the same access as any other program you run
Completely portable (can run from a USB stick)No central app store or catalog
Doesn't touch your system filesDoesn't integrate with your system menus automatically
Easy to test apps without committing to an installCan be larger files since each bundles everything it needs

Comparison: Flatpak vs Snap vs AppImage

Feature Flatpak Snap AppImage
Installation From Flathub via terminal or software center From Snap Store via terminal or Ubuntu Software Download a file, make executable, run
Sandboxing Yes (with permission controls via Flatseal) Yes No
Auto-updates Manual (flatpak update), or via software center Yes, automatic in background No (must re-download manually)
App selection Large (Flathub has thousands of apps) Moderate Varies (depends on individual projects)
Open source Fully open source (client and server) Client is open source, store backend is proprietary Fully open source
Desktop integration Good — apps appear in your menus Good — apps appear in your menus Manual — you need to create menu entries yourself
Startup speed Slightly slower than native on first launch Noticeably slower on first launch Similar to native
Disk usage Shared runtimes save space across apps Each snap is self-contained Each file is self-contained
Works on Most distros Mostly Ubuntu; available on others Any distro
CLI tools & servers Focused on desktop apps Yes — can package anything Mostly desktop apps

Which Should You Use?

For most people, Flatpak with Flathub is the best choice. It has the biggest app catalog, works on every major distro, and the sandboxing gives you an extra layer of security. The Linux community has broadly rallied around it, and it's the default on Fedora, Mint, and many other distros.

Here's a quick way to think about it:

And honestly? You don't have to pick just one. It's perfectly fine to use Flatpak for most apps, keep a few Snaps around if you're on Ubuntu, and grab the occasional AppImage when that's what a developer offers. They all coexist without problems.

How These Relate to Your Distro's Package Manager

Flatpak, Snap, and AppImage don't replace your distro's built-in package manager — they complement it.

Your distro's package manager (APT, DNF, pacman, etc.) is still the right tool for:

Universal formats are great for:

Think of it this way: your distro's package manager handles the foundation, and universal formats handle the apps you use day to day on top of it. Together, they cover everything you need.