L'elenco dei pacchetti può essere in vasta parte personalizzato: come i pacchetti vengono visualizzati, come viene formata la gerarchia dei pacchetti, come vengono ordinati i pacchetti e persino come è organizzata la visualizzazione sono tutte cose che è possibile modificare.
Questa sezione descrive come configurare il contenuto e il formato
dell'elenco dei pacchetti, della riga di stato e di quella d'intestazione,
così come l'output di aptitude
search
.
Il formato di ciascuna di queste cose è definito da una «stringa di
formato». Una stringa di formato è una stringa di testo che contiene
codici %
come %p
,
%S
e così via. L'output risultante viene creato prendendo
il testo e sostituendo i codici %
in base al loro
significato (descritto in seguito).
Un codice %
può avere una dimensione fissa, nel qual caso
viene sempre sostituito dalla stessa quantità di testo (se necessario,
aggiungendo caratteri di spazio in più di riempimento), oppure può essere
«espandibile», cioè può usare lo spazio che non è reclamato da
colonne di dimensione fissa. Se c'è più di una colonna espandibile, lo
spazio in più viene suddiviso in modo equo tra tutte le colonne.
Tutti i codici %
vengono forniti con una dimensione
predefinita o con espandibilità. La dimensione di un codice
%
può essere modificata scrivendola tra il carattere
%
e il carattere che identifica il codice; per esempio,
%20V
genera la versione
candidata del pacchetto con una larghezza di 20 caratteri. Se si
mette un punto interrogativo (?
) tra il
%
e il carattere che identifica il codice, la larghezza
«base» della colonna varia a seconda del suo contenuto. Notare
che le colonne risultanti potrebbero non essere allineate verticalmente!
Se si desidera che un particolare codice %
sia
espandibile, anche se normalmente ha una larghezza fissa, farlo
immediatamente seguire da un carattere cancelletto (cioè
«#
»). Ad esempio, per visualizzare la
versione candidata di un pacchetto, indipendentemente da quanto sia lunga,
usare la stringa di formato %V#
. Si può anche mettere un
#
dopo qualcosa che non è un codice %
:
aptitude «espande» allora il testo che precede il
#
inserendo spazi aggiuntivi dopo di esso.
In breve, la sintassi di un codice %
è:
%
[larghezza
][?
]codice
[#
]
Le variabili di configurazione Aptitude::UI::Package-Display-Format
,
Aptitude::UI::Package-Header-Format
e Aptitude::UI::Package-Status-Format
definiscono rispettivamente i formati predefiniti per l'elenco dei
pacchetti, l'intestazione in cima all'elenco dei pacchetti, e la riga di
stato sotto all'elenco dei pacchetti. Per cambiare il modo in cui viene
visualizzato il risultato di un comando aptitude search
, usare
l'opzione-F
.
Nelle stringhe di formato sono disponibili i seguenti codici
%
:
Nota | |
---|---|
Alcune delle descrizioni che seguono fanno riferimento a «il pacchetto». Nella GUI, questo è o il pacchetto visualizzato o il pacchetto attualmente selezionato; nelle ricerche da riga di comando è il pacchetto visualizzato. |
Codice | Nome | Dimensione predefinita | Espandibile | Descrizione |
---|---|---|---|---|
%% | % letterale | 1 | No | Questo non è realmente un codice; inserisce semplicemente un segno di percentuale nell'output nel punto in cui appare. |
%# | Sostituzione di parametri | Variabile | No |
In alcune circostanze, una stringa di formato di visualizzazione possiede
dei «parametri»: ad esempio, nella riga di comando
search , i gruppi che corrispondono alla ricerca vengono
usati come parametri quando vengono visualizzati i risultati. Questo codice
di formato viene sostituito dal parametro indicato da
numero .
|
%a | Contrassegno per l'azione | 1 | No | Un contrassegno di un solo carattere che riassume ogni azione da effettuare sul pacchetto, come descritto in Figura 2.10, «Valori dell'indicatore dell'«azione»». |
%A | Azione | 10 | No | Una descrizione un po' più lunga dell'azione da effettuare sul pacchetto. |
%B | Conteggio difettosi | 12 | No |
Se non ci sono pacchetti difettosi non produce nulla. Altrimenti, produce
una stringa del tipo «Errati:
10 » che descrive il numero dei pacchetti difettosi.
|
%c | Contrassegno dello stato attuale | 1 | No | Un contrassegno di un solo carattere che riassume lo stato attuale del pacchetto, come descritto in Figura 2.9, «Valori dell'indicatore dello «stato attuale»». |
%C | Stato attuale | 11 | No | Una descrizione più lunga dello stato attuale del pacchetto. |
%d | Descrizione | 40 | Sì | La descrizione breve del pacchetto. |
%D | Dimensione del pacchetto | 8 | No | La dimensione del file di pacchetto che contiene il pacchetto. |
%E | Architettura | 10 | No |
Produce in output la strina dell'architettura, per esempio
«amd64 ».
|
%e | Sorgente | 30 | No |
Produce in output il pacchetto sorgente, per esempio
«aptitude » per
«aptitude-doc-en ».
|
%H | Nome host | 15 | No | Il nome del computer su cui è in esecuzione aptitude. |
%i | Priorità di pin | 4 | No | Visualizza la priorità più alta assegnata ad una versione di pacchetto; per i pacchetti, visualizza la priorità della versione che verrà imposta come quella da installare (se ce n'è una). |
%I | Dimensione da installato | 8 | No | La quantità (stimata) di spazio che il pacchetto occupa sul disco. |
%m | Manutentore | 30 | Sì | Il manutentore del pacchetto. |
%M | Contrassegno di automatico | 1 | No |
Se il pacchetto è stato installato automaticamente, produce in output
«A », altrimenti l'output è
vuoto.
|
%n | Versione del programma | La lunghezza di «0.8.13». | No |
Produce in output la versione di aptitude che è in esecuzione, attualmente
«0.8.13 ».
|
%N | Nome del programma | La lunghezza del nome. | No |
Produce in output il nome del programma; solitamente
«aptitude ».
|
%o | Dimensione di scaricamento | 17 | No |
Se non ci sono pacchetti che verranno installati, l'output è
vuoto. Altrimenti produce in output una stringa che descrive la dimensione
totale dei file di pacchetto che verranno installati (una stima di quanti
dati devono essere scaricati); ad esempio, «Scarica:
1000B ».
|
%O | Origine | 30 | No |
Produce in output una stringa con l'origine del pacchetto, per esempio
«Debian: unstable [amd64] ».
|
%p | Nome del pacchetto | 30 | Sì | Produce in output il nome del pacchetto. Quando un pacchetto è visualizzato in un contesto ad albero, il nome del pacchetto verrà fatto rientrare, se possibile, in modo appropriato alla sua profondità nell'albero. |
%P | Priorità | 9 | No | Produce in output la priorità del pacchetto. |
%r | Conteggio delle dipendenze inverse | 2 | No | Produce in output il numero approssimato dei pacchetti installati che dipendono dal pacchetto. |
%R | Priorità abbreviata | 3 | No |
Produce in output una descrizione abbreviata della priorità del pacchetto:
per esempio, «Importante »
diventa «Imp ».
|
%s | Sezione | 10 | No | Produce in output la sezione del pacchetto. |
%S | Stato di fiducia | 1 | No | Se il pacchetto non è fidato, visualizza la lettera "U". |
%t | Archivio | 10 | Sì | L'archivio in cui si trova il pacchetto. |
%T | Etichettato (e user-tags) | 30 | No |
Produce in output « Questo campo include anche user-tags. |
%u | Cambiamento nell'uso del disco | 30 | No |
Se le azioni pianificate modificheranno la quantità di spazio usato su
disco, produce in output una descrizione del cambiamento; ad esempio,
«Occuperà 100MB su disco. »
|
%v | Versione attuale | 14 | No |
Produce in output la versione attualmente installata del pacchetto oppure
<nessuna> se il pacchetto non è
attualmente installato.
|
%V | Versione candidata | 14 | No |
Produce in output la versione del pacchetto che verrebbe installata se
+) fosse eseguito sul pacchetto, o
<nessuna> se il pacchetto non è
attualmente disponibile.
| → (
%Z | Cambiamento in dimensione | 9 | No | Produce in output quanto spazio aggiuntivo verrà usato o quanto spazio verrà liberato dall'installazione, l'aggiornamento o la rimozione di un pacchetto. |
La gerarchia dei pacchetti viene generata da una politica di
raggruppamento: le regole descrivono come la gerarchia debba
essere costruita. La politica di raggruppamento descrive una
«successione» di regole; ciascuna regola può scartare
pacchetti, creare sotto-gerarchie in cui inserire i pacchetti o manipolare
l'albero in altro modo. Le voci di configurazione Aptitude::UI::Default-Grouping
e Aptitude::UI::Default-Preview-Grouping
impostano, rispettivamente, le politiche di raggruppamento per gli elenchi e
le schermate di anteprima appena creati. È possibile impostare la politica
di raggruppamento per l'elenco attuale dei pacchetti
premendo G.
La politica di raggruppamento è descritta da un elenco di regole separate da
virgole:
.
Ogni regola1
,regola2
,...
regola
consiste del nome della regola,
eventualmente seguito da argomenti: ad esempio, versions
o section(subdir)
. Se gli argomenti siano necessari e
quanti siano necessari (o permessi) dipende dal tipo di regola.
Le regole possono essere non-terminali o terminali. Una regola non terminale elabora un pacchetto generando una parte della gerarchia e quindi passando il pacchetto ad una regola successiva. Invece una regola terminale genera lo stesso una parte dell'albero (tipicamente voci che corrispondono ai pacchetti), ma non passa il pacchetto ad una regola successiva. Se non viene specificata alcuna regola terminale, aptitude usa la regola predefinita, che è quella di creare le «voci di pacchetto» standard.
action
Raggruppa i pacchetti in base all'azione pianificata per essi; i pacchetti che non sono aggiornabili e che non verranno modificati vengono ignorati. Questo è il raggruppamento che viene usato negli alberi di anteprima.
architecture
Raggruppa i pacchetti in base alla loro architettura.
deps
Questa è una regola terminale.
Crea voci di pacchetto standard che possono essere espanse per rivelare le dipendenze del pacchetto.
filter(modello
)
Include solo i pacchetti per i quali almeno una versione corrisponde a
modello
.
Se modello
è «assente» non viene
scartato alcun pacchetto. Questa è una funzionalità inserita per
compatibilità all'indietro e potrebbe essere rimossa in futuro.
firstchar[(modalità
)]
Raggruppa i pacchetti in base all'iniziale del loro nome.
Per la precisione non è sempre la prima lettera: per i pacchetti che
iniziano con lib*
il nome del gruppo è
liba
, libb
, ... come nei FTP Debian.
modo
può essere uno dei seguenti:
binary
Raggruppa in base al nome del pacchetto binario. Questo è il comportamento
predefinito se non viene specificata alcuna
modalità
.
Esempio 2.7. Politica di raggruppamento firstchar
o
firstchar(binary)
Prendendo come esempio il pacchetto sorgente dpkg
, i
pacchetti binari dselect
, dpkg
e
dpkg-dev
vengono raggruppati sotto la
d
, mentre libdpkg-dev
e
libdpkg-perl
vengono aggiunti al gruppo
libd
.
source
Raggruppa in base al nome del pacchetto sorgente.
Questo è utile ad esempio quando si sfogliano i pacchetti provenienti dallo
stesso pacchetto sorgente (politica di raggruppamento source) all'interno di vaste raccolte
(esempi: tutti i pacchetti installati, tutti i pacchetti aggiornabili, tutti
i pacchetti dalla sezione «main», per aggiungere un livello di
raggruppamento intermedio. In questo modo si può, ad esempio, emulare la
gerarchia dei FTP (provare a raggruppare per:
section(topdir),firstchar(source),source"
).
Esempio 2.8. Politica di raggruppamento firstchar(source)
Prendendo nuovamente ad esempio il pacchetto sorgente
dpkg
, tutti i pacchetti binari
dselect
, dpkg
,
dpkg-dev
, libdpkg-dev
e
libdpkg-perl
vengono raggruppati sotto la
d
.
pattern(modello
[=>titolo
] [{politica
}] [, ...])
Una politica di raggruppamento personalizzabile. Ogni versione di ogni
pacchetto viene confrontata con il/i modello/i
specificato/i. La prima corrispondenza trovata viene usata per assegnare un
titolo
al pacchetto; i pacchetti vengono quindi
raggruppati in base al loro titolo
. Le stringhe
nella forma \N
che appaiono in
titolo
vengono sostituite dall'N-simo risultato
della corrispondenza. Se titolo
non è presente,
gli viene assegnato il valore \1
. Notare che i pacchetti
che non corrispondono ad alcun modello
non
compaiono affatto nell'albero dei pacchetti.
Esempio 2.9. Uso di pattern
per raggruppare i pacchetti in base al
loro manutentore.
pattern(
?maintainer
() => \1)
L'esempio precedente raggruppa i pacchetti in base al loro campo
Maintainer. La politica pattern(
fa la
stessa cosa, dato che per il ?maintainer
())titolo
mancante
viene usato il predefinito \1
.
Invece di =>
, una voce
può terminare con titolo
||
. Questo indica che i pacchetti che
corrispondono al relativo modello
saranno
inseriti nell'albero allo stesso livello del raggruppamento
pattern
invece di essere inseriti in sottoalberi.
L'esempio precedente mette i pacchetti che stanno per essere rimossi in un
sottoalbero e mette tutti gli altri pacchetti nel livello attuale,
raggruppati in base alle politiche che seguono pattern
.
In modo predefinito, tutti i pacchetti che corrispondono a ciascun modello
sono raggruppati in base alle regole che seguono la politica del
pattern
. Per specificare una diversa politica per alcuni
pacchetti, scrivere la politica tra parentesi graffe ({}
)
dopo il titolo del gruppo, dopo le ||
o dopo il modello
se nessuno dei due è presente. Per esempio:
La politica nell'esempio precedente ha i seguenti effetti:
I pacchetti che stanno per essere rimossi vengono messi in un sottoalbero chiamato «Packages Being Removed»; la politica di raggruppamento per questo sottoalbero è vuota, perciò i pacchetti vengono messi in un semplice elenco.
I pacchetti che stanno per essere installati vengono messi in un sottoalbero
chiamato Packages Being Installed
e raggruppati secondo
le politiche che seguono pattern
.
Tutti i pacchetti rimasti vengono messi nel livello più alto dell'albero, raggruppati in base al loro stato.
Vedere sezione chiamata «Modelli di ricerca» per maggiori informazioni sul
formato di modello
.
priority
Raggruppa i pacchetti in base alla loro priorità.
section[(modo
[,passthrough])]
Raggruppa i pacchetti in base al loro campo Section.
modo
può essere uno dei seguenti:
none
Raggruppa in base all'intero campo Section, perciò vengono create categorie
quali «non-free/games». Questo è il valore predefinito se non
viene specificato modo
.
topdir
Raggruppa in base alla parte del campo Section che precede il primo
carattere /
; se questa parte di Section non viene
riconosciuta, o se non c'è alcun carattere /
, viene usata
invece la prima voce nell'elenco Aptitude::Sections::Top-Sections
.
subdir
Raggruppa in base alla parte del campo Section dopo il primo carattere
/
, se è presente nell'elenco Aptitude::Sections::Top-Sections
.
Se non è presente o se non c'è alcun carattere /
,
raggruppa in base all'intero campo Section.
subdirs
Raggruppa in base alla parte del campo Section dopo il primo carattere
/
, se la parte del campo che lo precede è contenuta
nell'elenco Aptitude::Sections::Top-Sections
;
in caso contrario, o se non c'è alcun carattere /
, viene
usato l'intero campo. Se c'è più di un carattere /
nella
parte del campo che è usata, viene formata una gerarchia di gruppi. Per
esempio, se «games
» non è un membro di
Aptitude::Sections::Top-Sections
,
allora un pacchetto della sezione
«games/arcade
» viene messo sotto il titolo
di più alto livello «games
», in un
sottoalbero chiamato «arcade
».
Se è presente passthrough
, i pacchetti che per qualche
ragione mancano di una vera Section (per esempio i pacchetti virtuali)
vengono passati direttamente al livello successivo di raggruppamento senza
essere prima messi in sottocategorie.
status
Raggruppa i pacchetti nelle seguenti categorie:
Aggiornamenti di sicurezza
Aggiornabili
Nuovi
Installati
Non installati
Obsoleti e creati localmente
Virtuali
source
Raggruppa i pacchetti in base al nome del loro pacchetto sorgente.
tag[(faccetta
)]
Raggruppa i pacchetti in base all'informazione Tag memorizzata nei file di
pacchetto Debian. Se viene specificata faccetta
,
allora vengono visualizzate solo le etichette corrispondenti a quella
faccetta di significato, e i pacchetti che non hanno questa faccetta vengono
nascosti; altrimenti, tutti i pacchetti vengono visualizzati almeno una
volta (con i pacchetti senza etichette elencati separatamente da quelli che
hanno etichette).
Per maggiori informazioni sui debtags, vedere http://debtags.alioth.debian.org.
task
Crea un albero chiamato «Task» che contiene i task disponibili
(le informazioni sui task vengono lette da
debian-tasks.desc
nel pacchetto
tasksel
). La regola che segue
task
crea le sue categorie come fratelli di Task.
versions
Questa è una regola terminale.
Crea voci standard per i pacchetti che possono essere espanse per rivelare le versioni del pacchetto.
In modo predefinito, i pacchetti nell'elenco dei pacchetti o nell'output di
aptitude search
vengono ordinati in base al nome. Tuttavia, è spesso utile ordinarli secondo
criteri diversi (per esempio la dimensione del pacchetto) e aptitude
permette di fare proprio questo modificando la politica di
ordinamento.
Come la politica di raggruppamento descritta nella sezione precedente, la politica di
ordinamento è un elenco separato da virgole. Ogni voce nell'elenco è il nome
di una regola di ordinamento; se i pacchetti sono «uguali» per
ciò che riguarda la prima regola, per ordinarli viene usata la seconda
regola, e così via. Un carattere tilde (~
) che precede
una regola ne inverte il significato normale. Per esempio,
priority,~name
ordina i pacchetti in base alla priorità,
ma i pacchetti con la stessa priorità vengono ordinati in modo inverso in
base al nome.
Per cambiare la politica di ordinamento per un elenco di pacchetti attivo,
premere S. Per cambiare l'ordinamento predefinito per tutti
gli elenchi dei pacchetti, impostare l'opzione di configurazione
Aptitude::UI::Default-Sorting
.
Per cambiare la politica di ordinamento per aptitude search
, usare l'opzione da
riga di comando --sort
.
Le regole disponibili sono:
installsize
Ordina i pacchetti in base alla quantità stimata di spazio di cui hanno bisogno una volta installati.
installsizechange
Ordina i pacchetti in base all'entità della modifica della dimensione installata (quantità stimata di spazio richiesta quando installati), confrontando la versione attuale (se installata) e la versione candidata all'installazione, aggiornamento o rimozione.
debsize
Ordina i pacchetti in base alla loro dimensione.
name
Ordina i pacchetti in base al nome.
priority
Ordina i pacchetti in base alla priorità.
version
Ordina i pacchetti in base al loro numero di versione.