yum 是基于 Red Hat 的系统 (如 CentOS 、 Fedora 、 RHEl) 上的预设包管理器。使用 yum,你可以安装或者更新一个 RPM 包,并且他会自动解决包依赖关系。但是如果你只想将一个 RPM 包下载到你的系统上该怎么办呢? 例如,你可能想要获取一些 RPM 包在以后使用,或者将他们安装在另外的机器上。
这里说明了如何从 yum 仓库上下载一个 RPM 包。

方法一:yum
yum 命令本身就可以用来下载一个 RPM 包,标准的 yum 命令提供了–downloadonly(只下载) 的选项来达到这个目的。

$ sudo yum install –downloadonly

预设情况下,一个下载的 RPM 包会储存在下面的目录中:

/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages

以上的 [repository] 表示下载包的来源仓库的名称 (例如:base 、 fedora 、 updates)
如果你想要将一个包下载到一个指定的目录 (如/tmp):

$ sudo yum install –downloadonly –downloaddir=/tmp

注意,如果下载的包包含了任何没有满足的依赖关系,yum 将会把所有的依赖关系包下载,但是都不会被安装。
另外一个重要的事情是,在 CentOS/RHEL 6 或更早期的版本中,你需要安装一个单独 yum 插件外挂 (名称为 yum-plugin-downloadonly) 才能使用–downloadonly 命令选项:

$ sudo yum install yum-plugin-downloadonly

如果没有该插件外挂,你会在使用 yum 时得到以下错误:

Command line error: no such option: –downloadonly

方法二: Yumdownloader
另外一个下载 RPM 包的方法就是通过一个专门的包下载工具–yumdownloader 。 这个工具是 yum 工具包 (包含了用来进行 yum 包管理的帮助工具套件) 的子集。

$ sudo yum install yum-utils

下载一个 RPM 包:

$ sudo yumdownloader

下载的包会被储存在当前目录中。你需要使用 root 许可权,因为 yumdownloader 会在下载过程中更新包索引档案。与 yum 命令不同的是,任何依赖包不会被下载。