Quick reply. Awesome!
Idk if it changes anything but in that part of my comment the word “workspace” should’ve been replaced by “workstation”. I guess I chose a wrong word in autocorrect.
Nope, it doesn't. But thanks for clarifying!
An immutable system is when everything (or almost everything) except for /home is read-only.
Interesting. Here's the thing; I am unaware of any so-called 'immutable distro' that fits this definition/description/notion/idea/understanding of an immutable system. So..., where do we go from here?
Idk if my English was an issue there but it looks like you understood that part completely upside down.
In retrospect, I think you actually did an okay-job at explaining your thoughts. But, yes; I did indeed misunderstand. Thanks for clarifying!
Probably. Idk anything about ostree.
In Fedora Atomic, most of /usr
is immutable. IIRC, this is even the only directory (combined with the sub-directories found within) that are immutable. However, the command rpm-ostree install <package>
allows the user to install packages into /usr
. However, this change doesn't happen during runtime. Instead, a new image/deployment is created with the newly installed package that you can access after a (soft-)reboot (or with --apply-live
if you like to live on the edge).
Based on this, does this still apply as "disabling immutability"?
What I meant is that if you want to manually edit a file anywhere except for /home (or do any manual changes to the system like installing a GTK theme), you have to run a command (I forgot which one) to disable immutability for the directory it’s in (or only for the file; I don’t remember).
This seems to be based on your own experience. If so, would you be so kind to inform me on which distro this was?
For new users it can be a problem because it may be hard for them to find a good tutorial that covers all the steps, especially at the start of the “immutability boom” if it’s ever going to happen.
Currently, apart from the documentation provided by uBlue and Guix, there's definitely a lack of good resources for 'immutable' distros. That's simply a fact. But, thankfully, this is not a problem by design; we just need people that are willing to put in the effort.
As I just said, more stability means that issues are more stable and hard to solve as well.
Sorry, I'm having a hard time understanding this. Could you perhaps provide an example of this from e.g. Debian? It can be any distro that's regarded as 'stable'*.
Unless I'm wrong, you seem to have missed the following. It would be awesome if you could touch upon these as well:
Furthermore, is it required that an immutable system should remain immutable at all times for it to be considered an immutable system; i.e. changes are not allowed besides ‘hacks’? Or is it perhaps possible for a system to be deemed immutable if it only possesses immutability during runtime?
Thanks in advance 😊!
WOW, I just noticed something. You've been using the term "immutable system" for quite some time. And, I've primarily been using the term 'immutable' distro.
You're on fire, fam! Thank you for another quick one.
Before moving on, I want to make clear that I should correct some of my earlier statements. It probably doesn't matter, but for sake of completeness.
What I describe above is not meant for immutable systems, but for 'immutable' distros.
I didn't imply otherwise 😜. I was just explaining how immutability works on Fedora Atomic.
Excellent. I agree. So, "disabling immutability" therefore only applies to 'hacks'. Right?
Thanks for being transparent! I also appreciate you sticking to your values.
I knew this (and also how
~/.local/share/themes
could be utilized for this). But, fair; this is indeed something that Fedora Atomic's old model didn't allow. Or, at best, very 'hacky'. Like, it's basically not intended for the end-user to put stuff in here. Fedora Atomic's new OCI-enabled model does allow this. But, yeah...; we ain't (necessarily) here to discuss implementations. Fact of the matter and the issue at hand is that traditional distros don't deal with issues like these. Right?IMO, if a new user wants to use an 'immutable' distro, then they should just use one of uBlue's images. They're like the Linux Mint or Zorin or Pop!_OS of immutable distros. And, as previously mentioned, uBlue's documentation is at least sufficient. Traditional Linux distros are not to blame if a new user breaks their Manjaro installation. Similarly, 'immutable' distros are not to blame if a new user breaks their not newbie-friendly 'immutable' distro.
I think I got you now. Like with the previously mentioned issue with placing themes inside the
/usr/share/themes
directory; on any traditional distro, you'd be free to place it there and you wouldn't even have noticed a thing. While some 'immutable' distros, like Fedora Atomic, make this hard. Do you think I understood you correctly?The expression "during runtime" is used to express a running and/or currently in use system. So, if my device is off, then the expression "during runtime" does not apply. When I'm using the system or even if it's just idling, then the expression "during runtime" does apply. However, it's possible with Btrfs (and more sophisticated technologies) to create a partition/deployment/image on your disk that's currently not running nor in use and which has some changes compared to your running system. Then, once again, the expression "during runtime" does not apply.
Perhaps, I could be even more elaborate. So, on the overwhelming majority of 'immutable' distros (Guix System and NixOS are literally the exception) that offer a built-in mechanic for installing packages to the immutable base system (like the aforementioned
rpm-ostree
that's found on Fedora Atomic), the changes are not meant to be applied directly on the running system. So, for example, right afterrpm-ostree install emacs
, I can't just typeemacs
in a console/terminal and expect it to open. Nor does it appear in the app drawer. Only after the (soft-)reboot will I be able to use Emacs; be it through the console/terminal or find it in the app drawer.So, these are examples of 'immutable distros' that are only (meant to be) immutable during runtime, because it's possible to apply changes to a system that's not currently running/in-use/idle or whatsoever.
Interesting. Thanks for that clarification.
The crux of this conversation lies here I believe. Your notion/understanding of an immutable system is probably more correct and more in line with what you'd expect from its name. However, the name "'immutable' distros" is unfortunately not descriptive. Contrary to what you'd expect, it's not a distro that happens to be an immutable system; at least, not in the absolute/complete sense.
I agree with you that this is misleading and a poorly chosen name. Heck, Fedora agrees with you; they've changed "Fedora Immutable Desktops" to "Fedora Atomic Desktops" because of this. However, as bad as the name is, people use the term "'immutable' distros" when talking about Fedora Atomic, Guix System, NixOS, openSUSE MicroOS and Ubuntu Core.
That's why I said this:
And, to be honest, I'm not sure if you answered the bold question.
Thanks (once again) in advance! And apologies for this long comment 😅.