【问题标题】:How to avoid file conflicts between attempted installs during a BitBake build?如何避免在 BitBake 构建期间尝试安装之间的文件冲突?
【发布时间】:2016-05-12 19:19:05
【问题描述】:

我有两个基于自动工具的 BitBake 配方,它们都提供相同的命名文件(并且都安装在 usr/bin 中),这会导致错误:

error: file /usr/bin/example conflicts between attempted installs of recipe1-0.1-r0.x86 and recipe2-0.1-r0.x86

我发现我可以解决这个问题,但这看起来确实是一种风格非常糟糕的hackaround。如果您将它放在提供示例文件的配方之一中,它将避免此特定错误,但可能会导致其他错误。

do_install_append () {
    rm -f ${D}${bindir}/example
}

有没有更好的方法来避免这种冲突?我认为PREFERRED_PROVIDER 可能会有一些希望,但没有任何成功。

【问题讨论】:

    标签: package yocto bitbake openembedded


    【解决方案1】:

    解决这个问题的常用方法是 update-alternatives 类。请参阅 meta/classes/update-alternatives.bbclass 和 Yocto 项目参考手册中有关 update-alternatives.bbclass 的条目。 http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#ref-classes-update-alternatives 是那个链接。

    【讨论】:

    • 如果文件不是二进制文件怎么办?
    【解决方案2】:

    我想关键问题是为什么两个配方都安装同一个文件,如果两个包都安装了会发生什么?在正确的情况下删除文件是一个非常好的修复,或者如果您需要在两个文件之间进行选择,或者使用更新替代方案,或者在 do_install 中重命名文件,这样它们就不会发生冲突......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 2019-02-21
      • 2016-07-05
      • 2019-02-08
      • 1970-01-01
      • 2022-07-28
      相关资源
      最近更新 更多