![Meu próprio rpm não executa a sequência% install](https://rvso.com/image/1539540/Meu%20pr%C3%B3prio%20rpm%20n%C3%A3o%20executa%20a%20sequ%C3%AAncia%25%20install.png)
Eu construí pela primeira vez um pacote RPM. Este RPM é um aplicativo front-end empacotado e a instalação só precisa mover os arquivos do aplicativo e reiniciar o nginx. Este é o meu arquivo de especificações:
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
Tudo está bem quando executo rpmbuild -ba, saio 0 e a sequência% de instalação é calculada (copie os arquivos e reinicie o nginx). Ok, rpmbuild gera o RPM (em rpmbuild/RPMS) e o SRPM em (rpmbuild/SRPMS).
Mas, se bem entendi, quando instalo meu SRPM com rpm -ivh name.rpma sequência %install deve ser executada, Estou certo? Se estiver, a sequência não está sendo executada (não copie os arquivos para/var/www/myapp e não reinicie o nginx). Executando o RPM da mesma forma.
O conteúdo do SRPM está correto, todos os arquivos estão dentro. E o RPM está vazio.
Responder1
Como você disse, %install
a seção é para configurar as sentenças iniciais de construção do RPM que você precisará configurar.
Para atingir seu objetivo você deve usar %post
a seção, onde você pode definir a execução do seu próprio .sh (por exemplo) ou pode definir uma por uma as sentenças que você precisa, por exemplo:
sudo service restart nginx
Para a questão do RPM vazio, é porque %files
a seção não foi preenchida corretamente, os binários movidos para o RPM estão relacionados com o conteúdo daquela seção (%arquivos)
Responder2
Ok, eu estava errado... como issodocumentodiz:
A seção %install não é executada quando o pacote RPM binário é instalado pelo usuário final, mas só é executada durante a criação de um pacote.