我有一台 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
yumdownloader
inyum-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)