1. 什么是离线安装及其应用场景?

  • 离线安装指在无网络环境下,通过预先下载的软件包及其依赖,实现软件的安装和配置。
  • 常见于服务器环境、受限网络环境或生产环境中需保证稳定性和安全性。

2. 常见Linux发行版的软件包管理

发行版包管理器软件包格式
Debian/Ubuntuapt / dpkg.deb
RedHat/CentOS/Fedorayum / dnf / rpm.rpm
Arch Linuxpacman.pkg.tar.zst

3. 离线安装的核心难点:依赖关系处理

  • Linux软件通常依赖多个库和包,离线时需确保所有依赖完整,否则安装失败。
  • 解决方案是提前收集依赖包或使用工具自动下载依赖。

4. 离线安装方法汇总

方法名称说明适用场景
4.1 直接下载并手动安装手动下载软件包和依赖,逐个安装依赖少,简单软件
4.2 使用工具下载依赖利用工具自动解析并下载依赖包复杂依赖环境
4.3 制作本地仓库构建本地yum/apt仓库,离线统一管理安装多机器部署、大规模

5. Debian/Ubuntu 离线安装示例

5.1 利用 apt 下载软件及依赖包

  • 在有网络的机器上执行:
sudo apt-get install --download-only package_name
  • 依赖包下载在 /var/cache/apt/archives/ 目录,复制这些 .deb 包到无网络机器。

5.2 在离线机器安装

sudo dpkg -i /path/to/packages/*.deb
sudo apt-get install -f  # 修复依赖

5.3 使用 apt-offline 工具自动化

  • 安装 apt-offline(联网机器)
sudo apt-get install apt-offline
  • 在离线机器生成请求文件:
apt-offline set offline.sig
  • 将 offline.sig 复制到联网机器,下载包:
apt-offline get offline.sig --bundle offline.zip
  • 将 offline.zip 拷贝回离线机器,安装:
apt-offline install offline.zip

6. RedHat/CentOS 离线安装示例

6.1 使用 yumdownloader 下载软件包

  • 在联网机器上:
yum install yum-utils
yumdownloader --resolve package_name
  • --resolve 参数会下载所有依赖包。

6.2 拷贝包到离线机器并安装

rpm -ivh *.rpm
  • 如依赖缺失,使用 yum localinstall *.rpm 进行依赖处理。

6.3 制作本地yum仓库

  • 将下载的 rpm 包放入某目录(如 /repo
createrepo /repo
  • 配置本地仓库文件 /etc/yum.repos.d/local.repo
[localrepo]
name=Local Repository
baseurl=file:///repo
enabled=1
gpgcheck=0
  • 使用 yum install package_name 即可安装。

7. 通用技巧和注意事项

  • 依赖包完整性:确保所有依赖包都已下载,否则安装失败。
  • 版本匹配:离线包应匹配目标系统版本,避免依赖冲突。
  • 签名问题:部分发行版启用包签名,离线安装时可能需要关闭签名检查。
  • 工具支持:推荐使用 apt-offlineyumdownloadercreaterepo 等工具,简化离线安装流程。
  • 文档和日志:保留安装日志,方便排查问题。

8. 小结

发行版主要工具/命令关键点
Debian/Ubuntuapt-get –download-only、apt-offline自动获取依赖,打包传输
RedHat/CentOSyumdownloader、createrepo本地仓库,批量离线安装