packages - Bitbake 错误 - 没有 RPROVIDES

标签 packages yocto openembedded bitbake

我会将应用程序拆分为多个包。基本上我只想添加另一个可以使用特定图像构建的图像。

在与我添加的应用程序关联的 .bb 文件中:

SRC_URI = " \
          ...
          file://api.conf \
          file://script.sh \
          "

PACKAGES =+ "${PN} ${PN}-tools"

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh \
                     ${sysconfdir}/mrvl/api.conf \
                    "

然后,我在我的 bb 图像测试中添加了以下行
IMAGE_INSTALL += " mrvl-tools"

我正在使用命令 bitbake image-test 返回:
ERROR: Nothing RPROVIDES 'mrvl-tools' (but /home/usr/../image-test.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'mrvl-tools' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mrvl-tools']
ERROR: Required build target 'image-test' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-test', 'mrvl-tools']

我遵循 bluez5-obex 包的相同定义,并且 IMAGE_ISTALL += "bluez5-obex"有效..

我忘记了什么?

最佳答案

安德斯很近。

首先,您的 PACKAGES 定义是错误的,您所需要的只是 PACKAGES += "${PN}-tools"。

但要记住的重要一点是 FILES 是按照 PACKAGES 的顺序进行评估的,所以首先处理 ${PN} 并且默认的 FILES_${PN} 包含 ${bindir} ${sysconfdir},所以所有的 ${bindir} ${sysconfdir} 在 ${PN} 中。然后它尝试处理 ${PN}-tools 并且其 FILES 中的表达式都不匹配剩余的任何文件,因此包为空。

因此,要么将 FILES_${PN} 设置为您希望它包含的内容,要么使用 PACKAGE_BEFORE_PN=${PN}-tools 在默认 PACKAGES 值中的 PN 之前注入(inject) PN-tools。我保证,阅读 bitbake.conf 将有助于使这一点更清楚。

请注意,我预计该错误是 rootfs 时间失败而不是图像构建失败,但希望这就是问题所在。

关于packages - Bitbake 错误 - 没有 RPROVIDES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28365266/

相关文章:

yocto - Bitbake:强制执行食谱的一项任务,然后执行所有后续任务

package - 如何避免在 BitBake 构建期间尝试安装之间的文件冲突?

shell - 如何在 OpenEmbedded BitBake 配方中递归安装目录结构?

python - 从 tar.gz 安装 python 包

yocto - 让 yocto 跳过食谱而不是停止

linux-kernel - 更改 YOCTO Linux 内核版本

python - Openembedded:如何将 python-robotframework 添加到 Yocto

linux - Linux更新相同的用途

r - 在未加载 data.table 包时使用 data.table 中的 `:=`?

namespaces - TCL 包和命名空间