必须搭建本地APT镜像源;挂载UOS ISO至/mnt,拷贝dists和pool目录到本地仓库根目录,配置sources.list指向file:///路径并匹配eagle或fou代号,生成对应架构的Packages.gz索引,最后apt update验证Hit成功。

当统信UOS服务器部署在完全隔离的内网环境中,既无法访问互联网又需批量安装软件、修复图形界面组件或满足gcc编译环境依赖时,必须搭建一个可被apt直接识别的本地APT镜像源。
挂载ISO镜像并提取仓库数据
第一步:将UOS系统安装ISO文件上传至目标服务器任意目录(如/home/uos/),确认文件名形如uniontechos-server-20-enterprise-1020-arm64.iso或uniontechos-desktop-20-*.iso。
第二步:以root身份执行挂载操作:sudo mount -o loop /home/uos/uniontechos-server-20-enterprise-1020-arm64.iso /mnt。注意必须使用-o loop参数,否则无法识别ISO为块设备。
第三步:创建本地仓库根目录,例如/home/uos/local-apt,然后执行cp -r /mnt/dists /mnt/pool /home/uos/local-apt/。这一步拷贝的是完整deb包索引结构,缺一不可——【若漏掉dists目录,apt update将提示Ign:1 file:///home/uos/local-apt eagle InRelease】。
配置本地APT源地址
方法一:直接编辑源列表文件
运行sudo vim /etc/apt/sources.list,清空全部内容后写入单行:deb [trusted=yes] file:///home/uos/local-apt eagle main contrib non-free
方法二:适配D版与E版差异
UOS D版(1030d及之前)使用eagle代号;E版起统一改用fou。若不确定版本,先执行cat /etc/os-version | grep edition查看输出中是否含Edition: E,再决定写eagle还是fou。
方法三:启用本地源前务必注释或删除其他所有deb行,否则apt会尝试连接已失效的远程源,导致update卡在Hitting阶段超时失败。
生成Packages索引并验证可用性
进入仓库根目录:cd /home/uos/local-apt。
执行命令生成索引文件:dpkg-scanpackages pool/ /dev/null | gzip -9c > dists/eagle/main/binary-amd64/Packages.gz。若系统为arm64架构,则路径中binary-amd64需改为binary-arm64。
这一步不可跳过——ISO镜像中的Packages.gz是只读的,且未包含当前pool目录下可能新增的包;不重建索引会导致apt search查不到新放入的deb包。
最后执行sudo apt clean && sudo apt update,观察终端输出:若出现Hit:1 file:///home/uos/local-apt eagle InRelease且无Failed to fetch,即表示本地源已就绪。

















