有没有办法检查Yocto映像中将安装的软件包的确切列表?

moz*_*ors 8 embedded-linux bitbake yocto

在基于Yocto的Embedded Linux发行版中,我真的很感兴趣,可以在执行映像构建配方之前,从将要构建并安装到映像文件的每个相关层中查找软件包/配方/内核模块的完整列表:

bitbake my-image-minimal
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?在这方面的任何指导是值得赞赏的。

提前致谢。

小智 10

是,

Yocto以清单文件的形式维护包装信息,该清单文件位于/tmp/deploy/images/<"machine_image">/<<image_name">.manifest。

  • 这是“之后”构建的好工具,但是他之前问过。 (3认同)

Dav*_*san 7

是的,像这样在旧的Bitbake版本上:

bitbake -g <image> && cat pn-depends.dot | grep -v -e '-native' \
    | grep -v digraph | grep -v -e '-image' | awk '{print $1}' | sort | uniq
Run Code Online (Sandbox Code Playgroud)

取自恩智浦社区网站

在较新的版本上:

bitbake -g <image> && cat pn-buildlist | grep -ve "native" | sort | uniq
Run Code Online (Sandbox Code Playgroud)

  • 第二种方法似乎没有显示图像中的所有包。我有一个包位于列出的包之一的 RDEPENDS 中,但它未显示在列表中 (2认同)
  • 正如手册中所述:“pn-buildlist:显示要构建的目标的简单列表。” 如果您在 pn-buildlist 中找到名称,这并不一定意味着该包包含在映像中。一个示例是,如果您有 RDEPENDS_${PN}-ptest,它会为包测试套件添加运行时依赖项。 (2认同)

daf*_*ana 5

您可以在生成的.manifest文件中找到该列表。见IMAGE_MANIFEST