CentOS 6.5 上的 rpm 宏

CentOS 6.5 上的 rpm 宏

尝试为 CentOS 6.5 系统创建规范文件。 rpm 应该检查版本以添加特定的 Requires: 基于操作系统版本的行....并且它根本不起作用:

规格文件片段:

%if 0%{?rhel} == 6
Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

/etc/rpm/macros.dist:

# dist macros.

%rhel 6
%centos 6
%centos_ver 6
%dist .el6
%el6 1

根据我访问过的许多网页,代码应该可以工作,但我从未收到安装 rpm 时需要 packageName 的消息。我在这里缺少什么?

更新...

重新安装了我的系统,现在一切正常了..一定有什么东西弄乱了我的测试系统上的环境...我的原始代码现在可以工作了

答案1

%{?rhel}将扩展到6.因此0%{?rhel}将扩展到06并且它不应该匹配6

你可能想要:

%if 0%{?rhel}
   Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

0如果%{rhel}未定义,它将扩展为;06如果已定义,它将扩展为。在spec-file-land中,0是假值,06是真值。

或者,如果您只想匹配 RHEL/CENTOS 6.X(而不是所有 RHEL/CENTOS),请使用此选项,遵循与上面相同的逻辑:

%if 0%{?el6}
   Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

相关内容