2

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

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

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

在我们目前的状态下,我们经常遇到的错误是

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
4

1 回答 1

2

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

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

如果这不可能,我会考虑启用直接存储库到客户端的流式传输(即禁用工件缓存)以防止过时工件的问题。

一旦您了解远程存储库中发布的新工件,另一个解决方案可能是使用用户插件或使用JFrog CLI的脚本清理缓存。

于 2019-01-18T14:59:11.590 回答