使用yum下载包的所有依赖项的RPM

问题描述 投票:4回答:2

我正在尝试在我的系统上创建一个本地yum repo,其中包含主要来自CentOS基本库的各种软件包。托管yum repo的服务器默认情况下不必安装与将使用yum repo的服务器相同的基本软件包。出于这个原因,我需要确保我的repos包含我想要的包以及它们的每个依赖项。

我正在使用yum-utils包中提供的yumdownloader工具创建我的repos,尝试使用标准CentOS镜像中的yum下载包的RPM文件。它提供了一个命令行选项--resolve,它也可以下载依赖项。但是,由于它是基于yum本身构建的,因此yumdownloader将仅下载系统上尚不存在的程序包的依赖项。

例如,我希望下载包A,它取决于包B,C和D.如果包D已经安装在系统上,yumdownloader --resolve A将只下载A,B和C,但不能下载D.

有没有办法从yum repo下载包中所有依赖项的RPM?

centos yum
2个回答
0
投票

有这个bash脚本,rpm的维护者和我分享,我和put on github。希望你觉得它有用!

您还可以阅读原始的SO question,其中讨论了问题。

该脚本适用于Fedora 23+,因为它使用了dnf的下载插件。它可能很容易让它在Fedora 22上运行,因为yum肯定有类似的插件。

此外,它有价值,因为qazxsw poi不适用于fedora 23(至少它对我不起作用)。


0
投票

经过很多挫折寻找解决方案后,我编写了一个使用repotrace和wget的简单脚本。我发现yumdownloader(即使使用resolve标志)也无法解析所有依赖项。

如果你有一个很长的软件包列表,你必然会遇到重复的问题,首先使用“repotrack -u flag”下载url,然后获取唯一的记录,必须多次下载相同的rpm。

repotrack

快乐的rpming

© www.soinside.com 2019 - 2024. All rights reserved.