更新bitbake文件后,映像中包含旧版本的库

时间:2020-03-18 09:49:34

标签: yocto bitbake

在我们基于Yocto的Linux发行版中将dotnet-runtime更新到版本2.1.12之后,我看到生成的映像的大小已显着增加。经过仔细检查,我发现该映像同时包含dotnet-runtime库的新2.1.12版本和旧的2.1.11版本。如何确保旧版本不包含在映像中?除了SRC_URI和校验和之外,我还需要更改更多吗?

这是dotnet-runtime.bb

的内容
DESCRIPTION = ".NET Core Runtime, SDK & CLI tools"
HOMEPAGE = "https://www.microsoft.com/net/core"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=42b611e7375c06a28601953626ab16cb"
COMPATIBLE_HOST ?= "x86_64.*-linux"

RDEPENDS_${PN} = "glibc zlib libunwind icu libcurl openssl krb5 libgssglue"
INSANE_SKIP_${PN} += "already-stripped staticdev file-rdeps libdir"

INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT  = "1"

SRC_URI =  "https://download.visualstudio.microsoft.com/download/pr/c1b620fe-7d8e-4685-b6ae-82b444dbc7a7/3d5610f0607da49ee014c61c6cd4e9af/aspne
tcore-runtime-2.1.12-linux-x64.tar.gz"
SRC_URI[sha256sum] = "cdb8816a437de168b25500b14ea32169abe610675ced08ca31f77f9542c2149a"

S = "${WORKDIR}"

do_install() {
        install -d ${D}${bindir}
        install -d ${D}${datadir}/dotnet
        install -d ${D}${datadir}/dotnet/host/
        install -d ${D}${datadir}/dotnet/shared/

        install -m 0755 ${S}/dotnet ${D}${datadir}/dotnet
        install -m 0644 ${S}/LICENSE.txt ${D}${datadir}/dotnet
        install -m 0644 ${S}/ThirdPartyNotices.txt ${D}${datadir}/dotnet

        cp -r --no-preserve=ownership ${S}/host/ ${D}${datadir}/dotnet/
        cp -r --no-preserve=ownership ${S}/shared/ ${D}${datadir}/dotnet/

        # Symlinks
        cd ${D}${bindir}
        ln -s ../../${datadir}/dotnet/dotnet dotnet || true
    }

FILES_${PN} = "\
        ${bindir}/dotnet \
        ${datadir}/dotnet/ \
"

2 个答案:

答案 0 :(得分:0)

您可能需要清除配方的缓存。 只需运行:

$ bitbake -c clean {食谱名称}

然后再次构建您的图像。

希望有帮助。

答案 1 :(得分:0)

将版本号添加到位烘烤文件dotnet-runtime_2.1.12.bb而不是dotnet-runtime.bb,解决了该问题。

有关配方命名http://www.embeddedlinux.org.cn/OEManual/recipes_versioning.html

的信息