アプリのユーザー設定を保存する場所は?


12

アプリケーションがいくつかの設定を保存するようにしたい場合、それはアプリケーションが閉じられても持続しますが、どこに保存するべきですか?

私は複雑なことを話していません:2つのブール値と1つの文字列(将来はもっと複雑な設定を保存したいかもしれませんが)

私は、gconf、dconf、gsettingsなどがすべて言及されているのを聞いたことがあります。「優先」方法とは何ですか?できれば、Pythonで簡単に作成できるものをお勧めします。


回答:


9

gconf廃止予定なので、新しいプロジェクトでは使用しません。dconf通常、設定を保存するためのバックエンドです。アプリケーション開発者は通常、この設定を気にする必要はありません。

あなたが必要と思われるのはgsettings、設定が実際に保存される方法/場所を気にすることなく設定を保存/取得するための高レベルAPI(CのAPIドキュメント)です。gsettingsはの一部でgio、これはgnomeのコアパッケージの1つです(glibやなどgobject)。このブログ投稿では、Pythonでの使用方法を簡単に紹介しています。

依存関係が必要ない場合gio(たとえば、GNOMEアプリケーションを開発していない場合)、単純な構成ファイルを保存する場合は、freedesktop仕様に従って、の代わりに$HOME/.configディレクトリ(またはで定義されたディレクトリ)を使用することをお勧めします。$XDG_CONFIG_DIRS$HOME/.your_appname


あなたのブログ投稿へのリンクは死んでいるようです。別の可能性はありますか?
セス

残念ながら、@ Sethは私がリンクしていたブログ投稿はもう利用できないようです。リンクを別のブログ投稿へのリンクに置き換えました。これも良い出発点です。
マルセルスティムバーグ

10

アプリケーションはシステム全体で実行されます

設定を保存する適切な場所は次のとおりです。

/etc/[application]/

サブディレクトリはオプションです。


アプリケーションはユーザーごとのモードで実行されます

設定は、ユーザーのホーム、できれば隠しディレクトリに保存する必要があります。

/home/<user>/<.application>/

Debian FHSも参照してください。


X-Desktopで実行されているアプリケーション

X-Desktopのアプリケーション(GNOME、KDE、Unity、Xfceなど)は、ローカル変数で次のファイルの場所が定義されているXDGベースディレクトリ仕様を参照する必要があります。

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

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

  • $XDG_DATA_DIRS$ XDG_DATA_HOMEベースディレクトリに加えて、データファイルを検索するための基本ディレクトリの優先順セットを定義します。$ XDG_DATA_DIRSのディレクトリは、コロン「:」で区切る必要があります。

  • If $XDG_DATA_DIRS 設定されていないか空の場合、/ usr / local / share /:/ usr / share /と等しい値を使用する必要があります。

  • $XDG_CONFIG_DIRS$ XDG_CONFIG_HOMEベースディレクトリに加えて、設定ファイルを検索するための基本ディレクトリの優先順セットを定義します。$ XDG_CONFIG_DIRSのディレクトリは、コロン「:」で区切る必要があります。$ XDG_CONFIG_DIRSが設定されていないか空の場合、/ etc / xdgと等しい値を使用する必要があります。


いいえ、それらは/home/<user>/.config/application/に存在する必要があります
匿名

@Anonymous:これについてのリファレンスがあるといいですね。現在のDebianポリシーでは、アプリケーションがユーザーのHOMEのドットファイル(またはディレクトリ)にユーザー設定を保存することが推奨されていること除いて、FHS 2.3が必要です。
タックカット

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