server-memo.net

CentOS7システム(OS)のロケール設定

   

CentOS7からシステムのロケール設定方法が「localectl」コマンドを使用するように変更されています。

また、設定ファイルの場所もCentOS6からは変更となっているので、そのあたりについてまとめています。

システム(OS)ロケールの設定表示

「localectl」コマンドを実行することで、現在設定されているシステムのロケールとキーマップ(キーボード設定)を表示させることが出来ます。

# localectl
  System Locale: LANG=en_US.UTF-8
  VC Keymap: jp106
  X11 Layout: jp

「System Locale」が設定されているロケールとなり、「VC Keymap」がキーマップ(キーボード)の設定となります。

ロケールの設定ファイル

システム(OS)のロケール設定ファイルは「/etc/locale.conf」となります。

ファイルの中を確認してみると、「localectl」コマンドで確認したロケールが設定されていることが確認できます。

# cat /etc/locale.conf 
LANG="en_US.UTF-8"

※CentOS6までは、「/etc/sysconfig/i18n」がロケール設定ファイルでした。

システムのロケール変更

CentOS7ではシステム(OS)のロケールを変更する場合は「localectl set-locale」コマンドを使用します。

システムロケールの変更書式

設定されたロケールの情報は「/etc/locale.conf」ファイルに書き込まれます。

# localectl set-locale LANG=ロケール

※CentOS6までは、ロケールの変更は「/etc/sysconfig/i18n」ファイルを編集するという方法でした。

設定反映

「localectl」コマンドで設定したロケールを反映させるためには、一度ログアウトしてから再度ログインし直すか、下記コマンドで設定を読み込む必要があります。

# source /etc/locale.conf

「locale」コマンドを実行すると現在有効となっているロケールの設定が表示されるのですが、設定反映をする前にロケールの設定状態を確認すると「loclectl」コマンドで変更する前のロケールが表示されるはずです。

ロケール一覧表示

使用できるロケールの名前は「locale -a」コマンドで一覧表示させることができます。

locale -a

全てを表示すると非常に数が多いので、「grep」コマンドを使って表示を絞ったほうが分かりやすいでしょう。

例えば日本語に関するものだけを表示する場合は、下記のようになります。

# locale -a | grep ja
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc

ロケール変更例

実際にシステムのロケールを「en_US.UTF-8」から「ja_JP.utf8」に変更してみます。

現在の設定確認

まずは現在のロケール設定状況を確認してみます。

# localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: jp
      X11 Layout: jp

現在は「en_US.UTF-8」に設定されていることが確認できました。

システムロケールの変更

それでは、システムのロケールを「ja_JP.utf8」に変更していきます。

# localectl set-locale LANG=ja_JP.utf8

変更確認

「localectl」コマンドでシステムのロケールが変更されていることを確認します。

# localectl
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp
      X11 Layout: jp

あわせて「/etc/locale.conf」ファイルの中身も変更されていることも確認してみます。

# cat /etc/locale.conf
LANG=ja_JP.utf8

システムのロケールが「ja_JP.utf8」に設定されていることが確認できました。

設定反映

設定内容に間違いがなければ、ロケールの設定ファイルを再読込みさせて設定を反映させます。

# source /etc/locale.conf

「locale」コマンドを実行すること現在有効となっているロケールの確認ができるので、「ja_JP.utf8」に設定されているか確認をします。

# locale
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=

現在のロケールも正常に変更されていることが確認できましたので、システムのロケール変更作業は完了となります。

 - CentOS7