2016-06-29 2 views
1

Я столкнулся пару раз с проблемой, когда rpmbuild не удалось выполнить проверку rpath. Я не могу понять, когда и почему это происходит. Теперь это нормально работает локально, но когда я запускаю его в докере, он терпит неудачу. Я не вижу никакой конкретной ошибки. Когда rpmbuild успешно, проверьте больше rpath. Например хороший один:rpmbuild не удалось проверить 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 

спецификации файла:

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

после запуска 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 

ответ

1

Вопрос был найден. В .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 
Смежные вопросы