Rawhide 是 Fedora 开发版本的代号。这个版本包含了一个叫做 "rawhide" 的 软件源 并且包含所有每天最新构建的 Fedora 软件包。每一天它都会尝试构建一整套的套件(包括安装镜像等等),若构建成功就会被包含在 Rawhide 目录树中。
Rawhide 有时已被称之为 "development" 或者是 "main"(Rawhide 就是基于软件包 Git 储存库的 "main" 分支构建的)。
目标
- 允许软件包维护者整合最新的可用版本进入 Fedora。
- 允许高级用户用滚动更新的方式体验到最新的可用软件包。
- 允许软件包进行一些对于 Fedora 稳定版本来说太小或太大的改变。
- 在软件包进入 Fedora 稳定版本前发现并修复错误。
- 提供一个地方来验证(由 FESCo 许可的)底层软件包,使包括但不限于 glibc 和 gcc 软件的预发布版本能在真实环境下进行测试。
Rawhide 适用人群
Rawhide 主要面向高级用户,测试者和软件包维护者。
我们希望您:
- 愿意每日更新。Rawhide 每天都有上百更新,经常更新会更容易解决问题。
- 愿意动手解决问题。Rawhide 的内容不少都存在问题,您需要有良好的解决问题素质和娴熟的报告问题能力,如用 DNF 来降级软件包和解决启动失败。
- 有时间和需求来学习新的功能和变化。因为 Rawhide 的软件包与上游联系密切,菜单、命令及选项都可能随时变化。
- 经常重启来测试新的内核并确认启动功能是否正常。如果您不能做到,请换用其它更稳定的发行版。
- 愿意而且可以在发现 bugs 时及时报告至 bugzilla 并帮助维护者修复它们。
如果你无法做到上面这几点,你可能希望尝试 Branched 版本或常规的稳定版本。
使用 Rawhide
本节讲述如何使用 Rawhide。
作为测试系统使用
如果你不希望 Rawhide 影响到你的日常使用体验,你可以:
- 在 Live 环境下使用 Rawhide。
- 在虚拟机安装 Rawhide。
- 作为备用的操作系统,与其它操作系统共存。
安装每日构建版本
Rawhide 每天自动从最新的软件包中生成,生成的目录树包含 Live 安装介质、安装程序树等等。每一个构建都会经过 openQA 的自动化测试,测试结果会发送至 devel 和 test 邮件列表。成功的构建将会被同步到 /fedora/linux/development/
目录。
要特别注意的是,尽管每个构建都会经过 openQA 的测试,在 Fedora 23 以来 Rawhide 的构建质量有了飞跃性的提高,这并不意味着这些构建真的百分百稳定可用。
接下来,你可以按照 常规安装指南 完成 Rawhide 的安装。
对于 PXE 安装,相关文件可以在 pub/fedora/linux/development/42/Everything/(arch)/os/images/pxeboot
找到。
将安装程序指向 Rawhide
你可以使用稳定版的安装介质并将其指向 Rawhide 来安装 Fedora Rawhide。随着 Rawhide 构建质量的提升,这已经不再是我们推荐的做法了。
当然如果你依然希望尝试:
- 下载最新的稳定版或 Branched 版安装介质(网络安装介质或离线 DVD 介质)。
- 创建 USB 启动盘 或者 烧录到 DVD 和 CD。
- 引导安装介质,前往 'Installation Source' 一屏并设置
https://download.fedoraproject.org/pub/fedora/linux/development/42/Everything/x86_64/os/
(将 x86_64 替换为合适的架构)。 - 完成剩余的安装。
请注意如果 Rawhide 包含当前安装程序不支持的改动,有一定概率会导致安装失败。
从稳定版本升级
大多数情况下,你可以通过 DNF 系统升级插件 完成升级。在升级前你需要确认你已经应用了所以可以应用的更新。
对于使用 rpm-ostree 而不是 DNF 管理软件包的衍生版如 Silverblue,只需变基到 Rawhide 的分支即可,例如 fedora:fedora/rawhide/x86_64/silverblue
。
请注意 Rawhide 软件包依赖破坏等问题可能会导致升级无法完成。
根据发版节奏,你的系统不一定有 Rawhide 所需的 GPG 公钥。这时升级过程可能无法完成,如果你遇到了这种情况,尝试在 updates-testing 搜索更新:
sudo dnf update fedora-release\* fedora-repos\* fedora-gpg-keys --enablerepo=updates-testing
如果还是不行的话,还可以尝试使用 --releasever=NN
参数而不是 --releasever=rawhide
(将 NN
替换为当前 Rawhide 指向的 Fedora 版本号)。作为最后的方法,你可以使用 --nogpgcheck
禁用 GPP 检查,当然这可能为你的系统带来不可预估的风险。
讨论 Rawhide
你可以通过下面的方式与其他 Rawhide 用户和 Fedora 开发者交流:
IRC
你可以加入 #fedora-devel[?] 和 #fedora-qa[?] 频道。
邮件列表
Bugzilla
Rawhide 相关的漏洞应该作为 Fedora 产品,rawhide 版本被报告。报告问题时应该遵守 最佳实践,IRC 和邮件列表都可以帮助你判断某个行为是否是漏洞以及如何报告,但是它们本身并不是报告漏洞的场所。所有漏洞报告都应该提交到 Bugzilla。
请注意,如果你遇到被破坏的依赖关系,你应该考虑报告给软件包的维护者,在通常情况下无需在 Bugzilla 报告漏洞,除非问题持续无法得到解决。
构建 Rawhide
如果你是开发者或打包者,请阅读英文版 Rawhide 页面以获取准确的信息。
问与答
Rawhide 会吃掉我的宝宝 / 杀死我的宠物 / 烧掉我的房子 / 炸掉我的电脑吗?
- 不会,这问题就离谱,也请不要再向别人传播这种神奇的思想了。
所以 Rawhide 非常稳定咯?
- 当然不是,所以我们也在上文提到了 Rawhide 适合什么人使用。一般的用户只建议使用稳定版本。
我在使用稳定版,我想使用 Rawhide 的某个软件包,我能直接 dnf install
它吗?
- 不要试图混合多个版本的软件包。作为替代,你可以:
- * 如果政策允许,联系软件包的维护者请求其为稳定版提供更新。
- * 如果政策不允许,COPR 可能提供了新的软件包,可前往了解。
- * 取得新版软件包的 src.rpm 并尝试自行构建它。
我在使用稳定版,我想使用 Rawhide 的内核,可以吗?
- 有时可以,你可以尝试使用 DNF 下载安装内核,一旦新的内核出现问题,你可以在引导选单选择旧的内核。注意 Rawhide 的内核通常启用了调试选项,所以它的性能通常比不上稳定版提供的内核。
Rawhide 是滚动更新版本吗?
- 见仁见智吧,不过 Rawhide 确实是滚动发行版。
Rawhide 到底是每一天的啥时候构建的?
新的 Branched 版本分离是否会影响我的 Rawhide 安装?
- 是不会有影响的,你会继续待在 Rawhide 上。
我想从 Rawhide 版本返回到 Branched 版本或稳定版,该怎么做?
- 降级将会导致不可预知的问题,最好的做法是备份个人数据后重装系统,如果你使用 Btrfs 文件系统最少也要建立一个快照。
- 一个比较好的降级时机是 Branched 版本刚刚被分离出来的时候,如果你能非常及时地切换过去,这个时候 Branched 和 Rawhide 的差别会是非常小的。如果没有把握住时机,或者是打算直接降级到目前的稳定版本或更旧的版本,风险则会成倍增加。
- 你可以尝试使用 DNF 系统升级插件来执行降级。由于 Rawhide 使用的软件源跟其它版本使用的软件源不一样,你可能需要在下载阶段禁用 Rawhide 的软件源并重新启用适用于普通版本的软件源。所以降级使用的命令大概会是这样子的(将
NN
替换为目标版本号):
sudo dnf system-upgrade download --releasever=NN --disablerepo='rawhide,rawhide-modular' --enablerepo='fedora,fedora-modular,updates,updates-modular'
- 我们只会检查升级过程中是否会出现依赖问题,但我们不会对降级进行检查,因此你很有可能遇到破坏的依赖关系。在这种情况下,你可以尝试跳过损坏的包或删除有问题的包。如果这样子也解决不了你的问题,你可能也只能自认倒霉了。
Rawhide 的软件包有签名吗?
- 有的。
提示
- 当你遇到了问题,别忘了妥善利用包管理器的各项功能以帮助你诊断问题,例如:
dnf downgrade
dnf history
dnf update --skip-broken
koji download-build
- 如果你在使用 Silverblue 或 Kinoite,别忘了妥善利用 OSTree 的各项功能,例如:
rpm-ostree rollback
ostree admin config-diff
ostree admin pin 0
- 你应该经常更新你的系统,最好是每天一次,这样子有利于更快速地定位问题。
- 你应该经常重启系统,最好一有内核更新就重启。这样子才可以对启动流程进行全面的测试,并使用新版的内核。我们还建议你对 Dracut 排错流程有所了解。
- Rawhide 的内核通常在构建时启用不同的调试选项,这将导致性能下降和资源使用增加。请参阅 这篇文章 以了解具体启用的选项有哪些。你可以在
/etc/default/grub
添加 "slub_debug=-" 参数以禁用 SLUB 调试(别忘了重新生成 GRUB 配置)。要想使用关闭调试的内核,可以使用 Rawhide Kernel Nodebug 仓库里的内核。
- 如果你使用图形桌面环境,尽可能安装多个。当其中一个桌面环境无法工作,你仍然可以使用别的并进行故障排除。
- 准备好稳定版本的 Live 安装介质以防不备之需。
历史
Red Hat Linux "Raw Hide" 发布公告: LWN
Rawhide 这一名字来自 同名歌曲,歌词开头就是 "Rolling, rolling, rolling, ..."。
随着 无冻结政策 的生效和 Branched 的诞生,Rawhide 始终不会冻结。