从RPM包中提取文件

要从rpm包中提取一个配置文件可以使用rpm2cpio和cpio命令完成。系统为CentOS6.2。

rpm2cpio命令和cpio命令都是系统默认支持的命令。rpm2cpio命令是将一个rpm包转换成cpio档案格式显示在标准输出中(可保存为.cpio文件),cpio文件是UNIX系统下的一个打包格式,然后用cpio命令解压.cpio文件,最后提取出需要的文件。

以mytop-1.7-3.el6.noarch.rpm为例:

rpm2cpio mytop-1.7-3.el6.noarch.rpm > mytop.cpio
cpio -idmv < mytop.cpio

显示释放了usr目录:

./usr/bin/mytop
./usr/share/doc/mytop-1.7
./usr/share/doc/mytop-1.7/Changes
./usr/share/doc/mytop-1.7/README
./usr/share/man/man1/mytop.1.gz
137 blocks

参数说明:
-i:从文档中提取文件
-d:保持内部文件的目录
-m:创建文件时保持文件修改的时间(时间戳)
-v:显示处理进度

以上也可写成一句命令:
rpm2cpio mytop-1.7-3.el6.noarch.rpm | cpio -idmv

最后提取自己需要的文件就可以了。