5

我们有一个通过 RPM 分发的产品。我们创建 SUSE SLES10 SP1 RPM 和 RedHat 5.5 RPM。两者之间存在差异,如果您在 RedHat 机器上安装 SUSE RPM,事情将无法正常工作(通常很神秘),反之亦然。

有没有办法阻止 RedHay RPM 安装在 SUSE 系统上,反之亦然?我搜索了一下,发现http://www.rpm.org/max-rpm/ch-rpm-multi.html但是这里的所有限制似乎都是基于命令的输出,uname它没有告诉你是否您正在运行 RedHat 或 Suse。操作系统是Linux,架构是一样的。

我们有想法在安装脚本中添加检查,可以在 /etc/issue 文件中查找“Red Hat”或“SUSE”,但我真的希望有比这更好的选择。

4

3 回答 3

1

由于您只是想检测 RedHat,因此请查找是否存在名为/etc/redhat-release. 如果它在那里,您正在安装在某个版本的 RedHat 上。

于 2011-10-01T00:50:43.477 回答
0

您可以依赖于特定于 redhat 的包(尽管 SuSE 可能会提供一个版本)。

您还可以让您的 %pre 检查 /etc/redhat-release(或 lsb-release 等)以获取受支持的操作系统。

在 %pre 而不是 %post 中进行任何安装前检查,否则它们将在软件包安装后发生(%post 不会真正有用地失败)

于 2011-10-01T07:04:13.883 回答
0

此外,您可以检查是否在规范文件中定义了 %{rhel} 宏。

于 2013-06-25T20:16:53.310 回答