Come già detto , /usr/localè inteso come prefisso, essenzialmente, per il software installato dall'amministratore di sistema, mentre /usrdovrebbe essere usato per il software installato dai pacchetti della distribuzione.
L'idea alla base è quella di evitare scontri con software distribuito (come rpme debpacchetti) 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 $HOMEcome prefisso poiché ciò garantisce che si disponga delle autorizzazioni di scrittura. Personalmente, mi sembra $HOME/.localdi 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/bintuo $PATHe 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_HOMEutilizzato 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_HOMEpotrebbe essere disattivato se $HOME/.configsi 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 è /etcstato fornito dalla distribuzione o modificato dall'amministratore di sistema.