Przykład: w Ubuntu zawsze jest .local
katalog w katalogu domowym i .profile
zawiera ten wiersz:
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
$HOME/.local/bin
domyślnie nie istnieje, ale jeśli został utworzony, jest już w nim $PATH
i można znaleźć pliki wykonywalne.
Nie jest to dokładnie wspomniane w specyfikacji katalogu XDG, ale wydaje się, że pochodzi z niego.
Zastanawiam się, czy jest to na tyle powszechne, że można zwykle założyć, że istnieje ono w najpopularniejszych dystrybucjach użytkowników końcowych. Czy na przykład we wszystkich pochodnych Debianie, a przynajmniej w Ubuntu? Co powiesz na ekosystem Red Hat / Fedora / CentOS? I tak dalej z Arch, Suse i tym, czego ludzie używają obecnie.
Żeby było bardziej jasne, to tylko dla $HOME/.local/bin
, nie $HOME/bin
.
Z ciekawości zachęcamy do dołączenia BSD, OS / X i innych, jeśli masz takie informacje. :)
źródło
/etc/skel/.profile
do co najmniej 14.04 testów na obecność użytkownika$HOME/bin
i dodaje go,PATH
jeśli istnieje; przeciwnie, 16.04 wydaje się dodawać oba$HOME/bin
i$HOME/.local/bin
bezwarunkowo. Nie przypominam sobie wcześniej dodawania Ubuntusa$HOME/.local/bin
- ale nie widzę nic istotnego w dziennikubash
zmian pakietu (który rzekomo jest właścicielem/etc/skel/.profile
).Odpowiedzi:
Do
~/.local
katalogów jest częścią tej Systemd plików hierarchii specyfikacji i jest rozszerzeniem specyfikacji XDG user-dirsMoże to być mylące, ponieważ pakiety pochodzące z Debiana
bash
zgubiły~/.local
ścieżkę, gdy zmieniono wersję na wersję bash 4.3, którą mieli w wersji bash 4.2.Jest to błąd , a łatka już od jakiegoś czasu znajduje się w systemie Debian.
Ten błąd jest przyczyną, dla której Ubuntu 16.04 miał ~ / .local na ścieżce, a Ubuntu 17.04 nie.
Jeśli uruchomisz
systemd-path
jako użytkownik i zobaczysz, że ma on być na ścieżce.Teoretycznie odpowiedzią na twoje zapytanie jest Dowolna dystrybucja, która używa systemd lub chce zachować zgodność z systemd.
Jest więcej informacji w
file-hierarchy(7)
źródło
W przypadku dystrybucji opartych na RPM sytuacja wygląda tak
sudo su -l johndoe
ale nie będzie działać, jeśli nie użyjesz-l
przełącznika.Jeśli chcesz zobaczyć te błędy posortowane, nie zapomnij głosować / komentować je, ponieważ podkreśla to wagę problemu.
źródło