2019年2月2日にリリースされたHomebrew v2.0から、公式サポート環境にWindows 10(WSL)とLinuxが加わりました。
この記事では、Homebrewで必要になるWSLのセットアップ方法を解説します。
Windows 10でのWSLのインストール
次の手順でインストールします。
(1) スタートメニューから「設定」を選択します。
(2) 「アプリ」を選択します。
(3) 「プログラムと機能」をクリックします。
少しわかりにくいところにありますが、「関連設定」というところの下にあります。スクリーンキャプチャでは右上に表示されていますが、ウインドウの幅が狭いときは、インストール済みアプリのリストの下に表示されます。
(4) 「Windowsの機能の有効化または無効化」をクリックします。
表示されたウインドウの左側に並んだリンクの中にあります。
(5) 「Windows Subsystem for Linux」と「Windowsハイパーバイザープラットフォーム」(または「Hyper-V」)をチェックして「OK」ボタンをクリックします。
(6) インストールが始まります。インストールが完了すると「必要な変更が完了しました。」が表示されます。「今すぐ再起動」ボタンをクリックします。
Windows 11でのWSLのインストール
次の手順でインストールします。
(1) スタートボタンをクリックし、「設定」を選択します。
(2) 「アプリ」を選択します。
(3) 「オプション機能」をクリックします。
(4) 表示された画面を一番下までスクロール、「関連設定」の「Windowsのその他の機能」という項目をクリックします。
(5) 「Windowsの機能」というダイアログが表示されます。「Linux用Windowsサブシステム」と「Hyper-V」(または「Windowsハイパーバイザープラットフォーム」)をチェックし、「OK」ボタンをクリックします。
(6) インストールが始まります。インストールが完了すると「必要な変更が完了しました。」と表示されます。「今すぐ再起動」ボタンをクリックします。
Linuxディストリビューションをインストールする
次にWSLで動かすLinuxディストリビューションをインストールします。WSLで動かすLinuxディストリビューションは、Microsoft Storeからインストールできます。
Homebrewを使うという目的では、どのディストリビューションでも構わないと思います。私は慣れていることもあり、Ubuntuをインストールすることにしました。
次のように操作します。
Windows 10の場合
Windows 10とWindows 11で少し表示が変わりますが、操作方法は同じです。
(1) Microsoft Storeアプリで「Ubuntu」を検索します。
(2) Ubuntuをクリックします。(この記事執筆時点では無料です)
(3) 入手ボタンをクリックします。
(4) 起動ボタンをクリックします。インストール完了時の通知で「スタートにピンとめ」を選択しておけば、スタートから起動できます。
Windows 11の場合
Windows 10とWindows 11で少し表示が変わりますが、操作方法は同じです。
(1) Microsoft Storeアプリで「Ubuntu」を検索します。
(2) Ubuntuの「インストール」ボタンをクリックします。ストアへのログイン状況や過去に一度もダウンロードしたことがアカウントの場合は「入手」と表示されます。その場合は「入手」ボタンをクリックします。
Ubuntuのセットアップ
Ubuntuを起動すると、シェルが起動します。初回起動時はUbuntu側のセットアップが必要になります。次の手順でセットアップします。
(1) インストール処理の残りが実行されます。そのまま待ちます。
Ubuntuのバージョンによって、次のようなシェルが表示される場合と、GUIでプログレス表示が行われる場合があります。
Installing, this may take a few minutes...
ここで、エラーが表示されることもあります。エラーメッセージと共に、解決方法が書かれたWebサイトのURLが表示されます。そのページを開き、指示に従って解決してから、再度、起動してください。エラー画面は何かキーを押すと閉じられます。
私の環境で起きたエラーについては、この記事の後の項目に書きましたので、参照してください。
(2) しばらくすると、次のように表示され、UNIXユーザーアカウントを作成するため、ユーザー名の入力待機になります。任意のユーザー名を入力します。
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
(3) 次のように表示されるので、パスワードを設定します。
Enter new UNIX password:
Retype new UNIX password:
これで、WSL上でUbuntuを使えるようになりました。
カーネルコンポーネントを更新する
次のようなエラーが表示されることがあります。
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ???????? ?????????????? https://aka.ms/wsl2kernel ????
Press any key to continue...
古いカーネルコンポーネントのときに表示されるエラーなので、https://aka.ms/wsl2kernel
を開き、新しいコンポーネントをインストールする必要があります。次のように操作します。
(1) https://aka.ms/wsl2kernel を開きます。
(2) 「x64マシン用WSL2 Linuxカーネル更新プログラムパッケージ」をダウンロードします。ただし、ARM64マシンなど、x64マシン以外を使っている場合は、Webページに書かれている指示に従ってください。
(3) ダウンロードしたファイルを開きます。ウィザードが表示されるので、「Next」ボタンをクリックします。
(4) インストールが始まります。ウィザードの指示に従います。完了画面になったら「Finish」ボタンをクリックして閉じます。
BIOSやUEFIで仮想化支援機能の有効化が必要なとき
BIOSやUEFIで仮想化支援機能の有効化が必要なときは、次のようなエラーが表示されます。
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
(1) 使用しているマシンの説明書に従って仮想化機能を有効化します。たとえば、私が使用しているDELLのマシンの場合は、BIOSメニューの中に、次の項目があります。
- Enable Intel Virtualization Technology
- Enable VT for Direct I/O
(2) 管理者権限でPowerShellを起動します。
(3) PowerShellで次を実行し、ハイパーバイザーの起動が有効になっているかを確認します。
bcdedit /enum | findstr -i hypervisorlaunchtype
以下のように表示された場合は、ハイパーバイザーの起動がOFFになっています。
hypervisorlaunchtype Off
次のように入力して、有効にします。
bcdedit /set {current} hypervisorlaunchtype Auto
何も表示されない場合は、必要なコンポーネントがインストールされていない可能性があります。まず、次のように入力して、Hyper-Vに対応しているかを調べます。
systeminfo.exe
色々な情報が表示されますが、Hyper-Vの要件を確認します。以下のように出力されればHyper-Vに対応しているマシンです。
Hyper-V の要件: VM モニター モード拡張機能: はい
ファームウェアで仮想化が有効になっています: はい
第2レベルのアドレス変換: はい
データ実行防止が使用できます: はい
この状態でエラーが出ている場合は、Hyper-Vがインストールされていない可能性が高いです。この記事のWSLのインストール手順に従って「Hyper-V」(「Windowsハイパーバイザープラットフォーム」)をインストールしてください。
次のように表示された場合は、既にHyper-Vが使用可能な状態になっています。
Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。