RPM软件包管理工具使用详解

1.RPM概述

1.1 RPM Package Manager

  • 由 Red Hat 公司提出,被众多 Linux 发行版所采用
  • 建立统一的数据库文件
  • 详细记录软件包安装、卸载等变化信息
  • 自动分析软件包依赖关系

1.2 RPM软件包

软件素材参考:http://www.rpm.org

一般命名格式:

2.使用RPM软件包管理命令——rpm

2.1 rpm命令的格式

使用rpm命令能够实现几乎所有对RPM软件包的管理功能,执行“man rpm”命令可以获得关于rmp命令的详细帮助信息,如下:

从rpm命令的手册页信息中可以看出,rpm命令有好多的命令选项,结合这些选项主要可以实现以下三类功能。

  • 查询、验证RPM软件包的相关信息
  • 安装、升级、卸载RPM软件包
  • 维护RPM数据库信息等综合管理操作

下面将分别对上述RPM管理功能中的常见操作进行说明。

2.2 查询RPM软件包信息

使用rpm命令的查询功能可以查看某个软件包是否已经安装,软件包的用途以及软件包的复制到系统中的文件等相关信息,以便更好地管理Linux操作系统中的应用程序。

(1)查询已安装的 RPM 软件信息

rpm  -q[子选项]  [软件名]

  • -qa:显示当前系统中以RPM方式安装的所有软件列表
  • -qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息
  • -ql:显示指定的软件包在当前系统中安装的所有目录、文件列表
  • -qf:查看当前指定的文件或目录是由哪个软件包所安装的

直接执行“rpm –qa”命令将列出当前操作系统中以RPM方式安装的所有软件包清单,如下:

可以结合管道符和“wc -l”命令,可以统计系统中已安装的RPM软件的个数,如下:

当需要查询某个软件包是否已经安装时,可以直接使用软件名称作为查询参数,如下:

如果不知道准确的软件包名称,还可以对全部查询结果进行过滤,如下:

如果想知道已安装的某个软件的用途,可以使用“rpm –qi 软件名”,如下:

当需要查看某个软件包安装的目录和文件清单时,可以使用“-ql”选项,如下:

当需要知道系统中的某一个文件是由哪一个软件生成的时候,可以使用“-qf”,如下:

注意:使用rpm 命令只能查询通过 RPM方式安装的软件包信息用,其他途径安装到系统中的软件包,rpm 命令将无法获取相关信息

(2)查询未安装的 RPM 软件包文件中信息

使用“-qp”选项时,必须以RPM软件包文件的路径作为参数(可以有多个),而不是软件包名称。

  • -qpi: 查看指定软件包的名称、版本、许可协议、用途描述等详细信息
  • -qpl: 显示指定的软件包准备要安装的所有目录、文件列表

若想在安装一个软件之前提前了解该软件的用途,可执行如下操作:

如希望进一步了解该软件中包含哪些文件(安装后将复制到系统中),可执行以下操作:

2.3安装、升级、卸载RPM软件包

  • -i:在当前系统中安装一个新的RPM软件包
  • -e:卸载指定名称的软件包
  • -U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项
  • -F:检查更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装
  • -h:在安装或升级软件包的过程中,以“#”号显示安装进度
  • -v:显示软件安装过程中的详细信息
  • --force:强制安装某个软件包
  • --nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系

(1)安装、升级软件包

如果要升级只需将“-i”换成“-U”即可

(2)卸载软件包

2.4维护RPM数据库

(1)重建RPM数据库

当RPM数据库发生损坏,且Linux操作系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包。这时可以使用rpm命令的“--rebuilddb”或“--initdb”功能对RPM数据库进行重建,具体操作如下:

(2)导入公钥验证

在Linux/Unix应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确保软件的完整性、合法性。对于用户来说,可以利用软件官方提供的公钥文件,自动对下载的软件包进行验证,如果在安装软件时出现验证失败的提示,则表示该软件包可能已经被非法篡改。

向RPM数据库中导入公钥文件时,需要用到“--import”选项。例如,执行以下操作可以把光盘目录中的RPM-GPG-KEY-CentOS-7公钥文件导入RPM数据库中。

猜你喜欢

转载自blog.csdn.net/weixin_42342456/article/details/81638502