インストールされていないRPMパッケージ内からも特定のファイルを抽出することができます。
実際にインストールされているRPMとは違うバージョンのRPMの設定ファイルの内容を確認したい場合などに利用できます。
使用するのは、rpm2cpioコマンドとcpioコマンドです。
rpm2cpioコマンドで、RPMパッケージからcpioアーカイブを抽出し、cpioコマンドでcpioアーカイブ内に格納されているファイルを抽出します。
logrotateのRPMパッケージから設定ファイルのみを抽出する場合を例に示します。
①作業ディレクトリを作成し、移動
$ mkdir work
$ cd work
②RPMパッケージのリストを表示
logrotateのパッケージ内に含まれるファイルをリスト表示し、設定ファイルの名前を確認します。
$ rpm2cpio ../logrotate-3.7.8-17.el6.x86_64.rpm | cpio --list ./etc/cron.daily/logrotate ./etc/logrotate.conf ./etc/logrotate.d ./usr/sbin/logrotate ./usr/share/doc/logrotate-3.7.8 ./usr/share/doc/logrotate-3.7.8/CHANGES ./usr/share/doc/logrotate-3.7.8/COPYING ./usr/share/man/man5/logrotate.conf.5.gz ./usr/share/man/man8/logrotate.8.gz ./var/lib/logrotate.status 169 blocks
③特定のファイルのみ抽出
上記②で設定ファイルが”./etc/logrotate.conf”と確認できたので、rpm2cpioコマンドとcpioコマンドを使って設定ファイルを抽出します。
$ rpm2cpio ../logrotate-3.7.8-17.el6.x86_64.rpm | cpio -ivd ./etc/logrotate.conf ./etc/logrotate.conf 169 blocks $ ls etc $ ls etc logrotate.conf
上記のように”etc/logrotate.conf”が抽出されされました。