1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2026年度版】WSL2 + UbuntuにNode.jsとnpmを安全に導入する手順

1
Posted at

目次

はじめに

Codex CLIの導入を進めるにあたり、Node.jsとnpmが必要になりました。

しかし、Node.jsやnpmは定期的に脆弱性情報が公開されることがあり、インターネット上には古い手順や環境によっては推奨されない導入方法も見られます。

そのため今回は、WSL2上のUbuntu環境でNode.jsとnpmを導入する前に、利用可能なバージョンや導入方法を確認しながら、安全性にも配慮してセットアップを進めることにしました。

この記事では、実際に確認した内容や実行したコマンド、導入時の判断ポイント、躓いた点を初心者向けにまとめます。


検証環境

  • Windows 11
  • WSL2
  • Ubuntu 24.04.4 LTS
  • Node.js v24.15.0
  • npm 11.12.1

前提

この記事では、WSL2上のUbuntu環境が最新の状態であることを前提に進めます。

Node.jsやnpmを導入する前に、OSやパッケージを最新の状態へ更新しておくことで、既知の脆弱性対策やパッケージの整合性確保につながります。

Ubuntu環境のアップデート手順については、以下の記事にまとめています。

関連記事:

【WSL2上のUbuntuを安全にアップデートした記録【初心者向け】】

本記事では、Ubuntu環境の更新が完了している前提で、Node.jsとnpmの導入を進めます。


Ubuntu標準のNode.jsバージョンを確認する

Node.jsを導入する前に、Ubuntu標準リポジトリで利用できるバージョンを確認しました。

以下を実行します。

apt policy nodejs

実行結果です。

今回は以下のように表示されました。

Installed: (none)
Candidate: 18.19.1+dfsg-6ubuntu5

確認したポイントは以下です。

項目 意味
Installed 現在インストールされているバージョン
Candidate Ubuntu標準リポジトリからインストールされる候補バージョン

今回は、

Installed: (none)

となっていたため、Node.jsはまだインストールされていない状態でした。

また、

Candidate: 18.19.1+dfsg-6ubuntu5

となっていたため、Ubuntu標準リポジトリからインストールした場合は、Node.js 18系が導入されることが分かりました。

いきなりインストールするのではなく、まず利用可能なバージョンを確認しておくことで、Ubuntu標準版を利用するか、Node.js公式のLTS版を利用するかを判断しやすくなります。


Node.jsの導入方法を検討する

Node.jsを導入する方法はいくつかあります。

まず、Ubuntu標準リポジトリでは以下のバージョンが候補として表示されていました。

Candidate: 18.19.1+dfsg-6ubuntu5

次に、Node.js公式サイトで現在のLTS版を確認しました。

nodejs_lts_version.png

確認時点では、以下のバージョンがLTS版として案内されていました。

v24.16.0 LTS

Ubuntu標準版と比較すると大きくバージョン差があることが分かります。

そのため今回は、Ubuntu標準版とNode.js公式LTS版の違いを確認しながら、どちらを採用するか検討しました。

Node.jsの導入方法として、主に以下の選択肢があります。

導入方法 特徴 今回の判断
Ubuntu標準リポジトリ apt install nodejs npm で導入できる。Ubuntu管理なので扱いやすいが、候補バージョンは18系だった 今回は見送り
Node.js公式LTS版 公式サイトで案内されているLTS版を利用できる 今回はこちらを検討
nvm 複数バージョンを切り替えやすい。開発用途では便利だが、管理方法が増える 今回は保留

今回の目的は、Codex CLIやnpmを安全に利用するための前提環境を作ることです。

Ubuntu標準リポジトリではNode.js 18系が候補でしたが、Node.js公式サイトでは v24.16.0 がLTS版として案内されていました。

そのため今回は、Ubuntu標準版をそのまま入れるのではなく、Node.js公式LTS版を導入する方向で進めることにしました。

今回の方針

今回の目的は、Codex CLIやnpmを利用するための前提環境を整えることです。

そのため、長期的なサポートが提供されるLTS版を利用する方針にしました。

また、Node.jsやnpmは定期的に脆弱性情報が公開されるため、できるだけ最新のLTS版を利用し、定期的に更新状況を確認することも重要だと考えています。

今回は、Node.js公式サイトで案内されているLTS版の導入を進めます。


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

Node.js公式サイトから進むと、NodeSourceのGitHubリポジトリへ移動しました。

最初は導入手順がどこにあるのか分からず迷いましたが、以下の「VIEW DOCUMENTATION」をクリックすると公式ドキュメントを確認できます。

node_view_documentation.png

NodeSourceのドキュメントページへ移動すると、ディストリビューションとバージョンを選択できました。

node_distribution_version.png

NodeSourceのドキュメントページでは、利用するLinuxディストリビューション、バージョン、Node.jsのメジャーバージョンを選択すると、対応するインストールコマンドが表示されます。

今回は、以下の環境に合わせて選択しました。

  • Runtime:Node.js
  • Linux Distribution:Ubuntu
  • Distribution Version:Ubuntu 24.04
  • Version:24(LTS)

ここで注意が必要なのは、Runtime も選択する必要がある点です。

最初は Linux DistributionDistribution VersionVersion だけを確認していましたが、RuntimeN|Solid のままだと、Node.js本体ではなくN|Solid用のインストールコマンドが表示されていました。

そのため、以下のように RuntimeNode.js を選択していることを確認しました。

node_install_commands.png

初心者の方は、コマンドを実行する前に、以下の4項目を確認するのがおすすめです。

確認項目 今回の選択
Runtime Node.js
Linux Distribution Ubuntu
Distribution Version Ubuntu 24.04
Version 24

RuntimeN|Solid になっていると、Node.jsではなくN|Solid用のコマンドが表示されるため注意が必要です。

RuntimeNode.js に変更すると、画面下部にNode.js用のインストールコマンドが表示されました。

NodeSourceの手順では、最初に curl のインストールが案内されています。

sudo apt-get install -y curl

私の環境では、以前の作業で curl をインストール済みだったため、以下で確認しました。

curl --version

実行結果では、以下のように curl 8.5.0 が表示されました。

curl 8.5.0

そのため、今回は sudo apt-get install -y curl は実行せず、次の手順へ進みました。

次に確認したのは、NodeSourceのセットアップコマンドです。

curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -

表示されたコマンドを実行する前に、NodeSourceのセットアップスクリプトも確認しました。

ブラウザでコマンド内のURLを開くと、自動的にスクリプトファイルがダウンロードされたため、メモ帳で内容を確認しました。

スクリプトは #!/bin/bash から始まっており、NodeSourceリポジトリの設定や、必要パッケージの導入準備を行う内容であることを確認しました。

内容を確認したうえで、このコマンドで行われることを整理しました。

このコマンドで行われること

今回確認したスクリプトの内容から、

  • NodeSourceリポジトリの登録
  • GPGキーの設定
  • 必要パッケージの確認
  • aptでNode.jsを導入できる状態の準備

が行われます。

Node.js本体はまだインストールされません。

次に、NodeSourceのセットアップコマンドを実行しました。

curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -

実行結果です。

nodesource_repository_configured.png

実行後、以下のメッセージが表示されました。

Repository configured successfully.

これにより、NodeSourceリポジトリの設定が正常に完了したことを確認できました。

また、続けて以下の案内も表示されました。

To install Node.js, run:
apt install nodejs -y

この時点では、Node.js本体はまだインストールされていません。

NodeSourceリポジトリの設定が完了し、aptでNode.jsをインストールできる状態になっただけです。

次に、NodeSourceの案内に従ってNode.js本体をインストールします。

sudo apt install nodejs -y

このコマンドでは、Node.js本体とnpmがインストールされます。

nodejs_install_complete.png


Node.jsとnpmのバージョンを確認する

Node.jsのインストール後、バージョンを確認しました。

node -v

実行結果です。

v24.15.0

続けて、npmのバージョンも確認しました。

npm -v

実行結果です。

11.12.1

これで、Node.jsとnpmがインストールされていることを確認できました。


npmの脆弱性を確認する

npmインストール後、脆弱性情報も確認しました。

npm audit

しかし、以下のエラーが表示されました。

npm error code ENOLOCK
This command requires an existing lockfile.

調べたところ、npm auditpackage-lock.json が存在するNode.jsプロジェクト内で実行する必要があることが分かりました。

今回はホームディレクトリで実行したため、監査対象となるプロジェクトが存在せず、脆弱性確認は実行できませんでした。

そのため、実際の脆弱性確認はNode.jsプロジェクト作成後に実施することにします。

セキュリティ重視の観点では、この確認のためだけに無理に以下のコマンドを実行する必要はないと判断しました。

npm init
npm i

Codex CLI導入前の確認

Codex CLIを導入する前に、Node.jsとnpmが利用できる状態になっているか確認しました。

node -v
npm -v

実行結果です。

v24.15.0
11.12.1

これで、Codex CLIをインストールするための前提環境が整ったことを確認できました。

なお、npmの脆弱性確認については、package-lock.json が存在するNode.jsプロジェクト内で実行する必要があるため、実際のプロジェクト作成後に改めて確認します。


私が躓いた点

今回の作業で躓いた点をまとめます。

1. node.js と入力してしまった

最初にUbuntu標準リポジトリのNode.js候補を確認しようとして、以下のように入力してしまいました。

apt policy node.js

しかし、Ubuntuのパッケージ名は node.js ではなく nodejs です。

正しくは以下です。

apt policy nodejs

2. NodeSourceの導入手順の場所が分かりにくかった

Node.js公式サイトから進むと、NodeSourceのGitHubリポジトリへ移動しました。

最初は導入手順がどこにあるのか分かりませんでしたが、VIEW DOCUMENTATION をクリックすると公式ドキュメントへ進めることが分かりました。

3. Runtimeの選択が必要だった

NodeSourceのドキュメントページでは、Ubuntu 24.04とVersion 24を選択するだけでは不十分でした。

RuntimeN|Solid のままだと、Node.jsではなくN|Solid用のインストールコマンドが表示されます。

Node.jsをインストールする場合は、RuntimeNode.js を選択する必要があります。

4. npm audit はホームディレクトリでは実行できなかった

npmの脆弱性確認として以下を実行しました。

npm audit

しかし、ホームディレクトリで実行したため、以下のエラーが表示されました。

npm error code ENOLOCK
This command requires an existing lockfile.

npm audit は、package-lock.json が存在するNode.jsプロジェクト内で実行する必要があります。

今回は監査対象となるプロジェクトがまだないため、実際の脆弱性確認はNode.jsプロジェクト作成後に行うことにしました。


今回使ったコマンドまとめ

今回使用したコマンドをまとめます。

apt policy nodejs

Ubuntu標準リポジトリで利用できるNode.jsの候補バージョンを確認します。

which curl

curl がインストールされているか確認します。

curl --version

curl のバージョンを確認します。

lsb_release -cs

Ubuntuのコードネームを確認します。

curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -

NodeSourceリポジトリを設定し、aptでNode.jsをインストールできる状態にします。

sudo apt install nodejs -y

Node.js本体とnpmをインストールします。

node -v

Node.jsのバージョンを確認します。

npm -v

npmのバージョンを確認します。

npm audit

npmパッケージの脆弱性を確認します。

npm audit は、package-lock.json が存在するNode.jsプロジェクト内で実行する必要があります。


まとめ

今回は、WSL2上のUbuntu 24.04環境にNode.jsとnpmを導入しました。

導入前にはUbuntu標準リポジトリの候補バージョンを確認し、Node.js公式サイトでLTS版も確認しました。

また、NodeSourceのセットアップスクリプトを実行する前に内容を確認し、何を行うスクリプトなのかを把握したうえで導入を進めました。

最終的に、以下のバージョンが利用できることを確認できました。

Node.js : v24.15.0
npm     : 11.12.1

途中でNodeSourceのドキュメント画面の操作や、npm audit の実行条件など、いくつか躓いたポイントもありましたが、実際に確認しながら進めることで理解を深めることができました。

次回は、この環境を利用してCodex CLIを導入し、コードレビューやドキュメントレビューで活用していく予定です。


関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?