You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto构建同一机器不同镜像时部署目录旧产物被删除问题咨询

Yocto同一机器多镜像构建时部署目录产物保留方案

问题根源

部署目录旧产物被清理和rm_work无关——你已经通过RM_WORK_EXCLUDE排除了镜像相关工件。真正原因是Yocto默认在构建镜像时,会清理对应机器目录下的旧部署文件,确保只保留当前构建产物。

解决办法

1. 直接禁用部署清理

在local.conf中添加以下配置,阻止构建时清理部署目录的旧文件:

DEPLOYMENT_CLEAN_BY_MACHINE = "0"

该变量默认值为1,会清理当前机器对应部署目录下的旧内容,设为0即可保留之前的镜像产物。

2. 为不同镜像分配独立部署子目录

如果不想完全禁用清理,可以给每个镜像设置单独的部署路径,避免互相覆盖。在镜像的.bb文件(或local.conf中针对镜像单独配置)添加:

DEPLOYDIR = "${DEPLOY_DIR_IMAGE}/${PN}"

这样每个镜像的产物会被放到deploy/images/<machine>/<image-name>子目录下,彼此独立,不会被互相清理。

3. 确认RM_WORK_EXCLUDE配置有效性

虽然你已经添加了排除规则,但可以手动明确指定所有需要保留的镜像名称,避免变量展开问题导致排除失效。例如你的镜像为core-image-minimal和core-image-sato,则配置应为:

RM_WORK_EXCLUDE += " core-image-minimal core-image-sato"

内容的提问来源于stack exchange,提问作者Umar Farooq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:13:10