Why I dislike snaps

terminhell@lemmy.dbzer0.com to Linux@lemmy.ml – 339 points –

Screenshot doesn't even show half.

98

You are viewing a single comment

Why I hate snaps/flatpak:

  • 1
    • package/appimage ~80mb
    • snap/flatpak >500mb
  • 2
    • p/a - app + dependencies
    • s/f - app + minimal linux distribution
  • 3
    • p/a - can be easily run from terminal
    • s/f - flatpak run com.very.easy.to.remember.and.type.name

snap/flatpak >500mb

Don't know about Snap, but Flatpak download sizes decrease significantly after installing the main platform libraries, they can become really small; of course that's pretty much fully negated if you're installing Electron apps, but even then 500MB isn't very accurate, more like 150MB on average

flatpak run com.very.easy.to.remember.and.type.name

Yes I hate it, what is even more annoying is that you can do flatpak install someapp and it will search matches on its own, it shows them to you to let you decide, but after that you can't do flatpak run someapp because it "doesn't exist"

Last one could easily be fixed tho

Hopefully it would be fixed upstream on the actual flatpak command, but do you know if there are wrappers for it already?

No. If I have to launch a flatpak through the terminal, I always just do flatpak list and copy the ID or whatever it's called

There's a nice program called flattool that solves the name issue

Is it this one?
It looks excellent, any idea why it's not on Flathub yet? Never mind, I got it:

This project is still in its early stages

Then you do a flatpak list and it abbreviates the shit out of the identifiers so you can't use them either. Whoever designed that UX needs to lean back an contemplate life a bit.

Well that comes down to your terminal size, you have to filter the columns if your screen is too small: docs

flatpak --columns="app" list

Sure, it's possible. I can also use flatpak list -d to show everything. But the combination of these defaults is just fucked up UX (require the full id for certain operations, but don't always show the full id by default).

Yeah honestly they could have avoided putting Branch, Origin and Installation if there isn't enough space available.
The CLI definitely needs some polishing, not to mention flatpak update breaking horrendously on scrollback

Snaps have a similar deduplication mechanism, and snaps allows calling apps from their names like you would do with regular packages.

I think the reason for the second one is that while snaps are also meant to be used in servers/cli flatpak is built only with desktop GUI apps in mind.

ln -s /var/lib/flatpak/exports/bin/org.mozilla.firefox ~/.local/bin/firefox

Yes, sizes might be inaccurate - it's been about a year last time I tried snap or flatpak. All I remember is that snap installs around 300 mb gtk3 runtime and it's often 2 or more of them, because different snaps might rely on different gtk versions + other dependencies.
And I remember that when snap and flatpak compared, allegedly flatpak requires more storage space.

I am aware that runtime sizes doesn't scale with number of packages past maybe 3-4, but I have only 4 appimages on my system right now and they take ~200 mb, it is absurd that I'd need 10 times more space allocated for the same (or worse) functionality.

Appimage literally requires more storage for the apps because it dublicates all dependencies so in terms of storage flatpak and dnaps win by FAR, there are valid reasons to criticize all three but your comment is a sad joke!

It does make sense why it works the way it works but I still don't want it on my system

Well, that's your choice, I like and use Flatpaks but noone has to do so!

Unless you trying to replace half your system with appimages, appimages take less space in practice .

Did you read my comment at all? Flatpak and Snap share dependencies while Appimage doublicates all of them so unless you have no big dependencies on your system (literally impossible with Linux systems) Flatpaks and Snaps become more efficient in terms of storage usage the more you use them because they share big parts while Appimage still dublicates every single dependency because it's a single binarie with everything in it...

Flatpaks and Snaps become more efficient in terms of storage usage the more you use them...

I'm not disagreeing with that, but how many apps an average user requires that he can't find in the distro's repository? And how many snaps he should have installed, so it'd be more space-efficient than appimages, 10? 20? 30?

hint: for me - one is too many.

Flatpak and Snap share dependencies while Appimage doublicates all of them...

On the other hand, appimage only includes the libraries actually required by an app. Where Snap/Flatpack install big fat runtimes.
I've recently made a very simple gtk4 app and packaged it with all dependencies into a 10mb appimage you can just download and run. The very same app would rely on 250+ mb gtk4 runtime with snap.
And I could be fine with that; but no, it's not that simple, you'll have x3 gtk4 runtimes on your system. Because snap keeps 3 last versions of every snap pkg and it's dependencies. I don't know what flatpack installs, but it's not efficient in that regard either.

2-3 gigs of libraries a program might not even need. It's just wasted space for an average linux user. And if I was fine with that, I would be using Windows right now.

snap/flatpak >500mb

And to make it worse, snap keeps copies of previous versions of all programs. Which can be good if you need to roll something back, but at least last time I used Ubuntu it didn't provide any easy way to configure retention or clean up old snaps.

There is an Flatpack called FlatSweep on Flathub.

Runtimes are okay, the problem is there is no runtime package manager and often you have like 7 of them, which is horrible. But on modern hard drives also no problem.

Appimages cant be easily ran from terminal, you need to link then to your Path.

For Flatpak I made a tool that aliases their launch commands to be very easy.

Appimages cant be easily ran from terminal, you need to link them to your Path.

On many distros "~/.local/bin" is already in PATH, that's where I put my appimages, then make them executable and it just works.

Your point 1 and 2 are the same

a - app + dependencies

Which will be duplicated for everything installed application, and redownloaded for every new version. Whereas flatpak and snappy shares the dependencies between applications.

s/f - flatpak run com.very.easy.to.remember.and.type.name

Snappy makes easily run command line shortcuts. Flatpak could use some improvements there though.

Yes.. kinda!?
First point is space requirement, second one is a design issue. They are directly connected, I'm not arguing that.