スーパーマリオサンシャインがクリアできないので泣く泣くWSL2を始めました。
1.WSL2の有効化
まず、自分のWindowsのバージョンを確認します。Windowsスタートボタンを右クリック、[システム]>[バージョン情報]を選択。下にスクロールして、「Windowsの仕様」セクションを確認します。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
上記MSホームページの通り「バージョン 2004 以降、ビルド 19041 に更新」されている必要があります。自分の場合、バージョン1909、かつ2004バージョンの自動更新の配信がまだの状態だったので、手動でバージョンをUpdateする必要がありました。
https://support.microsoft.com/ja-jp/help/3159635/windows-10-update-assistant
UpdateAssistantをクリック。
https://www.microsoft.com/ja-jp/software-download/windows10
こちらのページからWindows10Upate.exeファイルをダウンロードし実行します。Windowsを再起動後、「ようこそ・・・」といった大幅Update時に出るメッセージが出力されます。
次に、PowerShellからWSL2を有効化します。Windowsスタートボタンを右クリック、[WindowsPowerShell(管理者)]を選択。以下コマンドを入力します。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
これだけでWSL2の有効化作業は完了です。
2. UbuntuとDebianのダウンロード
Windowsストアアプリを開いて、Linuxを検索。(本当はCentOSがよかったんですが、有料だったのであきらめてUbuntuとDebianを入れてみました。)
ストアアプリの画面から「インストール」をクリック。「起動」をクリック。
起動するとダウンロードしたOSのターミナルが立ち上がり、Userとパスワードを入力後、すぐにコマンドを叩ける状態になります。 ここで作成したユーザーはsudo権限付きユーザーとなるようです。
Ubuntu起動の際に、謎のエラー(エラーメッセージが文字化けしていて読めない)に遭遇しましたが、 https://qiita.com/hali/items/bf04a1e4012025a38d6b こちらを参考にしました。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
ここからmsiファイルをダウンロードし、実行後、再度トライするとUbuntuも無事に起動しました。PowerShell側で確認してみると、しっかり二つ入ってます。
PS C:\WINDOWS\system32> wsl -l Linux 用 Windows サブシステム ディストリビューション: Ubuntu-20.04 (既定) Debian
全体として動作が軽量で操作性も高くかなり好感触です。 WSL2自体に、ホストOS(コンテナで使われるコンポーネント)+Dockerっぽい技術が同梱されている感じで、 WSL2有効化後は、WindowsストアアプリでUbuntuをインストールすれば、すぐにUbuntuのBashを操作することができます。 まぁこれはWSL2というよりWSL自体の良き点です。ただ、WSLの評判で 「一部のdockerコマンドが動かない!泣」のような声をよく聞いていたのでちょっとデビューが遅れました。
特に興味深かったのは、PowerShellでUbuntuのBashのプロンプトから、ホストOSであるWindowsのCドライブとかも参照できることです。 Dockerコンテナを立ち上げた場合、ふつうはコンテナ内部はホストOSとは隔離されるのに、WSLの場合はホストOSと同居している感じが面白いですね。
以上