2016-06-29 1 views
1

J'ai rencontré plusieurs fois le problème avec rpmbuild échoué après avoir exécuté vérifier rpath. Je ne comprends pas quand et pourquoi cela arrive. Maintenant, ça fonctionne bien localement mais quand je le lance dans le docker, il échoue. Je ne vois aucune erreur spécifique. Lorsque rpmbuild a réussi, vérifiez plus rpath. Par exemple est bon:rpmbuild a échoué après vérification CHECK_RPATHS

+ '[' '%{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 

fichier de spécification:

%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}/* 

après l'exécution rpmbuild qui a échoué 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 

Répondre

1

La question a été trouvé. En .rpmmacross a été spécifié 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 

Ajouté la variable dans le fichier *.spec et il travaille maintenant

BuildArch: noarch