FreeBSDでパッケージの依存関係を確認したいときは?
サイオンコミュニケーションズ株式会社
新垣 良子
「pkg_tree」というツールを使ってportsで導入したパッケージの依存関係を確認する方法を紹介します。
1.はじめに
FreeBSDのportsはとても便利なツールがたくさんあります。
今回は「pkg_tree」というツールを使って、portsでインストールしたパッケージの依存関係を確認する方法を一緒に試してみましょう。
2.「pkg_tree」とは
インストールされているパッケージの依存関係を視覚的に表示するツールです。
3.マシン環境
| CPU | Pentium III 450MHz |
| Memory | 512MB |
| HDD | 160GB |
| OS | FreeBSD 6.0-RELEASE-p7 |
4.作業手順
4.1 前準備
portsを最新の状態にしましょう。
下記コマンドでportsが最新の状態になります。
# cd /usr/share/examples/cvsup/ # cvsup -g -L 2 -h cvsup.jp.freebsd.org ports-supfile Parsing supfile "ports-supfile" Connecting to cvsup.jp.freebsd.org Connected to cvsup.jp.freebsd.org (省略) Shutting down connection to server Finished successfully
portsを最新にしたところで、本題の作業に入ります。
4.2 「pkg_tree」のインストール
portから「pkg_tree」をインストールします。
# cd /usr/ports/sysutils/pkg_tree # make ; make install ; make clean
あとで出てきますが、「portupgrade」に同梱されている「portinstall」というコマンドを使えばもっと簡単にインストールできます。
# portinstall pkg_tree
4.3 「pkg_tree」の設定
インストールさえできてしまえば設定は特に要りません。
4.4 「pkg_tree」コマンド
pkg_tree [-v] [package-prefix ...] -v パッケージの依存関係を再帰的に表示する
ではさっそくパッケージの依存関係を見てみましょう。
わかりやすいように「portupgrade」についての依存関係を表示してみます。

ツリー構造で見やすく表示されます。
これで依存関係もすぐにわかります。
「-v」オプションを使うと再帰的に表示してくれます。

このような感じで「pkg_tree」をインストールしてしまえばツールの依存関係を簡単に確認することができます。
先ほどから何度か出てきてますが、みなさんは「portupgrade」というツールをご存知ですか?以前のSYONテクニカルで紹介したツールですが、「portupgrade」に同梱されているツール使ってもパッケージの依存関係を確認することができるので合わせて紹介したいと思います。
5.「portupgrade」の紹介
5.1 「portupgrade」について
portupgradeに同梱されるユーティリティ(一部)
portinstall: portsをより楽にインストールするためのツール portversion: アップグレード可能なパッケージを表示する portsclean: portsを使ってインストールしたときに消し忘れたファイル等を削除するためのツール portsdb: portupgradeで使うportsのINDEXファイルを更新する ports_glob: パッケージの依存関係を表示する pkg_deinstall: パッケージを削除するためのツール pkg_glob: パッケージの依存関係を表示する pkgdb: portsデータベースを管理するためのツール
上記のように「portupgrade」にはいろんなツールが同梱されています。
その中の「pkg_glob」コマンドを使って「pkg_tree」のように依存関係を確認してみましょう。
5.2 「pkg_glob」コマンド
pkg_glob [-haOqrR] [-x pkgname_glob] [pkgname_glob ...] -r 指定したパッケージの依存関係を調べて表示する -R 指定したパッケージが必要としているportsを表示する -a インストールされているパッケージを表示する

インストールされているパッケージを全部表示してみました。
では先ほどと同じ「portupgrade」の依存関係を確認してみましょう。

以上のようにパッケージの依存関係は簡単に確認することができます。
個人的には「pkg_tree」の方が見やすいような気がします。みなさんはどうですか?
6. 最後に
Portsにはいろんなツールがあります。人それぞれ好みもあるかと思いますが、使ったことのないツールをいろいろ試してみるのも楽しいと思います。「pkg_tree」と「pkg_glob」もぜひ試してみてください。























