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

标签 artifactory rpm remote-repository

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

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

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

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

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

最佳答案

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

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

如果这是不可能的,我会考虑启用直接存储库到客户端流(即 disabling artifact caching )以防止过时 Artifactory 的问题。

另一个解决方案可能是使用a user plugin清理缓存。或使用 JFrog CLI 的脚本一旦您了解远程存储库中发布的新 Artifactory 。

关于artifactory - RPM 远程存储库 - 包与预期下载不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218718/

相关文章:

windows - 无法将 Windows docker 镜像推送到 Artifactory

node.js - 将所有项目 Node 依赖项推送到私有(private)包提要

maven - 从 Maven 部署到 JFrog Artifactory

linux - RPM验证错误P是什么意思

linux - 如何动态定义子包

linux - 在哪里可以找到 RedHat 的软件包名称和版本?

git - 如何使 HEAD 和 origin/master 指向相同(最新)修订版。 (HEAD 指向最新版本,而 origin/master 指向过去版本)

java - 将 Artifact 部署到两个不同的远程存储库 - Maven?

azure - 我们应该为所有正在开发的产品使用一个 Azure 容器注册表 (ACR) 还是每个产品使用一个 ACR?