Yocto Project e a ferramenta oe-pkgdata-util
- por Sergio Prado
Uma necessidade comum quando trabalhamos com o Yocto Project é descobrir a relação entre receitas, pacotes e arquivos. Qual receita gerou determinado pacote? Quais são os arquivos instalados por um determinado pacote? De qual pacote é determinado arquivo? A ferramenta oe-pkgdata-util pode responder estas e muitas outras questões.

A ferramenta deve ser executada dentro do ambiente de compilação do Yocto Project e sua interface é bem simples:
$ oe-pkgdata-util -h
usage: oe-pkgdata-util [-h] [-d] [-p PKGDATA_DIR] <subcommand> ...
 
OpenEmbedded pkgdata tool - queries the pkgdata files written out during
do_package
 
options:
  -h, --help            show this help message and exit
  -d, --debug           Enable debug output
  -p PKGDATA_DIR, --pkgdata-dir PKGDATA_DIR
                        Path to pkgdata directory (determined automatically if
                        not specified)
 
subcommands:
  lookup-pkg            Translate between recipe-space package names and
                        runtime package names
  list-pkgs             List packages
  list-pkg-files        List files within a package
  lookup-recipe         Find recipe producing one or more packages
  package-info          Show version, recipe and size information for one or
                        more packages
  find-path             Find package providing a target path
  read-value            Read any pkgdata value for one or more packages
  glob                  Expand package name glob expression
Use oe-pkgdata-util <subcommand> --help to get help on a specific command | 
O parâmetro lookup-recipe permite identificar qual receita gerou determinado pacote:
$ oe-pkgdata-util lookup-recipe libxml2-python libxml2  | 
Já o parâmetro list-pkg-files permite listar todos os arquivos gerados por determinado pacote:
$ oe-pkgdata-util list-pkg-files libxml2-python libxml2-python: /usr/lib/python2.7/site-packages/drv_libxml2.py /usr/lib/python2.7/site-packages/libxml2.py /usr/lib/python2.7/site-packages/libxml2mod.la /usr/lib/python2.7/site-packages/libxml2mod.so  | 
E o parâmetro find-path permite identificar o pacote responsável por um determinado arquivo do sistema:
$ oe-pkgdata-util find-path /usr/sbin/sshd openssh-sshd: /usr/sbin/sshd  | 
O oe-pkgdata-util é realmente uma ferramenta bem interessante para identificar a relação entre receitas, pacotes e arquivos do rootfs no Yocto Project.
Have fun!
Sergio Prado

Sem Comentários
Nenhum comentário até agora... é a sua chance de ser o primeiro a comentar!