Wie bereits erwähnt , /usr/localist es als Präfix für Software gedacht, die vom Systemadministrator installiert wurde, während /usres für Software verwendet werden sollte, die aus den Paketen der Distribution installiert wurde.
Die Idee dahinter ist, Konflikte mit verteilter Software (wie rpmund debPaketen) zu vermeiden und dem Administrator die volle Kontrolle über das "lokale" Präfix zu geben.
Dies bedeutet, dass ein Administrator angepasste kompilierte Software installieren kann, während er weiterhin eine Distribution wie Debian verwendet.
In / oder / usr abgelegte Software kann durch System-Upgrades überschrieben werden (wir empfehlen jedoch, dass Distributionen unter diesen Umständen keine Daten in / etc überschreiben). Aus diesem Grund darf lokale Software nicht ohne Grund außerhalb von / usr / local platziert werden.
Uther empfiehlt, bei $HOMEder Installation benutzerspezifischer Software das Präfix zu verwenden, da dies sicherstellt, dass Sie über Schreibrechte verfügen. Persönlich bin ich der Meinung $HOME/.local, eine elegantere Lösung zu sein, da hierdurch vermieden wird, dass Ihr (hoffentlich) schönes und aufgeräumtes Home-Verzeichnis überfüllt wird!
$HOME/.local/sharewird bereits in der XDG-Basisverzeichnisspezifikation von freedesktop.org verwendet , daher ist es nicht sehr schwierig, sich vorzustellen, $HOME/.local/binwie Sie $PATHein hinzufügen und ein $HOME/.local/libusw. erstellen, während Sie gerade dabei sind.
Wenn Sie nicht möchten, dass Ihr Präfix ein verstecktes Verzeichnis ist, können Sie auch leicht einen symbolischen Link dazu erstellen, z. B .:
ln -s .local ~/local
Randnotiz
Es ist erwähnenswert, dass .config(nicht .local/etc) der Standardwert $XDG_CONFIG_HOMEfür benutzerspezifische Konfigurationsdateien ist. Ich sollte auch darauf hinweisen, dass leider ein großer Teil der Software die XDG ignoriert und Konfigurationsdateien erstellt, wo immer sie möchten (normalerweise im Stammverzeichnis von $HOME). Beachten Sie auch, dass $XDG_CONFIG_HOMEdiese Option möglicherweise deaktiviert ist, wenn die Standardeinstellung $HOME/.configgewünscht wird.
Seltsamerweise gibt es kein Verzeichnis, das für die Standardkonfigurationsdateien einer Distribution reserviert ist. Es gibt also keine Möglichkeit, festzustellen, ob eine Datei in /etcder Distribution bereitgestellt oder vom Systemadministrator bearbeitet wurde.