简体   繁体   English

Yocto:bitbake命令重新生成所有RPM文件

[英]Yocto: bitbake command to regenerate all RPM files

I wanted to make some free space and deleted all directories in build/tmp/deploy/rpm/, thinking yocto would detect it and recreate them at the next bitbake call... it was a mistake ! 我想腾出一些可用空间并删除build / tmp / deploy / rpm /中的所有目录,以为yocto会检测到它并在下一次bitbake调用时重新创建它们……这是一个错误! :( :(

Here's the bitbake error just in case: 以防万一,这是位烘烤错误:

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...]

Is there any way to force the regeneration of every rpms using bitbake ? 有什么方法可以使用bitbake来强制每转的再生吗? Forcing the regeneration with bitbake -f -c package_write_rpm <package> works, but I didn't find the command to do it all at once. 使用bitbake -f -c package_write_rpm <package>强制重新生成bitbake -f -c package_write_rpm <package>可以工作,但是我没有找到一次完成所有操作的命令。

I tried cleaning the state of the native rpm packages thinking it might detect it and invalidate the rpm files states, but no luck: 我试着清理本机rpm软件包的状态,以为它可以检测到它并使rpm文件状态无效,但是没有运气:

bitbake -f -c cleanall nativesdk-rpm nativesdk-rpmresolve rpmresolve-native rpm-native
bitbake <image_name>

I also thought this would work, but it didn't: 我还认为这可以工作,但是没有:

bitbake -f -c package_write_rpm <image_name>

I will try to hack something with bitbake-layers show-recipes and xargs , but it would be cool to have a proper bitbake command. 我将尝试使用bitbake-layers show-recipesxargs来破解某些东西,但是拥有适当的bitbake命令会很酷。

I am using Yocto 2.1 (Krogoth). 我正在使用Yocto 2.1(Krogoth)。

Thanks ! 谢谢 !

I ended up doing the following script and use bitbake dependency tree to get the list of packages (thanks to this yocto/bitbake reference page ): 我最终完成了以下脚本,并使用bitbake依赖关系树来获取软件包列表(由于此yocto / bitbake参考页 ):

# 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

Maybe there is a more straightforward solution ? 也许有一个更直接的解决方案? For now this worked. 目前,这可行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM