Fedora - Workstation vs. Silverblue
The Fedora project provides many flavors of Linux based Desktop operating systems. With Fedora Silverblue, you are getting the option to dip your tows into immutable desktop distributions. But what are the differences? Why have I chosen to use Fedora Workstation after two years of Fedora Silverblue?
Using Fedora Workstation is something I was doing for a very long time (8 years or so) in production at work and home. This was only natural to me. CentOS on production servers, Red Hat Enterprise Linux on highly critical machines and Fedora on the desktop or development machines.
With Gnome 40, Firewalld, SELinux, Podman and very up-to-date software it is one of the best distributions I know of. It is a bit like "current as Arch Linux, but comfortable as Ubuntu". That does not mean the others are irrelevant, but for me, it was the best bet for a long time.
I have written a more detailed article about Fedora Workstation and how to automate it, already.
Fedora Silverblue is a quite new variant of Fedora. It adds some interesting twists to the "good ol' GNU/Linux". For example, you are getting an immutable disk layout, which can be updated and manipulated via ostree/rpm-ostree.
Fedora Silverblue is also very interesting, since it heavily focuses on containers. The recommended way to deploy applications and services is via Flatpak, Podman or Toolbox (a somewhat special Podman container).
Most of the tooling is still Fedora Workstation alike - You are getting Gnome 40, Firewalld, SELinux and more. Overall, it is an amazing vision to have an immutable base OS and sandbox/container applications on top of it. In fact, I was so amazed, that I used Fedora Silverblue for over 2 years on production machines at work and home.
That reminds me... I wanted to write a dedicated article about all the benefits and features of Fedora Silverblue.
Before digging into more details: With Fedora 35, I will switch back to Fedora Workstation. But let me explain.
Support & Documentation
From the support and documentation point, both are very different. In some regards, you can use documentations for Fedora Workstation and apply them to Silverblue. Some additional, but very limited, documentation is available. The team is small and tries its best, the documentation is not as up-to-date as you might desire, sometimes.
On the community support side, you can expect that the Fedora Workstation community is way bigger, but most people working with Silverblue are deeper in the ecosystem. In the end, you will have basically the same situation and getting answers for most topics.
So, I am not switching due to the lack of documentation or a smaller community. But this might be a reason for you.
Reliability & Consistency
Silverblue and Workstation are working very reliable for me. I don't care if I have to reboot a machine occasionally or dig into some issues. But there are some things, you need to consider. Due to the nature of Fedora Silverblue, you will have many applications coming as flatpak or put into a container or toolbox.
This is a nice idea, but introduces some hurdles. Some flatpaks don't have permissions to use your home directory, for example. Some software may need access to system tools. An editor or IDE that wants to use ShellCheck for example needs special treatment in most cases. Many messengers want to read and write files to your home directory.
This does not make the system itself unreliable, but the behavior of different applications can vary from "works like a charm" to "phew... how can I get rid of the flatpak internal nautilus file picker". Furthermore, some flatpak applications seem very unreliable. A randomly crashing extension server in vscodium is such an example. Not sure where it is coming from and why it happens, but it's there.
Gnome Software is also an issue. It has really improved in version 40, but not on Silverblue. Update notifications are missing very often. Rpm repositories are chosen by default here and there, and it just feels a tad more sluggish than in Fedora Workstation.
Fedora Workstation on the other hand has very well maintained packages, but misses the cool rollback feature from ostree.
Automating Silverblue has also some issues. Paths are different and there is no proper support for rpm-ostree package installations in Ansible, for example. There are ways to work around this, but it's just a bit more friction in my daily work.
The article about "Ansible - Linux Workstation Management" is not applicable (in regard to package management) to Silverblue for example.
Software and Packages
If you want to use Fedora Silverblue, you will install one or more packages on top. But this is the major pain point for me.
I need some packages (vagrant, libvirtd, ffmpeg-libs, vscodium, additional NetworkManager plugins) and want to get rid of others (gnome-terminal, gnome-classic-session). There is no way around having some overlays and removals applied to the base layer. This seems to be a problem, since Fedora Silverblue package management is getting slower and slower the more packages you are manipulating via rpm-ostree.
Having to reboot twice to enable a repository and install a software is also not very beneficial. It gets even more interesting, if you are using repositories that are shipped via rpm (ex.: rpm-fusion). The rpm-fusion rpm itself cannot be updated via rpm-ostree, and you have to treat this via removing, installing and at least 2 reboots.
There is also the situation described above (Reliability), where a flatpak package (nextcloud-client) simply does not work and integrate as good as the rpm.
But, you will also have legacy package names like bijiben instead of gnome-notes and older software versions, compared to Flathub packages. Since one can use flatpak packages on Fedora Workstation, it's not a problem for me.
Overall, the whole "how to get standard packages without having to maintain everything separately" situation is the reason I am switching back. With Fedora Workstation I can apply the same workflow (flatpaks, podman containers, toolbox) but will not be forced to do so. Instead, I can mix the things up the way they are working for me.
Silverblue is a very awesome idea and with some more iterations and improvements, it will become an awesome tool. I will have an eye on it, for sure. For now, I need a workstation that works with the tools I need on a daily basis. I simply don't have time to fiddle around with toolboxes and missing flatpak permissions.
BUT, if you just want to play a bunch of games, surf the web, read mails and do "consumer" work with maybe a bit of development that can run in containers. Please support the development. The whole ostree idea is so great, that it needs feedback from machines in the wild.