Yocto 配方不提取存档

Yocto recipe not extract archive

我试图在构建系统期间将 .tar.gz 文件解压缩到我的根目录,但由于我不清楚的原因,它不起作用。我以与我的元中的其他食谱相同的方式完成了它(工作正常),但在这种情况下,我在目标系统根目录中有一个空目录。食谱与 tar.gz.

同名

根据 Yocto Project Documentation 和我的其他经验,它应该可以正常工作。我尝试手动删除 tmpsstate-cache 目录并重建系统,但它没有任何改变。配方正在构建,但 /my-app 是空的。我可以强制提取我的存档吗?

树文件:

├── meta-my
│   └── recipe-my-app-files
│       └── my-app
|           └── my-app.bb
│           └── files
│               ├── my-app.tar.gz
....

我的-app.bb

DESCRIPTION = "My Application package preinstall"

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
RDEPENDS_my-app="bash qtdeclarative qtbase"
DEPENDS = "bash"

FILES_${PN} += "/my-app"

SRC_URI = "file://my-app.tar.gz"

BB_STRICT_CHECKSUM = "0"

S = "${WORKDIR}"

do_install() {
        # Create directories
        install -d ${D}/my-app
}

link 中所述,您提供了:

The unpack call automatically decompresses and extracts files with ".Z", ".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm". ".srpm", ".deb" and ".bz2" extensions as well as various combinations of tarball extensions.

它会自动将 .gz 提取到 ${WORKDIR}

您的食谱的问题是您正在创建 /my-app 但没有填充任何内容。

请记住,压缩文件是在 ${WORKDIR} 下解压的,因此请将其安装到 ${D}/my-app:

do_install(){
     # Create directories
     install -d ${D}/my-app

     # Install unpacked application
     # install -m 0755 app ${D}/my-app
     # ...
}

不知道你申请的内容,就照着改吧。