WSLをインストールする

# WSL (Windows Subsystem for Linux) とは

ざっくり言うと、広い意味での仮想化技術を使って、Windows上でLinuxプログラムを動作させ、かつWindowsの世界と様々な形で相互連携できる、という機構です。

https://docs.microsoft.com/ja-jp/windows/wsl/about より引用：

> Windows Subsystem for Linux を使用すると、開発者は、仮想マシンのオーバーヘッドなしで、ほとんどのコマンド ライン ツール、ユーティリティ、アプリケーションを含む GNU/Linux 環境を変更せずそのまま Windows 上で直接実行できます。

# システム要件

- WSL バージョン1
  - Windows 10 バージョン 1709 Fall Creators Update 以降
- WSL バージョン2
  - Windows 10 バージョン 1903 ビルド 18362.1049 (KB4566116適用後)
  - Windows 10 バージョン 1909 ビルド 18363.1049 (KB4566116適用後)
  - Windows 10 バージョン 2004 ビルド 19041 以降

# インストール (WSL バージョン1)

https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

## Windowsの機能の有効化

GUI、またはPowerShellを使って、Windowsのオプション機能「Windows Subsystem for Linux」を有効にします。

GUIであれば、スタート画面や設定アプリで「Windows の機能[^1]」まで入力して検索するか、コントロールパネルから「コントロール パネル\プログラム\Windowsの機能の有効化または無効化」と辿ります。

![conf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/fb35cf29-3f6d-a7c2-8c82-db7896ae7ae3.png)

![start.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/3c084240-4511-b30d-134d-39a1300f5e98.png)

![panel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/5c4abdf2-2570-f992-76d8-26d5af6d98b9.png)

PowerShellの場合は、管理者としてPowerShellを開き、下を実行します。

```powershell:PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
```

再起動を求められるので、再起動します。

[^1]: 「Windows 」の後ろに半角スペースを入れるとよい

## Linuxディストリビューションのインストール

Microsoft Store、またはそれ以外の手段で、Linuxディストリビューションをインストールします。

Microsoft Storeの場合は、アプリを起動して「WSL」を検索します。
ピックアップされている無料のディストリビューションとして、Ubuntu 最新LTS版（18.04LTSと20.04LTSも登録されています）、Debian、OpenSUSE、SLES、Alpine、KALIが見つかるかと思いますので、好きなものを選んでインストールします。

![wslstore.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/426cef23-11b6-3f1c-6dea-ff7cc0cf855e.png)

Microsoft Storeを使わない場合は、[ディストリビューションのダウンロードリンク](https://docs.microsoft.com/ja-jp/windows/wsl/install-manual)から好きなディストリビューションのappxパッケージを選んでダウンロードします（Webブラウザでも、curlコマンドなどでも構いません）。
ダウンロードしたら、PowerShellコマンドでパッケージをインストールします。

```powershell:PowerShell
Add-AppxPackage .\app_name.appx
```

## Linuxディストリビューションの初期化

https://docs.microsoft.com/ja-jp/windows/wsl/initialize-distro

ディストリビューションをインストールした段階ではまだ有効化されていないので、初期化して有効にする必要があります。そのためには、インストールしたストアアプリを起動します。

ストアアプリから起動ボタンを押すか、もしくはスタート画面からディストリビューションを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/825f54ba-fd9f-7670-1985-44d8b9667b21.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/f5822aa5-9ce4-12e2-f992-10a6ec1ecfc1.png)

# インストール (WSL バージョン2)

https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-install

## Windowsの機能の有効化

GUI、またはPowerShellを使って、Windowsのオプション機能「Windows Subsystem for Linux（Linux 用 Windows サブシステム）」と「仮想マシン プラットフォーム」を有効にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2079/5f8230f1-cb61-ffc7-eee8-258aeda11b32.png)

再起動を求められるので、再起動します。

## WSLのデフォルトバージョンをWSL2にする（オプション）

今後インストールするLinuxディストリビューションのデフォルトをWSL2にするには、コマンドライン（PowerShellまたはコマンドプロンプト）で以下のコマンドを実行します。

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

## Linuxディストリビューションのインストール

WSL1と同様なので省略します。

## Linuxディストリビューションの初期化

WSL1と同様なので省略します。

## LinuxディストリビューションをWSL2で動かすように設定する

Linuxディストリビューションは複数インストールできます。そして、インストールしたディストリビューションごとに、WSLのバージョンを設定できます。

コマンドラインで `wsl -l -v`を実行すると、インストール＆初期化済みのLinuxディストリビューションのWSLバージョンを確認できます。

```:PowerShell
PS> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2
  Debian    Stopped         1
```

インストール＆初期化済みのLinuxディストリビューションのWSLバージョンを2に変更するには、コマンドラインで以下のコマンドを実行します。

```:PowerShell
wsl --set-version <ディストリビューション名> 2
```