como extrair as instruções fornecidas pelo arquivo de especificação do rpm

1

Eu revi várias perguntas relacionadas - a mais próxima delas é: Extraia o arquivo de especificação de um RPM - E devo acrescentar que teria formulado minha pergunta da mesma maneira. No entanto, parece que o arquivo .spec não está no arquivo .rpm (quando é um pacote binário).

Então, minha pergunta é: como obter as informações originadas em um arquivo de especificações - pelo menos o máximo possível.

  • Eu sei que há um comando para listar o conteúdo do .rpm (pelo menos dois na verdade - rpm2cpio xxx.rpm | cpio -itv sendo um
  • outros comandos para obter o que é necessário
  • em particular: QUE (S) comando (s) para obter o scripts pré / post / etc que são executados como parte do processo de instalação.

Idealmente, a resposta é um único comando - mas se deve ser vários comandos, c'est la vie.

p.s. Eu examinei rpmbuild --rebuild (diz que espera o RPM de origem) e não consigo localizar rpmlint

Obrigado.

    
por Michael Felt 07.12.2016 / 17:47

2 respostas

4

Sim, o rpm SPEC não faz parte do pacote RPM. No entanto, você pode consultar o pacote RPM para obter informações que estavam presentes no arquivo SPEC.

Por exemplo:

1) O comando a seguir fornecerá os scripts pré / pós que são executados quando o pacote RPM é instalado ou atualizado.

rpm -q --scripts (installed RPM name, this name will be without the .rpm extension)
rpm -qp --scripts (if you have a rpm file)

2) Você pode examinar informações específicas presentes no arquivo SPEC, usando o comando --queryformat do comando rpm.

rpm -q --queryformat '%{ARCH} %{NAME}\n' (RPM name, if it installed)
rpm -qp --queryformat '%{ARCH} %{NAME}\n' (if you have an RPM file)

Acima dará a arquitetura para a qual o RPM foi projetado e o nome real do RPM. Essas informações vão em seções específicas do arquivo SPEC, como Nome, Arco, Requer (pré), Requer (post), BuildRequires etc. Para obter opções de consulta válidas, verifique este link

    
por 07.12.2016 / 18:37
0

Não há como extrair as instruções de criação que criaram um rpm, a menos que você tenha o rpm de origem que gerou esse rpm.

Se o rpm em questão vier de repositórios oficiais, você poderá ativar os repositórios de origem correspondentes na sua pasta /etc/yum.repos.d (para RHEL / CentOS) e, em seguida, fazer o download do rpms de origem via yum. (Você pode fazer semelhante para DNF / Zypper / etc.)

    
por 07.12.2016 / 18:06

Tags