You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拉取GitHub Packages中OCI清单时出现MANIFEST_UNKNOWN错误的原因及解决方法咨询

拉取GitHub Packages中OCI清单时出现MANIFEST_UNKNOWN错误的原因及解决方法咨询

嗨,我之前折腾OCI镜像注册表的时候也碰到过一模一样的问题,给你拆解下原因和解决办法哈~

错误原因解析

你请求的这个homebrew/core/vim:9.0.1900是一个多架构OCI镜像索引(简单说就是它包含了不同CPU架构比如amd64、arm64等的镜像清单集合)。而你的curl请求没有设置正确的Accept请求头,告诉GitHub Packages注册表你能够接收这种OCI索引格式的内容。默认情况下curl的Accept头并不包含OCI索引的媒体类型,所以注册表就返回了MANIFEST_UNKNOWN这个错误,本质是你的请求不兼容它要返回的内容格式。

解决办法

只需要在curl命令里加上支持OCI索引的Accept头就行啦,具体可以这么做:

方法1:仅请求OCI索引格式

直接指定接受OCI索引的媒体类型:

curl -H "Authorization: Bearer QQ==" -H "Accept: application/vnd.oci.image.index.v1+json" https://ghcr.io/v2/homebrew/core/vim/manifests/9.0.1900

方法2:兼容多种清单格式

如果你不确定要哪种格式,也可以同时指定OCI索引和普通Docker镜像清单的媒体类型,让注册表自动适配:

curl -H "Authorization: Bearer QQ==" -H "Accept: application/vnd.oci.image.index.v1+json, application/vnd.docker.distribution.manifest.v2+json" https://ghcr.io/v2/homebrew/core/vim/manifests/9.0.1900

额外说明(如果需要特定架构的镜像清单)

要是你其实是想获取某个特定架构(比如amd64)的单独镜像清单,可以先通过上面的命令拿到OCI索引内容,找到对应架构的镜像digest,再用这个digest去请求具体的清单。比如拿到索引后找到manifests数组里对应架构的digest值,然后执行类似下面的命令:

curl -H "Authorization: Bearer QQ==" https://ghcr.io/v2/homebrew/core/vim/manifests/<对应架构的digest值>

备注:内容来源于stack exchange,提问作者Michael Altfield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 14:23:16