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

标签 linux embedded-linux rpm yocto bitbake

我想腾出一些可用空间并删除了 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/

相关文章:

configuration - 为什么 dnf config-manager --save 不起作用?

linux - 如何使用 bash 脚本关闭所有终端,在每个终端中有效地按 Ctrl+Shift+Q

linux - Buildroot 不会在 am335x 自定义板上为 emmc 创建/开发条目

linux - 删除多行 block 的脚本

data-structures - 数据结构对嵌入式软件工程师的重要性

embedded - 为嵌入式系统中的平台总线编写设备驱动程序?

linux - 构建具有 RPM 升级 future 前景的 Docker 镜像

repository - 新的 Nexus 3.0 OSS 版本是否支持 rpm repo?

linux - Linux 程序中的路径管理

r - Linux 中 MatchIt 包中的倾向得分匹配