Spotlight - Fedora Silverblue

Fedora Mar 23, 2022

Fedora is constantly evolving and changing how the GNU/Linux world is looking like. One of the more recent approaches is Fedora Silverblue. The immutable Desktop Linux has the potential to become the new Fedora Workstation Linux. Shall we have a look?

If you are reading my articles on a regular basis, you may be aware that I promised to make this article in "Fedora - Workstation vs. Silverblue".

Vision and Purpose

Fedora Silverblue is an upcoming Fedora Edition, which is aiming to be extremely solid and focuses on container-based workflows. In fact, Silverblue is a variant/spin-off of Fedora Workstation. It feels, looks and behaves (mostly) like a regular Fedora Workstation Desktop.

On top, it introduces technologies and design patterns, that make it harder to break and easy to roll back or rebase to the next release. The immutable design should make it more stable and less prone to bugs.

Target Audience

As soon as Silverblue becomes a Fedora Edition, it may address the current Fedora Workstation users. Until then, it is something with a more enthusiastic audience, that will focus on container workflows in Podman, Flatpak and Toolbox.

But, since it is already very stable and really hard to break, it may be a viable option for users, that don't want to tune and customize everything. Using Flatpak applications, running updates, writing some documents and browsing the web works reliable.

From my perspective, and as explained in the article "Fedora - Workstation vs. Silverblue", I don't recommend it for power users and professionals (yet).

Release & Support

The release and support cycle is exactly the same as for Fedora Workstation. You will get a new major release every 6 months. Support is given for 13 months. In-Place upgrades are fully supported, and you can even roll back, if you aren't happy with the new release.

The support team is smaller than for Fedora Workstation, but the developers are really quick when it comes to fixing bugs.

You can have a look at the development or open issues in the GitHub organisation.

Features & Details

As already explained, many things are similar to Fedora Workstation, but there are major differences, too. Let's have a more detailed look in the features and how they are adding value to Fedora Silverblue.

Similarities and Differences

Sooo, what is similar to Fedora Workstation? You will get most of the Fedora Workstation tools, you already know. Linux Kernel and GNU utilitilies are basically the same. Yes, there are systemd and btrfs, too. You will also have the GNOME Shell, SELinux and firewalld.

Most of the pre-installed desktop applications are there, but will be a Flatpak from Fedora. If you uninstall all Flatpak applications via the command flatpak uninstall --all, you will have a very slick and minimal GNOME Desktop.

But, you will not have the dnf command. Instead, ostree/rpm-ostree are there and will manage packages, but differently.

Ostree

Instead of installing single packages in Fedora Silverblue, you will use ostree and rpm-ostree to layer packages. This works similar to Git or the layers, you can find in Containers (like Docker Images).

You start with the base layer and if you install something (let's say Vim), rpm-ostree will add a layer on top of the base image.

# Install Vim
$ rpm-ostree install vim

Furthermore, these changes will require you to restart the system. There is no live-change to your running system, which makes things really solid. So, you need to reboot to apply the changes.

# Reboot system
$ reboot

After the restart, you may run into issues - something is broken, a software does not work as expected, etc. No problem, you can perform a rollback.

# Rollback to the previous state
$ sudo rpm-ostree rollback

Upgrading works pretty much the same.

# Check for updates
$ rpm-ostree upgrade --check

# Do the update
$ rpm-ostree upgrade

All updates are transactional (no live script that can break) and layered (ostree) on top of the write-only (immutable) base image. Therefore, you can roll back exactly the same way as before. Even for major version updates.

But, layering packages is not the preferred way to install applications and services in Silverblue. Instead, the workflow is built around Podman, Toolbx and Flatpak. First, let's have another look at the "immutability" part.

Immutable

Fedora Silverblue is (mostly) immutable. This means, that most of the file system cannot be manipulated via the live system. For example, you cannot remove binaries from "/usr/bin". Or, as already explained in the previous section, you need to reboot your system to apply updates.

There are some things, that you may need to know.

  • /etc is writeable, so you can change configurations
  • /usr/local (symlink to /var/usrlocal/) is writeable, to store your system-wide binaries
  • /var is writeable and most changes will be made here
  • /home is a symlink to /var/home

So, it is possible to download and install 3rd party applications, as long as they are not manipulating "/usr" for example.

For everything else, Podman, Toolbx and Flatpak can be used. Let's check them out.

Podman

You may know Podman already as a drop-in replacement for Docker. In Silverblue, a container-based workflow is embraced. If you want to install a web server, MariaDB or NodeJS on your machine, you can use containers for the same.

Using Podman is really easy, and I have already written some articles like "Podman - Getting Started" about it. If you want to run a container on boot, you may be interested in "Podman - systemd container management". There are even more articles, if you are interested.

Toolbox/Toolbx

Sometimes, you want to install additional tools, that are not suitable in a secured container, but need access to your home directory and system. This is where Toolbx comes into play. Toolbx presents a set of software that allows to run Podman containers as if they are natively running.

You can use Toolbx to install graphical and CLI software, too. But, there is an even better option to install GIMP or LibreOffice. You should have a look at Flatpaks first.

Flatpak

Flatpak is the recommended software deployment method for graphical software in Fedora Silverblue. I am so thrilled by the ease of use, auto-updates and always "current" software without updating my system, that I am using it and recommending it on a daily basis. For me, Flatpaks are the new package format, and I have also written an article dedicated to Flatpaks. This article also addresses the Flathub repository, which is recommended, if you want a ton of software like Steam, an Office suite, video player or even Spotify client.

Team Silverblue
Team Silverblue
Fedora Silverblue User Guide :: Fedora Docs
How I Customize Fedora Silverblue and Fedora Kinoite - Fedora Magazine
Are you using Fedora Silverblue or Fedora Kinoite and looking for some ideas about what you can try out on your system? This article might inspire you and help get you started.
Fedora Silverblue, an introduction for developers - Fedora Magazine
Silverblue brings immutable benefits and new ways of working.
The pieces of Fedora Silverblue - Fedora Magazine
Fedora Silverblue provides a useful workstation build on an immutable operating system. In “What is Silverblue?“, you learned about the benefits that an immutable OS provides. But what pieces go into making it? This article examines some of the technology that powers Silverblue. The filesystem Fedor…

Conclusion

Let's face it. I really like Fedora Silverblue. If you read my article "Fedora - Workstation vs Silverblue", you may also know that I am not using currently. From a developer perspective, I am just missing some flexibility and integration.

BUT, for me, Silverblue is the future. Having an immutable base system, that is fully tested, is a huge plus. As soon as Flatpak integrations work better, and I am able to have a fully integrated developer experience, I will switch to Silverblue again.

What about you? What are you currently using? What do you think about Fedora Silverblue and immutable Linux distributions in general?

Tags

Daniel Schier

Just a guy doing stuff. Mostly #FLOSS like #Linux, #Ansible, #Podman, #k8s, #Python, #Nextcloud or whatever comes next.