私はフロントエンドのfoo-gtkを使ってfooアプリケーションを書いています。
基本/システム全体の構成ファイルをインストールしたいと思います。この設定ファイルは設定の下にあり、
/etc/foo.conf
おそらく/etc/foo-gtk.conf
デフォルトのGUI設定に使用されます。
ユーザー固有のプロファイルがより混乱しています。
他のアプリケーションの構成ファイルは次のとおりです。
~/.foo.conf
~/.foo/config
~/.config/foo/config
1つ目は、ユーザーがひどく編集する必要がある場合にすばやく見つけることができるという利点がありますが、次の2つはほぼ似ているようです。
正式な仕様が見つからなかったため、アプリケーションの基本、システム全体、およびユーザー固有のプロファイルを保存/検索するためのベストプラクティスは何ですか?
答え1
最新のベストプラクティスは、アプリケーションに複数のユーザー固有のファイルが含まれていない限り、非表示のユーザーディレクトリにユーザープロファイルを含めないことです。したがって、ユーザーリソースファイルはfooとしてのみ使用~/.fooconfig
(または)する必要があります。~/.foorc
fooに複数のユーザーファイルがある場合は、~/.foo/config
構成ファイルと他のファイルの両方が〜/.foo/の下にあります。
答え2
約 10 年前に定義され、最近採用されたこの標準は、他の場所を使用してユーザー構成、キャッシュおよびデータを~/.config/
保存する標準方法です。~/.cache/
~/.local/share/
これは次のように定義されます。環境$XDG_CONFIG_HOME
、$XDG_CACHE_HOME
などの$XDG_DATA_HOME
変数ほとんどの環境ではまだ事前定義されていることはほとんどありませんが、存在するかどうかをテストし、まだプリセットされていない場合は公式のデフォルト値を直接設定してから、これらの特定の変数を自分の変数に次のように使用することをお勧めします。構成場所。この方法では、潜在的なユーザー、開発者、またはソースコードの研究者に、構成、キャッシュ、およびデータにこれらの標準的な場所を使用していることを伝えます。そうしないと、プログラミング言語によっては検索が機能する場合があります~/.config/
。$HOME/.config/
と検索メカニズム)。
if [ "x$XDG_CONFIG_HOME" = "x" ] ; then
XDG_CONFIG_HOME="$HOME/.config"
fi
CONFIG_FILE="$XDG_CONFIG_HOME/myprog/myprog.conf"
if [ "x$XDG_CACHE_HOME" = "x" ] ; then
XDG_CACHE_HOME="$HOME/.cache"
fi
CACHE_DIR="$XDG_CACHE_HOME/myprog/my-prog-cache-v1"
引用: