必须先确认系统类型和包管理器:yum系(如银河麒麟服务器版、centos)用iso挂载配local.repo,apt系(如ubuntu server、银河麒麟桌面版)用iso挂载改sources.list,混用会失败。

服务器系统安装后,若处于无网络、内网隔离或需统一软件版本的场景,必须配置本地 YUM(RPM 系)或 APT(DEB 系)源。关键不是“怎么装”,而是“先认准系统类型”——银河麒麟、CentOS、Rocky、Ubuntu Server 等虽都叫“服务器版”,但包管理体系完全不同,混用会直接失败。
第一步:确认系统类型和包管理器
执行以下命令快速判断:
-
看发行系别:
cat /etc/os-release | grep -E "(ID|ID_LIKE|VERSION_CODENAME)"
— 若含ID="centos"、ID_LIKE="rhel fedora"或/etc/yum.repos.d/存在,属 YUM/DNF 系(如麒麟服务器版、CentOS/RHEL);
— 若含ID="ubuntu"、ID_LIKE="debian"或VERSION_CODENAME为 jammy/noble,属 APT 系(如 Ubuntu Server、麒麟桌面版误当服务器用)。 -
看包管理器是否存在:
which yum dnf apt apt-get
— 优先以dnf(RHEL 8+)或yum(RHEL 7/CentOS 7)为准;
— 若只有apt,则必须走 APT 流程,不可用 yum 命令。
YUM 系服务器:挂载 ISO 配本地源(推荐用于麒麟V10 SP3、CentOS 7/8)
适用于完全断网环境,所有 rpm 包、依赖元数据、GPG 签名均来自 ISO 镜像,无需额外生成 repodata。
- 创建挂载点并挂载 ISO:
sudo mkdir -p /mnt/kylin-server && sudo mount -o loop ~/Kylin-Server-V10-SP3-2403-Release-x86_64.iso /mnt/kylin-server - 验证结构:
ls /mnt/kylin-server/Packages/ | head -3(应有数百个 .rpm)ls /mnt/kylin-server/repodata/(必须存在 files.xml.gz、primary.xml.gz 等) - 新建 repo 文件:
sudo tee /etc/yum.repos.d/local.repo [local]<br>name=Local ISO Repository<br>baseurl=file:///mnt/kylin-server<br>enabled=1<br>gpgcheck=0<br>EOF
- 刷新并验证:
sudo yum clean all && sudo yum makecache && sudo yum repolist
输出中应显示 “local” 仓库及有效包数量(如 5823)。
APT 系服务器:挂载 ISO 配本地源(如 Ubuntu Server、麒麟桌面版部署为服务节点)
注意:Ubuntu Server 默认不带 GUI,但仍是 Debian 血统,必须用 sources.list 方式,不能套用 .repo 文件。
- 挂载 ISO:
sudo mkdir -p /mnt/ubuntu-server && sudo mount -o loop ~/ubuntu-22.04.5-live-server-amd64.iso /mnt/ubuntu-server - 检查 dists 目录:
ls /mnt/ubuntu-server/dists/→ 应见jammy(对应 22.04)或noble(24.04) - 重写 sources.list:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak<br>sudo tee /etc/apt/sources.list deb [trusted=yes] file:///mnt/ubuntu-server jammy main restricted universe multiverse<br>deb [trusted=yes] file:///mnt/ubuntu-server jammy-updates main restricted universe multiverse<br>deb [trusted=yes] file:///mnt/ubuntu-server jammy-security main restricted universe multiverse<br>EOF
- 更新索引:
sudo apt update
成功时显示多个Hit行,无Failed to fetch。
常见问题直击
-
“yum repolist 显示 0 packages”:多半是 ISO 挂载路径错误,或 baseurl 写成
file:///mnt/kylin-server/少了结尾斜杠(必须有);也可能是 ISO 不含 repodata(需用createrepo_c手动补,但麒麟/Ubuntu 官方 ISO 已自带)。 -
“apt update 报 GPG error”:加
[trusted=yes]参数可跳过签名校验(离线可信环境适用);生产环境建议保留 gpgcheck=1 并导入 ISO 内的 Release.gpg(路径通常为/mnt/xxx/dists/jammy/InRelease)。 -
“mount: wrong fs type”:ISO 文件损坏或非标准格式,可用
file ~/xxx.iso确认是否为 ISO9660;x86_64 镜像勿用 ARM 版本。











