Supponete che su un sistema siano installate molte applicazioni di
uno stesso tipo, ad esempio tanti browser, tanti editor di testo o anche
tante diverse versioni della macchina virtuale Java. Dal punto di vista
dell’utente non ci sono problemi ad invocare l’applicazione desiderata,
ma per il sistema potrebbe essere importante sapere quale browser o
quale editor di testo avviare in caso di necessità, ad esempio durante
l’esecuzione di uno script di installazione o configurazione.
Per l’autore dello script potrebbe essere estremamente scomodo dover inserire delle parti di codice per verificare la disponibilità sul sistema di un particolare editor, di un particolare browser o altre applicazioni da invocare. Per questo c’è il sistema delle debian-alternatives, un sistema che assegna un nome generico (genname) a ciascuna classe di applicazioni, in modo che con quel nome si possa avviare l’applicazione idonea.
Esempio pratico
Sul vostro sistema ci sono diversi editor di testo, ad esempio jed, vim, nano e pico. Uno script che dovesse avere bisogno di invocare un editor di testo, invece di invocarne esplicitamente uno attraverso il comando diretto, invocherebbe semplicemente il comando
Quindi sul sistema potrete trovare un generico comando
Vediamo ora più nel dettaglio come funzionano queste debian-alternatives.
Significato dei termini usati.
Genname: è il nome generico assegnato ad una classe di applicazioni, ed è il nome del file sul filesystem che verrà usato in luogo dell’applicazione particolare. Esempi: /usr/bin/editor, /usr/bin/x-www-browser, ecc.
Symlink: è il nome del link simbolico nella directory /etc/alternatives. Esempi: x-www-browser, editor, ecc.
/etc/alternatives: è la directory che contiene, salvo diversa impostazione, tutti i symlink delle applicazioni, vale a dire quei link simbolici che hanno come nome il nome generico del gruppo e che puntano all’applicazione predefinita del gruppo.
Alternativa: il nome di uno specifico file nel filesystem, che sarà acceduto/invocato attraverso un nome generico.
Link group: insieme di symlink correlati, che si vuole trattare in maniera coordinata.
Master link: il link all’interno di un link group che stabilisce come gli altri link ad esso collegati devono essere configurati.
Slave link: link subordinato ad un master link, e che viene modificato in caso di modifica del master link. Per intenderci, è quello che avviene con le man-pages.
Priorità: è un valore intero che serve a specificare quale applicazione di un gruppo deve essere quella di default, a meno di una ridefinizione manuale dell’utente. E’ anche il parametro che viene preso in considerazione quando si reimposta l’alternativa allo stato automatico.
Comandi ed esempi
Il comando principale con cui si interagisce col sistema delle alternative è
Output:
Questo vuol dire che per x-www-browser ci sono tre diverse alternative (Iceweasel, Konqueror e Firefox-2.0).
Esempio 2: opzione
Output:
Questo significa che nel gruppo x-www-browser (browser nell’ambiente
grafico) sono presenti tre distinte applicazioni: Konqueror, Iceweasel e
Firefox-2.0. La dicitura status auto segnala che l’applicazione
da associare a x-www-browser è scelta automaticamente in base alla
priorità; essendo Konqueror l’applicazione cui è assegnata la priorità
più alta, invocando il comando
Esempio 3: opzione
Output:
Il carattere * indica la configurazione corrente, mentre il + indica
l’applicazione a maggiore priorità. Inserendo 1, 2 o 3 sceglierete quale
applicazione associare a x-www-browser; premendo semplicemente invio,
invece, manterrete tutto inalterato.
Esempio 4: opzione
Viene reimpostato per x-www-browser il link a priorità maggiore (Konqueror).
Esempio 5: opzione
Attenzione: il precedente comando va scritto su un’unica riga, senza andare a capo!
Analizziamo il comando pezzo per pezzo:
l’opzione
La parte del master link include i seguenti frammenti:
Capita che, dopo l'installazione o rimozione o aggiornamento del software, le alternatives si riconfigurino, sovrascrivendo la precedente configurazione.
Gli amanti del terminale possono usufruire di questo comando:
Installazione.
Per installare, è sufficiente dare uno dei due comandi, in base a quale dei due programmi si vuole installare:
Ora è possibile amministrare graficamente le alternatives, senza scervellarsi col terminale.
Per l’autore dello script potrebbe essere estremamente scomodo dover inserire delle parti di codice per verificare la disponibilità sul sistema di un particolare editor, di un particolare browser o altre applicazioni da invocare. Per questo c’è il sistema delle debian-alternatives, un sistema che assegna un nome generico (genname) a ciascuna classe di applicazioni, in modo che con quel nome si possa avviare l’applicazione idonea.
Esempio pratico
Sul vostro sistema ci sono diversi editor di testo, ad esempio jed, vim, nano e pico. Uno script che dovesse avere bisogno di invocare un editor di testo, invece di invocarne esplicitamente uno attraverso il comando diretto, invocherebbe semplicemente il comando
editor
.
Sarà poi compito di debian-alternatives avviare un editor
effettivamente disponibile sul sistema, in particolare quello deciso da
voi oppure quello cui è stata assegnata la maggiore priorità.Quindi sul sistema potrete trovare un generico comando
x-www-browser
che avvia un browser nell’ambiente grafico, un generico javac
che invoca il compilatore Java (ad esempio gcj, oppure quello della
SUN, ecc.), e così via. Una cosa analoga avviene anche per le pagine di
manuale, ovvero pagine di manuale generiche che fanno riferimento alla
manpage dell’opportuna applicazione.Vediamo ora più nel dettaglio come funzionano queste debian-alternatives.
Significato dei termini usati.
Genname: è il nome generico assegnato ad una classe di applicazioni, ed è il nome del file sul filesystem che verrà usato in luogo dell’applicazione particolare. Esempi: /usr/bin/editor, /usr/bin/x-www-browser, ecc.
Symlink: è il nome del link simbolico nella directory /etc/alternatives. Esempi: x-www-browser, editor, ecc.
/etc/alternatives: è la directory che contiene, salvo diversa impostazione, tutti i symlink delle applicazioni, vale a dire quei link simbolici che hanno come nome il nome generico del gruppo e che puntano all’applicazione predefinita del gruppo.
Alternativa: il nome di uno specifico file nel filesystem, che sarà acceduto/invocato attraverso un nome generico.
Link group: insieme di symlink correlati, che si vuole trattare in maniera coordinata.
Master link: il link all’interno di un link group che stabilisce come gli altri link ad esso collegati devono essere configurati.
Slave link: link subordinato ad un master link, e che viene modificato in caso di modifica del master link. Per intenderci, è quello che avviene con le man-pages.
Priorità: è un valore intero che serve a specificare quale applicazione di un gruppo deve essere quella di default, a meno di una ridefinizione manuale dell’utente. E’ anche il parametro che viene preso in considerazione quando si reimposta l’alternativa allo stato automatico.
Comandi ed esempi
Il comando principale con cui si interagisce col sistema delle alternative è
update-alternatives
, e va eseguito sempre con i privilegi di amministratore di sistema. Le opzioni più importanti sono le seguenti:--display
: mostra le impostazioni attuali di un’alternativa;--list
: mostra le possibili scelte per un’alternativa;--config
: configura un’alternativa;--auto
: reimposta lo stato automatico per un’alternativa, cioè la riassegna all’applicazione con priorità maggiore;--install
: installa una nuova alternativa all’interno di un gruppo. Se il gruppo non esiste, lo crea.--remove
: rimuove un’alternativa all’interno di un gruppo, con tutti i suoi slave;--remove-all
: rimuove un intero gruppo di alternative.
--list
update-alternatives --list x-www-browser
/usr/bin/iceweasel
/usr/bin/konqueror
/usr/bin/firefox-2.0
Esempio 2: opzione
--display
update-alternatives --display x-www-browser
x-www-browser - lo status è auto.
il link attualmente punta a /usr/bin/konqueror
/usr/bin/iceweasel - priorità 70
slave x-www-browser.1.gz: /usr/share/man/man1/iceweasel.1.gz
/usr/bin/konqueror - priorità 100
slave x-www-browser.1.gz: /usr/share/man/man1/konqueror.1.gz
/usr/bin/firefox-2.0 - priorità 20
slave x-www-browser.1.gz: /usr/share/man/man1/firefox.1.gz
La `migliore' versione attualmente è /usr/bin/konqueror.
x-www-browser
verrà avviato Konqueror.Esempio 3: opzione
--config
update-alternatives --config x-www-browser
Ci sono 3 alternative che forniscono `x-www-browser'.
Selezione Alternativa
-----------------------------------------------
1 /usr/bin/iceweasel
*+ 2 /usr/bin/konqueror
3 /usr/bin/firefox-2.0
Premi invio per mantenere il default[*], o inserisci il numero da selezionare:
Esempio 4: opzione
--auto
update-alternatives --auto x-www-browser
Esempio 5: opzione
--install
update-alternatives
--install /usr/bin/x-www-browser x-www-browser /usr/bin/opera 40 --slave
/usr/share/man/man1/x-www-browser.1.gz x-www-browser.1.gz
/usr/share/man/man1/opera.1.gz
Analizziamo il comando pezzo per pezzo:
l’opzione
--install
serve per aggiungere un’applicazione ad un gruppo o, se il gruppo non esiste ancora, per crearlo.La parte del master link include i seguenti frammenti:
/usr/bin/x-www-browser
: è il file che rappresenta l’applicazione generica (genname)x-www-browser
: è il nome del gruppo, ovvero del symlink nella directory/etc/alternatives
/usr/bin/opera
: è il file che rappresenta l’applicazione da associare al gruppo40
: è la priorità da assegnare a questa applicazione
--slave
, include:/usr/share/man/man1/x-www-browser.1.gz
: il nome del file che rappresenta lo slave link (ovvero il genname dello slave)x-www-browser.1.gz
: il nome dello slave/usr/share/man/man1/opera.1.gz
: il file da associare a questo slave link
--remove
e --remove-all
sono banali, per cui vi invito a leggere la man-page del comando update-alternatives
, in cui troverete ulteriori dettagli.Capita che, dopo l'installazione o rimozione o aggiornamento del software, le alternatives si riconfigurino, sovrascrivendo la precedente configurazione.
Gli amanti del terminale possono usufruire di questo comando:
# update-alternatives --config [alternativa]Chi invece non ha molta dimestichezza con la riga di comando può ricorrere a due software grafici: galternatives oppure kalternatives, rispettivamente per Gnome e per KDE.
Installazione.
Per installare, è sufficiente dare uno dei due comandi, in base a quale dei due programmi si vuole installare:
# apt-get install galternatives
# apt-get install kalternatives
Ora è possibile amministrare graficamente le alternatives, senza scervellarsi col terminale.
Se ti è piaciuto l'articolo , iscriviti al feed
cliccando sull'immagine sottostante per tenerti sempre aggiornato sui
nuovi contenuti del blog:
Nessun commento:
Posta un commento