2026-09-08_Linux离线安装包下载手册

Linux 离线安装软件包下载手册(yum / dnf / apt)

适用场景:内网或离线服务器无法直接联网安装软件时,先在联网机器上用包管理器把软件包及其依赖下载到指定目录,再拷贝到目标机离线安装。


1. 适用前提

下载机(有网)与目标机(离线)需同一发行版、同一大版本、同一 CPU 架构,否则依赖对不上。

# 确认下载机与目标机架构一致(x86_64 / aarch64)
uname -m

# 查看系统发行版版本
cat /etc/os-release

2. CentOS 7 下载(yum)

CentOS 7 的 yum 不自带 downloadonly 功能,需先安装插件(每台机器只需一次)。

# 1. 安装 downloadonly 插件
sudo yum install -y yum-plugin-downloadonly

# 2. 下载软件包及全部依赖到指定目录(目录不存在会自动创建吗?不会,先建好)
sudo mkdir -p /指定/下载/目录
sudo yum install --downloadonly --downloaddir=/指定/下载/目录 <软件包名>

3. CentOS 8 / 9、RHEL 8+ 下载(dnf)

dnf 自带 downloadonly 功能,无需额外插件。

sudo dnf install --downloadonly --downloaddir=/指定/下载/目录 <软件包名>

4. Debian / Ubuntu 下载(apt)

apt 使用 --download-only 参数,默认下载到 /var/cache/apt/archives/,可用 -o 参数指定目录。

# 1. 默认缓存目录下载(后续到 /var/cache/apt/archives/ 取包)
sudo apt-get install --download-only <软件包名>

# 2. 指定下载目录(目录必须提前创建,否则报错)
sudo mkdir -p /指定/下载/目录
sudo apt-get install --download-only -o Dir::Cache::archives="/指定/下载/目录" <软件包名>

5. 包已安装时下载不到(重点坑)

坑:软件包在当前机器已安装时,yum/apt 会提示"已安装/已是最新"而跳过下载,下载目录为空。 解决办法是强制重下或用专用工具:

# yum 系:改用 yumdownloader(--resolve 连同依赖一起下载)
sudo yum install -y yum-utils
sudo yumdownloader --resolve --destdir=/指定/下载/目录 <软件包名>

# dnf 系等价命令
sudo dnf download <软件包名> --resolve --destdir=/指定/下载/目录

# apt 系:加 --reinstall 强制重新下载
sudo apt-get install --reinstall --download-only -o Dir::Cache::archives="/指定/下载/目录" <软件包名>

6. 拷贝到目标机

把下载目录打包传输(scp / U盘均可),目标机解压后即可离线安装。

# 下载机打包
tar czf pkgs.tar.gz /指定/下载/目录

# 传输(示例 scp)
scp pkgs.tar.gz user@目标机IP:/tmp/

# 目标机解压
tar xzf /tmp/pkgs.tar.gz

7. 目标机离线安装

# CentOS 7:localinstall 自动处理目录内依赖
sudo yum localinstall /下载目录/*.rpm

# CentOS 8 / 9
sudo dnf install /下载目录/*.rpm

# Debian / Ubuntu:apt 安装本地 deb 会自动解析目录内依赖
cd /下载目录 && sudo apt install ./*.deb

# 兜底方案(不解析依赖,缺依赖会直接报错,需自行保证包齐全)
sudo rpm -Uvh /下载目录/*.rpm
sudo dpkg -i /下载目录/*.deb

8. 常见问题排查

  • yum 报 unknown option --downloadonly → CentOS 7 未装插件,先执行 yum install -y yum-plugin-downloadonly
  • apt 提示"已是最新版本 / Nothing to download" → 本机已装同版本,见第 5 节加 --reinstall
  • yum 提示"包已安装"、目录里没有 rpm → 改用 yumdownloader --resolve(见第 5 节)
  • 离线机安装报缺依赖 → 依赖没下全。最稳做法:在全新系统或干净容器里重新执行下载,能拉全全部依赖
  • 架构不一致导致装不上uname -m 确认下载机与目标机同为 x86_64(或同为 aarch64)

总结:核心就两条命令——yum 系用 --downloadonly --downloaddir=,apt 系用 --download-only;下载机与目标机同系统同架构;包已装过时换 yumdownloader --resolve 或加 --reinstall 强制重下。记好这三条即可顺畅完成离线软件包准备。

posted on 2026-09-08 10:09  风惊庭前叶  阅读(32)  评论(0)    收藏  举报