Come già detto , /usr/local
è inteso come prefisso, essenzialmente, per il software installato dall'amministratore di sistema, mentre /usr
dovrebbe essere usato per il software installato dai pacchetti della distribuzione.
L'idea alla base è quella di evitare scontri con software distribuito (come rpm
e deb
pacchetti) e dare all'amministratore il pieno dominio sul prefisso "locale".
Ciò significa che un amministratore può installare software compilato personalizzato pur usando una distro come Debian.
Il software inserito in / o / usr può essere sovrascritto da aggiornamenti di sistema (sebbene in queste circostanze si consiglia di non sovrascrivere le distribuzioni in / etc). Per questo motivo, il software locale non deve essere posizionato al di fuori di / usr / local senza una buona ragione.
Quando si installa un software specifico dell'utente, uther suggerisce di utilizzarlo $HOME
come prefisso poiché ciò garantisce che si disponga delle autorizzazioni di scrittura. Personalmente, mi sembra $HOME/.local
di essere una soluzione più elegante, dal momento che evita di ingombrare la tua home directory (si spera) bella e ordinata!
$HOME/.local/share
è già usato nelle specifiche della directory di base XDG di freedesktop.org , quindi non ci vuole molto a immaginare di aggiungere un $HOME/.local/bin
tuo $PATH
e fare un $HOME/.local/lib
, ecc., mentre ci sei.
Se non vuoi davvero che il tuo prefisso sia una directory nascosta, puoi facilmente creare anche un link simbolico ad essa, ad esempio:
ln -s .local ~/local
Nota a margine
Vale la pena notare che .config
(no .local/etc
) è il valore predefinito $XDG_CONFIG_HOME
utilizzato per i file di configurazione specifici dell'utente. Devo anche sottolineare che, sfortunatamente, una grande parte del software ignora l'XDG e crea file di configurazione dove preferiscono (di solito nella radice di $HOME
). Si noti inoltre che $XDG_CONFIG_HOME
potrebbe essere disattivato se $HOME/.config
si desidera l'impostazione predefinita .
Stranamente, non esiste una directory riservata ai file di configurazione predefiniti di una distribuzione, quindi non c'è modo di sapere se un file è /etc
stato fornito dalla distribuzione o modificato dall'amministratore di sistema.