~/.config や ~/.cache などのディレクトリに関する公式ドキュメントはありますか?

~/.config や ~/.cache などのディレクトリに関する公式ドキュメントはありますか?

これらのディレクトリが多くのアプリケーションで使用されているのを見て、自分のアプリケーションでも使用することを検討しています。これが公式にサポートされているフォルダーであり、ユーザーごとのキャッシュ/構成のための一時的な場所ではないことをどのように確認すればよいでしょうか?

Ubuntu の公式情報を探していましたが、見つかりません。おそらく、他の誰かがこのドキュメントの適切な検索用語や場所を知っているのでしょう。これは、明示されていない標準的な場所として受け入れるべきでしょうか?

答え1

はい、標準はあります。これらはfreedesktop.orgによって指定されており、XDG ベースディレクトリ仕様

構成仕様は基本的な要件のみを概説していますが、詳細はベース ディレクトリ仕様に記載されています。~/.configおよび~/.cacheディレクトリは、特に設定しない限りデフォルトです。

設定ファイルを検索する基準となる、優先順位が付けられた一連のベース ディレクトリがあります。このディレクトリ セットは、環境変数 $XDG_CONFIG_DIRS によって定義されます。

ユーザー固有の非必須 (キャッシュされた) データを書き込むための相対的なベース ディレクトリが 1 つあります。このディレクトリは、環境変数 $XDG_CACHE_HOME によって定義されます。

...

$XDG_CONFIG_HOME は、ユーザー固有の設定ファイルを保存するベース ディレクトリを定義します。$XDG_CONFIG_HOME が設定されていないか空の場合は、$HOME/.config に等しいデフォルトを使用する必要があります。

...

$XDG_CACHE_HOME は、ユーザー固有の非必須データ ファイルを保存するベース ディレクトリを定義します。$XDG_CACHE_HOME が設定されていないか空の場合は、$HOME/.cache に等しいデフォルトを使用する必要があります。

これらの仕様では、主にデータの保存場所、使用する環境変数、方法(デスクトップに依存しない、効率的など)が規定されていますが、ほとんどのデスクトップでは「方法」の実装は自由です。GNOMEベースのデスクトップでは、gsettingsKDEユーザーが同じ方法を使用できる場所が使用されます。kwriteconfigしかし、どちらも~/.configプロセスの中でディレクトリに依存することになる。


質問の要点

これが公式にサポートされているフォルダーであり、ユーザーごとのキャッシュ/構成のための単なる一時的な場所ではないことをどうやって確認すればよいでしょうか?

これらのディレクトリは公式ドキュメントに記載されており、ファイルシステム階層標準にも記載されています。これは公式ドキュメントなので、フォルダーは公式にサポートされています。

これは、明示されていない標準的な練習場所として受け入れるべきものなのでしょうか?

作成するアプリによって異なります。アプリはユーザーごとに設定可能か、システム全体で一貫して動作するか?FHSによると、システム全体のものには、/etcまたは/usr/localただし、XDGディレクトリはユーザー固有の設定に使用する必要があります~/.cache~/.configもちろん、アプリケーションがユーザー固有の設定に依存しない場合は、/var/キャッシュユーザーごとのディレクトリの代わりに使用できます。もちろん、設定とキャッシュを保存するための単一の~/.appname.confファイル、~/.appname.db または~/.appname/ディレクトリを常に持つこともできますが、これは非標準です。「悪い」のではなく、単に非標準です。

参照

関連情報