Fedora Silverblue 35 使用体验

2022/01/07

有关 Fedora Silverblue

Fedora Silverblue 是 Fedora 的一个版本。在一定程度上有点像 NixOS,不可变系统,系统目录只读,执行原子更新,用 ostree 进行包管理,但也可以使用 rpm-ostree 层叠安装普通的 rpm 包。

虽然平时我们都说用某某操作系统,但本质上,用的是操作系统上的软件。在 Fedora Silverblue 上,安装软件有三种主要的方式:一种是上面提到的 rpm-ostree;另外两种,CLI 选 toolbx,GUI 选 flatpak

现阶段,Fedora Silverblue 已经能够较好地满足桌面用户日常使用的需求,当然,也有进一步完善的空间。

个人认为,Fedora Silverblue 不仅在一定程度上代表着 Fedora 的未来,也很可能是 Linux 桌面未来的发展方向。

Fedora Silverblue 支持双系统吗

实测,支持。在已经存在 Windows 10 的 NUC11 上进行安装,与 Fedora Workstation 版本的安装体验几乎一致。如果硬件不同,或许会出现其他问题。

如果安装程序的自动分区方案无效,可以进行手动分区,参考方案如下:

分区 挂载点 格式 大小
efi /boot/efi efi 512M
boot /boot ext4 1G
root / btrfs 256G
home /var/home ext4 剩余空间

这里,/boot/efi 要挂载到 Windows 系统自动生成的 EFI 分区,不能格式化,否则会导致无法引导进入 Windows 系统。家目录也可以不单独分区。

安装完成后

第一次系统更新

在你首次进入系统并连接网络后,Gnome Software 就已经开始在后台进行系统更新了。如果此时通过命令行进行系统更新,一般会报错。所以建议这时候打开 Gnome Software,然后去做些其他的事情,静静等进度条走到终点。

系统更新根据网络环境的不同,耗时也会不同,时长在二三十分钟到一两个小时不等。另外,建议从一开始就借助代理进行更新,以加快系统更新速度,尽量避免极有可能发生的某些网络原因导致的更新失败。

重启

因为系统是只读的,所以要使刚才的更新生效,你需要重启操作系统

也正因为这个特性,在安装软件的时候,为了避免每次安装都要重启系统,尽量选择 toolbxflatpak 的方式。

启用 RPM Fusion

执行:

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

随后重启以使生效。

其实跟 Fedora Workstation 版本相比,如若仅仅从使用的角度看,区别大概就是将 dnf 换成了 rpm-ostree,以及多了一次重启的步骤。

安装软件

先说结论,如果 Fedora Workstation 能满足你使用软件的需求,那么一般来说,Fedora Sileverblue 也能满足你的需求。讲的绝对点就是,Fedora Workstation 能装的,Fedora Sileverblue 都能装。

rpm-ostree

众所周知,Fedora Workstation 的包管理器是 dnf,Arch Linux 的包管理器是 pacman。而 Fedora Silverblue 的包管理器就是 rpm-ostree。它的先进之处在于,以类似 git 的版本管理的方式管理你的操作系统,出现问题,可以随时回滚。只读系统的特性,也在一定程度上提高了操作系统的稳定性。

具体的使用方法,建议执行 rpm-ostree --help 详阅。

仅仅说安装软件的话,把 rpm-ostree 当成 dnf 来用也无妨,可以执行 sudo rpm-ostree install 某某软件 或者 sudo rpm-ostree install xxx.rpm 安装来自软件源的或者本地的 rpm 包。与 Fedora Workstation 相比,主观感受上的区别就是是否需要重启以使安装或者更新生效。

以安装解码器为例,执行 sudo rpm-ostree install ffmpeg-libs 即可。

Toolbx

安装命令行工具的首选方式是通过 Toolbx 进行。Toolbx 基于容器化技术,可以提供一个类似 Fedora Workstation 的环境方便地安装如 yt-dlphugo 之类的 CLI 软件。

可以执行 toolbox create 创建一个容器,随后执行 toolbox enter 进入刚才创建好的容器。

在容器内,使用 dnf 作为包管理工具,体验与 Fedora Workstation 基本一致。

需要说明的是,在容器内的操作可以影响家目录,但是无法影响系统目录。 比如说,在容器内,执行 sudo dnf install example,那么会在容器内安装 example 这个包,你的主系统中不会出现这个包,如果要使用它,需要先进入容器。

同样的,如果在容器内执行 sudo touch /etc/example.txt,那么容器内的 /etc 目录下面会出现 example.txt 这个文件,但是主系统不会。但如果你在容器内执行 touch ~/example.txt,那么你的主系统家目录会出现 example.txt 这个文件,因为容器拥有对家目录的读写权限,这个特性使得在容器内安装软件变得更有实用价值。

有关 Toolbx 的详细介绍,可以在它的 官网 找到。

另外比较有趣的一点是,Toolbx 原名 Toolbox,因为名字太烂大街,改成了 Toolbx,但是目前版本仍需执行 toolbox 而不是 toolbx 使用该工具。

flatpak

flatpak 是 Fedora Silverblue 下安装图形化软件的首选方式。同时支持全系统安装以及只给当前用户安装。个人喜欢每条命令都加上 --user 参数只给当前用户安装配置,以避免使用 root 权限。

执行:

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

以添加 falthub 仓库。随后执行 flatpak --user install flathub xxx 即可安装所需软件。

有关软件安装的总结

基本上,Toolbxflatpak 能满足绝大部分软件安装的需求。如果都不行,尤其是图形化软件没上架 falthub 的情况,也可以采用 rpm-ostree 层叠安装的方式作为保底方案。

写在最后

虽然自己是非计算机科学相关人士,但是新事物,尤其是新技术,总能引人好奇,令人激动。Fedora Silverblue 作为探索 Linux 桌面更为现代化的未来的一次有益尝试,已经能够提供较为完整、稳定的 Linux 桌面体验了

我想,值得一试。