De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


RPM-Repack

Colaboração: Ivan de Gusmão Apolonio

Data de Publicação: 19 de junho de 2015

Algumas vezes precisamos de um pacote *rpm* para instalá-lo em outro computador, mas não o temos. Todavia, se este pacote já instalado em algum lugar, podemos fazer um "repack" deste pacote e gerar o rpm de instalação novamente.

Para isso, existe um script chamado rpm-repack que faz o trabalho de coletar todas as informações e arquivos do pacote que está instalado e reempacotá-lo. Não fui eu quem fiz o script mas achei muito útil de compartilhar a dica. Trata-se de um script em Perl, que pode ser baixado deste endereço:

https://github.com/cormander/rogue-beret-tools/blob/master/scripts/rpm-repack

Seu uso é muito simples, mas como ele utiliza a estrutura de diretórios do rpmbuild, o script espera que esta estrutura já esteja criada (na verdade isso até poderia ser feito automaticamente pelo script, mas como não fui eu quem o fiz, foi necessário o passo adicional de criar a estrutura de diretórios do rpmbuild):

  mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

Agora basta executar o script passando como argumento o nome do pacote que está instalado no sistema:

  root@rhel:~ $ ./rpm-repack mkcdrec 
  Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.Fn2vxf 
  + umask 022 
  + cd /root/rpmbuild/BUILD 
  + mkdir -p /root/rpmbuild/BUILDROOT/mkcdrec-1.0.0-1.el6.rf.x86_64 
  + tar -ztf /root/rpmbuild/SOURCES/mkcdrec-1.0.0.x86_64.bin.tar.gz 
  + sort -u 
  + awk '{print "/" $1}' 
  + tar -C /root/rpmbuild/BUILDROOT/mkcdrec-1.0.0-1.el6.rf.x86_64 -zxf /root/rpmbuild/SOURCES/mkcdrec-1.0.0.x86_64.bin.tar.gz 
  + /usr/lib/rpm/brp-compress 
  + /usr/lib/rpm/brp-strip 
  + /usr/lib/rpm/brp-strip-static-archive 
  + /usr/lib/rpm/brp-strip-comment-note 
  Processing files: mkcdrec-1.0.0-1.el6.rf.x86_64 
  Provides: mkcdrec 
  Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 
  Requires: /bin/bash /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libm.so.6()(64bit) rtld(GNU_HASH) 
  Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/mkcdrec-1.0.0-1.el6.rf.x86_64 
  warning: Could not canonicalize hostname: rhel.callflex.com.br 
  Wrote: /root/rpmbuild/SRPMS/mkcdrec-1.0.0-1.el6.rf.nosrc.rpm 
  Wrote: /root/rpmbuild/RPMS/x86_64/mkcdrec-1.0.0-1.el6.rf.x86_64.rpm 
  Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.1ESScp 
  + umask 022 
  + cd /root/rpmbuild/BUILD 
  + /bin/rm -rf /root/rpmbuild/BUILDROOT/mkcdrec-1.0.0-1.el6.rf.x86_64 
  + exit 0

No exemplo acima, o pacote foi gerado no diretório /rpmbuild/RPMS/x86_64/mkcdrec-1.0.0-1.el6.rf.x86_64.rpm

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Ivan de Gusmão Apolonio