如何解决如何从 yocto 中的 github url 获取文件?
我正在尝试从 github 版本中获取文件,但它说找不到? 我正在使用的食谱如下所示。
DESCRIPTION = "Description of package"
LICENSE = "CLOSED"
MY_DESTINATION = "${libdir}/folder"
#SRC_URI = "file://file.zip"
SRC_URI = "https://github.com/user/repo/releases/download/latest/file.zip;protocol=file"
S = "${workdir}"
do_install_append() {
install -d ${D}${MY_DESTINATION}
cp -r ${S}/file/* ${D}${MY_DESTINATION}
}
FILES_${PN} += "${MY_DESTINATION}/*"
有人可以帮助我在这里做错什么吗?
错误如下...
ERROR: repo-1.0-r0 do_fetch: Fetcher failure: Fetch command export PSEUDO_disABLED=1; export GIT_PROXY_COMMAND="oe-git-proxy"; export NO_PROXY="*"; export PATH="/work/build/tmp-glibc/sysroots-uninative/x86_64-linux/usr/bin:/work/openembedded-core/scripts:/work/build/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-oe-linux-gnueabi.......
https://github.com/user/repo/releases/download/latest/file.zip
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent,awaiting response... 404 Not Found
2021-07-14 09:22:01 ERROR 404: Not Found.
ERROR: repo-1.0-r0 do_fetch: Fetcher failure for URL: 'https://github.com/user/repo/releases/download/latest/file.zip;protocol=http'. Unable to fetch URL from any source.
解决方法
以下是从 GitHub
项目中获取发布的示例:
SUMMARY = "RTCOS (Run To Completion Operating System)"
LICENSE = "MIT"
SRC_URI = "https://github.com/kaizoku-oh/rtcos/archive/refs/tags/1.2.3.zip;protocol=http"
SRC_URI[md5sum] = "37e7c1303db943e56e603e9ec699235b"
SRC_URI[sha256sum] = "e86ee36e8716fe4b33be9bcb272ef9835c5e5ec3b58fd3e2c681334175945e4b"
步骤:
- 转到项目发布
- 选择一个版本并复制
Source code (zip)
的链接 - 将其添加到 SRC_URI
- 协议应该是
http
- 现在,bitbake 会在错误中为您获取 md5 和 sha256 总和,将它们复制到您的配方中
更多配方改进:
您可以根据配方的版本号设置发布链接,如下所示:
SRC_URI = "https://github.com/kaizoku-oh/rtcos/archive/refs/tags/${PV}.zip;protocol=http"
这样,将配方命名为与项目相同的名称:
rtcos_1.2.3.bb
现在将根据您的配方版本自动获取版本,当然您需要在 bitbake
抱怨时更改校验和。
现在,Yocto 会将包解压到 ${WORKDIR}/recipe_name-release_version
中,例如:
${WORKDIR}/rtcos-1.2.3
因此将您的 ${S} 变量设置为该变量,您可以将其设置为动态:
S = "${WORKDIR}/${PN}-${PV}"
PN:包名
PV:包版本
现在您可以将内容复制给您MY_DESTINATION
:
MY_DESTINATION = "${libdir}/folder"
do_install(){
install -d ${D}${MY_DESTINATION}
cp -r ${S}/* ${D}${MY_DESTINATION}
}
FILES_${PN} += "${MY_DESTINATION}/*"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。