rpm是很多linux发行版使用的包管理器。本文将简单总结下其常用方法。 1. 使用rpm2cpio,cpio提取rpm包的中的特定文件 有些时候,我们需要提取rpm包中的一些文件,通过如下方法可以快速提取 首先查询rpm包中的文件
复制代码代码如下:
[root@taotips ~]# rpm -qpl anaconda-11.4.1.62-1.src.rpm
anaconda-11.4.1.62.tar.bz2 anaconda.spec 我们需要提取 anaconda-11.4.1.62.tar.bz2 这个文件,执行下面的命令,提取到当前目录
复制代码代码如下:
rpm2cpio anaconda-11.4.1.62-1.src.rpm | cpio -idv anaconda-11.4.1.62.tar.bz2
注意: cpio参数后的文件路径 "anaconda-11.4.1.62.tar.bz2" 必须和前面查询的相对路径一样,否则提取不成功。 相关知识说明
复制代码代码如下:
cpio参数说明:
rpm参数说明:
2. rpm 数据库修复的方法
复制代码代码如下:
[root@taotips lib]# rpm -v --rebuilddb
rpmdb: fatal region error detected; run recovery error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index
此时需要手动删除/var/lib/rpm目录下的类似 __db.* 的文件 第二种方法 :
复制代码代码如下:
# cd /var/lib
# mv rpm rpm.old # mkdir rpm # rpmdb --initdb # cp rpm.old/Packages rpm # rpmdb --rebuilddb 以上2中方法都可以修复rpm db,请参考使用! |