我有一个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软件包?
yum-utils yumdownloader会下载你传递给它的任何包,或者可选地生成包可以从中下载的URL。
可以使用--downloadonly开关下载已经安装的RPM软件包。 我不知道为什么yum在检查包是否已经安装之前没有检查这个设置,但是我想这可能是由工具的底层架构引起的。
无论如何,你需要做的就是告诉yum 重新安装软件包:
yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name
当然,yum不知道为这个软件包安装了哪些依赖项,所以如果你拿这些RPM并尝试在不同的系统上安装它们,可能会丢失一些依赖项。 有一些方法可以探索整个依赖图,我确定这已经在SE的其他地方描述过了。
从长远来看,一种可能是指定一台机器作为从互联网上下载的机器,然后在其上运行NFS(或networking服务器),以将/ var / cache / yum暴露给内部主机。
然后你需要更新你的yumconfiguration,添加:
[main] keepcache = 1
启用caching后,每个yum操作都可以从configuration的存储库下载软件包数据。
更实际的说法是:
$ 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你已有的软件包,并希望RPMs。