获取 yocto 图像中包的描述

Get description of packages in yocto image

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

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

是否有 bitbake 命令来获取特定包的描述?或者也许有一个命令来获取一个包的所有信息,我可以简单地 grep 这个输出。

干杯!

仅供参考,并非每个包裹都有描述。 我通常会阅读食谱,因为它比等待 bitbake 输出要快。不过,如果你想从 bitbake 读取它:

bitbake <recipe> -e | grep ^DESCRIPTION=

说明可以写在菜谱里,比如here

附带说明一下,您可以使用 -e 访问每个变量,这对调试非常有用。

它不是 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. file installed-package-names.txt in buildhistory(如果你启用了它)。它位于文件夹 ${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}/.