「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ファイルを実行・動作確認する方法がわかる
・よくあるエラーと対処法も網羅している
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜ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
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:
2. シェルに設定を反映させる
nvmをインストールすると ~/.bashrc にパスが追記されますが、現在のシェルには反映されていないため、以下のコマンドで読み込みます。# .bashrcを再読み込みする $ source ~/.bashrc # nvmが使えるようになったか確認する $ nvm --version 0.40.0
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)
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)
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
// 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
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 $
バージョンを複数管理する(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
# 手動で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なしで成功する
「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 |
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サーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます