我的YoctoProject“fido”环境的sstate-cache
目录的大小超过3GB。
如何删除sstate-cache
中的yocto/build-dir
目录?
使用rm -rf
是保存还是有其他方法?
答案 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 Cache和sstate-cache。
答案 1 :(得分:4)
正确的任务是:
$ bitbake -c cleansstate <recipe-name>
还有更多清理任务,可以删除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
中的脚本,该脚本将删除较旧的条目。