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
numero
numero
; 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'archivio
archivio
specificato.
«<
»:
il suggerimento ha effetto solo sulle versioni il cui numero è minore di
versione
versione
.
«<=
»:
il suggerimento ha effetto solo sulle versioni il cui numero è minore o
uguale a versione
versione
.
«=
»: il
suggerimento ha effetto solo sulle versioni il cui numero è
versione
versione
.
«<>
»:
il suggerimento ha effetto solo sulle versioni il cui numero non è
versione
versione
.
«>=
»:
il suggerimento ha effetto solo sulle versioni il cui numero è maggiore o
uguale a versione
versione
.
«>
»:
il suggerimento ha effetto solo sulle versioni il cui numero è maggiore di
versione
versione
.
«: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
.