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.
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.
Basically, you do not get dnf
or yum
installed in Fedora Silverblue, but we do have rpm-ostree
to install the apps.
The RPMs are coming from the /etc/yum.repos.d
folder as shown below.
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.
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.
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.
Let us issue the status
command again.
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.
Now, let us roll back with git, konsole, and nginx using the below command and reboot.
rpm-ostree rollback -r
nginx is back again.
Here is the verbose output of rpm-ostree status -v
.
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
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.
Top comments (0)