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
これで、一通りの日本語化の対応が完了しました。