rpmファイルの中身を取り出す

潟若若菴遵

[CentOS]

はじめに

CentOS/SuSE系では、RPMパッケージが利用されていますが、rpmパッケージをインストールすることなく、その中身を取り出す方法です。

ファイルの中身の確認

rpm2cpio と cpio コマンドを利用します。

$ rpm2cpio webalizer-2.23_08-1.el7.nux.src.rpm | cpio --list
webalizer-2.21-02-underrun.patc 
webalizer-2.23-05-confuser.patch
webalizer-2.23-05-groupvisit.patch
webalizer-2.23-05-src.tgz
webalizer-httpd.conf
webalizer.conf
webalizer.cron
webalizer.spec
webalizer.sysconfig
1137 blocks

ファイルの取り出し方

同じく rpm2cpio と cpio コマンドを利用します。

$ rpm2cpio webalizer-2.23_08-1.el7.nux.src.rpm | cpio -id
1137 blocks

展開途中にファイル名を表示させたいなら "-v" を追加します

$ rpm2cpio webalizer-2.23_08-1.el7.nux.src.rpm | cpio -vid
webalizer-2.21-02-underrun.patch
webalizer-2.23-05-confuser.patch
webalizer-2.23-05-groupvisit.patch
cpio: webalizer-2.23-05-src.tgz not created: newer or same age version exists
webalizer-2.23-05-src.tgz
webalizer-httpd.conf
webalizer.conf
webalizer.cron
webalizer.spec
webalizer.sysconfig
1137 blocks

これでファイルが取り出せました。

$ ls
webalizer-2.21-02-underrun.patch     webalizer-httpd.conf
webalizer-2.23-05-confuser.patch     webalizer.conf
webalizer-2.23-05-groupvisit.patch   webalizer.cron
webalizer-2.23-05-src.tgz            webalizer.spec
webalizer-2.23_08-1.el7.nux.src.rpm  webalizer.sysconfig