たとえば、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などを含めてもよい。 :)
答え1
この~/.local
ディレクトリは次の一部です。システムファイル階層仕様そして拡張ですxdg - ユーザー - ディレクトリ仕様。
Debian 派生パッケージは Bash 4.3 に基づいてリベースするとbash
パスが失われるため、混乱する可能性があります。~/.local
彼らはBash 4.2でそれを持っています。
これは抜け穴、パッチはしばらくDebianシステムにありました。
これ抜け穴~/.local
これがUbuntu 16.04がパスにあり、Ubuntu 17.04ではない理由です。
ユーザーとして実行すると、そのsystemd-path
パスにあるものが表示されます。
$ systemd-path user-binaries
/home/foo/.local/bin
理論的には、あなたの質問に対する答えは次のとおりです。systemd を使用するか、systemd との互換性を維持したいすべてのディストリビューション。
に詳細情報があります。file-hierarchy(7)
。
答え2
RPMベースのディストリビューションでは、状況は次のとおりです。
- RHEL 7 -本当の最後に追加してください
PATH
ログインシェルを使用している場合。機能しますsudo su -l johndoe
が、スイッチを使用しないと機能しません-l
。 - CentOS 7 - RHELを参照してください。常にRHELに従ってください。
- Fedora 28(おそらく古いバージョン) - RHEL / CentOSと同じで、PATHの末尾に追加されました
他のディストリビューションの場合:
- Arch Linux - 現在パスが設定されていません。
これらのバグのランキングを確認するには、そのバグに投票/コメントを付けて問題の重要性を強調することを忘れないでください。