如何在 Yocto 中禁用每个配方的 sstate-cache

How to disable sstate-cache per recipe in Yocto

我有一些自己编写的 yocto 食谱,这会导致 yocto sstate-cache 机制出现问题(比如当依赖项发生变化时不重建食谱)。 有没有办法在每个配方的基础上禁用 sstate 缓存?

搜索互联网我只能找到非常古老且现在已经损坏的机制:

https://patchwork.openembedded.org/patch/17039/

或仅部分禁用功能:

https://patchwork.openembedded.org/patch/130719/

我的Yocto版本是Zeus及以上

感谢和欢呼!

食谱中:

SSTATE_SKIP_CREATION = "1"

或者,从食谱之外(例如 local.conf):

SSTATE_SKIP_CREATION_pn-recipefoo = "1"
SSTATE_SKIP_CREATION_pn-recipebar = "1"

您可以使用 oe-check-sstate 验证配方是否存在 sstate,例如:

oe-check-sstate yourimage | grep recipefoo

您可以使用以下方法删除食谱的状态:

bitbake -c cleansstate recipefoo

但是,令人担心的是您的配方干扰了 sstate 机制。确保在源代码更改时正确设置和更新包的版本和修订版。

如果您的食谱源与 Yocto 元数据一起存储,请考虑 using externalsrc to reference it,让 Yocto 更好地跟踪更改。