RPMパッケージからファイルを取り出す
RPMパッケージの中から1つのファイルだけが欲しい!と言う事が(滅多に無いが極たまに)ある。そんな時はこの方法。
RPMパッケージはcpio形式で圧縮されているファイルのようだ。cpioファイルに変換してしまえば後は思うがまま。
[worker@CentOS-5.2 ~]$ rpm2cpio postgresql-server-8.1.11-1.el5_1.1.i386.rpm > postgresql-server-8.1.11-1.el5_1.1.i386.cpio
だが、cpioファイルにするまでもなく『|』を使う方法もある。
[worker@CentOS-5.2 ~]$ rpm2cpio postgresql-server-8.1.11-1.el5_1.1.i386.rpm | cpio --list :
これで該当RPMパッケージにどんなファイルが同梱されているかがわかる。これは下記コマンドと同等か。
[worker@CentOS-5.2 ~]$ rpm -qlp postgresql-server-8.1.11-1.el5_1.1.i386.rpm
取り出したいファイル名がわかればあとは簡単。
もっと簡単な方法があるのかもしれないけど、cpioコマンドをほとんど使わない自分はここまでしかわからなかった。
[worker@CentOS-5.2 ~]$ rpm2cpio postgresql-server-8.1.11-1.el5_1.1.i386.rpm | cpio -id '*postgresql'
これで『postgresql』で終わっているファイル(パス含む)が解凍される。
改善できればなぁというのが下記の内容
上記2点を改善できるcpioコマンドマスターのかた教えてください♪