top of page
Search
Writer's pictureYaman Kumar

Packaging formats in Linux: Deb, Flatpak, Snap, and AppImage

You might know that applications in Windows come as .exe files, where .exe means .executable, which execute the app with the help of other necessary components. Likewise, the apps and software in Linux come in different packaged forms too. Today, we are going to discuss four major types of packaging formats in Linux - Deb, Flatpak, Snap, and AppImages.


Deb (Debian) Packaging system -


Deb is the default packaging format in Debian Linux and its other derivatives like Ubuntu. As it can also be installed in Ubuntu, so you can also install it in the distros derived from Ubuntu like Pop! OS, Zorin OS, Linux Mint, Elementary OS, etc. Deb files just contain the basic binary code for the software, and nothing extra. They are generally present in the repositories of the distro you are using. You can install .deb packages from the Software center for your distro and the terminal. The .deb package then asks your system to install the necessary dependencies at the time of installation. These packages are generally very lightweight and quick to install, but you should only install the .deb file for your distro as the dependencies may vary from distro to distro.

deb packages in linux
.deb packages

Flatpak -


Flatpaks were created to overcome the problems in .deb files. Flatpacks are also binary configuration files. But the difference between Flatpaks and Debs is that FLatpaks contain their own libraries and their own dependencies. So, they do not rely on your system libraries to work. In other words, Flatpaks are sandboxed. Flatpaks also have their own repositories. The repositories of Flatpaks are called 'remotes'. The biggest Remote of Flatpak is Flathub, which contains most of the Flatpak software. There are demerits to Flatpaks too. As Flatpaks are sandboxed and do not use the system libraries, it is up to the developer of the app to keep its libraries updated. If they do not keep the libraries of their apps updated, it can lead to some serious security vulnerabilities. Also, as Flatpaks have their own libraries, this may lead to multiple duplicate copies of different libraries being stored on the system, as each Flatpak app will download its libraries irrespective of it already being present in the system, which can lead to more storage space getting filled up.

flatpak linux
Flatpak

Snap Packages -


Snap packages are maintained by Canonical, the company behind Ubuntu. Snaps are like Flatpaks in principle. Like Flatpaks, they also contain the binaries for the software as well as all the libraries required for the software to work. Snaps also have their repository called Snapcraft. It is not an open-source platform. It is owned by Canonical, and they have decided to make it close-sourced so that all the snaps can be present in just one place. Snaps also have 'delta update' system, which means that they can just download the components which are going to be updated and not the whole package. This reduces the update size significantly. Snaps can also update themselves while they are running. The problem with snaps is that they are extremely slow to open on 'cold boot' (first boot after turning on the system). They are trying to fix the problem but it still hasn't been fixed.

snapcraft linux
Snaps can be downloaded from Snapcraft's website, which is owned by Canonical (Credits - snapcraft.io)

AppImages -


AppImages are a little bit different from the three above-mentioned packaging formats. AppImages are like the 'plug and play type of format. That means that your whole application, its binary codes, the libraries as well as the runtime environment are packaged into one. AppImages can just be downloaded from the internet and can be run just by double-clicking on them. They are very good portable packaging formats. The problem with them is that you have to download the whole AppImage again if you want to update your AppImage. Also, AppImages do not respect the theme of your system as they ship with their own theme.

appimage linux
AppImage

Read More -

8 views0 comments

Comments


Post: Blog2 Post
bottom of page