Su Linux puoi usare update-alternative
per cambiare la versione di un comando.
Quale comando in OS X (10.8) cambierà l'alternativa del comando corrente?
Capisco la motivazione alla base della tua domanda. update-alternatives
risolve elegantemente il problema della gestione di diverse versioni installate di un programma (ad esempio Java) o porte diverse di un programma ( vim
rispetto a elvis
rispetto a vile
) facendo di uno di essi quello predefinito.
update-alternatives
, presente in molte distribuzioni Linux, crea e gestisce un set di collegamenti simbolici da /bin
, /usr/bin
(e simili) a /etc/alternatives
, e da lì al percorso in cui è installato il programma.
Ad esempio, in openSUSE java
è collegato simbolicamente a /etc/alternatives/java
, che è collegato simbolicamente a un percorso "privato" in cui java
risiede:
/usr/bin/java -> /etc/alternatives/java
/etc/alternatives/java -> /usr/lib64/jvm/java-1.5.0-sun-1.5.0/jre/bin/java
Sfortunatamente, e sebbene alcuni pensino che sarebbe necessario, almeno per MacPort, non esiste nulla di simile in OS X . Ho risolto personalmente la mancanza di update-alternatives
con alias nel mio .bashrc
:
alias ls='/usr/local/bin/ls'
o semplicemente cambiando $PATH
:
PATH=/usr/local/bin:$PATH
Se non riesci a risolverlo in questo modo e stai valutando il fatto di portarlo su OS X tieni presente che sebbene la prima incarnazione di update-alternatives
sia stata uno script Perl, era riscritto in C per Debian, e alcune altre distro lo hanno adottato successivamente (ad esempio openSUSE 12.1).
openSUSE 11.4 fornisce la versione Perl come pacchetto RPM . Se stai cercando la versione C, prova qualsiasi versione recente di Ubuntu o Debian, oppure openSUSE 12.1 o successiva.
Macports supporta questa funzionalità tramite 'port select' per molti pacchetti di lingue, mysql e altri. (Sto usando la versione MacPorts 2.4.2.)
Leggi altre domande sui tag command-line configuration