Getting Started with Fedora Silverblue

I have been using Ubuntu for many years to learn more Linux utilities, containers, Kubernetes and to keep up-to-date with the latest trends in the Linux world. Windows OS was easily accessible during my school and college days. macOS was rare to find in my hometown due to the expensive price tag; and I still remember Linux was distributed along with the magazines (something similar to below) in India. After using Ubuntu extensively in WSL 1 and 2 on my 7-year-old Dell laptop, I recently upgraded to Lenovo. I wanted to try something refreshing in the Linux world, so after trying various distros, I found Fedora Workstation and Fedora Silverblue fulfill my requirements.

Linux CD-ROM
Linux CD-ROM
Linux CD-ROM
Linux CD-ROM

Credit: https://opensource.com/article/19/11/learning-linux-90s

Backstory and my Upgraded Gear

After saving money from past many months and carefully watching for the deals, finally I was able to afford to upgrade my laptop. I was using Dell Inspiron 13 5378 Intel i5 sixth generation which I got from Dell back in 2016. It had a good run, but the battery died after five years, I was running in always-ON power mode. Most of the time, I don’t carry my laptop due to pandemic; otherwise I used to go to the nearest Starbucks or the library on the weekends to learn.

A couple of months ago, I stumbled upon this excellent deal from Costco where you can grab a Lenovo Legion Slim 7 15″ Gaming laptop for $1515 including tax and shipping.

I am not a hardcore gamer, but I play it only on my Xbox. I was looking for more RAM instead of more cores. It is one of the best investments I made in recent years. AMD is really fast (first time I have tried AMD chip). The only issue I found was the keyboard lighting settings will be reset with every restart. I use an external keyboard, so I really don’t mind. But the laptop keyboard is excellent. Enough of my bragging :), let us get back to Fedora.

Lenovo LEGION Slim 7 15" Gaming Laptop 
AMD Ryzen 9 5900HX - 8 Cores - 16 Threads
GeForce RTX 3060 Max-Q
165HZ 1080p
Windows 11 
Shadow Black
32GB RAM
1 TB SSD

Fedora Ecosystem

As you are already aware, Fedora is the upstream to Red Hat Enterprise Linux. In the Fedora ecosystem, you get six different flavors of Linux:

  • Workstation for personal computer
  • Server for servers
  • CoreOS for cloud computing
  • Silverblue GNOME based immutable desktop specialized for developers who work on container-based workflows
  • Kinoite KDE Plasma based immutable desktop
  • IoT for IoT devices

CoreOS and Silverblue are emerging in the Fedora ecosystem. It may replace other flavors in the future.

Immutable OS

The difference between CoreOS and Silverblue is: the former is minimal, automatic updating and best for containerized workflows with no GUI; the latter is GNOME-based, immutable desktop, and best for containerized workflows.

Immutable desktop helps in keeping the OS more stable and fewer bugs prone due to the atomic nature. What is atomic? During OS upgrades, possibly two things can happen. One is a successful upgrade with no errors. Second, the upgrade may fail. In case of failure, the OS will revert to the previous state.

How Fedora CoreOS or Silverblue achieves immutability. Enter rpm-ostree.

rpm-ostree

rpm-ostree is a hybrid package system. Think of it like a git for OS. rpm-ostree is integrated with CoreOS, IOT and Silverblue.

Use rpm-ostree only when you want to create layered packages. To install the apps use Flatpak (see below).

To learn about rpm-ostree let us spin up Fedora Silverblue in VMWare Workstation.

Download the ISO from here.

Upon launching the terminal in Silverblue, you will get the below message.

Welcome message in Terminal in Fedora Silverblue
Welcome message in Terminal in Fedora Silverblue

Basically, you do not get dnf or yum installed in Fedora Silverblue, but we do have rpm-ostree to install the apps.

rpm-ostree in Fedora Silverblue
rpm-ostree in Fedora Silverblue

The RPMs are coming from the /etc/yum.repos.d folder as shown below.

rpm-ostree repos
rpm-ostree repos

Let us focus on installing, upgrading, rebasing and rollback on the host system. In the next blog, we can see about the toolbox for the containerized workflow.

Below are the commands which help in administering the host system.

rpm-ostree status -v

rpm-ostree upgrade

rpm-ostree rollback

rpm-ostree deploy <version>

rpm-ostree install <pkg>

rpm-ostree uninstall <pkg>

rpm-ostree rebase -b $branchname

The inception command is status. status command shows the deployments in the order. The circle prefix as shown below shows that the current booted deployment.

rpm-ostree status
rpm-ostree status

Now, let us upgrade the image to the latest using rpm-ostree upgrade command and then reboot using the systemctl reboot command.

After upgrading and rebooting, let us issue the status command. You can see that there is a new current deployment.

New Deployment
New Deployment

Layered Packages

Whenever you make changes, it will get versioned and layered. Let us install a couple of packages using rpm-ostree and reboot again.

Issue the below command to install git, nginx and konsole.

rpm-ostree install git nginx konsole

After rebooting, launch terminal and verify the versions of git, nginx, and konsole as shown below.

Check version
Check version

Let us issue the status command again.

rpm-ostree status after layering
rpm-ostree status after layering

Let us install caddy and uninstall nginx using the below commands.

rpm-ostree install caddy

rpm-ostree uninstall nginx

systemctl reboot

Here is the status output.

Updated status

Now, let us roll back with git, konsole, and nginx using the below command and reboot.

rpm-ostree rollback -r

nginx is back again.

nginx is back
nginx is back

Here is the verbose output of rpm-ostree status -v.

verbose status
verbose status

When to use package layering?

As I mentioned earlier, you should avoid using rpm-ostree to install the apps. Use rpm-ostree to install drivers, libvirt, etc.

Installing Apps using Flatpak

Now let us install apps using Flatpak. Flatpak is the easy way to install apps to your Silverblue host using its GUI. Download and install Flathub repo file. Once the installation is done, navigate to Flathub to search and install your desired apps. Use Flathub to install the GUI based apps like LibreWolf, gedit, and more

Librewolf in Flathub
Librewolf in Flathub

Toolbox

Toolbox is the recommended way to install CLI apps, container apps, development tools and more. We will deep-dive into Toolbox in the next blog.

Closing Thoughts

Immutable OS is the future; as it provides stability, reliability, and security. Dedicated ecosystem for container based workflows boosts developer productivity. The GNOME environment helps to easily get started for general users. Fedora Silverblue has a long way to go. But the immutable desktops will not be a fad.

1 thought on “Getting Started with Fedora Silverblue”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

JMeter September batch training schedule has been posted.BOOK NOW
Share via
Copy link