如何在Yocto安装后删除不需要的文件?

问题描述 投票:0回答:2

我正在尝试在yocto中为自定义库创建配方。我目前收到此错误:

ERROR: ... do_package: QA Issue: pot-plugin: Files/directories were installed but not shipped in any package:
  /usr/lib/qt5/plugins/mediaservice/a.so.1.0
  /usr/lib/qt5/plugins/mediaservice/a.so.1
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.

我已经在FILES _ $ {PN}中设置了那些,但是在那种情况下,yocto抱怨那些符号链接,并且不属于包。正确的做法是从sysroot本身删除那些。因此,我尝试定义do_install步骤,但在创建包之前无法找到如何删除它们。我做了类似的事情:

do_install {
   rm <some_path>/a.so.1.0
   rm <some_path>/a.so.1
}

但我找不到合适的使用途径。有人可以解释这是否是解决问题的正确方法,如果是,在安装这些文件之后和创建包之前我应该​​使用哪条路径来删除这些文件?谢谢!

yocto bitbake openembedded
2个回答
1
投票

$D包含installroot的路径,因此您可以编写

do_install_append() {
    rm -f ${D}/usr/lib/qt5/plugins/mediaservice/a.so.1.0 ...
}

但是你可能也希望用变量替换/usr/lib/qt5/plugins。为此,请使用以下方法检查现有变量

bitbake <recipe> -e | less

0
投票

请注意,这实际上是自定义库中的错误:它不应该为模块安装版本化符号链接。

如果您正在使用libtool来构建它,那么 - IIRC - 传递 - 模块将停止它的版本控制。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.