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
.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.
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.
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
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.
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.