If a package is available as both a deb and a snap, which method is preferrable?

Generally speaking, I would say you should stay with DEB for most applications that rely on system libraries. This has the advantage that if you update this one library e.g. for security reasons, all applications using this library will benefit, even if the maintainer of the original application is unaware of the vulnerability.

SNAPS are good in cases where you are interested in updating particular applications without updating your entire system. E.g. you are on an LTS release, but want to have the newest version of a particular application. Compared to PPAs where the applications have to be compiled against the "old" system wide libraries, in a snap the applications bring their own libraries. This is easier for maintainers and may keep you from landing in dependency hell if you happen to otherwise use a lot of PPAs.


One of the main disadvantages of snaps is the much more space needed since every software has its own dependencies in it while deb packages use shared dependencies across the system, with a much smaller impact.

The utility of snaps comes in when you want to keep your system isolated (e.g. from proprietary binaries) or the package itself relies on different dependencies from the one you have installed (more recent ones for example).


This is a highly opinionated answer.

I personally always use the deb or any other inclusive packaging. I do not use snaps because I feel they are like walled gardens, unlike the open ecosystem that Linux stands for.

I have mistakenly installed snaps a few times due to unclear/ambiguous description/metadata in the software center. I found they degraded my laptop experience. Those were removed promptly.

If an app has only a snap package I would rather not use the app itself.

I am apprehensive that one day snappers might say you don't even need the OS.