Linuxの初心者なら自動アップデートやデスクトップツールで得られるパッケージ情報で満足するかもしれないが、経験を積んでくると注意深くなり要求水準も高くなるものだ。たとえば、アップグレードに着手する前に依存性を調べてリスクを評価したり、古いリポジトリーにあるバージョンを使うことでパッケージ間の競合を避けたりする。Debianは古くから高度な利用者を対象としており、apt-cacheコマンドやディストリビューションのWebサイトなど、その種の情報を入手する手段がいくつかある。Ubuntuでは、最近できたUbuntu Simple Package Crawlerもある。しかし、残念なことに、必要と思われる機能をすべて備えた情報源はない。
2008-11-05 17:47:00 更新(初出時の間違いを修正)
あらかじめ用意されている資源には限りがあるため、さらなる情報収集が必要になることが多い。実際、Debianのdpkgコマンドとdpkg-queryコマンドはシステムにあるパッケージとその関連ファイルについてなら詳細な情報を提供してくれるが、それ以外のパッケージではあまり役に立たない。apt-getも同様だ。--simulateスイッチを付ければパッケージをインストールしたときに発生する問題を予測することができるが、インストールに当たって知りたいと思うような情報がすべて得られるわけではない(--just-print、--dry-run、--recon、--no-actでも同じ)。たとえば、パッケージに関する詳細な説明、競合の可能性、支援パッケージなどについてはわからない。
SynapticやAdeptなどのパッケージ管理ツールもテキストベースのAptitudeも同じようなものだ。いずれも/etc/apt/sources.listファイルにあるリポジトリーをパッケージ名(の部分文字列)で単純検索するだけで、筆者が調べた限りでは、正規表現を使って検索することはできない。つまり、役立つかもしれない関連パッケージを名前がわずかに異なっているだけで見逃してしまう可能性が高いということだ。
編注:初出時にこの段落の最初の文が「SynapticやAdeptなどのパッケージ管理ツールもテキストベースのAptitudeも同じようなものだ。」となっていましたが、「Aptitudeは正規表現による検索に対応している」との指摘を受け、該当部分を削除しました。
一方、apt-cacheコマンドはパッケージ名だけでなく説明も検索でき、検討段階で必要となりそうな情報がより多く得られる。「apt-cache action string 」という構文を持ち、たとえば「apt-cache search pysol*」で「pysol*」(「pyso」に続いて0個以上の「l」が続く文字列)をパッケージ名もしくは説明に含むパッケージをすべて知ることができる。これからわかるように正規表現を使うことができる。また、アクションをdependsとすれば依存性を、rdependsとすれば逆依存性(あるパッケージに依存するパッケージ)を調べることができる。--all-versionsスイッチを付ければ、リポジトリーにあるすべてのバージョンを調べることもできる。
編注:初出時の『たとえば「apt-cache search pysol*」で文字列「pysol*」を含むパッケージをすべて知ることができる。』という部分が不正確であるとの指摘を受け、該当個所を修正しました。また、アクション名の「rdepends」が「redepends」と間違って記載されていたため修正しました。
