Honestly, if you've spent more than five minutes in a Linux forum lately, you've probably seen the "Snap vs. Flatpak" wars. It gets heated. People have feelings about Canonical's package management system that border on the religious. But for the average person just trying to get Spotify or Discord running on Ubuntu, the drama doesn't matter. You just want to know how to use a snap without it breaking your system or cluttering up your mount points.
Let's be real: Snaps are controversial. They're slow to cold-boot. They create those weird "loop" devices when you run the df command. But they also solve the "dependency hell" that used to make installing software on Linux a nightmare. A Snap is basically a self-contained container. It has everything the app needs to run—libraries, assets, the works—tucked inside. This means an app built for Ubuntu 18.04 will likely run perfectly on Fedora 41 or Arch.
Getting Started With the Snapd Daemon
You can't do anything without the "engine." That’s snapd. It’s the background service that manages these packages. If you’re on Ubuntu, you’re already set. Canonical bakes it right in. If you’re on Linux Mint, though, you’ll notice it’s explicitly blocked. The Mint team actually disabled it because they aren't fans of the proprietary nature of the Snap Store backend.
To fix that on Mint, you have to delete a specific preference file. It's located at /etc/apt/preferences.d/nosnap.pref. Once that’s gone, a quick sudo apt update && sudo apt install snapd gets you into the game. On Fedora, it's just sudo dnf install snapd. You might need to log out and back in to make sure the paths sync up properly.
The Basic Commands You Actually Need
Most people think they need to memorize a whole manual. You don't. Using a snap is mostly about three or four commands. To find something, you use snap find. For example, snap find gimp. It'll spit out a list of versions. To put it on your machine, it's sudo snap install gimp.
Updates happen automatically. That’s one of the "selling points" Canonical pushes. You don't have to worry about it. But sometimes, that's annoying. What if you're on a metered connection? You can use snap refresh --hold to stop updates for a specific amount of time. If you want to see what's currently installed, just type snap list. It’s simple.
Understanding Snap Channels and Permissions
This is where things get a bit more "pro." Snaps use something called channels. Think of them as different "flavors" of the same app. You’ve got Stable, Candidate, Beta, and Edge.
- Stable is what 99% of people should use.
- Edge is the "wild west." It's where developers push code that might break your desktop environment.
If you want to try a newer version of an app, you’d run sudo snap install --channel=beta [app-name]. Switching back is just as easy. You just "refresh" into the other channel.
The Sandbox Problem
Have you ever installed a Snap and realized it can't see your files? Or it can't access your webcam? That’s not a bug. It’s the sandbox. Snaps are isolated from the rest of the system for security. To give an app permission to see your home folder, you use "interfaces."
Check what an app is allowed to do by running snap connections [app-name]. If you see a "slot" that isn't connected, the app is blocked. You can manually bridge the gap. For example, snap connect vlc:removable-media lets VLC see your USB drives. Without that, you're just staring at an empty file picker.
Dealing with the "Slow Start" Reputation
Everyone complains that Snaps take forever to open the first time. It’s true. Because they are compressed SquashFS images, the system has to decompress them and set up the mount point when you click the icon.
Recent updates to snapd have improved this by using LZO compression instead of XZ, but it’s still not as fast as a native .deb file. If you’re on an older HDD, you’ll feel the lag. On an NVMe SSD? You probably won't even notice.
Another weird quirk: the ~/snap folder. It sits right in your home directory. It’s ugly. It breaks the clean look of your hidden files. Unfortunately, you can't really move it. It’s hardcoded. The best you can do is hide it from your file manager's view, but it's always there, lurking.
How to Remove a Snap Properly
When you're done with an app, sudo snap remove [app-name] does the trick. But wait. There’s a "snapshot" feature. By default, when you remove a snap, the system saves a copy of your user data for about 31 days.
This is great if you accidentally delete something. It’s bad if you’re trying to clear disk space. To kill it forever with no leftovers, use sudo snap remove --purge [app-name]. That’s the "nuclear" option that actually gives you your gigabytes back.
The Problem With the Backend
It would be wrong not to mention the "closed" nature of the Snap Store. While the client-side code is open source, the server that hosts the Snaps is controlled entirely by Canonical. This is why some Linux purists prefer Flatpak, which is decentralized. If the Snap Store goes down or Canonical decides to change the rules, everyone is affected.
However, for developers, this centralized approach is a godsend. They don't have to package their app for 20 different distributions. They upload it once to the Snap Store, and it's available to everyone from Manjaro users to Ubuntu LTS veterans.
Advanced Performance Tweaks
If you find that your system is getting bogged down by old versions of Snaps, you can limit how many versions the system keeps. By default, it keeps two or three.
Run this command: sudo snap set system refresh.retain=2.
This tells the system to only keep the current version and one backup. It can save a massive amount of space if you have large apps like LibreOffice or Blender installed.
💡 You might also like: New iPhone Every Year: What Most People Get Wrong
Also, keep an eye on your mount output. If it looks messy, don't panic. Those loop devices are just how Snaps function. They aren't "real" partitions taking up space in the traditional sense; they are just pointers to the compressed files.
Actionable Next Steps
- Check your current setup: Run
snap listin your terminal to see which apps are actually Snaps. You might be surprised. - Clean up old data: Use the
refresh.retaincommand mentioned above to reclaim disk space immediately. - Audit permissions: Use
snap connectionson any app that seems "broken" or can't access your files—it’s usually just a disconnected interface. - Try the "Edge": If an app is missing a feature you need, try switching to the edge channel with
snap refresh [app-name] --edgeto see if the developers have fixed it in the latest build.