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

时间:2020-03-21 11:43:29  来源:igfitidea点击:

在这篇简短的教程中,我们将了解如何在CentOS中使用所有依赖项下载RPM包。

下载带有CentOS中的所有依赖性的RPM包

我们可以用两种方法做到这一点。
这是第一种方法。

1.使用"下载"插件使用所有依赖项下载RPM软件包

我们可以使用"DumploardOnly"插件用于YUM命令轻松下载任何RPM软件包。

要安装"下载"插件,请按照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

现在将在上面命令中指定的位置。
我们将看到带有所有依赖项的下载包。
在我的情况下,我已在/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更新",而不是"yum groupinstall"。
默认情况下,此插件将下载存储库中的最新可用包。
但是,我们可以通过指定版本下载特定版本。

例子:

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

此外,我们可以立即下载多个包,如下所示。

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

下载 - 免费教程:"10简单的方法来恢复Linux系统"

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

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

# 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

与"下载"插件不同,YumDownload可以下载与特定组相关的软件包。

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

就个人而言,我更喜欢yumdownloader以yum的"下载"插件。
但是,两者都很简单,也都一样有效。