Hacker News new | ask | show | jobs
by thomaslord 1339 days ago
Firefox is a particularly interesting case because it has a bunch of issues that only exist when it's installed via snap. I just recently ripped out the default snap version and installed via the official PPA, and Firefox seems to be running much smoother now.

For basically any app I use that's installed via snap, I eventually run into a gamebreaking issue and have to remove the snap version and find a normal .deb to install from. Whether it's customization issues (setting up custom fonts in VS Code didn't work) or stability issues (the tab bar in Firefox windows freezing up), there always seems to be some kind of problem

2 comments

Also, there is the funny thing that when you updated to 22.04 and Firefox it's replaced by the snap version, you lose access to your previous Firefox account on the computer! The account isn't deleted... If you remove the snap version and install the normal version from a PPA, you get back your account with all the settings.
they seem to have fixed that at least. I had the same problem with a computer I updated immediately, but not with one that I waited a bit on. Incidentally you can fix this by copying your .mozilla directory in the correct place in the snap directory in your home folder
Snap makes sense, but it'll take time for the dust to settle. Just like Unity / Wayland.

Applications like Firefox, IntelliJ, Chromium, etc. shouldn't be tied to system dependencies managed by apt. They should be entirely monolithic and hermetic.

Long term this deb vs snap approach will make sense and be good for Desktop Linux.

Is snap enough of improvent over deb to replace it? Sometimes yes.

Is snap enough of improvement of Flakpak to ignore community standard and deal witb all the user hostile craziness like non-removable updater? No way.

I hope it goes the way of the Mir and upstart - replaced with a competitor and silently removed.

Upstart predates systemd by four years. It solved real problems at the time and they kept it going until Debian transitioned to systemd. Unlike systemd, upstart supported sysvinit scripts, so it made sense to transition when Debian did. Bringing that up is maybe not the best example you could choose to bash them with.
I am not saying anything about decision to _start_ using upstart... All I am saying is that in the past, Ubuntu made the right decision multiple times and switched from Canonical-only software to a more common alternative once that alternative became widely used.

And I think that it's a grand time to slowly wind down snaps and switch to flatpak. Linux ecosystem does not need more fragmentation, and given proprietary nature of snap store, there is approximately 0% chance that anyone except Ubuntu derivatives would adopt it.

Maybe snap was better than Flatpak back in the beginning; I can easily believe that when the snaps were introduced, they were better than flatpaks. I am not going to judge. All I want to see a right decision made going forward.

If Ubuntu and it's derivatives go for Snaps then while that's a minority of distros it's probably a majority of the Linux user base.
Fwiw, systemd actually supports sysvinit scripts pretty well. You can mix and match, and write unit files that depend on init scripts or vice versa. And you can manage them all with systemctl.
Funny thing is that systemd just calls the scripts in /etc/init.d, but I'm told that it is an improvement.
> Snap makes sense...

No. When we have flatpak and appimage, snap makes zero sense. I just see it as a way to implement a centralized walled garden into the OS, and don't install Ubuntu systems even in VMs for five minute test drives.

The way Canonical rolled it out is flat out insulting to the free software community and distro culture, IMHO.

It's too late here to write about its technical problems, so I'll leave it at that.

I don’t disagree but that won’t change the fact that snap completely broke my Firefox workflow, and doesn’t gracefully allow me to restart Firefox (rather inconsistently have tabs crash unexpectedly).

Snap is immature, and not ready for production deployment. The way Ubuntu/parent company have pushed snap has been damaging to its image.

> it'll take time for the dust to settle. Just like Unity / Wayland

There's a particular irony to this statement. Before adopting Wayland, Canonical tried to do their own thing with Mir[1]. Years later they gave up and reluctantly adopted Wayland. Their investment in Snap rhymes with this. Snap is an inferior competitor to Flatpak, and in the end it's likely the dust will settle for Snap the same way it did for Mir—in the dirt.

Canoncial as an organization has some serious NIH syndrome and they are putting "Linux on the Desktop" through a lot of unnecessary pain.

[1]: https://en.wikipedia.org/wiki/Mir_(software)

I don't think Snap is an inferior solution, as much as Canonical is trying to put Snap where it doesn't belong.

AFAICT, Snap is a pretty good solution for server side apps. This is pure speculation (and I don't even know if the timelines line up), but I suspect Canonical developed Snap for server apps, but something made it economically non viable (maybe the popularity of Docker?) and so they now needed to generate money through it some other way and they decided to do it by using it as a workstation app distribution mechanism, and by locking it down for enterprise.

"Server apps" can just be systemd services with isolation configured to your liking. Even if it's necessary that the service include some arbitrary subset of userspace, that can still be done with systemd portable services.
Mír still exists. It's a Wayland compositor now for IoT but it's still there.
throwup is referring to Mir the display server that implemented Mir the display protocol, because Canonical didn't understand Wayland, didn't talk to anyone that did, and so decided they needed their own protocol.
> Just like Unity / Wayland.

So, flatpak will win, after years of Canonical messing about with snaps?

If you say so, but I don't see why it should be forced on Ubuntu users by Canonical until then.
It’s just 6 or 7 years. Give them time.
Actually brings up a good question of why can't dpkg/.deb just support having multiple library versions? My understanding is that it is not support, but if it was, then couldn't that obviate the need for snap?
Many people are unaware that "so naming" [0] solves multiple versions of the same library problem.

My Debian installation regularly has two or three versions of the same library (e.g. libx264) installed while packages update and start to use newer versions of the same library.

[0]: https://tldp.org/HOWTO/Program-Library-HOWTO/shared-librarie...

The point is that some apps should be 100% hermetic and not have package dependencies whatsoever. The browser is a prime example.
I don't think user facing programs needs to be hermetic. If you want to limit behavior of a software there's always AppArmor and SELinux.

Trying to make a set of applications can't interact on an (desktop) environment which built on the promise of cooperation and inter-application communication is backwards from my perspective.

I understand that the browser is a significant vector for attacks, but there are other and more elegant ways to counter these attacks, and these can be layered from application itself to kernel and to hardware. This layered approach is more integrated, universal and applicable to a broader surface area in the OS and application stack.

    <rant> Romanticizing isolation and immutability, trying to apply it everywhere in the software stack is a big step backwards in usability and productivity. These technologies are useful in some (and mostly in) server/service scenarios. Trying to apply these principles to everywhere is akin to only having a hammer and seeing everything as a nail. Just because they're easy, they're not the correct and best solution for anything and everything. Maybe we shouldn't be that lazy and try to create more useful and transparent user sandboxes built on cgroups, SELinux and AppArmor, and works with the package managers or traditional distro layouts seamlessly. </rant>
I don’t know. I sorta like my browser to be able to use my system fonts. Snap and friends appear to struggle with that.
You said that several times but why is that? What programs should be isolated and why are those not a static binary installed and updated with apt?
> but it'll take time for the dust to settle.

I remember seeing it demoed at Canonical in 2015 or so. It’s been 7 years. How much longer should we wait?

I personally hope AppImage wins over snap, it seems to be the best of its class, and isn't so centralized. It would still need to be paired with a package manager for updates, of course
> Snap makes sense, but it'll take time for the dust to settle. Just like Unity / Wayland.

That comparison is not helping to sell it.

>Snap makes sense, but it'll take time for the dust to settle. Just like Unity / Wayland.

How much time? We've been waiting for over 10 years for the dust to settle with Wayland.

I've been using Wayland happily for the last few years. I'm missing colour management but I know it's (slowly) being worked on and I can wait, as everything else I need works better than it did for me under X11. Can't say the same for Snap. Wayland has become progressively better over the years. Snap just seems to get progressively more intrusive as they force it more and more. Longstanding complaints go unaddressed. Flatpak has been more or less pleasant. Feels very similar to the Mir/Wayland days to me.