Software

Flatpak, Appimage And Snap – How Do They Stack?

Flatpak Software Packaging System
Written by Aaron Kili

For many of us who actually started our Linux journey by using Ubuntu Linux, which by statistics is the most popular and most used Linux distribution at the moment, got familiar with downloading, installing and using .deb package format for Debian Linux, on which Ubuntu is based plus many other Linux distributions such as popular penetration testing operating system Kali Linux , gaming focused SteamOS, desktop-oriented distribution developed by Raspberry Pi Foundation for a family of low-power single-board small computers among others.
As a new Linux user, one will realize the vast number of distributions available with multiple versions and more so the pain of working with different software packaging formats and handling dependencies at the same time.

But in the latest release of Ubuntu Linux, Xenial Xerus LTS, Canonical introduced a new software packing format and tools called Snap, which will be used along side .deb packing format. In an announcement early this year, made by Canonical’s Olli Ries, he elaborated how the technology behind Snaps actually came about, how it will exist and work alongside the old Debian software packing system, its significance and general functionality plus so much more.

There are also other new software packing systems already working to battle Snap in the game, and these are Flatpak and AppImage, we are going to get a clear understanding of what these technologies are, how they work and where they literally stack in the Linux ecosystem.

What is Snap and How does it work?

This is a software packing format that bundles software including its dependencies into a single package, it is installed in a separate directory from other system directories unlike other old software packing formats such as .deb, .rpm plus many others. In this way, a package does not cause a clutter on your system reducing the risk of breaking the rest of your Linux system.

RedHat RHCSA and RHCE Certification Exam Study Ebook

You can take a look at how Debian Packaging System and RMP Packing System work to understand how they distinctively work in comparison to Snap.
One advantageous property of Snap to users is that it works on multiple Linux distributions including Debian, Fedora, Arch of course Ubuntu and many of its derivatives such as Kubuntu, Lubuntu, Ubuntu MATE plus many others in that family. Users of REHL, CentOS, Elemetay OS, Linux Mint, Gentoo, OpenSUSE will have to wait as validation is on going and once approved, they will be able to use it.
It also offers a secure package management mechanism as the installed packages will work in an isolated system on Linux, this limits the security risks that come with other software packing systems.

  Brave Browser Aims to Change How You use the Internet in Your Best Interest

While on the developers’ side, the whole idea of Snaps is also complemented by the use of Snapcraft, which enables developers to easily work on software for different platforms that is mobile, PC, server and IoT devices by helping them bundle software and dependencies into a single package. This will do away with difficulties in the packing process plus handling of the updates by users as compared to the past methods.

What is AppImage and How does it work?

This is also a software packing format that works in its own fashion as compared to the traditional software packing systems. It works in a comparable analogy to Snap, under it, an application is bundled together with all its dependencies in a single file, hence the idea of one app equals to one file.

It is so simple and fast to use AppImage format applications, there is no need to install applications as before, all you need to do is download the application, make it executable and run it, as simply as that. As is with Snap, the rest of your system remains unchanged and this also offers a great security enforcement mechanism on a user’s system.
AppImages can fundamentally and importantly run on any desktop Linux distribution there is and it therefore works closely in relation to how applications are used on Windows and Mac OS, one can think of AppImgaes as portable Linux apps.

Also read: OrbitalApps’ Portable Linux Apps for Ubuntu 16.04

One limitation of this software packing system is that it works efficiently on desktop Linux, but System Administrators using desktop environments on their servers may take advantage of it as well.
Checkout how to bundle your applications into AppImages from this Wiki

  Meet A New Generation of Portable Linux Apps for Ubuntu 16.04

What is Flatpak and How does it work?

Flatpak is also a relatively new technology built from scratch, to enable users to install and run the same desktop application on multiple Linux distribution and with different versions. Designed and built to isolate applications from each other and the rest of the system, it also puts a lot of emphasis on security implementation in a host system.

It also functions in a related approach to two previous software packing formats, the application is packaged together with all its dependencies into a single bundle, underneath a Flatpak application is a collection of runtimes, a collection of shared libraries which are shared by multiple apps on the Linux system. This means that users do not need to worry about updates in relation to distribution version changes.
You can learn how to create, install and run Flatpak apps from here.

After a critical analysis and understanding the above technologies, you will come to a realization of the following important points:

  • The main goal is to develop distribution independent applications formats.
  • They all focus on isolation of the working of applications from each other and from the rest of the system.
  • Their implementation focuses greatly on providing mechanism to improve security of a users system in relation to how traditional systems actually alter the system upon installation.
  • These technologies are all about making it easy for users to install and update applications.
  • And lastly, they help reduce the workload on developers in terms of developing applications for different distributions.

In conclusion,

With Ubuntu’s Snap software packing format already being used on many Linux distributions, one may say it is bound to be embraced as an efficient and relevant alternative to the old packaging formats, as many Linux software developers and user anticipating it to become the dominant technology in the future on the Linux ecosystem. One limitation for AppImage and Flatpak will be their significance on only desktop Linux distributions.

Join Our Community Of 250,000+ Linux Lovers by liking us on Facebook, or follow us on Twitter, Google+ and Instagram.

If you liked this article, sign up for the fossmint newsletter for handpicked selection of stories from FossMint delivered to your inbox every day.


Top Deals

About the author

Aaron Kili

A Computer Science graduate who is most enthusiastic about Linux and FOSS. Aaron has been using Linux for over two years now and loves to share his ideas and knowledge he's acquired with other Linux users around the world.

  • Alexandru Băluț

    “With Ubuntu Snap software packing format already being used on many Linux distributions” – What does that even mean?
    Would be nice to know how Snap and Flatpak can exist at the same time on the computer.

    • Ubuntu has developed a new software packaging format called Snap, and many other distributions are already adopting it.

      Snap and Flatpak work in a way that a Snap package or Flatpak application can run on a computer in an isolated system within your Linux operating system. When you install the packages, they do not affect the system settings or configurations but work at an upper, isolated layer as if they are portable applications.

      • Alexandru Băluț

        What does it mean that “many other distributions are already adopting [Snap]”? What exactly are they doing more than including the Snap package in their distribution? .. same way as they did with the Flatpak package.

        You say “One limitation for AppImage and Flatpak will be their significance on only desktop Linux” like this is a great advantage for Snap, but how relevant is that? There have been sandboxing solutions for non-desktop-applications for a long while already. See for example https://en.wikipedia.org/wiki/Docker_(software)

        Regarding desktop apps, assuming Snap and Flatpak apps can coexist on the same system (can they?), it would be interesting to know how the most popular software managers support Snap and Flatpak. If a developer chooses Snap or Flatpak for watever reason, the user could potentially install that app just as easy and the user will not really care that she got the app as Snap or Flatpak.

        For example GNOME-Software already has excellent support for Flatpak. Ubuntu’s software manager probably has excellent support for Snap. What’s the plan of these two to support the other? KDE Discover’s Aleix Pol said “Without an agreed unified solution, we’ll have to assume we’ll end up having installed snappies, flatpaks, AppImages as well as applications from the distribution.” so I guess they’ll end up supporting both.

  • nigra truo

    Quote:
    ———–
    In this way, a package does not cause a clutter on your system reducing the risk of breaking the rest of your Linux system.
    ———–
    You know if clutter means redundant, doubled and quadrupled files and instead of all like type files (like libraries) in their proper folder, snap / flatpak / appimage does exactly the opposite of what they should do, create clutter. Packaging systems like RPM and DEB by the way are EXACTLY designed to not break the system, they will never overwrite an existing lib or file that is owned by another program, thus increasing stability of the system. I’m curious how the experiment will go, especially snap, since all tools will come in that format. Shared libraries will no longer be shared, package sizes will skyrocket, updates will take a lot longer and generally RAM usage will go up. Will it go up to the level of Windows, where you can barely run the OS with 2 or 4 GBs? Time will tell.
    I think it is great to have apps that run everywhere, but having the whole OS like this might be a really bad idea. I doubt that a Linux that is built as such would be able to run on 512 MB or 1 GB of Ram like the Raspberrry Pi (like Windows as an example cannot). I wish there was an easy workable way to use statically linked DEBs and RPMs, because…. that would EXACTLY solved this problem, with a well established super stable packaging system, instead of having to create a new one (or in this case, 4 of them)

Show Buttons
Hide Buttons