【问题标题】:Using bitbake is it possible to have a different do_install for a package based on the target image?使用 bitbake 是否可以根据目标图像为软件包提供不同的 do_install ?
【发布时间】:2016-01-22 04:19:40
【问题描述】:

我们有一个 MACHINE 用于构建两个目标图像; foo 图像和 foobar 图像。两个镜像都使用相同版本的包,但我们想根据构建的镜像添加对 do_install 任务的更改。所以包的配方文件看起来像这样:

do_install (){
    //Some work
}

do_install_append_foobar-image(){
   //Some foobar work
}

最终当我们为这两个图像进行构建时:

MACHINE=custom bitbake foo-image
MACHINE=custom bitbake foobar-image

foobar 的图像将包含已完成附加任务中工作的已安装包,但 foo 的图像不会。

有什么方法可以做我所概述的或者可以替代的方法吗?

【问题讨论】:

    标签: recipe bitbake


    【解决方案1】:

    不,您不能根据正在构建的映像在配方中执行不同的任务。虽然我非常不确定,但可能会检查 do_install 中的图像名称。

    我要做的是:

    • 在配方中,添加包含附加文件的第二个包(如果您想要这样做)。
    • 让您的第二个图像配方包含此第二个包。

    另一种可能性是添加一个post_install-脚本,这取决于您是否可以检测到您构建的图像,它会为您进行修改。第三种可能不太好的选择是在 ROOTFS_POSTPROCESS_COMMAND 中进行更改。

    您选择哪种解决方案取决于您想要进行哪种自定义。

    【讨论】:

      【解决方案2】:

      经过深思熟虑,我们可能是在倒过来考虑这个问题。我们可能想在机器级别注入分离。由于最终两者都将是单独的产品,因此这是最有意义的。这样做可以让我们对特定产品的包进行更改。

      我们的构建线将变为:

      MACHINE=custom1 bitbake foo-image
      MACHINE=custom2 bitbake foobar-image
      

      我们的包安装任务可以是:

      do_install (){
          //Some work
      }
      
      do_install_append_custom2(){
         //Some more work
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-24
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        • 1970-01-01
        • 2015-06-11
        • 2010-10-04
        • 1970-01-01
        相关资源
        最近更新 更多