/usr/bin
è dove vanno i binari forniti dal sistema operativo. /usr/local/bin
è dove vanno i binari forniti dall'utente. Quando si digita il nome di un comando sulla riga di comando, la shell cerca tale comando nei percorsi contenuti nella variabile di ambiente $PATH
nell'ordine. Un modello comune è quello di avere /usr/local/bin
precedere /usr/bin
in $PATH
. Questo ti permette di installare versioni alternative dei binari e farli "sovrascrivere" con garbo i binari forniti dal sistema operativo. E gli aggiornamenti del sistema operativo non comprimono i pacchetti installati dall'utente. Questo schema è particolarmente utilizzato in OSX dal popolare strumento di gestione dei pacchetti Homebrew.
Ad esempio, al momento della stesura di questo documento, OSX El Capitan fornisce git versione 2.5.4 (in /usr/bin
). Se si desidera una versione più recente, è possibile utilizzare Homebrew per installare git versione 2.7.0 (in /usr/local/bin
). Poiché /usr/local/bin
arriva prima dello /usr/bin
nella variabile di ambiente $PATH
, quando si esegue il comando git
in una shell, verrà utilizzata la versione Homebrew più recente.
su fresco nuovo Mac con OSX El Capitan (mi capita di avere uno), il file /etc/paths
contiene quanto segue:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
che produce la seguente variabile $PATH
ambiente:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
che è compatibile con homebrew. Raccomando di attenersi a questo predefinito OSX. Se vuoi davvero includere /usr/local/sbin
(elencato nella tua domanda sopra), lo metterei prima dello /usr/sbin
per ragioni simili a sopra. Per quanto riguarda /opt/local/bin
e /opt/local/sbin
, non ho trovato personalmente la necessità di aggiungerli al percorso ma sembra che potrebbero andare in un punto simile come gli analoghi /usr/local
, dal momento che /opt
contiene tradizionalmente i binari installati dall'utente.
Nota: la stessa spiegazione si applica a /usr/lib
rispetto a /usr/local/lib
.
Vedere anche [questa domanda correlata] (http://unix.stackexchange.com/questions/8656/usr-bin-vs-usr-local-bin-on-linux). – e0k
Grazie per l'aiuto. Anche quel post è stato molto utile. – Bruce