I am running Fedora 39 right now and the last time I did a distro upgrade my graphics drivers were a huge PITA. Did your upgrade to 40 went smooth?
No they just package the exact same versions, but differently. It uses rpm-ostree which is like Git but for operating systems (binaries).
A quick tour through Atomic Fedora
It relies on a main image, which could just be used like that. This is a minimal Fedora install, containing everything thats needed and nothing more.
You would then install apps via Flatpak, Appimage, binaries, Toolbox etc.
Or you can layer RPM packages, and you can install everything as on normal fedora. This will make updates a bit slower but is usually needed for small things like a different shell.
These packages will be kept updated in parallel to the OS. The OS is always 100% what Fedora ships, while the RPMs come from all the repos you can imagine, COPR, rpmfusion etc.
Rpm-ostree pulls down the update and the packages are added to that. But instead of modifying the current OS, it clones it, using the current one, and the differences (updates) that are downloaded.
This new image is now either complete, or gets the wanted RPMs added or removed. The new image is then set as new boot target.
You can use your system how long you want, but when you reboot (and this takes not any longer than a regular reboot) you will boot into the new version.
If something broke, you always have the last system kept. You can increase that number, so only the x-th last image gets automatically deleted. And you can manually sudo ostree admim pin 0
the current system, if you know it works well and you have for example a driver update, or a big system update, and want to be sure you will have this as backup.
You can also rebase, which means your system will now mirror a different repo of theirs. For example from Silverblue (GNOME) to Kinoite (KDE). This will change everything so that you now 100% have the packages of the new repo, failsafe.
If it would fail, the update would cancel and you dont get one.
So remember:
- the system by default is 100% the one that Fedora ships. No manual upgrades, no strange “cant reproduce on my system” conflicts, nothing.
- you can still install all RPMs you want
- you can remove RPMs from the system
- you can reset the system again to be 100% upstream
- you can rebase to a different variant. Like Fedora to uBlue, including NVidia drivers and some packages. Or advanced images like Bluefin/Aurora, or Secureblue variants
- updates either work 100% or fail
- you will always have a fallback system (not only a kernel, an entire system) and you can keep as many as you want, forever
So basically: rpm-ostree gives you the needed control to have a stable OS.
But still not everything is “immutable” /managed with rpm-ostree. Your entire /var
is mutable, and /etc
and /home
are symlinks from that. This means you can configure and break what you want, which can also be problematic.
Note though, that the vanilla /etc
files are stored in /usr/etc
, so you can restore them. Make sure to exclude crypttab, fstab and a few more!
If someone is interested in the atomic concept, i would recommend looking into uBlue. It offers the Fedora atomic spins with a lot of tweaks applied that take the user experience to another level. Everything is just hassle free. Highly recommended! There are separate images with tweaks for gamers and developers.