SYONテクニカル

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」についての依存関係を表示してみます。

pkg_tree portupgradeの出力

ツリー構造で見やすく表示されます。
これで依存関係もすぐにわかります。

 

「-v」オプションを使うと再帰的に表示してくれます。

pkg_tree -v portupgradeの出力

このような感じで「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  インストールされているパッケージを表示する

pkg_glob -a の出力

インストールされているパッケージを全部表示してみました。

 

では先ほどと同じ「portupgrade」の依存関係を確認してみましょう。

pkg_glob -R portupgrade の出力

以上のようにパッケージの依存関係は簡単に確認することができます。

個人的には「pkg_tree」の方が見やすいような気がします。みなさんはどうですか?

6. 最後に

Portsにはいろんなツールがあります。人それぞれ好みもあるかと思いますが、使ったことのないツールをいろいろ試してみるのも楽しいと思います。「pkg_tree」と「pkg_glob」もぜひ試してみてください。

Copyright 1999-2008 SYON Communications, Co. All rights reserved