如何在Yocto中从GitHub URL拉取文件?拉取Releases包报404如何解决
问题排查与修复方案
1. SRC_URI的protocol参数配置错误
你当前的SRC_URI中指定了protocol=file,这个参数是用来标识本地文件路径的,不适用于HTTPS网络下载。你可以将其修改为protocol=https,或者直接删除该参数,Yocto的fetcher会自动识别URL前缀的协议类型。
2. GitHub Releases 最新版本下载路径格式错误
GitHub 最新Release的资源下载路径规则是https://github.com/用户名/仓库名/releases/latest/download/文件名,你当前写的/releases/download/latest/文件名是错误的路径格式,因此返回404错误。
修正后的配方示例
DESCRIPTION = "Description of package" LICENSE = "CLOSED" MY_DESTINATION = "${libdir}/folder" SRC_URI = "https://github.com/user/repo/releases/latest/download/file.zip" # 建议添加文件校验值,避免下载到错误的文件 SRC_URI[sha256sum] = "替换为你的file.zip对应的sha256哈希值" S = "${WORKDIR}" do_install_append() { install -d ${D}${MY_DESTINATION} cp -r ${S}/file/* ${D}${MY_DESTINATION} } FILES_${PN} += "${MY_DESTINATION}/*"
可选注意事项
- 如果对应的Release是私有仓库的资源,你需要在URL中携带GitHub授权token,或者配置Yocto的git授权信息
- 如果你需要拉取固定版本的Release,建议将路径中的
latest替换为对应的版本号(如v1.0.0),避免上游更新版本后构建失败
内容的提问来源于stack exchange,提问作者Hsn
相关产品推荐
相关产品推荐

