Yocto 安装后如何删除不需要的文件?
How to remove unneeded files after those are installed by Yocto?
我正在尝试为 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
}
但是我找不到正确的使用路径。有人可以解释这是否是解决问题的正确方法,如果是,我应该使用什么路径在安装这些文件之后和创建包之前删除这些文件?谢谢!
$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
请注意,这实际上是您的自定义库中的错误:它不应该为模块安装版本化符号链接。
如果您使用 libtool 构建它,那么 - IIRC - 传递 -module 将停止版本控制。
我正在尝试为 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
}
但是我找不到正确的使用路径。有人可以解释这是否是解决问题的正确方法,如果是,我应该使用什么路径在安装这些文件之后和创建包之前删除这些文件?谢谢!
$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
请注意,这实际上是您的自定义库中的错误:它不应该为模块安装版本化符号链接。
如果您使用 libtool 构建它,那么 - IIRC - 传递 -module 将停止版本控制。