Beispiel: In Ubuntu gibt es im Ausgangsverzeichnis immer ein .local
Verzeichnis, das .profile
die folgende Zeile enthält:
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
$HOME/.local/bin
ist standardmäßig nicht vorhanden, aber wenn es erstellt wurde, ist es bereits in $PATH
und ausführbare Dateien in können gefunden werden.
Dies wird in der XDG-Verzeichnisspezifikation nicht genau erwähnt , scheint jedoch davon abgeleitet zu sein.
Ich frage mich, ob dies so häufig vorkommt, dass normalerweise angenommen werden kann, dass es in den gängigsten Endbenutzer-Distributionen vorhanden ist. Ist es zum Beispiel in allen Debian-Derivaten oder zumindest in den Ubuntu-Derivaten? Wie wäre es mit dem Red Hat / Fedora / CentOS-Ökosystem? Und so weiter mit Arch, Suse und dem, was die Leute heutzutage benutzen.
Um es noch deutlicher zu machen: Dies ist nur für $HOME/.local/bin
, nicht für $HOME/bin
.
Wenn Sie neugierig sind, können Sie BSDs, OS / X und andere hinzufügen, wenn Sie die Informationen haben. :)
quelle
/etc/skel/.profile
bis einschließlich 14.04, ob ein Benutzer vorhanden ist,$HOME/bin
und fügt ihn dem hinzu,PATH
wenn er vorhanden ist. Im Gegensatz dazu scheint 16.04 beides$HOME/bin
und$HOME/.local/bin
bedingungslos hinzuzufügen . Ich kann mich nicht erinnern, dass Ubuntus früher etwas hinzugefügt hat$HOME/.local/bin
- aber ich sehe nichts Relevantes imbash
Paket Changelog (das angeblich gehört/etc/skel/.profile
).Antworten:
Die
~/.local
Verzeichnisse sind Teil der systemd-Dateihierarchiespezifikation und eine Erweiterung der xdg-BenutzerverzeichnisspezifikationEs kann verwirrend sein, da von Debian abgeleitete Pakete
bash
den~/.local
Pfad verloren haben, als sie auf Bash 4.3 umgestiegen sind und es in Bash 4.2 hatten.Es ist ein Fehler , und ein Patch sitzt jetzt schon eine Weile im Debian-System.
Dieser Fehler ist der Grund, warum Ubuntu 16.04 ~ / .local im Pfad hatte und Ubuntu 17.04 nicht.
Wenn Sie
systemd-path
als Benutzer ausgeführt werden und sehen, dass er im Pfad enthalten sein soll.Theoretisch lautet die Antwort auf Ihre Frage Jede Distribution, die systemd verwendet oder die Kompatibilität mit systemd aufrechterhalten möchte.
Weitere Informationen finden Sie in
file-hierarchy(7)
quelle
Auf RPM-basierten Distributionen sieht die Situation anscheinend so aus
sudo su -l johndoe
aber es wird nicht funktionieren, wenn Sie den-l
Schalter nicht verwenden .Wenn Sie diese Fehler sortiert sehen möchten, vergessen Sie bitte nicht, diese abzustimmen / zu kommentieren, da dies die Wichtigkeit des Problems hervorheben würde.
quelle