はむ吉(のんびり)の練習ノート

主にプログラミングについて、思いついたことや、試してみたこと、学んだことを、覚え書きを兼ねてまとめます。

Windows Subsystem for Linux で構築した Debian GNU/Linux 環境を日本語化する:ロケール・タイムゾーンの設定から日本語入力まで

Windows 10 に搭載されている Windows Subsystem for Linux を使うと,Linux を手軽に使用できます.本記事では,これにより構築された Debian GNU/Linux 環境を日本語化する方法についてまとめます.

はじめに

前回の記事では,Windows 10 の Windows Subsystem for Linux (WSL) 機能を用いて,Debian GNU/Linux 環境を構築する方法についてまとめました.ここでは,WSL の有効化から,Debian GNU/Linux 環境の初期設定までについての手順を説明しています.

hamukichi.hatenablog.jp

しかし,この記事では Python 開発環境の構築に主眼を置いており,日本語化については詳述していませんでした.そこで,本記事では,構築した Linux 環境で日本語の表示や入力を行えるようにするための設定方法について述べます.

前提条件

上掲の記事に従い,Debian GNU/Linux 環境を構築したことを前提としています.また,VcXsrv をあらかじめ起動しているものとします.

画面の表示を日本語にする

まずは,シェル等で表示されるメッセージが日本語になるよう,Linux 環境の設定を行います.これにはロケールの変更と,日本語関連のパッケージの導入が含まれます.

ロケールの変更

まずは,ロケールを日本語に変更します.これには sudo dpkg-reconfigure locales を実行します(参考:Debianでのロケール変更(日本語環境に変更する) | 設定やツールねた).すると,次の二枚の画像のごとく,使用するロケールを選択する画面が表示されます.第一の画面では,ja_JP.UTF-8 UTF-8 へ上下キーでカーソルを合わせ,Space キーでこの項目にアステリスクを入れたうえで,Enter キーを押下すると次の画面に移ります.第二の画面では,矢印キーで ja_JP.UTF-8 に,その後 OK に反転を合わせた上で Enter キーを押下します.しばらく待機後,シェルを再起動すればロケールの設定は完了です.これより,apt-get などのメッセージも日本語で出力されるので,コンソールのフォントを「MS ゴシック」などにしておきましょう(コマンドプロンプトと同様).

f:id:hamukichi_nbr:20180917163214p:plainf:id:hamukichi_nbr:20180917163210p:plain
シェルで sudo dpkg-reconfigure locales を実行した際の画面.

日本語関連のパッケージの導入

続いて,最低限の日本語関連のパッケージを導入しておきます.これにより,日本語表示の man などが使えるようになります.そのためには,sudo apt-get install task-japanese を実行します.

タイムゾーンの変更

上記の操作で,画面の表示が一応日本語にはなったので,タイムゾーンの設定を行います(参考:WSLのUbuntu環境を日本語化する:Tech TIPS - @IT).これを怠ると,時刻表示やファイルの更新・作成日時の扱いに問題が生じることがあります.タイムゾーンJST に変更すべく,sudo dpkg-reconfigure tzdata を実行します.ロケールの設定と同様の画面が表示されるので,「アジア」→「東京」を選択します.

f:id:hamukichi_nbr:20180917163221p:plainf:id:hamukichi_nbr:20180917163217p:plain
シェルで sudo dpkg-reconfigure tzdata を実行した際の画面.

日本語フォントの導入

(2018 年 9 月 23 日に追記)

このままでも日本語の表示はできますが,日本語用のフォントを導入しておくと,よりきれいな表示を行えます.そのための操作を記します.

Windows のフォントを利用する

簡単なのは,Windows に導入しているフォントを利用することです(ただし,次節に示す問題を引き起こすことがあります).そのためには,以下のコマンドを実行します(参考:fcitxで作るWSL日本語開発環境).

sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
sudo fc-cache -fv

その後 fc-list を実行してみると,Windows のフォントが追加されていることが分かります.

Windows のフォントを利用せず,Linux 側 に日本語フォントを導入する

上記の Windows のフォントを Linux 側へシンボリックリンクする方法は,確かに簡単ではあるものの,不具合を引き起こすことがあります.たとえば,私の場合,X11 アプリケーションの起動中に,Windows 側の Google Chrome で表示しているページの英字フォントがすべて斜体になるという問題に悩まされました.

そこで,上記の設定はやめにして,不精せずに,Linux 側に IPA フォント や IPAex フォントといった日本語フォントを導入します.そのためには,以下のコマンドを実行します.

sudo unlink /usr/share/fonts/windows  # 前節の設定を行っていた場合にのみ実行
sudo apt-get install fonts-ipafont
sudo apt-get install fonts-ipaexfont
sudo fc-cache -fv

すると,以下のように,Visual Studio Code の表示が IPA/IPAex フォントを用いて行われるようになります.

f:id:hamukichi_nbr:20180923201558p:plain
IPAex/IPA フォント導入後に,Visual Studio Code を起動した様子.

日本語入力の設定

これまでの操作で,日本語での表示はできるようになったものの,日本語入力はできていません.そこで,以下の手順でパッケージの導入と設定を行います(参考:fcitxで作るWSL日本語開発環境).

まずは,インプットメソッドフレームワークと日本語入力エンジンを導入します.ここでは,前者として Fcitx を,後者として Mozc を用います.シェルで sudo apt-get install fcitx-mozc dbus-x11 x11-xserver-utils を実行し,しばらく待機します.その後,~/.bashrc に以下を追記します.

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export DefaultIMModule=fcitx
xset -r 49
fcitx-autostart

シェルを再起動すると,Ctrl + Space により日本語を入力できるようになります.

f:id:hamukichi_nbr:20180917162816p:plain
Emacs で Mozc による日本語入力を行っている様子.

まとめ

WSL により構築した Linux 環境において,日本語の表示と入力ができるように設定することができました.ここでは Debian GNU/Linux を例にとりましたが,Ubuntu など類似のディストリビューションでも同様の手順を踏めば日本語化ができると考えられます.