WSLの導入方法

Windows Subsystem for Linux（WSL）を導入する手順を説明します。導入するWSLはWSL2です。



# WSLの有効化
コントロールパネル > プログラム > Windowsの機能の有効化または無効化 > 
Linux用Windowsサブシステムにチェック > OK > 再起動



# Linuxディストリビューションのインストール
ここではUbuntuを導入するとします。

PowerShellで下記を実行。

```PowerShell
wsl --install
```

もし、既にWSLがインストールされている場合、上記のコマンドではWSLのヘルプが表示されます。

念のため、WSLをアップデート。

```PowerShell
wsl --update
```

「WSLはインストールされているがディストリビューションがインストールされていない」という場合、上記の代わりに下記を実行。

```PowerShell
wsl --install -d Ubuntu
```

ちなみに、Ubuntu以外をインストールしたい場合は、

```PowerShell
wsl --install -d <DistroName>
```

で、<DistroName>をインストールしたいディストリビューションに置き換える。
インストール可能なディストリビューションは、

```PowerShell
wsl --list --online
```

で確認できる。

```
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
Ubuntu-24.04                           Ubuntu 24.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed
```

さて、話をUbuntuのインストールに戻します。
インストールプロセスが進むと、

```Shell
Installing, this may take a few minutes...

Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
```

と言われるので、Ubuntuで利用したいユーザー名を入力します。ユーザー名は何でもいいです。ただし長ったらしいと今後何かと面倒に感じる場面が多いので、適度な長さに留めておくと良いでしょう。
続いてパスワードを設定します。

```Shell
New password:
Retype new password:
```

何も入力されていないかのように見えますが、ちゃんと入力されています。
Ubuntuのインストールは以上で終了。

その他、詳細なインストールの仕様については下記を参照。

https://aka.ms/wslstore



# おわり
以上でWSL（Ubuntu）を導入できた。
試しにスタートメニューからWSLを起動すると、Ubuntuが起動する。

### 念のため確認
上記の手順でWSL2がインストールされるはずですが、念のためバージョンを確認する。
PowerShellで下記。

```shell
wsl -l -v
```

下記のようになっていればWSL2。

```shell
  NAME      STATE           VERSION
* Ubuntu    Running         2
```

ところがもし、下記のようにVERSIONが1だった場合、WSL2にバージョンを上げておくのがベターだろう。（様々なソフトウェアのバージョン互換性がもはやWSL1では担保しきれないので）

```shell
  NAME      STATE           VERSION
* Ubuntu    Running         1
```

### WSL1からWSL2へのアップデート
PowerShellで下記を順に実行。

```PowerShell
wsl --set-default-version 2
wsl --set-version Ubuntu 2
```

もし、上記手順の中で下記のようなエラーに遭遇した場合は、エラーの指示に従います。

```
WSL 2 との主な違いについては、https://aka.ms/wsl2
 を参照してください
変換中です。これには数分かかる場合があります。
仮想ネットワークを開始できませんでした。次を実行して、オプションのコンポーネント Virtual Machine Platform をインストールしてください: wsl.exe --install --no-distribution
Error code: Wsl/Service/CreateVm/WSL_E_VIRTUAL_MACHINE_PLATFORM_REQUIRED
```

上記エラーに対処するには、素直に下記を実行。

```PowerShell
wsl.exe --install --no-distribution
```

Windows自体を再起動し、下記手順をPowerShellで再開します。

```PowerShell
wsl --set-default-version 2
wsl --set-version Ubuntu 2
```

再度バージョンを確認して、VERSIONが2になっている事が確認できたらOK。

```PowerShell
wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
```

# 追加設定：コピペのショートカット
WSL上でVi(Vim、テキストエディタ）を使う際、ホストマシン（Windows）からコピペをしたいシーンが良くあります。
デフォルトでは右クリックやpコマンドでペーストできるのですが、Windows-likeにctrl+shift+vでできると便利な気もします。（残念ながらctrl+vでのペーストはサポート外）

ctrl+shift+vショートカットを有効にするには以下のようにします。

- WSLコンソールのメニューバー上で右クリック > プロパティ
- オプションタブ > 編集オプション欄 > Ctrl+Shift+C/Vをコピー/貼り付けとして使用する(C) のチェックボックスをOn

実は、Ctrl+Shift+Vはtmuxなどで別の役割のコマンドが割り当てられていて、上記の設定で上書きされてしまいます。そこに不便を感じる場合は上記のオプションを無効化してください。


# 参考

https://qiita.com/TsuyoshiUshio@github/items/2530876fc81e8afd7c82

https://remix-yh.net/2281/