我尝试将当前yocto版本的升级后的自动工具包含到我的现有OE环境中,而不需要升级所有现有软件包,因此我在我的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层,而没有给出给定包的具体搜索细节)。
谢谢, B
bitbake-layers show-overlayed
和bitbake-layers show-recipes
命令来检查可用的配方。它会显示这些配方来自哪些版本和哪些层。如果需要进一步帮助,请将这两个命令的输出发布到 pastebin 等网站上。 - Anders