官方MySQL APT源不支持apt-mirror,因其缺少Packages.gz、Release等标准Debian索引文件;必须使用银河麒麟V10原生源中适配龙芯或飞腾架构的预编译MySQL deb包,并同步所有依赖仓库路径,且内网服务器须通过HTTP协议访问本地镜像。

为什么不能直接用官方MySQL APT源做离线镜像
因为官方MySQL APT仓库(https://repo.mysql.com/)不支持apt-mirror的元数据结构:它没有Packages.gz、Sources.gz等标准Debian格式索引文件,也没有Release签名文件。直接在mirror.list里写入该地址会报错ERROR: Cannot find Release file或卡在Getting: Release阶段。
必须用银河麒麟V10原生APT源里的MySQL包
银河麒麟V10(基于Debian 11)的官方源中已预编译并打包了适配龙芯3A5000(mips64el)或飞腾(arm64)架构的MySQL 5.7/8.0二进制deb包,这些包才是apt-mirror能正确抓取的对象。关键操作如下:
- 先确认目标服务器架构:
dpkg --print-architecture(常见为arm64或mips64el) - 查清麒麟源地址:
cat /etc/apt/sources.list,典型路径如:http://archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-$(ARCH)/custom/kylin-desktop/V10-SP1-$(ARCH) -
mirror.list中必须显式替换$(ARCH)为实际值(如arm64),不能留空或用变量语法 - 只同步含
mysql字样的deb行,避免拉整个桌面环境(节省空间)
同步后如何让内网服务器识别这个本地源
同步完成后,/app/data/apt-mirror/mirror/archive2.kylinos.cn/...下已有完整deb树。但内网服务器不会自动信任它——必须手动配置/etc/apt/sources.list指向本地HTTP服务路径,而非文件系统路径:
- 在内网服务器上起一个最小HTTP服务:
python3 -m http.server 8000 -d /app/data/apt-mirror/mirror - 修改
/etc/apt/sources.list,把原麒麟源地址替换成:deb [arch=arm64] http://:8000/archive2.kylinos.cn/deb/kylin/production/KY-V10-SP1-arm64/custom/kylin-desktop/V10-SP1-arm64 default all - 执行
apt update前,先在内网服务器运行curl -I http://<ip>:8000/archive2.kylinos.cn/.../InRelease</ip>确认能返回200 OK - 若提示
GPG error,说明缺少麒麟GPG密钥:需从外网麒麟源下载/archive2.kylinos.cn/deb/kylin/production/InRelease中的Signer字段对应公钥,用apt-key add导入(注意apt-key已废弃,推荐用gpg --dearmor转成/usr/share/keyrings/下文件)
安装MySQL时最常被忽略的依赖链
银河麒麟源里的mysql-server包依赖mysql-common、libmysqlclient21等,但这些包可能分布在不同子仓库(如partner或updates)。如果只同步了kylin-desktop主库,apt install mysql-server会报错Unable to locate package或Unmet dependencies:
- 必须同步所有关联仓库,例如在
mirror.list中补全:deb http://archive2.kylinos.cn/deb/kylin/production/PART-V10-SP1/custom/partner/V10-SP1-arm64 default all -
apt-mirror默认不递归抓取Depends:字段指向的远程URL,它只按deb行声明的路径拉取,所以仓库路径必须全覆盖 - 同步完成后检查
/app/data/apt-mirror/mirror/archive2.kylinos.cn/...下是否存在libmysqlclient21_*.deb等文件,缺失即说明对应deb行未配置
file://协议访问——否则apt会跳过GPG校验或无法解析架构限定符。


















