我有一台服务器,其中应包含从 CentOS 存储库下载的所有 RPM 软件包,以便我可以从另一台无法访问 Internet 的服务器访问该服务器,并获取最新的软件包。
问题是,由于依赖性问题,我无法下载所有软件包。下面是我尝试过的命令。
$ repotrack -p . -a x86_64 *.rpm
上面的命令下载 194 RPM 软件包。当我尝试使用 *rpm 时,再次得到相同的结果。
$ yum install --downloadonly --installroot=/etc/yum.downloads/packets-installroot --downloaddir=/etc/yum.downloads *.rpm
上面的命令下载 179 RPM 软件包。当我尝试使用 *rpm 时,数据包计数减少了。
$ yumdownloader --resolve --destdir=/etc/yum.downloads/ *.rpm
上面的命令只下载 48 个包。
$ yum install --downloadonly --downloaddir=/etc/yum.downloads/ *rpm
上面的命令只下载 48 个包。
这些命令应该下载所有 RPM 包和依赖项,但实际上却没有。我也在尝试使用特定的 1 个包的命令,并且它们下载其依赖项,但每当我尝试下载所有包时,我猜它都无法做到这一点。
更新:
我尝试了下面的命令
$ repoquery --qf=%{name} -g --list --grouppkgs=all [groups] | xargs repotrack -a x86_64 -p .
下载了4640个包,但仍然有问题。 -g 命令查询组而不是包。所以有些软件包没有分组,我也需要下载它们。
-a
参数是我相信的解决方案,因为在手册中它说-a
“查询全部”。但我仍然找不到真正的语法。有人知道吗?
答案1
我找到了解决方案。
repoquery -a | xargs repotrack -a x86_64 -p .
wget -A rpm -r -l 5 http://mirror.centos.org/centos/7/os/x86_64/Packages/ -P .
答案2
您可以使用以下命令:
列表所有可用的包在指定的存储库中,执行以下操作:
repoquery -a --repoid=REPONAME
要下载所有包,请使用参数和百胜下载器
repoquery -a --repoid=REPONAME| xargs -i -t yumdownloader {}
当 reoid 是您的远程存储库的名称时。