質問: How to use libapt (or libept) in debian-like system to list packages and get their infos? のページの回答にパッケージの一覧を表示するサンプルコードがありますが 依存関係の一覧を表示するコードがありません。 Synapticやlibaptのコードを追いかけたりしていますがわかりませんでした。 libapt-pkg-docをみても大した記述がなく当てになりませんでした。 依存関係を表示するためのサンプルがあればお教えください。
回答: apt のソースコード `apt/cmdline/apt-cache.cc` にある DumpPackage 関数がサンプルとしては丁度良いのではないでしょうか。これは `apt-cache showpkg` の実行本体に当たります。 関数の引数である `CmdL` は main 関数の `char *argv[]` と同等の変数(オブジェクト)です。内部で使用されている `CmdL.FileList + 1` は `argv + 1` に当たりますので、DumpPackage 関数を取り出して単一のプログラムにすることができます(初期化コードを追加する必要はありますが)。 ただ、私の方で使用している Ubuntu 15.04 では libapt-private 関連のインクルードファイルなどがインストールされないので、前述の github リポジトリから取得した apt パッケージをビルド、別ディレクトリにインストールして、そちらのライブラリなどを使う様にする必要がありました。