我有一些自己编写的 yocto 配方,它们会产生 yocto sstate-cache 机制的问题(比如当依赖项发生变化时不重建配方)。有没有办法在每个配方的基础上禁用状态缓存?
在互联网上搜索我只能找到非常古老且现已损坏的机制:
https://patchwork.openembedded.org/patch/17039/
或者仅部分禁用功能:
https://patchwork.openembedded.org/patch/130719/
我的 Yocto 版本是 Zeus 及以上。
谢谢并欢呼!
在食谱中:
SSTATE_SKIP_CREATION = "1"
Run Code Online (Sandbox Code Playgroud)
或者,从食谱之外(例如local.conf):
SSTATE_SKIP_CREATION_pn-recipefoo = "1"
SSTATE_SKIP_CREATION_pn-recipebar = "1"
Run Code Online (Sandbox Code Playgroud)
您可以使用 来验证配方的 sstate 是否存在oe-check-sstate,例如:
oe-check-sstate yourimage | grep recipefoo
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令删除配方的状态:
bitbake -c cleansstate recipefoo
Run Code Online (Sandbox Code Playgroud)
然而,令人担忧的是你的配方会干扰状态机制。确保每当源代码发生更改时,您都正确设置和更新包的版本和修订版。
如果您的配方源与 Yocto 元数据一起存储,请考虑使用externalsrc来引用它,以便 Yocto 更好地跟踪更改。