更新 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
将我们基于 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