embedded-linux – 如何在Yocto图像配方中使用特定的包版本?

embedded-linux – 如何在Yocto图像配方中使用特定的包版本?,第1张

概述我目前的项目基于Yocto Daisy,在一个git repo中包含自定义层声明,在另一个git repo中包含应用程序代码.应用程序代码生命周期与自定义层生命周期有些分离,因此我希望能够在构建中捕获它. 为此,我有两个扩展核心图像的方法:’my-image’和’my-image-dev’.我想’my-image’总是使用’​​application’的标记版本(例如v0.1,v0.2等).我想让 我目前的项目基于Yocto Daisy,在一个git repo中包含自定义层声明,在另一个git repo中包含应用程序代码.应用程序代码生命周期与自定义层生命周期有些分离,因此我希望能够在构建中捕获它.

为此,我有两个扩展核心图像的方法:’my-image’和’my-image-dev’.我想’my-image’总是使用’​​application’的标记版本(例如v0.1,v0.2等).我想让’my-image-dev’始终使用来自git master的’application’head.

我写了食谱’application_0.1.bb’和’application_git.bb’,并单独测试它们.它们的行为符合预期 – ‘application_0.1.bb’获得标记0.1,’application_git.bb’获得主标记.

当我尝试指示特定图像使用特定版本的“应用程序”时,问题就出现了.我原本以为这就像在我的图像配方中添加PREFERRED_VERSION_application =“0.1”和PREFERRED_VERSION_application =“git%”一样简单,但这让我没有爱. PREFERRED_VERSION似乎唯一有效的地方是在layer.conf和machine.conf中,这对我没有帮助,因为两个图像都是针对同一个逻辑机器的.

所以这是我的问题 – 有没有办法从Yocto图像声明对特定版本的包的依赖?

解决方法 我找到了一个解决方案,可以让我完全按照自己的意愿行事.

关键是将我的’应用程序’包拆分为两个包 – ‘application’和’application-git’.然后我将发布版本的配方移动到’application’,将开发配方移动到’application-git’.为了减少重复的代码,我将两个配方之间的所有通用逻辑移动到文件’application / application.inc’中,并使用require recipes-application / application / application.inc将其包含在’application-git.bb’中.

现在我可以在我的图像中包含适当的包.所以’my-image.bb’包含IMAGE_INSTALL =“application”. ‘my-image-dev.bb’需要’my-image.bb’,所以我添加了行IMAGE_INSTALL_remove =“application”并添加了IMAGE_INSTALL =“application-git”.

这是对系统的轻微滥用,但由于它产生了明显的结果(图像中的发布版本,图像开发中的开发版本),我认为这是值得的.

总结

以上是内存溢出为你收集整理的embedded-linux – 如何在Yocto图像配方中使用特定的包版本?全部内容,希望文章能够帮你解决embedded-linux – 如何在Yocto图像配方中使用特定的包版本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1031496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存