经常与一些保密级别较高的企业打交道,他们使用的网络都是内部网络,根本无法访问到公网,但是部署一些项目时难免会有依赖包需要离线安装。遇到这种问题通常都是手动去下载依赖的库,然后离线安装,但是你无法判断下载的这个依赖库是否还依赖其他库,如果是手动去下载安装将耗费很长时间(他们导入任何文件都要走流程,一次就需要4h左右),为了改善这种情况,就需要将所有依赖都离线下载到本,本文将介绍如何将Centos和Ubuntu的依赖包保存到本地。
CentOS下载 RPM 包及其所有依赖包(推荐yumdownloader)
方法一:
我们可以通过 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
正如你在上面输出所看到的, 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
方法二:
Yumdownloader是一款简单,但是却十分有用的命令行工具,它可以一次性下载任何 RPM 软件包及其所有依赖包。 以 root 身份运行如下命令安装 Yumdownloader 工具。
yum install yum-utils
一旦安装完成,运行如下命令去下载一个软件包,例如 httpd。
yumdownloader httpd