web-dev-qa-db-ja.com

他のアプリケーションが〜/ .appnameを使用しているのに、なぜ一部のアプリケーションは設定データに〜/ .config / appnameを使用するのですか?

一部のアプリケーションは構成ファイルを~/.config/appnameに配置しているのに、他のアプリケーションは~/.appname(従来の方法、AFAIK)を使用していることに気付きました。この区別の意味は何ですか?私のアプリケーションを検討するのに何が良いでしょうか?

更新:(XUbuntu 11.10のデフォルト)$ XDG_CONFIG_HOMEが~/に設定されており、システム内のほとんどのアプリケーション(Mozilla Firefox、Adobe Flash Player、Midnight Commander、Opera、Wineなど)は、この。しかし、代わりに~/.config/を使用する多くのアプリケーション(Compiz、Deadbeef、VLC、Qt Creator、Google Chrome、XFCEなど)があります。もう1つの疑わしいことは、~/.config/のディレクトリ自体が非表示になっていない(名前にドットがない)ことです。アプリケーションの設定ディレクトリは、場所($ XDG_CONFIG_HOME値)に依存せずに、独自の名前を持っていると想定されていませんか?

37
Ivan

あなたの問題のいくつかに対処する、jasonwryanの素晴らしい答えの補足:

  • _$XDG_CONFIG_HOME_はnot _~/_に設定されています。単に設定されていません。したがって、アプリケーションXDG仕様に従うデフォルトの_~/.config_を使用します

  • _/.config_内のディレクトリは非表示にする必要がないため、非表示にはなりません。 _~/.config_ dirを使用する重要な点は、ユーザーの_$HOME_をn-clutterにすることです。それらはすでに別の隠されたディレクトリにあるので、そこに隠される必要はありません。

  • 仕様に準拠していないソフトウェア(残念ながらまだ大多数)は、ユーザーの_~/.myapp_を乱雑にしないために、設定に隠しディレクトリ(_$HOME_など)をattemptとして使用します。それは(ちょっと)動作しますが、たとえば、設定と "ビッグデータ"(画像、ビデオ、音楽など)を別々にバックアップしようとする場合、それはまだ悪いアプローチです。ユーザーのデータを混ぜずに、すべての設定を1か所にまとめることは、はるかに優れたアプローチです。

  • "_XDG_CONFIG_HOME_が指す場所に関係なく定数名を持っている"については、すでにそうです:appnamewithout先頭のドットです。注意:_$HOME/.appname_を使用しているものは、ignore XDG仕様のものです。彼らはハードコードされたパスを使用します。

  • アプリケーションについては、XDG標準を使用してください!私はあなたにお願いします、そしてあなたのユーザーは彼らの$ HOMEをこれ以上乱雑にしないでくれてありがとうと言うでしょう。

44
MestreLion

より物議を醸す答えは:

  • ~/.configはXDG標準のデフォルトです。これは、FreeDesktop.org標準に準拠しているアプリケーションにのみ適用されます($XDG_CONFIG_HOME変数を使用することによっても)。
  • ~/.appnameはfreedesktop標準の前に存在しました
  • 誰もがfreedesktop標準を気に入っているわけではありません
  • 「乱雑にする」$HOMEは私の意見では問題ではありません。
7
David Gardner