bitbake 没有找到更新的食谱
bitbake doesn't find newer recipe
我试图在我现有的 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 层中通过 copy/renaming 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
如果两层都有一个配方版本,则层优先级将决定使用哪一层。我猜你的原始层有更高的优先级(你可能不想根据你的情况改变它)。图层优先级通过 BBFILE_PRIORITY
.
设置
一种解决方案是在您的 local.conf 中使用 PREFERRED_VERSION_automake = "1.14.%"
来告诉 bitbake 始终首选 1.14.x 版本。或者,您可以添加自己的高优先级图层,其中仅包含 automake 配方。
我试图在我现有的 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 层中通过 copy/renaming 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
如果两层都有一个配方版本,则层优先级将决定使用哪一层。我猜你的原始层有更高的优先级(你可能不想根据你的情况改变它)。图层优先级通过 BBFILE_PRIORITY
.
一种解决方案是在您的 local.conf 中使用 PREFERRED_VERSION_automake = "1.14.%"
来告诉 bitbake 始终首选 1.14.x 版本。或者,您可以添加自己的高优先级图层,其中仅包含 automake 配方。