【问题标题】:Does Yocto / Bitbake have a "bulldoze" variable for recipes?Yocto / Bitbake 是否有用于食谱的“推土机”变量?
【发布时间】:2018-09-19 00:41:43
【问题描述】:

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

我认为直观的方法是

  1. 让我的包“依赖”另一个包,以便它首先安装
  2. 我的安装首先覆盖了那里的文件。

不幸的是,Bitbake 喜欢为这种方法抛出许多错误。

有没有我可以设置的“IDGAF 把它们放在那里”变量?

【问题讨论】:

    标签: yocto bitbake


    【解决方案1】:

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

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

    另一个选项是定义一些在映像安装期间要完成的功能,以继续并就地修改文件。我为我们的 ssh 配置执行此操作,作为实际创建映像文件本身之前的一个步骤。我在我的图像配方中创建特定的 python 函数并从图像创建中调用它们。我这样做是使用

    ROOTFS_POSTPROCESS_COMMAND += "my_python_function"
    

    老实说,你应该把这种想法作为最后的手段。根据需要简单地使用不同的文件可能更容易。

    【讨论】:

    • 我最终做的是创建了一个带有 do_install_append 的 bbappend,它删除了目标中的二进制文件并用我的替换它们。
    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 2021-05-18
    • 2019-10-27
    相关资源
    最近更新 更多