![Мой собственный rpm не выполняет последовательность %install](https://rvso.com/image/1539540/%D0%9C%D0%BE%D0%B9%20%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20rpm%20%D0%BD%D0%B5%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%25install.png)
Я впервые собрал пакет RPM. Этот RPM — упакованное приложение front-end, и для установки нужно только переместить файлы приложения и перезапустить nginx. Вот мой файл спецификации:
Name: my-portal-app
Version: 2.1
Release: 1%{?dist}
Summary: Descripcion
License: No-license
URL: nourl
Source0: my-portal-app-2.1.tar.gz
%description
My app install
%prep
%setup -q
%build
#%configure
#make %{?_smp_mflags}
%install
#rm -rf $RPM_BUILD_ROOT
cp -r ./* /var/www/myapp
service nginx restart
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc
%changelog
Все нормально, когда я запускаю rpmbuild -ba, выхожу 0, и вычисляется последовательность %install (скопируйте файлы и перезапустите nginx). Хорошо, rpmbuild генерирует RPM (в rpmbuild/RPMS) и SRPM в (rpmbuild/SRPMS).
Но, если я правильно понял, когда я устанавливаю свой SRPM с помощью rpm -ivh name.rpmпоследовательность %install должна быть выполнена, я прав? Если да, то последовательность не выполняется (не копируются файлы в /var/www/myapp и не перезапускается nginx). Выполнение RPM то же самое.
Содержимое SRPM правильное, все файлы на месте. RPM пуст.
решение1
Как вы сказали, %install
раздел предназначен для настройки начальных предложений сборки RPM, которые вам необходимо настроить.
Для достижения своей цели вы должны использовать %post
раздел, в котором вы можете определить выполнение своего собственного .sh (например) или вы можете задать одно за другим нужные вам предложения, например:
sudo service restart nginx
Что касается проблемы с пустым RPM, то она возникает из-за того, что %files
раздел не был заполнен должным образом, двоичные файлы, перемещенные в RPM, связаны с содержимым этого раздела (%files)
решение2
Ладно, я ошибался... как этодокговорит:
Раздел %install не запускается при установке двоичного пакета RPM конечным пользователем, а запускается только при создании пакета.