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

Old version of library is included in image after updating bitbake file

将我们基于 Yocto 的 Linux 发行版中的 dotnet-runtime 更新到版本 2.1.12 后,我发现生成的图像的大小显着增加。仔细检查后,我发现图像包含新的 2.1.12 版本和旧的 2.1.11 版本的 dotnet-runtime 库。如何确保图像中不包含旧版本?除了 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/ \
"

您可能需要清理食谱的缓存。 刚刚 运行:

$ bitbake -c clean {配方名称}

然后重新构建您的映像。

希望对您有所帮助。

将版本号添加到 bitbake 文件,dotnet-runtime_2.1.12.bb 而不是 dotnet-runtime.bb,解决了这个问题。

关于配方命名的信息http://www.embeddedlinux.org.cn/OEManual/recipes_versioning.html