rpm2cpio | cpio -idv
rpm -qf /bin/ls # 查询 ls 命令属于哪个软件包 mv /bin/ls/tmp/ # 造成 ls 命令误删除假象 rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls # 提取 RPM 包中 ls 命令到当前目录的 /bin/ls 下 cp /root/bin/ls /bin/ # 把 ls 命令复制回 /bin/ 目录,修复文件丢失
[root@localhost ~]# cpio 选项 < [文件|设备]
选项:
-i:copy-in 模式,还原
-d:还原时自动新建目录
-v:显示还原过程
2、RPM 包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径
-rpm2cpio
#将 rpm 包转换为 cpio 格式的命令
-cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
文件类型
C 配置文件(config file)
d 普通文档(documentation)
g “鬼”文件(ghostfile),很少见,就是该文件不应该被这个 RPM 包包含
L 授权文件(license file)
r 描述文件(read me)
验证内容中的 8 个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件 MD5 校验和是否改变(可以看成文件内容是否改变)
D 设备的主从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
1、RPM 包校验
rpm -V 已安装的包名
选项:
-V 校验指定 RPM 包中的文件(verify)
使用rpm修复文件丢失的问题,具体操作看截图
从RPM包中提取文件,比如我们的安装的rpm软件包中的文件删除了,可以通过提取RPM包中的文件来进行恢复。
使用的命令有两个
第一个命令是rpm2cpio ,它的作用是将rpm包转换为cpio格式的命令
第二个命令是cpio , 它是一个标准的工具,主要用于从文档文件中提取文件。
说概念感觉比较复杂,实地操作一遍就清楚了
使用cpio命令还原文件
在使用rpm校验rpm软件包时,会显示哪些文件会有变化,文件类型是什么。不同类型的文件意义会不一样,具体有哪些类型的文件,我们可以看截图
MD5校验和有什么作用?
主要的作用就是通过文件的MD5校验和,可以查看文件内容是否修改过,如果修改过,那么前后文件MD5校验和不一致,说明文件有丢包,被篡改等情况出现。
使用rpm命令验证rpm包内容是否进行了修改。
rpm -V gcc
验证内容有8个信息的具体内容展示,具体内容可以看截图
我用的centos版本,还有里面的rpm包和你的是一样的。我也遇到了和你同样的问题。
原因出在:这个coreutils包下的ls文件不在/bin/ls路径下,而是在/usr/bin/ls下。
所以rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-15.el7.x86_64.rpm|cpio -idv ./bin/ls
这条命令根本就没有解压出来,应该写成
rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-15.el7.x86_64.rpm|cpio -idv ./usr/bin/ls
这样就好了
rpm 提取文件 例子 :/bin/ls
注意当前操作目录
cpio选项
RPM包文件提取
RPM校验 文件类型
rpm包校验 命令和 验证内容
rpm -V 包名
cpio -idv ./bin/ls 其中'.'表示提取到当前目录 /bin/ls 表示要提取的文件
RPM包中文件提取
检验码里的文件类型
检验码还搞的这么专业
RPM包中文件提取
#RPM包校验
RPM -V [已安装的包名]
rpm2cpio 包全名 | cpio -idv.文件绝对路劲
-rpm2cpio 将rpm包转换为cpio格式的命令
-cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
rpm -V 包名
验证文件有没有被修改 S.M.5.D.L.U.G.T c(文件类型)
rpm -V显示文件类型
rpm -V 校验8个内容
模拟重要系统文件的误删恢复过程