【问题标题】:RPM spec %post doesn't execute in rpmbuildRPM 规范 %post 不在 rpmbuild 中执行
【发布时间】:2023-03-15 22:46:01
【问题描述】:

鉴于最小的 RPM 规范文件,它应该只执行 %post 节:

$ 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

【问题讨论】:

标签: rpm rhel rpmbuild rpm-spec


【解决方案1】:

%post 是一个安装时脚本部分,因此它只会在尝试安装生成的 rpm 时执行。

来自documentation

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

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

【讨论】:

    【解决方案2】:

    %post 部分在您安装 RPM 时运行,而不是在 rpmbuild 期间运行。

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-18
      • 2015-08-25
      • 2014-10-10
      • 2016-10-03
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多