yum install --downloadonly 报错是因为缺少 yum-plugin-downloadonly 插件,CentOS 7 默认不自带,需手动安装并启用;该选项依赖可用仓库配置,且不适用于已安装包的下载,此时应改用 yum reinstall --downloadonly 或 yumdownloader。

为什么 yum install --downloadonly 有时会报错?
直接执行 yum install --downloadonly httpd 却提示 no such option: --downloadonly,说明 yum-plugin-downloadonly 插件没装。CentOS 7 默认不自带这个插件,必须手动安装:
yum install -y yum-plugin-downloadonly- 装完检查
/etc/yum/pluginconf.d/downloadonly.conf,确认enabled=1 - 如果用的是本地光盘源(
CentOS-Media.repo),而CentOS-Base.repo被禁用或删除,插件就无法从网络仓库获取——得先恢复基础源
yumdownloader 和 --downloadonly 哪个更可靠?
yumdownloader 是 yum-utils 提供的专用工具,比 --downloadonly 更直观、可控,尤其适合批量或离线准备场景:
- 先装依赖:
yum install -y yum-utils - 下载主包 + 所有依赖:
yumdownloader --destdir=/tmp --resolve httpd -
--resolve是关键:不加它只下主包,加了才递归拉齐所有 rpm - 它默认把包扔进当前目录,不依赖
/var/cache/yum的复杂层级结构,路径清晰
下载路径总找不到包?默认缓存位置太深
用 --downloadonly 不指定 --downloaddir 时,rpm 实际落在:/var/cache/yum/x86_64/7/base/packages/ 这类嵌套路径里,不同 repo 还分目录,手动翻很麻烦:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 最省事:始终显式指定路径,比如
--downloaddir=/opt/rpms - 路径末尾不加斜杠:
--downloaddir=/opt/rpms是对的;--downloaddir=/opt/rpms/也可能创建子目录,行为不稳定 - 目标目录需提前存在且有写权限,否则命令静默失败
- 如果下载多个包(如
kubelet kubeadm kubectl),它们会全部落到同一目录,不会自动建子文件夹
已安装的包还能下载吗?
不能用 yum install --downloadonly pkgname,因为 yum 认为“已满足”,不会触发下载逻辑。这时要换命令:
- 用
yum reinstall --downloadonly --downloaddir=/path pkgname - 或用
yumdownloader --destdir=/path pkgname(yumdownloader不管是否已装,照下不误) - 注意:
yumdownloader默认不拉依赖,加--resolve才补全
真正容易被忽略的是:--downloadonly 和 yumdownloader 都依赖当前可用的 repo 配置。如果某个包只在 EPEL 或第三方源里,但那个源没启用,命令就会说“找不到包”——不是功能失效,是源没配对。

















