如何在BitBake构建期间避免尝试安装之间的文件冲突?

时间:2016-02-03 14:24:48

标签: package yocto bitbake openembedded

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

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

我发现我可以解决这个问题,但这看起来真的很糟糕。如果将其放在提供示例文件的其中一个配方中,它将避免此特定错误,但可能会导致其他错误。

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

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

2 个答案:

答案 0 :(得分:4)

解决这个问题的常用方法是更新替代类。请参阅update-alternatives.bbclass上的meta / classes / update-alternatives.bbclass和Yocto Project Reference Manual条目。 http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#ref-classes-update-alternatives是指向该链接的链接。

答案 1 :(得分:0)

我想关键问题是为什么两个配方都安装相同的文件,如果安装了两个软件包会发生什么?在正确的情况下删除文件是一个非常好的修复,或者如果您需要在两个文件之间进行选择,或者在do_install中重命名文件以使它们没有冲突,则使用update-alternatives ...