システムワイドなロケール設定 〜 Debian GNU/Linux
Debian GNU/Linux でのシステムワイドなロケール設定の取り扱いに関して、調べた結果を備忘録代わりにまとめておきます。
設定格納先
Debian GNU/Linux の場合、システムワイドなロケール設定は /etc/default/locale
ファイルに、以下のような形式で記述されています。
# File generated by update-locale LANG="en_US.UTF-8"
設定更新方法
システムワイドなロケール設定は、/etc/default/locale
の直接書き換えでも変更可能ですが、update-locale
コマンドを使うのが推奨されています(いずれの方法でも、当然ルート権限が必要です)。
# update-locale LANG=ja_JP.UTF-8
update-locale
コマンドを使用した場合、設定内容を /etc/default/locale
に書き出す前に、設定された各ロケール値が、実行環境において有効なものか否かのチェックが実施されます。そういった安全性の点からも、設定の変更には、update-locale
コマンドを使用した方が良いでしょう。
設定内容の反映契機
/etc/default/locale
ファイルに記述された設定内容は、PAM 認証機能経由で読み込まれます。
例えば、SSH サーバ向けの PAM 設定ファイル /etc/pam.d/sshd
には、以下のような設定が記述されています。
auth required pam_env.so envfile=/etc/default/locale
/etc/pam.d/
配下の cron
や login
などは、以下のような記述で /etc/default/locale
ファイルを読み込んでいます。
session required pam_env.so readenv=1 envfile=/etc/default/locale
なお、ファイルの直接編集や update-locale
実行により、/etc/default/locale
の内容が更新された場合は、その直後の認証処理から、更新後の設定内容が有効になります。