Per migliorare la qualità delle soluzioni di dipendenze ricevute, è possibile fornire suggerimenti al risolutore interattivo di dipendenze. Questi suggerimenti possono modificare le priorità del risolutore, facendolo propendere di più verso una versione o un pacchetto, oppure possono essere usati per «pre-caricare» nel risolutore rifiuti e approvazioni, come se si fosse aperto il risolutore e si fossero manualmente rifiutate o approvate varie versioni.
I suggerimenti vengono memorizzati nel file di configurazione di apt,
/etc/apt/apt.conf, nel gruppo di configurazioni
«Aptitude::ProblemResolver::Hints»
(per i dettagli sul file di configurazione vedere sezione chiamata «Guida di riferimento per il file di configurazione»).
Ogni suggerimento per il risolutore consiste di
un'azione, un
bersaglio e una
versione opzionale. Un suggerimento è scritto
nella forma: ". Per
applicare un suggerimento per il risolutore, aptitude individua uno o più
pacchetti usando il valore di azione
bersaglio
[versione]"bersaglio, sceglie
una o più versioni di tali pacchetti usando il valore di
versione e da ultimo esegue
l'azione indicata.
Il campo azione di un suggerimento per il
risolutore può contenere un valore tra i seguenti:
«approve»: approva la versione, come se si
fosse usato su di essa il comando → (a).
«reject»: rifiuta la versione, come se si
fosse usato su di essa il comando → (r).
«discard»: scarta ogni soluzione che
contiene la versione. È diversa da «reject»
in quanto non è visibile dall'utente e non può essere modificata in modo
interattivo.
«increase-safety-cost-to
»: aumenta il costo di
sicurezza di qualsiasi soluzione che contiene la versione a
numeronumero; se il suo costo di sicurezza è già più
alto di numero, questo suggerimento non ha
effetto. Il costo di sicurezza può essere usato (e viene usato in modo
predefinito) per controllare l'ordine in cui vengono presentate le
soluzioni; per i dettagli vedere sezione chiamata «Costi e componenti dei costi» e sezione chiamata «Costi di sicurezza».
Svariati livelli di costo speciali possono essere scelti in base al nome:
conflict, discard: invece di cambiare
il costo di sicurezza, scarta le soluzioni che contengono la versione come
se si fosse usato su di esse il suggerimento «discard».
maximum: il costo di sicurezza più alto.
minimum: il costo di sicurezza più basso. Tutte le
ricerche partono da questo costo, perciò «aumentare» una
versione a questo costo non ha effetto. Questo valore può però anche essere
usato quando si regolano i livelli di costo predefiniti: ad esempio se si
imposta Aptitude::ProblemResolver::Remove-Level
a «minimum» si fa in modo che i pacchetti
rimossi non abbiano effetto sul costo di sicurezza di una soluzione.
![]() | Nota |
|---|---|
Il suggerimento |
«numero»: aggiunge il
numero specificato al
punteggio della versione, facendo propendere il
risolutore a suo favore oppure (usando un numero negativo) a suo
svantaggio. Per esempio, il suggerimento 200 emacs
aggiunge 200 al punteggio di emacs, mentre il
suggerimento -10 emacs sottrae 10 dal suo punteggio.
Se il campo bersaglio di un suggerimento per il
risolutore contiene un punto interrogativo
(«?») o una tilde
(«~») è interpretato come un modello di
ricerca e vengono prese in considerazione tutte le versioni di pacchetto che
vi corrispondono. Altrimenti viene interpretato come il nome di un pacchetto
da selezionare. Perciò il bersaglio «g++»
seleziona solamente il pacchetto g++, mentre il bersaglio
«?section(non-free)» seleziona ogni
pacchetto nella sezione non-free. Per maggiori
informazioni sui modelli di ricerca vedere sezione chiamata «Modelli di ricerca».
Se il campo versione non è presente, allora il
suggerimento ha effetto su tutte le versioni del pacchetto. Altrimenti, può
avere una delle forme seguenti:
«/»: il
suggerimento ha effetto solo sulle versioni che sono disponibili
nell'archivioarchivio specificato.
«<»:
il suggerimento ha effetto solo sulle versioni il cui numero è minore di
versioneversione.
«<=»:
il suggerimento ha effetto solo sulle versioni il cui numero è minore o
uguale a versioneversione.
«=»: il
suggerimento ha effetto solo sulle versioni il cui numero è
versioneversione.
«<>»:
il suggerimento ha effetto solo sulle versioni il cui numero non è
versioneversione.
«>=»:
il suggerimento ha effetto solo sulle versioni il cui numero è maggiore o
uguale a versioneversione.
«>»:
il suggerimento ha effetto solo sulle versioni il cui numero è maggiore di
versioneversione.
«:UNINST»: invece di avere effetto su
qualche versione di bersaglio, il suggerimento ha
effetto sulla decisione di rimuovere
bersaglio. Ad esempio,
«Aptitude::ProblemResolver::Hints { "reject aptitude
:UNINST"; };» impedirà al risolutore di cercare di
rimuovere aptitude.
«versione»: il suggerimento ha
effetto solo sulle versioni il cui numero di versione è
versione.