I’ve seen a couple of times a variation of the following argument:
You shouldn’t add too many layers using rpm-ostree, because it will cause “problems” (instability, issues, weirdness, etc)
I don’t think this is true - or, at least, if it is true, I don’t understand why it is true.* My understanding is:
- All Fedora RPMs are designed to be installed alongside each other on the corresponding release of the Fedora (or, refuse to install alongside incompatible RPMs, for example), and if one doesn’t then this will be (and has been) considered a bug, and fixed.
- The immutable variants of Fedora are essentially a collection of RPMs “installed” to an
ostreeimage, just like how the mutable variants are a collection of RPMs (except, installed directly to disk). These images constitute the “base” of the OS.
rpm-ostree“layers” the changes to the base image (all the same packages that would be installed on a mutable variant), uses that to create a new
ostreeimage, and stages that image for you to reboot into.
- All Fedora packages are expected to install on immutable variants of Fedora, and if one doesn’t then this will be (and has been) considered a bug, and fixed.
As such, it seems to me that if
rpm-ostree is doing it’s job correctly (which it seems to - it’s very reliable in my experience) then there is no reason to expect an immutable variant of Fedora with many layered RPMs to be less stable/error-prone/“weird” than a mutable variant of Fedora with the same RPMs installed. Should it?
Note: I am keenly aware that there are often better ways to install things on immutable variants of Fedora (luv a Flatpak, luv a container) - but those aren’t universally better, and often the best decision (or, the best decision for someone that understands RPMs but not yet containers) is to “just layer it” - either until the other options catch up, or until the user’s understanding catches up.
My view (which I am seeking to challenge by making this post) is that
rpm-ostree is reliable enough for most users to make the switch from mutable variants today - yes, use Flatpaks and toolboxes where they make sense (or, where you can make sense of them), but for anything that doesn’t work (or, doesn’t work reliably), just layer it.
If not, why not?
*for Fedora-sourced RPMs - outside of the Fedora repositories “weirdness” may happen due to those RPMs being tested on Fedora but not Silverblue/Kinoite/CoreOS/etc, which is also true of RPMs tested on RHEL/CentOS but not Fedora Workstation and has been a long-running issue with packages not sourced from the distribution on any OS.