我们正在使用一个远程存储库,并在本地存储工件。但是,由于远程存储库会定期重建它托管的所有工件,因此我们遇到了问题。在当前状态下,我们会更新元数据(例如 repodata / repomd.xml ),但不会更新工件。
我们必须不断清除本地的 remote-repository-cache ,以允许其下载重建的工件。
有什么方法可以配置工件以使其重新缓存新工件以及新工件元数据?
在当前状态下,我们经常遇到的错误是
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
答案 0 :(得分:2)
不幸的是,对此没有好的答案。版本下的工件应是不可变的;它是依赖性管理101。
我会尽最大的努力说服制作工件的团队停止重写版本。的确,有时更改元数据中依赖项的版本可能很麻烦,但是有很多方法可以解决(例如,在开发过程中解决最新补丁程序,如semver规范所支持),无论如何,这都不是一个很好的借口。
如果这是不可能的,我会考虑启用直接的存储库到客户端流传输(即disabling artifact caching),以防止出现过时的工件问题。
了解到远程存储库中发布的新工件之后,另一种解决方案可能是使用a user plugin或使用JFrog CLI清理缓存。