Debian に含まれるソフトウェアの数は多くさらに増加し続けていることが原因でパラドックスが生じます。すなわち Debian には通常ほとんどの作業に適したツールが用意されているにも関わらず、無数のパッケージからその作業に適したツールを見つけることがとても難しくなります。適切なツールを検索する (発見する) ための良い方法がない点は長い間問題とされていました。幸いなことに、この問題はほぼ解決されています。
最も普通な検索方法の候補は正確なパッケージ名を調べることです。apt show package
で結果が返されたら、パッケージが存在するということです。不幸なことにこの方法では、パッケージ名を知っているか推測する必要があり、それは常に可能とは限りません。
もう少しうまい検索パターンはパッケージ名の中をプレーンテキスト検索することですが、この方法も大きな制約を受けます。通常、パッケージ説明を検索すれば結果が見つかるでしょう。なぜなら、大体のパッケージはパッケージ名だけでなく詳しい説明文を備えているからです。パッケージ説明のキーワード検索はしばしば役に立ちます。apt-cache
と axi-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::video
と use::editing
タグを選ぶと、kino と pitivi 動画編集ソフトウェアを含む、一握りのパッケージがヒットします。分類分けのシステムは時間がたてばたつほど使われる運命にあり、パッケージマネージャはこれに基づく効率的な検索インターフェースを少しずつ提供するでしょう。
要約すると、検索したい内容の複雑さに依存して、最良の検索ツールも変わりうるということです。
パッケージ名とパッケージ説明だけを検索し、数個のキーワードにマッチする特定のパッケージを探す場合、apt-cache
がとても便利です。
検索条件にパッケージ間の関連性やたとえばメンテナの名前などのメタ情報を含めたい場合には、synaptic
が便利でしょう。
タグベースの検索が必要な場合、packagesearch
は良いツールです。これは複数の条件 (パッケージに含まれるファイルの名前も含みます) に基づいて利用できるパッケージを検索する専用のグラフィカルインターフェースです。コマンドラインで使う場合は、axi-cache
がぴったりでしょう。
最後に、論理演算を組み合わせた複雑な表現で検索したい場合、aptitude
の検索パターン構文を使うことになるでしょう。これはいささか分かりにくいですが非常に強力です。さらに、これはコマンドラインと対話型モードの両方で使えます。