Pour améliorer la qualité des solutions aux problèmes de dépendances que vous recevez, vous pouvez fournir des indicateurs au solveur interactif. Ces indicateurs peuvent modifier les priorités du solveur, en biaisant plus fortement en faveur d'une version ou d'un paquet. Ils peuvent aussi être utilisés pour fournir à l'avance des rejets et des approbations, comme si vous étiez entré dans le solveur et aviez rejeté ou accepté manuellement différentes versions.
Les indicateurs sont stockés dans le fichier de configuration d'apt
,
/etc/apt/apt.conf
, dans le groupe de configuration
« Aptitude::ProblemResolver::Hints
»
(consultez la section intitulée « Référence du fichier de configuration » pour les détails sur le fichier
de configuration).
Chaque indicateur du solveur consiste en une
action
, une cible
et
une version
optionnelle. Un indicateur est écrit
comme ceci : "
. Pour
appliquer un indicateur du solveur, aptitude localise un ou plusieurs
paquets utilisant la valeur de la action
cible
[version
]"cible
, choisit
une ou plusieurs versions de ces paquets en utilisant la valeur de
version
, puis effectue
l'action
indiquée.
Le champ action
de l'indicateur du solveur peut
prendre les valeurs suivantes :
« approve
» : approuver la version, comme si
la commande a)
avait été utilisée sur elle.
→ (
« reject
» : rejeter la version, comme si la
commande r) avait
été utilisée sur elle.
→ (
« discard
» : ignorer toutes les solutions
contenant cette version. Cette action diffère de
« reject
» par le fait qu'elle n'est pas
visible par l'utilisateur et ne peut pas être modifiée de manière
interactive.
« increase-safety-cost-to
» : augmenter le coût de
sécurité de toutes les solutions contenant la version à la valeur
nombre
nombre
. Si le coût de sécurité est déjà supérieur
à nombre
, cet indicateur n'a aucun effet. Le coût
de sécurité peut être utilisé (et est utilisé par défaut) pour contrôler
l'ordre d'apparition des solutions. Consultez la section intitulée « Coûts et composantes de coût » et la section intitulée « Coût de sécurité » pour les détails.
Plusieurs niveaux de coûts particuliers peuvent être désignés par leur nom :
conflict
, discard
: au lieu de changer
le coût de sécurité, ignorer les solutions contenant les versions comme si
l'indicateur « discard
» avait été
utilisé.
maximum
: le coût de sécurité le plus élevé.
minimum
: le coût de sécurité le plus bas. Toutes les
recherches commencent avec ce coût, donc « augmenter » une
version à cette valeur n'a aucun effet. Cependant, cette valeur peut aussi
être utilisée lors de l'ajustement des niveaux de coût prédéfinis : par
exemple, régler Aptitude::ProblemResolver::Remove-Level
à la valeur « minimum
» impliquera que la
suppression de paquets n'aura aucun effet sur le coût de sécurité d'une
solution.
Note | |
---|---|
L'indicateur |
« nombre
» : ajouter le
nombre
donné au score
de la version, ce qui biaise le solveur en sa faveur ou (si le nombre est
négatif) en sa défaveur. Par exemple, un indicateur 200
emacs
ajoute 200 au score d'emacs
, alors que
l'indicateur -10 emacs
soustrait 10 de son score.
Si le champ cible
de l'indicateur du solveur
contient un point d'interrogation (« ?
») ou
un tilde (« ~
»), il est interprété comme
étant un motif de recherche et toutes les versions de paquets correspondant
à ce motif sont prises en compte. Sinon, il est interprété comme le nom d'un
paquet à sélectionner. Donc la cible « g++
»
sélectionnera uniquement le paquet g++
, mais la cible
« ?section(non-free)
» sélectionnera tous les
paquets de la section non-free
. Consultez la section intitulée « Motifs de recherche » pour plus d'informations sur les motifs de
recherche.
Si le champ version
est absent, toutes les
versions du paquet sont concernées par l'indicateur. S'il est présent, il
peut avoir l'une des formes suivantes :
« /
» :
l'indicateur n'affecte que les versions disponibles dans
l'archive
archive
donnée.
« <
» :
l'indicateur n'affecte que les versions dont le numéro est strictement
inférieur à version
version
.
« <=
» :
l'indicateur n'affecte que les versions dont le numéro est inférieur ou égal
à version
version
.
« =
» :
l'indicateur n'affecte que les versions dont le numéro est égal à
version
version
.
« <>
» :
l'indicateur n'affecte que les versions dont le numéro est différent de
version
version
.
« >=
» :
l'indicateur n'affecte que les versions dont le numéro est supérieur ou égal
à version
version
.
« >
» :
l'indicateur n'affecte que les versions dont le numéro est strictement
supérieur à version
version
.
« :UNINST
» : au lieu d'affecter l'une des
versions de cible
, l'indicateur affecte la
décision de supprimer cible
. Par exemple
« Aptitude::ProblemResolver::Hints { "reject aptitude
:UNINST"; };
» empêchera toute tentative du solveur de
supprimer aptitude.
« version
» : l'indicateur n'affecte
que les versions dont le numéro de version est
version
.