Yocto:为什么要包含一个软件包?

3

我目前正在使用yocto来构建TI AM335x的嵌入式linux镜像(我使用的是hob,因为我觉得它比使用命令行更方便)。

我开始使用构建'core-image-base' 的食谱,这里是包含的软件包的选择:

initial packages selection

现在,我想从构建中排除软件包 alsa-utils-1.0.28-r0,因为它在我的目标平台上编译时存在一些问题,并且我真的不需要它...所以,据我所知,我必须删除所有带有 alsa-utils 的依赖项(即: 查看下面的截图,alsa-statepackagegroup-base):

brought in

然后我移动到 Package groups 选项卡,删除 packagegroup-base ,然后从 Included recipes 中删除 alsa-state alsa-utils

removed packages

现在看起来alsa-utils已经没有了...但是如果我尝试构建镜像,结果如下:

result

为什么?还有谁在引入alsa-utils?我做错了什么?有没有一种方法(即使是命令行)可以知道yocto为什么会引入一个软件包?

2个回答

12

使用

bitbake -g alsa-utils -u depexp

显示依赖树,您应该能够看到谁依赖于它。

请参见openembedded维基


4
请注意,在Pyro和之后的版本中,depexp已更改为taskexp。 - George McCollister

0
现在在Yocto中有一个适当的工具来识别为什么要构建一个软件包。
首先,您必须为您想要构建的最终配方生成依赖图。然后,运行oe-depends-dot --why命令:
 $ bitbake -g core-image-minimal
 $ oe-depends-dot -k busybox -w ./task-depends.dot
Because: core-image-minimal packagegroup-core-boot
core-image-minimal -> packagegroup-core-boot -> busybox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接