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

jackxiang 2010-6-14 13:00 | |
结合rpm,rpm2cpio,cpio提取rpm包的特定文件:


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包

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/StamHe/archive/2009/12/25/5072392.aspx

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3187/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2018-7-19 17:39
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]