Contents
概要
英語環境でインストールしたCentOS8をインストール後に日本語環境に変更します。
前提条件
OS
CentOS Stream 8を使用します。
SELinux
有効です。無効にする場合はこちらを参照して下さい。
Firewalld
無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。
所感
この設定で日本語環境への変更はできていると思っていますが、PodmanのCentOS8コンテナでは想定通りの挙動になりません。日本語の表示自体はできるのですが、例えばDNFコマンドの出力は英語のままです。何か本稿以外の設定個所があるかも知れません。
はじめに
日本語環境を指定してインストールしたCentOS8は下記のようになります。本稿ではこの設定値合わせて変更します。
ロケール
ロケールとは言語と地域の設定です。キーマップ(使用するキーボードの配列)の設定も含まれています。
[root@centos ~]# localectl status System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp X11 Layout: jp
タイムゾーン
タイムゾーンはどの地域の時刻を表示するかですね。
[root@centos ~]# timedatectl status Local time: 月 2021-07-05 16:20:17 JST Universal time: 月 2021-07-05 07:20:17 UTC RTC time: 月 2021-07-05 07:20:17 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no
設定
ロケールの変更
ロケールを英語環境から日本語環境に変更します。
英語環境
英語環境のロケール設定は下記のようになっています。
[root@centos ~]# localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us
現在利用できる文字コードの確認
日本語の文字コードが存在していないことが分かります。日本語の文字コードを利用するには言語パックの追加が必要です。
[root@centos ~]# localectl list-locales C.utf8 en_AG en_AU en_AU.utf8 en_BW en_BW.utf8 en_CA en_CA.utf8 en_DK en_DK.utf8 en_GB en_GB.iso885915 en_GB.utf8 en_HK en_HK.utf8 en_IE en_IE.utf8 en_IE@euro en_IL en_IN en_NG en_NZ en_NZ.utf8 en_PH en_PH.utf8 en_SC.utf8 en_SG en_SG.utf8 en_US en_US.iso885915 en_US.utf8 en_ZA en_ZA.utf8 en_ZM en_ZW en_ZW.utf8
日本語の言語パックをインストール
インストールします。
[root@centos ~]# dnf install langpacks-ja
インストール後にlocalectl list-localesを実行すると、日本語の文字コードが追加されていることが確認できます(日本語の文字コードだけ抜粋しています)。尚、インストール時点で各コマンドの出力が日本語に変わるようです。
[root@centos ~]# localectl list-locales ja_JP.eucjp ja_JP.utf8
文字コードの変更
文字コードを変更します。TABで設定値を補完可能ですが、表示されるのはja_JP.utf8となり、日本語環境でインストールした場合のja_JP.UTF-8と異なります。ただ、localectl list-localesで表示される文字コードは同じなのでどちらでも良いと思います。本稿ではja_JP.UTF-8を指定します。
[root@centos ~]# localectl set-locale LANG=ja_JP.UTF-8
変更後の状態です。
[root@centos ~]# localectl status System Locale: LANG=ja_JP.UTF-8 VC Keymap: us X11 Layout: us
キーマップの変更
キーマップを変更します。set-keymapはTAB補完が使えますが、set-x11-keymapのほうは使えませんね。
[root@centos ~]# localectl set-keymap jp [root@centos ~]# localectl set-x11-keymap jp
変更後の状態です。
[root@centos ~]# localectl status System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp X11 Layout: jp
補足
前述のlocalectlコマンドで変更されるファイルは下記の通りです。
文字コードの変更
[root@centos ~]# cat /etc/locale.conf
LANG=ja_JP.UTF-8
キーマップの変更(VC Keymap)
[root@centos ~]# cat /etc/vconsole.conf
KEYMAP=jp
FONT=eurlatgr
キーマップの変更(X11 Layout)
少々整形しています。
[root@centos ~]# cat /etc/X11/xorg.conf.d/00-keyboard.conf
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "jp"
EndSection
タイムゾーンの変更
英語環境
英語環境のロケール設定は下記のようになっています。
[root@centos ~]# timedatectl status Local time: 月 2021-07-05 05:32:35 EDT Universal time: 月 2021-07-05 09:32:35 UTC RTC time: 月 2021-07-05 18:32:34 Time zone: America/New_York (EDT, -0400) System clock synchronized: yes NTP service: active RTC in local TZ: no
タイムゾーンの変更
タイムゾーンをAsia/Tokyoに変更します。TABで補完されます。
[root@centos ~]# timedatectl set-timezone Asia/Tokyo
変更後の状態です。
[root@centos ~]# timedatectl status Local time: 月 2021-07-05 18:46:42 JST Universal time: 月 2021-07-05 09:46:42 UTC RTC time: 月 2021-07-05 18:46:41 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no
補足
timedatectl set-timezoneでタイムゾーンを変更すると/etc/localtimeが変更されます。具体的には/etc/localtimeはシンボリックリンクであり、元のファイルは/usr/share/zoneinfo内にあります。
[root@centos ~]# ls -l /etc/localtime lrwxrwxrwx. 1 root root 32 7月 5 18:36 /etc/localtime -> ../usr/share/zoneinfo/Asia/Tokyo