如何在 CentOS 中下载包含所有依赖项的 RPM 包

【翻译于ostechnix.com 上 Senthil Kumar的《How To Download A RPM Package With All Dependencies In CentOS》】

我们可以使用curl或wget命令下载任何包,对吗?但是,这些命令不会下载所需的依赖项。您可能需要花一些时间手动搜索并下载安装包所需的依赖项。好吧,不再!在这个简短的教程中,让我们看看如何在 CentOS 中下载包含所有依赖项的 RPM 包。我在 CentOS 7 上测试了本指南,尽管相同的步骤可能适用于其他基于 RPM 的系统,例如 RHEL、Fedora 和 Scientific Linux。

内容

  • 在 CentOS 中下载一个包含所有依赖项的 RPM 包
    • 1.使用“Downloadonly”插件下载包含所有依赖项的RPM包
    • 2.使用“Yumdownloader”工具下载所有依赖的 RPM 包

在 CentOS 中下载一个包含所有依赖项的 RPM 包

我们可以通过两种方法来做到这一点。这里是第一种方法。

1.使用“Downloadonly”插件下载包含所有依赖项的RPM包

我们可以使用yum 命令的“Downloadonly”插件轻松下载具有所有依赖项的任何 RPM 包。

要安装 Downloadonly 插件,请以root用户身份运行以下命令。

# yum install yum-plugin-downloadonly

现在,运行以下命令下载 RPM 包。

# yum install --downloadonly <package-name>

默认情况下,此命令将下载包并将其保存在 **/var/cache/yum/**位置。但是,您可以使用 “–downloaddir” 选项将软件包下载并保存在您选择的任何位置。

# yum install --downloadonly --downloaddir=<directory> <package-name>

例子:

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd

示例输出:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: epel.mirror.angkasa.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Installing:
httpd x86_64 2.4.6-40.el7.centos.4 updates 2.7 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-40.el7.centos.4 updates 83 k
mailcap noarch 2.1.41-2.el7 base 31 k

Transaction Summary
=======================================================================================================================================
Install 1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Background downloading packages, then exiting:
(1/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:01 
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(3/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:01 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:01 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:09 
---------------------------------------------------------------------------------------------------------------------------------------
Total 331 kB/s | 3.0 MB 00:00:09 
exiting because "Download Only" specified

使用“Downloadonly”插件下载包含所有依赖项的 RPM 包

现在转到您在上述命令中指定的位置。您将在那里看到包含所有依赖项的下载包。就我而言,我已将软件包下载到 /root/mypackages/ 目录中。

让我们验证一下内容。

# ls /root/mypackages/

示例输出:

apr-1.4.8-3.el7.x86_64.rpm 
apr-util-1.5.2-6.el7.x86_64.rpm 
httpd-2.4.6-40.el7.centos.4.x86_64.rpm 
httpd-tools-2.4 .6-40.el7.centos.4.x86_64.rpm 
mailcap-2.1.41-2.el7.noarch.rpm

列出下载的包

正如您在上面的输出中看到的,已经下载了包含所有依赖项的包httpd

请注意,此插件适用于“yum install/yum update”,而不适用于“yum groupinstall”。默认情况下,此插件将下载存储库中最新的可用包。但是,您可以通过指定版本来下载特定版本。

例子:

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7

此外,您可以一次下载多个包,如下所示。

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd

2.使用“Yumdownloader”工具下载所有依赖的 RPM 包

Yumdownloader 是一个简单而有用的命令行实用程序,可以一次性下载任何 RPM 包以及所有必需的依赖项。

root用户身份使用以下命令安装 Yumdownloader 。

# yum install yum-utils

安装后,运行以下命令下载软件包,例如httpd

# yumdownloader httpd

要下载包含所有依赖项的包,请使用 –resolve 选项:

# yumdownloader --resolve httpd

默认情况下,Yumdownloader 将下载当前工作目录中的包。

要将软件包和所有依赖项一起下载到特定位置,请使用 –destdir 选项:

# yumdownloader --resolve --destdir=/root/mypackages/ httpd

或者

# yumdownloader --resolve --destdir /root/mypackages/ httpd

示例输出:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: epel.mirror.angkasa.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(2/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:02 
(3/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:02 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:03 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:19

使用 Yumdownloader 实用程序下载包含所有依赖项的 RPM 包

让我们验证包是否已在指定位置下载。

# ls /root/mypackages/

示例输出:

apr-1.4.8-3.el7.x86_64.rpm 
apr-util-1.5.2-6.el7.x86_64.rpm 
httpd-2.4.6-40.el7.centos.4.x86_64.rpm 
httpd-tools-2.4 .6-40.el7.centos.4.x86_64.rpm 
mailcap-2.1.41-2.el7.noarch.rpm

列出下载的包
与“Downloadonly”插件不同,Yumdownload 可以下载与特定组相关的包

# yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/

就个人而言,我更喜欢 Yumdownloader 而不是 yum 的“Downloadonly”插件。但是,两者都很容易,并且可以完成相同的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值