加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 02:02:57 所属栏目:Linux 来源:网络整理
导读:我目前的项目基于Yocto Daisy,在一个git repo中包含自定义层声明,在另一个git repo中包含应用程序代码.应用程序代码生命周期与自定义层生命周期有些分离,因此我希望能够在构建中捕获它. 为此,我有两个扩展核心图像的方法:’my-image’和’my-image-dev’.我
我目前的项目基于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”.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读