Linux YUM 命令详解:自动解决依赖,运维软件管理神器

张开发
2026/4/16 23:00:11 15 分钟阅读

分享文章

Linux YUM 命令详解:自动解决依赖,运维软件管理神器
在Linux Red Hat系列系统CentOS、RHEL、Fedora等运维中软件包管理是基础且高频的工作。此前我们讲解过RPM包管理工具它虽能完成软件的安装、卸载但最大的痛点的是需手动处理依赖关系——安装一个软件往往要先逐个安装其依赖的十几个包繁琐且易出错。而YUMYellowdog Updater, Modified的出现彻底解决了这个难题。作为基于RPM的高级软件包管理器YUM的核心优势就是自动解决依赖通过远程或本地软件仓库一键完成软件的安装、升级、卸载无需手动干预依赖是Linux运维必备的“效率神器”。本文从基础认知、核心命令、仓库配置、实战示例到常见问题排查全方位讲解YUM命令的使用覆盖日常运维99%的场景也能快速上手彻底告别RPM依赖噩梦。一、YUM 基础认知1. 什么是YUMYUM是Linux Red Hat系列系统默认的高级软件包管理器本质是RPM的“前端工具”——底层依然调用RPM完成软件包的安装、卸载等操作但通过“软件仓库Repository”实现了依赖的自动管理。简单来说YUM就像一个“软件超市”仓库就是超市的货架里面存放着各种软件包和它们的依赖关系。当你需要安装某个软件时YUM会自动从仓库中找到软件同时下载并安装所有依赖的包全程无需手动操作。2. YUM 核心优势自动解决依赖这是YUM最核心的优势彻底解决RPM手动处理依赖的痛点仓库集中管理软件包集中存放在远程或本地仓库便于统一更新和维护操作简洁高效命令直观如install、update、remove无需记忆复杂参数支持批量操作可一次性安装、升级、卸载多个软件适合批量运维功能丰富支持仓库切换、缓存管理、版本锁定、操作回滚等高级功能。3. YUM vs RPM 核心区别必看很多人会混淆YUM和RPM其实二者分工明确互补使用核心区别如下表所示特性RPMYUM依赖处理手动解决缺失依赖直接报错自动下载并安装所有依赖核心优势安装来源仅支持本地 .rpm 文件远程仓库HTTP/FTP、本地仓库、本地 .rpm 文件批量操作不支持需逐个操作支持批量安装、更新、卸载多个软件适用场景离线环境、指定版本的本地包安装在线环境、日常运维、批量管理首选命令复杂度复杂需记忆 -i/-q/-U/-e 等参数简洁用 install/update/remove 等直观命令4. YUM 核心配置文件YUM的配置文件分为“全局配置”和“仓库配置”结构清晰日常运维主要修改仓库配置即可。主配置文件/etc/yum.conf定义全局规则如缓存路径、并发下载数、日志路径等默认配置无需修改仓库配置文件/etc/yum.repos.d/目录下所有后缀为.repo的文件都是仓库配置文件每个文件对应一个软件仓库如官方源、国内源缓存目录/var/cache/yum/存放下载的软件包和仓库元数据清理缓存可解决部分仓库报错问题。二、YUM 常用命令运维必备重中之重YUM命令的核心围绕“查询、安装、升级、卸载、仓库管理”展开以下是日常使用频率最高的命令结合示例详细说明可直接照搬使用建议收藏。1. 查询与搜索排查必备日常运维中经常需要查询软件是否可用、是否已安装、依赖哪些包这组命令是基础中的基础。# 1. 按关键词搜索仓库中的软件名称/描述模糊匹配yum search nginx # 搜索nginx相关的所有软件包yum search web server # 模糊搜索包含“web server”的软件# 2. 查看软件包的详细信息版本、架构、依赖、描述yum info nginx # 查看nginx的详细信息yum info git # 查看git的详细信息# 3. 列出软件包常用过滤yum list # 列出所有已安装可安装的软件包数量多建议过滤yum list installed # 仅列出已安装的软件包yum list available # 仅列出仓库中可安装的软件包yum list updates # 列出所有可更新的软件包yum list installed | grep nginx # 过滤查询已安装的nginx相关包# 4. 查询文件/命令属于哪个软件包排查“命令不存在”问题yum provides /usr/bin/nginx # 查nginx命令所属的软件包yum provides /etc/passwd # 查系统配置文件所属的软件包yum provides */ifconfig # 模糊查询ifconfig命令所属包# 5. 查询软件的依赖关系了解软件依赖哪些包yum deplist nginx # 查看nginx依赖的所有软件包2. 安装软件最常用YUM安装软件的核心优势是“自动解决依赖”只需指定软件名其余全部由YUM完成无需手动处理依赖。# 1. 基础安装自动提示确认手动输入y确认yum install nginx# 2. 自动确认安装脚本、批量操作必备无需手动输入yyum install -y nginx# 3. 批量安装多个软件yum install -y git vim wget net-tools # 同时安装git、vim等4个软件# 4. 重新安装软件软件文件损坏、配置错误时用于修复yum reinstall -y nginx# 5. 安装本地RPM包YUM也支持本地包且自动解决依赖yum localinstall -y /root/nginx-1.24.0-1.el7.x86_64.rpm # 注本地包的依赖会自动从仓库下载安装比rpm -ivh更方便3. 升级软件用于更新软件到最新版本支持单个软件升级、所有软件升级还能仅更新安全补丁。# 1. 升级单个软件到最新版本yum update -y nginx# 2. 升级所有已安装的软件系统整体升级谨慎使用yum update -y yum upgrade -y # 与update功能基本一致升级更彻底替换旧包# 3. 仅更新安全补丁不升级其他软件生产环境常用yum update -y --security# 4. 检查可更新的软件仅查看不执行升级操作yum check-update注意生产环境中不建议随意执行yum update -y升级所有软件可能导致部分服务兼容性问题建议针对性升级单个软件或提前备份后再升级。4. 卸载软件YUM卸载软件时会自动检测并移除该软件的无用依赖不影响其他软件比rpm -e更安全。# 1. 卸载软件自动提示确认yum remove nginx# 2. 自动确认卸载无需手动输入yyum remove -y nginx# 3. 批量卸载多个软件yum remove -y git vim wget # 4. 另一种卸载命令与remove功能完全一致yum erase -y nginx5. 仓库与缓存管理仓库配置异常、缓存过期会导致YUM报错如404、仓库不可用这组命令用于管理仓库和缓存解决常见报错。# 1. 查看仓库状态yum repolist # 查看当前启用的软件仓库yum repolist all # 查看所有仓库含禁用的仓库# 2. 清理缓存解决仓库过期、报错的核心命令yum clean packages # 清理下载的软件包缓存yum clean headers # 清理仓库头文件缓存yum clean all # 清理所有缓存# 3. 重建缓存清理缓存后重新下载仓库元数据确保仓库可用yum makecache # 重建缓存常规速度yum makecache fast # 快速重建缓存推荐# 4. 启用/禁用仓库临时重启失效yum --enablerepoepel install -y nginx # 临时启用epel仓库安装软件yum --disablerepocentos-base update -y # 临时禁用centos-base仓库升级6. 高级功能运维进阶以下命令用于复杂场景如批量安装开发环境、操作回滚、版本锁定等提升运维效率。# 1. 软件组管理批量安装一组相关软件如开发工具yum grouplist # 列出所有软件组yum groupinstall -y Development Tools # 安装开发工具组含gcc、make等yum groupremove -y Development Tools # 卸载开发工具组yum groupinfo Development Tools # 查看开发工具组包含的软件# 2. 操作历史与回滚误操作后挽回yum history # 查看所有YUM操作历史每条操作有编号yum history info 5 # 查看第5条操作的详细信息如安装了哪些包yum history undo 5 # 撤销第5条操作如卸载误装的软件、回滚升级yum history redo 5 # 重做第5条操作# 3. 版本锁定禁止软件被意外升级生产环境常用yum install -y yum-plugin-versionlock # 先安装版本锁定插件yum versionlock nginx # 锁定nginx版本禁止更新yum versionlock list # 查看所有被锁定的软件版本yum versionlock delete nginx # 解锁nginx版本yum versionlock clear # 解锁所有软件版本# 4. 下载软件包不安装用于离线部署yum install -y yum-utils # 安装下载工具yumdownloader nginx # 下载nginx包到当前目录yumdownloader --resolve nginx # 下载nginx及所有依赖包到当前目录三、YUM 仓库配置换国内源解决下载慢默认的YUM官方源位于国外下载速度较慢甚至会出现连接超时的情况。日常运维中建议替换为国内源如阿里云、网易源大幅提升下载速度。以下以CentOS 7为例演示替换阿里云源的步骤其他版本类似。# 1. 备份默认的官方源避免误删便于回滚mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak# 2. 下载阿里云源配置文件CentOS 7wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 3. 下载EPEL扩展源包含官方源没有的软件如nginx、rediswget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 4. 清理缓存并重建缓存使新源生效yum clean allyum makecache fast提示CentOS 8、Fedora等版本只需替换对应版本的源地址即可阿里云镜像站有详细教程。四、YUM 实战示例示例1安装LAMP环境ApacheMySQLPHP# 安装LAMP相关软件yum install -y httpd mariadb-server mariadb php php-mysql php-gd# 启动服务并设置开机自启systemctl start httpd mariadbsystemctl enable httpd mariadb示例2升级软件但不更新内核生产环境常用生产环境中内核升级可能导致驱动、服务不兼容因此常需要升级其他软件保留当前内核。yum update -y --excludekernel* # 升级所有软件排除内核相关包示例3离线下载软件及依赖用于无网络服务器# 1. 在有网络的服务器上下载nginx及所有依赖包yum install -y yum-utilsyumdownloader --resolve -d /root/nginx-packages nginx # 下载到指定目录# 2. 将下载的所有.rpm包复制到无网络服务器用YUM安装yum localinstall -y /root/nginx-packages/*.rpm示例4解决“软件包找不到”问题如nginx默认仓库中没有nginx需安装EPEL扩展源后再安装。yum install -y epel-release # 安装EPEL扩展源yum install -y nginx # 此时可正常安装nginx五、常见问题与解决方案使用YUM过程中经常会遇到锁文件占用、仓库报错、依赖冲突等问题整理了最常见的4类问题附上详细解决方案可直接对照排查。问题1提示“Another app is currently holding the yum lock”原因YUM进程被其他程序占用如系统后台自动更新、其他终端正在执行YUM命令。解决方案# 删除YUM锁文件最常用直接解决 rm -f /var/run/yum.pid# 或等待5-10分钟让占用进程结束后再重试问题2提示“No package nginx available”软件包找不到原因当前启用的仓库中没有该软件包如nginx、redis等软件在EPEL扩展源中。解决方案# 安装EPEL扩展源大多数软件可解决yum install -y epel-release# 清理缓存并重建再尝试安装yum clean allyum makecache fastyum install -y nginx问题3提示“GPG key retrieval failed”GPG密钥校验失败原因软件包的GPG密钥未导入系统无法验证软件包的合法性。解决方案# 导入系统官方GPG密钥CentOS 7示例rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7# 临时关闭GPG校验不推荐仅用于紧急情况yum install -y --nogpgcheck nginx问题4仓库报错“404 Not Found”仓库过期原因仓库配置文件中的地址已过期如CentOS 6停止维护官方源失效。解决方案# 1. 清理缓存 yum clean all# 2. 替换为国内源如阿里云源参考本文“仓库配置”部分# 3. 重建缓存 yum makecache fast六、总结YUM是Linux Red Hat系列系统最核心的软件包管理工具核心价值在于“自动解决依赖”彻底解放运维人员的双手让软件安装、升级、卸载变得简单高效。核心要点总结YUM是RPM的前端工具底层依赖RPM优势是自动解决依赖日常运维记住5条核心命令安装yum install -y、卸载yum remove -y、升级yum update -y、查询yum search/info、清理yum clean all国内服务器建议替换为阿里云、网易等国内源提升下载速度生产环境中升级软件需谨慎优先针对性升级避免批量升级导致兼容性问题遇到YUM报错优先清理缓存、检查仓库配置再排查依赖和锁文件问题。掌握YUM命令的使用能轻松应对Linux软件包的日常管理大幅提升运维效率是每一位Linux运维人员必须熟练掌握的基础技能。

更多文章