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

相关新闻

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

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

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

2026/10/15 6:27:21 阅读更多 →
基于YOLOv8行人车辆检测系统

基于YOLOv8行人车辆检测系统

本项目面向道路交通场景中的行人与车辆目标检测任务,完成 YOLOv8 与 Faster R-CNN 两类检测模型的训练、评估、可视化对比,并集成 PyQt5 桌面端检测系统。系统支持图片检测、视频检测、摄像头实时检测、检测数量统计、历史记录保存以及 CSV / JSON 数据导…

2026/10/15 6:27:23 阅读更多 →
户外产品电商主图怎么做?PS AI 替换产品光影融合教程

户外产品电商主图怎么做?PS AI 替换产品光影融合教程

电商美工日常经常需要做产品替换、主图排版、光影融合这类工作。传统依靠 PS 手动完成抠图、变形、调色、排版,不仅耗费时间,画面还容易出现穿帮。遇到频繁换款、反复修改的需求,工作压力会明显增加。本文整理一套 PS AI 插件实操工作流&…

2026/10/15 7:05:43 阅读更多 →

最新新闻

频谱分析仪选型与核心参数解析:N9020B/N9030A对比指南

频谱分析仪选型与核心参数解析:N9020B/N9030A对比指南

1. 频谱分析仪基础认知与选型指南在射频测试测量领域,频谱分析仪就像工程师的"电子显微镜",能够将看不见的电磁信号转化为可视化的频谱图形。是德科技(Keysight)的N9020B、安捷伦(Agilent)N9020A…

2026/10/15 9:48:45 阅读更多 →
工具过载时代的caveman思维:用最原始的方法高效解决问题

工具过载时代的caveman思维:用最原始的方法高效解决问题

上周六凌晨两点,我在生产环境里排查一个数据对不上的问题。链路里用了三套中间件、五个微服务,日志平台里的调用链视图看起来一切正常,可最终落库的数字就是和账本差了几百条。我盯着APM面板上花花绿绿的曲线,突然意识到自己这十年…

2026/10/15 9:48:45 阅读更多 →
Python实现网页自动化归档与长截图工具开发

Python实现网页自动化归档与长截图工具开发

1. 项目背景与核心价值最近在整理技术文档时发现一个痛点:很多优质的技术文档站点会突然关闭或改版,导致之前收藏的链接失效。更麻烦的是,有些文档内容需要以完整长图形式保存便于分享或打印。市面上的网页保存工具要么功能单一,要…

2026/10/15 9:48:44 阅读更多 →
npx陌生命令排查指南:从impeccable误报看CLI可信性诊断

npx陌生命令排查指南:从impeccable误报看CLI可信性诊断

1. 项目概述:一个被误读的“完美”工具名,以及它背后真实的CLI生态位最近在多个技术社区和前端开发者群聊里,“impeccable”这个词频繁跳出——不是作为形容词用在代码评审里夸人“写得无可挑剔”,而是作为一个具体可执行的命令出…

2026/10/15 9:48:44 阅读更多 →
hyperframes:高帧率视频处理的帧组架构与工程实践

hyperframes:高帧率视频处理的帧组架构与工程实践

1. 为什么我会盯上 hyperframes 这个方向hyperframes 这个词,我第一次看到是在一个客户的招标参数里,他们要做高速机械臂的视觉引导,要求抓拍速度到120fps,而且不能丢帧。我当时第一反应是:直接堆硬件不就完事了&#…

2026/10/15 9:48:44 阅读更多 →
2026东莞离婚纠纷维权优选:广东卡夫律所本土裁判优势深度解析

2026东莞离婚纠纷维权优选:广东卡夫律所本土裁判优势深度解析

2026东莞离婚纠纷维权优选:广东卡夫律所本土裁判优势深度解析在婚姻家事纠纷处理中,不同于普通民商事案件的刚性法条适用,离婚诉讼更看重本地法院裁判尺度、家事审判惯例、法官自由裁量标准。2026年东莞家事司法审判日趋精细化,抚…

2026/10/15 9:47:44 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →