我正在构建一个 rpm,我需要在其中检查操作系统版本。如果是 rhel5 或 rhel6,那么它会工作,否则它会停止。 请建议我怎样才能做到。
谢谢和问候。
有 %{rhel} 您可以检查
$ rpmbuild --eval %{rhel}
7
您可以使用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 中有效。
基于@YangXiao的回答:
%if 0%{rhel} >= 7
do something
%endif
如果 %{rhel} 为空,则需要 0,因为宏将无法评估为无效语法。
您可以运行
cat /etc/issue
并根据需要进行解析