O meu próprio rpm não executa a sequência de instalação%

2

Eu construí pela primeira vez um pacote RPM. Esse RPM é um aplicativo de front-end empacotado, e a instalação só precisa mover os arquivos do aplicativo e reiniciar o nginx. Este é o meu arquivo de especificação:

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á ok quando eu executo rpmbuild -ba, exit 0, e a seqüência de instalação% é calculada (copie os arquivos e reinicie o nginx). Ok, o rpmbuild gera o RPM (no rpmbuild / RPMS) e o SRPM no (rpmbuild / SRPMS).

Mas, se eu entendi bem, quando eu instalar o meu SRPM com rpm -ivh nome.rpm a seqüência de instalação% deve ser executada , estou certo? Se eu estiver, a seqüê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 no formato. E o RPM está vazio.

    
por Kalamarico 26.08.2017 / 22:40

2 respostas

2

Como você disse, a seção %install é para configurar as sentenças de compilação inicial do RPM que você precisará configurar.

Para atingir seu objetivo, você deve usar a seção %post , em que você pode definir a execução do seu próprio .sh (por exemplo) ou você pode definir uma por uma as frases que você precisa, por exemplo:

sudo service restart nginx

Para a questão do RPM vazio, é porque a seção %files não foi preenchida corretamente, os binários movidos para o RPM estão relacionados com o conteúdo dessa seção (% files)

    
por 11.09.2017 / 14:30
1

Ok, eu estava errado ... como este doc diz:

The %install section is not run when the binary RPM package is installed by the end-user, but is only run when creating a package.

    
por 27.08.2017 / 00:31