如何在 rpmbuild 规范文件中检查操作系统版本
Posted
技术标签:
【中文标题】如何在 rpmbuild 规范文件中检查操作系统版本【英文标题】:How to check os version in rpmbuild spec file 【发布时间】:2016-01-21 18:19:20 【问题描述】:我正在构建一个需要检查操作系统版本的 rpm。如果是 rhel5 或 rhel6,那么它会工作,否则它将停止。 请指教我该怎么做。
感谢和问候。
【问题讨论】:
fedoraproject.org/wiki/Packaging:DistTag 有用吗? 可能是这样的:unix.stackexchange.com/questions/9296/… 我正在 Centos 5 上构建 rpm,但以下内容不起作用:%if 0%?rhel == 5 请有任何想法。 【参考方案1】:您可以使用https://unix.stackexchange.com/questions/9296/how-can-i-specify-os-conditional-build-requirements-in-an-rpm-spec-file 然而,这只决定了构建时包内部的内容。而且你仍然可以在 el5 上安装 el6 包,反之亦然。
所以如果你想在实际安装过程中决定,你需要解析 /etc/os-release(IIRC 只存在于 el7+)或 /etc/redhat-release。
【讨论】:
【参考方案2】:使用uname
命令和解析信息的另一种替代用法
节省时间执行以下操作:
uname -r | cut -d '.' -f6
这在 RHEL 6 和 7 中有效。
【讨论】:
你的答案应该改写。这不是很清楚。请在发布前阅读 SO 指南。【参考方案3】:您可以运行cat /etc/issue
并根据需要进行解析
【讨论】:
/etc/issue(至少在我的系统上)具有可替换的参数。我认为您不能使用此文件可靠地确定操作系统版本以上是关于如何在 rpmbuild 规范文件中检查操作系统版本的主要内容,如果未能解决你的问题,请参考以下文章