At Red Hat Summit 2019, I became fascinated with Fedora Silverblue, an immutable (i.e., unchangeable) variant of Fedora Workstation that primarily uses Flatpak to install apps. I've used Fedora for nearly three years (and Linux for about 22 years) and recently upgraded my machines (home and work) to Fedora 30. But I liked the idea of an immutable desktop and resolved to try it out when I got home.

According to the Fedora Silverblue User Guide:

"Fedora Silverblue is an immutable desktop operating system. It aims to be extremely stable and reliable. It also aims to be an excellent platform for developers and for those using container-focused workflows."

The day I returned from Red Hat Summit, I downloaded the latest image of Silverblue from the main Silverblue website. I burned it to a USB drive (do you really "burn" to a USB drive?) and tried to install it. The process failed, but I was jet-lagged, so I headed to bed suspecting that the problem might lie with the USB drive—I've found that about 50% of USB drives have problems when you try to install Linux from them. I woke up early (jet lag still), found a new USB drive, and tried again.

Installing Silverblue was a complete breeze. This is because it uses the (excellent) Fedora installer and, well, because it's all easy. I'm writing this just a few hours after my very first installation because I'm that impressed, and it was that easy.

A little more about Silverblue

I did a bit of reading to get my head around the idea of Silverblue before going too deeply into it, and one of the major changes you need to understand is what you're running. As the project description above explains, it's immutable, which means that you don't upgrade packages: you just create a new version of the operating system with the new packages (you don't need to download all the old ones as well!) and boot into that. You know exactly what you're running, and, as per the documentation:

"every installation is identical to every other installation of the same version. The operating system that is on disk is exactly the same from one machine to the next, and it never changes as it is used."

Once you've taken new versions of packages, you just reboot into the new version, and you're good to go. If there's a problem with it, you can revert to the old version. I like this for stability, but also for security.

If you really need a different version of an operating system package, you can layer it on top of the existing one, but this loses some of the benefits of the immutability.

If you want to install applications, the preferred way of doing so is to use Flatpak. I'll talk a little more about this below.

The installation process

As I mentioned above, the installation process was really simple (once I'd identified a working USB drive). I chose my keyboard type (English UK) and went on from there. I used the default partitioning (there are apparently problems with custom partitioning, although I guess that will be fixed soon), chose to encrypt my hard drive (my only slight complaint about the installation process would be that it wasn't the default option), provided a root password and initial user, and waited for the process to complete, which didn't take long at all.

The first thing I did after booting into the new installation was to make sure that I was up to date by using this command:

rpm-ostree upgrade

I took the suggested upgrades, rebooted again, and had a working system.

Installing more software

Silverblue feels just like a standard Fedora install, albeit with fewer applications installed out of the box. I had to get my head around Flatpak, so I started a browser (Firefox was already installed) and started reading. The first thing I wanted to get onto the system was Dropbox, as I have some files there that I wanted to access quickly, so I tried:

flatpak install dropbox

This returned no results, so I headed to the internet and discovered that I needed to install a repository. This was ridiculously easy, even from the command line, but it turned out that the easiest way would have been to follow the instructions at the Flatpak Fedora Quick Setup page and use the Software Installer app (which is, like Firefox, available by default).

I had, of course, chosen a particularly awkward package with which to get started. To install properly, Dropbox needs to install to an "actual" directory, rather than a symlink. Silverblue installs your home directory:

/home/mike

to:

/var/home/mike

Dropbox doesn't like this. To get around this, I entered the latter path into the Dropbox setup wizard screen, and all was then fine. The fact that this was my trickiest part of the entire Silverblue process speaks volumes to how easy everything is.

With this under my belt, I felt ready to install some of my other prerequisites for a working system, which include:

GIMP

Keepass

Evolution

Emacs

Steam

LibreOffice

They all installed easily and without difficulty, and I've used the command line and the GUI-based Software Installer with equal success.

Here's some of the software I found pre-installed:

Command-line Git

Vi

GNOME printing

GNOME Advanced Networking

One thing that surprised me a little (until I thought about it) was how long some downloads took. This is a tradeoff with a quick operating system installation, as applications have to install frameworks and libraries that would otherwise already be installed on a standard system. Once they've been downloaded once, however, it appears that they can be shared between other Flatpak apps, so this isn't likely to be a continuing issue.

Final thoughts

If you want a stable desktop system, and particularly if you're interested in using Flatpak (or containers in general; Silverblue uses Toolbox to simplify this), then I would heartily recommend Silverblue. Installation was easy, applications are simple to get onto your system, and if you're used to Fedora—or any standard Linux desktop system, to be honest—you're unlikely to have any problems with it. If you're looking for something new, but stable and easy to use, give Silverblue a try.