devtool使用介绍3

  • 2.4.3 使用devtool upgrade创建支持新版本软件的recipe版本

2.4.3 使用devtool upgrade创建支持新版本软件的recipe版本

devtool upgrade命令将一个存在的recipe升级到上游的最新版本。 在软件的整个生命周期中,recipe均由其上游publishers不断进行版本升级。 您可以使用devtool upgrade 工作流程来确保用于构建的recipe与上游的recipe是最新的。

注意
有几种方法可以升级recipe - devtool upgrade恰好是其中一种。 您可以在《Yocto项目开发任务手册》的“Upgrading Recipes”部分中了解有关升级recipe的所有方法。

devtool upgrade命令具有足够的灵活性,可让你指定源代码修订和版本控制方案,将代码提取到devtool的The Workspace Layer Structure中或从中提取出来,以及使用fetchers 支持的任何源文件格式。
下图显示了与devtool upgrade命令一起使用的常见开发流程:
1.启动升级:流程的顶部显示了使用devtool upgrade命令的典型场景。 需要满足以下条件:

  • recipe存在于devtool工作空间外部的本地层中。
  • 新版本的源文件存在于recipe中SRC_URI指向的相同位置(例如,名称中具有新版本号的压缩包,或在上游Git库中的修订版本)。
    常见的情况是第三方软件已经过修订,因此已经升级。 您可以访问的recipe可能在您自己的图层中。 因此,您需要升级recipe以使用软件的更新版本:
devtool upgrade -V version recipe

默认情况下,devtool upgrade命令将源代码提取到The Workspace Layer Structure中的sources目录中。 如果要将代码提取到任何其他位置,则需要使用以下命令提供srctree位置参数:

$ devtool upgrade -V version recipe srctree
注意
在此示例中,“-V”选项指定新版本。 如果您不使用“ -V”,则该命令会将recipe升级到最新版本。

如果recipe中SRC_URI语句指向的源文件位于Git存储库中,则必须提供“ -S”选项并为软件指定一个修订版本。
一旦devtool找到了recipe,它就会使用SRC_URI变量来定位源代码和其他开发人员提供的任何本地补丁文件。 结果是该命令会在工作空间中生成全部源代码,包括recipe的新版本以及附加文件。

此外,如果你有任何非补丁本地文件(即在SRC_URI语句中使用file://项引用的文件,不包括*. /)。patch/或*.diff),这些文件被复制到新创建的源树下的oe-local-files文件夹中。在这里复制文件为您提供了一个方便的区域,您可以从中修改文件。您对这些文件所做的任何更改或添加都将在下一次构建软件时合并到构建中,就像您可能对源代码所做的其他更改一样。

2.解决升级产生的任何冲突:由于软件升级到新版本,可能存在冲突。如果recipe在SRC_URI中指定的某些补丁文件与新版本软件中所做的更改相冲突,则会发生冲突。对于这种情况,您需要通过编辑源代码并遵循正常的git rebase冲突解决过程来解决冲突。

在进入下一步之前,请确保解决通过使用更新或不同版本的软件所产生的任何此类冲突。

3.构建recipe或重新构建镜像:您采取的下一步取决于您将如何处理新代码。
如果你最终需要将构建输出移动到目标硬件上,使用以下devtool命令:

$ devtool build recipe

另一方面,如果你想要一个镜像从工作区中包含recipe的包,以便立即部署到设备上(例如用于测试目的),你可以使用devtool build-image命令:

$ devtool build-image image

4.部署构建输出:当您使用devtool Build命令或bitbake来构建你的recipe时,您可能想要查看生成的构建输出在目标硬件上是否如预期的那样工作。

注意
这个步骤假设你已经有一个先前构建的镜像,该镜像已经在QEMU中运行或在实际的硬件上运行。另外,假设镜像部署到目标,SSH已安装在镜像中,并且镜像运行在你的开发机器可以通过网络访问或从你的开发机器访问的实际硬件上。

您可以使用devtool deploy-target命令将生成的输出部署到该目标硬件:

$ devtool deploy-target recipe target

目标是作为SSH服务器运行的实时目标计算机。

当然,您也可以使用devtool build-image命令将构建的镜像部署到实际硬件。 但是,devtool没有提供允许您执行此操作的特定命令。

5.使用recipe完成工作:devtool finish命令在本地Git存储库中创建与提交对应的所有补丁,将新recipe移动到更稳定的层,然后重置recipe,以便正常构建recipe,而不是从工作区中构建recipe 。

在devtool finish命令期间,你在oe-local-files目录中所做的任何工作都会保留在recipe旁边的原始文件中。

如果指定的目标层与原始源层相同,则在添加新版本之前,将删除recipe的旧版本和相关文件。

$ devtool finish recipe layer
注意
要转换为补丁的任何更改都必须提交到源树中的Git存储库。

作为devtool finish命令的最后一个过程,将恢复标准层和上游源的状态,以便您可以从这些区域而不是工作区构建recipe。

注意
如果你决定不继续你的工作,你可以使用devtool reset命令回退。如果使用此命令,请注意将保留源树。

devtool使用介绍(3)相关推荐

  1. devtool使用介绍(1)

    devtool使用介绍1 SDK中devtool的工作流程 2.4.1 使用 devtool add添加应用程序 SDK中devtool的工作流程 可扩展SDK的核心要件是一个命令行工具,称为devt ...

  2. devtool使用介绍(4)

    devtool使用介绍4 2.5 devtool add详细介绍 2.5.1名称和版本 2.5.2依赖性检测和映射 2.5.3 License检测 2.5.4添加Makefile-Only文件 2.5 ...

  3. devtool使用介绍(2)

    devtool使用介绍2 2.4.2 使用devtool Modify修改现有组件的来源 2.4.2 使用devtool Modify修改现有组件的来源 devtool Modify命令为使用已有代码 ...

  4. 弄懂webpack,只要看这一片就够了(文末有福利)

    什么是webpack ​ webpack是什么,官网中是这么说的. ​ 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webp ...

  5. [转]WebPack 常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

  6. React with Webpack -1: 介绍Helloworld

    React with Webpack -1: 介绍&Helloworld node.js 开发之react 学习1 context:node.js 开发的工具和lib发展的很快,in othe ...

  7. Vue 3拖更,尤雨溪介绍最新进展

    Vue.js 作者尤雨溪近日介绍了 Vue 3 的最新进展. 尤雨溪表示,由于在 Vue 3 上花费的大部分时间都投入到了设计和构建稳定的内核上,不过要让整个框架处于"ready" ...

  8. openlayers实例_介绍OpenLayers

    简介 Web开发有一个专门的方向就是Web GIS,而Openlayers库就是Web GIS里的一个翘楚,想要开源的Web GIS的JavaScript库几乎就没有别的选择. OpenLayers的 ...

  9. 介绍一个又快又准的截图骚操作

    截图是可以说是每个人必备的技能,有时候需要截个手机屏,有时候需要截个网页屏,方式有很多,各种快捷键和插件也都能够办到. 但下面这个情况不知道大家会怎么来做. 需求切入 有一天,我在电脑上看到了一条微博 ...

最新文章

  1. 关于学外语,这些人人都知道的“常识”,可能是错的……
  2. 太棒啦!PyCharm与Jupyter完美融合,Jupytext来啦!
  3. 实验long raw 和 blob两种数据类型遇到dblink的表现
  4. 编码格式经典书籍--代码整洁之道
  5. 数据科学真的是一份有前途的工作吗?
  6. 如何用DELPHI实现把WORD、EXCEL和图片等存储到数据库中
  7. Codeforces 527C Glass Carving
  8. SSM-Spring-04:Spring的DI的构造注入,P命名注入,和集合注入
  9. 冻库正常低压力是多少_零下40度低温低压压力多少算正常?
  10. android利用多线程加载图片【不使用第三方库】
  11. 手机做web服务器 无限流量,想要无限流量套餐?别做梦了!
  12. mybatis-plus报错There is no getter for property named ‘null‘ in ‘xx‘和Could not set property ‘XXX‘ of ‘
  13. 1028: 安全路径(2014年中南大学研究生复试机试题 )
  14. 怎么利用粉丝圈这个微信社区工具做好社群营销?我们是做教育行业
  15. antd 表单 校验、取值、重置
  16. 22考研基础阶段计划;超七成考研人已开始复习!
  17. UE4 场景展示Demo
  18. 目前最流畅的android手机,买安卓手机请认准这五个最流畅的系统
  19. 前端代码实现的一个消除类型的图片滑滑乐小游戏分享
  20. Linux学习-ps显示进程信息

热门文章

  1. Ehcache3 入门
  2. 2012年北京师范大学新生程序设计竞赛网络赛
  3. 一个很牛逼的工具XueTr
  4. C# 文件上传到七牛云服务器(一)
  5. 2012年复赛综合训练(一):第一题:nbsp;…
  6. 中新金盾DDOS软件防火墙——防御CC攻击的好帮手
  7. Hgame-Week3
  8. 深信服链路高可用与策略路由
  9. 今日突发奇想:如何压缩音频
  10. 中国校友会网2012中国大学排行榜100强