Part II · Your system
24.2 Native packages vs Snap and Flatpak
alsosnapsnapsflatpakflathubappimagedebrpmsandboxed apps
TL;DR
- Native packages (deb, rpm, pacman) come from your distro, share its libraries, and are updated with the system.
- Snap (from Canonical) and Flatpak (mostly from Flathub) ship apps with their own runtime, in a sandbox, whatever the distro version.
- Snaps update themselves; Flatpaks update with
flatpak updateor your software center.
snap list
flatpak list --app
flatpak info --show-permissions org.gimp.GIMP
On your machine
$ atfq 24.2 dpkg 2 packages Snap 2 snaps Flatpak 3 apps
An example: Alice's laptop, one of the test machines. In your terminal, this block shows your own machine, read live.
Pitfalls
- The same app installed twice (deb and Flatpak, say) gives two menu entries, with separate settings.
- Sandboxed apps only see part of your files: widen access with
flatpak overrideor the Flatseal app. - They take more disk space: each app bundles, or shares, a runtime.
- On Ubuntu, some deb packages (firefox, chromium) only install the snap.
Deep dive 2 questions
Why do they exist?
A distro ships one version of each library for all its apps, so an app that needs a newer one waits for the next release. Snap and Flatpak cut apps loose from the distro: the developer builds once, and the app runs on many distros and versions.
Snap, Flatpak or AppImage?
Snap has one store, run by Canonical, and also packages server tools and even the system itself (Ubuntu Core). Flatpak is for desktop apps, with Flathub as the main source. AppImage is a third way: one file you download and run, with no install and no sandbox by default.