为什么有些 RPM 是“不可重定位的”?

Mat*_*sen 4 redhat rpm

如果您可以像这样安装 RPM,则它是可重定位的:

rpm -ivh --prefix=/path/to/non/default/dir package-name.rpm
Run Code Online (Sandbox Code Playgroud)

没有收到以下错误消息:

error: package package-name is not relocatable
Run Code Online (Sandbox Code Playgroud)

链接指出:

RPM 能够让用户在决定将软件包安装在他们系统上的位置时有一定的自由度。然而,包构建者必须首先设计他们的包来给用户这种自由。换句话说,可以安装到不同目录的 RPM 包被称为可重定位的。请注意,并非所有 RPM 软件包都可以安装到另一个目录中。

然而,它并没有解释为什么包构建者不希望允许用户自由决定安装包的位置。

那么,为什么使特定包不可重定位是个好主意?

Mic*_*ton 8

事实上,您会发现大多数 RPM 包都不可重定位

Fedora Packaging Guidelines有这样的说法

强烈建议不要使用 RPM 的工具来生成可重定位的包。很难正常工作,无法从安装程序或 yum 使用,如果遵循其他包装指南,通常也不需要。但是,万一您有充分的理由使包可重定位,则您必须在包审核请求中说明此意图和理由。

这些是 RHEL 的上游包,您不太可能在官方 Fedora、RHEL/CentOS 或 EPEL 分发存储库中找到可重定位的包。

但是,您可能很少会找到可重定位的第三方 RPM。但是一旦安装它们,就没有好的方法来安装或管理它们,因为依赖项管理器无法处理它们,而且无论如何尝试重新定位包都没有意义。

  • 2天?你很幸运! (2认同)