Ubuntu 19.10 Eoan Ermine の日本・日本語ロケール環境やタイムゾーンの設定

## 概要

Ubuntu 19.10 Eoan Ermine にて日本・日本語ロケール環境に適した言語パックのインストール、ロケール設定、タイムゾーン設定、日本語対応パッケージのインストールなどを実施する

## 日本語言語パックのインストール

language-pack-ja-base と language-pack-ja パッケージをインストールする。

language-pack-ja を指定すれば依存関係で language-pack-ja-base もインストールされる。

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

[Ubuntu – eoan の language\-pack\-ja パッケージに関する詳細](https://packages.ubuntu.com/ja/eoan/language-pack-ja)
[Ubuntu – eoan の language\-pack\-ja\-base パッケージに関する詳細](https://packages.ubuntu.com/ja/eoan/language-pack-ja-base)

## 日本・日本語ロケールの設定

アメリカ・英語の設定になっている状態では以下のようになっている。

/etc/default/locale はシステム全体のデフォルト・ロケールが記述されているファイル。

```
$ cat /etc/default/locale 
#  File generated by update-locale
LANG="en_US"
LANGUAGE="en_US:"
```

環境変数。

```
$ env | grep LANG
LANGUAGE=en_US:
LANG=en_US
```

locale コマンドによるロケール情報。

```
$ locale
LANG=en_US
LANGUAGE=en_US:
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
```

update-locale コマンドで LANG=ja_JP.UTF-8 を指定することでシステムのデフォルトのロケールを日本・日本語に設定できる。LANGUAGE は自動的に無効にされる。

```
$ sudo update-locale LANG=ja_JP.UTF-8
*** update-locale: Warning: LANGUAGE ("en_US:") is not compatible with LANG (ja_JP.UTF-8). Disabling it.
```

/etc/default/locale ファイルが更新される。

```
$ cat /etc/default/locale
#  File generated by update-locale
LANG=ja_JP.UTF-8
#LANGUAGE="en_US:"
```

現在のシェルからログアウトし、再ログインすることで現在のデフォルト・ロケールがシェルに適用される。

(今回の場合は source /etc/default/locale でも LANG が更新され LANGUAGE が削除されないままになるので再ログインするのが最適。ただし LANGUAGE の値が問題となることがあるかどうか不明)

環境変数の LANG が更新され、LANGUAGE が削除されているのを確認できる。

```
$ env | grep LANG
LANG=ja_JP.UTF-8
```

locale コマンドによるロケール情報を見ると ja_JP.UTF-8 が設定されている。LANGUAGE は無指定になる。

```
$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
```

[Ubuntu Manpage: locale \- get locale\-specific information](http://manpages.ubuntu.com/manpages/eoan/en/man1/locale.1.html)
[Ubuntu Manpage: update\-locale \- Modify global locale settings](http://manpages.ubuntu.com/manpages/eoan/man8/update-locale.8.html)

## タイムゾーンを日本時間に設定

timedatectl コマンドでタイムゾーンを確認できる。

```
$ timedatectl
               Local time: 土 2020-01-11 06:58:50 UTC
           Universal time: 土 2020-01-11 06:58:50 UTC
                 RTC time: 土 2020-01-11 06:58:51
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
```

timedatectl list-timezones で設定可能なタイムゾーンの一覧を確認できる。

```
$ timedatectl list-timezones | grep Tokyo
Asia/Tokyo
```

timedatectl set-timezone でタイムゾーンを設定できる。
ここでは日本時間のタイムゾーンである Asia/Tokyo を設定。

```
$ sudo timedatectl set-timezone Asia/Tokyo
```

timedatectl でタイムゾーンを確認すると日本時間になっている。

```
$ timedatectl
               Local time: 土 2020-01-11 15:59:18 JST
           Universal time: 土 2020-01-11 06:59:18 UTC
                 RTC time: 土 2020-01-11 06:59:19
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
```

[Ubuntu Manpage: timedatectl \- Control the system time and date](http://manpages.ubuntu.com/manpages/eoan/man1/timedatectl.1.html)

## 日本語対応パッケージのインストール

check-language-support コマンドで指定した言語の環境に不足しているパッケージのリストを取得できる。

```
$ check-language-support -l ja
fcitx fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt4 fcitx-frontend-qt5 fcitx-mozc fcitx-ui-classic fonts-noto-cjk fonts-noto-cjk-extra language-pack-ja mozc-utils-gui
```

試しに以下のコマンドを打ったら使っていないパッケージの日本語対応パッケージなどもインストールされてしまうように見える。

```
$ sudo apt install $(check-language-support -l ja) -s
```

(apt install の -s オプションは実際にはパッケージをインストールを変更せず、インストールしたら何が起きるかのシミュレーションができる)

必要なパッケージだけを選択してインストールするのが良いかもしれない。

[Ubuntu Manpage: check\-language\-support \- returns the list of missing packages in order to provide a](http://manpages.ubuntu.com/manpages/eoan/man1/check-language-support.1.html)

## 参考資料

- [WSLのUbuntu環境を日本語化する：Tech TIPS \- ＠IT](https://www.atmarkit.co.jp/ait/articles/1806/28/news043.html)
- [Linux の 101 試験対策: ローカリゼーションと国際化対応](https://www.ibm.com/developerworks/jp/linux/library/l-lpic1-107-3/)
- [環境変数によるロケールの管理 \(1/2\) \- ITmedia エンタープライズ](https://www.itmedia.co.jp/enterprise/articles/0605/16/news027.html)