问题
我们似乎在远程 rpm/yum 存储库上有复制问题。我们将
http://yum.oracle.com/repo/OracleLinux/
复制为 rpm-oraclelinux-remote 直到 28-03-23 15:29:41 +00:00
它工作正常但现在它失败了它是 Artifactory /ui/api/v1/ui/admin/repositories/testremote
存储库检查 404。此检查可以通过 XMLHttpRequest 运行或直接从 Artifactory Admin UI 运行
当我查看同步或传递的 yum 存储库时,我看到 repomd.xml 的以下内容
当我查看 oraclelinux 时,我看到了
我也做了一些测试,看起来我们确实有 Artifactory 缓存的内容,但无法提取其他内容。
所以,任何人都知道 Oracle 是否改变了他们的回购政策http://yum.oracle.com/
我的猜测是我需要为每个 OL* 版本创建一个远程仓库,如
Oracle 似乎已经改变了他们的 repo 的权限,使它们类似于 RHEL 处理他们的方式。
不再支持顶级 repo 复制,复制必须在树的下方进行
http://yum.oracle.com/repo/OracleLinux/OL7/latest http://yum.oracle.com/repo/OracleLinux/OL8/latest 等等
这意味着 Artifactory 中的 rpm-oraclelinux-ol7-remote、rpm-oraclelinux-ol8-remote 存储库定义,然后可能是一个虚拟存储库将它们组合在一起,允许对组进行查询。还不确定最后一点。当我得到那个答案时,我会编辑它。
[注:我在 Oracle Linux 开发组,与 ULN/yum 团队一起工作。]
我们实际上从不支持通过 HTTP(S) 同步顶级 URL(不指向单个存储库)作为用例,因为历史上我们在尝试使用“目录列表”保留这些存根 HTML 文件时遇到过问题工作。
yum.oracle.com 托管在 Akamai CDN 上(如果您查找其 DNS,就会看到这一点),而 Akamai 实际上并没有这样的目录树概念。那些存根 HTML 文件甚至不存在于所有镜像中,所以你基本上只是幸运,它能工作到这一点。
您还会注意到,各个回购的每个“目录列表”HTML 文件实际上都将
/getPackage/
伪子目录注入到 RPM 的 URL 中;这是为了处理 Akamai 如何分发这些文件。
因此,通过 HTTP,我们一次只支持镜像一个 repo,最好是通过 yum/dnf/reposync 使用的
repodata/repomd.xml
文件。如果 Artifactory 支持一次镜像一个 repo,那你就必须通过 HTTP 来做。
现在,如果您已经有了一个镜像树并且 Artifactory 出错了,因为 upper level 目录是 404'ing,即使
repomd.xml
仍然可以访问(按原样),这听起来像是一个可报告的 Artifactory 错误我。仅仅因为一个目录级别返回 404 并不意味着它下面的所有内容都会;这不是 URI 的工作方式 :)
总而言之,
rsync
现在也有官方支持的批量同步操作。本文档中描述了该方法和其他官方镜像方法: