如何在Yocto中删除sstate-cache目录?

时间:2017-07-27 04:59:46

标签: yocto bitbake

我的YoctoProject“fido”环境的sstate-cache目录的大小超过3GB。 如何删除sstate-cache中的yocto/build-dir目录?

使用rm -rf是保存还是有其他方法?

4 个答案:

答案 0 :(得分:6)

根据Yocto参考手册,保存删除包含build/tmp目录的完整sstate-cache目录:

  

作为最后的手段,清理一个构建并从头开始   (除了下载),您可以删除tmp中的所有内容   目录或完全摆脱目录。如果你这样做,你   还应该完全删除build / sstate-cache目录。   (请参阅[1][2]

此外,您可以通过调用bitbake来删除特定食谱的do_cleansstate的sstate-cache,如下所示(请参阅do_cleansstate)。

$ bitbake -c cleansstate recipe

请注意,共享状态缓存需要大量内存空间,并且会在构建映像时再次增长到所需的大小。

有关共享状态缓存的更多详细信息,请参阅Yocto参考手册的以下部分: Shared State Cachesstate-cache

答案 1 :(得分:4)

正确的任务是:

$ bitbake -c cleansstate <recipe-name>

请参阅:Yocto Reference Manual

还有更多清理任务,可以删除sstate缓存甚至更多(例如do_cleanall)。

答案 2 :(得分:1)

我粗体化了具有减少sstate缓存大小的命令的部分;这是清理缓存的另一种方法。

https://www.yoctoproject.org/sites/default/files/yocto_devday_advanced_class_sandiego.pdf幻灯片37

  

Sstate:建议

     

•在复杂系统中,建议分离sstate目录,   例如,本机和非本机sstate目录,以及   不同的BSP和拱门。

     

•重用单个目录会非常快速地增长。使用atime删除旧文件。注意:这需要安装文件系统   与atime / relatime我们通常建议禁用构建   性能。

     

查找$ {sstate_dir} -name'sstate *'-atime +3 -delete;音响*

     

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

     

•虽然可以为sstate使用其他协议   作为HTTP和FTP,你应该避免这些。使用HTTP限制sstate   只读和FTP提供的性能很差。

     

•此外,http / ftp服务器上缺少的sstate文件会导致wget   由于重试和超时而挂起很长时间

答案 3 :(得分:0)

删除sstate-cache目录是安全的,但是减小其大小的正确方法是使用poky/scripts/sstate-cache-management.sh中的脚本,该脚本将删除较旧的条目。