当前位置: 代码网 > it编程>游戏开发>ar > CentOS 里下载 RPM 包及其所有依赖包

CentOS 里下载 RPM 包及其所有依赖包

2024年08月03日 ar 我要评论
默认情况下,这个命令将会下载并把软件包保存到 /var/cache/yum/ 的 rhel-{arch}-channel/packageslocation 目录,不过,你也可以下载和保存软件包到任何位置,你可以通过 –downloaddir 选项来指定。现在去你指定的目录位置下,你将会看到那里有下载好的软件包和依赖的软件。Yumdownloader是一款简单,但是却十分有用的命令行工具,它可以一次性下载任何 RPM 软件包及其所有依赖包。一旦安装完成,运行如下命令去下载一个软件包,例如 httpd。

方法1 利用 downloadonly 插件下载 rpm 软件包及其所有依赖包
我们可以通过 yum 命令的 downloadonly 插件下载 rpm 软件包及其所有依赖包。为了安装 downloadonly 插件,以 root 身份运行以下命令。

yum install yum-plugin-downloadonly

现在,运行以下命令去下载一个 rpm 软件包。

yum install --downloadonly <package-name>

默认情况下,这个命令将会下载并把软件包保存到 /var/cache/yum/ 的 rhel-{arch}-channel/packageslocation 目录,不过,你也可以下载和保存软件包到任何位置,你可以通过 –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 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


让我们确认一下软件包是否被下载到我们指定的目录下。

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 插件。但是,两者都是十分简单易懂而且可以完成相同的工作。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com