【发布时间】:2016-01-21 18:19:20
【问题描述】:
我正在构建一个需要检查操作系统版本的 rpm。如果是 rhel5 或 rhel6,那么它会工作,否则它将停止。 请指教我该怎么做。
感谢和问候。
【问题讨论】:
-
我正在 Centos 5 上构建 rpm,但以下内容不起作用:%if 0%{?rhel} == 5 请有任何想法。
我正在构建一个需要检查操作系统版本的 rpm。如果是 rhel5 或 rhel6,那么它会工作,否则它将停止。 请指教我该怎么做。
感谢和问候。
【问题讨论】:
您可以使用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。
【讨论】:
使用uname 命令和解析信息的另一种替代用法
节省时间执行以下操作:
uname -r | cut -d '.' -f6
这在 RHEL 6 和 7 中有效。
【讨论】:
您可以运行cat /etc/issue 并根据需要进行解析
【讨论】: