RPM全称为Red Hat Package Manager,是Linux系统中广泛使用的软件包管理工具,最初由Red Hat公司开发,现在已经成为很多Linux发行版的标准软件管理组件,常见的CentOS、Fedora等系统都默认支持RPM工具。

RPM工具的核心作用
RPM工具的核心功能是管理以.rpm为后缀的软件包,这类软件包已经提前完成了编译和打包,包含了软件的二进制文件、配置文件、依赖说明等信息,用户不需要手动编译源码就能快速部署软件。它主要可以实现以下几个核心功能:
- 安装新的软件包,自动将软件文件部署到系统对应目录
- 卸载已经安装的软件包,清理相关文件
- 查询已安装软件包的信息,包括版本、安装时间、包含的文件等
- 升级已有软件包到更高版本,保留原有配置
- 校验软件包的完整性,检查文件是否被篡改
RPM工具常用命令
1. 安装软件包
安装RPM包需要使用-i参数,通常搭配-v显示详细过程和-h显示进度条,完整命令如下:
# 安装当前目录下的nginx RPM包 rpm -ivh nginx-1.20.1-1.el7.x86_64.rpm
2. 查询软件包信息
查询已安装的软件包可以使用-q参数,搭配不同子参数可以获取不同信息:
# 查询某个软件包是否安装 rpm -q nginx # 查询已安装软件包的详细信息 rpm -qi nginx # 查询软件包包含的所有文件 rpm -ql nginx # 查询某个文件属于哪个RPM包 rpm -qf /etc/nginx/nginx.conf
3. 卸载软件包
卸载软件包使用-e参数,命令格式如下:
# 卸载nginx软件包 rpm -e nginx
4. 升级软件包
升级软件包使用-U参数,如果软件未安装会直接执行安装操作:
# 升级nginx到新版本 rpm -Uvh nginx-1.22.0-1.el7.x86_64.rpm
RPM工具的局限性
RPM工具本身不会自动处理软件依赖关系,如果安装某个软件包需要依赖其他未安装的库,RPM会直接提示依赖缺失并终止安装,需要用户手动先安装所有依赖包。如果需要自动处理依赖,可以搭配yum或者dnf这类上层包管理工具使用,它们底层也是基于RPM实现,会自动解析并安装所需依赖。
RPM包的结构说明
一个标准的RPM包通常包含以下几个部分:
| 组成部分 | 说明 |
|---|---|
| 元数据 | 包含软件名称、版本、发布号、架构、依赖关系、描述信息等 |
| 文件内容 | 软件运行所需的二进制文件、配置文件、文档等实际文件 |
| 脚本 | 安装前、安装后、卸载前、卸载后需要执行的脚本,用于完成初始化或清理操作 |
如果需要查看RPM包的详细信息而不安装,可以使用-qpi参数查看包元数据,使用-qpl参数查看包包含的文件列表:
# 查看未安装的RPM包信息 rpm -qpi nginx-1.20.1-1.el7.x86_64.rpm # 查看未安装的RPM包包含的文件 rpm -qpl nginx-1.20.1-1.el7.x86_64.rpm