【问题标题】:How to prevent a SUSE RPM from installing on a RedHat system如何防止 SUSE RPM 安装在 RedHat 系统上
【发布时间】:2011-11-28 20:42:09
【问题描述】:

我们有一个通过 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”,但我真的希望有比这更好的选择。

【问题讨论】:

标签: linux rpm rpmbuild


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 2016-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-30
        • 1970-01-01
        相关资源
        最近更新 更多