Eu tenho uma rotação e quero tratá-la como um tarball. Quero extrair o conteúdo em um diretório para que eu possa inspecionar o conteúdo. Eu estou familiarizado com os comandos de consulta de um pacote desinstalado. Eu não quero simplesmente uma lista do conteúdo das rpm. ie
$ rpm -qpl foo.rpm
Quero inspecionar o conteúdo de vários arquivos contidos nas rpm. Não quero instalar o rpm. Também estou ciente da capacidade do rpms de fazer modificações adicionais nas seções% post e como verificar essas alterações. ie
$ rpm -qp --scripts foo.rpm
No entanto, neste caso, isso não me interessa.
linux
package
rpm
system-administration
Jeff Sheffield
fonte
fonte
Para referência: os argumentos cpio são
Encontrei a resposta aqui: resposta de lontar
fonte
Para aqueles que não possuem o rpm2cpio, aqui está o antigo script rpm2cpio.sh que extrai a carga útil de um pacote * .rpm.
Republicado para a posteridade ... e para a próxima geração.
Invoque assim: ./rpm2cpio.sh .rpm | cpio -dimv
fonte
Às vezes, você pode encontrar um problema no arquivo RPM intermediário:
Isso significa que pode ser compactado; atualmente, é a compressão LZMA2, como de costume, por
xz
:caso contrário, você pode tentar:
fonte
rpm2cpio <file>.rpm | bsdtar -xf -
(sem cpio) para que funcionasse.gunzip
vez dexz
oulzma
que funcionou bem.A maioria das distribuições instalou o rolo de arquivos do aplicativo GUI , que descompacta tar, zip, rpm e muito mais.
Isso extrairá o conteúdo no diretório atual.
fonte
O 7-zip compreende a maioria dos tipos de arquivos, incluindo rpm e o cpio incluído.
fonte
Você pode simplesmente fazer
tar -xvf <rpm file>
o mesmo!fonte
tar
usadalibarchive
sob o capô.bsdtar
. O Homebrew no Mac vinculatar
a ele por padrão, mas em outros sistemas operacionaistar
significa GNU tar.O poderoso gerenciador de arquivos mc baseado em texto (Midnight Commander, lembrando vagamente o Norton Commander dos velhos tempos do DOS) tem o recurso interno de inspecionar e descompactar arquivos .rpm e .rpms, apenas "abra" o arquivo .rpm (s) dentro de mc e selecione
CONTENTS.cpio
: para um rpm você obtém acesso à árvore de instalação, para um rpms você obtém acesso ao arquivo .spec e a todos os pacotes de origem.fonte
Para depurar / inspecionar seu rpm, sugiro usar redline, que é um programa java
Uso:
Faça o download: https://github.com/craigwblake/redline/releases
fonte
No NixOS, existe
rpmextract
. É um invólucro em torno do rpm2cpio, exatamente como o @Alan Evangelista queria. https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextractfonte
No OpenSuse, pelo menos, o
unrpm
comando vem com obuild
pacote.Em um diretório adequado (porque esta é uma bomba de arquivo morto):
fonte
Copie o arquivo .rpm em uma pasta separada e execute o seguinte comando $ yourfile.rpm | cpio -idmv
fonte
O teste "DECOMPRESSION" falha no CygWin, uma das plataformas mais potencialmente úteis para ele, devido à verificação "grep" de "xz" que diferencia maiúsculas de minúsculas. O resultado da verificação "COMPRESSION:" é:
Simplesmente substituir 'grep -q' por 'grep -q -i' em todos os lugares parece resolver bem o problema.
Fiz algumas atualizações, particularmente adicionando alguns comentários e usando "case" em vez de instruções "if" empilhadas, e incluí essa correção abaixo
fonte
O 7-Zip é capaz de extrair o conteúdo. Funciona da mesma maneira que um arquivo tar.gz. Um arquivo compactado dentro de um arquivo compactado.
No Windows 7 Pro com o 7-Zip instalado:
Clique com o botão direito do mouse no arquivo rpm. Passe o mouse sobre o 7-Zip no menu de contexto. Selecione extrair para "nome do arquivo".
Entre na pasta nome do arquivo.
Clique com o botão direito do mouse no arquivo cpio. Passe o mouse sobre o 7-Zip no menu de contexto. Selecione extrair para "nome do arquivo".
Você terminou. A pasta com "nome do arquivo" contém o conteúdo extraído para inspeção.
Eu sei que vocês do Linux desprezam que as coisas sejam facilitadas, mas a longo prazo, se você tiver que gastar algum tempo procurando uma solução para um problema simples como esse; essa ineficiência está lhe custando dinheiro.
Dado o fato de vocês Linux desprezarem a simplicidade eficiente, duvido muito que a versão Linux do 7-Zip faça a mesma coisa da mesma maneira.
Por que facilitar quando você pode tornar completamente estúpido e afirmar ser um gênio ao mesmo tempo?
Só para ficar claro; Eu não sou um fanboy do Windows. Na verdade, estou pensando em mudar para o Linux. Eu simplesmente não pude resistir à oportunidade de passar o que os desenvolvedores do Windows considerariam bom senso, as melhores práticas de desenvolvedor em seus rostos.
Apenas fique feliz por eu estar postando isso e você não tem Mark Harmon ao seu lado; O agente especial Leroy Jethro Gibbs teria dado um tapa na cabeça por não usar a cabeça.
Não sei qual é a regra de Gibbs, mas a regra é: não torne as coisas mais difíceis para você do que elas precisam ser.
Agora vamos ver quem precisa tirar férias. Cuidar!
fonte