【发布时间】:2020-01-23 13:44:50
【问题描述】:
我有多个配方,我想将它们分组到一个包组中,以便在图像中更轻松地安装这些配方。
我创建了以下文件:sources/meta-test/recipes-lib/packagegroups/packagegroup-lib.bb
DESCRIPTION = "Libraries package group"
LICENCE = "CLOSED"
SUMMARY = "Package group of all libraries recipes"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
RDEPENDS_{PN} = " \
exception \
logger \
"
然后在我的 build/conf/local.conf 中,我安装我的包组:
IMAGE_INSTALL_append = " packagegroup-lib"
bitbake -c cleansstate packagegroup-lib
bitbake -c clean fsl-image-machine-test
bitbake packagegroup-lib
bitbake fsl-image-machine-test
我刷新了映像,但在启动映像后找不到(软件包组的)已安装软件包。在 tmp 文件夹中,我可以在正确的位置找到库:
./tmp/sysroots-components/cortexa7hf-neon/logger/usr/lib/libLogger.so
【问题讨论】:
-
老实说,它看起来不错。我唯一看到的是在 conf/local.conf 中使用了 IMAGE_INSTALL。您可以尝试改用 CORE_IMAGE_EXTRA_INSTALL 看看是否可以解决问题吗?无论如何,您很可能需要以某种方式将此包添加到图像配方中。您也可以在图像配方上使用 bbappend,因此为 fsl-image-machine-test 创建一个并在那里添加您的 IMAGE_INSTALL(或 CORE_IMAGE_EXTRA_INSTALL)。在 conf/local.conf 中尽量少放一些东西。
-
想一想,名为“logger”的包是否包含lib?有时包会自动重命名为例如liblogger* 如果它只包含一个共享库。检查 packages-split 目录以查看哪些文件最终位于哪些包中,请查看 tmp/work/cortexa7hf-neon/logger/
/packages-split/。 -
@qschulz 我尝试在包组的配方中创建
IMAGE_INSTALL(稍后使用 CORE_IMAGE_EXTRA_INSTALL)。我最终得到相同的结果 -
@ErikBotö 库似乎在
packages-split文件夹中的正确位置 -
@bacara, IMAGE_INSTALL 必须添加到 image 配方中(在这种情况下 fsl-image-machine-test.bb 或此图像配方的 bbappend 中)和不是“正常配方”(创建包)。正如变量名告诉我们的,这是为了在 image 中安装包,所以它的位置在 image 配方中。请看一下@ErikBotö 建议的答案,我很确定他正确地发现了上面 sn-p 中所犯的错误。
标签: installation yocto recipe