Ubuntu Serverの日本語化

前回インストールしたUbnutu Serverの日本語化対応を行ってみたいと思います。

タイムゾーンを JST に設定する

まずは現状のタイムゾーンの確認を行います。
date コマンドで確認するとタイムゾーンは UTC でした。

$ date
Thu Feb  1 13:29:39 UTC 2024

Ubuntu Server は システム管理を行うソフトウェアとして systemd を採用しています。
systemd の動作するシステムで、時刻やタイムゾーンを表示したり、設定したりするには timedatectl コマンドを使用します。
まずは timedatectl コマンドで設定可能なタイムゾーンのリストを取得します。
タイムゾーンのリストを取得するには list-timezones オプションを指定します。

$ timedatectl list-timezones | grep -i asia
Asia/Aden
Asia/Almaty
Asia/Amman
 :
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tel_Aviv
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo
 :

set-timezone オプションを使用して、タイムゾーンを Asia/Tokyo に設定します。

$ sudo timedatectl set-timezone Asia/Tokyo

timedatectl でコマンド設定した内容を確認します。
ローカルタイムが JST になっていることが確認できます。

$ timedatectl
               Local time: Thu 2024-02-01 22:30:16 JST
           Universal time: Thu 2024-02-01 13:30:16 UTC
                 RTC time: Thu 2024-02-01 13:30:02
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

date コマンドで JST で表示されるようになりました。

$ date
Thu Feb  1 22:30:47 JST 2024

システムロケールを日本語(UTF-8)に変更する

システムロケールの現状を確認します。
date コマンドを実行すると曜日が英語で出力されています。
systemd の動作するシステムでは、システムロケールを設定する際には localectl コマンドを使用します。

$ date
Thu Feb  1 22:31:54 JST 2024

$ localectl status
   System Locale: LANG=C.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

システムロケールを日本語(UTF-8)に変更するために、追加で日本語関連パッケージをインストールします。

$ sudo apt -y install language-pack-ja-base language-pack-ja

list-locales オプションを使用して、システムロケールで設定可能なリストから日本語環境を探します。

$ localectl list-locales | grep -i ja
ja_JP.UTF-8

localectl コマンドの set-locale オプションで システムロケールを日本語(UTF-8)に変更します。
また、source コマンド で設定したロケール情報を反映します。

$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ source /etc/default/locale

システムロケールの変更結果を確認します。
date コマンドで曜日が漢字で出力されるようになりました。

$ localectl status
   System Locale: LANG=ja_JP.UTF-8
                  LANGUAGE=ja_JP:ja
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

$ date
2024年  2月  1日 木曜日 22:33:36 JST

日本語キーボードを設定する

先ほどの localectl コマンドで キーボードの配列を変更することが可能なはずですが…
しかし、 設定可能なキーマップリストを取得する list-keymaps オプションを指定して実行してもエラーが返ります。

$ localectl list-keymaps
Failed to read list of keymaps: そのようなファイルやディレクトリはありません

これはDebian系の既知の不具合でまだ解決していないことが原因のようです。

対策としては https://mirrors.edge.kernel.org/pub/linux/utils/kbd/ から最新のtarballを取得し、/usr/share/keymaps/ などに展開すれば良いようです。
現在の最新は kbd-2.6.4.tar.xz でした。

$ wget https://mirrors.edge.kernel.org/pub/linux/utils/kbd/kbd-2.6.4.tar.xz
$ tar Jxvf kbd-2.6.4.tar.xz
$ sudo mkdir /usr/share/keymaps
$ sudo cp -Rp kbd-2.6.4/data/keymaps/* /usr/share/keymaps/

再度、キーマップのリストを確認します。

$ localectl list-keymaps | grep -i jp
jp106

set-keymap オプションを使用して、キーマップを jp106 に設定します。

$ sudo localectl set-keymap jp106

キーマップが変更されたことを確認します。

$ localectl status
   System Locale: LANG=ja_JP.UTF-8
                  LANGUAGE=ja_JP:ja
       VC Keymap: jp106
      X11 Layout: jp
       X11 Model: jp106
     X11 Options: terminate:ctrl_alt_bksp

これで、一通りの日本語化の対応が完了しました。

Linux

前の記事

Ubuntu Serverのインストール