RPM 远程存储库 - 包与预期下载不匹配

RPM Remote Repository - Package does not match intended download

我们正在使用远程存储库并在本地存储工件。但是,我们 运行 遇到了一个问题,因为远程存储库会定期重建它托管的所有工件。在我们目前的状态下,我们更新元数据(e.x。repodata/repomd。xml),但工件没有更新。

我们必须不断清除我们的本地 远程存储库缓存 以允许它下载重建的工件。

有什么方法可以配置 artifactory 以允许它重新缓存新的 artifacts 以及新的 artifact 元数据?

在我们目前的状态下,我们经常 运行 进入的错误是

https://artifactory/artifactory/remote-repo/some/path/package.rpm:
[Errno -1] Package does not match intended download. 
Suggestion: run yum --enablerepo=artifactory-newrelic_infra-agent clean metadata

不幸的是,没有好的答案。版本下的工件应该是不可变的;它是依赖管理 101。

我会尽最大努力说服制作工件的团队停止覆盖版本。确实,有时更改元数据中依赖项的版本可能很麻烦,但有一些方法可以解决(例如在开发过程中解决最新的补丁,如 semver 规范所支持的那样),无论如何,这不是一个好的借口。

如果那不可能,我会考虑启用直接存储库到客户端的流式传输(即 disabling artifact caching)以防止陈旧工件的问题。

另一种解决方案可能是在您了解到远程存储库中发布了更新的工件后,使用 a user plugin or a script using JFrog CLI 清理缓存。