Windows での Windows Subsystem for Linux 2 (WSL2) のインストール,Ubuntu のインストール,Ubuntu のシェルの起動や設定など,利用の手順を,スクリーンショット等で説明する.最新の Windows を使用する.
【目次】
【サイト内の関連ページ】
【外部ページへのリンク】
Windows 10 を使う場合には,Windows 10 May 2021 Update 以上に更新する.
自動で更新されない場合は, 次のサイトを利用できる.
https://www.microsoft.com/en-us/software-download/windows10
更新による不具合の可能性がある. 大事なデータのバックアップを取っておくなど,慎重に行うこと.
「Hyper-V」にチェックする.(すでにチェックされている場合には,何も行わなくて良い)
「Linux 用 Windows サブシステム」と 「仮想マシンプラットフォーム」にもチェックし, 「OK」をクリック.
※ なお,「Linux 用 Windows サブシステム」がないというときは, 「Windows Subsystem for Linux」と 「仮想マシンプラットフォーム」にもチェックし, 「OK」をクリック.
https://docs.microsoft.com/en-us/windows/wsl/install-win10に記載の手順による
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
https://docs.microsoft.com/en-us/windows/wsl/install-win10に記載の手順による
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
https://docs.microsoft.com/en-us/windows/wsl/install-win10に記載の手順による
wsl --set-default-version 2
※ このとき「 WSL2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel」 のようなメッセージが表示されることがある.
その場合は,表示の指示に従い, https://aka.ms/wsl2kernel から,Linux カーネル更新プログラムパッケージをダウンロードし,インストールする.
wsl --list --online
Windows Terminal やコマンドプロンプトを管理者として実行していたときは,WSLg, WSL update が自動でインストールされる.
wsl --install -d Ubuntu-22.04
このときに設定したパスワードは,sudo コマンドの実行で必要になるので覚えておくこと. パスワードが画面に表示されないのは正常動作である.
wsl --shutdown wsl --unregister Ubuntu-22.04
Ubuntu, OpenSUSE, SUSE Linux Enterprse Server, Lali Linux, Debian GNU/Linux から選ぶことができる.
start ms-windows-store:
※ 「Ubunt 20.04 LTS」を選んだとして説明を続ける.
「入手」が表示されていなくて, 「インストール」が表示されているというときは, 「インストール」をクリック.
新しい画面が現れる. Linux ディストリビューションの初期化が始まる. しばらく待つ.
Ubuntu を起動したあと,「The Windows Subsystem for Linux optional component is not enable. Please enable it and try again」と表示され,進まない場合がある.
上の「Hyper-V,Linux 用 Windows サブシステム,仮想マシンプラットフォームを有効にする」に戻って,やり直してみる.
Ubuntu を起動したあと,「WslRegisterDistribution failed with error: 0x800701bc」と表示され,進まない場合がある.
このときは,次の操作で解決する可能性がある.
その他, Linux ディストリビューションのインストールができないときは, 次のページより手がかりが得られる可能性がある.
このときに設定したパスワードは,sudo コマンドの実行で必要になるので覚えておくこと. パスワードが画面に表示されないのは正常動作である.
Windows で,コマンドプロンプトを開き,次のコマンドを実行する.
wsl -l -v
次のように表示される場合は,WSL のバージョンは 1.
次のように表示される場合は,WSL のバージョンは 2.
「Linux カーネル更新プログラムパッケージ」をインストールしていない場合には, WSL バージョン2が使えるようにするために, 次のページからダウンロードし,インストールする.
WSL のバージョンが 1 のとき, 次のコマンドで,WSL のバージョンを 2 に変更できる.
「Ubuntu-20.04」のところには, いま確認を行ったLinux ディストリビューションの名前を指定すること.
wsl --set-version Ubuntu-20.04 2 wsl -l -v
wsl コマンドの使用法については, https://docs.microsoft.com/ja-jp/windows/wsl/reference
wsl ls
コマンドプロンプトで 「bash」あるいは「wsl」を実行.
wsl
既定の Linux サブシステムをUbuntu-20.04 に設定するときは,Windows で,コマンドプロンプトを開き,次のコマンドを実行する.
wsl -s Ubuntu-20.04
Ubuntu 22.04 でも Ubuntu 20.04 でも Ubuntu 18.04 でも同様の手順になる.
【サイト内の関連ページ】
スタートメニューで Ubuntu を選ぶ.
既定の Linux サブシステム を Ubuntu に設定しているときは, コマンドプロンプトで 「bash」あるいは「wsl」を実行でもよい.
sudo sed -i 's/\/\/archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list sudo sed -i 's/\/\/us.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list sudo sed -i 's/\/\/fr.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo apt -yV upgrade
sudo apt -y update sudo apt -y install build-essential python3-dev python3-pip
試しに Cコンパイラを使ってみる. エディタを使って次のプログラムファイルを作成.「hello.c」のようなファイル名で保存.
エディタ nano を使う場合には 「nano hello.c」を実行し,次のプログラムファイルを作成して保存.
#include<stdio.h> int main() { printf("Hello,World!\n"); printf("sizeof(size_t)=%ld\n", sizeof(size_t)); return 0; }
次のコマンドで,コンパイルして,実行
gcc -o a.out hello.c ./a.out
今度は,Python 3 を使ってみる.
python3 print("Hello,World") exit()
Windows 11 では,WSLg の機能により,WSL2 上の Ubuntu のX ウインドウ・アプリの画面を出すのに特別な設定は必要はない.
WSLg の公式情報: https://github.com/microsoft/wslg
Windows 10 では,次の手順により, WSL2 上の Ubuntu のX ウインドウ・アプリの画面を出すことができるようになる.
Ubuntu の X ウインドウ・アプリを使いたいときのため
次の手順で,SSH サーバを動かす.あわせて,Ubuntu が「デスクトップ」として機能するためのソフトをインストールする.
wsl sudo apt -y install ubuntu-desktop openssh-server net-tools wsl sudo /usr/bin/ssh-keygen -t rsa -b 1024 -f /etc/ssh/ssh_host_rsa_key -C '' -N ''
コマンドプロンプトで 「bash」あるいは「wsl」を実行するか, スタートメニューで Ubuntu を選ぶ.
X サーバソフトとして, MobaXTermをインストール.
次のコマンドで,「inet」のところに表示されるのが,IP アドレスである.
wsl ifconfig
ssh -X <ユーザ名>@<IPアドレス>