Recently had an issue where I deployed something with Docker but it wasn’t working properly for a few people in the business. It turned out to be the people who installed Docker with Snap. The main reason to use Docker is so that it works the same across different OSs and setups, but Snap managed to come along and ruin that.
It’s the worst possible implementation of distro independent binary delivery, highly dependent on a gazillion other things to barely operate, is counterintuitive as soon as you start using it, depends on canonical goodwill (which is always in a state of flux), actually mostly work everywhere but really only work correctly on a very limited subset of distributions, and requires a lot of work to basically achieve nothing more than what already existed OR any of the alternatives that are more lightweight, easier to implement for developers, easier to use of end users.
Close source, not easily uninstallable from an otherwise open system, dependency/the only way of using many programs. See the similarities with play services? Canonical is the Google of linux.
Got it, thanks. I am new to Linux but it seemed like it could be alright. They talked about apps being sandboxed and containerized. Not a good thing then, I take it? Is it just bad implementation?
They talked about apps being sandboxed and containerized
The idea is usually good. But not always; some application have to interact with others, requiring inordinate amount of tinkering to make them work: disabling some security features, giving access to way more mount points than required (usually doing so manually), etc. It’s also an issue when a piece of software requires access to some capabilities that are not exactly standardized, although ymmv on that point.
Also note that some of the promised features are not inherent to snap, but to snap implementation on a vanilla ubuntu system. Meaning snap can exist on other systems, but won’t do everything as advertised.
Also also, but that’s more of a discussion topic, there is the point of defining the attack model you want to defend against. Sandboxing everything is interesting on paper. But the amount of hassle vs. the actual benefits, especially for individual computers, doubly so on non tech-savvy users that will likely just follow whatever tutorial is available online to make things work when they seem to break, is not great.
Relatively simpler solutions, like flatpak, mitigate some of the most annoying points to improve usability by end-users. AppImage goes a step further by just being the program and his dependency running raw. And then there’s the native OS packaging system; this should be the simplest for end users, but there’s usually no sandboxing (although it is possible to do), and requires more work from developers/maintainers. It’s a matter of compromises. But snap is on the far end while being not very good and very annoying, which irks people.
systemd is (was, at this point) a big change, but improved to the point it feels like an upgrade over older solutions.
All the family of systemd-* services that were re-implemented for the lulz, broke existing features for years, and barelly reached the level of what they are replacing, however, are like the worst idea ever, handled by some lunatics that truly believe they can do better from scratch than simple, standard software that had decades of improvement.
I don’t see snap ever becoming better than flatpak at any point.
I don’t know why people hate snap so much and at this point I’m afraid to ask.
Recently had an issue where I deployed something with Docker but it wasn’t working properly for a few people in the business. It turned out to be the people who installed Docker with Snap. The main reason to use Docker is so that it works the same across different OSs and setups, but Snap managed to come along and ruin that.
glances around nervously
That’s why I originally installed and tried to use snap…
It’s the worst possible implementation of distro independent binary delivery, highly dependent on a gazillion other things to barely operate, is counterintuitive as soon as you start using it, depends on canonical goodwill (which is always in a state of flux), actually mostly work everywhere but really only work correctly on a very limited subset of distributions, and requires a lot of work to basically achieve nothing more than what already existed OR any of the alternatives that are more lightweight, easier to implement for developers, easier to use of end users.
tl;dr: it’s not great
Basically, if a task calls for snap, use Flatpak
Close source, not easily uninstallable from an otherwise open system, dependency/the only way of using many programs. See the similarities with play services? Canonical is the Google of linux.
Got it, thanks. I am new to Linux but it seemed like it could be alright. They talked about apps being sandboxed and containerized. Not a good thing then, I take it? Is it just bad implementation?
The idea is usually good. But not always; some application have to interact with others, requiring inordinate amount of tinkering to make them work: disabling some security features, giving access to way more mount points than required (usually doing so manually), etc. It’s also an issue when a piece of software requires access to some capabilities that are not exactly standardized, although ymmv on that point.
Also note that some of the promised features are not inherent to snap, but to snap implementation on a vanilla ubuntu system. Meaning snap can exist on other systems, but won’t do everything as advertised.
Also also, but that’s more of a discussion topic, there is the point of defining the attack model you want to defend against. Sandboxing everything is interesting on paper. But the amount of hassle vs. the actual benefits, especially for individual computers, doubly so on non tech-savvy users that will likely just follow whatever tutorial is available online to make things work when they seem to break, is not great.
Relatively simpler solutions, like flatpak, mitigate some of the most annoying points to improve usability by end-users. AppImage goes a step further by just being the program and his dependency running raw. And then there’s the native OS packaging system; this should be the simplest for end users, but there’s usually no sandboxing (although it is possible to do), and requires more work from developers/maintainers. It’s a matter of compromises. But snap is on the far end while being not very good and very annoying, which irks people.
Amazing explanation! Thank you!!
Bad implementation, flatpak is much better or just normal packages
Thanks for the clarification! Could never get comfortable with Ubuntu when I’ve tried it. Sounds like I dodged a bullet!
I basically became a meme.
My mom always said I could be anything when I grew up!
Some people also hate systemd
systemd is (was, at this point) a big change, but improved to the point it feels like an upgrade over older solutions.
All the family of
systemd-*
services that were re-implemented for the lulz, broke existing features for years, and barelly reached the level of what they are replacing, however, are like the worst idea ever, handled by some lunatics that truly believe they can do better from scratch than simple, standard software that had decades of improvement.I don’t see snap ever becoming better than flatpak at any point.
Is that the older friend of snap?