如何只安装软件包组中列出的软件包的子集?

时间:2015-10-22 01:57:23

标签: yocto bitbake openembedded

为了测试目的,我编写了以下名为packagegroup-amatek.bb的软件包组:

# Copyright (C) 2012-2013 Freescale Semiconductor
# Released under the MIT license (see COPYING.MIT for the terms)

DESCRIPTION = "Example package group"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"

PR = "r5"

inherit packagegroup

PROVIDES = "${PACKAGES}"
PACKAGES += " \
    ${PN}-package1 \
    ${PN}-package2 \
"


RDEPENDS_${PN}-package1 = " \
   package1-depend1 \
"

RDEPENDS_${PN}-package2 = " \
   package2-depend2 \
"


PACKAGE_ARCH = "${MACHINE_ARCH}"

如果在我的自定义图片文件(amatek-image)中,我只包含packagegroup-amatek-package1

IMAGE_INSTALL = "packagegroup-amatek-package1"

我希望没有安装package2-depend2,因为它是未安装的软件包packagegroup-amatek-package2的依赖项。

但是,bitbake amatek-image -g -u depexp表示同时安装了package2-depend2

enter image description here

这是预期的行为吗?

1 个答案:

答案 0 :(得分:3)

依赖项资源管理器将显示构建的内容,而不是已安装的内容。如果您构建上面的图像,您会发现只有packagegroup-amatek-package1按照您的预期安装。系统必须构建的内容与运行时安装的内容之间存在差异。它必须构建packagegroup-amatek-package2,因为它与packagegroup-amatek-package1的部分配方相同,系统不会部分构建配方,它可以是也可以不是。