Linux 软件包管理——从 RPM 到 Yum 的完整指南

发布时间:2026/9/14 13:38:38

Linux 软件包管理——从 RPM 到 Yum 的完整指南 Linux 软件包管理——从 RPM 到 Yum 的完整指南前言在 Windows 系统中软件包管理通常依赖图形化安装向导如 .exe/.msi或第三方工具如 winget、Chocolatey。而在 Linux 生态中软件包管理是系统管理的基础技能尤其对于 Red Hat 系发行版如 CentOS、RHEL、FedoraRPM 和 Yum以及现代 DNF是核心工具。本文将系统梳理 RPM 包的结构、rpm 命令的常用操作、yum 的进阶用法以及如何配置和管理 yum 仓库帮助你从零搭建完整的软件包管理认知。一、Linux 发行版本与软件包格式1.1 主流发行版分类Debian 系Ubuntu、Debian → 使用.deb包apt管理Red Hat 系CentOS、RHEL、Fedora → 使用.rpm包yum/dnf管理其他Arch Linux 使用pacmanSUSE 使用zypper1.2 RPM 包文件名格式一个典型的 RPM 包文件名httpd-2.4.6-97.el7.centos.x86_64.rpmhttpd软件名称2.4.6主版本号97发行号表示该版本的打包次数el7目标操作系统版本Enterprise Linux 7centos打包者或定制版x86_64架构i686 表示 32 位noarch 表示不依赖架构.rpm扩展名1.3 RPM 包组成一个 RPM 包内部包含元数据包名、版本、依赖关系、冲突、描述等文件列表要安装到系统的实际文件二进制、配置文件、文档等安装/卸载脚本pre/post 脚本如创建用户、启动服务数字签名用于验证包完整性和来源合法性1.4 补充非对称加密与签名验证RPM 包通常使用 GPGGNU Privacy Guard进行签名。发布者用私钥签名用户使用公钥验证。rpm --import 公钥文件导入公钥后rpm -K 包名可验证签名是否有效。二、rpm 命令详解2.1 查询重点rpm -q是最常用的查询子命令支持多种组合命令作用rpm -qa列出所有已安装的包rpm -q httpd查询指定包是否安装显示版本rpm -qi httpd显示包的详细信息描述、大小、安装日期等rpm -ql httpd列出包安装后释放的所有文件路径rpm -qc httpd仅列出配置文件通常以 .conf 结尾rpm -qd httpd列出文档文件如 README、手册rpm -qf /etc/httpd/httpd.conf查询某个文件属于哪个包实用技巧结合grep过滤例如rpm -qa | grep samba快速查找 Samba 相关包。2.2 验证rpm -V用于验证已安装的包是否被修改过rpm-Vhttpd输出格式S.5....T. c /etc/httpd/httpd.confS文件大小改变5MD5 校验和改变T修改时间改变.未变化的属性c配置文件2.3 安装和卸载安装rpm -ivh package.rpmiinstallvverboseh显示进度条卸载rpm -e package注意需满足依赖否则会报错强制安装/忽略依赖rpm -ivh --nodeps package.rpm不推荐可能导致系统不稳定2.4 重新安装当包文件损坏或需要恢复默认配置时rpm-ivh--forcepackage.rpm# 重新安装覆盖原有文件rpm-Uvh--oldpackagepackage.rpm# 降级到旧版本三、提取 RPM 包中的文件3.1 Windows 提取使用 7-Zip 打开.rpm文件本质是 cpio 归档解压后得到xx.cpio再使用 7-Zip 或cpio工具提取3.2 Linux 提取# 方法一使用 rpm2cpiorpm2cpio package.rpm|cpio-idv# 方法二直接解压需安装 cpiorpm2cpio package.rpmpackage.cpio cpio-idvpackage.cpio提取后文件会按原始路径释放到当前目录方便查看或修改如破解脚本、提取配置文件。四、使用 Yum 管理软件包4.1 Yum 介绍YumYellowdog Updater Modified是 RPM 的前端工具自动解决依赖、从远程仓库下载包。核心优势无需手动处理依赖链一条命令即可完成安装。4.2 常用 yum 命令命令说明yum help查看帮助信息yum info 包名显示仓库中某个包的详细信息yum list列出所有可用和已安装的包支持*通配符yum search 关键词在包名和描述中搜索yum provides 文件查询哪个包提供某个文件如yum provides /etc/httpd/httpd.confyum install 包名安装包自动处理依赖yum localinstall 本地.rpm安装本地 RPM 包同时从仓库获取依赖yum downgrade 包名降级到指定版本需先确定旧版本在仓库中yum update升级所有可更新包yum update 包名升级单个包yum remove 包名卸载包同时删除依赖包需谨慎4.3 history 子命令Yum 事务回滚Yum 会记录所有操作历史方便回滚或撤销yumhistorylist# 查看历史记录ID、操作、包数yumhistoryinfoID# 查看某次事务详情yumhistoryundoID# 撤销某次事务回滚到之前状态yumhistoryredoID# 重做某次事务重新执行相同操作实战场景误升级了某个内核版本导致系统不稳定使用yum history undo ID快速回滚。4.4 软件包组管理一组相关软件包的集合例如“Development Tools”包含 gcc、make、glibc 等。yum group list# 列出所有包组yum group infoDevelopment Tools# 查看组内包含的包yum groupinstallDevelopment Tools# 安装整个组yum group removeDevelopment Tools# 卸载组五、配置 Yum 仓库5.1 仓库配置文件Yum 仓库配置文件位于/etc/yum.repos.d/下以.repo结尾。一个典型配置示例官方 CentOS 源[base] nameCentOS-$releasever - Base baseurlhttp://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck1 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-75.2 仓库管理命令命令作用yum repolist查看已启用的仓库yum repolist all查看所有仓库包括禁用状态yum --disablerepo* --enablerepobase list临时启用/禁用仓库yum clean all清除缓存元数据、包yum makecache重新生成缓存更新仓库元数据5.3 添加常用第三方仓库添加 Kubernetes 仓库catEOF/etc/yum.repos.d/kubernetes.repo[kubernetes] nameKubernetes baseurlhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF添加 Docker CE 仓库yuminstall-yyum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo添加 EPEL 仓库Extra Packages for Enterprise LinuxEPEL 提供大量官方源未收录的实用软件包yuminstall-yepel-release# 或手动安装rpm-ivhhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm六、总结与最佳实践优先使用 yum日常安装、更新、卸载都用 yum避免手动 rpm 安装带来的依赖问题。谨慎使用--nodeps强制安装可能导致系统不稳定仅在调试或特殊场景下使用。定期清理缓存yum clean all释放磁盘空间yum makecache更新元数据。善用 history回滚功能是运维的“后悔药”建议在重大操作前先yum history list查看当前状态。仓库配置建议优先使用国内镜像如阿里云、清华源加速同时保留官方源作为 fallback。延伸建议与相关资源1. 从 Yum 到 DNF 的迁移在 Fedora 22 和 RHEL 8 中Yum 已被 DNFDandified Yum替代。DNF 基于 libsolv 库依赖解析速度更快语法与 yum 高度兼容。常用命令dnf install、dnf update、dnf history迁移成本低只需要将yum替换为dnf即可配置文件依然兼容.repo格式。2. 软件包管理进阶使用rpm -q --scripts查看包脚本某些 RPM 包在安装或卸载时会执行脚本如创建用户、启动服务通过rpm -q --scripts 包名可以查看这些脚本内容帮助你理解包的行为尤其适合安全审计或定制化部署。3. 实战离线环境下的软件包管理在内网无网络的环境中可以使用yumdownloader工具事先下载 RPM 包和依赖再通过yum localinstall安装。# 安装 yum-utils 后使用yumdownloader--resolve--destdir/path/to/packages httpd# 将 /path/to/packages 拷贝到目标机器yum localinstall /path/to/packages/*.rpm
延伸阅读

更多相关文章

2026/9/15 0:17:24

YOLO26 权重初始化:不同初始化方法对训练收敛的影响与选择策略

🎬 Clf丶忆笙:个人主页 🔥 个人专栏:《YOLOv26最新专栏》 ⛺️ 努力不一定成功,但不努力一定不成功! 文章目录 一、权重初始化的基础理论 1.1 为什么权重初始化至关重要 1.2 梯度消失与梯度爆炸问题 1.2.1 梯度消失 1.2.2 梯度爆炸 1.2.3 梯度问题的量化分析 二、经…

2026/9/9 7:03:57

港科大联手华为诺亚方舟实验室:让3D场景重建计算量减少一半

这项由香港科技大学与华为诺亚方舟实验室、香港城市大学联合开展的研究,以预印本形式于2026年7月13日发布在arXiv平台,论文编号为arXiv:2607.10995。研究成果命名为AsySplat,聚焦于如何让计算机更高效地从一组照片中"脑补"出完整的…

2026/9/13 2:47:50

Processing创意编程:用玫瑰线方程实现数学可视化与动态艺术

1. 从“玫瑰”到“代码”:一个迷人的数学可视化项目如果你对创意编程感兴趣,或者正在学习Processing,那么“玫瑰线”绝对是一个不容错过的经典项目。它不像那些复杂的3D渲染或物理模拟,需要深厚的数学和图形学功底。玫瑰线项目的美…

2026/9/15 0:16:17

dirsearch目录扫描实战:敏感目录泄露挖掘与字典爆破全解析

1. 先把目录扫描这件事想明白1.1 目录扫描在Web安全评估里的定位目录扫描工具我用过不少,dirsearch 是最常用的一把。它做的事情一句话就能说清:通过字典爆破,快速发现 Web 站点上那些不会出现在导航菜单里的目录和文件,也就是常说…

2026/9/15 0:16:17

Web安全评估实战:目录扫描与敏感目录泄露挖掘指南

干了这么多年Web安全评估,我敢说目录扫描算得上是出活率最高、性价比最离谱的一项测试手段。很多看似固若金汤的系统,最后突破口往往不是0day,也不是什么高级攻击链,而是Web根目录下某个不该存在的.bak文件、一套没加访问控制的测…

2026/9/15 0:16:17

基于鲸鱼优化算法的Matlab工具箱实现与应用

1. 项目概述:基于鲸鱼优化算法的Matlab工具箱这个Matlab程序包实现了一种名为鲸鱼优化算法(Whale Optimization Algorithm, WOA)的智能优化方法。它内置了23个标准测试函数作为目标函数,使用者只需替换自己的数据就能快速应用于实际问题。我在工程优化项…

2026/9/15 0:11:17

CAD闭合图形统计插件开发与应用指南

1. 项目概述:CAD闭合图形统计插件的核心价值在工程设计领域,CAD图纸中的闭合图形面积与周长统计是高频刚需操作。传统手动测量方式需要逐个点击图形属性查看数据,再人工录入Excel表格,一套图纸处理下来往往需要数小时。更麻烦的是…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码