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.2+b2
状態: インストールされていません
優先度: 特別
セクション: video
メンテナ: Paul Brossier <piem@debian.org>
アーキテクチャ: amd64
展開サイズ: 8,300 k
依存: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0
(>= 0.5.3), libavcodec57 (>= 7:3.2.4) | libavcodec-extra57 (>=
7:3.2.4), libavformat57 (>= 7:3.2.4), libavutil55 (>= 7:3.2.4),
libc6 (>= 2.14), libcairo2 (>= 1.2.4), libdv4 (>= 1.0.0),
libfontconfig1 (>= 2.11), libfreetype6 (>= 2.2.1), libgcc1 (>=
1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0 (>=
1:2.6.4-2~), libglib2.0-0 (>= 2.16.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 (>= 5.2), libswscale4 (>= 7:3.2.4),
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::graphical, 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
の検索パターン構文を使うことになるでしょう。これはいささか分かりにくいですが非常に強力です。さらに、aptitude
はコマンドラインと対話型モードの両方で使えます。