linux中下载软件包不安装需用包管理器的下载功能:debian/ubuntu用apt download,rhel/centos/fedora用yum/dnf download,或手动从镜像站wget/curl下载.deb/.rpm文件,注意依赖、架构和版本匹配。

在 Linux 中,下载软件安装包但不安装,核心是让包管理器只执行“获取”动作,跳过后续的解包、配置和安装流程。不同发行版的工具命令略有差异,但逻辑一致:先确认目标包存在、再下载到本地目录,不触发依赖安装或系统变更。
Debian/Ubuntu 系统:用 apt download 保存 .deb 文件
apt 工具本身不直接提供“仅下载”开关,但可通过 apt download(来自 apt-utils)实现:
- 确保已安装
apt-utils:运行sudo apt install apt-utils - 下载单个包(不含依赖):
apt download 软件包名,例如apt download curl,文件会保存在当前目录 - 如需下载完整依赖链,需配合
apt-rdepends手动递归下载,但注意它默认只输出依赖列表,不自动下载——需结合apt download逐个处理 - 下载的 .deb 文件可复制到离线机器,用
dpkg -i安装,但依赖需提前解决
RHEL/CentOS/Fedora 系统:用 yum/dnf download 插件
需要启用 downloadonly 插件(RHEL/CentOS 7 及以前)或直接使用 dnf 的内置功能(Fedora/CentOS 8+):
- CentOS 7 / RHEL 7:先安装插件
sudo yum install yum-plugin-downloadonly,再运行yum install --downloadonly --downloaddir=/path/to/dir 软件包名 - Fedora / CentOS 8+:dnf 原生支持,直接运行
dnf download 软件包名,文件默认存到当前目录;加--destdir指定路径,如dnf download --destdir ./rpms nginx - 若提示“no package matched”,说明包名不准确,可用
dnf search 关键词先查找真实名称
通用方法:从官方镜像站手动下载
适用于所有发行版,尤其适合获取特定版本或第三方软件:
- 访问对应发行版的软件仓库镜像站,例如:
– Ubuntu:packages.ubuntu.com,选择版本和架构后查找 .deb 文件链接
– CentOS/RHEL:vault.centos.org 或 rpmfusion.org
– Fedora:dl.fedoraproject.org - 复制 .deb 或 .rpm 文件的完整 URL,用
wget或curl -O下载,例如:wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb - 此方式完全绕过包管理器,适合下载内核、驱动、闭源工具等不在默认源中的包
注意事项与常见问题
仅下载不安装看似简单,但几个细节容易踩坑:
- 依赖不会自动下载:无论用哪种命令,除非显式指定(如 dnf download --resolve),否则只下主包,不带依赖。离线安装前务必确认依赖是否齐全
-
架构必须匹配:x86_64 包不能装在 aarch64 机器上,下载前用
uname -m查看目标系统架构 - 版本要对齐:CentOS 7 的 rpm 不兼容 CentOS 8,Ubuntu 22.04 的 deb 在 20.04 上可能因库版本过高而无法安装
-
缓存位置可查:apt 默认缓存路径是
/var/cache/apt/archives/,yum/dnf 缓存一般在/var/cache/yum/或/var/cache/dnf/,可直接从中复制已下载的包











