所以我很想镜像整个存储库,但这似乎并不容易( How do I use Artifactory to mirror linux distributions?就证明了这一点)
我确实有一个问题,假设我在Artifactory中设置了一个远程repo,并将其设置为永不过期缓存。如果从源代码库中删除了一个包,但它在Artifactory的缓存中,会发生什么?我仍然可以通过apt/yum或其他方式安装它吗?一个很好的例子是Ubuntu PPA,当旧版本被取代时,它们似乎会删除旧版本,但我想使用Artifactory来冻结某些包的版本。
发布于 2016-09-08 04:13:27
一般来说,一旦工件被缓存(即至少下载一次),您就不应该关心上游存储库中工件的状态。这就是为什么Artifactory在除了自己的内部存储库之外不能依赖任何东西的情况下表现出色的原因。
但完整的答案要比这复杂得多。Artifactory使用了一些我们称之为“可解释资源”的东西。这些文件根据远程存储库的"Metadata Retrieval Cache Period“参数中定义的时间段定期”过期“-请参阅Cache Settings部分,其中讨论了此参数以及其他一些参数。
请注意,此设置仅影响Artifactory认为可过期的特定文件。这些总是元数据文件,例如Debian存储库的"Packages“文件或"Release”文件。潜在的假设是,这些文件在上游存储库中偶尔会发生变化,并包含对有问题的工件的较新版本的引用,因此您不希望永远保留陈旧的副本。其他(不可过期的)文件将永远缓存在Artifactory中,除非您故意删除它们,因为它们是“发布”工件,而发布工件是不可变的。
如果一个.deb文件已经从上游存储库中删除,引用它的元数据文件(即“包”文件保存了对这个.deb文件的所有版本的引用,以及它的父文件"Release“文件)也将相应地改变,这可能意味着一旦这些旧版本过期并重新获取,您将无法使用APT客户端下载这些旧版本。如果要将远程存储库保留在特定状态,您有两个选择:
1.将存储库设置为“离线”(参见Additional Basic Settings) -这意味着Artifactory不会尝试从上游存储库获取工件,而只服务于缓存的工件。
2.设置元数据检索缓存周期为较大值(默认为10分钟)。
HTH,
https://stackoverflow.com/questions/39373903
复制相似问题