Linux Mint is one of the most popular Linux distributions, and it’s my favorite. In part because, while it’s based on Debian Linux and Ubuntu, it goes its own way. For example, its developers created their own excellent desktop interface, Cinnamon. Now, Mint’s programmers, led by lead developer, Clement “Clem” Lefebvre, has dropped support for Ubuntu’s Snap software packing system.
Snap, along with its rivals Flatpak and AppImage, are alternative ways to install applications on Linux systems. The older ways of Linux apps, such as DEB and RPM package management systems for the Debian and Red Hat Linux families, include the source code and hard-coded paths for each program.
While used for decades, these traditional packages are troublesome for developers. They require programmers to hand-craft Linux programs to work with each specific distro and its various releases. They must ensure that each program has access to specific libraries’ versions. This annoyance even has a name: Dependency hell.
Snap avoids this problem by incorporating the application and its libraries into a single package. It’s then installed and mounted on a SquashFS virtual file system. When you run a snap, you’re running it inside a secured container of its own.
As Alan Pope, Canonical‘s community manager for Ubuntu engineering services, explained at At 2019’s Linux Application Summit (LAS), “It’s more empowering developers to get their packages into users’ hands very fast. They don’t need to worry about the distribution.”
So, what’s not to like? Well, a lot, thinks Clem.
As he wrote in July 2019, the idea is fine: “When snap was announced it was supposed to be a solution, not a problem. It was supposed to make it possible to run newer apps on top of older libraries and to let third-party editors publish their software easily towards multiple distributions, just like Flatpak and AppImage.”
But, he said, “What we didn’t want it to be was for Canonical to control the distribution of software between distributions and third-party editors, to prevent direct distribution from editors, to make it so software worked better in Ubuntu than anywhere else and to make its store a requirement.”
Clem was worried then that Canonical was moving in that direction because:
“Ubuntu is planning to replace the Chromium [Google’s open-source browser and foundation for Chrome] repository package with an empty package, which installs the Chromium snap. In other words, as you install APT [Debian’s program for installing and managing DEB files] updates, Snap becomes a requirement for you to continue to use Chromium and installs itself behind your back. This breaks one of the major worries many people had when Snap was announced and a promise from its developers that it would never replace APT.
A self-installing Snap Store which overwrites part of our APT package base is a complete NO-NO. It’s something we have to stop and it could mean the end of Chromium updates and access to the snap store in Linux Mint.”
Fast forward to now, and that’s still the case with Chromium, and Clem has had enough:
“In the Ubuntu 20.04 package base, the Chromium package is indeed empty and acting, without your consent, as a backdoor by connecting your computer to the Ubuntu Store. Applications in this store cannot be patched, or pinned. You can’t audit them, hold them, modify them, or even point snap to a different store. You’ve as much empowerment with this as if you were using proprietary software, i.e. none. This is in effect similar to a commercial proprietary solution, but with two major differences: It runs as root, and it installs itself without asking you.”
Therefore, Mint’s dumping Snap.
Mint never shipped snapd, Snap’s daemon program or any snaps, but moving ahead, in Linux Mint 20, “Chromium won’t be an empty package which installs snapd behind your back. It will be an empty package, which tells you why it’s empty and tells you where to look to get Chromium yourself.” Further, APT will forbid snapd from installing.
Mind you, “you’ll still be able to install it yourself and we’ll document this in the release notes, but by default, APT won’t allow repository packages from doing this on your behalf.”
Linux Mint 20, which is based on Ubuntu 20.04, will be released later in June 2020.