CentOS Linux rpm命令

rpm是一个类红帽系统的软件管理工具,全名RPM软件包管理器(Redhat Package Manager )。使用RPM可以自动化的升级软件包、搜索某个软件包、校验软件包。

1、查询软件包
rpm -q [选项] [软件包名称]

常用选项:
-a :查询所有安装的软件包。
-i :显示软件包的概要信息。
-l :显示软件包中的文件列表。
-c :显示配置文件列表。
-d :显示文档文件列表。
-s :显示软件包中的文件列表和每个文件状态。
-f <file> :查询属于哪个软件包。
-p <file> :查询某个RPM包内含有的文件。
–import :导入公钥。

举例:
# rpm -qa
查询所有的软件包。

# rpm -qi make
查询make软件包的概要。

# rpm -ql apache
查询apache软件包的文件列表。

2、安装软件包
rpm -i [选项] [软件包名称]

常用选项:
-h :显示安装进度。
-v :显示详细信息。
–force :忽略冲突强制安装。
–nodeps :不检查依赖关系。

举例:
# rpm -ivh /home/server/bind-9.8.1-6.2.x86_64.rpm
安装一个bind软件包,并显示安装进度。

3、升级软件包
rpm -U [选项] [软件包名称]

常用选项:
-h :显示安装进度。
-v :显示详细信息。
–force :忽略冲突强制安装。
–nodeps :不检查依赖关系。

举例:
# rpm -Uvh /home/vim-7.3.338-1.src.rpm
升级vim软件包,并显示安装进度。

4、卸载软件包
rpm -e [选项] [软件包名称]

常用选项:
–nodeps :不检查依赖关系。

举例:
# rpm -e vim-common
卸载vim-common软件包。

5、校验软件包
rpm -V [选项] [软件包名称]

常用选项:
-p <file> :校验软件包文件
-f <file> :校验所属的软件包。
-a :校验所有软件包。
–nodeps :不校验依赖关系。
–nofiles :不校验文件属性。

举例:
# rpm -V sendmail
校验sendmail软件包。

PS:rpm包的弊端就是它的依赖性。rpm包的依赖性据说是这样的,当要安装软件包A时提示先要安装软件包B,当安装软件包B时又提示先要安装软件包C。当装完软件包C和B后装软件包A又提示C的版本不对。。。所以现在都直接用yum命令了。
PS2:一个查找rpm软件包的网站:http://rpmfind.net