rpmbuild %{dist} 未在 CentOS 5.5 上定义?

标签 rpm centos5 rpmbuild

我正在尝试使用 %{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/

相关文章:

linux - IPTables 如何阻止特定的 UDP 数据包?

rpmbuild - 当源 tar 目录与名称版本不对应时使用 rpmbuild

java api查询文件的RPM包信息

java - 使用 Maven 在 Debian 上构建 RPM

即使在正确的 'yum remove' 和 'yum install' 之后,MySQL 仍保留早期安装的密码

packaging - 如何为不同的环境使用相同的路径创建 RPM 子包?

python - 创建 Python RPM

git - 在 rpm 中将最后一个 git commit id 放在哪里

linux - 简单 .RPM 中的错误

webkit - 在 Centos 5.8 上使用 WebKitGTK+?