こんにちは!技術部のつかさです。
GW最後の日である5/6にMicrosoftから素晴らしい情報が発表されました。
要約するとWSL2という機能としてWindowsにLinuxカーネルが乗っちゃうよ!というお話でした。
もう少し詳しい日本語記事はPublickeyさんから記事が出ています。
[速報]WindowsにLinuxカーネルをバンドルへ、Windows Subsystem for Linuxに最適化。Microsoft Build 2019
そもそもWSLとは「Windows Subsystem for Linux」の略称です。
その名の通りWindows上でサブシステムとしてLinuxを使えるようにした機能になります。
元々は「Bash on Ubuntu on Windows」等とも呼ばれていてWindows上でUbuntu及びbashの実行を一つの目的とした機能でした。
WSL2は「近々」ということなので現在はまだ利用できませんが現状でも利用出来るWSLを使ってWindows上にLinux環境を構築してみます。
WSLの導入
ここでは「Windows 10 Fall Creators Update」が適用済みのWindows10として作業させていただきます。
まずはWSLを利用するために”Windows機能の有効化・無効化”有効化していきましょう。
PowerShellを管理者権限で起動してWSLが無効になっていることを確認しましょう。
PS C:\WINDOWS\system32> dism /online /Get-Features 展開イメージのサービスと管理ツール バージョン: 10.0.17763.1 イメージのバージョン: 10.0.17763.437 パッケージの機能の一覧 : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.17763.1 ~中略~ 機能名 : Microsoft-Windows-Subsystem-Linux 状態 : 無効
既にWSLが有効化されているのであれば以下のコマンドは不要です。
有効化するためには以下のコマンドを発行します。
PS C:\WINDOWS\system32> dism /online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux 展開イメージのサービスと管理ツール バージョン: 10.0.17763.1 イメージのバージョン: 10.0.17763.437 機能を有効にしています [==========================100.0%==========================] 操作は正常に完了しました。 Windows を再起動してこの操作を完了してください。 今すぐコンピューターを再起動しますか? (Y/N)
機能の有効化には再起動が必要なので再起動を行います。
たったこれだけの手順でWSLの導入は完了です!
Linux(Ubuntu)の導入
WSLが有効化できたら次はMicrosoft StoreでLinuxを導入していきましょう。
Microsoft Storeにて「Ubuntu」を検索します。
検索結果に出てきたお好きなUbuntuを選択し、インストールを行います。
ここでは「Ubuntu 18.04」を選択しました。
スタートメニューから選択し、起動してみましょう。
初期セットアップが実行され、完了後にユーザ名とパスワードを決めます。
自身で指定したユーザ/パスワードでログインするとWindows上でUbuntuが使えるようになります。
後は自由にLinuxを利用するだけです。私は手元でのDocker環境&Ansible環境として利用しています。
ネットワークがない状態でもサクッと使えるのでイザと言うときに便利です。
Fedora系(CentOS)Linuxについて
「え?Ubuntu?CentOSがいいんだけど・・」と思われるでしょうがMicrosoft StoreにはCentOSが無いのです。
Fedora互換として米Whitewater Foundryから「WLinux Enterprise」と「Fedora Remix for WSL」が提供されておりますが何れも有償での提供になります。
「WLinux Enterprise」はREHLと互換性がある。と謳われておりますがRedHat社のサポートが受けれるわけではございませんのでご留意ください。
ちなみに2019/05/07時点でMicrosoft StoreでWLinux Enterpriseを検索すると「pengwin企業」としてアプリケーションが表示されます。
総評
時期はまだ未定ですがWSL2では本記事でやった作業がなくともWindows上にLinuxカーネルがバンドルされてくるのでもっと手軽に、より親和性を持ったものが出てくるのかな?と感じています。
現状でも一捻りする必要はありますがpowershell上でLinuxコマンドやbashを動かせるのでもっとシームレスに利用出来るとWindowsServer上でのバッチスクリプトがbashに置き換わる未来もあるのかなと思います。