结合rpm,rpm2cpio,cpio提取rpm包的特定文件

来源:互联网 发布:java图形界面布局 编辑:程序博客网 时间:2024/04/27 13:55
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://snailwarrior.blog.51cto.com/680306/145588
留着有用
 
昨天不小心把/etc/mail/sendmail.mc修改坏了,又没有备份最原始的文件,于是想到重新从rpm包中提取出来。
 
首先,要确定/etc/mail/sendmail.mc属于哪个rpm包:
[root@pps tmp]# rpm -qf /etc/mail/sendmail.mc
sendmail-8.13.8-2.el5
 
然后从iso安装光碟中提取出sendmail-8.13.8-2.el5.i386.rpm(或者其它方式取得),确认一下sendmail.mc的路径:
[root@pps tmp]# rpm -qlp sendmail-8.13.8-2.el5.i386.rpm | grep sendmail.mc
warning: sendmail-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/etc/mail/sendmail.mc
 
在提取sendmail.mc之前,有必要确认一下它的相对路径:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -t | grep sendmail.mc
2570 blocks
./etc/mail/sendmail.mc
 
好,现在可以放心提取sendmail.mc了:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -idv ./etc/mail/sendmail.mc
./etc/mail/sendmail.mc
2570 blocks
 
【注意】cpio参数后的文件路径"./etc/mail/sendmail.mc"必须和前面查询的相对路径一样,否则提取不成功。
 
cpio参数说明:
-t  列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i  抽取的意思,和"--extract"等同
-d  建立目录,和"--make-directories"等同
-v  冗余信息输出,和"--verbose"等同
 
rpm参数说明:
-q  --query 查询
-l  --list 列出
-f  --file 指定文件
-p --package 指定rpm包
0 0
原创粉丝点击