离线源怎么搭
内网不能连外网时,装包只能靠本地素材:从官方渠道获取的离线仓库包,或者完整的安装 ISO。ISO 本身就带一套可用的仓库结构,挂载后把 .repo 的 baseurl 指向含 repodata 的目录层级即可;离线仓库包则解压到磁盘目录再发布。单机可以直接 file:// 引用,多台机器应架到内网 HTTP 服务上统一分发。
基本信息
| 素材来源 | 官方离线仓库包(更新包)或完整安装 ISO |
|---|---|
| 常见做法 | mount -o loop 挂载 ISO 到固定目录 |
| 客户端指向 | file:// 本地路径或 http:// 内网地址 |
| 目录要求 | baseurl 必须指到含 repodata 的层级 |
| 持久化 | 写入 /etc/fstab 或开机脚本,避免重启后挂载丢失 |
| 权限要求 | root(挂载与写 .repo 文件) |
典型使用场景
- 完全隔离的生产网需要安装补丁与运维工具
- 临时离线排障:把 ISO 挂上装几个依赖包
- 以 ISO 为基线统一装机,保证各机器包版本一致
- 在没有内网镜像站的小规模环境,用单机离线源过渡
- 审计环境不允许访问外网,所有软件来源需可追溯
ISO 挂载作源
ISO 挂载作源
mkdir -p /mnt/iso # 固定挂载点,便于写进 fstab
mount -o loop Kylin-Server-V10-SP3.iso /mnt/iso # 挂载镜像
ls /mnt/iso | head # 确认目录结构
ls -d /mnt/iso/*/repodata 2>/dev/null; ls -d /mnt/iso/repodata # 定位真正含 repodata 的层级
sha256sum Kylin-Server-V10-SP3.iso # 挂载前先核对镜像完整性本地源配置与持久化
本地源配置与持久化
[kylin-local]
name=Kylin Local ISO
baseurl=file:///mnt/iso # 若 repodata 在下级目录,此处要补上该层级
enabled=1
gpgcheck=0 # 无签名条件时保持 0,有官方公钥可改为 1
# /etc/fstab 固化挂载,避免重启后源失效:
# /opt/iso/Kylin-Server-V10-SP3.iso /mnt/iso iso9660 loop,ro 0 0
# 客户端验证:
# dnf clean all && dnf makecache && dnf repolist验证点与故障对照
| 检查项 | 期望结果 | 异常含义 |
|---|---|---|
| mount 是否成功 | df -h 能看到挂载点 | loop 设备被占用或镜像损坏 |
| repodata 位置 | 存在 repomd.xml | baseurl 层级写错,需下探一级 |
| dnf repolist | 仓库 enabled 且包数正常 | 包数为 0 说明路径不含元数据 |
| 重启后仍可用 | 挂载自动恢复 | 未写 fstab,源随重启失效 |
| 装包实测 | 依赖解析成功 | 离线源版本与系统补丁级别不匹配 |
loop 挂载重启后会消失,生产机必须用 /etc/fstab 或开机脚本固化,否则第二天所有装包请求都会失败。
客户端数量多时不要把 file:// 挂在共享存储上让所有机器一起读,改为在内网 HTTP 服务上发布同一个挂载目录,稳定性与并发能力都更好。