rpm 包管理器常用用法详解
时间:2014-09-17 19:04 来源:linux.it.net.cn 作者:it
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参数说明:
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
rpm参数说明:
-q --query 查询
-l --list 列出
-f --file 指定文件
-p --package 指定rpm包
2. rpm 数据库修复的方法
第一种方法:
当进行包安装、升级、卸载等操作时,可能损坏RPM DB,需要通过--rebuild参数来修复RPM DB,但有时会碰到这样的问题:
复制代码代码如下:
[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.* 的文件
rm -fr /var/lib/rpm/__db*
然后再运行 rpm -v --rebuilddb 即可.
第二种方法 :
复制代码代码如下:
# cd /var/lib
# mv rpm rpm.old
# mkdir rpm
# rpmdb --initdb
# cp rpm.old/Packages rpm
# rpmdb --rebuilddb
以上2中方法都可以修复rpm db,请参考使用!
(责任编辑:IT)
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,请参考使用! |