挂载iso镜像是最简离线部署方式;需匹配系统版本的iso、空挂载点(如/mnt/iso)及本地路径,挂载后配置file:///mnt/iso为yum baseurl并禁用gpgcheck即可离线安装。

Linux 离线环境部署软件,核心在于“把依赖打包好、让包能被系统认出来、再用标准方式装上去”。不依赖网络,关键不是复制一堆 RPM 或 DEB 文件就完事,而是构建可识别的仓库结构或完整依赖集合。下面分三类实用路径讲清楚怎么做。
挂载 ISO 镜像直接当本地源(最简方案)
适用于 CentOS/RHEL 系统,且你手头有匹配版本的官方 DVD ISO(如 CentOS-7-x86_64-DVD-2009.iso)。它自带 Packages/ 和 repodata/,开箱即用。
- 上传 ISO 到服务器(例如放在 /root/centos7.iso)
- 创建挂载点:mkdir -p /mnt/iso
- 挂载:mount -o loop /root/centos7.iso /mnt/iso
- 新建 repo 文件(如 /etc/yum.repos.d/local-iso.repo):
[local-iso]
name=Local ISO Repository
baseurl=file:///mnt/iso/
enabled=1
gpgcheck=0
执行 yum clean all && yum repolist,看到 local-iso 显示 enabled 即成功。后续所有 yum install 都会从这个镜像里拉包。
扩展 ISO 源:添加自定义 RPM 包并重建元数据
原 ISO 的 Packages 不全?比如要装 RabbitMQ、Erlang 或 Docker CE,只需把它们放进去,再生成新的 repodata。
- 将 ISO 挂载内容复制到可写目录(ISO 只读):cp -r /mnt/iso /opt/myrepo
- 把额外 RPM 放进 /opt/myrepo/Packages/(注意检查依赖,可用 rpm -qpR xxx.rpm 查)
- 安装 createrepo:yum install -y createrepo(若离线,先从 ISO 的 Packages 目录手动 rpm -ivh 安装)
- 重建仓库索引:createrepo -v /opt/myrepo(会在 /opt/myrepo 下生成新 repodata/)
- 配置 baseurl 指向 file:///opt/myrepo,启用即可
打包完整依赖链用于纯本地安装(无仓库场景)
适合临时单机、版本混杂或无法改 yum 配置的环境。思路是:在一台同构联网机上,把目标软件 + 所有未满足依赖一次性下全,打包带走。
- Debian/Ubuntu 示例(装 nginx):
apt download $(apt-rdepends --print-uris --recurse nginx | grep "^'" | cut -d"'" -f2 | sort -u) - CentOS/RHEL 示例(装 httpd):
yumdownloader --resolve --destdir /tmp/offline-pkgs httpd(需先装 yum-utils) - 把整个目录(如 /tmp/offline-pkgs)拷到离线机,用 rpm -ivh *.rpm 或 dpkg -i *.deb 安装
- 若依赖冲突或缺失,离线机执行 yum install -f 或 apt-get install -f 补救
三种方式各适用不同场景:挂 ISO 快速应急;扩 ISO+createrepo 适合长期维护多个服务;打包依赖链最灵活,不挑环境。选哪一种,取决于你有没有 ISO、要不要复用、以及是否允许修改系统仓库配置。











