【WSL】WSLを使ってLinux環境を構築する
WSL(Windows Subsystem for Linux)を使って、Windows 10/11にLinux環境を構築します。インストールするディストリビューションは既定のUbuntuです。
WSL(Windows Subsystem for Linux)
WSL1とWSL2
WSL(Windows Subsystem for Linux)は、Windows上でLinuxの動作環境を提供する仕組みです。開発者のツールとしてマイクロソフトから提供され、2017年10月にバージョン1(WSL1)、2019年2月にバージョン2(WSL2)がリリースされています。
WSL1は、LXCore/LXSSという2つのカーネルドライバによってLinuxシステムコールとWindowsシステムコールを変換するサブシステム、およびBashシェルなどのプログラムを提供するもので、Linux環境(Linuxカーネル)のエミュレーションとして動作します。WSL1は、少ないリソースで動作するメリットがある反面、未対応のシステムコールを利用するプログラムは動作しないなどのデメリットがあります。
WSL2は、WSL1の仕組みとは異なり、Windowsの仮想環境であるHyper-Vハイパーバイザー上で専用の仮想マシン(Lightweight Utility VM)として動作するため、完全なLinux環境(Linuxカーネル)であり、システムコールの完全な互換性を保っています。
本記事では、バージョン2(WSL2)を使ったLinux環境の構築について紹介します。インストールするディストリビューションは既定のUbuntuです。
WSLを使ったLinux環境の構築
前提条件
本記事で紹介するインストール手順の前提条件は次の通りです。
- Windows 10 バージョン 2004以上(OSビルド 19041以上)
- Windows 11
- Windows Server 2022
Windows 10のバージョンを確認するには[Windowsキー]+[R]を押して「winver」を実行します。2004以降なので、2004・20H2・21H1・21H2・22H2となります。
インストール
「スタート」ボタンを右クリックして、管理者のコマンドプロンプト、またはPowerShellを起動します。
- Windows 10 ・・・ コマンドプロンプト(管理者)
- Windows 11 ・・・ ターミナル(管理者)
- Windows Server 2022 ・・・ Windows PowerShell(管理者)
以下のコマンドを実行します。
コマンド実行後、自動的に「仮想マシンプラットフォーム」「Linux用Windowsサブシステム」「Ubuntu」がインストールされるのでしばらく待ちます。正常に終了した旨のメッセージが表示されたらシステムを再起動します。
再起動後、自動的にUbuntuが起動するのでしばらく待ちます。ユーザーアカウントを作成する旨のメッセージが表示されるので、ユーザー名(以下の例では「wsladmin」)とパスワードを入力します。ここで作成するユーザーアカウントが既定となり、Ubuntu起動時に自動的にログインされます。また、このユーザーアカウントはLinux管理者と見なされ、sudoコマンドが実行できます。
「Installation successful!」が表示されたら、インストールは完了です。もし、パスワードの再入力を間違った場合は、リトライして正しく設定してください。
作成したユーザーアカウントでログインした状態となります。プロンプトには「ユーザーアカウント名@ホスト名(以下の例では「wsladmin@hostname」)」が表示されます。
パッケージの更新
インストールが完了したら、aptコマンドでパッケージの更新を行います。aptコマンドの実行には、root権限が必要なので「sudo apt update」と入力します。実行すると「/etc/apt/sources.list」に記述されたUbuntuの公式リポジトリーから、パッケージのバージョンや依存関係などが記述されたパッケージインデックスを取得して、更新可能なパッケージを確認します。パッケージインデックスの格納先は「/var/lib/apt/lists」です。以下の例では、更新可能なパッケージが128個見つかりました。
更新可能なパッケージは「sudo apt list --upgradable」で確認することができます。
続けて「sudo apt upgrade」と入力します。更新の情報が表示された後、続けるかどうか聞いてくるので「Y」を入力します。
更新処理が終了するまでしばらく待ちます。
プロンプトが表示されると完了です。再度「sudo apt update」で確認します。「All packages are up to date.」と表示されるとすべてのパッケージが更新されています。