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を有効にする

  1. 設定(コントロールパネル)>アプリ WSLインストール
  2. アプリと機能>関連設定>プログラムと機能 WSLインストール
プログラムと機能が見つからなかったりクリックできない場合は、エクスプローラを開き「コントロール パネル\プログラム\プログラムと機能」とアドレスバーに入力します。
  1. Windows の機能の有効化または無効化 WSLインストール
  2. Windows Subsystem for LinuxLinux 用 Windows サブシステム(2020.05.10修正)をチェックしてOKボタン
    Windows10 古いバージョンにおける表示
    WSLインストール
    Windows10 最近のバージョンにおける表示
    WSLインストール
  3. Windowsを再起動する

Ubuntuをインストールする

  1. Microsoft Storeを起動 WSLインストール
  2. WSLを検索 WSLインストール
  3. Ubuntuを選択 WSLインストール
  4. 入手ボタンをクリックし、ダウンロードとインストールを行う WSLインストール

インストールした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のサイトで記載されている安定版や最新版でないことが確認できると思います。

Node.js LTS

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

各ファイルの内容は以下のようにします。

http.js
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...')
test.html
<!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にアクセスし、ページが表示されることを確認します。

Node.jsページ

ファイルアクセス

WSLからWindows上のファイルにアクセスする

/mnt/ドライブ名で対象のドライブにアクセスできます。下記はCドライブに移動する場合。

cd /mnt/c

WindowsからWSL上のファイルにアクセスする

エクスプローラーのアドレスバーに\\wsl$と入力することでアクセスできます。
※Windows10 1903以降で利用可能
以下のようにインストールしたディストリビューションが表示されない場合は、WSLのアプリケーションを起動してみてください。

WSLファイルの参照
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

スポンサードリンク

関連コンテンツ

Comments
  1. kokei より:

    こんにちは。わからないことがあって色々検索したらこちらに来ました。おたずねしたいのですが、Windows10にubuntuをインストールした後、あるアプリをインストール。そのアプリはどのように起動したらいいか?インストールしたubuntuのウィンドウ内でコマンドラインでしか使えないのか?この先アプリの起動の仕方がわかりませんのでお聞きしたいのですが・・・ よろしくお願いいたします。

    • かもめ かもめ より:

      kokei 様
      WSLだとコマンドラインしか無理だと思います。
      WSL2というものがありますので、そちらだと、もしかしたらGUIが使えるかもしれません(現時点でWSL2を私は触れたことがありません)

kokei へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です