如何防止在RedHat系统上安装SUSE RPM

时间:2011-10-01 00:36:37

标签: linux rpm rpmbuild

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

3 个答案:

答案 0 :(得分:1)

由于您只是想要检测RedHat,因此请查找名为/etc/redhat-release的文件。如果它在那里,你正在安装某些版本的RedHat。

答案 1 :(得分:0)

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

您也可以为支持的操作系统进行%pre check / etc / redhat-release(或lsb-release等)。

在%pre中进行任何预安装检查,而不是%post,因为否则它们将在安装软件包后发生(%post不能真正失败)

答案 2 :(得分:0)

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