惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
H
Help Net Security
Last Week in AI
Last Week in AI
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
B
Blog
C
Check Point Blog
T
Tailwind CSS Blog
云风的 BLOG
云风的 BLOG
D
Docker
Recent Announcements
Recent Announcements
Vercel News
Vercel News
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
月光博客
月光博客
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
B
Blog RSS Feed
The Register - Security
The Register - Security
V
Visual Studio Blog
F
Full Disclosure
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
PCI Perspectives
PCI Perspectives
Cisco Talos Blog
Cisco Talos Blog
博客园 - Franky
D
DataBreaches.Net
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
P
Palo Alto Networks Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
T
Tenable Blog
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy

陈陈菌博客

如何在 podman 容器内使用 systemd 在 podman 运行 GUI 应用的经验总结 管理 podman 容器与镜像的导入或导出 用 xdg-dbus-proxy 解决容器的文件选择器的问题 解决 VSCodium 或 Code-Server 无法安装 GitHub Copilot 问题 解决 apt 或 dnf 无法 tab 补全的问题 对 (MPA) 多页面切换实现丝滑动画的探索 让服务在非 Root 权限下使用 80 或 443 端口 AppImage 应用打包快速上手 Flatpak 使用和应用打包快速上手 如何用 webSocket 实现一个实时聊天应用 Linux 内核编译 | 快速上手 | deb 使用 debootstrap 构建 Debian 系根文件系统 高度可定制的 KDE 窗口装饰器 klassy 有关 docker、podman、nspawn、bwrap 的 Linux 容器图形性能测试 创建任意 Linux 容器并支持 GUI 程序 (Docker) 创建任意 Linux 容器并支持 GUI 程序 (nspawn) 文件同步工具 rsync 的使用 玲珑 (Linyaps) 应用打包 RPM 打包指南 | 精简版 PBR 材质的各种贴图类型入门 APU | Stable-Diffusion 使用记录 如何在 Electron 上启用 WebGPU Grub 主题安装与配置 Fcitx5 主题安装与自定义 不使用 Nginx 的网站开发指南 如何自制一个简易的资源监控程序 SQL 常用 CRUD 语法记录 Debian 打包入门,与需要注意的问题 在 fedora 建立一个 Arch 容器 (bwrap) 在 fedora 上建立一个 debian 容器 (bwrap) i3wm | 自制一个极简的屏幕亮度调节器 在 Linux 下启用内存压缩技术 zram 搭建一个本地轻量级聊天 Ai 我又又又重新上线了博客 如何通过命令行管理 wine 容器 (包括 proton) Btrfs 文件系统创建 swap 文件的方法 如何创建适用于 Linux 桌面的程序启动文件 在 Linux 控制 intel CPU 调度的方法 Arch Linux 的基本安装
不可变发行版 Fedora Silverblue 的体验记录
GlumiStudio@ · 2026-02-21 · via 陈陈菌博客

也许是一个非常稳定的发行版

2026-02-21 21:53:47

分类: Linux


在尝试了很多 Linux 发行版,发现都有一个问题就是会随着时间变化导致系统越来越难以管理,装的包越来越多,依赖越来越复杂。会影响系统稳定性(像什么桌面错误和崩溃、软件包依赖冲突、各种奇奇怪怪的小问题等)偶尔需要大动干戈去修复,总结就是越用越乱。

我听说了一些不可变只读系统,像 NixOS ,能通过写 nix 配置的形式去管理系统。但不是很习惯那种用法。而且系统目录不是我熟悉的 FHS(类 Unix 系统中目录和文件的组织结构).

这时我把目光转向了一个 Fedora 的不可变分支 Silverblue。

这是我熟悉的红帽系发行版,虽然 FHS 也有一些改动,但不会有像 NixOS 那样的巨大改变。同时我还能使用熟悉的 rpm 包。不过,这个发行版依然有许多我比较陌生的地方。

关于根目录的改变


Fedora Silverblue 的 / 大部分重要目录默认只读,基本只有 /etc//var/ 以及 /tmp/ /run/ /mnt/ 是可读写的。home 目录被移到 /var/home/ 下面,/home/ 将被软链接到那里。

而 /etc/ 和 /var/ 这两目录主要是:系统配置(存放主机级配置文件如 fstab、sshd_config、hosts),和可变数据(日志、缓存、容器数据、用户数据、运行时状态)

/tmp/ :临时文件存放,/run/:进程运行数据,/mnt/:挂载设备的地方

虽然系统是不可变,但依然可以通过一个 rpm-ostree 命令来管理包,就是每次变更需重启生效。安装上的包都会在原有系统上「叠一个层」,叠层会打破系统的不可变性,也就是说长期用仍可能导致依赖问题。

不过它有一个特点就是可回退到某一覆盖层的系统状态,也就是:回滚。

关于 ostree,这种有点类似 "Git 管理" ?可以 pull commit checkout 等。rpm-ostree 在每次安装包都会进行一次提交部署,将系统做成一个可引导镜像,使用 rpm-ostree status 可以查看一些信息(每个部署镜像所叠层的包、还有提交信息)。

使用原则


那么既然限制那么多,如果装软件岂不是很麻烦,还得重启一遍?此时就需要用到 Flatpak、Podman、Docker 这些家伙了。

我用的方案是 Distrobox + Flatpak + Toolbox (目前已转向 systemd-nspawn 和 podman)

所有 GUi 程序尽可能使用 Flatpak(如果没有就 Distrobox),命令行程序就跑 Podman / Docker,而 Distrobox 和 Toolbox 默认是调用 podman,并且会更好上手,一般我是交替使用。比如 Distrobox 安装 GUI 程序的话支持生成 .desktop 文件,并且配置好了 GPU 加速(性能损耗几乎没有),且可以轻松设置权限,可以给容器指定单独的 home 目录避免污染宿主的 home (虽然能指定单独的 home 但文件是没有隔离的)。

而 Toolbox 我很少使用,因为它不仅不支持给容器单独设置 home 目录,同时也是默认挂载宿主文件,可能会污染宿主环境。

用容器跑各种发行版的容器,也可以满足生态需求。就是经常需要配置一些环境变量,或者端口转发(如果要跑服务的话)。

Flatpak 的权限管理


Flatpak 的容器推荐使用 Flatseal 这个软件去管理权限,GUI 会比较方便点。

关于代理软件


我使用的 v2raya 似乎支持容器部署,而且提供红帽系安装方式,我很快的解决了这个问题。参见:链接 目前我已经改用 daed

Flatpak Linux QQ 剪贴板和宿主不同步问题


由于默认使用 wayland 启动,因为兼容性差导致了一些问题,可以修改为 x11 启动,像 flatpak 版本可修改它的权限,关闭 : --socket=wayland 权限

并加入环境变量:

XDG_SESSION_TYPE=x11  com.qq.QQ

中文输入法


Gnome 桌面默认的输入法太难用?rpm-ostree search fcitx 去找找包吧,然后使用 rpm-ostree install 包 由于是重要的组件,该叠层就叠。

后续使用问题将持续记录....

目前对 Fedora Silverblue 的感受总结:尽量不叠层、容器隔离、权限按需开,那么这将是一个非常稳定、安全的发行版。

关于容器相关比较有用的帖子:


《在 podman 运行 GUI 应用的经验总结》:https://blog.glumi.cn/article/podman-run-gui-apps.html
《管理 podman 容器与镜像的导入或导出》:https://blog.glumi.cn/article/podman-Management.html
《如何在 podman 容器内使用 systemd》:https://blog.glumi.cn/article/podman-use-systemd.html