はじめに
このドキュメントでは、Windows上でLinux環境を動かすためのWSL2でハマったポイント(注意点)について解説します。
ただ自分のような初心者でも理解しやすいように、いきなり注意点に関して説明するのではなく、まずはWSL2に関して基本的な内容から説明していきます。
「そんなこといいからさっさと表題について教えてくれ」という方は、真っ先にハマったポイントと注意点にどうぞ。
WSLとは?
WSLはWindows Subsystem for Linuxの略で、Windows上でLinuxの環境を動かすことができる機能です。
WSL2とその特徴
WSL2は、WSLのバージョン2で、いくつかの重要な改善が行われています。
- 完全なLinuxカーネルを使用
- 完全なシステムコール互換性
WSL2のインストール方法
- PowerShell (または Windows コマンド プロンプト)を管理者モードで開きます
-
wsl --install
コマンドを入力します - 再起動しましょう
- PowerShell/コマンドプロンプトで
wsl
コマンド入力すればもうそこはWSL2の世界です- コマンドプロンプトを起動せずともタスクバーでWSLと検索しても出てくるかと思うのでそちらでも大丈夫です
WSL2を活用する
WSL2を活用して、Linuxコマンドラインツール、スクリプト、アプリケーションの開発、テストなどを行うことができます。
ビバLinux !!
ハマったポイントと注意点
「よーし、これでLinuxが動かせるぞ〜。まずはyarn install
コマンド実行してhogehogeプロジェクトの依存関係をインストールしよう!」
User /mnt/c/hogehoge $ yarn
「。。。遅い」
そうなんです。コマンド実行にめちゃくちゃ時間がかかるんです。
これはなぜかというと、WSL2とWindowsのファイルシステム間での通信が遅いためです。
実際にMicrosoftのドキュメントでも WSL1 と WSL2 を比較した際に、 WSL2 が劣っている点として「OS ファイル システム間でのパフォーマンス」を挙げているのです。
なのでWSL2でWindowsのファイルシステムを/mnt
下で操作するときは、パフォーマンスが落ちることがあります。
ですので可能な限り、Linux環境内でファイルを操作することをお勧めします。
User /mnt/c/hogehoge $ cd
User ~ $ git clone hogeohge
User ~ $ cd hogehoge
User ~/hogehoge $ yarn
このようにLinux環境内に移動してファイル操作(コマンド実行)してみてください。
実際に比べてみると一目瞭然かと思います。
まとめ
先にも述べたように、/mnt
下でのファイル操作はパフォーマンスの面で若干遅くなることがあるため、注意が必要です。
しかしながら、それ以外の面においては、Linux GUI アプリを実行することもできますし、
完全なLinuxカーネルをWindows上で動作させることが出来るので、
WSL2は(階層にさえ注意すれば)開発者にとって強い味方になってくれるはずです。