我正在尝试使用 %{dist}
在我的 RPM 规范文件中添加标签,以提供 Fedora Core(例如 fc12
)、CentOS 5(例如 el5
)和 Amazon 的 Linux AMI 之间特定于发行版的依赖关系:
Release: %_svn_revision%{?dist}
和
# Depencencies
%{?rhel:Requires: ...}
%{?fedora:Requires: ...}
不幸的是,
%{dist}
似乎没有在 CentOS 5.5 中定义,而且我还没有找到与 CentOS 5.5 匹配的特定于发行版的条件(我认为 el5
会匹配,但似乎不匹配)。 This票报失踪%{dist}
2008 年在 CentOS 中,但自 2009 年以来没有更新。我怎样才能得到
%{dist}
在 CentOS 中定义,我应该使用什么条件来匹配 CentOS 5?任何 RPM 专家都可以指出我正确的方向吗?
最佳答案
在 CentOS 5 上没有定义 dist 宏,因为它不在 /etc/rpm/macros.disttag
中。 - 有一个名为 buildsys-macros-rhel
的 RPM提供它,或 buildsys-macros
在 Fedora 上,但出于某种原因,它没有被 Centos 重新打包。
选项 1) 从 here 下载并安装 fedora build-macros
选项 2) 每次调用 rpmbuild --define 'dist .el5'
选项 3) 手动编辑/etc/rpm/macros.disttag 为 rhel (5) 和 dist (.el5) 添加宏定义。
然后,您可以在规范文件中使用这样的条件:
%if 0%{?rhel} == 5
%{Requires: foo}
%endif
关于rpmbuild %{dist} 未在 CentOS 5.5 上定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135502/