1. yumdownloader

最常用的下载软件包而不安装它们的程序是“yumdownloader”。
如果下载已安装的软件包,yumdownloader 实用程序特别有用。
yum-utils 包提供了 yumdownloader 实用程序。
安装“yum-utils”:

# yum install yum-utils

用于下载 RPM 及其依赖项的“yumdownloader”实用程序的语法是:

# yumdownloader [options] package1 [package2] [package..]

例如,要下载 RPM“firefox”及其所有依赖项,请使用 beow 命令。

# yumdownloader --destdir=/var/tmp/ --resolve firefox

其中
-destdir 是我们希望 RPM 包保存到的目录(如果未指定,则默认为当前目录)。

-resolve 解析依赖并下载所需的包

当使用适当的通配符时,yumdownloader 程序是一个非常强大的下载包的工具。
例如:

# yumdownloader [a]*                (will download all available packages whose name starts with "a")
# yumdownloader [a-c]*              (will download all available packages whose name starts with "a", "b" and "c")
# yumdownloader glibc*              (will download all available packages whose name starts with "glibc")

注意:虽然有一些命令可用于下载主包及其依赖项,但有时它们无法下载所有包。
在这种情况下,需要将丢失的软件包一一下载。

包默认直接保存在当前工作中;使用 -destdir 选项指定备用位置。
如果需要下载依赖,一定要加上-resolve。

下载 RPM 包的命令比较 yumdownloader VS yum-downloadonly VS repoquery

有时我们可能需要下载软件包而不安装它们。
如果我们要下载的 RPM 包有多个依赖项,这可能会变得困难且耗时。
为了节省时间和复杂性,可以使用以下程序下载 rpm 包而无需安装它:

  • yum-downloadonly 插件允许 "yum" 下载软件包而不安装它们
  • yumdownloader(yum-utils 包的一部分)
  • repotrack 或者 repoquery(yum-utils 包的一部分)

除了上述命令,我们还可以使用基本的“yum deplist”命令来查找 RPM 包的依赖项列表。
例如,要查找“nano”rpm 的依赖包,请使用以下命令。

# yum deplist nano
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.sfo12.us.leaseweb.net
 * epel: mirror.pnl.gov
 * extras: mirrors.xmission.com
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.pac-12.org
package: nano.x86_64 2.3.1-10.el7
  dependency: /bin/sh
   provider: bash.x86_64 4.2.46-29.el7_4
  dependency: /sbin/install-info
   provider: info.x86_64 5.1-4.el7
  dependency: libc.so.6(GLIBC_2.14)(64bit)
   provider: glibc.x86_64 2.17-196.el7_4.2
  dependency: libncursesw.so.5()(64bit)
   provider: ncurses-libs.x86_64 5.9-14.20130511.el7_4
  dependency: libtinfo.so.5()(64bit)
   provider: ncurses-libs.x86_64 5.9-14.20130511.el7_4
  dependency: rtld(GNU_HASH)
   provider: glibc.x86_64 2.17-196.el7_4.2
   provider: glibc.i686 2.17-196.el7_4.2
欢迎来到之路教程(on itroad-com)

2. repoquery/repotrack

经常使用“yumdownloader -resolve”命令下载软件包及其依赖项并不总是能成功识别所有依赖项。
最好使用“repoquery”查找依赖项,然后使用“yumdownloader”下载它们。

例如,我们可以使用 repoquery 命令查找 firefox RPM 的所有依赖项,然后使用带有“yumdownloader”的命令输出来下载依赖项。

# repoquery -R --resolve --recursive firefox | xargs -r yumdownloader

我们还可以使用“repotrack”实用程序下载 RPM 及其所有依赖项。
例如:

# repotrack firefox

3. yum 的 yum-downloadonly 插件

“yum-downloadonly”插件允许“yum”下载软件包而不安装它们。
安装包含“downloadonly”插件的包:

(CentOS/RHEL 5)
# yum install yum-downloadonly
(CentOS/RHEL 6,7)
# yum install yum-plugin-downloadonly

使用“-downloadonly”选项运行 yum 命令,如下所示:

# yum install --downloadonly --downloaddir=[directory] [package]

关于 yum-downloadonly 插件的注意事项

使用插件前,请检查 /etc/yum/pluginconf.d/downloadonly.conf 以确认此插件为“enabled=1”
这适用于“yum install/yum update”而不是“yum groupinstall”。
使用“yum groupinfo”来识别特定组中的包。

如果只指定了包名,则下载最新的可用包(如 sshd)。
否则,我们可以指定完整的包名称和版本(例如 httpd-2.2.3-22.el5)。

如果需要,我们可以使用同一命令下载多个包。

如果 repodata 在我们重新使用缓存之前过期,我们仍然需要重新下载 repodata。
默认情况下,需要两个小时才能过期。

日期:2020-09-17 00:13:03 来源:oir作者:oir