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