将为较低操作系统版本构建的 RPM 安装到较高操作系统版本上可以吗?

将为较低操作系统版本构建的 RPM 安装到较高操作系统版本上可以吗?

我们的生产服务器正在运行sqlite-3.3.6-2在 CentOS 版本 5.2 (最终版) 上。

我们计划将 SQLite 升级到最新的 v3.7.3(至少是 v3.5+)。但是没有可用的 RPMSQLite网站,并且无法通过谷歌搜索找到。

但我找到了适用于 RHEL3 的 v3.5+ RPM这里。由于我们运行的是 CentOS5 64 位,

  1. 在CentOS5 64位服务器上安装RHEL3 64位的RPM包可以吗?
  2. 如果可以安装的话,会有什么影响/副作用吗?

一般来说,我们可以在较高版本的操作系统(例如:RHEL5)上安装为较低版本的操作系统(例如:RHEL3)构建的 RPM 吗?

答案1

根据我的一般经验,答案是“如果它有效”。RPM 内置了依赖性检查;它们知道是否需要特定版本的 glibc、php、mysql、foo、bar 或 baz。如果你做了

rpm -ivh fribble-4.5.6-el3.i386.rpm

并且它运行完成,那么你可能没问题(尽管要测试一下)。如果它显示

error: Failed dependencies:
    libgwenhywfar.so.38 is needed by fribble-4.5.6-el3.i386.rpm
    libofx.so.3 is needed by fribble-4.5.6-el3.i386.rpm
    python(abi) = 2.4 is needed by fribble-4.5.6-el3.i386.rpm

这是 RH 告诉您“不行,它行不通”的方式。当然,您可以使用 覆盖该选项--nodeps,但这样做会让您非常痛苦,所以不要这样做;请改为查找最新的 RPM。

答案2

在这种情况下,跳跃太大,并且 sqlite 存在于基础存储库中。请改为从 SRPM 重建。请注意,如果您决定这样做,您将负责自己处理更新。

相关内容