尝试为 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