web-dev-qa-db-ja.com

$ PATHに$ HOME / .local / binがあるディストリビューションはどれですか?

例: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などを自由に含めてください。 :)

56
Stoffe

_~/.local_ディレクトリは systemdファイル階層仕様 の一部であり、 xdg user-dirs spec の拡張です。

bashのDebian派生パッケージは、bash 4.3にリベースしたときに_~/.local_パスを失ったため、混乱する可能性があります。

これは bug であり、パッチはDebianシステムに少しの間置かれています。

この バグ は、Ubuntu 16.04にパスに〜/ .localがあり、Ubuntu 17.04になかった理由です。

_systemd-path_をユーザーとして実行すると、パスに含まれることが意図されていることがわかります。

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

理論的には、クエリに対する答えはsystemdを使用するか、systemdとの互換性を維持したいディストリビューションです

file-hierarchy(7)に詳細があります

56
gdahlm

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の最後に追加

これらのバグを並べ替えて表示したい場合は、問題の重要性を強調するため、それらに投票/コメントすることを忘れないでください。

2
sorin