De interactieve vereistenoplosser configureren

Hints voor de oplosser configureren

Hints voor de oplosser configureren

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:"actie doel [versie]". Om een aanwijzing voor de oplosser toe te passen, zoekt aptitude op basis van de waarde van 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:

  1. approve: Keur de versie goed, alsof het commando OplosserGoedgekeurd aan-/uitzetten (a) erop uitgevoerd werd.

  2. reject: Wijs de versie af, alsof het commando OplosserVerworpen aan-/uitzetten (r) erop uitgevoerd werd.

  3. 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.

  4. increase-safety-cost-to getal: verhoog de veiligheidskost van elke oplossing die de versie bevat tot 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:

    1. conflict, discard: in plaats van de veiligheidskost aan te passen, worden oplossingen die de versie bevatten, verworpen alsof de aanwijzing discard erop werd toegepast.

    2. maximum: de hoogste veiligheidskost.

    3. 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]Opmerking

    De aanwijzing increase-safety-cost-to wordt toegepast bovenop elke standaard veiligheidskost die verbonden is met de gekozen actie. Een aanwijzing die bijvoorbeeld de veiligheidskost van installeer hal uit experimental verhoogt naar 15.000 zal geen effect hebben, omdat die actie reeds een veiligheidskost van 50.000 heeft (in de veronderstelling dat die versie van hal niet de standaard kandidaatversie is).

  5. 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:

  1. /archief: de aanwijzing heeft enkel betrekking op versies die in het opgegeven archief aanwezig zijn.

  2. <versie: de aanwijzing heeft enkel betrekking op versies waarvan het versienummer kleiner is dan versie.

  3. <=versie: de aanwijzing slaat enkel op versies waarvan het versienummer kleiner is dan of gelijk aan versie.

  4. =versie: de aanwijzing slaat enkel op versies waarvan het versienummer versie is.

  5. <>versie: de aanwijzing heeft enkel betrekking op versies waarvan het versienummer niet versie is.

  6. >=versie: de aanwijzing slaat enkel op versies waarvan het versienummer groter dan of gelijk aan versie is.

  7. >versie: de aanwijzing slaat enkel op versies waarvan het versienummer groter danversie is.

  8. :UNINST: in plaats van op enige versie van doel te slaan, beïnvloedt de aanwijzing de beslissing om doel te verwijderen. Bijvoorbeeld, Aptitude::ProblemResolver::Hints { "reject aptitude :UNINST"; }; zal de oplosser verhinderen om te proberen aptitude te verwijderen.

  9. versie: de aanwijzing betreft enkel versies waarvan het versienummer versie is.