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

インストールされていない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”が抽出されされました。

関連記事の目次

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください