假设我有一些由我的自定义程序包安装的文件,但这些文件将覆盖由另一个程序包安装的一些但不是全部文件。
我认为直观的方法是
不幸的是,Bitbake喜欢为这种方法抛出许多错误。
是否有“IDGAF只是把它们放在那里”我可以设置的变量?
我不这么认为。我经常想要同样的东西,但从未找到解决方案。我的答案如下。
通常要做到这一点,我将安装我想要覆盖的文件的配方分叉到我自己的层中,并修改该配方以直接在文件系统中安装我需要的内容。对于像systemd,udev或其他系统应用程序这样的事情来说,这变得很复杂。在这种情况下,如果您觉得需要覆盖系统文件,可能需要重新考虑设计。在最好的情况下,很难保持随着时间和版本。但是,对于像protobuf,看门狗这样的简单想法,这是一个完全可以接受的机制来定义您的特定需求。
另一种选择是定义在映像安装期间要完成的一些功能,以便继续并在适当的位置修改文件。我为ssh配置执行此操作,作为实际创建映像文件之前的一个步骤。我在我的图像配方中创建特定的python函数,并从图像创建中调用它们。我这样做
ROOTFS_POSTPROCESS_COMMAND += "my_python_function"
老实说,你应该把这种想法当作最后的手段。根据需要简单地使用不同的文件可能更容易。