Use um diretório do RPM como parâmetro para uma ferramenta diferente

0

Eu preciso buscar uma pasta de um pacote RPM que contenha o número de arquivos .jar . Minha idéia era que talvez fosse possível passá-lo em um fluxo para o comando java -cp como classpath para ele?

O projeto no qual estou trabalhando constrói mais de 10 grandes RPMs e para cada um deles eu preciso executar um determinado programa que precisa do classpath do aplicativo que reside no RPM.

Eu tropecei em uma ferramenta chamada rpm2cpio que pode ser canalizada para o comando cpio . Mas agora meu conhecimento está diminuindo. Não tenho certeza se é possível não extrair o conteúdo do pacote cpio para o disco, mas usar um fluxo de arquivos, filtrar uma determinada pasta e usá-la como parâmetro para outro comando?

Por que estou até tentando isso é simplesmente porque extrair a coisa inteira no disco será uma operação IO pesada que eu ficaria feliz em evitar se possível.

    
por Kaspar 10.10.2017 / 12:52

1 resposta

1
rpm -qlp package.rpm

listará os arquivos contidos em package.rpm sem extraí-lo na íntegra e deverá ser rápido o suficiente, mesmo em grandes RPMs. Usando essa lista de arquivos, você deve "conseguir criar o caminho de classe que deseja".

Para extrair um diretório específico de um RPM, com todo o seu conteúdo, você precisa criar o diretório e usar cpio para extrair os arquivos relevantes do RPM:

cd /tmp
mkdir ./the/requested/directory
rpm2cpio /path/to/the/package.rpm | cpio -i ./the/requested/directory/\*
    
por 10.10.2017 / 13:18

Tags