Immutable Linux desktop with OpenSUSE and Snaps
ypsidanger.com
ypsidanger.com
The resulting system still seems very mutable to me, since it appears the system configuration management isn't tracked in a transactional manner. I would think for a "immutable Linux desktop", NixOS would be what the author was looking for, since the whole system is declaratively specified and can be rolled back to any previous generation. But some users go even further, performing a ZFS rollback on every NixOS boot[0] to ensure that mutable state doesn't accumulate (NixOS only needs /boot and /nix to boot, and creates /etc /var etc. if they don't exist already).
That being said I use nix on my systems, just as a package manager to some existing boxes.
[0] https://github.com/NixOS/nixpkgs/blob/77297a7519b3d968f32abd...
There are also base images for Arch and Void.
It is truly immutable. Here are my recipes: https://github.com/pauldotknopf/darch-recipes
We're getting there.
Edit: CoreOS -> Silverblue. Thanks to LeoPanthera.
It is definitely usable and even good, but there is edge cases that ere not figured out, I feel. It needs more blog Posts, Docs, Tutorials ...
Without having deeply investigated myself I read the snap server is proprietary, nobody can run another instance. So nothing I want spend time on to even understand. (The client side gets some complaints, too. But without understanding the system I don't want to form an opinion, I uninstall it from the Ubuntu systems I still have.)
With flatpak you also don't have to engage in this wierd /snap trickery.
You can use either one you want but keep the same base OS, as far as I can tell openSUSE is the only immutable distro that lets you do that, which I think is pretty cool.
Snaps OTOH just seem like a way tk shoehorn proprietary packages onto open source ecosystem (not to mention snap store itself is proprietory, and cannot be swapped for some other snap store)
I think guix is a lot more ergonomic for package definitions and system configuration than nix, I also think the documentation is a lot easier to break into + it has a semi graphical installer.
the big downside being it doesnt come with proprietary drivers which is pretty annoying, but can be worked around with nonguix -- https://gitlab.com/nonguix/nonguix which also includes a few other proprietary programs, if thats something you need
Like the sibling comment says, it has less warts than Nix and Nix language, but depending on your stance on Free software, you may need nonfree repo.
Additionally, NixOS has far more mindshare and manpower and has a vast repository, something to keep in m mind if you ever want some exotic piece, Nixpkgs has higher chance of having it already packaged.
The reason that "classically confined" snaps don't work on Fedora out of the box and don't work on Fedora Silverblue at all is because of this wart. Fedora's snapd uses an alternate path because /snap is not allowed. This means that /snap path doesn't exist, but it also means that "normal" snaps work fine on all Fedora variants, since it doesn't require an FHS hierarchy mutation.
If there is no confinement, what advantages do "classically confined" snaps offer over AppImages?
By comparison, a strictly confined snap only has access to its own data directory and possibly to some configuration files or the users home directory, depending on which permissions it’s been granted.
A text editor which is most useful if it can edit arbitrary files in the filesystem could be classically confined.
A music player might be strictly confined with access only to external devices (and maybe users home directory).
A fishy untrustworthy crypto miner could be strictly confined with no additional permissions so it can only see/touch its own data.