DebianとUbuntuシステムで入手可能なパッケージ情報

 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」と間違って記載されていたため修正しました。

 コマンドラインは使いにくいし、検索するためだけのためにアクティブリポジトリーを変更したくないという場合は、Debianオンラインパッケージ検索ページまたはUbuntuオンラインパッケージ検索ページがある。Ubuntuの検索ページはDebianの変形版で、どちらも基本的には同じツールだ。

 どちらの検索ページでも、リポジトリーディレクトリーだけでなくパッケージ内容を検索することができる。ディレクトリーの検索では、検索対象をパッケージ名、説明、ソースパッケージのいずれかに指定可能。また、リリース(Ubuntuの場合)またはリポジトリー(Debianの場合)で検索を制限することもできる。パッケージ内容の検索では、ハードウェアアーキテクチャーで検索可能。また、特定のキーワードで終わるパス、そのようなファイル名を含むパッケージ、名前に特定のキーワードを含むファイルを含むパッケージのいずれかに絞ることもできる。こうした絞り込みができるため、パッケージ内容の検索は非常に役に立つことがある。というのは、ディレクトリーの検索でもパッケージ内容の検索でも正規表現がサポートされておらず(一体全体なぜだろう)、Debianの検索ページでは検索条件が緩いと結果の表示が制限されることがあるからだ。

 どちらの検索ページでも検索結果は一覧として表示されるが、Ubuntuの場合は完全一致のものと関連性のありそうなものに分けて表示されるので便利だ。検索結果別に、関連するパッケージのリストがあり、依存パッケージ(実行に必須のパッケージ)、推奨パッケージ(支援するが必須ではないパッケージ)、関連パッケージ(この検索に関連するかもしれないパッケージ)に分類されている。ページの下端には、アーキテクチャー別に実際のパッケージへのリンクがある。もっとも大概は、パッケージを直接ダウンロードしてインストールするより、apt-getかそのGUI版を使った方がよいが。

 DebianとUbuntuの検索ページでは、インターネット接続がときどき切れたり保守のためにサービスが休止されていたりすることがある。また、必要な情報に到達するまでに3回か4回ページを開く必要があるのも欠点だ。最近リリースされたUbuntu Simple Package Crawler(USPC)ではそうした欠点がなく便利だろう。現在のバージョンは0.4。USPCは、Ubuntu Webサーチャーで使われている検索エンジンのKDE版にほぼ相当する。リリースとアーキテクチャーで検索でき、依存性もわかるが「推奨」と「関連」のカテゴリーはない。便利な機能がいとも簡単に捨てられてしまう一例だ。また、なぜか、Ubuntuにデフォルトでインストールされているパッケージを検索結果から除くというオプションがある。おそらく、そうした基本的なソフトウェアは軽々しく更新されるべきではないということなのだろう。Web検索同様に今後多くのオプションを備えることになれば、Ubuntuの新検索ツールとして歓迎されるだろう。Debianにも移植してほしいものだ。

 USPCを除いて、こうしたツールはDebian系とUbuntu系のディストリビューションでも使える。もちろん、どのWeb検索を使うべきかは、お使いのディストリビューションがそのパッケージをどちらのディストリビューションから取得するかによって異なる。いずれも完璧ではないが、適切に組み合わせて利用すれば、既存のデスクトップツールだけに頼るよりも、ソフトウェアのインストールやアップグレードを適切に検討することができ、災難にあうことも少なくなるだろう。

Bruce Byfield コンピューター・ジャーナリスト。Linux.comに多く執筆している。

Linux.com 原文(2008年10月28日)