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

Linux命令-yum(RPM 包管理工具)

Linux命令-yum(RPM 包管理工具)

    • 🔰 命令简介
    • 📖 语法格式
    • ⚙️ 常用选项与子命令
      • 全局选项
    • 💡 实战示例
      • 1. 软件包安装
      • 2. 搜索与查询
      • 3. 更新系统与软件包
      • 4. 卸载软件包
      • 5. 仓库管理
      • 6. yum 历史管理
      • 7. 依赖分析
      • 8. 高级用法
    • ⚠️ 危险操作与注意事项
    • 📚 相关命令
    • 📝 总结

快速参考yum(Yellowdog Updater Modified)是RHEL/CentOS 系统的包管理工具,用于自动解决依赖关系并安装 RPM 软件包。在 CentOS 8+/RHEL 8+ 中已被dnf替代,但存量系统仍广泛使用。


🔰 命令简介

yum基于 RPM 包管理,从配置的软件仓库(repository)中下载并安装软件包,自动处理依赖关系,是 CentOS/RHEL 日常运维的核心命令。

💡版本说明:RHEL 7/CentOS 7 使用yum,RHEL 8+/CentOS 8+ 使用dnf(Dandified YUM)。dnf语法与yum高度兼容,大部分系统上yum命令实际上是dnf的别名。

核心概念:

概念说明
仓库(repo)软件包的远程或本地存储位置
RPM 包.rpm格式的二进制软件包
依赖解析自动计算并安装所需的依赖包
yum 缓存本地缓存的仓库元数据和 RPM 包

📖 语法格式

yum[选项]子命令[包名...]# 安装软件包yuminstall包名# 搜索软件包yum search 关键字# 更新系统/软件包yum update[包名]# 删除软件包yum remove 包名

⚙️ 常用选项与子命令

子命令说明
install安装一个或多个软件包
remove/erase卸载软件包
update更新已安装的软件包
upgrade更新软件包(会处理过时依赖)
search在包名和描述中搜索关键字
info显示软件包详细信息
list列出可用或已安装的软件包
provides查找提供指定文件的软件包
clean清理 yum 缓存
makecache生成/更新缓存
repolist列出已配置的仓库
history查看/管理 yum 操作历史
check-update检查可用更新
reinstall重新安装软件包
downgrade降级软件包
deplist显示软件包的依赖关系

全局选项

选项说明
-y对所有确认提示自动回答 yes
-q安静模式,减少输出
-v详细模式
--nogpgcheck跳过 GPG 签名验证
--enablerepo=仓库临时启用指定仓库
--disablerepo=仓库临时禁用指定仓库
--downloadonly仅下载不安装
--downloaddir=目录指定下载目录

💡 实战示例

1. 软件包安装

# 安装单个软件包yuminstallnginx# 安装多个软件包(批量安装 LNMP)yuminstallnginx mysql-server php-fpm php-mysql# 自动确认安装(非交互模式,适合脚本)yuminstall-ygitvimwgetcurl# 安装本地 RPM 文件(自动处理依赖)yum localinstall ./custom-package.rpm# 从指定仓库安装yum--enablerepo=epelinstallhtop# 安装开发工具组yum groupinstall"Development Tools"

2. 搜索与查询

# 搜索包含 "python" 的软件包yum search python3# 查看软件包详细信息yum info nginx# 列出所有已安装的软件包yum list installed# 列出所有可用(未安装)的软件包yum list available# 列出所有软件包(已安装 + 可用)yum list all# 查看某个包的已安装版本yum list installed|grepkernel# 查找哪个包提供了 /usr/bin/ssh 文件yum provides /usr/bin/ssh# 按通配符搜索yum list'php-*'

3. 更新系统与软件包

# 更新所有软件包(包括内核)yum update# 仅更新安全补丁yum update--security# 更新单个软件包yum update nginx# 检查有哪些可用更新yum check-update# 仅下载更新但不安装(便于离线部署)yum update--downloadonly--downloaddir=/tmp/updates# 更新到指定版本(锁定版本)yum update-to nginx-1.20.1

4. 卸载软件包

# 卸载单个软件包yum remove nginx# 卸载多个软件包yum remove httpd php php-mysql# 自动确认卸载yum remove-ydocker# 卸载软件包及其未被其他包使用的依赖yum autoremove nginx

5. 仓库管理

# 列出所有已配置的仓库yum repolist# 列出所有仓库(含禁用的)yum repolist all# 查看仓库详细信息yum repoinfo# 生成/更新仓库元数据缓存yum makecache# 清理所有缓存文件yum clean all# 仅清理软件包缓存yum clean packages# 仅清理元数据缓存yum clean metadata

6. yum 历史管理

# 查看 yum 操作历史yumhistory# 查看指定历史条目的详细信息yumhistoryinfo10# 撤销某次操作(回滚到指定事务之前)yumhistoryundo10# 重做某次操作yumhistoryredo10# 列出涉及某软件包的历史操作yumhistorylist nginx

7. 依赖分析

# 查看软件包的依赖关系yum deplist nginx# 查看哪些包依赖指定软件包yum deplist--reversenginx# 显示包的已安装依赖和缺失依赖yum check-dependencies

8. 高级用法

# 安装 EPEL 仓库(Extra Packages for Enterprise Linux)yuminstallepel-release# 查看特定仓库中的软件包yum--disablerepo='*'--enablerepo=epel list available# 仅下载不安装(用于离线环境部署)yuminstall--downloadonly--downloaddir=/tmp/rpmsdocker# 忽略特定依赖安装(危险!仅限特殊场景)yuminstall--skip-broken package-name# 从特定源安装(排除某些仓库)yuminstall--disablerepo=base--enablerepo=epelhtop

⚠️ 危险操作与注意事项

⚠️危险警告:以下操作可能导致系统不稳定或软件包损坏。

# 危险:强制删除内核(可能导致系统无法启动)yum remove kernel# 回滚方案:保留至少两个内核版本# 安装回内核:yum install kernel# 危险:跳过依赖安装yuminstall--skip-broken broken-package# 回滚方案:记录安装的包,使用 yum history undo 回滚# 危险:在无网络环境中执行 updateyum update# 回滚方案:使用 yum history undo 撤销# 建议先执行 yum check-update 预览变更

💡安全操作建议

  • 生产环境更新前先yum check-update预览变更
  • 关键服务器禁止自动更新,手动审查后分批执行
  • 使用yum history追踪每次变更,以便快速回滚
  • 配置yum-cron仅下载更新,不自动安装
  • CentOS 7 EOL 后迁移到 Rocky Linux 或 AlmaLinux

📚 相关命令

命令关系与说明
dnfyum 的下一代替代品(RHEL 8+ 默认)
rpm底层 RPM 包管理器,直接操作 RPM 文件
yumdownloader仅下载 RPM 包不安装(yum-utils 提供)
yum-config-manager管理 yum 仓库配置(yum-utils 提供)
yum-cronyum 自动更新定时任务
repoquery查询仓库中的软件包信息(yum-utils 提供)
createrepo创建自定义 yum 仓库
aptDebian/Ubuntu 系统的包管理工具

📝 总结

yum是 CentOS/RHEL 生态的核心包管理工具。掌握installsearchupdateremovehistory五个子命令即可覆盖日常运维 90% 的场景。对于新版系统(RHEL 8+/CentOS 8+),建议学习dnf使其平滑过渡。

💡运维建议:始终在变更前查看yum history了解历史操作,在升级前使用yum check-update预览,并通过yum history undo在出问题时快速回滚。

http://www.cnnetsun.cn/news/4207347.html

相关文章:

  • 基于QML的Windows 11风格虚拟键盘:从编译部署到自定义开发全指南
  • 制造业客户一句“系统不好用”,数字化软件的售后工程师为什么从不急着猜答案?
  • STM32-AFIO 12
  • AI编程时代技术债治理:从美团31万行重构看人机协同防控体系
  • 3ds Max雪景制作实战:PolySnowV4程序化建模与动态特效全解析
  • 2026年UPS选购指南:150-550元价位如何为电脑、NAS构建电力防线
  • OpenClaw边缘部署实战:工业场景下大模型轻量化落地指南
  • Oracle RMAN备份脚本、RMAN还原恢复测试、RMAN常用语句
  • 从设计文档到技术交底书:工程师必备的专利转化实战指南
  • Spring AI 11 · 元数据过滤 FilterExpression
  • Spring Boot在线问诊系统设计:多语言、弱网与医疗协同的实战挑战
  • Godot 4 实战:从零构建像素风农场模拟游戏核心系统
  • LangChain Agent集成MCP协议:实现AI工具即插即用的标准化方案
  • 拼多多算法团队招聘:推荐、搜索与广告算法核心技术解析
  • MLLM引导语义校正:用大模型优化AI视频生成逻辑
  • 2026年采购智能鞋头后跟定型机,选哪家工厂性价比更高?
  • 山东高考志愿填报机构口碑与适用分析
  • 抖音批量下载工具实战:主页合集一键归档
  • C#图像高速存储落盘:提高图像从内存中落盘存储到硬盘速度的几个方法
  • 前端面试实战:技术深度与表达策略
  • AssetRipper完整教程:免费开源的Unity资产提取工具,5分钟从.assets文件里找回整个游戏
  • FlywayGuard:IDEA插件解决Flyway SQL冲突
  • 本地AI相册实战:基于ONNX与Tesseract的私有化图片管理方案
  • 2026之后,通用咨询公司难再做B2B全案
  • 吴恩达AI Agent技能开发教程:从工具调用到实战部署全解析
  • Substance 3D Designer 风格化木板材质制作全流程解析
  • RocketMQ事务消息原理与面试深度解析
  • AI智能体本地部署与实战:从环境搭建到API集成全流程
  • 2026福州工程建筑材料检测排名 TOP5 CMA 资质提供钢材检测、水泥检测、砂石检测 全覆盖联系方式推荐.txt
  • Kubernetes 靠什么活下来?拆解 K8s 集群可靠性设计的 5 个核心机制