Wie bereits erwähnt , /usr/local
ist es als Präfix für Software gedacht, die vom Systemadministrator installiert wurde, während /usr
es für Software verwendet werden sollte, die aus den Paketen der Distribution installiert wurde.
Die Idee dahinter ist, Konflikte mit verteilter Software (wie rpm
und deb
Paketen) 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 $HOME
der 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/share
wird bereits in der XDG-Basisverzeichnisspezifikation von freedesktop.org verwendet , daher ist es nicht sehr schwierig, sich vorzustellen, $HOME/.local/bin
wie Sie $PATH
ein hinzufügen und ein $HOME/.local/lib
usw. 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_HOME
fü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_HOME
diese Option möglicherweise deaktiviert ist, wenn die Standardeinstellung $HOME/.config
gewü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 /etc
der Distribution bereitgestellt oder vom Systemadministrator bearbeitet wurde.