WSLを使用してWindows10でUbuntuを実行する方法
Windows10上でLinux環境を構築するWSLを使ってみたのですが、すごく便利だったので、そのインストール方法などを紹介します。
一昔前ならCygwin使ったりしてましたが、こっちの方がいいですね。(Visual Studio Codeをメインエディタとして使ってるのもあるかな)
WSLとは
WSLはWindows Subsystem for Linuxのことで、Windows10(64ビット版)の version 1709(Fall Creators Update) から正式版の利用が可能になりました。主な特徴はこんな感じです。
- 仮想マシンよりパソコンの消費リソースが抑えれる
- Linux環境からWindows上のファイルへアクセスが可能
- WindowsからもLinux環境のファイルへアクセスが可能
WSLをインストールする
まずWSLを有効化し、目的のディストリビューションをインストールする流れになります。本記事はUbuntuをインストールする手順になっています。
WSLを有効にする
- 設定(コントロールパネル)>アプリ
- アプリと機能>関連設定>プログラムと機能
- Windows の機能の有効化または無効化
Windows Subsystem for LinuxLinux 用 Windows サブシステム(2020.05.10修正)をチェックしてOKボタンWindows10 古いバージョンにおける表示Windows10 最近のバージョンにおける表示- Windowsを再起動する
Ubuntuをインストールする
- Microsoft Storeを起動
- WSLを検索
- Ubuntuを選択
- 入手ボタンをクリックし、ダウンロードとインストールを行う
インストールしたUbuntuを起動します。
しばらくするとユーザ名とパスワードの入力になります。任意の値を設定してください。
Node.jsをインストールして実行してみる
折角なのでNode.jsをインストールして実行してみましょう。
最初に以下のコマンドを実行します。
sudo apt update
sudo apt upgrade
Node.jsのインストール
Node.jsのインストールには次のような方法があります。目的に応じて、インストール方法を選んでください。
- aptコマンドでインストール
- Personal Package Archiveを使ってインストール
- nvmを使ってインストール
- n packageを使ってインストール
aptコマンドでインストール
一番簡単なのは、apt
(apt-get
)コマンドでインストールする方法です。しかし、apt
コマンドでインストールした場合、古いバージョンのNode.jsがインストールされるので注意しましょう。
sudo apt install nodejs
node -v
node -v
はNode.jsのバージョンを表示するコマンドです。この時Node.jsのサイトで記載されている安定版や最新版でないことが確認できると思います。
Personal Package Archiveを使ってインストール
インストールしたいバージョンがある場合は、PPA(Pen-Pineapple-ApplePersonal Package Archive)を使用します。
Node.jsの公式リポジトリからインストールする方法です。
まず、以下のパッケージがない場合はインストールしてください。
sudo apt install curl
sudo apt install make
sudo apt install gcc
sudo apt install g++
https://github.com/nodesource/distributions
を参考にして、目的のバージョンを取得し、インストールします。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
nvmを使ってインストール
以下のコマンドを実行し、nvmのインストールスクリプトをダウンロードします。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
v0.35.2の部分は記事を書いた時点のものです。最新バージョンはhttps://github.com/nvm-sh/nvmを確認してください。
Ubuntuを再起動して、以下のコマンドを実行します。nvm
が表示されることを確認します。
command -v nvm
また、次のコマンドを実行し、not found
ならUbuntuを再起動してください。
nvm --version
以下のコマンドを実行し、Node.jsのLTSバージョンをインストールします。
nvm install --lts
node -v
n packageを使ってインストール
まず、npmをインストールします。
sudo apt install npm
次に、以下のコマンドでn
をインストールします。
sudo npm install n -g
n
をインストールしたら、以下のコマンドで目的のバージョンをインストールできます。
sudo n <バージョン>
Node.jsの安定版をインストールする場合は以下のコマンドになります。
sudo n stable
インストール後、node -v
でバージョン確認しても古い場合はUbuntuを再起動してからバージョンを確認してください。
動かしてみる
簡単なNode.jsのサービスを作って動かしてみましょう。
mkdir hello-nodejs
cd hello-nodejs/
npm init
hello-nodejs
に以下のファイルを作成します。
- http.js
- test.html
各ファイルの内容は以下のようにします。
const http = require('http');
const fs = require('fs');
var server = http.createServer(
(request, response) => {
fs.readFile('./test.html', 'UTF-8',
(error, data) => {
response.writeHead(200, {'Content-Type':'text/html'});
response.write(data);
response.end();
});
}
);
server.listen(3000);
console.log('server running...')
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>nodejs-test</title>
</head>
<body>
<h1>Node.js Test</h1>
</body>
</html>
以下のコマンドを実行します。Windows側でファイアウォールの設定が表示された場合は許可してください。
node http.js
ブラウザでhttp://localhost:3000
にアクセスし、ページが表示されることを確認します。
ファイルアクセス
WSLからWindows上のファイルにアクセスする
/mnt/ドライブ名
で対象のドライブにアクセスできます。下記はCドライブに移動する場合。
cd /mnt/c
WindowsからWSL上のファイルにアクセスする
エクスプローラーのアドレスバーに\\wsl$
と入力することでアクセスできます。
※Windows10 1903以降で利用可能
以下のようにインストールしたディストリビューションが表示されない場合は、WSLのアプリケーションを起動してみてください。
こんにちは。わからないことがあって色々検索したらこちらに来ました。おたずねしたいのですが、Windows10にubuntuをインストールした後、あるアプリをインストール。そのアプリはどのように起動したらいいか?インストールしたubuntuのウィンドウ内でコマンドラインでしか使えないのか?この先アプリの起動の仕方がわかりませんのでお聞きしたいのですが・・・ よろしくお願いいたします。
kokei 様
WSLだとコマンドラインしか無理だと思います。
WSL2というものがありますので、そちらだと、もしかしたらGUIが使えるかもしれません(現時点でWSL2を私は触れたことがありません)