rpm - como executar um arquivo php em% post rpm

2

Estou criando um instalador rpm para um aplicativo da web php. Um dos requisitos é executar um script php, um script de entrada que atualizará a fonte, o banco de dados e executará os scripts de correção.

Para cumprir esse requisito, criei um arquivo tar que possui o script php e outros arquivos necessários para a atualização e os armazena no diretório de fontes. E eu só precisava chamar o script php em% post.

%post
cd $RPM_BUILD_ROOT
gunzip %{name}-%{version}.tar
tar -xvf %{name}-%{version}.tar
php install.php

Eu mudo primeiro o diretório para compilar, pois acho que é a localização dos arquivos tar. Em seguida, descompacte os arquivos e execute o script php. Mas, em vez disso, recebi os erros abaixo:

gunzip: can't stat: webapp-1.0.tar (webapp-1.0.tar.gz): No such file or directory
tar: Error opening archive: Failed to open 'webapp-1.0.tar'
Could not open input file: install.php

Como devo executar o script php? Isso é possível?

Além disso, qual arquivo rpm devo usar para instalar a distribuição final, aquele no diretório rpms / i386 ou srpms? Ainda estou desenvolvendo o rpm.

Qualquer ajuda é apreciada.

[EDITAR] Eu tentei usar %setup -c -n %{name} em% post em vez dos comandos tar. Então eu recebi esta mensagem Could not open input file: install.php

    
por Pelang 20.04.2015 / 10:46

1 resposta

2

se este for um arquivo .spec, use% {buildroot} em vez de $ RPM_BUILD_ROOT. Veja o capítulo "Macros" aqui: link

Tente também echo %{buildroot} > /tmp/dbg.txt e verifique o conteúdo de /tmp/dbg.txt para ver onde ele tenta fazer o cd.

Eu sugiro usar o fpm que é capaz de criar todos os tipos de pacotes. Basta fornecer os scripts de pré-instalação como argumentos junto com o restante. Não são necessários arquivos de especificação do rpm ou arquivos de regras deb.

    
por 20.04.2015 / 12:47

Tags