Yocto / Bitbake的配方是否具有“ bulldoze”变量?

时间:2018-09-13 00:03:41

标签: yocto bitbake

说我有一些由我的自定义软件包安装的文件,但是这些文件将覆盖由另一个软件包安装的一些(但不是全部)文件。

我认为直观的方法是

  1. 将我的软件包“ DEPEND”放在另一个软件包上,以便它首先安装
  2. 我的安装覆盖了首先存在的文件。

不幸的是,Bitbake喜欢为此方法抛出很多错误。

是否可以设置一个“ IDGAF只是将它们放到那里”?

1 个答案:

答案 0 :(得分:2)

我不这么认为。我经常想要相同的东西,但从未找到解决方案。我的答案在下面。

通常,我将将要覆盖的文件安装到我自己的层中,然后修改该配方以直接在文件系统中安装我需要的文件。对于诸如systemd,udev或其他系统应用程序之类的事情,这变得很复杂。在这些情况下,如果您感觉需要覆盖系统文件,则可能是时候重新考虑设计了。最好的情况是,随着时间和版本的推移,很难进行维护。但是,对于像protobuf,看门狗之类的简单想法来说,这是定义特定需求的一种完全可以接受的机制。

另一个选择是定义一些在映像安装过程中要完成的功能,以继续进行并修改文件。在实际创建映像文件本身之前,我针对ssh配置执行此操作。我在图像配方中创建特定的python函数,并从图像创建中调用这些函数。我使用

ROOTFS_POSTPROCESS_COMMAND += "my_python_function"

不过,老实说,您应该将这种想法作为最后的选择。必要时简单地使用不同的文件可能会更容易。