Ubuntu is often heralded as the king of beginner-friendly distros, and it more than lives up to its reputation. Its simple setup process, support for most consumer-oriented hardware, and strong emphasis on GUI elements are key reasons why most ex-Windows users start with Canonical’s flagship distribution when making the transition to the Linux ecosystem. Plus, Ubuntu is compatible with all the popular tools you could ever need from a Linux distro, and snaps play a huge role in making it easy to pick up for newcomers.

Rather than forcing you to install all the dependencies of a program, snaps are packaged instances that ship with every service, library, or package you may need to run an application. On paper, snaps sound like a fantastic utility, and since I was used to flatpaks, I relied on snaps for installing apps on my Ubuntu machines. But after digging a little deeper, I realized there were plenty of deal-breaking issues plaguing snap installations.

Snaps belong to a closed-source ecosystem

Far from ideal for FOSS lovers

Many folks (including yours truly) switch from Microsoft’s OS series to Linux for its privacy-first and open-source nature. And well, Ubuntu is a FOSS distribution, and most of the telemetry settings and information-gathering “services” can be disabled if you want to opt out of them.

Snaps, however, are a different story. Sure, the snapd daemon and certain core packages have their source code publicly available. But the Snap Store (or App Center on newer versions of Ubuntu) – the server with the snap packages – is closed-source. Had I written this article a few years ago, I probably wouldn’t have cared all that much about the proprietary snap ecosystem. But now that I’ve reduced my reliance on Windows and switched to self-hosted FOSS apps, the closed-source nature does make me raise my eyebrows. Truth be told, I would’ve let this slide if not for the fact that even running apt commands pulls snaps on Ubuntu…

Ubuntu downloads snaps even for apps configured via apt

This is more of an issue with Ubuntu and Canonical, though

Unless you start with an immutable distro, sudo apt/yum/dnf/syu install package_name is probably one of the very first commands you’d use in any Linux distro. On Debian-based distros like Ubuntu, you’ll go with the apt version of the command, which works something like this: the Advanced Package Tool (APT) locates your chosen app from the Ubuntu repositories, finds its dependencies, and installs everything you need to run it.

Sounds simple, right? Well, here’s a problem that’s specific to Ubuntu: when certain apps aren’t available in the official repos, apt has been modified to pull their snap variants instead. If these were obscure tools, I wouldn't be complaining so much. But when the applications in question include the likes of Firefox, Chromium, and Thunderbird, I can’t help but feel annoyed that Ubuntu automatically installs the snap version of the app instead of including them in the official repos.

Snap-based apps have long startup times

Their weird issues and high memory consumption are just as annoying

If you’re wondering why I’m so adamant about staying away from snap-based applications, it’s because they have certain performance issues. Since snaps are mounted as compressed virtual file systems (which I’ll go over in a bit), they have to be uncompressed on the fly as needed. As such, they can have longer startup times compared to native packages.

Worse still, snaps tend to hog more memory, which is already a problem for ex-Windows converts who moved to Ubuntu to avoid dropping a fortune during this RAM-apocalypse. Since snaps don’t share system libraries, you also have to deal with the overhead caused by multiple versions of the same dependencies. Throw in the random errors when installing Steam and other apps as snap packages, and you can see why I recommend against using them on low-power systems.

Snaps mess up the file system

I don’t want to see virtual file systems for every app

Besides giving older PCs a hard time, the virtual file systems created by snaps are another deal-breaking issue with Canonical’s package management system. All the dependencies needed by an app are compressed into a SquashFS, which gets mounted as a virtual file system on your Ubuntu instance – and this happens for every software you try to install from the App Center/Snap Store.

Over time, your system is going to get muddled with a bunch of virtual file systems. Performance issues aside, I’d rather not have my underlying Ubuntu instance devolve into an infestation of different file systems for each application.

Still, snaps have some utility

Although I’m not the biggest fan of snaps, I can’t call this article complete unless I also talk about their benefits. For beginners and less technically-literate folks, snaps offer an easy way to manage applications, especially if you’re not lacking on the memory front. Unlike the mandatory bloatware services on Windows, you can always get rid of snaps on Ubuntu and use different package repositories or flatpaks instead.