Provided by: dpkg_1.17.5ubuntu5.8_amd64 

NOME
update-alternatives - mantiene collegamenti simbolici che determinano i comandi predefiniti
SINTASSI
update-alternatives [opzione...] comando
DESCRIZIONE
update-alternatives crea, rimuove, mantiene e visualizza informazioni sui collegamenti simbolici che
costituiscono il sistema di alternative di Debian.
È possibile che in un dato momento nel sistema siano installati più programmi che hanno la stessa
funzione o una funzione simile. Per esempio, molti sistemi hanno diversi editor di testo installati
contemporaneamente. Questo dà agli utenti del sistema una possibilità di scelta, permettendo a ciascuno
di usare un editor diverso, se lo desidera, ma rende difficile per un programma fare una buona scelta
quando deve invocare un editor se l'utente non ha impostato una preferenza specifica.
Il sistema delle alternative Debian mira a risolvere questo problema. Nel file system tutti i file che
forniscono una funzionalità intercambiabile condividono un nome generico. Il sistema delle alternative e
l'amministratore di sistema insieme determinano a quale file faccia effettivamente riferimento questo
nome generico. Per esempio, se sul sistema sono installati entrambi gli editor di testo ed(1) e nvi(1),
il sistema delle alternative farà sì che il nome generico /usr/bin/editor faccia in modo predefinito
riferimento a /usr/bin/nvi. L'amministratore di sistema può sovrascrivere ciò e far sì che esso faccia
invece riferimento a /usr/bin/ed, e il sistema delle alternative non modificherà questa impostazione se
ciò non viene esplicitamente richiesto.
Il nome generico non è un collegamento simbolico diretto all'alternativa selezionata. È invece un
collegamento simbolico a un nome nella directory alternatives, che è a sua volta un collegamento
simbolico all'effettivo file referenziato. Tutto questo perché così le modifiche fatte
dall'amministratore di sistema possono rimanere confinate nella directory /etc: il FHS (q.v.) spiega le
ragioni per cui questa è una Cosa Buona e Giusta.
Al momento dell'installazione, cambiamento o rimozione di ogni pacchetto che fornisce un file con una
particolare funzionalità, viene invocato update-alternatives per aggiornare le informazioni su quel file
nel sistema delle alternative. update-alternatives viene solitamente chiamato dagli script postinst
(configurazione) o prerm (installazione) dei pacchetti Debian.
Spesso è utile che un certo numero di alternative siano sincronizzate, in modo da venir modificate in
gruppo; per esempio, quando sono installate diverse versioni dell'editor vi(1), la pagina di manuale a
cui fa riferimento /usr/share/man/man1/vi.1 dovrebbe corrispondere all'eseguibile a cui fa riferimento
/usr/bin/vi. update-alternatives gestisce questo usando collegamenti principali e secondari; quando viene
modificato il principale, anche tutti i secondari ad esso associati vengono modificati. Un collegamento
principale e tutti i suoi secondari associati compongono un gruppo di collegamenti.
In qualsiasi momento, ogni gruppo di collegamenti è in una di due modalità: automatica o manuale. Quando
un gruppo è in modalità automatica, il sistema delle alternative deciderà automaticamente se e come
aggiornare i collegamenti quando i pacchetti vengono installati o rimossi. In modalità manuale, il
sistema delle alternative preserva le scelte dell'amministratore ed evita di modificare i collegamenti
(tranne quando qualcosa non è corretto).
I gruppi di collegamenti sono inizialmente in modalità automatica, quando vengono introdotti nel sistema.
Se l'amministratore del sistema fa modifiche alle impostazioni automatiche del sistema, queste verranno
notate alla successiva esecuzione di update-alternatives sul gruppo di collegamenti modificato e il
gruppo automaticamente verrà passato alla modalità manuale.
Ogni alternativa è associata ad una priorità. Quando un gruppo di collegamenti è in modalità automatica,
le alternative a cui puntano i membri del gruppo saranno quelle con la priorità più alta.
Quando si usa l'opzione --config, update-alternatives elenca tutte le scelte per il gruppo di
collegamenti di cui il nome specificato è il nome dell'alternativa principale. La scelta attuale viene
contrassegnata da un «*». Verrà quindi chiesto all'utente di fare una scelta per ciò che riguarda questo
gruppo di collegamenti. A seconda della scelta fatta, il gruppo di collegamenti potrebbe non essere più
in modalità automatica. Sarà necessario usare l'opzione --auto per ritornare alla modalità automatica
(oppure si può rieseguire --config e selezionare la voce contrassegnata come automatica).
Se si vuole fare la configurazione in modo non interattivo, si può usare invece l'opzione --set (vedere
in seguito).
Pacchetti diversi che forniscono lo stesso file devono farlo cooperando. In altre parole, l'uso di
update-alternatives è obbligatorio per tutti i pacchetti coinvolti in un caso simile. Non è possibile
sovrascrivere un file in un pacchetto che non utilizza il meccanismo update-alternatives.
TERMINOLOGIA
Dato che le attività di update-alternatives sono piuttosto convolute, alcuni termini specifici aiutano a
spiegare il suo funzionamento.
nome generico (o collegamento dell'alternativa)
Un nome, come /usr/bin/editor, che fa riferimento, utilizzando il sistema delle alternative, ad
uno di svariati file con funzione similare.
nome dell'alternativa
Il nome di un collegamento simbolico nella directory delle alternative.
alternativa (o percorso alternativo)
Il nome di uno specifico file nel file system, che può essere reso accessibile attraverso un nome
generico utilizzando il sistema delle alternative.
directory delle alternative
Una directory, in modo predefinito /etc/alternatives, che contiene i collegamenti simbolici.
directory di amministrazione
Una directory, in modo predefinito /var/lib/dpkg/alternatives, che contiene le informazioni di
stato di update-alternatives.
gruppo di collegamenti
Un insieme di collegamenti simbolici correlati, pensato per essere aggiornato in gruppo.
collegamento principale
Il collegamento dell'alternativa, in un gruppo di collegamenti, che determina come sono
configurati gli altri collegamenti nel gruppo
collegamento secondario
Un collegamento dell'alternativa, in un gruppo di collegamenti, che è controllato
dall'impostazione del collegamento principale.
modalità automatica
Quando un gruppo di collegamenti è in modalità automatica, il sistema delle alternative assicura
che i collegamenti nel gruppo puntino all'alternativa con la priorità più alta appropriata per il
gruppo.
modalità manuale
Quando un gruppo di collegamenti è in modalità manuale, il sistema delle alternative non fa alcuna
modifica alle impostazioni dell'amministratore di sistema.
COMANDI
--install collegamento nome percorso priorità [--slave collegamento nome percorso]...
Aggiunge un gruppo di alternative al sistema. collegamento è il nome generico del collegamento
principale, nome è il nome del suo collegamento simbolico nella directory delle alternative e
percorso è l'alternativa che viene introdotta per il collegamento principale. Gli argomenti che
seguono --slave sono il nome generico, il nome del collegamento simbolico nella directory delle
alternative e il percorso dell'alternativa per un collegamento secondario. Possono essere
specificate zero o più opzioni --slave, ciascuna fatta seguire da tre argomenti. Notare che
l'alternativa principale deve esistere o la chiamata non avrà successo. Tuttavia, se
un'alternativa secondaria non esiste, il collegamento corrispondente semplicemente non verrà
installato (verrà comunque visualizzato un messaggio di avvertimento). Se dove deve essere
installato un collegamento di un'alternativa è installato un qualche file reale, esso viene
conservato, a meno che non venga usata l'opzione --force.
Se il nome dell'alternativa specificato esiste già nel registro del sistema delle alternative, le
informazioni fornite verranno aggiunte come un nuovo insieme di alternative per il gruppo.
Altrimenti viene aggiunto un nuovo gruppo con queste informazioni, impostato in modalità
automatica. Se il gruppo è in modalità automatica, e la priorità delle alternative appena aggiunte
è più alta di qualsiasi altra alternativa installata per questo gruppo, i collegamenti simbolici
verranno aggiornati per puntare alle alternative appena aggiunte.
--set nome percorso
Imposta il programma percorso come alternativa per nome. È equivalente a --config ma non è
interattivo e perciò è utilizzabile in script.
--remove nome percorso
Rimuove un'alternativa e tutti i collegamenti secondari associati. nome è il nome nella directory
delle alternative e percorso è un nome file assoluto a cui può essere collegato nome. Se nome è in
effetti collegato a percorso, nome sarà aggiornato in modo da puntare ad un'altra alternativa
appropriata (e il gruppo verrà rimesso in modalità automatica), oppure rimosso se non c'è più
alcuna alternativa corretta. I collegamenti secondari associati verranno analogamente aggiornati o
rimossi. Se il collegamento attualmente non punta a percorso, non verrà modificato alcun
collegamento; verranno solamente rimosse le informazioni riguardanti l'alternativa.
--remove-all nome
Rimuove tutte le alternative e tutti i loro collegamenti secondari associati. nome è un nome nella
directory delle alternative.
--all Invoca --config su tutte le alternative. Può essere proficuamente combinato con --skip-auto per
rivedere e configurare tutte le alternative che non sono configurate in modalità automatica.
Vengono mostrate anche le alternative non corrette. Perciò un modo semplice per correggere tutte
le alternative difettose è di chiamare yes '' | update-alternatives --force --all.
--auto nome
Fa passare in modalità automatica il gruppo di collegamenti relativo all'alternativa per nome. Nel
fare ciò, il collegamento simbolico principale e i suoi collegamenti secondari sono aggiornati in
modo da puntare alle alternative installate con la priorità più alta.
--display nome
Visualizza informazioni sul gruppo di collegamenti. Le informazioni visualizzate includono la
modalità del gruppo (automatica o manuale), a quale alternativa il collegamento principale punta
attualmente, quali altri alternative sono disponibili (e le loro alternative secondarie
corrispondenti) e l'alternativa attualmente installata con la priorità più alta.
--get-selections
Elenca tutti i nomi delle alternative principali (quelle che controllano un gruppo di
collegamenti) e il loro stato. Ogni riga contiene fino a 3 campi (separati da uno o più spazi). Il
primo campo è il nome dell'alternativa, il secondo è lo stato (o «auto» o «manual») e l'ultimo
contiene la scelta dell'alternativa attuale (attenzione: è un nome di file e pertanto può
contenere spazi).
--set-selections
Legge la configurazione delle alternative dallo standard input nel formato generato da
update-alternatives --get-selections e le riconfigura in modo corrispondente.
--query nome
Visualizza informazioni sul gruppo di collegamenti come fa --display, ma in un modo analizzabile
da una macchina (vedere la sezione FORMATO DI QUERY più avanti).
--list nome
Visualizza tutte le destinazioni del gruppo di collegamenti
--config nome
Visualizza le alternative disponibili per un gruppo di collegamenti e permette all'utente di
selezionare in modo interattivo quale usare. Il gruppo di collegamenti viene aggiornato.
--help Show the usage message and exit.
--version
Show the version and exit.
OPZIONI
--altdir directory
Specifica la directory delle alternative, quando deve essere diversa da quella predefinita.
--admindir directory
Specifica la directory di amministrazione, quando deve essere diversa da quella predefinita.
--log file
Specifica il file di registro, quando deve essere diverso da quello predefinito
(/var/log/alternatives.log).
--force
Permette a update-alternatives di sostituire o eliminare qualsiasi file reale che è installato in
una posizione dove deve essere installato o rimosso un collegamento di alternativa.
--skip-auto
Salta la richiesta di input sulla configurazione per le alternative che sono configurate in modo
corretto in modalità automatica. Questa opzione è rilevante solo con --config o --all.
--verbose
Genera più commenti riguardo a ciò che update-alternatives sta facendo.
--quiet
Non genera alcun commento a meno che non si verifichi un errore.
STATO D'USCITA
0 L'azione richiesta è stata effettuata con successo.
2 Si sono verificati dei problemi nell'analisi della riga di comando o nell'effettuare l'azione.
AMBIENTE
DPKG_ADMINDIR
Se impostata e l'opzione --admindir non è stata specificata, verrà usata come directory di
amministrazione di base.
FILE
/etc/alternatives/
La directory delle alternative predefinita. La directory considerata può essere modificata usando
l'opzione --altdir.
/var/lib/dpkg/alternatives/
La directory di amministrazione predefinita. La directory considerata può essere modificata usando
l'opzione --admindir.
FORMATO DI QUERY
Il formato di update-alternatives --query è un formato semplice in stile RFC822. È composto da n + 1
blocchi dove n è il numero delle alternative disponibili nel gruppo di collegamenti interrogato. Il primo
blocco contiene i seguenti campi:
Name: nome
Il nome dell'alternativa nella directory delle alternative.
Link: collegamento
Il nome generico dell'alternativa.
Slaves: elenco di collegamenti secondari
Quando è presente questo campo, le righe successive contengono tutti i collegamenti secondari
associati con il collegamento principale dell'alternativa, uno per riga. Ogni riga contiene uno
spazio, il nome generico dell'alternativa secondaria, un altro spazio e il percorso del
collegamento secondario.
Status: stato
Lo stato dell'alternativa (auto o manual).
Best: scelta-migliore
Il percorso all'alternativa migliore per questo gruppo di collegamenti; non è presente se non c'è
alcuna alternativa disponibile.
Value: alternativa-attualmente-selezionata
Il percorso dell'alternativa attualmente selezionata. Può anche avere il valore magico none. Viene
usato se il collegamento non esiste.
Gli altri blocchi descrivono le alternative disponibili nel gruppo di collegamenti interrogato:
Alternative: percorso-di-questa-alternativa
Percorso dell'alternativa di questo blocco.
Priority: valore-priorità
Valore della priorità di questa alternativa.
Slaves: elenco di collegamenti secondari
When this field is present, the next lines hold all slave alternatives associated to the master
link of the alternative. There is one slave per line. Each line contains one space, the generic
name of the slave alternative, another space, and the path to the slave alternative.
Esempio
$ update-alternatives --query editor
Name: editor
Link: /usr/bin/editor
Slaves:
editor.1.gz /usr/share/man/man1/editor.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/editor.1.gz
editor.it.1.gz /usr/share/man/it/man1/editor.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/editor.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/editor.1.gz
Status: auto
Best: /usr/bin/vim.basic
Value: /usr/bin/vim.basic
Alternative: /bin/ed
Priority: -100
Slaves:
editor.1.gz /usr/share/man/man1/ed.1.gz
Alternative: /usr/bin/vim.basic
Priority: 50
Slaves:
editor.1.gz /usr/share/man/man1/vim.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz
editor.it.1.gz /usr/share/man/it/man1/vim.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
DIAGNOSTICA
Con --verbose, update-alternatives si dilunga sul suo standard output in modo incessante su cosa sta
facendo. Se si verificano dei problemi, update-alternatives produce in output messaggi di errore nel suo
canale dello standard error e restituisce uno stato di uscita 2. Questi messaggi diagnostici dovrebbero
essere autoesplicativi; se non li si ritiene tali, segnalare la cosa come un bug.
ESEMPI
Ci sono svariati pacchetti che forniscono un editor di testo compatibile con vi, per esempio nvi e vim.
Quello da usarsi è controllato dal gruppo di collegamenti vi, che include i collegamenti per il programma
stesso e per la pagina di manuale associata.
Per visualizzare tutti i pacchetti disponibili che forniscono vi e la sua impostazione attuale, usare
l'azione --display:
update-alternatives --display vi
Per scegliere una particolare implementazione di vi, usare questo comando da root e poi selezionare un
numero dall'elenco:
update-alternatives --config vi
Per ritornare alla scelta automatica dell'implementazione di vi, usare questo da root:
update-alternatives --auto vi
VEDERE ANCHE
ln(1), FHS: lo standard per la gerarchia del file system.
Progetto Debian 31 luglio 2012 update-alternatives(8)