我的图片是使用bitbake
构建的,必须包含不同计算机的不同软件包(例如,我需要将软件包package1
添加到machine1
的图像中,但不能用于machine2
})。
可以添加行
IMAGE_INSTALL_append_machine1 = " package1"
到图像配方。但我不认为这是可持续的,因为IMAGE_INSTALL_append_machine1
可能在其他一些配方中定义(不受我的控制),而早期的定义会被后一个定义覆盖。这就是我认为的Yocto项目开发手册warns about using IMAGE_INSTALL。
我的担忧有效吗?在这种情况下,编写配方的正确方法是什么?
答案 0 :(得分:3)
我相信你要找的功能是base_contains
此函数用于将变量设置为基于的两个值之一 第三个变量的定义。
${@base_contains('variable-name', 'value', 'true-result', 'false-result',d)}"
其中:variable-name这是要检查的变量的名称。
value这是将变量与。
进行比较的值true-result如果变量等于该值,那么这就是 由函数返回。
false-result如果变量不等于该值,那么这是 该函数返回的内容。
还有一件事,您可以使用??=
来提供默认值。 ?=
和??=
之间的差异在于??=
,在解析过程结束之前,分配不会发生。
您可以查看图像配方
的示例here之一http://www.embeddedlinux.org.cn/OEManual/recipes_advanced_python.html