
1. yum命令概述yumYellowdog Updater Modified是Red Hat系列Linux发行版如CentOS、RHEL、Fedora等中广泛使用的包管理工具。作为RPM包管理器的前端工具yum通过自动解决软件包依赖关系极大简化了Linux系统中的软件安装、更新和删除过程。注意从CentOS 8/RHEL 8开始官方推荐使用dnf替代yum但两者命令格式基本兼容本文内容同样适用于dnf环境。2. yum工作原理2.1 仓库配置解析yum的核心配置文件位于/etc/yum.repos.d/目录下以.repo为后缀。每个仓库配置包含以下关键参数[base] # 仓库ID必须唯一 nameCentOS-$releasever # 仓库描述 baseurlhttp://mirror.centos.org/centos/$releasever/os/$basearch/ enabled1 # 是否启用该仓库 gpgcheck1 # 是否进行GPG验证 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-72.2 依赖解决机制yum采用以下算法解决依赖关系收集所有可用软件包元数据构建依赖关系图使用SAT求解器确定最佳安装方案下载所需所有软件包包括依赖项按正确顺序执行安装3. 核心命令详解3.1 软件包管理# 安装软件包自动解决依赖 yum install package_name # 重新安装软件包 yum reinstall package_name # 更新单个软件包 yum update package_name # 更新所有可更新软件包 yum update # 移除软件包保留依赖 yum remove package_name # 彻底删除软件包包括无用依赖 yum autoremove package_name3.2 查询操作# 列出所有已安装软件包 yum list installed # 搜索软件包支持通配符 yum search keyword # 查看软件包信息 yum info package_name # 查找提供特定文件的软件包 yum provides /path/to/file # 列出软件包依赖关系 yum deplist package_name3.3 仓库管理# 列出所有启用仓库 yum repolist # 列出所有仓库包括禁用 yum repolist all # 清除缓存 yum clean all # 重建缓存 yum makecache4. 高级使用技巧4.1 事务历史管理# 查看yum操作历史 yum history # 撤销特定事务 yum history undo 3 # 重做特定事务 yum history redo 34.2 插件使用常用插件列表fastestmirror自动选择最快镜像源downloadonly仅下载不安装yum-utils提供额外实用工具安装插件示例yum install yum-plugin-downloadonly yum install --downloadonly --downloaddir/tmp package_name4.3 本地仓库创建创建本地目录并复制RPM包生成仓库元数据createrepo /path/to/rpms创建.repo配置文件指向本地路径5. 国内镜像源配置5.1 阿里云镜像配置# CentOS 7示例 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache5.2 清华镜像配置# EPEL仓库示例 yum install epel-release sed -e s|^metalink|#metalink|g \ -e s|^#baseurl|baseurl|g \ -e s|//download\.fedoraproject\.org/pub|//mirrors.tuna.tsinghua.edu.cn|g \ -i /etc/yum.repos.d/epel*.repo6. 常见问题排查6.1 依赖冲突解决当出现依赖冲突时可以尝试# 跳过冲突包 yum update --skip-broken # 显示详细依赖信息 yum deplist package_name6.2 锁定软件包版本防止特定软件包被更新yum versionlock add package_name6.3 仓库优先级设置安装yum-plugin-priorities后在.repo文件中添加priority1 # 数字越小优先级越高7. 性能优化建议定期清理缓存yum clean all yum makecache fast使用本地缓存服务器# 在.repo文件中设置 mirrorlisthttp://localcache.example.com/mirrorlist?repocentos-7arch$basearch禁用不必要的仓库yum-config-manager --disable repository_name并行下载设置在/etc/yum.conf中添加deltarpm1 fastestmirrortrue max_parallel_downloads58. 安全最佳实践启用GPG检查# 在/etc/yum.conf中确保 gpgcheck1定期检查安全更新yum updateinfo list sec yum update --security审计已安装软件包yum list installed | grep -i suspect_package使用最小化安装yum groupinstall Minimal Install9. 企业级应用场景9.1 批量部署使用kickstart结合yum%packages base core vim-enhanced %end9.2 私有仓库搭建安装必要工具yum install createrepo yum-utils httpd配置Web服务提供仓库访问客户端配置指向内部仓库9.3 自动化更新创建cron任务0 3 * * * /usr/bin/yum update -y --security10. 从yum迁移到dnf虽然命令格式相似但dnf提供更优特性更快的依赖解析更完善的事务回滚模块化支持迁移步骤# 安装dnf yum install dnf # 配置别名可选 echo alias yumdnf ~/.bashrc提示在混合环境中可以使用dnf --allowerasing解决更复杂的依赖问题