Snap updates happen without user consent
smaller.fish
smaller.fish
I thought the same thing the first time I saw it. The only solutions are to either close Firefox and wait for several hours for something to silently happen in the background, or Google for the CLI command to run to update it. Really bizarre UX, I would love to hear someone from Canonical explain why they thought that was a good idea. Is there something I'm missing?
The idea in that conversation was, at least what I took away from it, that the user gets the notification and now knows at the end of the day they should close the app and in the morning it’ll be updated!
Seems fine on paper. But the messaging in the notification doesn’t tell me that at all. And it turns out despite all the nagging I always forget to close things before I step away.
I hate the execution of this feature. So much. All the nagging. All the confusing messaging.
On top of it all, I don’t feel like snap gives me any qol improvements in exchange.
They could do it basically seamlessly, with maybe notification only if you keep app running for days. Hell, that's how package manager does updates, just remove old libraries and put a new one in place, old programs will use the old one till restart, and when last filedescriptor closes it will be unlinked from filesystem. It sometimes can cause problems in "normal" apps but fact snap is just a single file removes pretty much all drawbacks of that.
It's not just bad decisions but incompetence on top of that
I think you're thinking of Flatpaks, which are basically hardlink/reflink farms with symlinks used to control the pointers to the current version (OSTree).
I keep that laptop around the living room, always suspended if not used, all apps always running.
If the notification gave me a “update now!” button I would click it
I started to download Firefox from Mozilla. But just because I have not decided yet what distro to use for family computers. Archlinux is fine for me, but not suitable for everyone.
It depends on what is meant by "family computer" but don't underestimate the usefulness of a cheap chromebook as well. My wife uses hers exclusively, since using the internet is pretty much the only thing she actually uses a computer for.
In what way? For any desktop usage Ubuntu is suitable for, Pop_OS can do it.
Myself I used to buy these little Atoms with eMMC running Windows S. E.g. HP used to have good hardware in that class. Now Windows S has been discontinued and I don't see much choice in the class anymore. Maybe Acer sometimes, but I have zero experience with them.
For Chromebooks there is GalliumOS, but it looks very silent. Not sure whether it is still alive. Last supported model is from 2019.
I was using ubuntu a lot years ago but have now settled on Debian. No annoying crap like this happens there, apt is all i need!
Make sure to pin it and/or neutralize snap so it takes precedence.
I guess it's unlucky that they call the package firefox. Calling it something unique would make pinning unnecessary and popcon results correct.
I ran “sudo apt install firefox” and it installed a freaking snap!
Today I learned that Ubuntu just decides to install snaps instead of the apt package.
What the hell.
https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-d...
I don't know why they did that, and I am a bit worried I will have to abandon Ubuntu if they move more packages to snaps in the next release. But for now all you need to do is the workaround above for Firefox.
I now remember getting confused about which one to install, mentally making a note about Docker having been snap'ified, and counting one more strike (perhaps the final one) towards eradicating snap from my system.
What made you switch from macOS?
Also, the system update approach of macOS seems quite hostile to slow and/or metered connections.
- Apt installs traditional deb packages
- The software center GUI has a dropdown to pick between Flatpack & Deb, defaulting to Flatpack.
I think this is a decent setup. Apt not doing what I'm used to infuriates me, but it feels vibely fitting for a gui to default to Flatpacks.
Then install flatpak. It has chromium and Firefox.
The most popular repo 'flathub' is filled with flatpak apps that are built from manifests where they are just downloading random debs and extracting them to get the binary instead of actually building anything from source.
It's a mullet package manager.. business in the front, party in the back.
Second, while the idea of sandboxing sounds nice, when it's done to arbitrary packages that might not even be written with sandboxing in mind, all sorts of bugginess can result, in addition to a bunch of friction. E.g on Pop OS the 7zip GUI for linux is a flatpak, and 7zip might leave half made archives around if it crashes during archiving. But now you have to go find some place 8 folders deep into the root filesystem to find and delete it. All sorts of other annoying interactions with filesystems can occur with flatpak'd programs.
It just muddies the waters and makes things more complicated. It makes much more sense to just have a reasonable, flexible method of sandboxing, independent of packages, that I can apply to whatever software I want to as needed, like jails on FreeBSD.
In short, bundling sandboxing with the package manager breaks with the UNIX philosophy: it does two unrelated things, neither of them well.
On Ubuntu we shouldn't have to be forced to accept snap packaging for the browser, but we are. Canonical make a number of shit decisions, chasing some corporate dollars, and using flatpak is something you can do without rebuilding everything yourself.
I think the concept is just fundamentally flawed. I'm planning on moving back to Arch or maybe try Guix just to get away from all this Linux trying to be Windows nonsense. I don't like Windows and I think we can do better without imitating it so much, and so poorly.
It's weird, I used to think Linux would only ever get better to use, but the more mainstream distros kind of peaked around 2010 in terms of ergonomics for technically minded users. And the experience seems to have become increasingly opaque and frustrating since then, all to chase some desktop adoption that never really materialised anyway, and what do we have to show for it? Greybeards like me are unhappy, nontechnical people still find the OS chafy and inpenetrable.
That's something the package maintainer should consider.
>bundling sandboxing with the package manager
Flatpak utilizes bubblewrap for sandboxing that can be used independently. Flatpak merely provides ("packages" someone can say) the instructions for it.
> The Snap Store, also known as the Ubuntu Store, is a commercial centralized software store operated by Canonical.
and
> This is a store we can’t audit, which contains software nobody can patch. If we can’t fix or modify software, open-source or not, it provides the same limitations as proprietary software.
https://linuxmint-user-guide.readthedocs.io/en/latest/snap.h... https://linuxmint.com/
They go so smoothly that I always think I must have forgotten something. The only things I've learned to watch out for are networking changes, like the semi-recent interface name changes, network shares (samba protocol changes), and updates on stuff relating to encryption standards (ssh/ssl.)
But in those case I think problems are plainly that the upstream doesn't really want to support distro packaging, we had some mess because the just one version decided... to start changing the name of packages and services for no good reason.
Most of the "bad script complained on uninstall" I got from 3rd party packages, which is funny as we have people in this thread complaining its "too hard" to get the package in the distro and the exact reason for that is to have as little problems like that as possible.
I guess I could say the same for GNOME, but that's what my users are familiar with. The Ubuntu and GNOME setup works well - for now.
RHEL is probably also used more in the industry than Mint, that doesn't mean you should prefer it as desktop OS. Debian is solid, no question, but its derivatives became successful for a reason.
The RHEL desktop is quite a bit better with RHEL 9 than it was in its predecessors.
Hats off to the fine people behind Linux Mint.
Like... wtf ? They'd had to patch apt to even do that...
see https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-t...
Now they've stepped onto this slippery slope, I don't intend to be on the ride with them on the way down.
You install a package called firefox that on install installs the snap and on uninstall removes it.
Recently found I was asked to teach a workshop to help student use Kenya's KENET vlab, it is a vm platform from Kenya's education network, to run our program.
Their system have some prebuild image for us to use including Ubuntu. Probably because of lacking of fund, their vms are low-performance QEMU-based machines.
I fired up Ubuntu vm and find:
1. `snapd` running constantly in the background and eating up a lot of memory. So the first thing I have to do is to stop snapd.
2. `unattended-upgrades` keep running. I guess is their internet not good so it seems it runs for a long time and keep eating bandwidth and cpu.
Things like these keep making me loosing faith on Ubuntu.
I remember the name Ubuntu borrowed its root from African language, but it seems their system are not so friendly to the users (including students, educators) from African countries.
The system should be reasonably knowable and controllable by the user, especially a technical one like myself. If I want a byzantine labyrinth of processes phoning home and eating up all my system resources I'll use macOS or Windows.
So a really common experience is turn on a machine, apt install foo, blocked by the updates, anger. Helps a little that apt now tells me what is holding the lock, but it's always unattended upgrades. Which somehow has come back to life after attempts to disable it.
You have no control and can't get a stable system.
And since things change automatically you have no clue what made stuff broken.
I can vision the condescending and smug guy on Canonical forcing auto updates (remote code execution) by default as some "security" measure.
A couple weeks ago I was working away in the terminal when all of a sudden, my USB camera turned on and its light started flashing at me indicating something had just started interacting with my webcam. I immediately assumed "Oh, that's probably just some hackers watching me through my web-cam.", so I looked through /var/log a bit and noticed that it had just re-detected all USB devices and two new users had just been added to my system:
snapd-range-12345-root:x:12345:12345::/nonexistent:/usr/bin/false
snap_daemon:x:12345:12345::/nonexistent:/usr/bin/false
Does anyone know what these new users are for, and why they were added just now instead of at install time? I googled a bit, but couldn't find any recent news about it.The client is foss. The store is proprietary. The store isn't required to install or/and distribute snaps.
On the other hand this username is mentioned in a snap dev forum: https://forum.snapcraft.io/t/system-usernames/13386 - but there it says it should be using the 524288-589823 uid range...
What is this related to?
On Linux, you can delete or replace open files, and even running applications. Instead of updates being handled by dozens of individual updaters that coordinate closely with each app so that updates happen between restarts, updates happen in the background without really coordinating with running apps.
Sometimes, after Firefox has been updated, there's some kind of incompatibility between the old running binary and the new assets (internal JS, CSS, and idk what else). In that case, Firefox can't open new tabs because you're still running the old binary, which doesn't work with the new assets which have been installed, or which is looking for old assets that it opens dynamically at runtime that are simply no longer present on your disk.
I don't know how the "behind the scenes" work but you can run an update while Firefox is running. We do it all the time. We push security updates to our clients via an agent. It runs the official installer in silent mode. It is like OP described: You can't open new tabs (ok you can but they will not work) until you restart the browser, but the existing tabs keep working.
My reading is that if your package manager updates FF on disk while it's running, it can no longer guarantee that new tabs can be created safely, since creating a tab requires spawning a child process and the parent was created with an executable that no longer exists/knows anything about the executable it needs to use when spawning.
It is super annoying and I feel like there are some obvious fixes. I'm also not 100% sure why it only happens on Linux (it updates fine on Windows and MacOS while running right?)
(At least, as far as I can tell)
If you install, say, FDE directly on linux, you'll get the same behaviour.
But if you use the distro's package manager then I don't think there's a viable workflow for it, as the package manager doesn't have hooks into process management.
The package manager would probably have to be subsumed by systemd for that to even be feasible.
Or at least, you get an error if you try and modify an executable that is currently being used by a process on Windows.
But I suppose linux is generally geared towards servers, where that isn't an issue.
But if you install it through apt or some such package manager, the PM is doing the updates, and it doesn't take into account that Firefox is running.
[1] http://archive.mozilla.org/pub/firefox/releases/latest/READM... has instructions for getting a release tar.
The solution is to version the files and keep the old versions until the processes are closed. As Windows enforces because it doesn’t allow you to delete files that are in use.
Package is multiple files app needs replaced, so you have old app getting the files replaced under it during upgrade, that's why restart is needed.
In case of snap there is layer between, the "snap" is just a blob that is mounted by a daemon that then runs app off it.
If you just move/delete old snap the daemon should just be accessing old one till the app stops
Removing snapd is the first thing I do on any Ubuntu machine now, whether mine or my friends'. This now requires adding a PPA for Firefox since 22.04 but otherwise I have never had to deal with snap again.
Finally, I just uninstalled the snap version and downloaded/installed the .deb manually. So far so good -- I guess some day I might get hit with a security problem or some must-have feature, but at least I don't randomly have to restart Firefox every few weeks without prior notification.
Also, as mentioned by others - Snap is a proprietary, walled-garden system owned by Canonical.
It is bad but it’s not that bad, they are still running as your unprivileged user.
Everything about Ubuntu now is seemingly defined by a spirit of defiance from Fedora. They borrow PipeWire and SystemD, but uglify GNOME, replace Flatpak with Snap, and use *.deb instead of *.rpm. Otherwise it feels mostly the same.
I looked at the Fedora ecosystem and... it's basically just like Ubuntu's point versions, and instead of an LTS every 2 years, you get one every 5 years and it's called Rocky Linux / AlmaLinux. Why pick Ubuntu instead of (basically) upstream? I'll pick the same thing with prettier GNOME and Flatpak instead of the weird mystery lump Ubuntu is now.
"Upstream" for Ubuntu is more like Debian, which is the basis for MANY distros (much like Red Hat - founded around the same time as Debian - and the .rpm ecosystem is a significant core component of many systems including current versions of SuSE, etc.). Ubuntu has traditionally been a slightly more newbie-friendly / commercial-friendly version of Debian. I don't think many of the changes you're describing were really trying to defy Fedora, especially not the choice to use .deb over .rpm.
That said, I did use Fedora for a while when Ubuntu started messing with Gnome a lot and I found it very refreshing, easy and reliable. It's a great distro, but the relationship between the two is absolutely not "upstream" and "downstream".
The 'defiance' they're talking about are the projects that Canonical has developed, often in secret, which are or were essentially alternatives/competitors to the components of the Linux free desktop stack which have been developed in the open, often at Red Hat and developed on Fedora.
The cases that come to mind are:
- Unity vs. GNOME 3
- Upstart vs. Systemd
- Mir vs. Wayland
- Snap vs. Flatpak
The Canonical entries all appear as sort of NIH latecomers, whereas their competitors have generally been developed in an upstream-first, 'release early' kind of way. In each case, the tech opposite Canonical's has been shipped on Fedora, before eventually becoming the default in Ubuntu anyway. (Snap has yet to go.)Upstart is older than systemd. The famous blog post which originally announced systemd (https://0pointer.de/blog/projects/systemd.html) explicitly mentioned upstart as an already existing alternative, and dedicates several paragraphs to describing the differences between both.
Anyway that's the broad picture of the supposed rivalry which might motivate the perceived 'defiance' of Canonical, and the sense that parts of Ubuntu's stack are 'downstream' from Red Hat or Fedora.
Idk if the characterization really makes sense, but that's what the earlier commenter was talking about, not a proper upstream in terms of distro tooling or repositories.
So are Unity and Snap compared to GNOME3 and Flatpak.
Flatpak was born as xdg-app, conceived in 2013 with substantive work beginning in 2014.
In both cases, Canonical was doing their own thing, collaborating with no one, while ignoring projects which do all their development in the open and had been upstream of their desktop stack for years.
Did Canonical 'beat' the community projects within (supposedly) their own community 'to market'? Sure. Does it still reveal relatively little interest in collaborating with the wider free software and Linux desktop community compared to 'upstream-first' organizations? Yes! Does throwing code over the wall after community efforts have been underway in public for years still make you look like a latecomer? Hell yes!
Maybe there are good reasons for that— maybe GNOME is hard to work with, maybe it's somehow better to present years worth of code to the world out of the blue instead of writing proposals. Bu5 it still fits the same picture of Canonical's uneasy relationship to formerly-and later, again-upstream projects like GNOME.
Personally, I liked Unity. Mir has turned out to have enduring value outside of the desktop space and also implements Wayland. I don't fully buy into the view I described.
I just think there was an intelligible argument behind that other commenter's strange language, and tried to point it out.
(Another possible reading is that Fedora is 'closer to upstream' because they don't do as much downstream theming of the desktop. I'm not sure if that was also part of what they were getting at.)
Auto updates must die in hell. I must be the only one on my system who issues `dnf upgrade`.
Major points:
- dnf has a more complete dependency resolver than apt uses by default
- the notion of vendor change is extremely useful when managing multiple repositories on a system
- modern subcommand interfaces are great, and dnf's is stable and mature whereas apt's is still experimental
- dnf handles repo management itself. apt doesn'tI'm using Mate 22.04 LTS. A few settings has to be done to disable updates behind your back, but at least these settings persist, unlike when I was using Snap or whatever it was I managed to install via apt (I think it still eventually reverted to Snap). There was also the issue that the Snap version disables some extensions (sure they are potentially dangerous, but that risk is for me to take).
Now, I just manually update Firefox at convenient times via the Help -> About menu.
Plus, when installing the binaries manually, you can also apply some "hidden" settings by creating a distribution/policies.json file inside the firefox installation folder. This is what mine contains:
{
"policies": {
"DisableAppUpdate": true,
"DisableFeedbackCommands": true,
"DisableFirefoxAccounts": true,
"DisableFirefoxStudies": true,
"DisablePocket": true,
"DisableSetDesktopBackground": true,
"DisableTelemetry": true,
"NoDefaultBookmarks": true
}
}
It's kinda sad how many settings you have to configure not only here in order to not be nagged constantly. It's like you are fighting against your tools.> Snaps update automatically, and by default, the snapd daemon checks for updates 4 times a day. Each update check is called a refresh.
i don't know when that line made it into the docs. i could be wrong but i actually thought that being evergreen was one of the selling points of snaps, and was advertised early on.
an edit: sorry upvoters - i went ahead and read the article now. i actually believe now that the article author has a point. to summarize: while it will display a notification to the user about two weeks ahead of time, announcing that an update is scheduled and that the user should close the app to avoid disruptions (the author has some valid complaints about this notification, i think), at the end of the period, the app will be killed - potentially causing unsaved data to be lost - and updated. i believe in many cases this behavior is undesirable. it probably should be discussed and a better alternative proposed.
i do take issue with the author's vehemence against (and manner of expressing such for) the notification, but i suspect i would be quite angry too if i were either an application maintainer fielding complaints about something that i didn't break, or a user who was angry to have lost some data.
i celebrate sharing this knowledge with you today :)
edit: yeah, i looked it up, and i was right. i get the general feeling of a personal attack from the author's text in that paragraph, which irks me. i believe it is quite possible to argue against implementation or functionality without resorting to that sort of thing. its especially funny because the person clearly has no real idea of the situation and makes that clear. no need for that. i do agree with the content of the thoughts otherwise.
[1] https://snapcraft.io/blog/hold-your-horses-i-mean-snaps-new-...
To update to this version use:
snap refresh --channel=edge snapd
snap refresh --hold
to get rid of automatic updates.Glad that they finally came around. I'm sure many people are happy with this.
It seems like Canonical said "Apple and Microsoft have (painful) app stores that cater to the non-technical, we need one too!"
The present "sorry state of packaging", largely due to the sorry state of storage (filesystems) stuck in the '80s in the bad sense of being simply largely obsolete for today's needs can be partially surpassed by NixOS/Guix model, witch is a FLOSS packaging model.
Snaps and co on contrary are needed to push distro to irrelevance and allow closed source crapware, mostly filled up with outdated dependencies and horrendous hacks to speed up delivery times by some underpaid and under-competent developer, still fail to prove ANY other realistic purpose.
Really: try to honestly weight their ideas and tell different conclusions if you can find something else.
At first they say "we do compartmentalize anything for safety", than "ah, yes, we can't really isolate stuff because if you want just to open a damn pdf downloaded from a modern WebVM improperly named browser for legacy reasons you can't, so we start punching holes here and there" and thereafter even the effectiveness of formal isolation was depicted as not really safe.
Then/aside another justification came up: pushing fresh software to distros who do not have manpower for quick enough maintainers. The actual snap store prove the contrary: most snaps are outdated and full of outdated deps, with potentially unpatched security vulnerabilities, of course.
Oh, of course they can't package anything than apps, since kernel/userland can't be in a snap, so they need anyway a secondary packaging systems.
With older windows desktop apps which install to privileged locations like %programfiles% it’s more complex.
But that’s the point: snap is a new system. It should be well designed because of it, and be on par with “modern” install systems. It feels strange if they restart for no reason. And it feels equally strange if they have a design that requires it.
# Goddammit ubuntu
sudo apt-get purge snapd -y;
sudo apt-get autoremove -y;
echo "Package: snapd" | sudo tee /etc/apt/preferences.d/block-snap
echo "Pin: release *" | sudo tee -a /etc/apt/preferences.d/block-snap
echo "Pin-Priority: -1" | sudo tee -a /etc/apt/preferences.d/block-snap
Uninstalls and permanently blocks the underlying `snapd` package so it will not be reinistalled. It might "break" some packages that depend on snapd, but as far as I'm concerned they're already broken by virtue of being snap packages.Realistically, with ubuntu dropping the old (text-mode) installer for ubuntu server, I'll probably basically stop using it altogether after 20.04. I've tried the Ubiquity (gui) installer several times across several virtualization hosts (Xen, KVM), and somehow I've never had it /actually work/. It always managed to crash or loop at some point.
A better—although arguably still horrible—notification would be to tell you when the application is actually scheduled to be updated so you know when to have it closed. Telling you that you need to have it closed at an indeterminate time 2 weeks from now or else fear "disruption" is clearly not good enough.
Who thought this was an acceptable process for a user to follow and not an utter dealbreaker? Should we still call this snap growing pains?
Updates should always only be applied when the application is starting. If there's a new update, a notification would just tell me to restart the application to have the update applied.
I'm a debian person, so not sure. Can she?
Sure, I can kill firefox, run the updater manually, then restart it, every time I see this popup, but that's pretty tiring.
See the discussion here: https://forum.snapcraft.io/t/disabling-automatic-refresh-for...
Edit: ...or not anymore: https://news.ycombinator.com/item?id=33836216
Apparently some people think that Linux should be just as deterministic and user limiting as proprietary software. I don't understand it, personally.
That is why Canonical pushes it.
And `sudo apt update && sudo apt upgrade` CLI log now includes an ad: https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-t...
As they are remotely breaking users' systems too I see no need to recommend Ubuntu as a newbie friendly distro anymore either.
Yet another point, which is related to all the valid remarks already done: it is quite painful to have this notification seconds after Firefox had been launched. Why the update system did not notice Firefox required an update before it launches it? Technical points left aside: when an application requires an update (Chrome, IE), it performs it before launching, not after it has launched.
It's antithetical to pretty much everything about what we think of as a "Linux distro".
I would absolutely never run Ubuntu or install Snap because of this. I'll stick with Debian, thanks.
You can't really act like Microsoft with people that are using your OS because they ran away from Microsoft and expect them to shut up.
see https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-t...
It advertises some Commercial product by Canonical and /r/linux subreddit.
I use Linux because I can configure it to work the way I want. If they take that away, they are just another proprietary pile of shit.
[1] https://en.wikipedia.org/wiki/Linux_Mint
[2] https://en.wikipedia.org/wiki/Fedora_Linux
Snap infestation is highest in Ubuntu - so I am planning to switch to some alternative (and due to other Canonical excesses like ads in CLI system tools).
My current candidates are Debian and Pop!OS.
How do you figure? It's all open source, you can easily see it on GitHub... I know Ubuntu hosts snaps on their servers, but every distro does that. What's the proprietary part?
There have been proof-of-concept server implementations by third parties, and some of those have been open-source. But IIRC none of them are maintained or used anywhere.
It could be worse, but at the end of the day it still just seems like a controlling, proto-monopolistic design compared to something like Flatpak, or to any traditional package management repos on Linux.
So fork it and change the code. This isn't the definition of "proprietary". There's still nothing stopping people from having their own snap store except a lil effort.
I expect better from 'open-source' in my personal computing life, and competitors seem happy to deliver it. If that makes me fussy, oh well.
IMO Debian is by far the saner distribution these days and there’s no reason at all to use Ubuntu for most people.
You mean Debian stable. But you have a choice, you can select testing or unstable, which gives you newer software.
There is no real need for "ancillary package managers", and all they do is complicate system maintenance.
Anyway, using Guix, Nix, or Flatpak is definitely a better idea than installing standalone debs for a different version of Debian than you're running, where it may be built against libraries that aren't part of your distro.
If you want to use the Debian package from Sid on Testing, better to rebuild it from source. openSUSE's public instance of the Open Build Service is a convenient way to manage keeping a repo for that up to date. But that definitely complicates system maintenance, too!
Only if you assume new bugs are better than old.
https://www.mozilla.org/en-GB/firefox/all/#product-desktop-r...
Can you please give an example of an application you needed available only as a snap?
Which might be fine! If that's the kind of system that works for you.
~$ firefox -v
Mozilla Firefox 102.5.0esr
.. which is November 15, 2022I guess I don’t want up to date browsers.
My main gripe with Snap the last time I evaluated the system was that they will not let you disable automatic updates, as a matter of policy [1]
I do not know if this is still the policy 5 years later
[1] https://forum.snapcraft.io/t/disabling-automatic-refresh-for...
When I install something through snap or flatpack, invariably it starts slower, has worse performance, is much more bloated and is generally a much more janky experience than just getting it from the apt repo. Snaps are the number one reason why I use popOS or mint over ubuntu.
There are two main packaging systems for Linux that are well known and usable. You can also use standard config management software to roll out configs for each package. Snap is a solution in search for a problem by people who are too lazy to use standard packaging that has been in existence for decades.
Listen up kids: "New" is seldom "better" when it comes to system tools. Put your creativity to applications, not trying to reinvent the wheel with "new" packaging systems.
Snap is a bloated mess, and we wish is was not on any system we administer.
More because of "how it operates, without being forthcoming about what its new purpose is, which is not 'everybody's Linux.'"
You're trying to be a tool to support big corporate IT. That is absolutely fine, good even. Getting more Linux in that space, under Ubuntu's name, seems pretty cool.
But you're no longer "the people's choice" when you behave that way. They're putting in big grown up restrictions and ideas and methods of doing things, and they just need to be honest about that.
While weird when introduced, in hindsight this is exactly the right behavior, because it is the most user-friendly and it makes e.g. software updates a non-issue. Even apps like iTerm can be updated and restarted in-place, retaining all the sessions.
It's a testament to how bad Linux UX still is that this sort of idea is not only utterly alien, but instead some developers thought it was acceptable to kill running apps outright.
iTerm doesn't retain sessions at all. It just presents a facade resembling preserved sessions. Close iTerm2 while you have a tmux session open, or some SSH connections, or any long-running command. Those sessions and their processes die when you close iTerm.
Maybe iTerm can approximate some of those things if iTerm is actually running the whole show, i.e., iTerm mediates launching your tmux sessions and your SSH connections. But imo those features are underwhelming and oversold.
I wonder why that never took off.
[1] https://zero-install.sourceforge.net/roadmap.html (note this is the old website; the new website is https://0install.net - looks like it's still getting releases in October this year)
Snap is closed source garbage ware, with MS Windows forced updating and the terribleness of being 10x slower....
So here's how to "Snap-Off" your system https://haydenjames.io/remove-snap-ubuntu-22-04-lts/
Totally automated upgrades are an evil (unless there's an explicit opt-in) and must die.
Uninstalling Snap is the first thing I do on Ubuntu these days.
Ubuntu does not get credit from going from the worst option possible to the next worst option possible.
0. First off, the user should have to opt in to automatic updates. This should never be forced.
1. The update should never cause unsaved work to be lost. This means that the auto-updater should never kill the application unless it knows that it can start back up in exactly the same state before it was killed. Some apps will do this normally (some requiring configuration first), like Firefox, but others cannot. That's actually something I think apps should be required to have: there should be a standardized "snapshot-kill-restart" interface (perhaps some DBus thing) that allows for this. The old X11 session management system was designed for this, but in practice implementations are always buggy to some extent.
2. The app should be restarted after being updated, especially if it's happening in the background outside of user control.
3. The app should never be killed while the user is present and doing something. It should only happen while the machine is idle. If there's never an opportunity for that (say, the user always puts the computer to sleep rather than leaving it idle), then the update mechanism must resort to popups that ask for consent to do the update right then. The consent should only last for that single instance.
4. Updates can't ever break things. Auto updates should be reserved for security and critical (like data-loss) bugfixes only. All other updates should be voluntary. (I'd reluctantly make an exception for the case where there are security issues that need to be fixed, but it's not possible to backport those fixes, so a "security update" becomes a straight version update. Nothing is perfect.) A big part of why users don't like automatic updates is because they break things or remove features too often. Stop doing that, and users will start to trust the auto-update mechanism again. (And point #0 will stop being an issue: users will be happy to enable auto-updates. And maybe at some point I'd even drop #0 and think it's ok for vendors to enable auto-updates by default.)
Regarding killing apps that need to be updated, most do not need to be killed at all, and can be safely updated underneath the running instance. Yes, there would need to be some mechanism to ensure the OS has paged all of the executable into memory (don't want "Text file busy" errors when trying to overwrite binaries), but this doesn't feel like a huge deal. Some apps do need to be restarted, as they dynamically load and unload UI resources from disk as the user uses the app, and those files changing underneath a running instance would cause problems.
If this was an unpaid, volunteer project, I could certainly understand that the auto-update process would be unpolished and not the best. But Snap is owned by Canonical, and if they're serious about this, they need to get their shit together and actually focus on UX... ironic, since that was originally the entire point of the company in the first place: make a Linux distro with a polished UX that non-techie people would feel comfortable using.