Answers:
可以下载已经使用--downloadonly
交换机安装的RPM软件包。我不确定为什么yum在检查软件包是否已安装之前不检查此设置,但是我猜可能是由该工具的基础体系结构引起的。
无论如何,您需要做的就是告诉yum 重新安装该软件包:
yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name
当然,yum不会只为该软件包安装了哪些依赖项,因此,如果您使用RPM并尝试将它们安装在其他系统上,则可能会丢失某些依赖项。有多种方法可以探索整个依赖关系图,我敢肯定,这已经在SE的其他地方进行了描述。
yumdownloader
在yum-utils
将下载您通过任何包,或者选择性地生成的URL的包可以从以下网址下载。
glibc
?filesystem
?
您可以使用yum-utils软件包中的repotrack命令。它将下载整个依赖关系树- 即使已经安装了它。
例:
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
从长远来看,一种可能性是将一台机器指定为要从Internet下载的机器,然后在其上运行NFS(或Web服务器)以将/ var / cache / yum暴露给内部主机。
然后,您需要更新您的yum配置,以添加:
[main]
keepcache = 1
启用缓存后,每个yum操作都可以从配置的存储库下载程序包数据。
用更实际的话说:
$ sudo yum install -y nginx
$ sudo find /var/cache/yum/ -type f -name '*.rpm'
<...snip....>
/var/cache/yum/x86_64/7/epel/packages/nginx-1.10.2-1.el7.x86_64.rpm
其他答案实际上将解决您的迫在眉睫的问题,仅当您运行yum reinstall
已拥有的软件包并需要RPM时,这才有帮助。