To improve the quality of the dependency solutions that you receive, you can provide hints to the interactive dependency resolver. These hints can alter the priorities of the resolver, biasing it more strongly in favor of one version or package, or they can be used to 「pre-load」 the resolver with rejections and approvals, as if you had entered the resolver and manually rejected or approved various versions.
Hints are stored in the apt
configuration file,
/etc/apt/apt.conf
, in the configuration group
「Aptitude::ProblemResolver::Hints
」
(see 「Configuration file reference」 for details on the configuration file).
Each resolver hint consists of an action
, a
target
, and an optional
version
. A hint is written like this:
"
. To
apply a resolver hint, aptitude locates one or more packages using the
value of action
target
[version
]"target
, chooses one or more versions of
those packages using the value of version
, and
finally performs the given action
.
The action
field of a resolver hint may be one of
the following:
「approve
」: Approve the version, as if the
command a) had
been invoked on it.
→ (
「reject
」: Reject the version, as if the
command r) had been
invoked on it.
→ (
「discard
」: Discard every solution containing
the version. Differs from 「reject
」 in that
it is not visible to the user and cannot be modified interactively.
「increase-safety-cost-to
」: increase the safety
cost of any solution that contains the version to
number
number
; if its safety cost is already higher than
number
, this hint has no effect. The safety cost
can be used (and is used by default) to control the order in which solutions
appear; see 「Costs and cost components」
and 「Safety costs」 for details.
Several special cost levels can be chosen by name:
conflict
, discard
: instead of changing
the safety cost, discard solutions containing the version as if the
「discard
」
hint had been applied.
maximum
: the highest safety cost.
minimum
: the lowest safety cost. All searches start at
this cost, so 「increasing」 a version to this cost has no
effect. However, this value can also be used when adjusting the predefined
cost levels: for instance, setting Aptitude::ProblemResolver::Remove-Level
to 「minimum
」 will cause removed packages to
have no effect on the safety cost of a solution.
注記 | |
---|---|
The |
「number
」: add the given
number
to the version's
score
, biasing the resolver in favor of it or
(with a negative number) away from it. For instance, the hint 200
emacs
adds 200 to the score of emacs
, whereas
the hint -10 emacs
subtracts 10 from its score.
If target
field of a resolver hint contains a
question mark (「?
」) or tilde
(「~
」), it is considered to be a search
pattern and all matching package versions are considered. Otherwise, it is
considered to be the name of a package to select. So the target
「g++
」 will select only the
g++
package, but the target
「?section(non-free)
」 will select any package
in the non-free
section. See 「Search patterns」 for more information on search patterns.
If the version
field is not present, then all
versions of the package are affected by the hint. Otherwise, it may have
any of the following forms:
「/
」: the
hint only affects versions that are available in the given
archive
archive
.
「<
」:
the hint only affects versions whose version number is less than
version
version
.
「<=
」:
the hint only affects versions whose version number is less than or equal to
version
version
.
「=
」: the
hint only affects versions whose version number is
version
version
.
「<>
」:
the hint only affects versions whose version number is not
version
version
.
「>=
」:
the hint only affects versions whose version number is greater than or equal
to version
version
.
「>
」:
the hint only affects versions whose version number is greater than
version
version
.
「:UNINST
」: instead of affecting any of the
versions of target
, the hint affects the decision
to remove target
. For instance,
「Aptitude::ProblemResolver::Hints { "reject aptitude
:UNINST"; };
」 will prevent the resolver from attempting to
remove aptitude.
「version
」: the hint only affects
versions whose version number is version
.