7 ms·
Debian user here, who has apparently missed the memo: What do snaps do that apt doesn't?
by ISL 6y ago
Debian user here, who has apparently missed the memo: What do snaps do that apt doesn't?
- entropicdrifter 6y agothey bundle all of their dependencies inside the snap, so even if the projects the snap depends on makes breaking changes and you update your system with those changes, the snap will still work. Snaps also update on the fly without user interaction, which some people like and other people hate. Personally, I think Flatpak makes more sense than Snap. Snap's all tied up with Canonical
- jdbernard 6y agoI don't think anyone is upset about the ability of a snap app to update without user intervention. It's the lack of choice. You're forced to take updates.
- entropicdrifter 6y agoAgreed. I wasn't saying the 'ability' to update without interaction was something some people like and some people hate. I said they 'do' update without user interaction, etc etc. I think we're on the same page. Thanks for articulating that bit of nuance.
- barrkel 6y agoA mounted FS per installed application so you can run different versions side by side. I like it for large standalone apps, less so for command-line utilities. It easily beats untarring some third-party thing to /opt.
- AnIdiotOnTheNet 6y ago> A mounted FS per installed application so you can run different versions side by side. Does it strike anyone else as very telling that people looked at the problem of "we can't install more than one version of an application at a time because of how we structure our filesystem and hardcode paths" and decided that the solution was "let's give each application its own filesystem!"?
- sebastos 6y agoI know, what's up with this? I always feel like the systems guys must know something I don't, and that it would be way harder than I'm imagining. But like.. haven't we learned enough in the last 30 years to know that we need something smarter for mutually dependent pieces of software? Why is nobody trying to do this? I get that Docker, Snap, Flatpak, etc. are expedient in the here and now. But shouldn't we be trying to rebuild everything on top of nix, and then make nix completely transparent to most users?
- barrkel 6y agoISTM that anything which lets you install multiple versions side by side will require each version to have pinned versions of dependencies, transitively, until it's very close to the dominant node, which ultimately is the OS API, which in turn, done right, is backward compatible. You can implement that versioned dependency DAG as a database of versioned libraries etc. combined with a version pinning database; or you can simply use disk space, and keep a copy of every dependency and put each in its own subtree, making the version pinning database implicit in the tree construction. I don't see the latter solution as being intrinsically worse than the former. I don't think there's a real alternative either; the most reliable set of dependencies is the same set as the original binary was built and tested with. (And of course it's not just libraries, but also configs of various flavours, assets, etc. If you didn't use the subtree approach, you'd need to reimplement it in a shim layer to simulate it, in order to package yesterday's applications today.)
- m4rtink 6y agoFor the record Flatpak solves the same issue without mountpoint spam by using OSTree zo store flatpaks and their shared runtimes. Not only that, it gets full deduplication of everything and diff downloads just by using OSTree. AFAIK Snap has no deduplication of installed stuff & not even any dhared runtimes. Not sure if it has diff downloads.
- brnt 6y agoSnap has all of that too.
- programmarchy 6y agoMain benefit is the sandboxed app environment. Snaps are also bundled with their dependencies, so you don't need globally installed dependencies to run the app like you do with apt.
- simion314 6y agoFrom my understanding the new packaging is designed to move the control from the distribution maintainer to the developer. So depending on software and distribution you get a range of advantages and disadvantages. You can continue using apt, snap, flatpack,Stram and binaries from tar.gz so we only gained in choices.
- MereInterest 6y agoAlso, moving control from the user to the developer. Snaps automatically update, and until recently had no way to disable this behavior. This is a poor security choice, and means that a stable system cannot be made. While apt can still be used, many packages were replaced by snaps, completely defeating the purpose.
- aiphieng 6y ago"many packages" as in "less than 10 out of 10s of thousands".
- EE84M3i 6y agonotably, I thought ripgrep became a snap?
- boogies 6y agodoesn't look like it: https://github.com/BurntSushi/ripgrep#installation https://github.com/BurntSushi/ripgrep#installation
- EE84M3i 6y ago> (N.B. Various snaps for ripgrep on Ubuntu are also available, but none of them seem to work right and generate a number of very strange bug reports that I don't know how to fix and don't have the time to fix. Therefore, it is no longer a recommended installation option.) I distinctly recall getting suggested by 'command-not-found' to install rg from a snap in some version of ubuntu, but I don't remember what version it was.
- rolph 6y agofor one thing snaps use a closed source back end
- spanhandler 6y agoPollute your mount list and make your software start way slower and take up more space. Also sometimes break or require intervention for basic operation due to security restrictions on it. The benefits are supposed to be that they're more secure, more portable, and don't junk up your system with files strewn everywhere. Personally I'm waiting for a better solution than anything we've seen so far for the first of those benefits, and would prefer a cross-platform user-oriented package manager like Homebrew or Nix (but better-supported-on-Linux in the former case and with a UX less like studying for a math exam in the latter) for the other two. IMO every solution to these problems on Linux desktop currently sucks to one degree or another.
- boogies 6y agoI'm curious to try GNU Guix, does it sufffer from the same problems as Nix? (Edit: looking at https://guix.gnu.org/en/videos/everyday-use-of-gnu-guix,-part-one/index.html https://guix.gnu.org/en/videos/everyday-use-of-gnu-guix,-par... from the top of https://guix.gnu.org/ https://guix.gnu.org/, basic installation and removal of packages looks exactly like apt, literally the same command line with 'apt' replaced with 'guix' and 'sudo' unnecessary because you can install packages per user.)
- spanhandler 6y agoI admit I've not checked and have just assumed the package list is both ideologically- and mindshare-crippled, due to the GNU on the name and the seemingly low rate of use, respectively. Nb I think free software goals are great and all but if I need Slack for work or need my proprietary wifi card to work using a binary blob then I f#cking need those things, and it's nice if my package manager can install them for me. It's also nice if it's got enough eyes on it that I essentially never run into a broken package, even when installing kinda-obscure things.
- boogies 6y agoYou can use Guix on distros with impure repos, not just the GNU Guix system, and use the host distro's packages for proprietary software (if you can't just use Slack's web client, or use a laptop with a freedom-respecting wifi card / a little dongle / ethernet).
- Barrin92 6y agosnaps are self-contained apps that ship with their own dependencies, so you get software directly from the developer and you'll be on whatever version they ship. software installed with apt on Debian is fixed until the next release (unless you're on testing/unstable), so that would be the biggest difference.
- inetknght 6y agoSo a snap is a more complicated version of a statically-built binary?
- Barrin92 6y agoyeah basically, although 'more complicated' depends on what you consider to be complicated, because another benefit is that you can be sure they run cross platform across any distro that runs snapd, and you don't actually end up replicating all dependencies in every binary, because snapd doesn't duplicate the ones already installed.
- galgalesh 6y agoProvide a recent version of Arduino on debian-based systems ;) They're mainly useful for applications which either release too fast or too slow compared to regular distributions. The apps contain their own dependencies. Another advantage is for messy applications. I'd much rather run Wine applications inside of a sandboxed snap than pollute my base system with all the multilib stuff that's required for wine. For more information; I also wrote a blogpost about why things like Snaps and Flatpaks are useful for Open Source apps: https://merlijn.sebrechts.be/blog/2020-07-06-why-snap-flatpak/ https://merlijn.sebrechts.be/blog/2020-07-06-why-snap-flatpa...