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