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)
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
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:
- Filesystem access — which folders the app can see
- Network access — whether the app can go online
- Device access — webcam, microphone, game controllers, etc.
- Display server — whether the app uses Wayland or X11
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
| Pros | Cons |
|---|---|
| Works on virtually every distro | Apps use more disk space (they bundle their own libraries) |
| Apps are sandboxed for better security | First launch can be a little slower than native packages |
| Huge selection of apps on Flathub | Some apps may need permission tweaks to work perfectly |
Easy updates with flatpak update | Theming can look inconsistent with your desktop |
| Fully open-source infrastructure | Uses 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
| Pros | Cons |
|---|---|
| Pre-installed on Ubuntu — zero setup | Slower startup than native packages (Snaps use compressed filesystem images) |
| Auto-updates in the background | Auto-updates can't be fully disabled (some users find this annoying) |
| Can package CLI tools and servers, not just GUI apps | The Snap Store backend is proprietary (not open source) |
| Apps are sandboxed | Smaller app selection compared to Flathub |
| Built-in rollback to previous versions | Loop 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.
# 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:
- Download the
.AppImagefile from the app's website - 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.
~/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
| Pros | Cons |
|---|---|
| Dead simple — download one file and run it | No automatic updates (you have to download new versions yourself) |
| No installation or root access needed | No 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 files | Doesn't integrate with your system menus automatically |
| Easy to test apps without committing to an install | Can 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:
- Use Flatpak if you want a reliable, well-supported way to install apps on any distro. This is the safe default.
- Use Snap if you're on Ubuntu and happy with the way things work out of the box. No need to fight it if it's not bothering you.
- Use AppImage when a specific app is only available in that format, or when you want to quickly test something without installing 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:
- System software — drivers, desktop environments, system utilities
- Developer tools — compilers, libraries, command-line utilities
- System updates — kernel updates, security patches
Universal formats are great for:
- Desktop apps — browsers, chat apps, media players, office suites, creative tools
- Apps not in your distro's repositories — some apps are only available via Flathub
- Getting the latest version — distro repos sometimes have older versions; Flathub usually has the newest
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.