Yocto::是否进行bitbake cleanall,也清除依赖项

Yocto: : does bitbake cleanall ,cleans dependencies as well

bitbake cleanall
删除目标

的所有输出文件,共享状态缓存和下载的源文件

尚不清楚或没有记录是否清除所有构建时间相关性


否,cleanall不会清除依赖项。例如

1
  bitbake -c cleanall core-image-minimal

仅删除该命名配方的输出。

我通常要清理"一切"的工作是在收据"世界"上运行cleanall:

1
bitbake -c cleanall world

如果由于诸如此类的无法解析的包而失败:

1
ERROR: Nothing PROVIDES 'sg3-utils' (but /home/blubb/meta-freescale/recipes-devtools/utp-com/utp-com_git.bb DEPENDS on or otherwise requires it).

我只是将软件包临时添加到ASSUME_PROVIDED变量中,如下所示:

1
bitbake -c cleanall world --ignore-deps=python-nativedtc-native --ignore-deps=sg3-utils

如果没有提供此软件包,则不太可能在哪里构建它们。


请阅读大手册do_cleanall部分。

do_cleanall删除:

  • 所有输出文件
  • 共享状态(状态)缓存
  • 并下载目标的源文件(即DL_DIR的内容)。

您可以使用BitBake运行此任务,如下所示:

1
 $ bitbake -c cleanall <recipe-name>

如果未将配方名称传递给cleanall任务,则它将不起作用。


如果您想清洁所有物品,请

1
bitbake world -c cleanall --continue

--continue在清理时将忽略任何依赖项错误。错误发生后,请尽可能继续。


删除目标的所有输出文件,共享状态(sstate)缓存和下载的源文件(即DL_DIR的内容)。本质上,do_cleanall任务与do_cleansstate任务相同,只是删除了已下载的源文件。

您可以使用BitBake运行此任务,如下所示:

1
 $ bitbake -c cleanall recipe

通常,您通常不会使用cleanall任务。仅当您想重新开始执行do_fetch任务时,才这样做。


其他人已经回答说bitbake不会自动清除依赖关系,但是您可以创建任务间依赖关系(https://www.yoctoproject.org/docs/3.1/bitbake-user-manual/bitbake-user- manual.html#inter-task-dependencies)通过在配方中添加命令来清理依赖(如果需要):

1
do_task[depends] ="recipe:task"

我们已经扩展了bitbake来构建本机配方,并在构建过程中自动运行单元测试。在这种情况下,我们需要在清洁目标时清洁本机配方,以便您可以添加:

1
2
3
do_clean[depends] ="${PN}-native:do_clean"
do_cleanall[depends] ="${PN}-native:do_cleanall"
do_cleanstate[depends] ="${PN}-native:do_cleanstate"

该解决方案略有不足,因为本机配方将尝试清除$ {PN} -native-native,因此如果已经是本机,您将需要一个条件使其不适用:

1
2
3
do_clean[depends] +="${@'' if bb.data.inherits_class('native', d) else '${PN}-native:do_clean'}"
do_cleanall[depends] +="${@'' if bb.data.inherits_class('native', d) else '${PN}-native:do_cleanall'}"
do_cleanstate[depends] +="${@'' if bb.data.inherits_class('native', d) else '${PN}-native:do_cleanstate'}"