2011-10-01 38 views
4

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

有没有办法阻止RedHay RPM安装在SUSE系统上,反之亦然?我搜索了这个,发现http://www.rpm.org/max-rpm/ch-rpm-multi.html,但这里的所有约束似乎都是基于命令uname的输出,它不会告诉你是否运行RedHat或Suse。 os是Linux,并且架构是相同的。

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

+1

另请参阅从http://stackoverflow.com/questions/13370063/rpm-spec-to-require-specific-rhel-release的解决方案,其中说,你可以依靠例如。 'redhat-release-server'包。 – oliver

回答

1

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

0

你可以放置依赖于特定于redhat的软件包(虽然SuSE可能提供一个版本)。

您也可以为支持的操作系统预先检查/ etc/redhat-release(或lsb-release等)。

做任何预先安装在%前,不能%后检查,因为否则会发生已安装包后(%后真的不能失败用地)

0

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