私は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/locale
localectlを使用してUbuntuが決して読み取らないファイルを変更するためです。
答え2
さまざまなディストリビューションまたはLinuxバージョンでは、次のいずれかを採用しています。適切な例として、Debian 10のドキュメントでは主に/etc/default/locale
(たとえばman update-locale
)を参照しています。 systemdに関連する部分も相談できます/etc/locale.conf
(例man locale.conf
:)。
簡単なテストによると、systemd(Debian 10の一部)は、localectl
asシステムロケールが存在しない限りその内容を報告します。この場合は明らかに優先します。/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
機能しましたが、現在はロケールを含むファイルだけがあります。