如何在 RedHat 8 上将 RPM 升级到 4.16?

如何在 RedHat 8 上将 RPM 升级到 4.16?

我想在 RedHat 8 上将 RPM 升级到版本 4.16。我目前安装的是 4.14.3。

当我尝试升级时,我得到“无事可做”:

$ sudo yum -y 升级 rpm
更新订阅管理存储库。
上次元数据过期检查:2022 年 10 月 12 日星期三上午 08:51:51 PDT 0:07:41 前。
依赖关系已解决。
没事做。
完全的!

我想也许我可以指定一个 RPM 的 URL,但是根据这个答案、RHEL RPM 存储库不公开。

如何在 RedHat 8 上升级到 RPM 4.16?

答案1

像 RHEL 这样​​的稳定​​发行版通常不提供最新版本的软件,仅向后移植错误修复和安全问题修复。如果 RPM 4.14 是 RHEL 8 存储库中可用的最新版本(它是 CentOS 8 Stream 存储库中可用的版本,因此它很可能也是可用于 RHEL 8 的最新版本),这就是您所坚持使用的 RPM 版本。

4.16 可在 RHEL 9 上使用(同样基于 CentOS 9 Stream),因此如果您出于某种原因需要 4.16,我建议升级到 RHEL 9。

(您可以尝试从源代码手动安装较新版本的 RPM,但我不推荐这样做,手动升级低级系统工具和库很容易破坏您的系统。)

答案2

它是不是关于 RHEL。

这是关于的交易最多Linux 发行版。它们并不是一些松散的组件拼凑在一起的集合。

它们实际上是一组非常严格的软件包,具有复杂的依赖关系,因此对于发行版 A 版本 N,您只能拥有 XY 和 Z 版本的组件,否则您的系统将停止运行,因为依赖关系将被破坏。

微软很早以前就通过 Windows Vista 解决了这个问题WinSxS,不幸的是它不适用于 Linux,原因如下:

  • 维护起来非常昂贵
  • 您需要注意构建时的依赖关系,而 Linux 发行版只有一个/usr/include目录
  • Microsoft 在 API/ABI 核心组件(例如 ntoskrnl 和 user32)方面具有 100% 的稳定性,而 Linux 则不然。 Glibc 几乎每个版本都会添加新的 API,这使得协调所有库几乎成为不可能的任务。

RPM 是这样一个核心组件,您不能随意替换/更新它。您仍然可以从源代码编译新版本并将其安装到例如/usr/local或,/opt/rpm但将其与现有 RPM 数据库一起使用可能会导致您的 RPM 数据库对于现有 RPM 包管理器来说被破坏。

相关内容