使用FILES _ $ {PN}的示例

Yah*_*aly 4 openembedded yocto

即使我阅读了手册,我也很难理解FILES _ $ {PN}.例如,我正在研究制作启动脚本的这个例子.在我写了类似的东西之后,我收到了这些错误消息.

ERROR: initscriptd-1.0-r0 do_package: QA Issue: initscriptd: Files/directories were installed but not shipped in any package:
  /usr
  /usr/sbin
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
initscriptd: 2 installed and not shipped files. [installed-vs-shipped]
ERROR: initscriptd-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: initscriptd-1.0-r0 do_package: Function failed: do_package
ERROR: Logfile of failure stored in: /home/yahia/Desktop/elinux_dev/bake_factory/poky-pyro-17.0.1/build/tmp/work/core2-64-poky-linux/initscriptd/1.0-r0/temp/log.do_package.5252
ERROR: Task (/home/yahia/Desktop/elinux_dev/bake_factory/poky-pyro-17.0.1/meta-mylayer/recipes-core/mylayer-initscript/initscriptd.bb:do_package) failed with exit code '1'
Run Code Online (Sandbox Code Playgroud)

据我所知,我提供的配方要安装在图像上的文件没有打包在某个包中,所以yocto不知道在哪里打开它们,我是否正确?

所以,我添加了FILES _ $ {PN} + ="与所有目录路径",我安装配方文件.然后它运作良好.

所以,你能解释一下为什么我需要这样做吗?什么时候 ?如果提供了一个连贯的例子将会有所帮助.

Jus*_*nen 8

配方可以(通常会)生成多个包装.系统并不是完全愚蠢的,例如所有标题都会自动进入-dev包中并且所有文档都会进入-doc,但是配方编写者通常需要决定特定文件属于哪个包.这是通过FILES_<packagename> += "/path/to/file"格式完成的.

可以找到FILES_*的默认值,meta/conf/bitbake.conf但请注意您的配方继承的类也可以修改值:检查最终值bitbake -e <recipe>|grep ^FILES_

在你的情况下,看起来你的项目构建系统创建了一些目录,但没有在其中放置任何东西?如果是这种情况,你可以修改你的构建系统,不要这样做,或者添加一个do_install_append()在安装后删除空目录的函数.