PUB:20161025 How To Download A RPM Package With All Dependencies In CentOS

@LinuxBars
This commit is contained in:
wxy 2016-11-08 08:31:39 +08:00
parent abf254696a
commit ad555326a7

View File

@ -1,13 +1,13 @@
在CentOS下根据依赖性来下载RPM软件
===
怎样在 CentOS 里下载 RPM 包及其所有依赖
========
![在CentOS下根据依赖性来下载RPM软件包](https://www.ostechnix.com/wp-content/uploads/2016/10/Download-a-package-720x340.png)
![怎样在 CentOS 下下载 RPM 包及其所有依赖包](https://www.ostechnix.com/wp-content/uploads/2016/10/Download-a-package-720x340.png)
前几天我尝试去创建一个我们在CentOS 7下经常使用的软件的本地仓库。当然我们可以使用 curl 或者 wget 下载任何软件包然而这些命令并不能下载要求的依赖软件包。你必须去花一些时间而且手动的去寻找和下载被安装的软件所依赖的软件包。然而,这并不是我们必须要做的事情。在这个简短的教程中我将会带领你学习如何根据依赖性来下载软件包的两种方法。我已经在CentOS 7 下进行了测试,尽管这些相同的步骤或许在其他基于 RPM 管理系统的发行版上也可以工作,例如 RHELFedora 和 Scientific Linux。
前几天我尝试去创建一个仅包含了我们经常 CentOS 7 下使用的软件的本地仓库。当然我们可以使用 curl 或者 wget 下载任何软件包然而这些命令并不能下载要求的依赖软件包。你必须去花一些时间而且手动的去寻找和下载被安装的软件所依赖的软件包。然而,我们并不是必须这样。在这个简短的教程中,我将会带领你以两种方式下载软件包及其所有依赖包。我已经在 CentOS 7 下进行了测试,不过这些相同的步骤或许在其他基于 RPM 管理系统的发行版上也可以工作,例如 RHELFedora 和 Scientific Linux。
### 方法 1-利用“Downloadonly”插件来根据依赖性来下载RPM软件
### 方法 1 利用 “Downloadonly” 插件下载 RPM 软件包及其所有依赖
我们可以通过 yum 命令的“Downloadonly”插件来很容易地根据依赖性来下载RPM软件包。
我们可以通过 yum 命令的 “Downloadonly” 插件下载 RPM 软件包及其所有依赖包。
为了安装 Downloadonly 插件,以 root 身份运行以下命令。
@ -15,13 +15,13 @@
yum install yum-plugin-downloadonly
```
现在,运行以下命令去下载一个 RPM 软件包
现在,运行以下命令去下载一个 RPM 软件包
```
yum install --downloadonly <package-name>
```
默认情况下,这个命令将会下载并把软件包保存到 /var/cache/yum/ 在 rhel-{arch}-channel/packageslocation然而你可以下载和保存软件包到任何位置你可以通过 “downloaddir” 选项来指定。
默认情况下,这个命令将会下载并把软件包保存到 `/var/cache/yum/``rhel-{arch}-channel/packageslocation` 目录,不过,你也可以下载和保存软件包到任何位置,你可以通过 `downloaddir` 选项来指定。
```
yum install --downloadonly --downloaddir=<directory> <package-name>
@ -86,9 +86,9 @@ Total 331 kB/s | 3.0 MB 00:00:09
exiting because "Download Only" specified
```
[![rootserver1_001](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_001.png)][6]
![rootserver1_001](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_001.png)
现在去你指定的目录位置下你将会看到那里有下载好的软件包和依赖的软件。在我这种情况下,我已经把软件包下载到/root/mypackages/ 目录下。
现在去你指定的目录位置下你将会看到那里有下载好的软件包和依赖的软件。在我这种情况下,我已经把软件包下载到 `/root/mypackages/` 目录下。
让我们来查看一下内容。
@ -108,10 +108,9 @@ mailcap-2.1.41-2.el7.noarch.rpm
[![rootserver1_003](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_003-1.png)][5]
正如你在上面输出所看到的, httpd软件包已经被依据所有依赖性下载完成了.
正如你在上面输出所看到的, httpd软件包已经被依据所有依赖性下载完成了
请注意,这个插件适用于 “yum install/yum update” 而且并不适用于 “yum groupinstall”。默认情况下这个插件将会下载仓库中最新可用的软件包。然而你可以通过指定版本号来下载某个特定的软件版本。
请注意,这个插件适用于 `yum install/yum update` 但是并不适用于 `yum groupinstall`。默认情况下,这个插件将会下载仓库中最新可用的软件包。然而你可以通过指定版本号来下载某个特定的软件版本。
例子:
@ -119,29 +118,28 @@ mailcap-2.1.41-2.el7.noarch.rpm
yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7
```
Also, you can download multiple packages at once as shown below.
此外,你也可以如下一次性下载多个包:
```
yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd
```
### 方法 2-使用 Yumdownloader 工具来根据依赖性下载 RPM 软件包,
### 方法 2 使用 “Yumdownloader” 工具来下载 RPM 软件包及其所有依赖包
“Yumdownloader” 是一款简单,但是却十分有用的命令行工具,它可以一次性下载任何 RPM 软件包及其所有依赖包。
Yumdownloader是一款简单但是却十分有用的命令行工具它可以一次性根据依赖性下载任何 RPM 软件包
以 root 身份运行如下命令安装 Yumdownloader 工具
以 root 身份运行如下命令安装 “Yumdownloader” 工具。
```
yum install yum-utils
```
一旦安装完成,运行如下命令去下载一个软件包,例如 httpd
一旦安装完成,运行如下命令去下载一个软件包,例如 httpd
```
yumdownloader httpd
```
为了根据所有依赖性下载软件包,我们使用 _resolve 参数:
为了根据所有依赖性下载软件包,我们使用 `--resolve` 参数:
```
yumdownloader --resolve httpd
@ -149,18 +147,19 @@ yumdownloader --resolve httpd
默认情况下Yumdownloader 将会下载软件包到当前工作目录下。
为了将软件下载到一个特定的目录下,我们使用 _destdir 参数:
为了将软件下载到一个特定的目录下,我们使用 `--destdir` 参数:
```
yumdownloader --resolve --destdir=/root/mypackages/ httpd
```
或者
或者
```
yumdownloader --resolve --destdir /root/mypackages/ httpd
```
终端输出:
终端输出
```
Loaded plugins: fastestmirror
@ -188,9 +187,10 @@ Loading mirror speeds from cached hostfile
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:19
```
[![rootserver1_004](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_004-1.png)][3]
![rootserver1_004](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_004-1.png)
让我们确认一下软件包是否被下载到我们指定的目录下。
```
ls /root/mypackages/
```
@ -205,7 +205,7 @@ httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm
```
[![rootserver1_005](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_005.png)][2]
![rootserver1_005](http://www.ostechnix.com/wp-content/uploads/2016/10/root@server1_005.png)
不像 Downloadonly 插件Yumdownload 可以下载一组相关的软件包。
@ -213,7 +213,7 @@ mailcap-2.1.41-2.el7.noarch.rpm
yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/
```
在我看来,我更喜欢 Yumdownloader 应用在 Yum 上面。但是,两者都是十分简单易懂而且可以完成相同的工作。
在我看来,我喜欢 Yumdownloader 更胜于 Yum 的 Downloadonly 插件。但是,两者都是十分简单易懂而且可以完成相同的工作。
这就是今天所有的内容,如果你觉得这份引导教程有用,清在你的社交媒体上面分享一下去让更多的人知道。
@ -224,10 +224,8 @@ yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/
via: https://www.ostechnix.com/download-rpm-package-dependencies-centos/
作者:[SK][a]
译者:[LinuxBars](https://github.com/LinuxBars)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出