为何执行bitbake -c cleanall后flexbe-mirror的修改仍保留?
Yocto中
bitbake -c cleanall无法清除recipe-sysroot-native修改内容的原因及解决办法 核心原因
recipe-sysroot-native是构建系统的共享native sysroot目录,并非flexbe-mirror配方的私有工作产物。bitbake -c cleanall <recipe>只会清理当前配方专属的编译、构建文件,不会触及跨配方共享的sysroot资源。- 你修改的
installer/utils.py属于python3-installer-native配方的输出文件,和flexbe-mirror配方分属不同的构建单元。执行cleanall flexbe-mirror只会处理flexbe-mirror相关的内容,完全不会影响其他native配方生成的文件。
解决办法
- 要恢复该文件的初始状态,需清理对应native配方的工作目录,执行命令:
重新构建flexbe-mirror时,系统会重新生成干净的bitbake -c cleanall python3-installer-nativeinstaller/utils.py文件。 - 若不确定目标文件归属哪个配方,可通过
oe-pkgdata-query查询:
命令输出即为对应的配方名称。oe-pkgdata-query -f '%p' --file recipe-sysroot-native/usr/lib/python3.10/site-packages/installer/utils.py - 调试时建议通过修改对应配方的源代码或添加patch的方式,而非直接修改sysroot内的文件,这样既不会因clean操作丢失修改,也能保证构建的可重复性。
内容的提问来源于stack exchange,提问作者Bonggyu Choi
相关产品推荐
相关产品推荐

