linux之rpm详解

rpm常见参数

用法: rpm [选项...]
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错

一、简介

RPM是RedhatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置文件,这样用户就不用重新配置新的软件了。RPM保留一个数据库,这个数据库中包含了所有的软件包的资料,通过这个数据库,用户可以进行软件包的查询。RPM虽然是为Linux而设计的,但是它已经移值到SunOS、Solaris、AIX、Irix等其它UNIX系统上了。RPM遵循GPL版权协议,用户可以在符合GPL协议的条件下自由使用及传播RPM。

 

二、配置

RPM包管理的配置文件是rpmrc,可以使用如下命令进行查找

# locate rpmrc

可以通过如下命令进行查看

rpm --showrc

 

三、功能

1、初始化rpm 数据库功能;
通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;

[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:这个要花好长时间;

注:以上两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题;

[root@localhost beinan]# updatedb

[root@localhost beinan]# locate 软件名或文件名

提示:通过updatedb,我们可以用 locate来查询一些软件安装到哪里了;系统初次安装时要执行updatedb ,每隔一段时间也要执行一次;以保持已安装软件库最新;updatedb 是slocate软件包所有;如果您没有这个命令,就得安装slocate ;

2、RPM软件包管理功能

1)查询功能:

rpm {-q|--query} [select-options] [query-options]

使用实例

1)查询一个已经安装的文件属于哪个软件包

rpm -qf 文件名

2)查询已安装软件包都安装到何处

rpm -ql 软件名
或
rpm rpmquery -ql 软件名

3)查看一下已安装软件的配置文件

rpm -qc 软件名

4)查看一个已经安装软件的文档安装位置

rpm -qd 软件名

5)查看一下已安装软件所依赖的软件包及文件

rpm -qR 软件名

6)查看一件软件包所包含的文件

rpm -qpl 文件名

 

2)软件包的安装、升级、删除

1)常规包安装

-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

2)源码包安装

rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:

rpm --rebuild vim-4.6-4.src.rpm   #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。

详细用法请参考:http://ftp.tsingpost.com/index.php/archives/379/

 

3)网络包安装

# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

4)指定安装目录:要加 -relocate 参数

rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm  #gaim-1.3.0-1.fc4.i386.rpm指定安装在目录: /opt/gaim 中

 

3、导入签名功能

rpm --import 签名文件

4、rpm软件包抽取文件功能

rpm2cpio file.rpm |cpio -div