首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RPM包的SPEC文件中的1%{?dist}是什么意思

问RPM包的SPEC文件中的1%{?dist}是什么意思
EN

Stack Overflow用户
提问于 2014-08-26 22:42:45
回答 2查看 5.6K关注 0票数 7

1%{?dist}是什么意思?%{?}是什么意思?我在任何地方都找不到它的意义

代码语言:javascript
复制
Name:           hello
Version:        2.8
Release:        1%{?dist}
Summary:        The "Hello World" program from GNU
License:        GPLv3+
URL:            http://ftp.gnu.org/gnu/%{name}
Source0:        http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
BuildRequires: gettext
Requires(post): info
Requires(preun): info
%description 

"Hello World“程序,包含了正确的自由/开源软件项目的所有细节,包括配置、构建、国际化、帮助文件等。

代码语言:javascript
复制
%prep
%autosetup
%build
%configure
make %{?_smp_mflags}
EN

回答 2

Stack Overflow用户

发布于 2014-08-27 00:09:47

问号用于条件求值。当宏没有值时,默认情况下rpm会保留宏标记不变。?告诉rpm,如果没有值,则删除宏标记,如果有,则替换为宏的值:

代码语言:javascript
复制
$ rpm -E 'foo:%{foo}'$'\n''bar:%{?bar}'
foo:%{foo}
bar:

$ rpm -D'foo foov' -E 'foo:%{foo}'$'\n''bar:%{?bar}'
foo:foov
bar:

$ rpm -D'foo foov' -D'bar barv' -E 'foo:%{foo}'$'\n''bar:%{?bar}'
foo:foov
bar:barv

因此,正如RahulKrishnanRA所说,%{?dist}建议使用分发标签(rh、el5、rf等)。如果存在则返回空字符串,如果不存在则返回空字符串。

不幸的是,我唯一有关于这个的文档链接并不是特别好。http://www.rpm.org/wiki/PackagerDocs/ConditionalBuilds和链接的手册页。

票数 17
EN

Stack Overflow用户

发布于 2014-08-26 23:55:11

{?dist}标记用于标记软件包的发行修订版

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25508687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档