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


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年、ほとんどの場合に想定されることができるかどうかについて、ほとんどの感触
Stoffe

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無条件に。私は以前のUbuntuが追加$HOME/.local/binしたことをまったく思い出しませんが、bashパッケージの変更ログ(おそらく所有している/etc/skel/.profile)に関連するものは見当たりません。
スチールドライバー

回答:


41

~/.localディレクトリはの一部であるsystemdにファイル階層仕様の拡張であるのxdgユーザー-dirsのスペック

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

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

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


1
ありがとう!純粋な好奇心から、これはスタートアップの時期にも当てはまりましたか?私の記憶はsystemdよりも早くそこにあったと言っているので尋ねるだけですが、それはおそらく私がそれをただ覚えていない可能性があります!
ストッフ

systemdの前だったのではないかと思います。永遠に慣習は〜/ binでした。
pfalcon

また、このバグはバックポートされたbash 4.3の好意により16.04に到着したようです。
エイドリアン

Ubuntu 18.04で動作します。
ダニエル

1

RPMベースのディストリビューションでは、状況は次のように見えます

  • RHEL 7- ログインシェルを使用する場合、https://bugzilla.redhat.com/show_bug.cgi?id = 1583227を参照してPATHの最後に追加します。動作しsudo su -l johndoeますが、-lスイッチを使用しない場合は動作しません。
  • CentOS 7-RHELを参照してください。これは常にRHELに従います。
  • Fedora 28(おそらく古い)-RHEL / CentOSと同じ、PATHの最後に追加

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.