参考になる記事はたくさんあるけれど、いちおう書き残しておきます。
背景
個人的な事情
GitHub Actionsをローカル環境でテストできるactには、 Docker(Docker Desktop)が必要だったので入れようとしたら、WSL2が必要だったという話。
WSL2と1の比較
WSL 2 と WSL 1 の比較 | Microsoft Docs
うーん、わからない。わざわざWSL1を使う理由はなさそうなのでバージョンアップします。
Linux版のDockerをきちんとインストールできるようになる、のようなメリットを聞いたことがあります。
上述のactのインストールには必要なのでインストールします。
参考文献
以下の2つの記事を読めば全て書いてあります。
(今書いているこの記事は要らないのでは???)
- Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs
- WSL2導入|WinアップデートからWSL2を既定にするまでのスクショ - Qiita
手順
参考文献の1のほうを基本的には見ていきます。
スクショが見たくなったら2を確認します。前提条件が揃っていなくて、準備が必要な場合も2に記載されています。
Windows Insiderではないので、Manual Installation Stepsの方で実施します。
前提条件
WSLのバージョン
そもそも今使っているWSLのバージョンを確認するには以下のコマンドを実行します。
PS C:\Windows\system32> wsl --list --verbose NAME STATE VERSION * Ubuntu Running 2
入っているディストリビューションとそのWSLのバージョンが書いてあります。 この場合はUbuntuが入っており、そのWSLのバージョンは2であることがわかります。
Windowsのバージョン
WSL2にはWindowsのバージョンが2004である必要があります。
バージョンの確認方法は以下の通り。
Win + R
で「ファイル名を指定して実行」を開き、winver
と入力。
バージョンが表示されます。
バージョンがこれ以前の場合には、Windows Updateをおこないます。
Windows Subsystem for Linuxの有効化
日本語だと「Linux用Windowsサブシステム」となっているWindowsの機能の有効化をおこないます。 以下のコマンドではなくとも コントロールパネル > プログラムと機能 > Windowsの機能の有効化または無効化 から変更することもできます。
コマンドを実行するときにはPowerShellを管理者権限で実行する必要があります。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
コントロールパネルで変更した場合でもコマンドで変更した場合でも、PCを再起動します。
仮想マシン プラットフォームの有効化
さらにWindowsの機能の「仮想マシン プラットフォーム」を有効化します。「Linux用Windowsサブシステム」と同じくコントロールパネルから変更することもできます。
また、同じくコマンドを実行することもでき、PowerShellを管理者権限で実行する必要があります。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Linuxカーネルの更新
Linuxカーネルを更新します。
下記のMicrosoft公式サイト(「手順 4 - Linux カーネル更新プログラム パッケージをダウンロードする」)からmsiファイルをダウンロードして実行します。
Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs
WSL2を既定にする
PowerShellを起動して下記のコマンドを実行します。
wsl --set-default-version 2
Linuxディストリビューションをインストールする
WSL1のさいに何かしらのディストリビューションを入れていればこの部分は飛ばします。
ここまでの手順をおこなって新規にインストールした場合には、WSL2で動くことになります。
Microsoft Storeを開いて、好みのディストリビューションをインストールします。
とりあえず、Ubuntuあたりがよさそう。
インストールしたディストリビューションのバージョンが気になれば、以下のコマンドをPowerShellで実行して確認できます。
PS C:\Windows\system32> wsl --list --verbose NAME STATE VERSION * Ubuntu Running 2
既にインストールしているディストリビューションをWSL2にする
既に何かしらのディストリビューションをインストールしている場合には、以下のコマンドをPowerShellで実行してバージョンをWSL2にします。
wsl --set-version <distribution name> <versionNumber>
<distribution name>
にはディストリビューションの名称にします。例:Ubuntu
<versionNumber>
は今回WSL2を使うようにしたいので2
にします。
ディストリビューションの名称ですが、下記のコマンドの出力結果NAME
にあたります。
PS C:\Windows\system32> wsl --list --verbose NAME STATE VERSION * Ubuntu Running 2
終わりに
今回私が実行したときには上述の流れで問題は発生しませんでした。
よくあるトラブルシューティングはMicrosoft公式サイトに記載されています。
やはり公式サイトが最強ですね。