Yocto:解决“QA Issue: Package version for package went backwards which would break package feeds”

本文详细介绍了在Yocto项目中如何解决因软件包版本回退导致的构建错误问题。通过修改配置文件,去除ERROR_QA中的version-going-backwards报告项,成功解决了构建历史记录引发的版本冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目需要在 Yocto 里面回退一个软件包到比较旧的版本,而新版本的软件包已经生成了 cache ,这样在编译的时候就会遇到如下错误:

QA Issue: Package version for package went backwards which would break package feeds

主要原因是:如果启用了构建历史记录,那么当一个包在相同的名称下被构建出来时,Yocto 的 ERROR_QA 或者 WARN_QA 就会报告它的版本比以前构建的包的版本要低。如果你将旧版本包放置到镜像中,并使用该镜像升级目标系统上的包,则旧版本包可能导致目标系统无法正确升级到该包的“新”版本。
具体的 ERROR_QA 或者 WARN_QA 报告项可以查看poky/meta/classes/insane.bbclass文件:

# Elect whether a given type of error is a warning or error, they may
# have been set by other files.
WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \
            textrel already-stripped incompatible-license files-invalid \
            installed-vs-shipped compile-host-path install-host-path \
            pn-overrides infodir build-deps src-uri-bad \
            unknown-configure-option symlink-to-sysroot multilib \
            invalid-packageconfig host-user-contaminated uppercase-pn patch-fuzz \
            "
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
            perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
            split-strip packages-list pkgv-undefined var-undefined \
            version-going-backwards expanded-d invalid-chars \
            license-checksum dev-elf file-rdeps configure-unsafe \
            configure-gettext perllocalpod \

解决我们这个问题的方法就是在配置文件里面去掉 ERROR_QA 里面的 version-going-backwards 报告项:

ERROR_QA_remove = "version-going-backwards"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值