我有从网上克隆 RPM 存储库的机制。但我真正想要的是克隆存储库的一部分的方法。到目前为止,我还没有找到任何这样的现有机制。
以下是要求:
- 我们有所有官方 RHEL RPM 和来自官方上游来源的更新的本地缓存。我们偶尔需要从网络上的受信任第三方添加目标 RPM。给定给定存储库中的目标包,将目标 RPM 的最新和最佳版本复制到我们的缓存中。
- 此外,确定该 RPM 的所有依赖项,并且(这是棘手的部分)如果依赖项在我们的本地 repo 缓存中尚不存在,则提取缺少的依赖项。
第二个要求的原因是,我们只希望本地 RPM 缓存中来自外部来源的感染最少。我们希望尽可能多地运行官方 RHEL RPM,并且只在需要时进行扩展。盲目克隆整个第三方 RPM 存储库的问题在于,有时他们会重写官方软件包或添加官方软件包的较新版本。除非这些版本是我们目标软件包的直接依赖项,否则我们不希望这些软件包位于本地存储库缓存中。
真正的问题是,现有的克隆工具(mrepo 是主要示例)都不是盲目复制整个存储库。我们不希望这样做。如果您尝试使用 yumdownloader 或类似工具,您会发现它确实会查找依赖项,但只会与当前服务器上已安装的软件包进行比较。您无法告诉 yumdownloader 与本地软件包存储库进行比较。
有没有现有的工具可以帮助我的建议?
答案1
皮匠允许部分存储库镜像,检查rpm-list
选项,其手册页中的“REPOSITORIES”部分。但我不确定它是否有能力检索依赖项。