离线源配置错了?
离线软件源装不到包的原因:repo 文件 baseurl 指错、目录结构不对、架构不一致、元数据没生成,给离线源搭建核对清单与验证命令。
简短答案
离线源装不到包基本是四件事之一:baseurl 指向的文件/目录不对(常见漏写 index.html 或多了一层目录)、仓库目录没生成元数据、repo 文件与系统基线不匹配、架构与目标机不一致。按”看配置 → 看目录 → 看元数据 → 看架构”顺序核一遍。
现象对照表
| 现象 | 原因 |
|---|---|
| 报 404 / 找不到 repomd.xml | baseurl 路径指错,或仓库没建元数据 |
| 源能连上但”仓库中无包” | 元数据是旧目录生成的,或包没放进该目录 |
| 包列表有、装上报架构错 | repo 里放了别的架构(如 ARM 包给 x86 机) |
| 整批都装不上 | repo 基线与系统 SP 基线不匹配 |
排查步骤
# 1. 看当前 repo 文件的实际指向
cat /etc/yum.repos.d/离线源.repo
# 2. 确认服务端目录结构与元数据存在
# (登录放源的服务器后执行)
ls 仓库目录/
ls 仓库目录/repodata/repomd.xml
# 3. 重新生成元数据
cd 仓库目录 && createrepo .
# 4. 客户端清缓存重试
yum clean all
yum makecache
yum list 包名
离线仓库目录结构与 repo 文件的
baseurl必须严格对应,这是出错率最高的一步;拿不准就curl -I验证一下 baseurl 能否取到 repodata。
处理办法
- 目录指错:改 repo 文件 baseurl,别用”多试几种写法”碰运气;
- 元数据缺失:放包前必跑
createrepo; - 架构错配:仓库按架构分子目录(如 x86_64/、aarch64/),repo 里 baseurl 各指各的;目标机基线可对照 服务器 V11 条目,ARM 机型对照同系列 ARM 条目;
- 需要介质引导或系统兜底重建时,从 桌面离线功能补丁条目 的说明了解离线补丁场景,U 盘制作参考 Rufus 启动盘条目。
操作小结
- 先看 repo 文件 baseurl,再查服务端目录;
- 放包必跑 createrepo;
- 仓库按架构分子目录;
- 改完清缓存再 makecache 验证。