When you search for a package or set a display limit in aptitude, the string you enter is known as a “search pattern”. While the most basic usage of search patterns is to match packages by name, aptitude allows you to create much more complex searches.
A search pattern consists of one or more conditions (sometimes known as “terms”); packages match the pattern if they match all of its terms. Terms generally start with a tilde character (“~”), followed by a character identifying the type of term, and then any additional text required by the term.
Most textual searches (for package names, descriptions, etc) are performed using case-insensitive regular expressions. This means that you must backslash-escape regular expression metacharacters [10] in searches (for instance, to find “g++”, you should use the pattern “g\+\+”).
The following types of terms are available:
name
Matches packages whose names match the regular
expression name
. This is the
“default” search mode and is used for patterns that
don't start with ~
.
![]() | Note |
---|---|
To match packages whose names contain several
different substrings, use the |
!term
Matches packages which do not match
the term term
. For instance,
“!~b
” selects packages that are not
“broken”.
![]() | Note |
---|---|
To include a “!” in a regular expression, it must be
“escaped” to prevent aptitude from considering it
part of a NOT term: “ |
term1
| term2
Matches packages that match either
term1
or
term2
.
![]() | Note |
---|---|
To use the character “|” in a regular expression, it
must be “escaped” to prevent aptitude from creating
an OR term from it: “ |
(term
)
Matches term
; this is useful
to explicitly select the grouping of complex
expressions. For instance,
“~D(perl|python)
” matches any package
that depends on a package whose name contains either
perl
or python
.
~Aarchive
Matches packages which are available from an archive
that matches the regular expression
archive
. For instance,
“~Atesting
” matches any
package available from the testing
archive.
~aaction
Matches packages on which the given
action
is going to be
performed. action
can be
“install
”,
“upgrade
”,
“remove
”,
“purge
”,
“hold
” (tests whether a
package has been placed on hold), or
“keep
” (tests whether a
package will be unchanged).
~Btype
Matches packages which have an unfulfilled (“broken”)
dependency of the given type
.
type
can be
“depends
”,
“predepends
”,
“recommends
”,
“suggests
”,
“conflicts
”, or
“replaces
”.
~b
Matches packages that are “broken”: they have an unfulfilled dependency, predependency, or conflict.
~Cterm
Matches packages which conflict with a package matching
the given term
. For
instance, “~C~mdburrows@debian.org
”
matches any package which conflicts with a package I
maintain.
~c
Matches packages which have been removed, but whose configuration files remain on the system (ie, they were removed but not purged).
~D[type
:]term
type
may be either
“provides
” or one of the
dependency types given in the documentation of
~B. If type
is not
present, it defaults to depends
.
If type
is
“provides
”, matches
packages that provide a package matching
term
(the equivalent of
~P
). Otherwise, matches packages
which declare a dependency of type
type
upon a package which matches
term
.
~ddescription
Matches packages whose description matches the regular
expression description
.
~E
Matches Essential packages.
~F
This term does not match any package (“F” stands for “false”). [11]
~g
Matches packages which are not installed, or which were automatically installed and are not depended upon by any installed package.
~i
Matches packages which are currently installed.
~M
Matches packages which were automatically installed.
~mmaintainer
Matches packages whose Maintainer field matches the
regular expression
maintainer
. For instance,
“~mjoeyh
” will find all packages
maintained by Joey Hess.
~N
Matches packages which are “new”.
~nname
Matches packages whose name matches the regular
expression name
. For
instance, most of the packages that match
“~n^lib
” are libraries of one sort or
another.
~Oorigin
Matches packages whose origin matches the regular
expression origin
. For
instance, “!~Odebian
” will find any
unofficial packages on your system (packages not from
the Debian archive).
~Pterm
Matches packages which provide a package that matches
the name
. For instance,
“~Pmail-transport-agent
”
will match all the packages that provide
“mail-transport-agent
”.
~ppriority
Matches packages whose priority is
priority
;
priority
must be
extra
, important
,
optional
,
required
, or
standard
. For instance,
“~prequired
” matches
packages whose priority is
“required
”.
~R[type
:]term
type
may be either
“provides
” or one of the
dependency types given in the documentation of
~B. If type
is not
present, it defaults to depends
.
If type
is
“provides
”, matches
packages whose name is provided by a package matching
term
. Otherwise, matches
packages which a package matching
term
declares a dependency of
type type
upon.
~ssection
Matches packages whose section matches the regular
expression section
.
~T
This term matches any package. For instance,
“~i~P~T
” matches installed packages
which are provided by any package.
~U
This term matches any installed package which can be upgraded.
~Vversion
Matches any package whose version matches the regular
expression version
. For
instance, “~Vdebian
” matches packages
whose version contains “debian
”.
![]() | Note |
---|---|
If several versions of the package are available, which version is considered depends on context; however, it is usually either the current version or the candidate version. |
~v
Matches any package which is purely virtual: that is,
its name is provided by a package or mentioned in a
dependency, but no package of that name exists. For
instance, “~v!~P~T
” matches packages
which are virtual and are not provided by any package:
ie, packages which are depended upon but do not exist.
[10]
Regular expression metacharacters include:
“+”, “-”, “.”,
“(”, “)”, “|”,
“[”, “]”, “^”,
“$”, and “?”. Note that some of
these are also aptitude metacharacters, so if you want
to type (for instance) a literal “|”, it must
be double-escaped: “\~|
”.
[11]
This is provided largely for symmetry with
~T
.