From Fedora Project Wiki

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 的自动化测试,测试结果会发送至 develtest 邮件列表。成功的构建将会被同步到 /fedora/linux/development/ 目录。

要特别注意的是,尽管每个构建都会经过 openQA 的测试,在 Fedora 23 以来 Rawhide 的构建质量有了飞跃性的提高,这并不意味着这些构建真的百分百稳定可用。

接下来,你可以按照 常规安装指南 完成 Rawhide 的安装。

对于 PXE 安装,相关文件可以在 pub/fedora/linux/development/37/Everything/(arch)/os/images/pxeboot 找到。

将安装程序指向 Rawhide

你可以使用稳定版的安装介质并将其指向 Rawhide 来安装 Fedora Rawhide。随着 Rawhide 构建质量的提升,这已经不再是我们推荐的做法了。

当然如果你依然希望尝试:

  1. 下载最新的稳定版或 Branched 版安装介质(网络安装介质或离线 DVD 介质)。
  2. 创建 USB 启动盘 或者 烧录到 DVD 和 CD
  3. 引导安装介质,前往 'Installation Source' 一屏并设置 https://download.fedoraproject.org/pub/fedora/linux/development/37/Everything/x86_64/os/(将 x86_64 替换为合适的架构)。
  4. 完成剩余的安装。

请注意如果 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[?] 频道。

邮件列表

欢迎你订阅 testdevel 邮件列表并加入讨论。

Bugzilla

Rawhide 相关的漏洞应该作为 Fedora 产品,rawhide 版本被报告。报告问题时应该遵守 最佳实践,IRC 和邮件列表都可以帮助你判断某个行为是否是漏洞以及如何报告,但是它们本身并不是报告漏洞的场所。所有漏洞报告都应该提交到 Bugzilla

请注意,如果你遇到被破坏的依赖关系,你应该考虑报告给软件包的维护者,在通常情况下无需在 Bugzilla 报告漏洞,除非问题持续无法得到解决。

构建 Rawhide

如果你是开发者或打包者,请阅读英文版 Rawhide 页面以获取准确的信息。

问与答

Rawhide 会吃掉我的宝宝 / 杀死我的宠物 / 烧掉我的房子 / 炸掉我的电脑吗?

不会,这问题就离谱,也请不要再向别人传播这种神奇的思想了。

所以 Rawhide 非常稳定咯?

当然不是,所以我们也在上文提到了 Rawhide 适合什么人使用。一般的用户只建议使用稳定版本。

我在使用稳定版,我想使用 Rawhide 的某个软件包,我能直接 dnf install 它吗?

不要试图混合多个版本的软件包。作为替代,你可以:
* 如果政策允许,联系软件包的维护者请求其为稳定版提供更新。
* 如果政策不允许,COPR 可能提供了新的软件包,可前往了解。
* 取得新版软件包的 src.rpm 并尝试自行构建它。

我在使用稳定版,我想使用 Rawhide 的内核,可以吗?

有时可以,你可以尝试使用 DNF 下载安装内核,一旦新的内核出现问题,你可以在引导选单选择旧的内核。注意 Rawhide 的内核通常启用了调试选项,所以它的性能通常比不上稳定版提供的内核。

Rawhide 是滚动更新版本吗?

见仁见智吧,不过 Rawhide 确实是滚动发行版。

Rawhide 到底是每一天的啥时候构建的?

你可以关注 testdevel 邮件列表,里面有每天实时的构建信息。

新的 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 排错流程有所了解。
  • 订阅 testdevel 邮件列表,升级系统前都去看看,特别是和 '[rawhide]' 相关的话题和报告。如果你遇到了什么问题却不知道报告到什么地方,也可在上面发送邮件。
  • Rawhide 的内核通常在构建时启用不同的调试选项,这将导致性能下降和资源使用增加。请参阅 这篇文章 以了解具体启用的选项有哪些。你可以在 /etc/default/grub 添加 "slub_debug=-" 参数以禁用 SLUB 调试(别忘了重新生成 GRUB 配置)。要想使用关闭调试的内核,可以使用 Rawhide Kernel Nodebug 仓库里的内核。
  • 如果你使用图形桌面环境,尽可能安装多个。当其中一个桌面环境无法工作,你仍然可以使用别的并进行故障排除。
  • 准备好稳定版本的 Live 安装介质以防不备之需。

历史

Red Hat Linux "Raw Hide" 发布公告: LWN

Rawhide 这一名字来自 同名歌曲,歌词开头就是 "Rolling, rolling, rolling, ..."。

随着 无冻结政策 的生效和 Branched 的诞生,Rawhide 始终不会冻结。