| I used to defend snap with the idea that it makes sense for some apps, i.e. "firefox" where updating firefox while its running is bad news. Except, snap can't update applications while they are running! i.e. try to do a snap refresh while firefox is running, nothing to update, because its running, quit it wait for all processes to die and then refresh, and it will update and cause you to wait 30-60s while it does it, and then you can restart firefox. This has to be one of the most idiotic design decision ever made by a containerized application system showing the designers don't understand containerization at all. one of the primary points of containerization is the ability to have multiple copies of an application running in parallel using different "application images". One should be able to upgrade (i.e. install a new image in parallel to the old one) without disrupting existing execution environments. Basically all firefox has to do is 1) if a container is running for the current user, execute firefox in its context 2) if no container is running for the current user, create a new container 3) every so often, garbage collect old images that don't have containers running for them. these concepts are so simple, even docker basically does it! and that's my rant for the day. |
Oh, it's worse than that. When there is an update available but firefox is running you get:
> % snap refresh
> All snaps up to date.
It doesn't even tell you there is an update and that you need to close firefox to get it. In fact, it tells you there isn't one.