如何克隆RPM存储库的一部分?

我有从networking克隆RPM回购的机制。 但我真正想要的是一种方法来克隆回购的一部分。 到目前为止,我还没有find任何这样的现有机制。

这是要求:

  • 我们拥有所有官方RHEL RPM的本地caching,并提供官方上游来源的更新。 我们需要在networking上偶尔添加来自可信第三方的目标RPM。 给定一个给定的回购目标包,将最新版本的最大版本的目标RPM复制到我们的caching中。
  • 另外,如果依赖关系不存在于我们的本地回购caching中,则确定该RPM的所有依赖关系(这里是棘手的部分)。

第二个要求的原因是,我们只需要在本地的RPMcaching中从外部来源获得绝对最小的感染。 我们希望尽可能多地运行正式的RHEL RPM,并且只根据需要进行扩展。 盲目克隆整个第三方RPM回购的问题是,有时他们会重新编写官方软件包或添加更新版本的官方软件包。 除非这些版本是我们的目标包的直接依赖,否则我们不希望这些包在我们的本地回购caching中。

真正的问题是没有现有的克隆工具(mrepo是主要的例子),他们是盲目地复制整个回购。 我们不希望樱桃采摘。 如果你尝试使用yumdownloader或者类似的东西,你会发现它可以查找依赖关系,但是只能和当前服务器上的INSTALLED PACKAGES进行比较。 你不能告诉yumdownloader比较本地软件包回购。

有什么build议可以帮助我的现有工具吗?

Cobbler允许部分repo镜像,检查rpm-list选项,在其手册页中“REPOSITORIES”部分。 但是我不确定它是否能够检索依赖关系。