Какие дистрибутивы имеют $ HOME / .local / bin в $ PATH?


43

Пример: в Ubuntu всегда есть .localкаталог в домашнем каталоге и .profileвключает эту строку:

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

$HOME/.local/binпо умолчанию не существует, но если он создан, он уже находится внутри, $PATHи внутри него можно найти исполняемые файлы.

Это не совсем упомянуто в спецификации каталога XDG, но, похоже, является производным от него.

Что мне интересно, так это то, достаточно ли это распространено, что обычно предполагается, что оно существует в самых распространенных дистрибутивах для конечных пользователей. Это, например, во всех производных Debian или, по крайней мере, в Ubuntu? Как насчет экосистемы Red Hat / Fedora / CentOS? И так далее с Арком, Сьюз, и тем, что люди используют в настоящее время.

Чтобы быть более ясным, это только для $HOME/.local/bin, а не $HOME/bin .

Из любопытства не стесняйтесь включать BSD, OS / X и другие, если у вас есть информация. :)


Я видел этот вопрос, заданный ранее, но не сталкивался с системой, которая делает это. Чтобы сделать вопрос актуальным, а не мнением , вы можете исключить соображения «достаточно часто» и просто спросить, откуда он возник, и примеры систем, которые делают это для новых учетных записей пользователей. «Недавняя» Fedora делает это, например.
Томас Дики

Я могу перефразировать, чтобы просто спросить, «кто» это делает, конечно. Трудно сформулировать вопрос, так как то, что я ищу, - это не какой-то конкретный ответ, а скорее чувство того, можно ли это разумно предположить в большинстве случаев 2016 года.
Стоффе

1
У меня нет этого на моем пути, и я конечно не буду помещать это там. (Debian, но xdm / fvwm, ни Gnome, ни KDE в качестве рабочего стола).
Диркт

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

Ответы:


42

В ~/.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
Благодарность! Из чистого любопытства, это было также случай во времена выскочки? Только спрашиваю, потому что моя память говорит, что он был там раньше, чем systemd, но, скорее всего, я просто запомнил это!
Stoffe

Я сомневаюсь, что это было до systemd, вечно соглашение было ~ / bin.
pfalcon

Ага, эта ошибка, похоже, также появилась в 16.04 благодаря бэппорту bash 4.3
Адриан,

Работает в Ubuntu 18.04.
Даниэль

1

На RPM-дистрибутивах ситуация выглядит так

  • 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.