当前位置: 首页 > news >正文

Linux软件包管理完全指南

🐧 Linux 软件包管理完全指南:从 RPM 到 YUM

📅 发布时间:2026-07-28
🏷️ 标签:LinuxRPMYUM软件包管理CentOS运维
💡 适用系统:RHEL / CentOS 7 / Rocky / AlmaLinux 等 RPM 系发行版


📋 目录

  • 一、软件包管理概述
  • 二、RPM 包深度解析
    • 2.1 RPM 包文件名格式
    • 2.2 RPM 包的组成
    • 2.3 RPM 包安装与更新原则
  • 三、rpm 命令实战
    • 3.1 查询操作(重点)
    • 3.2 验证操作
    • 3.3 安装与卸载
    • 3.4 提取 RPM 包中的文件
  • 四、YUM 包管理器
    • 4.1 YUM 常用命令
    • 4.2 软件包组管理
    • 4.3 YUM 历史记录
  • 五、总结

一、软件包管理概述

在 Windows 中,我们习惯通过控制面板 → 程序和功能来管理软件,或者直接从官网下载.exe安装包。而在 Linux 世界中,软件包管理同样至关重要。

Linux 两大包管理体系

体系发行版包格式管理工具
RPM 系RHEL、CentOS、Fedora、Rocky.rpmrpmyumdnf
DEB 系Debian、Ubuntu、Kali.debdpkgapt

📌本文聚焦 RPM 系,以 CentOS 7 为主要实践环境。


二、RPM 包深度解析

2.1 RPM 包文件名格式

RPM 软件包文件名遵循严格的命名规范:

name-version-release.architecture.rpm

示例lrzsz-0.12.20-36.el7.x86_64.rpm

字段含义示例
name软件名称lrzsz
version原始软件版本号0.12.20
release发行版号(由打包商设置)36.el7
architecture处理器架构x86_64

常见架构标识

  • noarch:不限制架构(如纯脚本、文档包)
  • x86_64:64 位 x86 架构
  • aarch64:ARM 64 位架构

2.2 RPM 包的组成

每个 RPM 包包含三个核心部分:

  1. 待安装的文件:二进制、配置文件、文档等
  2. 元数据信息:名称、版本、依赖关系、许可证、变更日志
  3. 脚本:安装、更新、卸载时自动执行的脚本

🔐数字签名:软件提供商使用 GPG 私钥对 RPM 包签名,客户端用公钥验证,确保包未被篡改。

2.3 RPM 包安装与更新原则

  • 版本原则:同一软件通常只能装一个版本,kernel 是例外(可装多个,方便回滚)
  • 升级策略:直接安装最新版即可,无需逐步升级
  • 配置保留:升级 RPM 包时,配置文件通常会被保留

三、rpm 命令实战

rpm是底层包管理工具,不自动解决依赖,适合查询和验证。

3.1 查询操作(重点)

# 查询系统中所有已安装的包rpm-qa# 查询某个包是否已安装rpm-qhttpd# 查询已安装包的详细信息rpm-qcoreutils-i# 查询已安装包包含哪些文件rpm-qopenssh-server-l# 查询已安装包包含哪些配置文件rpm-qopenssh-server-c# 查询已安装包包含哪些文档rpm-qopenssh-server-d# 查询某个文件属于哪个包rpm-qf/etc/ssh/sshd_config# 查询已安装包的安装/卸载脚本rpm-qopenssh-server--scripts# 查询未安装的 rpm 包文件信息rpm-qphttpd-2.4.6.x86_64.rpm-c

3.2 验证操作

# 验证已安装包的完整性rpm-Vopenssh-server

验证结果解读

  • S= 文件大小改变
  • M= 模式/权限改变
  • 5= MD5 校验值改变
  • T= 文件修改时间改变
  • c= 配置文件
# 示例:修改 sshd 配置后验证sed-i's/PermitRootLogin yes/PermitRootLogin no/g'/etc/ssh/sshd_configrpm-Vopenssh-server# 输出:S.5....T. c /etc/ssh/sshd_config

3.3 安装与卸载

# 安装 rpm 包rpm-ilrzsz-0.12.20-36.el7.x86_64.rpm# 友好安装(显示进度条)rpm-ivhlrzsz-0.12.20-36.el7.x86_64.rpm# 卸载rpm-elrzsz# 友好卸载rpm-evhlrzsz# 重新安装rpm--reinstall-vhlrzsz

⚠️注意rpm -i不会自动解决依赖!如果缺少依赖包,会报错。这正是 YUM 存在的意义。

3.4 提取 RPM 包中的文件

有时我们只想提取 RPM 中的某个文件,而不想完整安装:

# 一步提取所有文件rpm2cpio httpd-2.4.6.x86_64.rpm|cpio-id'*'# 提取特定文件rpm2cpio httpd-2.4.6.x86_64.rpm|cpio-id./etc/httpd/conf/httpd.conf

四、YUM 包管理器

YUM(Yellowdog Updater Modified)是 RPM 系的高级包管理工具,核心优势:

  • 自动解决依赖
  • 从远程仓库下载
  • 支持软件包组管理

4.1 YUM 常用命令

# 查看命令帮助yumhelp# 查看仓库中软件包信息yum info httpd# 列出软件包(支持通配符)yum list'http*'# 查看软件包所有可用版本yum list httpd--showduplicates# 按关键字搜索yum search'web server'# 查看哪个包提供某个文件/命令yum provides sar# 安装软件包yuminstall-yvsftpd# 仅下载不安装(含依赖)yuminstallvsftpd--downloadonly--downloaddir=/root/# 安装本地 rpm 包yum localinstall ./vsftpd-3.0.2.x86_64.rpm# 升级软件包yum update vsftpd# 升级系统所有包yum update# 降级软件包yum downgrade-yhttpd-2.4.6-97.el7.centos# 卸载软件包yum remove-yvsftpd








在这里插入图片描述

4.2 软件包组管理

# 查看所有软件包组yum grouplist# 查看英文名称(方便脚本使用)yum grouplist-v# 查看组内包含哪些包yum groupinfo'Server with GUI'# 安装软件包组yum groupinstall'Server with GUI'# 卸载软件包组yum groupremove'MariaDB Client'




4.3 YUM 历史记录

YUM 会自动记录每一次事务,方便回溯:

# 查看历史记录yumhistorylist# 查看某次事务详情yumhistoryinfo2# 撤销某次操作(如误删)yumhistoryundo4# 重做某次操作yumhistoryredo4

五、总结

场景推荐工具说明
查询已安装包信息rpm -q快速、精准
安装/卸载软件yum自动解决依赖
批量升级系统yum update一键更新

🎯核心口诀查询用 rpm,安装用 yum。


📖推荐阅读

  • CentOS 官方文档
  • RPM 官方手册
  • 阿里云镜像站

💬如有疑问,欢迎在评论区留言交流!


本文基于课堂笔记整理,持续更新中…

http://www.jsqmd.com/news/1285792/

相关文章:

  • 2026 年石家庄汽车音响改装店,哪些店值得去改?首选石家庄奥盛腾 - 石家庄奥盛腾汽车音响
  • FDM打印机喷头顽固堵塞的系统化诊断与深度清洁解决方案
  • 企业办公AI系统定制服务商全场景解决方案与智能会议应用实践
  • 如何以 4 种有用的方式将照片从 iPad 传输到 SD 卡
  • 消息防撤回技术解析:从客户端行为到本地数据捕获的实践指南
  • 基于Arduino的微型激光切割雕刻机:从原理到实战搭建指南
  • Abaqus Vumat子程序开发:三维纤维复合材料损伤分析
  • A社MTS炮轰英伟达开源承诺,CUDA生态与GPU驱动兼容性受质疑
  • 工业扫码器如何选型?DPM 码识别与 MES 系统对接技术落地实践
  • 行空板K10部署TensorFlow Lite Micro:从模型转换到内存优化的边缘AI实战
  • 7月OpenRouter周榜:国产大模型海外出圈,小米登顶,腾讯混元增长超999%!
  • 制造业金蝶ERP选哪个版本?2026工厂落地全指南
  • 证书有效期缩短到 47 天,ACME 自动续期还来得及吗?
  • 数据中心固态变压器:AI算力时代供配电架构的范式跃迁
  • 端子尺寸测量仪器,闪测仪厂家
  • 四轴飞行器兴趣小组:从硬件选型到PID调试的深度技术共创实战
  • ps2026 mac 下载(2026亲测)photoshop 2026 for mac 安装教程
  • 2026哈尔滨漏水维修全攻略,卫生间/阳台/外墙/屋顶/地下室对症方案+靠谱商家推荐 - 苏易房屋修缮
  • MicroPython嵌入式设备中文显示实战:LVGL字体子集化与K10开发板集成
  • UE5项目迁移实战指南:从评估到优化的全流程解析
  • VortMall如何解决「多活动叠加」下的价格计算难题
  • LaTeX子公式编号:subequations环境与amsmath宏包实战指南
  • 开发岗核心优化工作流解析
  • NBM7100A与TM4C1294NCZAD在低功耗物联网设备中的电源管理优化
  • JetBrains IDE试用期重置完整指南:2024年最简单30天免费使用方法
  • 东方仙盟分词服务:AI与传统词库混合架构解析
  • AI画论文插图,提示词怎么写才不翻车
  • PcDuino系统重装实战:ARM架构单板计算机的固件烧录指南
  • 【C++重载操作符与转换】文本查询示例
  • Java抽象类与接口深度解析:从设计哲学到实战应用