4 ms·
I've been kind of disappointed by Snap. It seemed like it was a way to always have the latest version of software you care about available, but in practice, no
by jrockway 6y ago
I've been kind of disappointed by Snap. It seemed like it was a way to always have the latest version of software you care about available, but in practice, nobody updates their Snaps. I used it to get a newer version of Go, and while it is more recent than what comes with Ubuntu, it's still not the latest version. Apparently Some Guy updates it on a volunteer basis when he remembers, so it's nearly useless.
Even if people do update the Snap, it's clear that it provides too many features. It has some sort of isolation model... that every Snap I've ever installed requires you to disable.
It's also surprisingly expensive to run something in a snap. For example, getting the name of my current k8s context with "kubectl config current-context":
$ sudo execsnoop.bt
Attaching 2 probes...
TIME(ms) PID ARGS
7603 29266 kubectl config current-context
7612 29272 /usr/sbin/apparmor_parser --preprocess
7614 29266 kubectl config current-context
7626 29280 /snap/core/9436/usr/lib/snapd/snap-seccomp version-info
7630 29266 /snap/core/9436/usr/lib/snapd/snap-confine --classic snap.kubectl.kubectl /snap/core/9436/usr/lib/snapd/snap-exec kubectl config current-context
7632 29266 /snap/core/9436/usr/lib/snapd/snap-exec kubectl config current-context
7634 29266 /snap/kubectl/1561/command-kubectl.wrapper config current-context
7635 29266 /snap/kubectl/1561/kubectl config current-context
This adds 32ms of latency before the app runs for absolutely no good reason.
- fractal618 6y agoSome will argue that 32ms is negligible, but I don't believe it is.
- PNWChris 6y agoAgreed, that’s 4 round trips to Google from my main box at home! You can round-trip ping nearly halfway across the U.S. in that kind of time.
- skykooler 6y agoAnd that's just for command line programs. GUI programs packages as snaps have much greater startup costs. It takes the Ubuntu calculator 4-5 seconds to launch. It takes Mumble 12 seconds to launch. The latter launches in 2 seconds as a native package, and the former, well, is a calculator app - I don't have access to a non-snap version of the Ubuntu calculator anymore but is should launch virtually instantly.
- eberkund 6y agoThe Go snap looks up to date to me? https://snapcraft.io/go https://snapcraft.io/go
- jrockway 6y agoSure, but there hasn't been a release recently. It's generally inconsistent, so I stopped looking a year ago.
- AnIdiotOnTheNet 6y ago> Some Guy updates it on a volunteer basis when he remembers Blame repo culture. In saner worlds there is no requirement for a middle man between developer and user, so users get the software when the developer releases it to them. For various reasons (only a few of which are technical), Linux has settled on this middelmen-everywhere way of doing things, and because it is FOSS all those middlemen are also volunteers, and then to top it all off there are dozens of repos and packaging formats. AppImage (and its predecessors) have been valiantly struggling to undo this cultural brain damage.
- michaelmrose 6y agoIt's not brain damage its a reaction to people being capable developers but crap at system engineering. I really don't want 187 system vulnerabilities from 12 apps which use different versions of different outdated libraries.
- AnIdiotOnTheNet 6y agoThis is a solvable problem. The vast majority of "shared" libraries are used by exactly one application. Commonly used libraries like the system interface, cryptography, networking, and the widget set, should be provided by the base system and their ABIs kept stable.
- anthk 6y ago>Linux has settled on this middelmen-everywhere way of doing things, BSD ports had it before. And before that, Irix machines had the packages split in several CDs.