RPM包校验和提取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPM包校验和提取相关的知识,希望对你有一定的参考价值。
一、RPM包校验
[[email protected] Packages]# rpm -V 已安装的包名
#选项:
#????-V????校验指定RPM包中的文件(verify)
[[email protected] Packages]# vim /etc/httpd/conf/httpd.conf????????---> 对包的配置文件进行修改
[[email protected] Packages]# rpm -V httpd????????????????????---> 对修改后的包再次进行校验(无变化,无提示)
S.5....T. c /etc/httpd/conf/httpd.conf
验证内容中的8个信息的具体内容如下:
S????文件大小是否改变
M????文件的类型或文件的权限(rwx)是否变改变
5????文件MD5校验和是否改变(可以看作文件内容是否改变)
D????装置的主/次代码已经改变
L????Link路径已被改变
U????文件的所属人已被改变
G????文件的所属群组已被改变
T????文件的创建时间忆被改变
文件类型:
c????配置文件(config file)
d????普通文件(documentation)
g????"鬼"文件(ghost file),很少发生,通常是指该文件不被软件包所包含
l????授权文件(license file)
r????描述文件(read me)
二、RPM包中文件提取
[[email protected] testuser]# rpm -qf /usr/bin/ls????????????---> 查询文件所属的包
coreutils-8.22-11.el7.x86_64
[[email protected] testuser]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-11.el7.x86_64.rpm | cpio -t | grep /usr/bin/ls
#????---> 查询文件的相对路径
./usr/bin/ls
28552 blocks
[[email protected] testuser]# pwd????????????????---> 查看当前位置
/home/testuser
[[email protected] testuser]# ll????????????????---> 查看当前目录下的文件
total 0
[[email protected] testuser]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-11.el7.x86_64.rpm | cpio -idv ./usr/bin/ls
#????---> 将所需要的文件从文件所属的包中提取到当前目录下
./usr/bin/ls
28552 blocks
[[email protected] testuser]# ll????????????????---> 查看当前目录,文件是否提取成功
total 0
drwxr-xr-x. 3 root root 16 Mar 2 09:19 usr????????????---> 此目录出现,说明文件提取成功
[[email protected] testuser]# cd usr/bin/????????????---> 进入目录
[[email protected] bin]# ll????????????????????---> 查看目录下是否有指定提取的文件
total 116
-rwxr-xr-x. 1 root root 117616 Mar 2 09:19 ls????????---> 指定文件提取成功
?
#将需要恢复的文件提取成功之后,将文件复制到对应的目录下即可。
【注意】cpio参数后的文件路径"./usr/bin/ls"必须与前面查询出来的相对路径"./usr/bin/ls"一样,否则提取不成功
?
cpio参数说明:
????-t????列出的意思,和"--list"等同,此时列出的是"相对路径"
????-I????抽取的意思,和"--extract"等同
????-d????建立目录的意思,和"--make-directories"等同
????-v????冗余信息输出,和"--verbose"等同
?
?
?
?
以上是关于RPM包校验和提取的主要内容,如果未能解决你的问题,请参考以下文章