2020年夏、いまさらWSLです。
会社の業務用PCは、基本的にWindowsを使っていることが多いと思います。私もそうです。クリエイティブな業種などMacを使っていますという会社もありますが。
最近はアプリの開発やクラウドを利用するにあたって、Linux・macOSの方がツール・ノウハウが充実している場合がありますし、某社製品などではセットアップに必要なツールがLinux・macOS向けにしか提供してないということもありました。そういった場合にWSLはかなり重宝します。
しかし、私の周りで意外とWSL知られてない・使われてないんです。Linuxの環境が欲しくてWindowsに仮想環境(VMware Player、Virtual Boxなど)を入れて使っていますという方が、結構多いです。
私は問いたい、、、
「本 当 に 仮 想 環 境 が 必 要 で す か ?」
#・WSLのいいところ
・(当たり前ですが)Linuxのコマンドが使える。
・MS Storeからアプリとして導入できるため、煩わしいLinuxインストールが不要。
→ 仮想マシンを作成して、Linuxのメディアをダウンロードして、インストールして、、、不要です。
・起動が高速。
→ 仮想ソフトを起動して、仮想マシンをスイッチオンして、、、不要です。
・ネットワーク周りの設定が不要。
→ 仮想ソフトでブリッジ・NATを定義して、仮想マシンにログインしてLinuxのネットワーク設定、、、不要です。
・Windows Terminalを使っていれば、コマンドプロンプト・Power Shell・Linux環境が1画面から操作可能。
→ 仮想マシンのLinuxにSSHでログインして、、、不要です。
・Dockerも動く。
・クラウド用CLIも動く。
※あと、仮想環境に比べるとメモリの使用率なども少ないと思われますが、比較したことがないです。
#・仮想環境じゃなきゃできないこと
・好きなLinuxディストリビューションを使う。
→ WSLでもUbuntu・Debian・SUSE・CentOSなど使えますが、MS Storeで提供されているものに限ります。
・Linux向けのソフトウェアの検証をしたい。
→ WSLではLinuxのカーネルが存在しないなど通常のLinux環境と100%の互換性はありません。
ソフトウェアによっては正常動作しないと思われます、特にサーバのインフラで利用するクラスタソフトとかデータ複製ソフトとか。
・複雑なネットワークの構成が必要。
→ WSLはWindowsのネットワークをそのまま使うので、ネットワークの設定変更ができません。
早い話、Linuxを導入するサーバの構築や設定を検証したいといった用途には向きません。
#1. WSLのインストール(有効化)
「コントロールパネル」→「プログラム」→「Windowsの機能の有効化または無効化」→「Windwos Subsystem for Linux」にチェックを入れる。これだけ。
#2. MS StoreからLinuxをインストール
MS Storeアプリを起動して、「WSL」で検索すれば色々出てきます。お好きなものをどうぞと言いたいのですが、CentOSなどは有料のようです。私はUbuntuを使っています。仕事ではRedHat・CentOSを中心に使っているので、Ubuntuは慣れていないのですが。。。
※Windows Terminalも入れておけばなお便利。(下の画像、上段のアイコン列で左から3番目)
#3. 起動と初期設定
MS Storeアプリからインストールが完了したら起動。
スタートメニューからも、アプリとして起動可能。
初回起動時はインストール処理のため、「Installing, this may take a few minutes...」という表示で少々待ちます。2~3分だったかしら。
インストール処理が完了したら、「Please create a default UNIX user account. The username does not need to match your Windows username.」という表示が出るので、ユーザを作成しパスワードを設定します。Windowsのユーザと一致させる必要はないので、WSL独自に作成してOKです。
#4. やっといた方がいいこと
###パッケージのアップデート
通常のLinux同様、パッケージの更新を定期的にチェック・更新しておきます。
sudo apt update
sudo apt upgrade
#5. その他
###Windows Terminal
Windows Terminalを使えば、いわゆるDOSコマンド、PowerShell、WSLへ切り替えてLinuxコマンドというのが、1画面で対応可能。
###Linux環境とWindows間でファイルのやりとり
「 \\WSL$ 」 というネットワーク共有を指定すると、WSLに導入されたLinux環境へファイル送受信ができます。
※日本語Windowsだと、\(バックスラッシュ)ではなく、¥(円マーク)ですね。
###Dockerも使える
Windows版のDocker for Windowsは、Hyper-V上で動く仮想マシンにLinux+Dockerが導入されます。Windows 10 HomeはHyper-V使えないし、Docker使いたい場合はSSHで仮想マシンにログインして、、、安心してくださいWSLで使えます。
以下の情報を参考にさせてもらいました、多謝。
[2019年1月版]WSL + Ubuntu で Docker が動くっ!動くぞコイツッ!
###Linux向けの各種ツールも使える(64bit版)
私がLinuxの環境を必要とした最大の理由が、
・各社クラウドのCLIを使いたい
・RedHat OpenShiftのCLIを使いたい
64bit Intel・AMD CPU向けLinux用であれば利用可能でした。
※もちろん、ARM・POWERなどなど非IntelなCPU向けのLinuxツールは使えないです。
以上のように、作業でLinuxコマンドの環境が欲しい場合は、仮想環境を使うよりWSLを使う方が便利かと思います。
#おまけ:WSL2
WSLではLinuxのカーネルが存在しないのですが、WSL2ではHyper-Vの仮想マシンを利用することでLinuxカーネルが含まれる環境になるとのこと。結局WSLも仮想環境になるの?ということですが、アプリ導入で手軽・ネットワーク設定不要・起動が高速といったところは踏襲する模様です。
完全なLinuxがWindows 10上で稼働する? 「WSL 2」とは
「WSL 2」が今後の主流に? LinuxのGUIアプリも動作可能? ~「WSL」のこれからに注目
Linuxとの互換性が高くなり、LinuxのGUIアプリが使える、GPUによる機械学習(いわゆるAI)も利用しやすくなるそうです。
はぁ、もうLinux環境を「主」にして、Windows環境の方を「従」にした方がいいようなw