I really love the way rpm-ostree and silverblue work.
I tell people it’s like git but for operating system updates - is this just an analogy, or is that literally what it is. Would you describe it as “version control” software?
Is there an umbrella term that you can use to describe both git and rpm-ostree?
The whole recording changes and being able to roll-back to past states. What is this “type” of thing called? I want to write a little about it and brainstorm how this kind of solution could apply to other problems (even outside of software).
Hi there. I know the feeling. Once I had Silverblue up and running I started mulling on all the moving parts that have to be coordinated for such a system. I was reminded of the Arthur C. Clark quote: “Any sufficiently advanced technology is indistinguishable from magic.”
The introduction of the official rpm-ostree documents has a good overview here:
Is there an umbrella term that you can use to describe both git and rpm-ostree?
I think ‘repository’ is a good base term. Git version control and rpm-ostree transactions both rely on repos to make changing history or updating packages rigorous.
Also, there’s a good discussion on Hacker News about ostree. One of the commenters pointed out that having a filesystem such as btrfs built on the concept of snapshots is also essential:
What exactly is a repository? I feel like the word doesn’t capture what I’m talking about that’s what in common between OSTree and Git.
Apt-get, yum, dnf are all repositories, right?
However, I’m thinking more of the fact that it’s structured as a tree with nodes and branches and that it’s possible to roll back to a past state. One thing about Git and rpm-ostree is that we can feel more at ease with changing our code / updating, we can be bolder knowing that we can easily reverse changes.
Apt, dnf and it’s ilk are package managers. One of the major problems rpm-ostree works towards addressing is a long history of package managers breaking on upgrades and leaving systems in unstable or unusable states. Just search the web for Linux package updates breaking systems and you’ll find decades of horror stories.
The ostree part of rpm-ostree is what separates potentially brittle traditional packaging from Silverblue’s hybrid package/image system. Rather than having to completely hose your system and start from scratch, you have known working previous bootable installation to fallback to.
What exactly is a repository? I feel like the word doesn’t capture what I’m talking about that’s what in common between OSTree and Git.
A friend of mine, who’s familiar with Git but rpm-ostree only through my description of it, brought up the phrase “Event sourcing” as the category that both of these fall under.