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.
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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários