インストールせずにRPMパッケージ内から特定のファイルを抽出

実際にインストールされているRPMとは違うバージョンのRPMの設定ファイルの内容を確認したい場合などに有効な方法かと思います。

使用するのは、rpm2cpioコマンドとcpioコマンドです。
 
rpm2cpioコマンドで、RPMパッケージからcpioアーカイブを抽出し、cpioコマンドでcpioアーカイブ内に格納されているファイルを抽出します。
 
logrotateのRPMパッケージから設定ファイルのみを抽出する場合を例に示します。
 
1)作業ディレクトリを作成し、移動
 
$ mkdir work
$ cd work

 
2)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

  
3)特定のファイルのみ抽出
 
上記2)で設定ファイルが”./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”が抽出されされました。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です