当前位置:首页>Linux>Linux RPM软件包管理 完整实操教程(rpm命令全解)

Linux RPM软件包管理 完整实操教程(rpm命令全解)

  • 2026-10-22 16:13:37
Linux RPM软件包管理 完整实操教程(rpm命令全解)

技术弄巷

读完仅需

5
分钟

记得星标公众号

在CentOS/RHEL等红帽系列Linux系统中,RPM是最基础且核心的软件包管理方式,也是运维人员必备的基础技能。RPM软件包安装简单、操作便捷,无需编译源码即可快速部署软件,和源码包相比省去了复杂的编译步骤,极大提升软件安装效率。本文将详细讲解RPM软件包的基础介绍、rpm命令的安装/查询/卸载全套实操,包含参数详解与实操案例,所有内容无冗余、可直接复制粘贴使用,零基础也能轻松上手。

一、Linux软件安装包介绍

1、Linux系统两种主流软件包类型

  • RPM软件包
    :后缀为 .rpm,特点是安装简单、无需编译,一键完成部署,适配红帽系(CentOS、RHEL)系统,是生产环境首选。
  • 源码软件包
    :后缀为 .tar.gz、.tar.bz2,特点是安装复杂、需要编译,但灵活性极高,可自定义编译参数,适配所有Linux发行版。

2、RPM软件包命名规则解析

RPM软件包的文件名包含完整的软件信息,命名格式规范统一,示例:zlib-1.2.7-18.el7.x86_64.rpm

  • 第一部分:zlib→ 软件名
  • 第二部分:1.2.7-18→ 软件版本号及发布版本
  • 第三部分:el7→ 适配的系统版本(el7=CentOS7/RHEL7)
  • 第四部分:x86_64→ 软件对应的系统平台(64位系统)
  1. # 挂载系统镜像光盘,获取镜像内自带的RPM软件包(系统光盘是RPM包的常用来源)
  2. [root@localhost ~]# mount /dev/sr0 /mnt/
  3. mount:/dev/sr0 写保护,将以只读方式挂载
  4. # 查看镜像中所有的RPM软件包,所有包均存放在/mnt/Packages/目录下
  5. [root@localhost ~]# ls /mnt/Packages/

二、RPM软件包核心管理操作(rpm命令 全实操+注释)

rpm是管理RPM软件包的专属命令,支持软件的安装、查询、卸载等所有操作,所有参数固定、命令可直接复用,以下是全功能实操。

1、安装软件:rpm -ivh 软件包名称(核心命令)

  1. # 安装命令完整格式:rpm -ivh 软件安装包完整名称/路径
  2. # 命令参数含义:
  3. # i :install,核心参数,代表安装软件
  4. # v :verbose,显示软件的详细安装过程
  5. # h :hash,以#号的形式实时显示软件的安装进度条
  6. # ========== 实操1:安装dhcp软件包 ==========
  7. [root@localhost ~]# rpm -ivh /mnt/Packages/dhcp-4.2.5-82.el7.centos.x86_64.rpm 
  8. 警告:/mnt/Packages/dhcp-4.2.5-82.el7.centos.x86_64.rpm:头V3 RSA/SHA256 Signature,密钥 ID f4a80eb5: NOKEY
  9. 准备中...################################# [100%]
  10. 正在升级/安装...
  11. 1:dhcp-12:4.2.5-82.el7.centos################################# [100%]
  12. # ========== 实操2:安装bind软件包 ==========
  13. [root@localhost ~]# rpm -ivh /mnt/Packages/bind-9.11.4-26.P2.el7.x86_64.rpm 
  14. 警告:/mnt/Packages/bind-9.11.4-26.P2.el7.x86_64.rpm:头V3 RSA/SHA256 Signature,密钥 ID f4a80eb5: NOKEY
  15. 准备中...################################# [100%]
  16. 正在升级/安装...
  17. 1:bind-32:9.11.4-26.P2.el7################################# [100%]
  18. # ========== 实操3:安装httpd软件包(含解决依赖报错) ==========
  19. # 直接安装出现依赖检测失败,提示缺少依赖包,无法完成安装
  20. [root@localhost ~]# rpm -ivh /mnt/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm 
  21. 警告:/mnt/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm:头V3 RSA/SHA256 Signature,密钥 ID f4a80eb5: NOKEY
  22. 准备中...################################# [100%]
  23. 错误:依赖检测失败:
  24. /etc/mime.types 被 httpd-2.4.6-95.el7.centos.x86_64 需要
  25.     httpd-tools =2.4.6-95.el7.centos被 httpd-2.4.6-95.el7.centos.x86_64 需要
  26. # 加--nodeps参数强制安装,忽略所有依赖检测(强制安装,解决依赖报错)
  27. [root@localhost ~]# rpm -ivh --nodeps /mnt/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm 
  28. 警告:/mnt/Packages/httpd-2.4.6-95.el7.centos.x86_64.rpm:头V3 RSA/SHA256 Signature,密钥 ID f4a80eb5: NOKEY
  29. 准备中...################################# [100%]
  30. 正在升级/安装...
  31. 1:httpd-2.4.6-95.el7.centos################################# [100%]

2、查询软件:rpm 各类查询参数(最常用,重中之重)

  1. # ========== 子功能1:查询指定软件是否已安装 格式:rpm -q 软件名 ==========
  2. # 查询dhcp软件,显示完整包名,代表已安装
  3. [root@localhost ~]# rpm -q dhcp
  4. dhcp-4.2.5-82.el7.centos.x86_64
  5. # 查询samba软件,提示"未安装软件包",代表未安装
  6. [root@localhost ~]# rpm -q samba 
  7. 未安装软件包 samba 
  8. # 拓展查询命令(实用)
  9. # rpm -qa :查询系统中已安装的所有RPM软件包(输出内容较多)
  10. # rpm -qa | grep "dhcp" :过滤查询,只显示包含dhcp关键字的已安装软件
  11. # ========== 子功能2:查询系统文件对应的所属软件包 格式:rpm -qf 文件绝对路径 ==========
  12. # 先通过which命令查询命令对应的绝对路径
  13. [root@localhost ~]# which vim
  14. /usr/bin/vim
  15. # 查询该文件由哪个RPM软件包安装生成
  16. [root@localhost ~]# rpm -qf /usr/bin/vim
  17. vim-enhanced-7.4.629-7.el7.x86_64
  18. # ========== 子功能3:查询指定软件安装后生成的所有文件 格式:rpm -ql 软件名 ==========
  19. # rpm -ql coreutils
  20. # ========== 补充:重复验证软件是否安装 ==========
  21. # rpm -qa dhcp

3、卸载软件:rpm -e 软件名(核心命令)

  1. # 卸载命令完整格式:rpm -e 软件名 (只需写软件名,无需写完整包名和版本)
  2. # 命令参数含义:e :erase,代表卸载、移除软件
  3. # 第一步:先查询要卸载的软件是否已安装,确认软件名
  4. [root@localhost ~]# rpm -q dhcp
  5. dhcp-4.2.5-82.el7.centos.x86_64
  6. # 第二步:执行卸载操作
  7. [root@localhost ~]# rpm -e dhcp
  8. # 第三步:验证卸载结果,查询软件已无安装信息,代表卸载成功
  9. [root@localhost ~]# rpm -q dhcp
  10. 未安装软件包 dhcp 
  11. # 拓展卸载命令:强制卸载忽略依赖 格式:rpm -e --nodeps 软件名
  12. # rpm -e --nodeps coreutils

最新文章

随机文章