aptitude でパッケージの検索や表示制限の設定を行うとき、入力された文字列は「検索パターン」として取り扱われます。検索パターンの最も基本的な使用方法は名前を用いたパッケージのマッチですが、aptitude では、それより遥かに複雑な検索を行うことが可能です。ビジュアルインタフェースだけでなく、コマンドラインからの操作の一部でも検索条件を使用できます。詳しくはコマンドラインリファレンスを参照してください。
検索パターンは 1 つ以上の「条件」から成ります。パッケージは、パターンの条件すべてにマッチした場合にパターンにマッチしたことになります。条件は通常、チルダ文字 (「~」) で始め、その次に条件の種類を識別する文字を置き、さらに条件によって追加のテキストを必要とする条件の場合はそのテキストを置きます。
デフォルトでは、パターンはパッケージの全てのバージョンを対象としてチェックされます。しかし、パターンによってはテスト対象のバージョンを制限するものもあります。例えば、~D
パターンは別のパターンを引数にとり、そのパターンにマッチする別のパッケージに依存するあらゆるパッケージにマッチします。この場合、その依存関係を満たすバージョンのパッケージだけがテスト対象となります。マッチのテストに使用されるバージョンは、部分条件をもったマッチ条件
(~D
など)
でのみ変更されます。
テキスト検索 (パッケージの名前や説明などの検索) の多くは、大文字と小文字を区別しない正規表現を用いて実行されます。つまり、正規表現メタ文字[11]は検索時にバックスラッシュでエスケープしなければなりません (例えば、「g++」を見つけるにはパターン「g\+\+」を使用してください)。
通常、「空白類文字」 (空白文字・タブなど)
は条件を区切り、その他の点では aptitude
から無視されます。空白類文字
(またはその他の特殊文字)
を条件に含めるには、チルダを前に置く (例:
Debian~ Project
) か、引用符で囲む (例:
"Debian Project"
、またはDebian"
"Project
でもかまいません。)
かのいずれか一方を行ってください。引用符で囲まれた文字列の内部では、バックスラッシュ文字
(「\」)
を用いて引用符の特別な意味を取り消すことが可能です。例えば
~d"\"email"
は、パッケージ説明に引用符が含まれており、その直後に
email
も含まれているあらゆるパッケージにマッチします。[12]
以下の種類の条件が利用可能です。
名前
正規表現名前
に名前がマッチするパッケージにマッチします。これは「デフォルト」の検索モードで、~
で始まらないパターンに使用されます。
![]() | 注意 |
---|---|
複数の異なる部分文字列を名前に含むパッケージにマッチさせるには、例えば「 |
!条件
条件条件
にマッチしないパッケージにマッチします。例えば、「!~b
」を用いると「破損」していないパッケージを選択できます。
![]() | 注意 |
---|---|
正規表現内に「!」の文字を含める場合、この文字を「 |
条件 1
| 条件
2
条件 1
と条件
2
のどちらか一方にマッチするパッケージにマッチします。
![]() | 注意 |
---|---|
正規表現内で「|」の文字を使用する場合、この文字を「 |
(条件
)
条件
にマッチします。この記法は、複雑な表現をグループ化して明示的に選択するのに有用です。例えば「~D(perl|python)
」は、perl
と python
のいずれか一方を名前に含むパッケージに依存する、あらゆるパッケージにマッチします。
~Aアーカイブ
正規表現アーカイブ
にマッチするアーカイブから入手可能なパッケージバージョンにマッチします。例えば「~Atesting
」は、testing
アーカイブから入手可能なあらゆるパッケージにマッチします。
~aアクション
指定されたアクション
を実行予定のパッケージにマッチします。アクション
には、「install
」
(インストール)、「upgrade
」
(更新)、「downgrade
」
(ダウングレード)、「remove
」
(削除)、「purge
」
(完全削除)、「hold
」
(固定。パッケージが既に固定されているかをテストします)、「keep
」
(一時固定。パッケージが変化しないかをテストします)
を指定可能です。
この条件は、アクションがパッケージに対して実行されるのを実際に待っているかをテストするだけで、アクションが実行可能かをテストするのではないことに注意してください。したがって、例えば
~aupgrade
は、更新すると既に決めたパッケージにちょうどマッチし、将来更新可能なパッケージにはマッチしません
(そのような用途には~U
を使用してください)。
~B種類
Matches packages which have an unfulfilled (「broken」)
dependency of the given type
.
type
can be
「depends
」,
「predepends
」,
「recommends
」,
「suggests
」,
「breaks
」,
「conflicts
」, or
「replaces
」.
~b
Matches packages that are 「broken」: they have an unfulfilled dependency, predependency, breaks, or conflict.
~C条件
与えられた条件
にマッチするパッケージと衝突するパッケージにマッチします。例えば
「~C~mdburrows@debian.org
」は、私が管理しているパッケージと衝突するあらゆるパッケージにマッチします。
~c
パッケージ自体は削除済みだが設定ファイルがシステム上に残っているパッケージにマッチします (つまりこれらのパッケージは、削除はされましたが完全削除はされていません)。
~D[B][種類
:]条件
種類
には、「provides
」
(提供) と ~B
の説明で挙げられている依存関係の種類の 1
つのうち、どちらか一方を指定してください。種類
を指定しない場合、デフォルトで
depends
(依存)
が指定されます。B
を指定すると、破損している依存関係のみが対象となります。
種類
が「provides
」の場合、条件
にマッチするパッケージを提供するパッケージにマッチします
(~P
と等価です)。それ以外の場合は、条件
にマッチするバージョンのパッケージに対して種類
という種類の依存関係を宣言しているパッケージにマッチします。
~d説明
正規表現説明
にパッケージ説明がマッチするパッケージにマッチします。
~E
必須パッケージにマッチします。
~F
この条件はどのパッケージにもマッチしません (「F」は「false」の意味です)。[13]
~g
インストールされていないか、または自動的にインストールされたが現在はどのインストール済みのパッケージにも依存されていないパッケージにマッチします。
~Gタグ
正規表現タグ
にタグフィールドがマッチするパッケージにマッチします。例えば、パターン
~Ggame::strategy
は戦略 (strategy)
ゲームにマッチします。
タグや debtags についてさらに詳しく知りたい場合は、http://debtags.alioth.debian.org を参照してください。
~i
現在インストールされているパッケージバージョンにマッチします。
デフォルトでは全てのバージョンがテストされるため、これは通常、現在インストールされているパッケージにマッチします。
~M
自動的にインストールされたパッケージにマッチします。
~mメンテナ
正規表現メンテナ
にメンテナ
(Maintainer)
フィールドがマッチするパッケージにマッチします。例えば、「~mjoeyh
」を用いると
Joey Hess
さんが管理しているパッケージを全て見つけることが可能です。
~N
「新規」パッケージにマッチします。
~n名前
正規表現名前
に名前がマッチするパッケージにマッチします。例えば、「~n^lib
」にマッチするパッケージの多くは何らかのライブラリです。
~O提供元
正規表現提供元
がパッケージ提供元にマッチするパッケージバージョンにマッチします。例えば、「!~Odebian
」を用いるとシステム上のあらゆる非公式パッケージ
(Debian アーカイブ由来でないパッケージ)
を見つけることが可能です。
~o
This term matches any installed package which is not available in any version from any archive. These packages appear as 「Obsolete or Locally Installed」 in the visual interface.
~P条件
条件
にマッチするパッケージを提供するパッケージバージョンにマッチします。例えば「~Pmail-transport-agent
」は、「mail-transport-agent
」を提供するパッケージ全てにマッチします。
~p優先度
優先度が優先度
のパッケージにマッチします。優先度
は、extra
(特別)、important
(重要)、optional
(任意)、required
(必須)、standard
(標準)
のいずれかでなければなりません。例えば「~prequired
」は、優先度が「required
」
(必須) のパッケージにマッチします。
~R[B][種類
:]条件
種類
には、「provides
」
(提供) と ~B
の説明で挙げられている依存関係の種類の 1
つのうち、どちらか一方を指定してください。種類
を指定しない場合、デフォルトで
depends
(依存)
が指定されます。B
を指定すると、破損している依存関係のみが対象となります。
種類
が「provides
」の場合、条件
にマッチするバージョンのパッケージが名前を提供しているパッケージにマッチします。それ以外の場合は、条件
にマッチするバージョンのパッケージが種類
という種類の依存関係を宣言しているパッケージにマッチします。
~S フィルタ
条件
この条件は、フィルタ
にマッチするパッケージバージョンに検索を「狭めます」。特にこの条件は、フィルタ
と条件
の両方にマッチするあらゆるパッケージバージョンにマッチします。マッチの文字列の値は条件
の文字列の値です。
~sセクション
正規表現セクション
にセクションがマッチするパッケージにマッチします。
~T
この条件はあらゆるパッケージにマッチします。例えば
「~i~P~T
」は、あらゆるパッケージによって提供された、インストール済みのパッケージにマッチします。
~tタスク
正規表現タスク
にマッチする名前のタスクに現れるパッケージにマッチします。
~U
この表現は、あらゆる更新可能なインストール済みパッケージにマッチします。
~Vバージョン
後述する特別表記を除き、正規表現バージョン
にバージョン番号がマッチするバージョンのパッケージにマッチします。例えば「~Vdebian
」は、バージョンに「debian
」を含むパッケージにマッチします。
バージョン
が以下の値の場合は特別扱いを受けます。これらの値を含むバージョン番号を検索するには、値の前にバックスラッシュを置いてください。例えば、バージョン番号に
CURRENT
を含むパッケージを見つけるには、\CURRENT
を用いて検索してください。
CURRENT
は、現在インストールされているパッケージのバージョンがあればそれにマッチします。
CANDIDATE
は、パッケージの上で
+ を押したりそれに対して aptitude
install
を実行したりした場合にインストールされるパッケージのバージョンがあれば、それにマッチします。
TARGET
は、現在インストール対象になっているパッケージのバージョンがあればそれにマッチします。
~v
完全に仮想的なあらゆるパッケージにマッチします。完全に仮想的なパッケージとは、何らかのパッケージによって名前が提供されているか何らかの依存関係に名前が出てくるにも関わらず、そのような名前をもつパッケージが実在しないものです。例えば「~v!~P~T
」は、どのパッケージからも提供されていない仮想パッケージ、つまり依存されているが実在しないパッケージにマッチします。
~W条件
マッチを「拡大」します。つまり、マッチ対象のバージョンの範囲が囲い込みマッチ条件
(~D
など)
によって制限されている場合、その制限を外します。したがって、条件
があるパッケージのどのバージョンにマッチしても、~W
はそのパッケージの特定のバージョンにマッチします。
条件