gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:09:54 26 4
gpt4 key购买 nike

我当前的项目基于 Yocto Daisy,在一个 git repo 中具有自定义层声明,在另一个 git repo 中包含应用程序代码。应用程序代码生命周期与自定义层生命周期有些不同,因此我希望能够在构建中捕获它。

为此,我有两个扩展 core-image 的方法:“my-image”和“my-image-dev”。我希望“我的图像”始终使用“应用程序”的标记版本(例如 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' 获得 master。

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

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

最佳答案

我找到了一个解决方案,可以让我完全按照我的要求去做。

关键是将我的“应用程序”包分成两个包——“应用程序”和“应用程序-git”。然后我将发布版本的配方移动到“应用程序”,将开发配方移动到“应用程序-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 图像配方中使用特定的包版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com