
1. 麒麟Linux YUM源配置基础第一次接触麒麟Linux的YUM源配置时我踩了不少坑。记得有次在客户现场部署系统因为没提前配置好YUM源导致一个简单的软件安装卡了整整两小时。后来才发现麒麟Linux的YUM源配置和常见的CentOS有些不同特别是在国内网络环境下更需要特别注意。麒麟Linux作为国产操作系统的代表其YUM源配置主要涉及两个关键文件/etc/yum.repos.d/kylin_x86_64.repox86架构/etc/yum.repos.d/kylin_aarch64.repoARM架构国内镜像源配置示例x86架构[ks10-adv-os] name Kylin Linux Advanced Server 10 - Os baseurlhttp://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/base/x86_64/ gpgcheck0 enabled1这个配置里有个细节特别重要gpgcheck0。刚开始我不理解为什么要关闭GPG检查后来发现是因为部分国内镜像站的GPG密钥未正确配置。但生产环境建议开启校验设为1并配置正确的gpgkey路径。2. 典型YUM源故障排查2.1 repomd.xml下载失败问题上周有个运维同事急冲冲跑来找我YUM报错说所有镜像都试过了还是下载失败一看果然是经典的repomd.xml错误failed to download metadata for repo ks10-adv-cdrom: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried排查步骤我总结为四步法网络连通性测试curl -I http://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/base/x86_64/repodata/repomd.xml如果返回404说明源地址可能已变更检查仓库配置yum repolist all # 查看所有仓库状态缓存清理后面会详细讲yum clean all yum makecache镜像站状态确认 访问镜像站官网查看公告比如麒麟软件官网会发布源地址变更通知2.2 架构不匹配问题有次给ARM服务器配置源时误用了x86的配置结果报错提示找不到匹配的包。这时需要特别注意ARM架构的baseurl应包含aarch64而非x86_64配置文件应放在kylin_aarch64.repo而非x86_64版本3. 缓存处理深度解析3.1 缓存机制原理YUM的缓存就像快递柜第一次取件安装软件需要去远处仓库之后会暂存到本地。麒麟Linux的缓存目录默认在/var/cache/yum包含packages/下载的RPM包metadata/仓库元数据关键参数# 查看当前缓存配置 grep -E cachedir|keepcache /etc/yum.confcachedir缓存路径keepcache0默认不保留RPM包建议改为1节省带宽3.2 缓存清理实战遇到元数据不一致时我常用的组合拳# 彻底清理 rm -rf /var/cache/yum/* yum clean all # 重建缓存加-v参数看详细过程 yum makecache -v特别注意在麒麟V10 SP2版本中如果使用--downloadonly下载的包需要手动清理/var/cache/yum/x86_64/[版本号]/packages/4. 多源配置策略4.1 国内主流镜像源对比镜像站地址更新频率特点麒麟官方update.cs2c.com.cn每日官方源最稳定清华大学mirrors.tuna.tsinghua.edu.cn/kylin每日教育网优化阿里云mirrors.aliyun.com/kylin-yum每6小时全国CDN配置阿里云镜像示例[aliyun-kylin] nameKylin Linux Aliyun Mirror baseurlhttps://mirrors.aliyun.com/kylin-yum/V10/SP1/os/adv/lic/base/$basearch/ gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/kylin-yum/RPM-GPG-KEY-kylin4.2 混合源配置技巧生产环境中我常采用主备源策略主源用麒麟官方备用源配置阿里云镜像通过priority参数设置优先级priority1 # 数字越小优先级越高5. 特殊场景处理5.1 离线环境配置给某政府客户部署内网环境时我总结出离线源搭建三步法在外网机器同步全量包reposync -r ks10-adv-os -p /data/kylin-repo/创建元数据createrepo -v /data/kylin-repo/ks10-adv-os/内网机器配置[local-kylin] nameLocal Kylin Repo baseurlfile:///data/kylin-repo/ks10-adv-os enabled15.2 代理服务器配置在需要代理访问的环境切记遵守公司网络政策可以在/etc/yum.conf中添加proxyhttp://proxy.internal.com:8080 proxy_usernameuser # 如果需要认证 proxy_passwordpass6. 验证与测试配置完成后我必做的验证步骤基础检查yum search rpm-build # 测试搜索功能 yum install -y telnet # 测试安装速度测试显示各镜像延迟yum-plugin-fastestmirror # 先安装插件 yum --enablerepo* --refresh makecache依赖解析测试yum deplist python37. 日常维护建议定期维护# 每周执行一次 yum clean all yum update空间监控缓存可能撑满磁盘du -sh /var/cache/yum关键日志检查tail -n 100 /var/log/yum.log grep -i error /var/log/yum.log记得有次凌晨三点被报警叫醒发现是YUM缓存占满了/var分区。现在我会在Ansible剧本里加入定期清理任务- name: Clean yum cache cron: name: Clear yum cache minute: 0 hour: 3 job: yum clean all