我想腾出一些可用空间并删除了 build/tmp/deploy/rpm/中的所有目录,认为 yocto 会检测到它并在下一次 bitbake 调用时重新创建它们...这是一个错误! :(
这是 bitbake 错误以防万一:
bitbake <image_name>
[...]
ERROR: ... do_rootfs: minicom not found in the base feeds (<image_name> corei7-64-intel-common corei7-64 core2-64 x86_64 noarch any all).
[...list of every package...]
有什么方法可以使用 bitbake 强制每个 rpm 重新生成吗?
使用 bitbake -f -c package_write_rpm <package>
强制再生有效,但我没有找到一次性完成所有操作的命令。
我尝试清理 native rpm 包的状态,认为它可能会检测到它并使 rpm 文件状态无效,但没有运气:
bitbake -f -c cleanall nativesdk-rpm nativesdk-rpmresolve rpmresolve-native rpm-native
bitbake <image_name>
我也认为这会起作用,但事实并非如此:
bitbake -f -c package_write_rpm <image_name>
我会尝试用 bitbake-layers show-recipes
来破解一些东西和xargs
,但是如果有一个合适的 bitbake 命令那就太酷了。
我正在使用 Yocto 2.1 (Krogoth)。
谢谢!
最佳答案
我最终执行了以下脚本并使用 bitbake 依赖树来获取包列表(感谢这个 yocto/bitbake reference page ):
# bitbake -g <image> && cat pn-depends.dot | grep -v -e '-native' | grep -v digraph | grep -v -e '-image' | awk '{print $1}' | sort | uniq | grep -v "}" | grep -v cross | grep -v gcc | grep -v glibc > packages-list.txt
# cat packages-list.txt | xargs bitbake -f -c package_write_rpm
也许有更直接的解决方案?目前这有效。
关于linux - Yocto:bitbake 命令重新生成所有 RPM 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310516/