首页/系统/信创系统运维速查/openEuler 内网软件源配置
系统与安装65 条

openEuler 内网软件源配置

openEuler 离线/内网环境:把官方 repo 完整同步到内网 HTTP 服务器,或使用官方提供的 everything 镜像,再让客户端指向内网地址。

信创系统运维速查系统更新于 2026-10-13

openEuler 内网源怎么搭

内网或完全离线环境里,openEuler 客户端无法访问官方镜像站,需要在内网自建软件源。两条常见路径:一是有外网中继机时,用 rsync 把官方仓库完整同步到内网服务器;二是直接使用官方提供的 everything 或全量镜像离线介质。同步完成后用 Nginx 或 httpd 以 HTTP 方式发布目录,客户端再用 dnf config-manager 把源指过来。目录结构要保持原始形态,客户端才能正确读取元数据。

基本信息

适用平台openEuler 20.03 LTS / 22.03 LTS / 24.03 LTS 等
同步工具rsync(配 --delete 保持与上游一致)
发布方式Nginx 或 httpd 提供 HTTP 访问
客户端配置dnf config-manager --add-repo 或手写 .repo
目录要求保留 repodata 原始结构,新增包后更新元数据

典型使用场景

  • 完全隔离内网:生产网不能出外网,统一从内网源装包与打补丁
  • 多机批量部署:上百台客户端指向同一个内网源,避免重复下载
  • 补丁基线统一:把验证过的包放入内网源,控制全网可安装的版本范围
  • 离线现场:临时用 everything 镜像做本地源完成装机与装包
  • 混合架构:x86_64 与 aarch64 各自同步一套 repodata 供不同机型使用

同步与发布(有外网中继机时)

同步与发布(有外网中继机时)
dnf install -y rsync nginx
rsync -avz --delete rsync://mirror.example.com/openeuler/openEuler-22.03-LTS/ \
  /data/repo/openEuler-22.03-LTS/          # 保持上游目录结构
ln -s /data/repo/openEuler-22.03-LTS /usr/share/nginx/html/repo/openeuler
nginx -t && systemctl enable --now nginx
curl -I http://10.0.0.10/repo/openeuler/OS/x86_64/repodata/repomd.xml   # 验证可访问

客户端接入与验证

客户端接入与验证
dnf config-manager --add-repo http://10.0.0.10/repo/openeuler/OS/x86_64
dnf clean all && dnf makecache            # 刷新元数据缓存
dnf repolist -v | head -20                # 确认新源已启用
sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/openEuler.repo   # 停用外网源
dnf install -y vim                        # 用内网源实际装一个包验证
# 自建源新增包后更新元数据:
createrepo_c --update /data/repo/openEuler-22.03-LTS/OS/x86_64

环境要素核对

环节检查点常见问题
同步上游地址与 LTS 版本版本写成 rolling 导致内容漂移
同步磁盘余量全量仓库体积大,同步中途空间不足
发布HTTP 可达与权限目录权限不足,客户端 403
发布目录层级baseurl 未指到含 repodata 的目录
客户端架构匹配x86_64 客户端指向 aarch64 路径,元数据解析失败
元数据createrepo_c 更新新增包未更新元数据,客户端看不到
内网源目录建议保留 repodata 原始结构;自行新增 rpm 后用 createrepo_c --update 更新元数据,否则客户端列表里不会出现新包。
同步脚本中断会留下不完整的 repodata,客户端报校验错误;脚本末尾应加一次完整性校验再宣告成功。

易错点

  • 服务端与客户端架构不对应:x86_64 与 aarch64 的 repodata 必须分别同步,指错路径客户端直接报解析失败。
  • 同步中断留下残缺元数据,客户端报校验错,需重新同步或加校验步骤。
  • baseurl 未指到含 repodata 的目录(多写或少写一层 OS/x86_64),源配置看起来正确但永远解析不到包。
  • 新增自建 rpm 后不执行 createrepo_c --update,客户端能连源却找不到包,容易误判为网络问题。
  • 内网源建好后未停用外网源,客户端仍尝试连外网并超时,装包过程异常缓慢。

数据来源与参考

  • openEuler 镜像站使用说明
  • openEuler 内网源指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌