首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Yocto镜像食谱中使用特定的包版本?

如何在Yocto镜像食谱中使用特定的包版本?
EN

Stack Overflow用户
提问于 2014-09-03 11:29:28
回答 1查看 10.1K关注 0票数 8

我当前的项目基于Yocto Daisy,在一个git代码库中包含自定义层声明,在另一个git代码库中包含应用程序代码。应用程序代码生命周期在某种程度上独立于自定义层生命周期,因此我希望能够在构建中捕获这一点。

为此,我有两个扩展core-image的方法:'my-image‘和'my-image-dev’。我希望'my-image‘始终使用'application’的标记版本(例如v0.1、v0.2等)。我希望'my-image-dev‘总是使用来自git master的'application’头。

我编写了食谱'application_0.1.bb‘和’ApplicationGit.bb‘,并对它们进行了单独测试。它们的行为符合预期-- 'application_0.1.bb‘获得标签0.1,'application_git.bb’获得master。

当我试图指示一个特定的图像使用特定版本的“应用程序”时,问题就出现了。我本以为这会像将PREFERRED_VERSION_application = "0.1"PREFERRED_VERSION_application = "git%"添加到我的图像食谱中一样简单,但这并没有给我带来任何好处。PREFERRED_VERSION唯一可以工作的地方似乎是layer.conf和machine.conf,这对我没有帮助,因为这两个镜像是针对同一逻辑机器的。

所以这就是我的问题--有没有办法从Yocto镜像中声明对包的特定版本的依赖关系?

EN

回答 1

Stack Overflow用户

发布于 2014-09-04 04:05:39

我找到了一个解决方案,可以让我做我正在寻找的事情。

关键是将我的'application‘包分成两个包-- 'application’和'application-git‘。然后,我将发布版本配方移到了'application‘,将开发配方移到了'application-git’。为了减少重复的代码,我使用require recipes-application/application/application.inc将两个配方之间的所有公共逻辑移动到一个'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"

这是对系统的一种轻微滥用,但由于它产生了一个明确的结果( image中的发布版本,image- dev中的dev版本),我认为这是值得的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25635782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档