我正在使用.spec文件尝试rpmbuild(4.11.3),但它删除了builddirectory,我希望rpmbuild不要删除我的构建目录中的任何文件,因为在构建RPM之后我需要它们来做其他事情 . 我尝试使用-bi选项,但它没有工作,它删除了构建目录 .
这里是SPEC文件:
Name: newfile
Version: 1.0
Release: 1%{?dist}
AutoReqProv: no
Prereq: /bin/chmod
Prereq: /bin/chown
Summary: Testing
%description
TBD
%install
mkdir -p $RPM_BUILD_ROOT/test/opb
%files -f testingfiles.files
%defattr(-,root,root,755)
%dir /test/opb
%dir /test/opb
%dir /test/opb/new
%dir /test/opb/new1
%dir /test/opb/new2
%dir /test/opb/new2
命令:
/usr/bin/rpmbuild --define '_tmppath /var/tmp/rpmgen24431.d' --define '_topdir pkg/tst' -bi --buildroot /testing/new/dest pkg/tst/newfile.spec
它删除/ testing / new / dest中的所有文件 . 如何在不删除构建文件的情况下创建rpm文件 .
1 回答
你可以加:
在您的spec文件之上 .
但是我觉得真的很遗憾提供这个答案,因为您的SPEC已经充满了黑客攻击,这又增加了另一层肮脏的黑客攻击 . 而不是这个问题,你应该考虑如何通过定期清理buildroot来实现你想要实现的目标 .
编辑:__spec_install_pre定义为:
所以如果你把它定义为:
它将表现完全相同,只是不删除buildroot . 多行%define可以通过两种方式定义,具体取决于rpm的版本 . 我会留给你:)