需在局域网部署本地yum源服务:先确认服务端为银河麒麟服务器版(如v10 sp3)、架构匹配(如aarch64),再通过reposync同步官网仓库、createrepo生成元数据、apache或nginx发布,最后客户端配置internal.repo指向内网地址。

在局域网内为多台银河麒麟服务器提供稳定、安全、可批量更新的软件源服务,需避开外网依赖,同时确保同步内容与客户端系统版本、CPU架构严格一致。直接修改客户端源地址为公网地址会导致超时失败,必须通过本地镜像站中转。
确认服务端环境与客户端匹配
登录准备用作源服务器的银河麒麟主机(推荐V10 SP2或SP3),执行以下命令验证基础信息:
运行 cat /etc/kylin-version 查看系统大版本;运行 uname -m 确认架构(x86_64 / aarch64 / loongarch64);运行 rpm -q centos-release 2>/dev/null || echo "非RPM系" 判断是YUM系(服务器版)还是APT系(桌面版)。【若服务端为桌面版(APT系)却要服务服务器版(YUM系)客户端,将完全无法同步包格式,必须更换服务端系统】
记录下客户端集群中出现频率最高的组合,例如:Kylin V10 SP3 + aarch64。后续所有同步操作都以此为准。
拉取官方YUM仓库数据(仅限服务器版)
此步骤必须在能访问公网的麒麟服务器上执行。不能在桌面版或Ubuntu上运行reposync命令——它依赖dnf/yum核心组件及麒麟特有repo元数据解析逻辑。
第一步:备份并编辑官方源配置文件
执行 sudo cp /etc/yum.repos.d/kylin_aarch64.repo /etc/yum.repos.d/kylin_aarch64.repo.bak;打开 /etc/yum.repos.d/kylin_aarch64.repo,找到启用的仓库(如 [ks10-adv-os]),确认其 baseurl 指向真实地址,例如 https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/;将该行末尾的 $basearch 替换为实际架构名(aarch64),否则同步会失败。
第二步:创建存储目录并执行同步
运行 mkdir -p /data/repo/V10-SP3-aarch64;执行 reposync -m --repoid=ks10-adv-os -p /data/repo/V10-SP3-aarch64/。加 -m 参数可下载元数据(comps.xml等),避免后续createrepo报错;若中途断开,再次运行该命令会自动续传,无需清空目录。
第三步:检查同步结果
进入 /data/repo/V10-SP3-aarch64/ks10-adv-os/,确认存在 Packages/ 目录且内含大量 .rpm 文件;同时应有 repodata/ 目录。若只有空文件夹或报“no packages to download”,说明 baseurl 路径错误或网络策略拦截了HTTPS连接。
生成YUM仓库元数据
同步完成的目录只是原始包集合,缺少YUM客户端识别所需的索引结构。这一步不可跳过,否则客户端执行 yum makecache 会提示 “failed to parse repomd.xml”。
安装 createrepo 工具:sudo yum install -y createrepo。
进入仓库根目录:cd /data/repo/V10-SP3-aarch64/ks10-adv-os。
执行元数据生成:createrepo -g comps.xml -v .。其中 -g comps.xml 引入分组信息,使 yum groupinstall 可用;-v 显示详细过程,便于定位缺失依赖。
完成后检查 repodata/ 下是否生成了 repomd.xml、primary.xml.gz 等关键文件。若提示 “comps.xml not found”,说明原仓库未提供该文件,可去掉 -g 参数重试。
部署HTTP服务并映射仓库路径
方法一:使用 Apache(系统默认,兼容性最强)
安装并启用 httpd:sudo yum install -y httpd && sudo systemctl enable --now httpd。
创建软链接将仓库挂载到 Web 根目录:sudo ln -sf /data/repo/V10-SP3-aarch64/ks10-adv-os /var/www/html/repo。
开放防火墙端口:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload。
方法二:使用 Nginx(轻量高效,适合高并发)
若已安装 nginx,编辑 /etc/nginx/nginx.conf,在 http { } 块内添加:
server { listen 80; server_name _; location /repo { alias /data/repo/V10-SP3-aarch64/ks10-adv-os; autoindex on; } }
重启服务:sudo systemctl restart nginx。
验证服务可用性:在服务端浏览器访问 http://localhost/repo/repodata/repomd.xml,应返回 XML 内容;从局域网另一台机器用 curl -I http://[服务端IP]/repo/repodata/repomd.xml,状态码应为 200。
客户端配置本地YUM源
在每台内网麒麟服务器上操作:
备份原有源:sudo mv /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo.bak。
新建配置文件:
sudo tee /etc/yum.repos.d/internal.repo [internal-yum]<br>name=Internal Kylin YUM Source<br>baseurl=http://[服务端IP]/repo/<br>enabled=1<br>gpgcheck=0<br>priority=1<br>EOF。注意将
[服务端IP] 替换为实际IP,如 192.168.10.5;【baseurl末尾必须带斜杠 /,否则YUM会拼接错误路径导致404】
清除缓存并重建:sudo yum clean all && sudo yum makecache。
测试安装:sudo yum install -y vim-enhanced。若成功下载并安装,说明内网源已生效。











