bitbake没有找到更新的食谱

时间:2015-04-17 00:47:29

标签: yocto bitbake openembedded

我试图在现有的OE环境中包含当前yocto版本的升级autotools而不升级我现有的所有包,所以我在我的conf文件中添加了yocto作为一个层:

BBLAYERS += " \
...
        ${OEBASE}/sources/meta-yocto/meta \
...
        ${OEBASE}/sources/oe-core/meta \

在最初的oe-core层,我有automake_1.12.3:

../sources/oe-core/meta/recipes-devtools/automake/
├── automake
│   ├── path_prog_fixes.patch
│   ├── prefer-cpio-over-pax-for-ustar-archives.patch
│   ├── py-compile-compile-only-optimized-byte-code.patch
│   └── python-libdir.patch
├── automake_1.12.3.bb
└── automake.inc

在yocto层中:

../sources/meta-yocto/meta/recipes-devtools/automake/
├── automake
│   ├── buildtest.patch
│   ├── py-compile-compile-only-optimized-byte-code.patch
│   └── python-libdir.patch
├── automake_1.14.1.bb
└── automake.inc

然而,bitbake只找到版本1.12.3:

$ bitbake -s | grep automake
automake                                           :1.12.3-r2                          
automake-native                                    :1.12.3-r2                          
nativesdk-automake                                 :1.12.3-r2  

但是,我确信图层配置和路径是正确的,因为如果我通过在yocto图层中复制/重命名automake_1.14.1.bb来创建虚拟配方zz:

../sources/meta-yocto/meta/recipes-devtools/zz
├── automake
│   ├── buildtest.patch
│   ├── py-compile-compile-only-optimized-byte-code.patch
│   └── python-libdir.patch
├── automake.inc
└── zz_1.14.1.bb

然后,bitbake发现它很好:

$ bitbake -s | grep zz
nativesdk-zz                                       :1.14.1-r0                          
zz                                                 :1.14.1-r0                          
zz-native                                          :1.14.1-r0                          

这一切让我想知道bitbake是否有某种缓存状态导致它跳过搜索更新版本的automake。

有没有办法强制bitbake忽略它的缓存并再次搜索并详细说明它正在使用的确切搜索过程? (我使用了-vDDD,但它只显示它添加了Yocto层,而不是给定包的特定搜索详细信息。

谢谢, 乙

1 个答案:

答案 0 :(得分:5)

如果两个图层都具有配方版本,则图层优先级将决定使用哪一个。我猜你的原始图层具有更高的优先级(你可能不想在你的情况下改变它)。图层优先级通过BBFILE_PRIORITY设置。

一种解决方案是在local.conf中使用PREFERRED_VERSION_automake = "1.14.%"来告诉bitbake总是更喜欢1.14.x版本。或者,您可以添加具有高优先级的自己的图层,其中只包含automake配方。