Om de kwaliteit te verbeteren van de oplossingen voor vereistenproblemen die u krijgt, kunt u de interactieve vereistenoplosser aanwijzingen geven. Deze aanwijzingen kunnen de prioriteiten van de oplosser wijzigen en hem sterker doen neigen naar een bepaalde pakketversie, of ze kunnen gebruikt worden om de oplosser “vooraf” afwijzingen en goedkeuringen “mee te geven” alsof u zelf oplosser zou spelen en manueel verschillende versies zou aanvaarden of verwerpen.
Aanwijzingen worden opgeslagen in de configuratiegroep “Aptitude::ProblemResolver::Hints
”
van het configuratiebestand van apt
,
/etc/apt/apt.conf
(zie de paragraaf met de naam “Referentiegids voor het configuratiebestand”
voor details over het configuratiebestand).
Elke aanwijzing voor de oplosser bestaat uit een
actie
, een doel
en
optioneel een versie
. Een aanwijzing wordt op de
volgende wijze geschreven:"
. Om een
aanwijzing voor de oplosser toe te passen, zoekt aptitude op basis van de
waarde van actie
doel
[versie
]"doel
een of meer pakketten op, kiest
een of meer versies van die pakketten op basis van de waarde van
versie
en voert ten slotte de opgegeven
actie
uit.
In de aanwijzing voor de oplosser mag het veld
actie
een van de volgende waarden hebben:
“approve
”: Keur de versie goed, alsof het
commando a) erop
uitgevoerd werd.
→ (
“reject
”: Wijs de versie af, alsof het
commando r) erop
uitgevoerd werd.
→ (
“discard
”: Verwerp elke oplossing die de
versie bevat. Is verschillend van “reject
”
in die zin dat dit voor de gebruiker niet zichtbaar is en niet interactief
veranderd kan worden.
“increase-safety-cost-to
”: verhoog de
veiligheidskost van elke oplossing die de versie bevat tot
getal
getal
; als de veiligheidskost reeds groter is dan
getal
, zal deze aanwijzing zonder effect
blijven. De veiligheidskost kan gebruikt worden (en wordt standaard
gebruikt) om de volgorde waarin oplossingen aan bod komen, te sturen. Zie
de paragraaf met de naam “Kosten en kostencomponenten” en de paragraaf met de naam “Veiligheidskosten” voor details.
Verschillende bijzondere kostenniveaus kunnen op naam gekozen worden:
conflict
, discard
: in plaats van de
veiligheidskost aan te passen, worden oplossingen die de versie bevatten,
verworpen alsof de aanwijzing “discard
” erop werd
toegepast.
maximum
: de hoogste veiligheidskost.
minimum
: de laagste veiligheidskost. Alle zoekbewerkingen
beginnen op het niveau van die kost, waardoor het “optrekken”
van van de kost van een versie naar dat niveau, geen effect heeft. Toch kan
die waarde ook gebruikt worden bij het aanpassen van de vooraf gedefinieerde
kostenniveaus: het instellen van Aptitude::ProblemResolver::Remove-Level
op “minimum
” zal bijvoorbeeld ertoe leiden
dat het verwijderen van pakketten geen invloed zal hebben op de
veiligheidskost van een oplossing.
![]() | Opmerking |
---|---|
De aanwijzing |
“getal
”: tel het opgegeven
getal
op bij de score
van de versie en doe de oplosser ernaartoe of (bij een negatief getal) ervan
weg neigen. Bijvoorbeeld, de aanwijzing 200 emacs
telt
200 op bij de score van emacs
, terwijl de aanwijzing
-10 emacs
10 aftrekt van zijn score.
Indien het veld doel
van de oplosser een
vraagteken bevat (“?
”) of een tilde
(“~
”), wordt dit als een zoekpatroon aanzien
en alle eraan beantwoordende pakketversies worden in overweging genomen. In
het andere geval wordt het beschouwd als de naam van het te selecteren
pakket. Het doel “g++
” zal dus enkel het
pakket g++
selecteren, maar het doel
“?section(non-free)
” zal elk pakket in de
sectie non-free
selecteren. Zie de paragraaf met de naam “Zoekpatronen” voor meer informatie over zoekpatronen.
Indien het veld versie
niet aanwezig is, dan
slaat de aanwijzing op alle versies van het pakket. In het andere geval kan
het een van de volgende vormen aannemen:
“/
”: de
aanwijzing heeft enkel betrekking op versies die in het opgegeven
archief
archief
aanwezig zijn.
“<
”: de
aanwijzing heeft enkel betrekking op versies waarvan het versienummer
kleiner is dan versie
versie
.
“<=
”: de
aanwijzing slaat enkel op versies waarvan het versienummer kleiner is dan of
gelijk aan versie
versie
.
“=
”: de
aanwijzing slaat enkel op versies waarvan het versienummer
versie
versie
is.
“<>
”:
de aanwijzing heeft enkel betrekking op versies waarvan het versienummer
niet versie
versie
is.
“>=
”: de
aanwijzing slaat enkel op versies waarvan het versienummer groter dan of
gelijk aan versie
versie
is.
“>
”: de
aanwijzing slaat enkel op versies waarvan het versienummer groter
danversie
versie
is.
“:UNINST
”: in plaats van op enigeversie van
doel
te slaan, beïnvloedt de aanwijzinghet
besluit om doel
te verwijderen. Bijvoorbeeld,
“reject aptitude :UNINST
” zal de oplosser
verhinderen om te proberen aptitude te verwijderen.
“versie
”: de aanwijzing betreft
enkel versies waarvan het versienummer versie
is.