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 |
删除目标的所有输出文件,共享状态(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'}" |