Hello Silverblue!

Silverblue 的魅力所在

平衡 忠诚 不息

“银蓝”

首先名字就很好听,哈哈…

隔离变化与不变

在操作系统的日常使用中,底层内核往往保持稳定,上层应用变化较多。

一般的系统中,上层应用在变化中可能破坏底层操作系统,接连影响到其他应用。最坏的情况是,上层应用导致操作系统内核损坏,从而整个系统崩溃。显然,原因是紧耦合。

因此,解决方案是对变化与不变的隔离。Silverblue 具有不可变特性:操作系统的基础部分是只读的,保持稳定;应用的变化仅发生在上层,无法改变底层系统的核心,由此减少了系统损坏或崩溃的风险。

容器化应用

除了少数最必要的包使用 rpm-ostree install 进行安装,大部分应用都使用容器化技术安装,例如 Flatpak, Toolbx, Podman,容器化技术在不可变的 Silverblue 系统上创建了可变、可管理的开发环境,并保证了应用之间的进一步隔离。

另外,Toolbx 使各种工具能够整齐分类摆放,使工作空间保持整洁。

无缝衔接的体验

除了不可变部分,Silverblue 的使用体验和 Workstation 极为相似。

在 Toolbx 中,可以使用 dnf 安装应用,这一点应该能打消很多转变的疑虑。

不要停止前进

在传统的操作系统中,面对前方的未知,前进由勇气驱动。Silverblue 则为勇气提供了保障。

rpm-ostree 的版本控制机制能够切换和回滚到不同的系统版本,使用户能够大胆尝试新的版本;容器化应用则让用户不必担心对主系统产生不良影响。

最后

Silverblue 的设计充满魅力,不要犹豫去使用!

Appendix

Install Nvidia Driver and Cuda on Silverblue

Steps

Note: Secure boot MAY need to be turned off

First of all, enable repository

1
sudo rpm-ostree install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

then reboot

1
sudo systemctl reboot

then

1
sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda

then reboot

1
sudo systemctl reboot

then use nvidia-smi to check whether it is okay, if not, also need the following command

1
sudo rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=1

then reboot

1
sudo systemctl reboot

Remove Nvidia Driver

The nvidia driver may not be able to use after upgrading of the OS. If you want just to abandon it, follow the steps to rollback.

Remove packages:

1
2
$ sudo rpm-ostree uninstall akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda
$ sudo rpm-ostree uninstall rpmfusion-free-release rpmfusion-nonfree-release

Remove kernel args:

1
$ sudo rpm-ostree kargs --editor

remove rd.driver.blacklist=nouveau, modprobe.blacklist=nouveau, nvidia-drm.modeset=1.

then reboot.

~ location

Your ~ is /var/home/user, not /home/user.

1
2
user@silverblue:~$ pwd
/var/home/user

Pay attention to this when setting environment variables.

How to Use docker-compose

I have not found a way.

Here are some replacements of docker-compose:

  • podman-compose
  • Linux bash

Toolbox? – I can’t run docker inside a toolbox.

SELinux

Temporarily disable:

1
sudo setenforce 0

Permanently disable:

1
sudo rpm-ostree kargs --append enforcing=0

or

1
sudo rpm-ostree kargs --edit

and append enforcing=0.

Firefox

Silverblue comes with Firefox preinstalled, but it recommends region-specific websites in the search bar based on the initial IP address and they cannot be removed. It is outrageous that a browser bundled with a free and open OS would pull something like this! So I removed Firefox.

1
sudo rpm-ostree override remove firefox

Then you will see something like this:

1
2
3
error: Could not depsolve transaction; 1 problem detected:
 Problem: package firefox-langpacks-139.0.4-1.fc42.x86_64 from @System requires firefox = 139.0.4-1.fc42, but none of the providers can be installed
  - conflicting requests

According to the response, add another package to remove. Run:

1
sudo rpm-ostree override remove firefox firefox-langpacks-139.0.4-1.fc42.x86_64

Needless to say, reboot:

1
systemctl reboot

At last, you can install another browser, for instance, LibreWolf.

Licensed under CC BY-NC-SA 4.0
"Decouple with me!" -- said Java.