软件包叠加¶
使用 rpm-ostree¶
Attention
不负责任地叠加软件包可能具有破坏性,并可能阻止更新,或造成其它问题,直到移除叠加的软件包为止。
可以使用 rpm-ostree 终端命令,在现有 Bazzite 镜像之上安装 Fedora Linux 软件包。它适用于无法通过 Homebrew 安装、也无法在容器中运行的软件包。由于叠加软件包必须随镜像其余部分一起更新,一旦出现依赖问题,系统升级可能会被阻断,直到移除这些软件包为止。它也会让升级过程耗时更久。
关键注意事项¶
- 叠加软件包在完成创建新部署、并把软件包加入镜像后,需要重启系统。
- 请仅把这种方式作为最后手段,并只用于“系统层级”的内容。因为如果该软件包在未来升级中出现依赖问题,系统更新可能会暂停,直到卸载该软件包。
与软件包叠加相关的终端命令¶
使用这些命令需要自行承担风险。
叠加软件包¶
将 Fedora 软件包安装到系统中,并在更新之间保留。重启后安装才会生效。
卸载叠加软件包¶
卸载已添加到系统中的叠加软件包。重启后卸载才会生效。
搜索软件包¶
搜索可安装的 Fedora 软件包。
查看当前叠加的软件包¶
这会输出你的 Bazzite 安装中已叠加的软件包。
安装 RPM 文件¶
大多数 .rpm 文件应通过 Fedora Distrobox 容器使用,但如果它在容器中运行效果不好,有时也需要安装到主机上。
你可以通过输入以下命令,用 rpm-ostree 将 RPM 二进制包安装到主机:
你可能需要复制完整路径(/path/to/rpmfile.rpm)才能正常安装。
Important
安装 Fedora 仓库之外的本地 RPM 文件的缺点是,该 RPM 软件包不会自动应用更新。
如何添加/移除 COPR 仓库?¶
Warning
强烈建议尽可能不要使用第三方 COPR 仓库。请注意,这会带来风险,包括在移除之前破坏更新。
此方法适用于 Fedora 以外的 COPR(例如:Docker)
-
下载
.repo文件并保存到/etc/yum.repos.d/ -
然后使用
rpm-ostree安装软件包 -
重启
如果你因为 GPG 签名问题而无法更新系统,可以通过移除 COPR 仓库解决;也可以编辑该文件,将 gpgcheck=1 改为 gpgcheck=0(或类似设置)并保存,但这需要自行承担风险。
如何恢复默认 COPR¶
# 移除当前所有仓库
sudo rm /etc/yum.repos.d/*
# 将默认仓库文件从 /usr/etc 复制到 /etc
sudo cp /usr/etc/yum.repos.d/* /etc/yum.repos.d/
使用 rpm-ostree 的重大注意事项¶
叠加软件包可能造成严重后果,包括:
- 暂停系统更新,直到卸载相关软件包。
- 阻止 rebase 到其它镜像,直到卸载相关软件包。
- 与镜像中已有软件包冲突,导致依赖问题。
- 随着叠加到系统中的软件包变多,更新下载耗时更久。
软件包叠加主要面向系统层级应用、库和其它依赖。在使用 rpm-ostree 安装软件之前,建议优先考虑 Flatpak、Homebrew、容器、AppImage、Waydroid,或通过兼容层运行 Windows 版本。临时叠加软件包,比无限期保留叠加包更合适。
如何移除所有叠加软件包¶
如果你因为叠加软件包冲突而遇到升级问题,可以选择卸载冲突的软件包,或使用这个命令移除所有叠加软件包:
项目网站¶
https://coreos.github.io/rpm-ostree/