facebook youtube pinterest twitter reddit whatsapp instagram

Understanding The Differences Between Debian & Snap Packages [Ubuntu]

There's generally two different types of package format available in Ubuntu, one is Debian package and the other is a snap package.

But before we understand the difference between the two, what are packages?
A package is a type of archive file that contains all of the files necessary to make a set of related features or command work.

For example, a package may contain executable files or even source code. An example of a package format is Android apk format, most of the application you download on android usually ends with the apk format; the apk is compressed archive file that contains the files necessary to make the application work correctly. On the other hand, Because Ubuntu is a fork of Debian, it uses the Debian package as its main package and the package names end with .deb.

Now that you have a basic understanding of packages, let's get back into...

The Differences Between Debian & Snap Packages

Debian packages are the main type of packages in Ubuntu, it is inherited from Debian distribution when Ubuntu was forked from Debian.

Debian packages are what you have probably been installing ever since you got your Ubuntu server up and running. While Debian packages are the norm in Ubuntu, they come with some drawbacks...

Firstly, software updates are usually delayed until the next release of the distribution is available which if you ask me, doesn't make sense! If you want a version of MySQL that's newer than what your current release of Ubuntu features, you would have to wait until the release of the distribution.

Secondly, the entire distro is made up of Debian packages, the Linux kernel, libraries, system packages, software applications are all Debian packages. While this may seem like a smart move in the sense of maintenance, it tends to be more problematic, and here is why:

Any other software packages (for example, PHP, Apache, Nginx, e.t.c) you'll be installing are also Debian packages and it may conflict with the system packages, for example, if a software depends on system packages and the packages get corrupted, the software would also fail. This isn't something you'll encounter as the maintainer of Ubuntu pay great attention to this.

This is where the other type of package comes into play...

The Snap Package:

The snap package or simply snaps is built to stand out from the underlying Debian packages while not interfering or depending on it in any way. The snaps are built to overcome the Debian package issues, for example:

It doesn't conflict with your system packages and you can finally have a newer version of an application without waiting for the next release of the distribution. Snaps come with its not so downside too:

  • They are larger packages, and this is due to the fact that they include the application together with the libraries needed in one single package, but honestly, they are not that large and shouldn't cause an issue with disk space, but this would depend on the package you are installing
  • Major packages aren't available in snaps yet

Which Should You Use?

If what you are trying to install isn't available in Snap format, then you should fall back to the standard Debian packages. Snaps are still gaining the ground and not all software manufacturers have migrated to snap just yet.

You can learn more on how to download, search and install snap packages in this guide: Installing, Removing and Search Software Packages

Related Post(s)

  • Monitoring Multiple Log Files In RealTime With MultiTail (Ubuntu)

    Oh my... I really find scanning through the logs file time consuming, and painful. Luckily for me, I founded Multitail, which is an awesome, and powerful tool for not only browsing through several f

  • How To Find Files Using Locate in Ubuntu

    It's kind of frustrating when you are searching for a particular file, and you have no idea of how to find it, In this guide, I'll walk you through on two different ways you can find a file in your G

  • Managing MariaDB Databases (Ubuntu Server)

    In this guide, you'll learn how to manage MariaDB databases in your terminal, from connecting to the database server using the mariadb command, creating a database, removing (drop) database, and mana

  • Understanding the Linux Filesystem

    Understanding the filesystem is important if you want to know how data is stored and retrieved, but really, the term might be somewhat confusing in Linux, as it means two different things. A filesys

  • Viewing Disk Usage in Ubuntu

    There are several ways to view disk usage in your Linux system, and that is what we would be going over in this guide... Out of the box, Linux provides us the df command, which is the standard Unix c

  • Understanding & Using Symbolic & Hard Links (Ubuntu)

    Have you ever wondered how you can create shortcuts that link to other files in Linux? Well, let me introduce you to symbolic and hard links. The two types of links in Linux are symbolic links and ha