检查后 rpmbuild 失败 CHECK_RPATHS
rpmbuild failed after checking CHECK_RPATHS
运行检查 rpath 后 rpmbuild 失败时,我遇到过几次问题。我不明白它发生的时间和原因。现在 运行ning localy 没问题,但是当我 运行 它在 docker 时它失败了。我没有看到任何具体错误。
当 rpmbuild 成功时,它会检查更多 rpath。例如好的一个是:
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /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-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
规格文件:
%define app_home /usr/share/nginx/html/pmp
Name: pmp
Version: 0.0.2
Release: 1%{?dist}
Summary: PHP application
Group: Applications/System
License: GPLv2+
URL: http://www.something/
Source: bin
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
PHP application
%prep
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{app_home}
rsync -vr --exclude 'rpm' %{_sourcedir}/ $RPM_BUILD_ROOT%{app_home}/
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,nginx,nginx,-)
%{app_home}/*
在 运行ning rpmbuild 失败后 rpmbuild -ba SPEC/my.spec
rpmbuild -ba --sign /home/makerpm/rpmbuild/SPECS/my.spec
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ exit 0
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ exit 0
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ '[' /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64 '!=' / ']'
+ rm -rf /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ dirname /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ mkdir -p /home/makerpm/rpmbuild/BUILDROOT
+ mkdir /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ rm -rf /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ mkdir -p /home/makerpm/rpmbuild/BUILDROOT/pmp-front-basket-sprint10-1.el7.centos.x86_64/usr/share/nginx/html/pmp
+ rsync -vr --exclude rpm /home/makerpm/rpmbuild/SOURCES/ /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64/usr/share/nginx/html/pmp/
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
Paswwor12s
+ cp -u '/home/makerpm/rpmbuild/RPMS/x86_64/*' /home/makerpm/rpmbuild/SOURCES/rpm/
cp: cannot stat '/home/makerpm/rpmbuild/RPMS/x86_64/*': No such file or directory
+ exit 0
问题已找到。在 .rpmmacross 中指定了 noarch。
%__arch_install_post \
[ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
/usr/lib/rpm/check-buildroot
已将变量添加到 *.spec
文件,现在可以使用了
BuildArch: noarch
运行检查 rpath 后 rpmbuild 失败时,我遇到过几次问题。我不明白它发生的时间和原因。现在 运行ning localy 没问题,但是当我 运行 它在 docker 时它失败了。我没有看到任何具体错误。 当 rpmbuild 成功时,它会检查更多 rpath。例如好的一个是:
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /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-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
规格文件:
%define app_home /usr/share/nginx/html/pmp
Name: pmp
Version: 0.0.2
Release: 1%{?dist}
Summary: PHP application
Group: Applications/System
License: GPLv2+
URL: http://www.something/
Source: bin
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
PHP application
%prep
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{app_home}
rsync -vr --exclude 'rpm' %{_sourcedir}/ $RPM_BUILD_ROOT%{app_home}/
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,nginx,nginx,-)
%{app_home}/*
在 运行ning rpmbuild 失败后 rpmbuild -ba SPEC/my.spec
rpmbuild -ba --sign /home/makerpm/rpmbuild/SPECS/my.spec
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ exit 0
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ exit 0
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ '[' /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64 '!=' / ']'
+ rm -rf /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ dirname /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ mkdir -p /home/makerpm/rpmbuild/BUILDROOT
+ mkdir /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ rm -rf /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64
+ mkdir -p /home/makerpm/rpmbuild/BUILDROOT/pmp-front-basket-sprint10-1.el7.centos.x86_64/usr/share/nginx/html/pmp
+ rsync -vr --exclude rpm /home/makerpm/rpmbuild/SOURCES/ /home/makerpm/rpmbuild/BUILDROOT/pmp-sprint10-1.el7.centos.x86_64/usr/share/nginx/html/pmp/
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
Paswwor12s
+ cp -u '/home/makerpm/rpmbuild/RPMS/x86_64/*' /home/makerpm/rpmbuild/SOURCES/rpm/
cp: cannot stat '/home/makerpm/rpmbuild/RPMS/x86_64/*': No such file or directory
+ exit 0
问题已找到。在 .rpmmacross 中指定了 noarch。
%__arch_install_post \
[ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
/usr/lib/rpm/check-buildroot
已将变量添加到 *.spec
文件,现在可以使用了
BuildArch: noarch