今天,我们将看看如何使用包管理器只下载 rpm 包(离线),而不需要在 Linux 上安装它们的所有依赖项。
Yum 和 Dnf 包管理器用于 RedHat 发行版,即 RedHat、CentOS 和 Fedora,主要用于安装、重新安装、更新、升级和删除 rpm 包。
注意:请注意 yum-utils 软件包已在 Centos 和 RHEL 7 中被弃用
有两种方法无需安装即可下载包
1) yum-downloadonly 实用程序
2)使用 yumdownloader
3)使用 dnf-download
安装 yum-downloadonly 工具 (CentOS & RHEL 6.8)
让我们首先使用以下命令安装 downloadonly 实用程序。
yum install yum-plugin-downloadonly
使用 yum-downloadonly 下载包
现在我们已经下载了实用工具,让我们看看如何下载 Web 服务器包(httpd)
yum install –-downloadonly httpd
样本输出
[root@li1080-41 ~]# yum install --downloadonly httpd
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* extras: mirrors.linode.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-60.el6.centos.6 will be installed
--> Processing Dependency: httpd-tools = 2.2.15-60.el6.centos.6 for package: htt pd-2.2.15-60.el6.centos.6.x86_64
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-60.el6.centos .6.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-60.el6.cent os.6.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15- 60.el6.centos.6.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-60.e l6.centos.6.x86_64
注意:默认情况下,包下载到 /var/cache/yum 目录。要指定替代路径,请附加 --downloaddir=/path/ 标志,例如
yum -y install --downloadonly --downloaddir=/opt samba
上述命令将 samba 包存储在 /opt 目录中。
安装 yumdownloader (CentOS & RHEL 7)
首先安装 EPEL 存储库。请注意 yum-utils 在 Centos 和 RHEL 7 中已弃用
yum install epel-release
使用 yumdownloader 下载包
要下载软件包,请运行如下所示的命令。该示例显示了 openssh 服务器的下载。
yumdownloader package-name
注意:
包被下载到当前工作目录。您可以通过附加 -- destdir 标志来指定替代目录。
要与依赖项一起下载包,请附加 --resolve 标志。
验证依赖项的存在
ls
使用 dnf 下载软件包(Fedora 22 及更高版本)
在 Fedora 22 及更高版本上,yum 已被弃用,取而代之的是 dnf 包管理器。要使用 dnf 下载包,请使用以下语法:
dnf download package-name
下载 samba 包的示例:
dnf download samba
要下载依赖项,请附加 --resolve 标志
dnf download samba --resolve
验证依赖项的存在或下载
使用 ls 命令检查是否存在下载的依赖项。
ls
通常,安装软件包的最佳和最简单的方法是使用yum install package-name 0r dnf install package-name命令。如果您更喜欢先下载一个包然后再安装它,请确保您也使用 --resolve 标志下载依赖项并同时安装所有它们以避免出现依赖项错误。