178

rpm があり、それを tarball のように扱いたいと考えています。内容を検査できるように、内容をディレクトリに抽出したいと考えています。アンインストールされたパッケージのクエリ コマンドに精通しています。単に rpm の内容のリストが必要なわけではありません。すなわち

$ rpm -qpl foo.rpm

rpm に含まれるいくつかのファイルの内容を検査したいと考えています。rpm をインストールしたくありません。また、%post セクションで追加の変更を行う rpms の機能と、それらを確認する方法についても認識しています。すなわち

$ rpm -qp --scripts foo.rpm

ただし、この場合、それは私には関係ありません。

4

15 に答える 15

209

コマンドを試しましたrpm2cpioか?以下の例を参照してください。

$ rpm2cpio php-5.1.4-1.esp1.x86_64.rpm | cpio -idmv

/etc/httpd/conf.d/php.conf  
./etc/php.d  
./etc/php.ini  
./usr/bin/php  
./usr/bin/php-cgi  
etc 
于 2013-09-13T13:27:36.313 に答える
80
$ mkdir packagecontents; cd packagecontents
$ rpm2cpio ../foo.rpm | cpio -idmv
$ find . 

参考までに: cpio 引数は次のとおりです。

-i = extract
-d = make directories
-m = preserve modification time
-v = verbose

私はここで答えを見つけました: lontar's answer

于 2013-09-13T13:26:49.153 に答える
30

中間 RPM アーカイブで問題が発生する場合があります。

cpio: 不正な数値
cpio: 不正な数値
cpio: 不正な数値
. . .
cpio: アーカイブが途中で終了しました

つまり、パックできることを意味します。最近では、通常どおり LZMA2 圧縮xzです。

rpm2cpio <file>.rpm | xz -d | cpio -idmv

それ以外の場合は、次を試すことができます。

rpm2cpio <file>.rpm | lzma -d | cpio -idmv
于 2014-09-19T12:06:11.587 に答える
13

ほとんどのディストリビューションには、tar、zip、rpm などを展開する GUI アプリファイル ローラーがインストールされています。

file-roller --extract-here package.rpm

これにより、現在のディレクトリの内容が抽出されます。

于 2015-12-30T08:10:01.723 に答える
6

7-zipは、rpm や付属の cpio など、ほとんどの種類のアーカイブを認識します。

于 2018-09-10T13:48:55.103 に答える
5

あなたも簡単にできtar -xvf <rpm file>ます!

于 2015-02-10T20:14:26.147 に答える
5

強力なテキストベースのファイル マネージャmc (Midnight Commander、Norton Commander に昔の DOS 時代を漠然と思い出させます) には、.rpm ファイルと .rpms ファイルを検査して解凍する組み込みの機能があり、.rpm(s) ファイルを「開く」だけです。 mc 内で を選択しますCONTENTS.cpio。rpm の場合はインストール ツリーにアクセスでき、rpm の場合は .spec ファイルとすべてのソース パッケージにアクセスできます。

于 2016-03-16T08:38:16.090 に答える
4

rpmをデバッグ/検査するには、Javaプログラムであるredlineを使用することをお勧めします

使用法 :

java -cp redline-1.2.1-jar-with-dependencies.jar org.redline_rpm.Scanner foo.rpm

ダウンロード: https://github.com/craigwblake/redline/releases

于 2015-06-18T15:03:19.850 に答える
3

NixOS には、 がありrpmextractます。@Alan Evangelista が望んでいたとおり、rpm2cpio のラッパーです。 https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextract

于 2016-04-13T12:59:55.757 に答える
2

少なくとも OpenSuse では、unrpmコマンドはbuildパッケージに付属しています。

適切なディレクトリ (これはアーカイブ爆弾であるため):

unrpm file.rpm
于 2015-12-03T13:38:13.120 に答える
1

.rpm ファイルを別のフォルダーにコピーしてから、次のコマンドを実行します $ yourfile.rpm | cpio-idmv

于 2016-04-21T04:01:45.317 に答える