下载已安装的RPM包的命令

下载已安装的RPM包的命令

我有一台 CentOS 机器,其中已经安装了 openssl-devel

$ yum install openssl-devel 

它下载并安装了所有依赖包。现在我需要所有这些 RPM 包。是否可以只下载 RPM 包?当我执行此操作时:

 $ yum install  openssl-devel -y --downloadonly 

它说

Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version

因为它已经安装好了。

有人知道如何在同一系统上下载这些 RPM 包吗?

答案1

可以使用开关下载已安装的 RPM 软件包--downloadonly。我不确定为什么 yum 在检查软件包是否已安装之前不检查此设置,但我猜这可能是由该工具的底层架构引起的。

无论如何,你需要做的就是告诉 yum重新安装包裹:

yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name

当然,yum 不会知道只为这个包安装了哪些依赖项,因此如果您使用 RPM 并尝试在其他系统上安装它们,可能会缺少某些依赖项。有多种方法可以探索整个依赖关系图,我相信 SE 的其他地方已经对此进行了描述。

答案2

yumdownloaderinyum-utils将下载您传递给它的任何包,或者选择性地生成可以从中下载包的 URL。

答案3

您可以使用回溯命令来自 yum-utils 包。它将下载整个依赖关系树 -即使已经安装

例子:

sudo yum install yum-utils      # Install yum-utils
sudo repotrack openssl-devel    # Download all dependencies for openssl-devel


示例输出:

[sbadra@rhel6 ~]$ sudo yum install openssl-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Setting up Install Process
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Nothing to do

[sbadra@rhel6 ~]$ sudo repotrack openssl-devel
Downloading audit-libs-2.4.5-6.el6.x86_64.rpm
Downloading audit-libs-2.4.5-6.el6.i686.rpm
Downloading basesystem-10.0-4.el6.noarch.rpm
Downloading bash-4.1.2-48.el6.x86_64.rpm
Downloading ca-certificates-2017.2.14-65.0.1.el6_9.noarch.rpm
Downloading chkconfig-1.3.49.5-1.el6.x86_64.rpm
Downloading coreutils-8.4-46.el6.x86_64.rpm
Downloading coreutils-libs-8.4-46.el6.x86_64.rpm
.... more packages ....
Downloading openssl-1.0.1e-57.el6.i686.rpm
Downloading openssl-1.0.1e-57.el6.x86_64.rpm
Downloading openssl-devel-1.0.1e-57.el6.i686.rpm
Downloading openssl-devel-1.0.1e-57.el6.x86_64.rpm
.... more packages ....
Downloading sed-4.2.1-10.el6.x86_64.rpm
Downloading setup-2.8.14-23.el6.noarch.rpm
Downloading tzdata-2018c-1.el6.noarch.rpm
Downloading zlib-1.2.3-29.el6.x86_64.rpm
Downloading zlib-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.x86_64.rpm

答案4

这是我的做法:

sudo yum install --config=./yum.conf 
  --installroot=/tmp/f541Sdex 
  --downloadonly 
  --downloaddir /tmp/DL-e25xds 
  $(cat list-of-packages)

相关内容