Які дистрибуції мають $ HOME / .local / bin в $ PATH?


42

Приклад: в Ubuntu завжди є .localдомашній каталог у домашньому каталозі і .profileвключає цей рядок:

PATH="$HOME/bin:$HOME/.local/bin:$PATH"

$HOME/.local/binне існує за замовчуванням, але якщо він створений, він вже є, $PATHі виконувані файли всередині можна знайти.

Це не точно зазначено в специфікації каталогу XDG, але, здається, випливає з нього.

Цікаво, що це досить поширене, що зазвичай можна вважати, що воно існує в найбільш поширених дистрибутивах для кінцевих користувачів. Це, наприклад, у всіх похідних Debian або, принаймні, у Ubuntu? Як щодо екосистеми Red Hat / Fedora / CentOS? І так далі з Arch, Suse та з чим люди зараз користуються.

Щоб бути додатково зрозумілим, це лише для $HOME/.local/bin, ні $HOME/bin .

З цікавості сміливо включайте BSD, OS / X та інші, якщо у вас є інформація. :)


Я бачив це запитання раніше, але не стикався з системою, яка це робить. Щоб зробити питання більш актуальним, а не думкою , ви можете усунути міркування "досить поширеного" та просто запитати, звідки воно взяте, та приклади систем, які роблять це для нових облікових записів користувачів. Наприклад, "Останні" Fedora робить це.
Томас Дікі

Я можу перетворити слово, щоб просто "хто" це зробити, звичайно. Сформулювати питання - це трохи боротьба, оскільки те, що я хочу, не є жодною однозначною відповіддю, але, головним чином, відчуваю, якщо це можна обґрунтовано припустити у більшості випадків 2016.
Стофф

1
Я не маю цього на своєму шляху, і я точно не буду його туди ставити. (Debian, але xdm / fvwm, ні Gnome, ні KDE як робочий стіл).
dirkt

1
Я перевірив систему, яка може мати її. Жоден з моїх облікових записів розробки не використовує bash , і пакувачі просто недостатньо ретельно помічають, якщо я не проведу спеціальну перевірку (див. Newpath ).
Томас Дікі

1
IIRC Ubuntu /etc/skel/.profileдо і включає щонайменше 14,04 тестів на присутність користувача $HOME/binта додає його до, PATHякщо він існує; на відміну від цього, 16.04, здається, додає $HOME/binі $HOME/.local/binбеззастережно. Я не пригадую раніше додавання Ubuntus $HOME/.local/binвзагалі - але я не бачу нічого релевантного в журналі bashзмін змін (який нібито є власником /etc/skel/.profile).
steeldriver

Відповіді:


41

У ~/.localкаталогах входять в Systemd специфікації файлової ієрархії та є розширенням специфікації XDG призначених для користувача DIRS

Це може бути заплутаним, оскільки пакети, отримані в Debian, для bashвтраченого ~/.localшляху, коли вони перезавантажувались до bash 4.3, вони мали це в bash 4.2.

Це помилка , і патч вже трохи сидить у системі Debian.

Ця помилка є причиною того, що Ubuntu 16.04 мав ~ / .local у шляху, а Ubuntu 17.04 - ні.

Якщо ви запускаєтесь systemd-pathяк користувач і побачите, що він призначений бути на шляху.

$ systemd-path user-binaries
/home/foo/.local/bin

Теоретично відповідь на ваш запит - будь-який дистрибутив, який використовує systemd або хоче підтримувати сумісність із systemd.

Більше інформації в file-hierarchy(7)


1
Дякую! З чистої цікавості, чи це було також під час початкових часів? Запитую лише тому, що моя пам’ять каже, що вона була там раніше, ніж систематизована, але це однаково ймовірно, що я просто неправильно її пам’ятаю!
Stoffe

Я б сумнівався, що це було раніше систематизовано, назавжди конвенція була ~ / bin.
pfalcon

Аррх, ця помилка, здається, також приїхала в 16.04 люб'язно підтримуваним басом 4.3
Адріан

Працює в Ubuntu 18.04.
Даніель

1

На дистрибутиві, що базується на оборотах, ситуація виглядає приблизно так

  • RHEL 7 - додає його до кінця PATH, див. Https://bugzilla.redhat.com/show_bug.cgi?id=1583227, коли використовується оболонка для входу. Він буде працювати, sudo su -l johndoeале він не працюватиме, якщо ви не використовуєте -lвимикач.
  • CentOS 7 - див. RHEL, він завжди слід за RHEL.
  • Fedora 28 (можливо, також старший) - те саме, що RHEL / CentOS, додані в кінці PATH

Якщо ви хочете, щоб ці помилки були відсортовані, будь ласка, не забудьте проголосувати / прокоментувати їх, оскільки це підкреслить важливість проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.