はじめに
YoctoProjectではbitbake以外にもツールを提供している。
その1つにoe-pkgdata-util
が存在する。
パッケージ情報が見れそうなことは伺えるがいまいち使い方がわからない。 今回は逆引き形式で使い方を紹介してみる。
前提
oe-pkgdata-utilはbitbakeにより生成されたパッケージ情報を参照するため、 調べたいパッケージの情報はすでにビルドされている必要がある。
core-image-minimalなどすでにビルド済みである場合は、その時点で作成されているパッケージ情報について調べることができる。
使い方
ビルドしていないパッケージ情報を調べる
まず、調べたいパッケージに関連しそうなレシピがあるかbitbake-layers
コマンドを使用して確認する。
その後一度ビルドして、oe-pkgdata-util
を実行する。
vimパッケージを調べたい場合
$ bitbake-layers show-recipes vim ... (snip) ... === Matching recipes: === vim: meta 9.0.1894
vimのレシピが存在するためビルドする。
$ bitbake vim
パッケージ情報を表示する。
$ oe-pkgdata-util package-info vim vim 9.0.1894-r0 vim 9.0.1894-r0 4123188
レシピから作成されるパッケージ一覧を取得
list-pkgs
サブコマンドを使用する。-p
オプションを渡すことでレシピ名を指定することができる。
レシピ名を渡すそのレシピから作成されるすべてのパッケージの一覧が表示される。
$ oe-pkgdata-util list-pkgs -p vim vim vim-common vim-dbg vim-dev vim-doc vim-help vim-src vim-syntax vim-tools vim-tutor vim-vimrc
パッケージが提供するファイル一覧を取得
list-pkg-files
を使用する。
$ oe-pkgdata-util list-pkg-files vim-vimrc vim-vimrc: /usr/share/vim/vimrc
パッケージ名から元になるレシピ名を取得
lookup-reciep
サブコマンドを使用する。
$ oe-pkgdata-util lookup-recipe vim-vimrc vim
bitbake-layers show-recipes
と組み合わせて、そこからさらにレシピのファイルを探したりもできる。
$ bitbake-layers show-recipes -f vim ... (snip) ... === Matching recipes: === /home/mickey/seagate/yocto/qemuarm64/poky/meta/recipes-support/vim/vim_9.0.bb
ターゲット上のパスからパッケージ名を取得
find-path
サブコマンドを使用する。
$ oe-pkgdata-util find-path /usr/bin/ex vim: /usr/bin/ex
ターゲット上には動的に生成されるなどしてパッケージに属しないファイルも存在する。その場合は下記のようにエラーになる。
$ oe-pkgdata-util find-path /var/log/messages ERROR: Unable to find any package producing path /var/log/messages
パッケージの依存関係を取得
read-value
サブコマンドを使用する。
$ oe-pkgdata-util read-value RDEPENDS vim desktop-file-utils ncurses-terminfo-base update-alternatives-opkg cairo (>= 1.16.0) gdk-pixbuf (>= 2.42.10) glib-2.0 (>= 2.72.3) glibc (>= 2.35) gtk+3 (>= 3.24.34) libacl (>= 2.3.1) libice (>= 1.0.10) libsm (>= 1.2.3) libx11 (>= 1.7.3.1) libxt (>= 1.2.1) ncurses-libtinfo (>= 6.3+20220423) pango (>= 1.50.4)
レシピにもよるが、RDEPENDS以外にも下記のような変数の値を取得することができる。
- FILES
- RRECOMMENDS
- RSUGGESTS
- ALTERNATIVE
まとめ
oe-pkgdata-utilの使い方をまとめた。先にbitbakeを実行してビルドしておく必要はあるものの、 使い方を覚える意外と便利であることがわかった。