MENU
カテゴリー
アーカイブ

WindowsにWSL2をインストールしてLinuxを使えるようにする

WindowsのマシンでLinuxを使おうと思ったら仮想マシンを用意するか、そもそもマシンにLinuxをインストールしてWindowsと共存させるデュアルブートみたいなことをする必要がありました

これらはわりとめんどくさかったのでLinuxの勉強してみたいと思っても、なかなかLinuxをさわる環境を用意できなかった記憶があります

しかし、Windows Subsystem for Linux ことWSLの登場によって、WindowsでLinuxを使うためのハードルが下がったっぽいぞという話になりました

WSLもあたらしいバージョンWSL2がでて、インストール方法も変化しているみたいなので、WindowsにWSL2をインストールしてLinuxを使えるようにする方法について調べていきます

目次

この記事について

この記事では以下の事柄について調べたり実際にうごかしてみた結果について書いていきます

やること
  1. WSL2をインストールする
  2. Windowsターミナルをインストールする
  3. WindowsターミナルからWSL2でインストールしたUbuntuをうごかしてみる

作業していたときは、Windows 10 Homeエディション バージョン21H2 OSビルド19044でした

WSL2 をインストールする

まずは公式の情報を見に行きます

前提条件

  • Windows 10 バージョン 2004 以降 (ビルド 19041 以降)
  • Windows 11

前にWSLのインストールをしたことがあるんですが、WSL2のインストールを行うので対象としているWindowsのバージョンが上がっているように思います

Windowsのバージョンが上記に満たない場合は、下記のページにインストール方法が載っています

WSL2のインストール

管理者権限ありでPowerShell、またはコマンドプロンプトで以下のコマンドを実行します

wsl --install
hansode

えっ、前に比べてめっちゃカンタンになってる!!

注意

wsl --installによるWSLのインストールは、WSLがインストールされていない場合に有効で、既にインストールされている場合はWSLのヘルプテキストが表示されます

ちなみに管理者権限無しでPowerShellを起動してwsl --installを入力した場合は、下記のように怒られましたw

wsl --install
要求された操作には管理者特権が必要です。

管理者権限ありでPowerShellを起動してwsl --installを実行した場合、私の環境ではインストールが始まり下記のような表示になりました

wsl --install
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

wsl --installを実行すると自動でいろいろ用意してもらえますが、なにをしているのか確認したい、ひとつずつ手動でインストールしたいという場合は、下記のページを見てみるとよいです

このページを確認すると、wsl --installを実行することで以下の処理が実行されているようです

  1. Linux用Windowsサブシステムを有効にする
  2. 仮想マシンの機能を有効にする
  3. WSL 2 を既定値として設定する
  4. Ubuntu Linux ディストリビューションをダウンロードしてインストールする (再起動が必要になる場合があります)

それぞれのコマンドや操作については上記ページにのっているので参照してみてください

Ubuntuのインストール

本来ならインストールのコマンドでUbuntuのインストールまで行われるはずですが、私の環境ではうまくいかなかったようです

試しにPowerShellでwsl.exeと入力して実行しても、下記のメッセージが表示されUbuntuが起動されませんでした

wsl.exe
Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。
ディストリビューションは Microsoft Store にアクセスしてインストールすることができます:
https://aka.ms/wslstore

もしかしてインストールがなかったことにされているのかなとwsl --installと入力して実行してみるとWSLのヘルプテキストが表示されましたので、インストールは完了しているようです

気をとりなおしてWSL2で使うUbuntuをインストールしていきます

WSL で Ubuntuをインストール

WSLでLinuxディストリビューションをインストールするために、まずはwsl --list --onlineコマンドで利用可能なディストリビューションを調べます

PowerShellでwsl --list --onlineを実行すると次のような結果が返ってきました

wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。

NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS

それではPowerShellにwsl --install -d Ubuntuコマンドを入力してUbuntuをインストールします

実行したところ次のような結果になりました

wsl --install -d Ubuntu
Linux 用 Windows サブシステム が以前のインストールを再開して...
インストール中: Ubuntu
Ubuntu はインストールされました。
Ubuntu を起動しています...

どうも、wsl --installを実行したときのインストールを再開させたような文章がありますね

hansode

余計な操作はしていないと思うんですが何が原因かはわかってないです…

そしたらUbuntuのシェルが表示され、

Installing, this may take a few minutes...
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: yourusername

usernameを決めて、

New password: 
Retype new password:

passwordを決めて、

Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)

インストール完了、Ubuntuへようこそみたいな表示がされます

hansode

これでWindowsにUbuntuのインストールができました
やったね!

Windows Terminalをインストールする

WindowsにWSL2とUbuntuをインストールできました

Ubuntuを起動してみるとUbuntu用のシェルが一つ立ち上がります

Ubuntuのシェルでひとつのウィンドウになっているので、PowerShellやほかのシェルも立ち上げていると別々のウィンドウになるため切り替えがめんどくさいです

そんなめんどくささを解消してくれるのがWindows Terminalです

Windows Terminalのメリットは、

  • シェルをタブで管理できる
  • タブの領域を分けて複数のシェルを同時に表示できる
  • デザインをいじれる

というのがあります

hansode

個人的に感動したのはタブで複数のシェルを管理できることですね
ひとつのウィンドウにまとまっていてうれしいです

wingetでWindows Terminalをインストールする

wingetはWindowsのパッケージ管理ツールで、macでいうHomebrew、Ubuntuでいうaptみたいな感じですかね

コマンドラインでアプリケーションのインストールやアップグレード、アンインストールが可能になる便利なツールです

wingetのインストール

wingetは最近のWindowsのバージョンなら基本入っているみたいで、私もインストールした記憶はありませんでしたが入ってました

ためしに、winget --versionと入力してwingetのバージョンを取得してみると、

winget --version
v1.2.11601

このようにバージョンが表示されたらwingetを利用できます

もし、wingetというコマンドが認識されていなければwingetをインストールする必要があります

そのやり方は下記ページに記載ありますので、Microsoft Storeからアプリインストーラーを取得してください

wingetとても便利そうで、仕事でもバンバン使っていきたいため、これはこれで別の記事で便利に使う方法を調べてみたいと思います

Windows Terminalのインストール

wingetについてはインストール済みとして進めていきます

Windows Terminalをインストールしたいので、PowerShellにwinget search 'windows terminal' のコマンドを実行してパッケージがあるか探します

winget search 'windows terminal'
名前                     ID                                バージョン   ソース
--------------------------------------------------------------------------------
Windows Terminal         9N0DX20HK701                      Unknown      msstore
Windows Terminal Preview 9N8G5RFZ9XK3                      Unknown      msstore
Windows Terminal         Microsoft.WindowsTerminal         1.13.11431.0 winget
Windows Terminal Preview Microsoft.WindowsTerminal.Preview 1.14.1432.0  winget
注意

私がwinget search [query]コマンドを初めて実行したとき、Microsoft Storeにリージョンについての情報を送信することを許可しますかと表示され、Yes/Noを入力する必要がありました
私はYesを入力して送信したら検索が行われ、それ以降は同様の内容は表示されなくなりました

検索結果をみてみると同じ名前でありながらソースがmsstoreのものとwingetのものがあります

IDを指定してインストールするようにすれば意図しないソースからのインストールは防げそうなので、winget経由でアプリケーションをインストールするときはsearchコマンドによって事前にIDを取得しておくとよさそうです

それでは、上から3行目のIDがMicrosoft.WindowsTerminalのものをwinget経由でインストールします

パッケージのIDを指定するため--idオプションをつけ、IDの文字列の大文字小文字を区別するため-eオプションをつけてwinget install -e --id Microsoft.WindowsTerminalコマンドを実行します

winget install -e --id Microsoft.WindowsTerminal
見つかりました Windows Terminal [Microsoft.WindowsTerminal] バージョン 1.13.11431.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
  ██████████████████████████████  100%
インストールが完了しました

まずIDで指定したパッケージが特定され、その次にインストールが始まり、インストールが完了しています

searchコマンド利用してわざわざIDを特定していましたが、仮にwindows terminalとだけ指定してインストールしたらどのようになるのか確認してみます

winget install 'windows terminal'
複数のパッケージが入力条件に一致しました。入力内容を修正してください。
名前             ID                        ソース
--------------------------------------------------
Windows Terminal 9N0DX20HK701              msstore
Windows Terminal Microsoft.WindowsTerminal winget

installコマンドについては、install以降の条件で検索して条件に一致するパッケージがひとつだけならインストールが始まるっぽいですね
複数のパッケージが一致した場合はどのパッケージをインストールするのか判断できないため、より正確な条件を指定するようにメッセージが表示されていますね

Windows Terminalを起動してみる

Windows Terminalのインストールが完了したので起動してみましょう

スタートメニューからターミナルという名前のアプリを探してクリックすると、

ターミナル

このような画面が表示されます

hansode

これでWindows Terminalのインストールが完了し、起動の確認もできました

Windows TerminalからWSL2のUbuntuをうごかしてみる

次にWSL2でインストールしたUbuntuのシェルを表示してみましょう

ココとマークをつけてあるところをクリックすると起動することのできるシェルの候補が表示されます

その中からUbuntuをクリックするとWSL2でインストールしたUbuntuのシェルが起動します

Windows Terminalから起動したWSL2のUbuntu

それではUbuntuで何かする前にパッケージのアップデートを行ってUbuntuをうごかしたことしようと思います

sudo apt update && sudo apt upgrade -yとUbuntuのシェルに入力して実行します

sudo apt update && sudo apt upgrade -y
[sudo] password for hansode:

パスワードの入力を求められるので入力するとずらずらとパッケージのアップデートが始まります

hansode

これでWindowsでLinuxをうごかすことができるようになりました
お疲れさまでした

まとめ

やること
  1. WSL2をインストールする
  2. Windowsターミナルをインストールする
  3. WindowsターミナルからWSL2でインストールしたUbuntuをうごかしてみる

上記のやることについてやり方と実際にうごかしてみた結果を説明しました

入力したコマンドのまとめは以下のようになります

STEP
WSL2のインストール
wsl --install
STEP
Ubuntuのインストール

本来はWSL2のインストールで同時にインストールされているはずだが、私の環境ではうまくいってなかったためUbuntuをWSL2経由でインストール

wsl --install -d Ubuntu
STEP
Windows Terminalのインストール
winget install -e --id Microsoft.WindowsTerminal
STEP
Ubuntuのパッケージのアップデート
sudo apt update && sudo apt upgrade -y

パスワードの入力が求められるのでパスワードを入力する

参考サイト

WSL のインストール | Microsoft Docs
以前のバージョンの WSL の手動インストール手順 | Microsoft Docs
Windows ターミナルの概要 | Microsoft Docs
Windows パッケージ マネージャー | Microsoft Docs

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシー および 利用規約 に適用されます。

reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

目次