Я хочу создать пакет php rpm, но у меня есть некоторые проблемы в %install
время ошибки показывают следующим образом:
Build complete.
Don't forget to run 'make test'.
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.JrATF9
+ umask 022
+ cd /home/work/rpmbuild/BUILD
+ '[' /home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64 '!=' / ']'
+ rm -rf /home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64
++ dirname /home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64
+ mkdir -p /home/work/rpmbuild/BUILDROOT
+ mkdir /home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64
+ cd php-7.3.2
+ rm -rf /home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64
+ /usr/bin/mkdir -p /home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64/usr/local/lib/php/extensions/no-debug-non-zts-20180731
+ /usr/bin/make install DESTDIR=/home/work/rpmbuild/BUILDROOT/php-7.3.2-1.el7.x86_64
mkdir: cannot create directory '/usr/local/lib/php': Permission denied
mkdir: cannot create directory '/usr/local/lib/php/extensions': No such file or directory
mkdir: cannot create directory '/usr/local/lib/php/extensions/no-debug-non-zts-20180731': No such file or directory
make: *** [install-modules] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.JrATF9 (%install)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.JrATF9 (%install)
Мой php Spec файл находится здесь:
Name: php
Version: 7.3.2
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%prep
%setup -q
%build
./configure --enable-fpm --enable-mbstring --with-pdo-mysql --without-sqlite3 --without-pdo-sqlite --with-openssl --with-zlib --with-curl --with-libdir=lib64
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
%{__mkdir} -p $RPM_BUILD_ROOT/usr/local/lib/php/extensions/no-debug-non-zts-20180731
%make_install
%files
%defattr(-,root,root)
%attr(0755,root,root) %dir /usr/local/lib/php
%attr(0755,root,root) %dir /usr/local/lib/php/extensions
%attr(0755,root,root) %dir /usr/local/lib/php/extensions/no-debug-non-zts-20180731
Как я могу создать /usr/local/lib/php
разрешение или владеть нужным разрешением?
Любая помощь тебе?
Вы на правильном пути не здание как root
! Попробуйте заменить ./configure
позвонить с %{configure}
это макрос, который вставит все нужные им флаги Red Hat (например, проверку переполнения стека и т. д.), а также DESTDIR
флаги и еще много чего нужно, чтобы все «просто работало». Вы уже (правильно) используете %{make_install}
макрос, так что ты в порядке там.
Я бы вынул mkdir
звоните, потому чтоmake install
«должен покрыть это.
Других решений пока нет …