General Discussion Tools

AppImage, Flatpak, and Snap from a Software Deployment Perspective

AppImage, Flatpak, and Snap
Written by Martins D. Okoi

We explained what Flatpak, Snap, and AppImage are in the article How Do They Stack? published over 2 years ago and while the technologies have improved a lot since that time, I’m evaluating them from the perspective of a software developer.

Sandboxing / Confinement

You can run AppImage without sandboxing as well as use it with different sandboxes e.g. AppArmor and Firejail.

Snap can run without sandboxing but you cannot use it with different sandboxes as it is tightly coupled to AppArmor.

Flatpak can neither run without sandboxing nor can it be used with different sandboxes other than Bubblewrap.

Installation / Execution

One can run an AppImage after setting the executable without root access, without decompressing it, and on an offline system.

Snap needs to be installed by snapd, cannot run without root access until after it is installed nor can its downloadable file be placed next to .exe and .dmg which users can install on offline systems, but it can run from an uncompressed source.

Flatpak needs to be installed by a Flatpak client-side tool, cannot run without root access until after installation, cannot run from an uncompressed source. Also, .flatpakref files require Internet and .flatpak bundles require a run-time to be installed.

AppImage can store and run applications from non-standard locations such as CD-ROM and network shares. Flatpak can do the same after some configuration, while Snap currently can’t.

  Flatpak - Makes Software Installation Easy on All Linux Distros

In this section, AppImage takes the cake because its applications are more flexible.

Application Distribution & Updates

The central repository for Flatpak and Snap is FlatHub, and Snap Store respectively. Users can download AppImages from AppImageHub which is a cataloguing platform for software available as AppImage bundles.

Unlike AppImage and FlatPak, however, the Snap Store is the only dominant app store with one repo per device. Whether that is a good or bad thing is for you to decide.

Apps packaged using all 3 methods can have multiple versions running in parallel and can be easily copied to another machine. However, they have their unique implementations.

All 3 support binary delta updates but only AppImage apps can be self-updating as Snap apps need snapd to be installed and Flatpak apps need Flatpak to be installed.

Summarily

AppImages and Snap remain compressed at all times (Flatpak is compressed only on the server-side) and are typically smaller in size than Flatpak apps. AppImage is also independent of any distro maker and aims to unify Linux platform ecosystems.

Snap is owned by Canonical and places its base snap over the underlying distro, while Flatpak is a Red Hat initiative that places a Yocto distro over the underlying distro. Also, unlike with Snap where developers need to pay to Canonical, AppImage and Flatpak are free to use.

  Oomox - Generate Color Variants of Numix GTK2/GTK3 Themes

From where I stand, AppImages are the ideal packaging method to use because it is the most convenient for both developers and end users. However, it is possible for them to coexist especially when there are cases developers will prefer to use one of the other. Tell us what you think in the comments section below.

My research for this article was greatly influenced by Similar projects and the Reddit threads here and here. Feel free to check them out for more insight.

Your Unwavering Support Matters a Lot:

The cost of maintenance is skyrocketing as more readers are coming on board and the ad service that we employ in order to generate revenue is unfortunately no longer sufficient and this is especially due to the increased use of ad-blockers.

We humbly request that you consider disabling your ad-blockers to support us financially or by donating as anything from $1. Your donation(s) will go a long way in supporting FossMint and sister site, TecMint, in running efficiently. Thank you.

Make a Contribution via PayPal


Top Deals

About the author

Martins D. Okoi

Martins Divine Okoi is a graduate of Computer Science with a passion for Linux and the Open Source community. He works as a Graphic Designer, Web Developer, and programmer.