Quick Start — Done in 5 Minutes
After nearly 6 months running Fedora Silverblue on my development laptop, I can say it straight: this is the hardest distro to give up that I’ve ever used — not because it’s easy, but because once you get used to it, you don’t want to go back to the old way.
Download the ISO at fedoraproject.org/silverblue and install it with the Anaconda installer just like regular Fedora. Nothing different at this step. Once you’ve booted into the desktop, open a terminal and run:
# Check current system status
rpm-ostree status
# Output will show the running deployment
● default ostree://fedora:fedora/41/x86_64/silverblue
Version: 41.20241010.0 (2024-10-10)
BaseCommit: a1b2c3d4e5f6...
LayeredPackages: (empty if nothing extra has been installed)
Now create a Toolbox — this is where things get interesting. All your dev tools live inside the container, leaving the host system untouched:
# Create a toolbox container (Fedora 41 by default)
toolbox create
# Enter the toolbox
toolbox enter
# You're now inside the container — install whatever you need
sudo dnf install -y git nodejs python3 gcc make
Done. The host system stays clean, and all dev tools live inside the container.
How rpm-ostree Works
If you’re used to dnf install on regular Fedora, the way rpm-ostree works might feel a bit foreign at first. I’ve been using Fedora as my main development machine for 2 years and was quite happy with the package update speed — but Silverblue completely changes the philosophy of system management. If you’re evaluating whether Silverblue fits your workflow, the Fedora vs Ubuntu comparison is worth a read before committing.
Silverblue uses OSTree — a filesystem management system that works similarly to Git but for the entire OS. Instead of installing packages directly into /usr, each system state is saved as a commit. Three practical consequences:
/usris read-only — nothing can write to it directly, not even root/home,/var,/etcremain writable as normal- All OS changes go through
rpm-ostreeand only take effect after a reboot
Installing Packages on the Host System
Sometimes you need to install something directly on the host — drivers, kernel modules, or tools that require deep system integration. If you find DNF operations slow during this process, speeding up DNF with plugins can make a noticeable difference:
# Install packages (staged — requires reboot to take effect)
rpm-ostree install vim htop
# See what has been layered on top of the base image
rpm-ostree status
# LayeredPackages: htop vim
# Remove a layered package
rpm-ostree uninstall htop
Unlike dnf, these packages are “layered” on top of the base image — the base image stays intact, and you can remove the layer at any time without any side effects.
Rolling Back After a Bad Update
Over 6 months, I needed to roll back exactly twice. The first time was because a new kernel broke my Wi-Fi driver, the second because a Mesa update caused screen flickering. Both times were resolved in under 30 seconds:
# Upgrade the system (staged, not applied immediately)
rpm-ostree upgrade
# Reboot to apply the new version
systemctl reboot
# If something breaks after rebooting, roll back immediately
rpm-ostree rollback
systemctl reboot
Silverblue keeps 2 deployments in the GRUB boot menu. If things go sideways after a reboot, you can manually select the previous deployment right from the boot screen. This feature alone made me stop dreading OS updates — worst case is a 2-minute reboot, not hours of debugging.
Toolbox — Development Environments in Containers
Toolbox is what turns Silverblue from “interesting” into “actually usable every day.” Under the hood, it creates a Podman container with /home mounted in, so you have full access to all your files from inside the container without copying anything. If you’re already familiar with Podman, you’ll find that managing container images with Podman on Fedora applies directly to how Toolbox operates under the hood.
Managing Multiple Toolboxes per Project
# Create named toolboxes
toolbox create --container python-dev
toolbox create --container node-dev
toolbox create --container rust-dev
# List all toolboxes
toolbox list
# Enter a specific toolbox
toolbox enter python-dev
# Remove a toolbox you no longer need
toolbox rm python-dev
I keep 3 permanent toolboxes on my machine: Python projects, Node.js, and a sandbox for experimenting. Each toolbox has its own independent set of packages — dependency conflicts between projects are no longer a problem.
Using a Different Distro in Toolbox
You don’t have to use Fedora inside your toolbox. If a project requires Ubuntu or you need to test packages on a different distro:
# Toolbox running Ubuntu 22.04
toolbox create --distro ubuntu --release 22.04 --container ubuntu-env
# Toolbox running Fedora 40 (older version for testing)
toolbox create --distro fedora --release 40 --container fedora40-test
# Enter the Ubuntu toolbox
toolbox enter ubuntu-env
Advanced: Overrides and Rebase
Overriding Packages from the Base Image
A real-world scenario: Mesa 23.2 has a flickering bug on some Intel GPUs — you need to pin it back to 22.3 without rebuilding the entire system, or simply remove a default app you never use:
# Remove a package from the base image
rpm-ostree override remove gnome-tour
# Replace a package with a specific version from an RPM file
rpm-ostree override replace ./mesa-libGL-22.3.0.x86_64.rpm
# View current overrides
rpm-ostree status
# RemovedBasePackages: gnome-tour
Rebasing to a New Version or a Different Spin
Instead of reinstalling when you want to upgrade to Fedora 42, you rebase directly — all layered packages and config are preserved:
# Rebase to Fedora 42 Silverblue
rpm-ostree rebase ostree://fedora:fedora/42/x86_64/silverblue
# Or try Fedora Kinoite (KDE Plasma instead of GNOME)
rpm-ostree rebase ostree://fedora:fedora/41/x86_64/kinoite
# Reboot to apply
systemctl reboot
If Fedora 42 has issues, rolling back to Silverblue 41 takes only a few seconds.
Practical Tips After 6 Months of Use
Flatpak for All GUI Apps
With Silverblue, the right philosophy is: GUI apps via Flatpak, dev tools via Toolbox, drivers/kernel via rpm-ostree. Don’t install VS Code or Slack as rpm-ostree layers. For a deeper look at managing sandboxing and storage with Flatpak, this guide on Flatpak on Fedora covers the details well.
# Install VS Code, Spotify, Slack via Flatpak
flatpak install flathub com.visualstudio.code
flatpak install flathub com.spotify.Client
# Update all Flatpak apps
flatpak update
# Script to update the entire system
alias sysupdate='rpm-ostree upgrade && flatpak update'
Aliases to Speed Up Your Workflow
# Add to ~/.bashrc
alias tbe='toolbox enter'
alias tbl='toolbox list'
alias rpmst='rpm-ostree status'
alias rpmup='rpm-ostree upgrade'
When Silverblue Is Not the Right Choice
After 6 months, I’ve realized Silverblue isn’t for everyone:
- Gaming with NVIDIA proprietary drivers: Setup is significantly more complex — Nobara Linux will save you the headache.
- Production servers: Silverblue is a desktop OS. For servers, Fedora CoreOS (same OSTree foundation) is a better fit.
- Complete Linux beginners: Regular Fedora Workstation has less friction to get started with.
For developers — Python, Node.js, Go — Silverblue plus Toolbox is the cleanest setup I’ve ever had. The host system doesn’t get cluttered by dev dependencies. OS updates are far safer. And when something goes wrong, rolling back takes seconds — not hours of reinstalling everything.

