2017-07-27 262 views

回答

3

按照Yocto参考手册它保存到取出完整build/tmp目录包括sstate-cache目录:

作为最后的手段,清理构建,从头 (比其他启动下载),你可以在TMP 目录中删除任何东西,或者完全摆脱的目录。如果你这样做,你也应该完全删除build/sstate-cache目录。 (见[1][2]

此外,你还可以通过调用do_cleansstate如下图所示与bitbake删除sstate缓存为特定的配方(见do_cleansstate)。

$ bitbake -c cleansstate recipe 

请注意,共享状态缓存需要大量的存储空间,它会再次增长建立您的图片时,它需要的尺寸。

在共享状态缓存更详细的信息在下面的Yocto参考手册的部分可用: Shared State Cachesstate-cache

+0

感谢@ g0hl1n,你的意思是所有编译配方数据存在于sstate-cache目录右边。如果我删除目录所有的食谱数据,我会失去对吗? –

+0

嗨,并不是所有的编译数据都在sstate-cache中,有些也在workdir中。通过删除sstate-cache,你将不会丢失食谱。但请阅读参考手册(在答案中链接)以获取有关该问题的更多详细信息。 – g0hl1n

0

这样做的正确的任务就是:

$ bitbake -c cleansstate <recipe-name> 

参见:Yocto Reference Manual

有清洁更多的任务,其中删除sstate缓存和更(例如do_cleanall)。

+0

感谢@ h0ch5tr4355 –

1

我有大胆的具有命令,以减少sstate缓存大小的一部分;这是清理缓存的另一种方法。

https://www.yoctoproject.org/sites/default/files/yocto_devday_advanced_class_sandiego.pdf滑动37

Sstate:建议sstate目录, 例如单独的本机和非本机sstate目录建议

•在复杂的系统,并且还 不同的BSP和拱。

•重复使用一个单一的目录会变得非常大非常快。使用一段时间删除旧文件。注意:这需要安装文件系统 with atime/relatime,我们通常建议禁用该版本的 性能。

find $ {sstate_dir} -name'sstate *'-atime +3 -delete; fi *

•定期重建sstate到新目录并删除旧sstate dir以维持有界大小。可能有不再使用的包装或包装 版本,只占用空间。

•虽然可以使用其他协议作为HTTP和FTP等sstate,例如 ,但应避免使用这些协议。使用HTTP将sstate 限制为只读,而FTP提供较差的性能。

•此外,在HTTP/FTP服务器事业wget的丢失sstate文件 挂了很长一段时间,由于重试和超时

+0

我不确定'fi *'是什么,但没有正常工作。 – vermaete