ソフトウェアがローカルデータを $HOME/ に保存することが多いのはなぜですか。?

ソフトウェアがローカルデータを $HOME/ に保存することが多いのはなぜですか。?

私が通常インストールするほとんどのアプリケーション (opam、cargo、vscode、julia など) は、ホーム フォルダーにローカル ストレージを保持します。この設定には理由があるのでしょうか。あるいは、代替案に欠点はあるのでしょうか。

たとえば、このようなファイルは /var または ~/.local/share に配置することが推奨される場合もありますが、これらのフォルダーを「クロスディストリビューション」アプリケーションで使用すると問題や煩わしさが生じる可能性があります。

そのような問題が発生する可能性があることをご存知ですか?

[ここで私が尋ねた3つの質問のどれかに対する答えでも満足できるでしょう]

答え1

ロブ・パイクのGoogle+の投稿では、 ショートカットのレッスン、次のような説明がなされている。

昔、Unix ファイル システムの設計が進められていたとき、ナビゲーションを容易にするために、エントリ...が登場しました。確かではありませんが、..バージョン 2 の書き換え時に、ファイル システムが階層化されて (初期の構造は非常に異なっていました)、追加されたと思います。lsただし、 と入力すると、これらのファイルが表示されるため、Ken か Dennis がプログラムに簡単なテストを追加しました。当時はアセンブラで書かれていましたが、問題のコードは次のようなものと同等でした。

    if (name[0] == '.') continue;

この声明は本来あるべきものより少し短かった。

    if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

でも、簡単でした。

二つの結果が生まれました。

まず、悪い前例が作られました。他の多くの怠惰なプログラマーが同じ単純化を行ってバグを導入しました。ピリオドで始まる実際のファイルは、カウントされるべきときにスキップされることがよくあります。

2 番目、そしてさらに悪いことに、「隠し」または「ドット」ファイルというアイデアが生まれました。その結果、怠惰なプログラマーが全員のホーム ディレクトリにファイルをドロップするようになりました。私がこの文章を入力するために使用しているマシンにはそれほど多くのものがインストールされていませんが、ホーム ディレクトリには約 100 個のドット ファイルがあり、そのほとんどが何なのか、まだ必要かどうかさえわかりません。ホーム ディレクトリを通過するファイル名の評価はすべて、この蓄積されたスラッジによって遅くなります。

隠しファイルという概念は、意図しない結果だったと確信しています。それは間違いなく間違いでした。

(ドット ファイルが目的を果たすことに異論を唱える人々に対して、私はそれに異論を唱えませんが、目的を果たすのはファイルであり、ファイル名の規則ではないと反論します。ドット ファイルがなかった Plan 9 では、$HOME/cfg や $HOME/lib にドット ファイルを配置していましたが、これは簡単に実行できます。教訓は得られます。)

私が理解しているのは次のことです:

これらの「ドット ファイル」が見えなくなると、他のプログラマーが参入し、貴重な構成データを保存する場所は、 および ファイルと並んでドット ファイルであると決定しました...当初はファイル階層があまり進化していなかったため、ファイルはすべて $HOME ディレクトリに保存され、すぐにこれが暗黙の慣習となり、創設者の足跡をたどって誰もが従うようになりました。

これにより、次のような怪物が生まれました。

画像

参照 :

Linux の歴史: ドット ファイルが隠しファイルになった経緯

関連情報