Soluzione 1:
(Nota:~
si traduce come /home/user
in questo post)
Personalmente, ho inserito tutti i miei script di sistema personalizzati in /usr/local/bin
e tutti i miei script bash personali in ~/bin
. Pochissimi programmi che installo si collocano in /usr/local/bin
directory quindi non è molto disordinata ed era già nel $PATH
variabile sulla maggior parte delle mie macchine.
Per aggiungere /usr/local/bin
al percorso di sistema (se non è già presente) aggiungilo a /etc/profile
:
PATH=$PATH:/usr/local/bin
export PATH
Per aggiungere ~/bin
al percorso dell'utente aggiungi questo a ~/.bash_profile
:
PATH=$PATH:$HOME/bin
export PATH
A volte il .bash_profile
predefinito avrà un'istruzione if che aggiunge automaticamente ~/bin
a $PATH
se esiste, quindi crea il ~/bin
e apri un nuovo terminale per vedere se il tuo lo fa già.
Soluzione 2:
/usr/local/ è davvero il posto giusto, mentre /opt è proprio per le applicazioni di terze parti; "/opt è riservato all'installazione di pacchetti software applicativi aggiuntivi." Questo fa parte del Filesystem Hierarchy Standard.
Vedi http://www.pathname.com/fhs/pub/fhs-2.3.html per una discussione su /opt.
Per /usr/local/, è per "uso da parte dell'amministratore di sistema". Basta non dimenticare le cose lì dentro -- documentalo.
Soluzione 3:
Storicamente useresti qualcosa come /opt. Qualsiasi cosa va bene fintanto che viene aggiornata in $PATH per gli utenti che dovrebbero averlo (quindi qualsiasi cosa in /home è una cattiva idea).
Soluzione 4:
/usr/share/clojure
sembra un posto comune dove mettere i binari e le librerie di clojure — perché non lo so, sembra naturale per /usr/local/share/clojure
— quindi creando un site
la sottodirectory sotto this per questi script bash sembra a posto.
Il punto generale è che ha più senso organizzare gli script per funzione, non avere tutti gli script bash nello stesso posto.
Soluzione 5:
/usr/local
, credo ci sia una certa confusione sul significato di "locale".
A quanto ho capito, "locale" non significa "originato su/dalla macchina locale" ma, più semplicemente, "specifico della macchina locale", che può o meno avere origine su/dalla macchina locale.