Snaps and Flatpaks have taken the Linux community by storm. Some people really like them, however, I really do not like them. I do use Flatpaks sometimes, but I will only use Snaps if I absolutely have to. The problem though, is that distros are trying to push everyone towards these methods of installing packages, even tough, these methods have lots of issues. Lets talk about these issues.
The benefits with Snaps and Flatpaks
Snaps and Flatpak come with all the dependencies you need, that way if you need an older version of a dependency that your Linux distro doesn’t have, you can still install it. Also, if you Linux distro’s repository doesn’t have a certain application, you could install it as a Snap or Flatpak. This is a solution to a big problem on distros like Solus.
The other benefit of Snaps and Flatpaks if sometimes applications might be broken on a certain distro. This happens a lot on AUR packages on Arch. I notice that Flatpaks are almost broken, and Snaps are pretty stable too.
There are some Windows apps packaged through WINE as snaps. You can easily install Windows applications such as Foobar2000, Powershell, and Notepad++. You can even run the Windows version of Steam with a Snap package.
I don’t think anyone uses Snaps or Flatpaks just because they are containerized, and the containerization with Snaps can get annoying. For example, by default snaps don’t obey GTK Themes, It can’t detect other system processes, and by default, OBS saves in its own folder, in the Snap folder.
When trying to install any package using the command line, you have to remember the identifier. The identifier is what identifies the app you are trying to install. Most package managers just use the name of the app, so if you wanted to install Discord with Snap, you would type “snap install discord”.
However Flatpaks use a different method for identifiers. Basically, they use a reverse domain. Instead of app.example.com, it would be com.example.app. To install Discord as a Flatpak, you would have to type “flatpak install com.discordapp.Discord”.
This is similar to the way the Google Play Store identifies apps at the end of the URL (example with the identifier in red, below). This is not a problem with Play Store apps however, because you can’t use the command line to install a Play Store app.
Snaps do not support GTK themes out of the box. You can get GTK themes working on Flatpaks using this tutorial, as far as I know, there is no way to get Snaps working with themes. This is very infuriating because most Snaps use Adwaita, or even worse… Raleigh, a theme that looks like Windows 95 took a dump on Windows 8. This makes Snaps stand out from the rest of the desktop. If I install a Snap, I don’t want it to look different then a native package.
It’s impossible to audit every single Snap on the store, which means that they you have to trust the maintainer. If the maintainer is Canonical, or from the originally developer, then you should be fine. However if it isn’t packaged by the original developer, be careful. Malware has been found on the Snap Store before.
Linux distros such as Ubuntu are trying to force us to use Snaps. The GNOME Software Center installs Snaps by default now, instead of from the repository. Discover also does the same (although you can disable it). Linux Mint also tries to push Flatpaks (although Flatpaks are labeled as Flatpaks). Discover on Arch Linux also installs Flatpaks be default (for some strange reason).
While Flatpaks and Snaps have benefits, I would not recommend them one bit for these reasons. If an application is missing from the repository, or you are having issues with an application, maybe try a Flatpak, and if the Flatpak doesn’t work, try the Snap. However when using Flatpaks and Snaps, please keep this article in mind.