rpm命令是centos、rhel、fedora等rpm系系统管理本地.rpm包的核心工具,不联网、不自动解决依赖,但控制精准、响应直接;支持查询(-q)、安装(-i)、卸载(-e)、升级(-u)等关键操作,需root权限执行安装卸载升级,查询无需权限。

rpm命令是CentOS、RHEL、Fedora等系统管理本地.rpm包的核心工具,不联网、不自动解决依赖,但控制精准、响应直接。掌握几个关键参数组合,就能完成日常绝大多数软件包操作。
查:快速确认软件状态和归属
查询不需要root权限,适合普通用户快速验证环境:
-
rpm -qa:列出所有已安装的软件包,结果较长时可加
| grep 关键词筛选,比如rpm -qa | grep nginx -
rpm -q 软件名:检查某个包是否已安装,例如
rpm -q httpd;若未安装,会提示“package httpd is not installed” -
rpm -ql 软件名:显示该包安装了哪些文件,便于定位配置路径或二进制位置,如
rpm -ql vim-enhanced -
rpm -qf /路径/文件:反向查询——某个系统文件属于哪个包,比如
rpm -qf /usr/bin/yum返回yum-4.10.0-1.el8.noarch
装:安装本地.rpm文件
安装必须用root权限(sudo),且需提供完整.rpm文件名(不是软件名):
-
rpm -ivh 包名.rpm:最常用组合。
-i表示安装,-v显示详细过程,-h以#号显示进度条 - 遇到依赖缺失时,rpm会明确报错,例如
error: Failed dependencies: libcurl >= 7.29.0 is needed by xxx,此时不能强行跳过,应优先用yum install libcurl或dnf install libcurl补齐依赖 - 慎用
--force和--nodeps:它们会绕过冲突检测与依赖检查,可能导致服务异常或系统不稳定
卸:干净移除已安装软件
卸载操作同样需要root权限,注意传入的是软件包名,不是.rpm文件名:
-
rpm -e 软件名:例如
sudo rpm -e nginx,而非nginx-1.24.0-1.el7.x86_64.rpm - 若被其他包依赖,rpm会阻止卸载并提示类似
error: Failed dependencies: nginx is needed by webserver-config;此时应先评估影响,或改用yum remove nginx让依赖管理器自动处理关联项 - 确需强制卸载(如清理残留测试包),可用
rpm -e --nodeps 软件名,但之后需手动检查相关服务是否仍能正常运行
升:更新已有软件版本
升级命令既能更新旧版,也能安装新包(当系统中尚无该包时):
-
rpm -Uvh 新包名.rpm:推荐方式。
-U表示upgrade,会自动替换旧版本文件、保留原配置(除非新包明确覆盖) - 区别于
-Fvh(freshen):后者只升级已安装的包,若目标包未安装则忽略,不触发安装动作 - 升级前建议先用
rpm -q 软件名确认当前版本,再比对.rpm包中的版本号,避免降级或架构不匹配(如x86_64包装在aarch64系统上会失败)











