从 CentOS 存储库下载所有 RPM 软件包?

从 CentOS 存储库下载所有 RPM 软件包?

我有一台服务器,其中应包含从 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 是您的远程存储库的名称时。

相关内容