Мой собственный rpm не выполняет последовательность %install

Мой собственный rpm не выполняет последовательность %install

Я впервые собрал пакет 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 конечным пользователем, а запускается только при создании пакета.

Связанный контент