如何在 rpmbuild 规范文件中检查操作系统版本

问题描述 投票:0回答:5

我正在构建一个 rpm,我需要在其中检查操作系统版本。如果是 rhel5 或 rhel6,那么它会工作,否则它会停止。 请建议我怎样才能做到。

谢谢和问候。

linux rpm
5个回答
1
投票

有 %{rhel} 您可以检查

$ rpmbuild --eval %{rhel}
7

0
投票

您可以使用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。


0
投票

另一个替代方法用于使用

uname
命令并解析信息

执行以下操作可节省时间:

uname -r | cut -d '.' -f6

这在 RHEL 6 和 7 中有效。


0
投票

基于@YangXiao的回答:

%if 0%{rhel} >= 7
  do something
%endif

如果 %{rhel} 为空,则需要 0,因为宏将无法评估为无效语法。


-1
投票

您可以运行

cat /etc/issue
并根据需要进行解析

© www.soinside.com 2019 - 2024. All rights reserved.