5 ms·
I remove snap as the first thing on most of my installs. I hate hate hate hate hate snap. It's a bad idea, badly done.
by blagie 5y ago
I remove snap as the first thing on most of my installs.
I hate hate hate hate hate snap. It's a bad idea, badly done.
- kazinator 5y agoI'm not crazy about it. I put snap onto a Debian server recently because of certbot. There are other ways to handle SSL cert renewal, but that seemed to be the path of least resistance.
- blagie 5y agoAnd ironically, on my servers, I'm running Ubuntu, with snap removed, with certbot working just fine from the .deb. :)
- luckman212 5y agoCan you TL;DR the reason that snap is so terrible? I'm a casual Ubuntu user and never really had any issue with it (that I know of). The disdain for snap is fairly pervasive here on HN, so I'm genuinely curious.
- PebblesHD 5y agoAmong several other less obvious ones, the unavoidable automatic updates were what finally pushed me to disable it, especially with bits of software that introduced breaking changes between versions that are now much harder to roll back and prevent a roll forward. For reasons I don’t fully understand, they’re also quite slow to launch compared to equivalent ‘natively’ installed packages.
- tssva 5y agoThe main arguments against them I have seen are: - Slow snap startup time - Pollution of home directory with snap directory - Automatic updates which can't be disabled - No support for 3rd party repositories
- ss108 5y agoWhy wouldn't I want automatic updates?
- Spooky23 5y agoShit breaks on upgrades sometimes.
- synicalx 5y agoI had a VPN app distributed as a snap - one day it auto-updated and came with a huge memory leak. Apparently all the update did was adjust some functionality in the apps UI, so it was totally non-essential but it still installed itself and broke all my stuff for a day or two.
- ddoolin 5y agoUpdates often break things, especially in Linux land. I don't want things updating until I do it manually, when I've decided that I have time to sit down and possibly spend time fixing breakages.
- tssva 5y agoI run a lxd cluster in my home lab. At one point while I was away on vacation one of the nodes failed. Once I returned from vacation I fixed the hardware issue and brought the node back online. This caused the entire cluster to fail because also while I was gone unknown to me the lxd snap was auto-updated on the other nodes. The node I brought back up was therefore on a different version which lxd. lxd doesn't allow nodes running different versions and will shutdown the cluster if a all the nodes are not on the same version.
- marssaxman 5y agoQA is never perfect. Sometimes the new version breaks things, and you have to deal with it. With automatic updates, breakage happens randomly; with manual updates, potential breakage is limited to moments when you decide to accept the risk.
- bluefirebrand 5y ago
- blagie 5y agoTL;DR: They help Ubuntu developers maintain short-term productivity, in return for bloat and a collapse of the system architecture. Longer version: 1) They encourage bad engineering Unix is based on designed, long-lived, standard APIs like POSIX, and it works really well. The "problem" Snap is intended to solve is the ability to pull a JavaScript, where APIs are completely reinvented every 18 months by having each component lives in an isolated space with its own libraries and subsystem. Debian worked perfectly fine 25 years ago, and for the most part, programs from then work fine today. A lot of us value that stability. If each program relies on different versions of libraries and APIs, you can no longer remix and mix-and-match pieces. I can't pull out a few functions from one program, a few from another, and use them together. Not needing to maintain backwards-compatibility or think through API design is a huge boost to short-term productivity, but leads to unmaintainable systems. That's true for a lot of the ways tools like Docker are used as well, for that matter. 2) They explode package sizes In the era of terabyte hard drives, blowing up a package from 50kB to 50MB might not seem like much, but it makes a huge difference. Debian and Ubuntu have thousands of packages. Things like download and install times make things like dev-ops (or just setting up systems) a pain. 3) They murder performance Again, this might not seem like much, but the end impact is that you can't use tools inside of loops or workflows since startup / shutdown / install time is up many-fold. Unix tools are designed to plug together. <100ms run times and small sizes means you can do that practically. 4) They discourage consistency and backwards-compatibility I learned to use Unix decades ago, and my child is learning to use Unix too. It's a bigger learning curve, but it's much less overall time than learning DOS, Windows 3.1, Windows 95, Windows NT, etc. Broken things are worth fixing. If something isn't broken, it's usually not worth replacing. In most cases, rewrites are easier than refactors or fixes, but tend to move things sideways, going backwards as often as forwards. That's especially true of things engineered to last versus thing hacked together in 6-month agile sprints. See second-system syndrome, and Joel's classic "Thing You Should Never Do, Part 1."
- luckman212 5y agoGreat explanation, thank you. Looks like I will be moving back to vanilla Debian. Also need to look into the differences between that and Pop!_OS.