rpm -i 用于安装新软件包,若已存在则报错;rpm -U 可升级或安装软件包,自动处理旧版本并保留配置。推荐使用 rpm -Uvh 实现灵活安装与升级,注意依赖关系及系统稳定性。

在 Linux 系统中,RPM(Red Hat Package Manager)是一种用于管理软件包的工具,广泛应用于 Red Hat、CentOS、Fedora 等基于 RPM 的发行版。其中 rpm -i 和 rpm -u 是最常用的安装与升级命令。下面详细介绍这两个命令的功能、用法及常见选项。
rpm -i:安装新软件包
rpm -i 用于安装一个尚未存在于系统中的 RPM 软件包。如果该软件包已安装,系统会提示错误并终止安装。
常用语法:rpm -i [选项] package.rpm
常见选项:- -v:显示详细信息
- -h:安装时显示进度条(通常与 -v 搭配使用为 -vh)
- --test:测试安装过程,不实际安装
- --force:强制安装,即使已存在相同版本或文件冲突
- --nodeps:忽略依赖关系检查(不推荐,可能导致问题)
rpm -ivh httpd-2.4.6-97.el7.centos.x86_64.rpm
这条命令会安装 Apache HTTP Server,并显示安装进度和详细信息。
rpm -U:升级或安装软件包
rpm -u(即 rpm --upgrade)用于升级已安装的软件包。如果目标软件包未安装,则会执行全新安装。
常用语法:rpm -U [选项] package.rpm
- 自动处理旧版本的卸载
- 保留配置文件(新版不会覆盖用户修改过的配置)
- 适用于平滑升级场景
- -v 和 -h:同 -i 命令,显示详细信息和进度
- --oldpackage:降级到旧版本(正常情况下不允许降级)
- --replacepkgs:重新安装已存在的包
rpm -Uvh nginx-1.20.1-1.el7.ngx.x86_64.rpm
若系统已有旧版 nginx,则进行升级;若没有,则直接安装。
安装 vs 升级:如何选择?
一般建议:
- 首次安装软件 → 使用 rpm -i
- 更新现有软件 → 使用 rpm -U
虽然 rpm -i 在包未安装时可用,但实际运维中更推荐统一使用 rpm -Uvh,因为它兼具安装和升级功能,操作更灵活,避免重复判断是否已安装。
注意事项
使用 rpm 命令时需注意以下几点:
- 必须提供完整的 .rpm 文件路径(本地或已下载)
- 依赖问题需手动解决,建议配合 yum 或 dnf 使用
- 强制安装(--force)可能破坏系统稳定性,慎用
- 升级前建议备份重要配置文件
基本上就这些。掌握 rpm -i 和 -U 的区别与用法,能更有效地管理 RPM 包。对于现代系统,虽多用高级包管理器,但在离线环境或脚本中,直接使用 rpm 仍非常实用。










