🐧

WSL 2の初期設定: Debianを日本語対応にする基本セットアップガイド

2025/03/27に公開

はじめに

この記事では、Windows でWSL (Windows Subsystem for Linux) をはじめて使う人のために、WSL 上の Debian を日本語化する方法を説明します。
Debian を日本語化することで、コマンドの出力結果やエラーメッセージが日本語で表示されるようになります。

用語集

  • WSL (Windows Subsystem for Linux):
    Windows 上で Linux 環境を実行するための互換レイヤー

  • Debian:
    安定性と自由度に定評のある Linux ディストリビューション

  • ロケール:
    システムが使用する言語や日付・数値などの地域的設定

  • タイムゾーン:
    システム時刻を地域に合わせて調整する設定

  • task-japanese:
    Debian における日本語環境を一括インストールするパッケージ

  • sudo:
    一時的に管理者権限を得てコマンドを実行するためのツール

  • locale.gen:
    有効化するロケール設定を記述するファイル

  • dpkg-reconfigure:
    パッケージの再設定を行なうための Debian 標準ツール

  • tzdata:
    タイムゾーン情報を管理するためのパッケージ

  • PowerShell:
    Windows 標準の高機能コマンドラインシェル

  • man:
    UNIX 系システムで使われるマニュアル表示コマンド

1. 日本語環境を整える理由と背景

1.1 なぜ日本語化が必要なのか

WSL 2 上で Debian を使用する際、初期状態では英語のロケールが設定されており、システムメッセージやエラーメッセージも英語で表示されます。
英語に慣れていない初心者にとっては、英語の出力が理解を妨げたり、作業に支障を来たすことがあります。

環境を日本語化することで、出力が日本語になり、理解しやすくなります。

1.2 英語ロケールのままで起こる問題

英語ロケールのままでは、次のような問題が起こりえます。

  • コマンド結果やエラー内容が直感的に理解しにくい
  • 一部アプリケーションで日本語表示が崩れる
  • 日本語入力や表示設定が正しく機能しない

このような課題を回避するためには、ロケールやタイムゾーンを日本語環境に整えることが重要です。

1.3 日本語化で得られるメリット

日本語環境を整えることで得られる主な利点は以下のとおりです。

  • 日本語でのシステムメッセージにより、エラー原因の特定や対処がしやすくなる
  • 日本語のマニュアルやドキュメントが表示されるようになり、理解が深まる
  • 日本語入力や表示のトラブルを未然に防げる

特に Linux に不慣れなユーザーにとっては、母国語による出力は安心感につながり、学習コストを下げる要素にもなります。

2. 日本語化に必要な準備と流れ

2.1 日本語化作業のステップ

Debian を日本語化するための作業は、大まかに以下の 4 ステップにわかれます。

  1. 日本語パッケージのインストール
  2. ロケール (言語設定) の構成
  3. タイムゾーンの設定
  4. 設定の反映と動作確認

この順に進めることで、WSL 環境を日本語に対応させることができます。

[図1] 日本語環境構築の全体フロー

2.2 Windows Terminal の起動と終了

WSL 2 上の Debian は、Windows Terminal 上で操作します。
ここでは、Windows Terminal の起動方法と終了方法を紹介します。

Windows Terminal の起動

次の手順で、Windows Terminal を起動します。

  1. コマンドwtの実行:
    [Win]+Rで[ファイル名を指定して実行]ウィンドウを開き、wtと入力して[Enter]キーを押します。
    ファイル名を指定して実行
    [画像01] ファイル名を指定して実行で wt を入力

  2. ターミナルの起動:
    Windows Terminal が起動します。
    Windows Terminal
    [画像02] Windows Terminal の起動画面

Windows Terminal の終了

次の手順で、Windows Terminal を終了します。

  1. 終了キーの入力:
    Windows Terminalがアクティブな状態で、[Alt]+[F4]キーを押します。
    Windows Terminal
    [画像 03] Alt+F4 操作前の Windows Terminal ウィンドウ

  2. タブクローズの確認:
    複数タブが開いている場合には、[すべてのタブを閉じますか?]と確認のダイアログが表示されます。
    [すべて閉じる]を選択して、すべてのタブを閉じます。
    Windows Terminal
    [画像04] Alt+F4 でタブをすべて閉じる確認ダイアログ

  3. ターミナルの終了:
    ターミナルが終了します。

2.3 Debian の起動と終了

WSL 2 上の Debian は、Windows Terminal から起動、終了できます。
ここでは、その基本的な操作方法を紹介します。

Debian の起動

次の操作で、Debian を起動します。

  1. Debian の選択:
    [Ctrl]+[Shift]+[Space]でドロップダウンリストを開き、[Debian]を選択します。
    ドロップダウンメニュー
    [画像05] ドロップダウンから Debian を選択

  2. Debian の起動:
    Debian が起動します。
    Debian - Terminal
    [画像06] Debian シェルが起動した状態

Debian の終了

次の操作で、Debian を終了します。

  1. exitコマンドの入力:
    Debian のコマンドラインで、exitと入力して[Enter]キーを押します。
    Debian exit - Terminal
    [画像07] exit コマンドで Debian を終了

  2. Debian の終了:
    Debian が終了し、元のpowershellに戻ります。
    Windows Terminal
    [画像08] Debian 終了後、PowerShell に戻った状態

2.4 sudo コマンドの使い方

sudo の概要

Debian では、パッケージのインストールや設定ファイルの変更など、一部の操作に管理者(root)権限が必要です。
通常のユーザーがこうした操作を行なうには、sudo (Superuser Do) コマンドを使います。

sudo を使うことで、一時的に管理者権限を得て、必要な操作ができます。

sudo の使い方の実例

たとえば、パッケージリストを更新するには、次のように入力します。

sudo apt update

sudoを付けずにコマンドを実行すると、以下のようにエラーが発生します。

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/

sudoをつけると、管理者権限でコマンドを実行するため、エラーは発生しません。

sudo 実行時のパスワード入力について

sudo を使うときは、以下のようにパスワードの入力が求められます:

[sudo] password for <ユーザー名>:

この場合は、Debian をインストールしたときに設定したログインユーザーのパスワードを入力します。

3. 日本語パッケージのインストール

Debian を日本語化するには、日本語関連のパッケージをインストールする必要があります。
ここでは、task-japanese メタパッケージを使った方法を紹介します。

3.1 task-japanese パッケージの概要

task-*パッケージは、目的のために必要な複数のパッケージをまとめたメタパッケージです。
task-japanese は、Debian を日本語化するためのメタパッケージで、日本語ロケールファイルや日本語フォントなどが含まれています。

CLI環境 (ターミナル) でも、日本語のメッセージやマニュアルが表示されるようになります。

3.2 task-japanese のインストール手順

以下の手順で、task-japanese パッケージをインストールします。

  1. パッケージリストの更新:

    sudo apt update
    
  2. task-japaneseのインストール:

    sudo apt install task-japanese
    
  3. インストール結果:
    インストール中は、以下のようなメッセージが出力されます。

    Reading package lists... Done
    Building dependency tree... Done
     .
     .
     .
    Setting up xfonts-unifont (1:15.0.01-2) ...
    Processing triggers for libc-bin (2.36-9+deb12u10) ...
    

インストール後は、日本語のロケールやフォントが利用可能になります。
ただし、表示には追加の設定をして、Debian を再起動する必要があります。

4. ロケールの設定

日本語パッケージを導入したあとは、システムが日本語で動作するようにロケール (地域と言語の設定) を構成する必要があります。
ここでは、ロケールの基本と、対話式およびコマンドラインでの設定方法を紹介します。

4.1 ロケールの概要

ロケールとは、システムがどの言語・形式 (文字コード、日付、数字など) で情報を表示するかを定める設定です。
たとえば、en_US.UTF-8 はアメリカ英語、ja_JP.UTF-8 は日本語環境を意味します。

Debian 初期状態では en_US.UTF-8 の場合が多く、日本語化を行なうには ja_JP.UTF-8 を有効にして、デフォルトロケールにする設定が必要です。

4.2 ロケールの設定フロー

下図の流れでロケールを設定します。設定には、対話式と CLI (コマンドライン)の方式の 2種類があります。

[図2] ロケール設定フロー (対話式とCLI式)

4.3 対話形式での設定方法

以下のコマンドで、対話式にロケールを設定できます。

sudo /usr/sbin/dpkg-reconfigure locales
  1. 使用するロケールの選択 (スペースキーで選択・解除)
    日本語ロケール (ja_JP.UTF-8)にチェックを入れます。
    Configure Locales
    [画像09] ロケール選択画面で ja_JP.UTF-8 にチェックを入れる

  2. デフォルトロケールの選択
    デフォルトとしてja_JP.UTF-8を選択します。
    default locale
    [画像10] デフォルトロケールとして ja_JP.UTF-8 を選択

  3. ロケールの作成
    選択したロケールが作成されます。

    Generating locales (this might take a while)...
    en_US.UTF-8... done
    ja_JP.UTF-8... done
    Generation complete.
    

以上で、ロケールの設定は終了です。
Debian を再起動すると、エラーメッセージなどの出力が日本語になります。

4.4 CLI (コマンドライン) での設定方法

コマンドラインからもロケールを設定できます。
次の手順で、ロケールを設定します。

# 日本語ロケールを追加
# - ja_JP.UTF-8のコメントアウトを外す
# 行によってはコメントアウトの前に空白がある場合もあるので注意
sudo sed -i 's/# ja_JP.UTF-8/ja_JP.UTF-8/ig' /etc/locale.gen

# ロケールの再作成
sudo /usr/sbin/locale-gen

# デフォルトロケールの設定
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8

この設定で日本語ロケールが有効となり、再起動後に日本語出力が有効になります。

5. タイムゾーンの設定

ロケールの設定に続いて、システムのタイムゾーンも日本時間 (Asia/Tokyo) に合わせておくと、日時表示やログの時刻などが正しく表示されます。
ここでは、対話式と CLI (コマンドライン) それぞれの設定方法を紹介します。

5.1 タイムゾーンの概要

Linux システムでは、タイムゾーンを設定することで dateコマンドの出力や、ログファイルのタイムスタンプが正確に表示されます。
WSL の初期状態では UTC (協定世界時) になっている場合があり、日本時間と 9 時間のずれがあるため、Asia/Tokyo に変更するのが一般的です。

5.2 タイムゾーンの設定フロー

下図の流れでタイムゾーンを設定します。対話式と CLI (コマンドライン) 方式の 2種類があります。

[図3] タイムゾーン設定フロー (対話式とCLI式)

5.3 対話形式での設定方法

次のコマンドで、対話式にタイムゾーンを設定できます。

sudo /usr/sbin/dpkg-reconfigure tzdata
  1. 地域の選択:
    Asiaを選択します。
    TimeZoneの設定
    [画像11] タイムゾーン 地域:Asia の選択画面

  2. 都市の選択:
    Tokyoを選択します。
    TimeZoneの設定
    [画像12] タイムゾーン 都市:Tokyo の選択画面

  3. タイムゾーンの設定:
    以下のようにメッセージが出力されます。

    Current default time zone: 'Asia/Tokyo'
    Local time is now:      Wed Mar 26 19:16:57 JST 2025.
    Universal Time is now:  Wed Mar 26 10:16:57 UTC 2025.
    

5.4 CLI (コマンドライン) での設定方法

タイムゾーンを CLI から設定する場合は、以下の手順で行ないます。

# localtime に Asia/Tokyo を設定
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# タイムゾーンデータの再構成
# - localtimeは設定済みなので、対話する必要はない
sudo /usr/sbin/dpkg-reconfigure -f noninteractive tzdata

以下のようなメッセージが出力されれば、タイムゾーンは正常に設定されています。

Current default time zone: 'Asia/Tokyo'
Local time is now:      Wed Mar 26 19:43:51 JST 2025.
Universal Time is now:  Wed Mar 26 10:43:51 UTC 2025.

6. 設定の反映と動作確認

ロケールとタイムゾーンの設定が完了したら、変更内容がシステムに正しく反映されているかを確認します。この章では、WSL の再起動方法と、基本的な確認コマンドの使い方を紹介します。

[図4] 反映・確認ステップの流れ

6.1 WSL の再起動

WSL の設定は、ターミナルの再起動だけでは反映されないことがあります。
以下の手順で、WSL を完全に再起動します。

  1. PowerShell の起動:
    PowerShell (またはコマンドプロンプト) を起動します。

  2. shutdownの実行:
    次のコマンドを実行します。

    wsl --shutdown
    
  3. Debian の起動:
    Windows Terminal から、Debian を起動します。

6.2 ロケールとタイムゾーンの確認方法

ロケールとタイムゾーンの設定が正しく反映されたかを確認するため、以下のコマンドを実行します。

ロケールの確認

現在のロケール設定は locale コマンドで確認できます。

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=

上記のように、各設定項目がja_JP.UTF-8になっていれば、日本語ロケールが有効です。

タイムゾーンの確認

時刻とタイムゾーンは date コマンドで確認できます。

date

出力例:

2025326日 水曜日 20:39:15 JST

上記のように、JST (Japan Standard Time:日本標準時) と表示されていれば、タイムゾーンは正常に設定されています。

7. トラブルシューティング

7.1 ロケールや時刻に関する設定トラブル

[SYS-001] ロケール設定が反映されない

  • 症状LANG=C のままなど、英語設定が残る。
  • 原因:ロケールの生成や設定ファイルが未設定。
  • 対処
    1. locale|grep LANG を実行し、LANG=ja_JP.UTF-8になっているかを確認
    2. sudo /usr/sbin/dpkg-reconfigure localesを実行し、ja_JP.UTF-8をデフォルトロケールに設定
    3. wsl --shutdown で再起動し反映させる。

[SYS-002] タイムゾーンが日本時間でない

  • 症状date コマンドで UTC などが表示される。
  • 原因:タイムゾーンが初期状態のまま (UTC など)。
  • 対処
    1. sudo dpkg-reconfigure tzdata を実行。
    2. 'Asia' → 'Tokyo'を選択。
    3. date コマンドで JST 表示を確認。

7.2 日本語表示のトラブル

[DISP-001] 日本語フォントが表示されず文字化けする

  • 症状:日本語が「□」や「?」として表示される。
  • 原因:日本語フォント未インストール or キャッシュ未更新。
  • 対処
    1. 日本語フォントをインストール (sudo apt install fonts-noto-cjkを実行)
    2. noto以外のフォント (VL ゴシック:fonts-vlgothic, Takao フォント:fonts-takao) のインストールでもよい
    3. フォントキャッシュの再生成 (fc-cache -fv を実行)

[DISP-002] manページやコマンドのメッセージが英語のまま

  • 症状man ls などが英語で表示される。
  • 原因:日本語マニュアルや翻訳ファイルが未導入。
  • 対処
    1. 日本語 man をインストール (sudo apt install manpages-ja manpages-ja-devを実行)
    2. 翻訳されていない man もあるため、完全な日本語化は難しい

おわりに

WSL 2 上の Debian を日本語環境に整えることで、システムとのやり取りが格段にわかりやすくなりました。
メッセージやマニュアルが日本語なので、理解が容易です。

今回紹介した手順を実行すれば、Debian を問題なく日本語化できます。
代表的なトラブルにも触れているので、もしものときも対応できます。

今後は、WSL のカスタマイズやbashの設定などを行なって、自分のための開発環境を構築しましょう。

それでは、Happy Hacking!

参考資料

Webサイト

GitHubで編集を提案

Discussion