2017/04/08

FreeBSDのpkgの依存関係を調べる方法

FreeBSDにおいてpkgを利用してインストールしているアプリケーションの依存関係を調べる必要性に迫られました。あるアプリケーションが依存しているパッケージを探すのは、比較的容易なのです。しかし逆に、あるパッケージに依存しているアプリケーションを探すのにはどうしたら良いのか、ちょっと迷ってしまいました。

googleで調べれば、必要なコマンドには辿りつけました。それほど難問というわけではありませんでしたが、検索エンジンを利用して問題を解決しようとすると、最新の情報や最適な情報が、必ずしも上位に表示される訳ではないことには注意がいると感じます。

pkgの依存関係を探すのは「pkg query」が使えるようです。例えばllvm37パッケージの依存関係を調べてみると以下のようになりました。
% pkg query %do llvm37
lang/python27
lang/perl5.20
devel/libedit
逆に、依存関係の中にllvm37パッケージが含まれているアプリケーションを探すには、次のようなコマンドを打てばよいようです。
% pkg query %ro llvm37
graphics/dri
graphics/libEGL
このようにパッケージの非依存関係がわかれば、特定のパッケージを必要としていたアプリケーションが判明します。この例ではllvm37を必要としているのはdrilibEGLだと分かります。これらのパッケージは何故llvm37を必要とするのか、言い換えれば、標準で入っている以下のコンパイラでは何故駄目なのかということを探る糸口を与えてくれると思います。
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
Target: i386-unknown-freebsd10.3
Thread model: posix

0 件のコメント:

コメントを投稿