2020/05/18

Windows10+WSL2でLinux環境を手に入れる

WSL2

Windows 10 はみんなが思っている Windows ではない。特に開発者にとって。4年ぶりにPCを新調してWindows 7からWindows 10にアップデートした。自分にとってこれまでWindowsはただのクライアントマシンで、Macが開発環境だった。Windowsで開発するときはリモートのLinuxマシンに対して開発をするというスタイルだった。しかし、この度、うわさの WSL2 を試してみたが、これは革命だ。Windowsのローカル環境に後述するようなLinuxディストリビューションが Hyper-V経由で起動されて動く。もちろんまだ100% Linuxネイティブというわけにはいかないが、個人的感覚だと、十分に軽く、動いているのはLinux Kernelそのものという凄みがある。保守的なエンジニアの自分から見てもこれは実用段階に来ていて、試してみる価値があると思う。

WindowsベースでWeb開発を行う際にLinuxサーバがWindowsの手元で動く仮想サーバは以前から存在するが、WSL2まわりは Windows Terminal や VSCodeとの親和性も高く、またWindows StoreからLinuxディストリビューションを選択してインストールできる気軽さや、開発環境周りの全体的な統合され具合において期待が高い。MacとLinuxの差分よりこっちの方が泣き所が少ないのではないか。または将来的に泣き所が少なくなりそうな予感がある。

WSL2 にのる Linuxディストリビューション

WSL2にのるLinuxディストリビューションは、それぞれWSL2用にカスタマイズされている。WSL2環境が整うと、これらのディストリビューションはMicrosoft Storeからぽちぽちするだけでインストールされてシェルが起動できてしまう。ちなみにいまのところGUIはありません。

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • OpenSUSE Leap 15
  • OpenSUSE Leap 42
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 15
  • Kali Linux
  • Debian GNU/Linux
  • Fedora
  • Pengwin
  • Pengwin Enterprise
  • Alpine WSL

WSL2を導入する

WSL2 は Windows 10 Home でも動く。Windows 10 Pro である必要はない。(とはいえ価格差が小さくなりつつあるので長期的に開発者をするのであればできれるだけProの購入をおすすはめしますが、WSL2に関してはHOMEで十分)

さて、WSL2 を Windows 10に導入する方法ですが、手順は Microsoftのドキュメント で十分だと思われますので、ここでは自分がハマったところや最初から理解できていればもっと楽だったのにと思われるメモを残しておきます。

WSL2 は Windows 10 Insider Preview ビルドで動く

WSL2を導入する前に、Windows自体の更新がおそらく必要です。具体的には Windows 10 Insider Preview ビルド の導入が必要です。Windows 10 Insider Preview ビルドというのは Windows10開発者向けのビルドで、通常のビルドで配信されるものよりも安定度には欠けますが、先行した機能が含まれています。WSL2のためにはこのWindows 10 Insider Preview ビルドが必要で、つまり通常版より多少不安定な要素を含むことになるので、必要なバックアップは自己責任で実施しておいた方が良いです(ちなみに私はいまのところ何の不具合にも遭遇していません)。

ただ、このWindows 10 Insider Preview ビルドにはさらに3つの分類があり、Release Previewとスローとファーストに分かれます。ファーストが最も更新頻度が高く先端的ですがバグを含むリスクも高いもので、よほどの意図がない限りはRelease Previewかスローのどちらかを選択するとそれほど高いリスクを負わずにWindows 10 Insider Preview ビルドを利用できます。

Windows 10 Insider Preview ビルドのバージョン

Windows 10 Insider Preview ビルドを無事インストールしても、WSL2がすんなり入れられないことがあります(WSL2が入らなかったかLinuxディストリビューションが入れられなかったかちょっと忘れた)。私がハマったのは、Windows 10 Insider Preview ビルドを入れた後、さらに更新をする必要があったのですが、それになかなか気づけなかった。

このWindows 10 Insider Preview ビルドを入れた後に更新が必要という情報は 英語版のドキュメント で発見しました。(まあ、何か入れたらすぐ更新するのはお作法のうちなんですけど)

診断&フィードバックの設定が「完全」でないといけない

Windows 10 Insider Preview ビルドをインストールするためには、Windowsの設定「診断&フィードバック」で「完全:すべての基本的な診断データ」を送る設定が必要です。これがないとWindows 10 Insider Preview ビルドの登録が済んでも更新時にフィードバックの設定が必要と言われて先に進めなくなります。

Administrator権と再起動

いくつかの手順では Administrator権限が必要です。また、いくつかの手順のあとにはPC再起動が必要になります。WSL2の設定をするPCと手順を見るPCが同じだと、ちょっとうっとおしいかもしれません。

LinuxとWindowsをまたぐファイルやディレクトリの閲覧

エクスプローラでLinux側のディレクトリを見る

WSL2によってWindowsに乗ったLinux環境ができたわけですから、WindowsらしくエクスプローラでLinuxのファイルやディレクトリが触れると素晴らしいですよね。簡単です。エクスプローラを起動して「\wsl$」と入力すると起動しているディストリビューションのディレクトリに一撃で飛べます。もちろんショートカットを作ることもできます。Windowsのファイルシステムと、WSL2経由のLinux内は、ほとんど同じように扱えます。さらに、WinSCPなどのGUIで開いたリモートのサーバから、WSL2上のLinuxにあるディレクトリに直接ファイル移動なんかもできます。

Power ShellでLinux側のコマンドを実行する

Windowsの Power Shell から Linux 側のコマンドを実行するのは wsl コマンド経由。

PS C:\Users\user> wsl -d Ubuntu-18.04 -e ls /home/
user

余談

CentOS

https://github.com/yuk7/CentWSL/releases

Microsoft Storeにはないが、上記 github に CentOS7, 8 のプロジェクトがある。

アンインストール

WSL2で入れたインスタンスをアンインストールしたい場合はどうするのか。

Windowsのメニューから 設定 > アプリと機能 と進んでアプリ一覧の中から見つけて「アンインストール」ボタンでサクッとアンインストールできる。

また、アンインストールはしないで初期状態に戻したいだけの場合は、アンインストールボタンではなくアプリ一覧からクリックした状態の中に「詳細オプション」を開いて「リセット」ボタンを押すとこれまたサクっと初期化できる。

まとめ

ここまで全部無料ですごすぎる。

ごきげんよ~

サイト内検索