Product SiteDocumentation Site

6.9. パッケージの検索

Debian には数多くのソフトウェアが含まれ、その数はさらに増加し続けています。このことが原因でパラドックスが生じます。すなわち Debian には通常多くの作業に適したツールが用意されているにも関わらず、無数のパッケージからその作業に適したツールを見つけることがとても難しくなります。適切なツールを検索する (発見する) ための良い方法がない点は長い間問題とされていました。幸いなことに、現在ではこの問題はほぼ解決されています。
最も平凡な検索方法は正確なパッケージ名を調べることです。apt show package で結果が返されたら、パッケージが存在するということです。不幸なことにこの方法では、パッケージ名を知っているか推測する必要があり、それは常に可能とは限りません。
もう少しうまい検索パターンはパッケージ名の中をプレーンテキスト検索することですが、この方法も大きな制約を受けます。通常、パッケージ説明を検索すれば何らかの結果が得られるでしょう。すなわち、大体のパッケージはパッケージ名だけでなく詳細さに違いはあるものの詳しい説明文を備えているため、パッケージ説明文のキーワード検索はしばしば役に立ちます。apt-cacheaxi-cache はパッケージ説明のキーワード検索を行う際に選ぶツールです。従って、たとえば apt-cache search video は「video」というキーワードがパッケージ説明に含まれるすべてのパッケージのリストを返します。
より複雑な検索を行うには、aptitude などのより強力なツールが必要です。aptitude を使うことで、パッケージのメタ情報フィールドを指定した論理演算表現を使って検索できます。たとえば、以下のコマンドはパッケージ名に kino が含まれ、パッケージの説明文にビデオが含まれ、メンテナの名前に paul が含まれるパッケージを検索します。
$ aptitude search kino~dビデオ~mpaul
p   kino  - デジタルビデオデータ用ノンリニア編集ツール
$ aptitude show kino
パッケージ: kino                         
状態: インストールされていません
バージョン: 1.3.4-2.1+b1
優先度: 特別
セクション: video
メンテナ: Paul Brossier <piem@debian.org>
アーキテクチャ: amd64
展開サイズ: 8,472 k
依存: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0 (>=
        0.5.3), libavcodec56 (>= 6:11~beta1) | libavcodec-extra-56 (>=
        6:11~beta1), libavformat56 (>= 6:11~beta1), libavutil54 (>=
        6:11~beta1), libc6 (>= 2.14), libcairo2 (>= 1.2.4), libdv4,
        libfontconfig1 (>= 2.11), libfreetype6 (>= 2.2.1), libgcc1 (>=
        1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0 (>= 1:2.6.4-2~),
        libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.24.0), libice6 (>=
        1:1.0.0), libiec61883-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0),
        libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0),
        libquicktime2 (>= 2:1.2.2), libraw1394-11, libsamplerate0 (>= 0.1.7),
        libsm6, libstdc++6 (>= 4.9), libswscale3 (>= 6:11~beta1), libx11-6,
        libxext6, libxml2 (>= 2.7.4), libxv1, zlib1g (>= 1:1.1.4)
推奨: ffmpeg, curl
提案: udev | hotplug, vorbis-tools, sox, mjpegtools, lame, ffmpeg2theora
競合: kino-dvtitler, kino-timfx, kinoplus
置換: kino-dvtitler, kino-timfx, kinoplus
提供: kino-dvtitler, kino-timfx, kinoplus
説明: デジタルビデオデータ用ノンリニア編集ツール
 Kino で、DV カメラで録画された動画を記録、作成、編集、再生できるようになり
 ます。このプログラムには多くのキーボードコマンドがあり、動画内を高速に移動
 し編集できます。 
 
 プラグイン集 kino-timfx, kino-dvtitler, kinoplus は、以前は個別のパッケージ
 として配布していましたが、現在は Kino に同梱しています。
ホームページ: http://www.kinodv.org/

タグ: field::arts, hardware::camera, implemented-in::c, implemented-in::c++,
      interface::x11, role::program, scope::application, suite::gnome,
      uitoolkit::gtk, use::editing, use::learning, works-with::video,
      x11::application
この検索は、3 つの基準すべてを満足するパッケージ、kino、を 1 つだけ返します。
このように複数条件を指定する検索はちょっと扱いにくいことが理由であまり使われません。そんなわけで、新しいタグ付けシステムが開発され、このシステムによって新しい検索方法が提供されました。パッケージには、「ファセット分類」として知られているさまざまな側面に従ってテーマ別に分類された、タグが付けられています。上に挙げた kino の場合、パッケージのタグによれば、Kino は Gnome ベースのソフトウェアで、動画データの処理に有用であり、主用途は編集であることがわかります。
ファセット分類されたタグは既知の必要性に関連するパッケージを検索するのに便利です。さらにたとえ大量の (少しの) パッケージがヒットした場合でも、残りの検索は手作業でできます。タグに基づく検索を行うには aptitude~G 検索パターンを使いますが、タグを管理しているサイトを見て回るほうがおそらく簡単です。
works-with::videouse::editing タグを選ぶと、kinopitivi 動画編集ソフトウェアを含む、一握りのパッケージがヒットします。タグ付けシステムは時間がたてばたつほど必ず使われるようになるでしょう。そしてパッケージマネージャはタグに基づく効率的な検索インターフェースを少しずつ提供するでしょう。
要約すると、検索したい内容の複雑さに依存して、最良の検索ツールも変わりうるということです。