使用 Yocto morty,我尝试在我的发行版中添加 Nodejs 的预构建版本。当我 bitbake core-image-sato 时,do_package_qa 挂起几个小时。我将非常感谢您帮助我解决这个问题。
我已将其添加到 local.conf 的底部:
CORE_IMAGE_EXTRA_INSTALL += "mynode"
这是我的 mynode 配方:
SUMMARY = "puts the node.js binary distribution into my image"
SECTION = "base"
LICENSE = "MIT & BSD & Artistic-2.0"
LIC_FILES_CHKSUM = "file://usr/node-v7.10.0-linux-x64/LICENSE;md5=d29463feca32ea5977af7b6c7d62c14a"
SRC_URI = "https://nodejs.org/dist/v7.10.0/node-v7.10.0-linux-x64.tar.xz;subdir=usr"
SRC_URI[md5sum] = "b9122f212e0716d199d7e954ff81e1ec"
SRC_URI[sha256sum] = "6166b9f3fb1a9e861335d864688fee5366f040db808080856a1a2b71b6019786"
S = "${WORKDIR}"
inherit bin_package
这是我的nodejs 包的log.do_install 的内容。也许来自 tar 的消息以某种方式描述了我的问题?
DEBUG: Executing shell function do_install
tar: ./pseudo/pseudo.socket: socket ignored
DEBUG: Shell function do_install finished
log.do_package_qa 中似乎没有任何对我的 nodejs 包有用的东西,但也许有人会看到我看不到的东西:
DEBUG: Executing python function sstate_task_prefunc
DEBUG: Python function sstate_task_prefunc finished
DEBUG: Executing python function do_package_qa
NOTE: DO PACKAGE QA
DEBUG: Executing python function read_subpackage_metadata
DEBUG: Python function read_subpackage_metadata finished
NOTE: Checking Package: mynode-dev
NOTE: Checking Package: mynode
我看到一些 bitbake-worker 进程正在运行,其中一个带有参数 decafbad,两个带有参数 decafbadbeef。我还看到一个伪进程正在运行。
最佳答案
如果你要使用
subdir=usr
在 SRC_URI
末尾,您还需要相应地更改它使用的源目录 (S
):
S = "${WORKDIR}/usr"
此外,我认为对于所有预构建的二进制包(inherit bin_package
),您都希望这样做。我试过没有任何一个,它永远挂着。另外,您可能想使用其他没有使用的 subdir
名称,例如 external_binary
。这样每个二进制配方都可以使用相同的子目录
。
关于node.js - Yocto do_package_qa 因 bin_package Nodejs 配方而挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46412795/