请注意,这里提到的所有事例都已在中兴新支点操作系统上进行了测试。中兴新支点操作系统是一个致力于为全球用户提供美观易用,基于Linux开发的自主、可控、安全的国产操作系统。
Linux rpm命令
rpm是一个功能十分强大的软件包管理系统,它使Linux下安装、升级和删除软件包的工作变得简单容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。
本章例子都以net-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm代表软件包名称。
以下以问答的方式让您更好了解rpm的工作原理。
Q1、如何使用rpm命令安装、升级和更新软件包?
首先我们要先了解rpm的基本用法,rpm 的常规使用方法为 rpm -? net-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm,其中 -? 为操作参数。
使用下面三个参数安装、升级和更新软件包:
1. rpm -i 安装一个新的软件包
2. rpm -U 升级一个软件包,如果系统中原来不存在,就进行安装
3. rpm -F 更新一个软件包,如果系统中原来不存在,就不进行安装
经常和这几个参数配合使用的参数包括:
1. -v 查看安装过程中的各种信息
2. -h 在安装过程中显示进度条
以上参数有些需要组合使用,比如说 rpm -h net-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm是没有意义的,但 rpm -ih net-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm即表示安装net-snmp-libs并用 # 符显示安装进度。
安装 rpm包,同时显示安装信息和进度条
# rpm -ivhnet-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm

升级 rpm 包命令,同时显示安装信息和进度条
# rpm -Uvhnet-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm
在该步骤中如果使用 -i 则系统通常会报文件冲突错误,无法正常安装。
Q2、如何删除软件包?
如果您想要删除软件包,则可以使用-e 命令行选项在系统中卸载软件。
卸载 rpm 包命令,同时显示安装信息:
# rpm -ev net-snmp-libs
§ 警告:删除时使用的是软件名,而不是软件包的全称。
Q3、如何使用rpm查询系统中已经安装的rpm 包?
1、列出用户已经安装的rpm包清单
如果想查询系统中所有已经安装的rpm包,使用rpm -qa即可输出所有己安装rpm 包的列表。
# rpm -qa
如果是查看某个已经安装的软件包,则使用rpm -q net-snmp-libs命令。
# rpm -q net-snmp-libs
2、查看一个rpm 包中包括的文件
想要查看某个软件包中包含的文件清单,有下面两种方法:
如果是未安装的软件包,则使用:
# rpm -qlp net-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm
如果是已安装的软件包,请使用:
# rpm -ql net-snmp-libs
3、确定某个文件属于哪个rpm 包
如果遇到了一个不认识的文件,要找出它属于哪个软件包,则首先记录这个文件的完整路径(绝对路径),然后输入以下命令:
# rpm -qf filename
4、查询rpm 包的用途
用户可以在安装或使用时查询每个软件包的用途、版本及其它信息,使用如下的命令完成查询:
# rpm -qip net-snmp-libs-5.7.2-28.el7_4.1.x86_64.rpm
Q4、如何验证
验证一个软件包,就是比较原始包和已安装软件包中文件的信息。具体来说,这些信息包括每个文件的大小、MDS校验和、访问许可权、类型以及所属的用户和组等。
使用命令rpm -V可以验证一个包,下面是常用的几种情况:
1、验证包含某个特殊文件的软件包
# rpm -Vf filename

2、验证所有己安装的软件包
# rpm -Va
Q5、如何获得关于rpm的帮助?
--help命令行选项是rpm为该工具生成有用的用法相关信息。
# rpm --help
总结
本文以中兴新支点操作系统为例,基于命令行操作,介绍了 Linux 系统中两大常用软件包管理工具之一rpm。上面介绍是几个常用的rpm命令,关于rpm工具的更多资源,请参看相关的man手册页。