获取yocto图像中软件包的描述

时间:2018-12-19 10:10:09

标签: yocto bitbake

我知道我可以使用以下命令获取映像中包含的软件包的列表:

bitbake -g <image> && cat pn-buildlist | grep -ve "native" | sort | uniq

是否有一个bitbake命令来获取特定软件包的描述?也许有一条命令可以获取包装上的所有信息,我可以简单地grep此输出。

干杯!

2 个答案:

答案 0 :(得分:1)

这不是bitbake命令,但是有oe-pkgdata-util实用程序(openembedded-core的一部分)。它适用于OE构建环境(如bitbake)。您可以使用read-value子命令从构建的软件包(不是配方)中查询值。基本语法为:

oe-pkgdata-util read-value <value> <pkg1> [<pkg2>...]

您可以查询多个软件包,为软件包名称加上前缀等。只需检查:

oe-pkgdata-util read-value --help

以下是您问题的一个示例:

tom@pc:~/oe/build> oe-pkgdata-util read-value DESCRIPTION libc6
The GNU C Library is used as the system C library in most systems with the Linux kernel.

顺便说一句,您可以查询其他变量,例如RDEPENDSSUMMARY等。

请注意,如果未在配方中设置DESCRIPTION变量,则会使用SUMMARY变量(see doc)的内容填充。


您的问题还提到获取映像中的软件包列表。我会说有更简单的方法。例如:

  1. 部署目录中的清单文件(该文件在映像文件旁边):${DEPLOY_DIR}/images/${MACHINE}/${IMAGE_BASENAME}-${MACHINE}.manifest
  2. 在构建历史记录中的
  3. 文件installed-package-names.txt(如果已启用)。它位于文件夹${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}/中。

答案 1 :(得分:0)

仅供参考,并非每个包装都有说明。 我通常阅读食谱,因为它比等待bitbake输出更快。不过,如果您想从bitbake中读取它:

bitbake <recipe> -e | grep ^DESCRIPTION=

说明可以写在配方中,例如here

请注意,您可以使用-e访问每个变量,这对于调试非常有用。