rpm

rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。

概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。
1)安装:-i, --install
2)升级:-U, --update, -F, --freshen
3)卸载:-e, --erase
4)查询:-q, --query
5)校验:-V, --verify
6)数据库维护:–builddb, --initdb

语法

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:详细显示指令执行过程,便于排错。
–nodeps:忽略依赖关系

常用实例

使用rpm命令安装软件包,首先需要先挂载系统光盘

[root@linus ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载

在/mnt目录下的Packages目录,就是系统的软件仓库,转到其目录下即可使用rpm进行软件安装

[root@linus ~]# ls /mnt/
CentOS_BuildTag  images    repodata
EFI              isolinux  RPM-GPG-KEY-CentOS-7
EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing
GPL              Packages  TRANS.TBL

使用rpm安装软件包,需要解决复杂的依赖关系,只能根据提示安装组件,或者选择忽略依赖关系安装。
例1:安装httpd软件包的依赖关系

[root@linus Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm 
警告:httpd-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
	/etc/mime.types 被 httpd-2.4.6-67.el7.centos.x86_64 需要
	httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要

例2:忽略依赖关系安装httpd软件包

[root@linus Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm --nodeps 
警告:httpd-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:httpd-2.4.6-67.el7.centos        ################################# [100%]

例3:查看软件包是否安装

[root@linus /]# rpm -qa httpd
httpd-2.4.6-67.el7.centos.x86_64

例4:获得httpd软件包全名

[root@linus Packages]# rpm -q httpd
httpd-2.4.6-67.el7.centos.x86_64

例5:移除软件包

[root@linus /]# rpm -e httpd
[root@linus /]# rpm -qa httpd	#再次查看,软件包已不存在