WindowsのマシンでLinuxを使おうと思ったら仮想マシンを用意するか、そもそもマシンにLinuxをインストールしてWindowsと共存させるデュアルブートみたいなことをする必要がありました
これらはわりとめんどくさかったのでLinuxの勉強してみたいと思っても、なかなかLinuxをさわる環境を用意できなかった記憶があります
しかし、Windows Subsystem for Linux ことWSLの登場によって、WindowsでLinuxを使うためのハードルが下がったっぽいぞという話になりました
WSLもあたらしいバージョンWSL2がでて、インストール方法も変化しているみたいなので、WindowsにWSL2をインストールしてLinuxを使えるようにする方法について調べていきます
この記事について
この記事では以下の事柄について調べたり実際にうごかしてみた結果について書いていきます
- WSL2をインストールする
- Windowsターミナルをインストールする
- WindowsターミナルからWSL2でインストールしたUbuntuをうごかしてみる
作業していたときは、Windows 10 Homeエディション バージョン21H2 OSビルド19044でした
WSL2 をインストールする
まずは公式の情報を見に行きます
前提条件
- Windows 10 バージョン 2004 以降 (ビルド 19041 以降)
- Windows 11
前にWSLのインストールをしたことがあるんですが、WSL2のインストールを行うので対象としているWindowsのバージョンが上がっているように思います
Windowsのバージョンが上記に満たない場合は、下記のページにインストール方法が載っています
WSL2のインストール
管理者権限ありでPowerShell、またはコマンドプロンプトで以下のコマンドを実行します
wsl --install
えっ、前に比べてめっちゃカンタンになってる!!
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
を実行することで以下の処理が実行されているようです
- Linux用Windowsサブシステムを有効にする
- 仮想マシンの機能を有効にする
- WSL 2 を既定値として設定する
- 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
を実行したときのインストールを再開させたような文章がありますね
余計な操作はしていないと思うんですが何が原因かはわかってないです…
そしたら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へようこそみたいな表示がされます
これでWindowsにUbuntuのインストールができました
やったね!
Windows Terminalをインストールする
WindowsにWSL2とUbuntuをインストールできました
Ubuntuを起動してみるとUbuntu用のシェルが一つ立ち上がります
Ubuntuのシェルでひとつのウィンドウになっているので、PowerShellやほかのシェルも立ち上げていると別々のウィンドウになるため切り替えがめんどくさいです
そんなめんどくささを解消してくれるのがWindows Terminalです
Windows Terminalのメリットは、
- シェルをタブで管理できる
- タブの領域を分けて複数のシェルを同時に表示できる
- デザインをいじれる
というのがあります
個人的に感動したのはタブで複数のシェルを管理できることですね
ひとつのウィンドウにまとまっていてうれしいです
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からアプリインストーラーを取得してください
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のインストールが完了したので起動してみましょう
スタートメニューからターミナルという名前のアプリを探してクリックすると、
このような画面が表示されます
これでWindows Terminalのインストールが完了し、起動の確認もできました
Windows TerminalからWSL2のUbuntuをうごかしてみる
次にWSL2でインストールしたUbuntuのシェルを表示してみましょう
ココとマークをつけてあるところをクリックすると起動することのできるシェルの候補が表示されます
その中からUbuntuをクリックするとWSL2でインストールしたUbuntuのシェルが起動します
それではUbuntuで何かする前にパッケージのアップデートを行ってUbuntuをうごかしたことしようと思います
sudo apt update && sudo apt upgrade -y
とUbuntuのシェルに入力して実行します
sudo apt update && sudo apt upgrade -y
[sudo] password for hansode:
パスワードの入力を求められるので入力するとずらずらとパッケージのアップデートが始まります
これでWindowsでLinuxをうごかすことができるようになりました
お疲れさまでした
まとめ
- WSL2をインストールする
- Windowsターミナルをインストールする
- WindowsターミナルからWSL2でインストールしたUbuntuをうごかしてみる
上記のやることについてやり方と実際にうごかしてみた結果を説明しました
入力したコマンドのまとめは以下のようになります
wsl --install
本来はWSL2のインストールで同時にインストールされているはずだが、私の環境ではうまくいってなかったためUbuntuをWSL2経由でインストール
wsl --install -d Ubuntu
winget install -e --id Microsoft.WindowsTerminal
sudo apt update && sudo apt upgrade -y
パスワードの入力が求められるのでパスワードを入力する
参考サイト
WSL のインストール | Microsoft Docs
以前のバージョンの WSL の手動インストール手順 | Microsoft Docs
Windows ターミナルの概要 | Microsoft Docs
Windows パッケージ マネージャー | Microsoft Docs
コメント