哪些发行版在 $PATH 中有 $HOME/.local/bin?

Sto*_*ffe 82 path xdg distributions

示例:在 Ubuntu 中,.local主目录中始终有一个目录,并.profile包含以下行:

PATH="$HOME/bin:$HOME/.local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

$HOME/.local/bin默认情况下不存在,但如果创建它,它已经存在$PATH并且可以找到其中的可执行文件。

这在XDG 目录规范中没有完全提到,但似乎是从它派生出来的。

我想知道这是否足够普遍,以至于通常可以假设它存在于最常见的最终用户发行版中。例如,是在所有 Debian 衍生产品中,还是至少在 Ubuntu 衍生产品中?Red Hat/Fedora/CentOS 生态系统如何?等等 Arch、Suse 以及人们现在使用的东西。

更明确地说,这仅适用于$HOME/.local/bin而不 适用于$HOME/bin

出于好奇,如果您有相关信息,请随意包括 BSD、OS/X 和其他。:)

gda*_*hlm 80

这些~/.local目录是systemd 文件层次结构规范的一部分,是xdg 用户目录规范的扩展

这可能会令人困惑,因为 Debian 派生软件包在重新定位到 bash 4.3 时bash丢失了~/.local路径,而在 bash 4.2 中确实有它。

这是一个错误,一个补丁已经存在于 Debian 系统中一段时间​​了。

这个错误是 Ubuntu 16.04 在路径中有 ~/.local 而 Ubuntu 17.04 没有的原因。

如果您systemd-path以用户身份运行,您将看到它打算在路径中。

$ systemd-path user-binaries
/home/foo/.local/bin
Run Code Online (Sandbox Code Playgroud)

理论上,您查询的答案是任何使用 systemd 或希望保持与 systemd 兼容的发行版。

有更多信息在 file-hierarchy(7)

  • 我怀疑这是在 systemd 之前,约定永远是 ~/bin。 (2认同)
  • 适用于 Ubuntu 18.04。 (2认同)

sor*_*rin 8

在基于 RPM 的发行版上,情况似乎如下所示:

  • RHEL 7 -当您使用登录 shell 时,会将其添加到末尾。PATH它可以工作sudo su -l johndoe,但如果您不使用该开关,它将不起作用-l
  • CentOS 7 - 请参阅 RHEL,它始终遵循 RHEL。
  • Fedora 28(可能也更旧) - 与 RHEL/CentOS 相同,添加到 PATH 的末尾

至于其他发行版:

如果您想查看这些错误的排序,请不要忘记对这些错误进行投票/评论,因为这会突出问题的重要性。