Main Logo
hero-background.jpg

Node.jsのバージョン管理は「n」で十分?導入から切り替え、権限エラーの解決まで

シンプルさを追求したNode.jsバージョン管理ツール「n」の導入方法と使い方を徹底解説。

プロジェクトごとのバージョン切り替えで消耗していませんか?macOS/Linuxユーザーに最適な、設定不要で直感的に使える「n」の導入手順と、ハマりがちな権限エラーの回避策をまとめました。


n – シンプルを追求したNode.jsバージョン管理ツール

「特定のプロジェクトで古いNode.jsが必要になった」「最新のLTS(推奨版)を試したい」 Node.jsの開発において、バージョンの不一致は日常的な悩みです。

こうした問題を解決するのがバージョン管理ツールですが、多機能すぎて設定が複雑なものも少なくありません。そこで、macOSやLinuxユーザーに強くおすすめしたいのが、極限までシンプルに設計された**「n」**です。


2025年、なぜ「n」を選ぶのか?

Node.jsの管理ツールには、他にもnvmfnmvoltaなどがありますが、「n」には他にはない明確な強みがあります。

  • シェルを選ばない: サブシェルや複雑なプロファイル設定が不要。インストールしたその瞬間から動作します。
  • 直感的な操作: 学習コストがほぼゼロ。コマンド一行でバージョンを切り替えられます。
  • バイナリ管理: ソースからビルドせず、公式サイトのバイナリを直接配置するため高速です。

導入方法(インストール)

UbuntuなどのLinux環境で、npmを使って「n」を導入する最もクリーンな手順を紹介します。

1.準備:Node.jsとnpmのインストール

まず、ツール自体をインストールするための「種」となるNode.jsが必要です。

# システムのパッケージマネージャーからインストール
sudo apt update
sudo apt install -y nodejs npm

2.nをインストール

次に、npmを使用して「n」をグローバルにインストールします。

# nをインストール
sudo npm install -g n

3. 初期Node.jsの削除(任意・推奨)

「n」がインストールできれば、最初に入れたOS標準のNode.jsは不要になります。競合を避けるために削除しておくほうが良いです。

# OS標準のNode.js/npmを削除
sudo apt purge --autoremove -y nodejs npm

基本的な使い方(バージョン切り替え・確認)

「n」の操作はとても簡単です。基本は「n」の後にバージョンを指定するだけです。

バージョンインストールcommand
目的コマンド例備考/詳細
特定のバージョンをインストールn 24.12.0バージョン番号を直接指定
LTS版(Long Term Support)をインストールn lts最新のLTSインストール
最新版(Newest official release)をインストールn latest最新の公式リリースをインストールします。
インストール済みバージョンの切り替え(対話形式)

単に n とだけ入力すると、ローカルに保存されているバージョンが一覧表示されます。

n

こんな感じでで表示されます。 node-n-switch-ver

上下の矢印キー(または j や k)でバージョンを選択し、Returnキーを押すことで、そのバージョンへの切り替えが完了します。

また、キャッシュされているバージョンを一覧表示するには、n ls コマンドを使用します,。

【重要】「sudo required」エラーの解決策

n lts などを実行した際、書き込み権限エラー(Error: sudo required)が出ることがあります。これは /usr/local への書き込み権限がないためです。

 Error: sudo required (or change ownership, or define N_PREFIX)
デフォルトでは「n」が使用するルートロケーションは/usr/localであり、一般ユーザーが書き込み権限を持たない場合があります。その際は、sudoを使用して実行するか、N_PREFIX環境変数で書き込み可能なカスタム場所を指定するか、必要なディレクトリの所有権を自分自身に変更する必要があります。
解決方法
解決手順:N_PREFIX の設定
  1. 1.ディレクトリ作成
mkdir -p "$HOME/.n"
  1. 2.環境変数の追加 使用しているシェルの設定ファイル(~/.bashrc や ~/.zshrc)の末尾に以下を追記します。
export N_PREFIX="$HOME/.n"
export PATH="$N_PREFIX/bin:$PATH"
  1. 3.シェルの設定ファイルリロード どちらかで動くはず。
zsh
source ~/.zshrc 
bash
source ~/.bashrc

これで sudo なしで自由自在にバージョンを管理できるようになります。

インストールできるリモートバージョンの確認

「今、公式にどのバージョンがリリースされているか」を確認するコマンドです。

目的コマンド例備考/詳細
利用可能な最新のLTSバージョンを表示n ls-remote lts最新のLTS(Long Term Support)リリースをリストアップします 。
利用可能な最新の公式リリースを表示n ls-remote latest最新の公式リリース(Current)をリストアップします 。
特定のメジャーバージョンに一致するリモートバージョンを表示n lsr 10指定したメジャーバージョン(例: 10.x.y)に一致するリモートバージョンをリストアップします 。
ダウンロード可能なすべてのリモートバージョンを表示n --all lsrダウンロード可能なすべてのリモートバージョンをリスト表示します 。

ダウンロード済みバージョンの削除

「n」でインストールしたバージョンは、明示的に削除しない限りローカルにキャッシュされます。

目的コマンド例備考/詳細
特定のキャッシュバージョンを削除するn rm 0.9.4 v0.10.0キャッシュされている特定のバージョンを削除します。複数のバージョンを一度に指定して削除することも可能です,。
現在使用中のバージョン以外を全て削除する(キャッシュの整理)n prune現在アクティブに使用しているバージョンを除き、ローカルにキャッシュされている全てのバージョンを削除します,。

まとめ

Node.jsのバージョン管理ツール「n」は、簡単。シンプル。これが特徴です。node.js単体のバージョンアップ、切り替えは手間なので、シンプルイズベスト。「n」を使ってバージョン管理をするのは楽です。

関連記事

コメントを読み込み中...