在银河麒麟桌面版离线环境安装软件需配置本地apt源:先确认系统为id=kylin、version_id=v10/v11的桌面版,挂载iso并验证dists/下有v101等目录及packages.gz,再修改sources.list指向file:///mnt/kylin-desktop/并设trusted=yes,最后apt clean && apt update。

在银河麒麟桌面版离线环境中安装软件,必须让apt命令能从本地目录读取deb包和索引文件,否则会报“无法获取Release文件”或“找不到软件包”错误。
确认系统类型与ISO版本
先执行cat /etc/os-release | grep -E "(VERSION|ID)",确认是桌面版(ID=kylin,VERSION_ID=v10或v11)且与你手头的ISO版本严格匹配。服务器版用YUM,这里不适用——【一旦误用服务器版ISO配置APT源,apt update将始终失败】。
典型桌面版ISO名如:Kylin-Desktop-V10-SP2-2412-Release-20241215-x86_64.iso。
挂载ISO并验证结构
创建挂载点并挂载镜像:sudo mkdir -p /mnt/kylin-desktop && sudo mount -o loop ~/Kylin-Desktop-V10-SP2-2412-Release-20241215-x86_64.iso /mnt/kylin-desktop。
关键验证:执行ls /mnt/kylin-desktop/dists/,必须看到类似v101或v10-sp2这样的子目录;再执行ls /mnt/kylin-desktop/dists/v101/main/binary-amd64/,应存在Packages.gz文件。没有这个结构,apt无法解析源。
配置本地APT源
第一步:备份原配置:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak。
第二步:清空并重写sources.list:echo "deb [trusted=yes] file:///mnt/kylin-desktop/ v101 main restricted universe multiverse" | sudo tee /etc/apt/sources.list。
注意:v101必须与上一步ls /mnt/kylin-desktop/dists/输出的实际目录名完全一致,大小写、连字符都不能错;trusted=yes用于跳过GPG校验,离线环境无密钥可验证。
第三步:刷新索引:sudo apt clean && sudo apt update。成功时会显示“获取:1 file…”,末尾有“共XX个软件包可升级”提示。
用自定义deb包建源(无ISO时)
方法一:直接放包+生成索引
把所有deb包放进/opt/local-debs/(例如nginx_1.18.0-6ubuntu14.4_amd64.deb),确保该目录下只有deb文件,无子目录。
执行:cd /opt && sudo dpkg-scanpackages local-debs/ /dev/null | gzip > local-debs/Packages.gz。这一步必须在/opt目录下运行,否则生成的Packages.gz里路径会错。
然后修改sources.list为:deb [trusted=yes] file:///opt/ local-debs/,注意末尾斜杠不能少,且local-debs要与上面dpkg-scanpackages命令中的路径段完全对应。
方法二:复用ISO中的dists结构(推荐)
若已有ISO挂载在/mnt/kylin-desktop,可将新deb包复制进/mnt/kylin-desktop/pool/main/对应分类子目录,再运行sudo createrepo -v /mnt/kylin-desktop/(需先sudo apt install -y apt-utils)。此操作会重建Packages.gz并更新Release文件,使新包被apt识别。











