LinuxにNode.jsをインストールして使う入門|nvmでWSL2やVPSにJavaScript実行環境を構築する方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > LinuxにNode.jsをインストールして使う入門|nvmでWSL2やVPSにJavaScript実行環境を構築する方法
「Node.jsをLinuxで動かしたいのに、どこから手をつければいいか分からない」
「WindowsでNode.jsを使っていたが、サーバーや開発環境がLinuxだと設定の仕方が違うのか不安」

こうした悩みを持つ初心者は多いです。Node.jsはWebアプリやAPIサーバーを作るための実行環境ですが、LinuxにインストールしてCLIから動かすとなると、Windows環境とは勝手が違うと感じる方がほとんどです。

この記事では、Linux環境(WSL2・Ubuntu・Rocky Linux)にNode.jsをインストールして動かすまでの手順を初心者向けに解説します。
nvm(Node Version Manager)を使ったバージョン管理から、npmコマンドの基本、実際にNode.jsスクリプトを実行するところまでカバーします。

この記事のポイント

・Linux(Ubuntu/Rocky Linux)へnvmでNode.jsをインストールできる
・npmコマンドでパッケージを管理する基本操作を習得できる
・node コマンドでJSファイルを実行・動作確認する方法がわかる
・よくあるエラーと対処法も網羅している


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜLinuxでNode.jsを動かすのか?

JavaScriptはもともとブラウザで動く言語でした。それをサーバーサイドで動かせるようにしたのがNode.jsです。
現在では、WebAPIの開発・CLI(コマンドライン)ツールの制作・ビルドツール(webpack/viteなど)の実行など、開発現場でNode.jsが必要になる場面はどんどん増えています。

Windowsでも動かすことはできますが、本番のサーバー環境はほぼ必ずLinuxです。WSL2(Windows Subsystem for Linux)を使えば、Windowsのデスクトップ環境からLinuxのシェルを起動してNode.jsを扱えるため、「ローカルで開発してLinuxサーバーに本番デプロイ」という本物の開発フローを手元で練習できます。

また、バージョンの切り替えが柔軟に行える点もLinuxの強みです。プロジェクトによって「Node.js 18が必要」「Node.js 20で動かす」といった差があることが多く、nvm(Node Version Manager)というツールを使えばコマンド1行でバージョンを切り替えられます。

事前に確認:環境と前提条件

この記事ではUbuntu 24.04 LTS(WSL2またはVPS)・Rocky Linux 9.4で動作確認を行っています。
手順はほかのDebianやCentOS系でも基本的に同じです。

作業前に以下を確認してください:

・インターネットに接続できる状態であること
・sudo(管理者権限)が使えるユーザーでログインしていること
・WSL2を使う場合は「ディストリビューション入門」の手順でWSL2のセットアップを済ませていること

1. シェルが起動できるか確認する

まずターミナル(またはWSL2のシェル)を開いて、Linuxが動いているか確認します。

# ログインユーザーを確認する $ whoami tomohiro # OSの種類を確認する(Ubuntu/Rocky Linuxなど) $ cat /etc/os-release | head -4 NAME="Ubuntu" VERSION="24.04.2 LTS (Noble Numbat)" ID=ubuntu ID_LIKE=debian

上のように自分のユーザー名とOS情報が表示されれば問題ありません。

2. パッケージ管理コマンドの確認

Linuxのディストリビューションによってパッケージマネージャーのコマンドが違います。

Ubuntu/Debian系(WSL2で標準):apt コマンドを使う
Rocky Linux/RHEL系:dnf コマンドを使う

どちらを使うかわからない場合は、以下で確認できます。

# Ubuntuかどうか確認する $ which apt /usr/bin/apt # Rocky Linuxかどうか確認する $ which dnf /usr/bin/dnf

コマンドのパスが表示されれば、そのパッケージマネージャーが使えます。

nvmをインストールする

Node.jsを直接インストールする方法もありますが、現場ではnvm(Node Version Manager)経由でのインストールを強く推奨します。
理由は2つあります。

・複数バージョンを切り替えられる(プロジェクトによってNode.jsのバージョンが異なるため)
・sudo不要でインストールできる(システム全体を汚染しない)

1. nvmをダウンロードしてインストールする

# curlでnvmのインストールスクリプトをダウンロード・実行する $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash # 実行後の出力例 => Downloading nvm from git to '/home/tomohiro/.nvm' => Cloning into '/home/tomohiro/.nvm'... remote: Enumerating objects: 375, done. remote: Counting objects: 100% (375/375), done. => Appending nvm source string to /home/tomohiro/.bashrc => Appending bash_completion source string to /home/tomohiro/.bashrc => Close and reopen your terminal to start using nvm or run the following to use it now:

上のように「Appending nvm source string to /home/tomohiro/.bashrc」と表示されればインストール成功です。

2. シェルに設定を反映させる

nvmをインストールすると ~/.bashrc にパスが追記されますが、現在のシェルには反映されていないため、以下のコマンドで読み込みます。

# .bashrcを再読み込みする $ source ~/.bashrc # nvmが使えるようになったか確認する $ nvm --version 0.40.0

バージョン番号が表示されればnvmが使えるようになっています。

3. curlが入っていない場合

インストールスクリプトのダウンロードにはcurlコマンドを使います。
「command not found」と出た場合はcurlを先にインストールしてください。

# Ubuntu/Debianの場合 $ sudo apt update && sudo apt install -y curl # Rocky Linux/RHELの場合 $ sudo dnf install -y curl

Node.jsをインストールする

nvmが使えるようになったら、Node.jsの最新LTS(Long Term Support)バージョンをインストールします。
LTSとは長期サポート版のことで、本番環境での安定稼働が保証されたバージョンです。

1. LTS版Node.jsをインストールする

# 最新LTS版のNode.jsをインストールする $ nvm install --lts # インストール後の出力例 Installing latest LTS version. Downloading and installing node v20.18.0... Downloading https://nodejs.org/dist/v20.18.0/node-v20.18.0-linux-x64.tar.xz... ######################################################### 100.0% Computing checksum with sha256sum Checksums matched! Now using node v20.18.0 (npm v10.8.2) Creating default alias: default -> lts/* (-> v20.18.0)

「Now using node vXX.XX.X」と表示されればNode.jsのインストール成功です。

2. インストールされたバージョンを確認する

# Node.jsのバージョンを確認する $ node --version v20.18.0 # npm(パッケージマネージャー)のバージョンも確認する $ npm --version 10.8.2 # インストール済みのNode.jsバージョン一覧を表示する $ nvm ls -> v20.18.0 default -> lts/* (-> v20.18.0)

「v20.18.0」のようにバージョンが表示されれば正常です。

npmの基本操作を覚える

Node.jsをインストールすると、同時にnpm(Node Package Manager)も使えるようになります。
npmはLinuxのaptやdnfと同じ「パッケージ管理ツール」ですが、JavaScriptのライブラリやフレームワークを管理するために使います。

1. package.jsonを作成してプロジェクトを初期化する

npmを使う場合、まずプロジェクトのディレクトリを作成し、npm initでpackage.jsonを生成します。

# プロジェクト用ディレクトリを作成して移動する $ mkdir my-node-project && cd my-node-project # package.jsonを生成する(-yで質問をスキップ) $ npm init -y # 出力例 Wrote to /home/tomohiro/my-node-project/package.json: { "name": "my-node-project", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC" }

2. パッケージをインストールする

# lodash(ユーティリティライブラリ)をインストールする例 $ npm install lodash # 出力例 added 1 package, and audited 2 packages in 2s 1 package is looking for funding run `npm fund` for details found 0 vulnerabilities # インストール済みパッケージの一覧を確認する $ npm list my-node-project@1.0.0 /home/tomohiro/my-node-project └── lodash@4.17.21

3. パッケージを削除する

# パッケージを削除する $ npm uninstall lodash removed 1 package, and audited 1 package in 1s found 0 vulnerabilities

Node.jsでスクリプトを実行する

インストールと基本操作が確認できたら、実際にNode.jsでJavaScriptファイルを実行してみましょう。

1. 最初のJSファイルを作成する

# テキストエディタ(nano)でJSファイルを作成する $ nano hello.js

nanoが開いたら、以下を入力してください(Ctrl+Oで保存、Ctrl+Xで終了):

// hello.js console.log('Hello, Linux Node.js!'); const now = new Date(); console.log('現在時刻: ' + now.toLocaleString('ja-JP'));

2. スクリプトを実行する

# nodeコマンドでJSファイルを実行する $ node hello.js # 出力例 Hello, Linux Node.js! 現在時刻: 2026/6/4 10:00:00

「Hello, Linux Node.js!」と現在時刻が表示されれば成功です。

3. 対話型シェル(REPL)を起動する

nodeコマンドをファイルなしで実行すると、対話型のJavaScript実行環境(REPL)が起動します。
計算やちょっとした動作確認に使えます。

# REPLを起動する $ node Welcome to Node.js v20.18.0. Type ".help" for more information. > 1 + 2 3 > console.log('test') test undefined > .exit $

「.exit」または「Ctrl+C」を2回押すと終了します。

バージョンを複数管理する(nvmの応用)

プロジェクトによってNode.jsのバージョンを切り替えるのがnvmの真価です。

1. 別バージョンのNode.jsを追加インストールする

# Node.js 18系をインストールする $ nvm install 18 # インストール済みバージョン一覧を確認する $ nvm ls v18.20.5 -> v20.18.0 default -> lts/* (-> v20.18.0) lts/* -> lts/iron (-> v20.18.0) lts/hydrogen -> v18.20.5

2. 使用するバージョンを切り替える

# Node.js 18に切り替える $ nvm use 18 Now using node v18.20.5 (npm v10.7.0) # バージョンを確認する $ node --version v18.20.5 # 元のLTS(v20)に戻す $ nvm use --lts Now using node v20.18.0 (npm v10.8.2)

3. .nvmrcファイルでプロジェクトのバージョンを固定する

プロジェクトのルートディレクトリに.nvmrcファイルを置くと、そのプロジェクトで使うNode.jsのバージョンを明示できます。

# .nvmrcファイルを作成する(v20を指定する例) $ echo "20" > .nvmrc # .nvmrcを読んでバージョンを切り替える $ nvm use Found '/home/tomohiro/my-node-project/.nvmrc' with version <20> Now using node v20.18.0 (npm v10.8.2)

チームで開発する場合や、複数プロジェクトを管理する場合に役立ちます。

トラブルシュート:よくあるエラーと対処法

「nvm: command not found」が出る

nvmをインストールしたのに使えない場合は、シェルに設定が読み込まれていない可能性があります。

# .bashrcを再読み込みする $ source ~/.bashrc # または新しいターミナルを開き直す # WSL2の場合はウィンドウを閉じて再度開く # ~/.bashrc にnvmの記述があるか確認する $ grep -n "nvm" ~/.bashrc export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

上の2行が~/.bashrcに追記されていない場合は、以下を手動で追記します。

# 手動でnvmのパス設定を~/.bashrcに追記する $ echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc $ echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.bashrc $ source ~/.bashrc

「node: command not found」が出る

nvmはインストールできたがnodeが使えない場合は、Node.jsがインストールされていないかバージョンが切り替わっていない可能性があります。

# インストール済みバージョンを確認する $ nvm ls # 何も表示されない場合はLTS版をインストールする $ nvm install --lts # バージョンが表示されるがnodeが使えない場合はuse で切り替える $ nvm use --lts

「EACCES: permission denied」でnpmがエラーになる

nvmを使わずにaptやdnfでNode.jsをインストールした環境でnpmを使おうとすると、権限エラーが出ることがあります。

# エラーの例 $ npm install -g some-package npm WARN checkPermissions Missing write access to /usr/lib/node_modules npm ERR! code EACCES npm ERR! syscall access npm ERR! path /usr/lib/node_modules # 対処:nvmでNode.jsをインストールし直す # (nvmを使えばsudo不要でグローバルインストールが可能になる) $ nvm install --lts $ nvm use --lts $ npm install -g some-package # sudoなしで成功する

nvmを使わない場合にこのエラーが出たら、nvmを使う方式に切り替えることを強く推奨します。

「npm WARN EBADENGINE」が出る

使用しているNode.jsのバージョンが、インストールしようとしているパッケージの要件を満たさない場合に出ます。

# エラーの例 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'some-package@2.0.0', npm WARN EBADENGINE required: { node: '>=20' }, npm WARN EBADENGINE current: { node: 'v18.20.5', npm: '10.7.0' } npm WARN EBADENGINE } # 対処:Node.jsを必要バージョン以上に切り替える $ nvm use 20 $ npm install some-package

本記事のまとめ

Linux環境(Ubuntu・Rocky Linux・WSL2)でNode.jsを使う基本的な手順を解説しました。
やりたいこと コマンド
nvmをインストールする curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
nvmの設定を現在のシェルに反映する source ~/.bashrc
Node.js(最新LTS)をインストールする nvm install --lts
Node.jsのバージョンを確認する node --version
インストール済みバージョン一覧を表示する nvm ls
使用バージョンを切り替える nvm use 18
JSファイルを実行する node ファイル名.js
パッケージをインストールする npm install パッケージ名
パッケージを削除する npm uninstall パッケージ名
プロジェクトのバージョンを固定する echo "20" > .nvmrc && nvm use
nvmを使ったインストールを習得すると、バージョン管理がスムーズになり、実際の開発現場に近い環境を手元で再現できます。

Node.jsが動く環境を構築できたら、次のステップとしてLinuxのコマンドや権限管理を深く理解しておくと、サーバー上でのアプリ運用がずっとスムーズになります。以下の記事で基礎をおさらいしてください。

Linuxの基礎スキルを次のステップへ

Node.jsのような開発ツールをLinux上で運用するためには、コマンドや権限・プロセス管理の知識が不可欠です。
以下の7つのテーマで、実務直結のLinuxスキルを身につけましょう。

grepコマンドで文字列を検索する方法|複数ファイルやディレクトリ除外も(ログ調査に必須)
chmodコマンドで権限を変更する方法|755と644の違いや一括変更も(スクリプトや設定ファイルの権限管理)
chownコマンドで所有者・グループを変更する方法|-Rの一括変更も(デプロイ後のファイル所有者変更)
psコマンドでプロセスを確認する方法|auxと-efの違いやgrep検索も(Node.jsプロセスの確認)
crontabコマンドの設定と書き方|動かない時のログ確認まで(定期実行・バッチ処理)
findコマンドでファイル・ディレクトリを検索する方法|名前や更新日時で探す(ファイル管理・調査)
tarコマンドで圧縮・解凍(展開)する方法|必須のzxvfやディレクトリ指定も(バックアップ・ファイル転送)
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。