/etc/locale.confと/etc/default/localeの違い

/etc/locale.confと/etc/default/localeの違い

私はKDEネオン5.20を実行していますが、両方のファイルが同様の/etc/locale.conf内容を持っていることがわかりました/etc/default/locale。これら2つのファイルの違いは何ですか?システムロケールを変更するには、どのファイルを編集する必要がありますか?

答え1

多くのアプリケーションが機能するには、LANG環境変数が必要です。したがって、ほとんどのディストリビューションにはログイン後にLANGを設定する起動スクリプトがあります。

もしそうなら、スタートアップスクリプトはLANG設定をどこで読みますか?分布によって異なります。

  • Debian デフォルトコンソールログイン起動スクリプトを読む/etc/default/locale
  • Slackwareデフォルトコンソールログイン起動スクリプトポイントソース /etc/profile.d/lang.sh
  • KDEプラズマ読み取り~/.config/plasma-localerc
  • 読むべき他のディストリビューション/etc/locale.conf

Systemdはどのディストリビューションにインストールされているかわかりません。したがって、localectl を使用して構成を変更する場合、localectl はその構成が/etc/locale.conf存在するかどうかを検出します。存在する場合、localectlはそれを変更するか、/etc/default/locale代替エントリにします。

Ubuntu(非GUI)に関する限り、/etc/locale.confケースが存在する場合はlocalectlを実行しても、LANG変数は再起動後も保持されます。これは、Ubuntuが/etc/default/localelocalectlを使用してUbuntuが決して読み取らないファイルを変更するためです。

答え2

さまざまなディストリビューションまたはLinuxバージョンでは、次のいずれかを採用しています。適切な例として、Debian 10のドキュメントでは主に/etc/default/locale(たとえばman update-locale)を参照しています。 systemdに関連する部分も相談できます/etc/locale.conf(例man locale.conf:)。

簡単なテストによると、systemd(Debian 10の一部)は、localectlasシステムロケールが存在しない限りその内容を報告します。この場合は明らかに優先します。/etc/default/locale/etc/locale.conf

私は/etc/default/locale(再び、現在のバージョンのDebianでのみ)排他的に使用します。私の推論は次のとおりです。これはDebianに収まり、システムにも合うので、全体的に明らかな選択です。

答え3

いくつかの実験の後、KDEネオンはのロケールを尊重し/etc/default/localeますが、そのロケールは無視することを確認しました/etc/locale.conf。 Ubuntuがロケールファイルに別の場所を使用している理由はまだ理解されていませんが、Ubuntuベースのディストリビューションではそれを使用して/etc/default/localeロケールを設定する必要があるという結論に達しました。また、/etc/default/localeシンボリックリンクを次のように変更し、すべてがうまく/etc/locale.conf機能しましたが、現在はロケールを含むファイルだけがあります。

関連情報