2016-01-06 65 views
1

执行给定的最小RPM规范文件,应当只执行%post节:RPM规格%后不会的rpmbuild

$ cat ~/RPMBUILD/SPECS/test.spec 
Name:   None 
Version:  1.0 
Release:  1 
Summary:  Bla 
License:  Proprietary 

%description 
Bla 

%prep 

%build 

%install 

%clean 

%post 
echo ">>> Inside post <<<" 

%files 

然而,%post回声执行:

$ rpmbuild -v -bb ~/RPMBUILD/SPECS/test.spec 
Executing(%prep): /bin/sh -e /home/ronbarak/RPMBUILD/tmp/rpm-tmp.IvhCZs 
+ umask 022 
+ cd /home/ronbarak/RPMBUILD/BUILD 
+ LANG=C 
+ export LANG 
+ unset DISPLAY 
+ exit 0 
Executing(%build): /bin/sh -e /home/ronbarak/RPMBUILD/tmp/rpm-tmp.yCLpOK 
+ umask 022 
+ cd /home/ronbarak/RPMBUILD/BUILD 
+ LANG=C 
+ export LANG 
+ unset DISPLAY 
+ exit 0 
Executing(%install): /bin/sh -e /home/ronbarak/RPMBUILD/tmp/rpm-tmp.uEbSD2 
+ umask 022 
+ cd /home/ronbarak/RPMBUILD/BUILD 
+ '[' /home/ronbarak/RPMBUILD/BUILDROOT/None-1.0-1.x86_64 '!='/']' 
+ rm -rf /home/ronbarak/RPMBUILD/BUILDROOT/None-1.0-1.x86_64 
++ dirname /home/ronbarak/RPMBUILD/BUILDROOT/None-1.0-1.x86_64 
+ mkdir -p /home/ronbarak/RPMBUILD/BUILDROOT 
+ mkdir /home/ronbarak/RPMBUILD/BUILDROOT/None-1.0-1.x86_64 
+ LANG=C 
+ export LANG 
+ unset DISPLAY 
+ /usr/lib/rpm/check-buildroot 
+ /usr/lib/rpm/redhat/brp-compress 
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip 
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip 
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump 
+ /usr/lib/rpm/brp-python-bytecompile 
+ /usr/lib/rpm/redhat/brp-python-hardlink 
+ /usr/lib/rpm/redhat/brp-java-repack-jars 
Processing files: None-1.0-1.x86_64 
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/ronbarak/RPMBUILD/BUILDROOT/None-1.0-1.x86_64 
Wrote: /home/ronbarak/RPMBUILD/RPMS/x86_64/None-1.0-1.x86_64.rpm 
Executing(%clean): /bin/sh -e /home/ronbarak/RPMBUILD/tmp/rpm-tmp.wLCv3C 
+ umask 022 
+ cd /home/ronbarak/RPMBUILD/BUILD 
+ exit 0 

我应该改变,以使%post将执行?

+1

你问得太快。看到我在你以前的问题的答案http://stackoverflow.com/a/34634718/3489429 – msuchy

回答

2

%post是安装/卸载时间脚本部分,因此只有在尝试安装或卸载生成的rpm时才会执行。

documentation

已安装的程序包后,后期%执行脚本。 %post脚本需要的最常见原因之一是运行ldconfig 以在安装了新的 之后更新可用共享库的列表。当然,其他功能可以在%post 脚本中执行。例如,安装shell的软件包使用%post脚本 将shell名称添加到/ etc/shells。

如果您想在构建时执行其他内容,则需要依靠%build%install部分。