10 人が閲覧(直近 30 日) Node.js

Nodebrewとは?Node.jsのインストール・切り替え手順と1.2.0の注意点【2026年】

Nodebrewとは?Node.jsのインストール・切り替え手順と1.2.0の注意点【2026年】

Nodebrew(nodebrew)は、Node.jsの複数のバージョンを1台のマシンに入れて、使う版を切り替えるためのコマンドラインツールです。Perlで書かれた1ファイルのスクリプトで、macOSとLinuxで動きます。この記事では、Homebrewでの導入とPATH設定、install・use・alias の使い方を、2026年10月22日にmacOSのIntel x86_64環境でnodebrew 1.2.0を動かした出力つきで解説します。Linux ARMの例は、CPU判定を差し替えて配布URLを確認したものです。最終リリースが2022年3月で止まっているため、Apple SiliconやLinux ARMで入らない版、LTSを指定できない点、migrate-package の落とし穴など、今使うと当たる問題もあわせて扱います。

まとめ|Nodebrewの仕組みと2026年時点の判断

  • Nodebrewは、nodejs.orgの配布物を ~/.nodebrew/node/ の下へ版ごとに展開し、~/.nodebrew/current というシンボリックリンクの向き先を変えて版を切り替えます。PATHに $HOME/.nodebrew/current/bin を通さないと切り替わりません。
  • 基本の流れは brew install nodebrew → nodebrew setup_dirs → PATH設定 → nodebrew install v24 → nodebrew use v24 です。2026年10月22日時点で latest と stable はどちらも v26.12.1 に、v24 は v24.22.1 に解決されました。
  • 最終リリースは2022年3月19日の1.2.0で、以後コミットはありません。LTSの指定(lts)は無く、.nvmrc による自動切り替えもありません。
  • M1〜M4のMacでは、Apple Silicon向けの配布物が無い v15 以前を入れられません。Linuxの64bit ARM(aarch64)では32bit版を取りに行く誤判定があり、v24以降は入りません。
  • macOS(Intel・Apple Silicon)でNode.js 16以降を1つずつ切り替えるだけなら今も動きます。Linux ARM・Windows・チームでの版固定が必要なら、fnmかmiseへ移るのが確実です。

Nodebrewの仕組み|currentリンクによる使用バージョンの共有

Nodebrewの実体は nodebrew という約1,000行のPerlスクリプトです。install を実行すると、OS名と uname のマシン名からnodejs.orgの配布物のURLを組み立て、curl(無ければwget)でtar.gzを取得して展開します。ソースからビルドする compile もありますが、通常は配布物を使う install で足ります。

導入後のディレクトリは次の形になります。置き場所は環境変数 NODEBREW_ROOT で変えられ、既定は $HOME/.nodebrew です。

~/.nodebrew/
├── current -> ~/.nodebrew/node/v24.22.1   # nodebrew use で張り替わる
├── node/
│   ├── v24.22.1/
│   └── v26.12.1/
├── src/      # ダウンロードしたtar.gz(nodebrew cleanで削除)
├── alias     # nodebrew alias の設定
└── default/

nodebrew use は current の向き先を変えるだけなので、切り替えは開いているすべてのターミナルに即座に効きます。シェルごとに版を持つnvmとはここが違い、2つのターミナルで別の版を同時に使うことはできません。一時的に別の版で動かしたいときは、後述の nodebrew exec を使います。

開発状況|1.2.0(2022年3月)以降の更新なし

2026年10月22日に公式リポジトリ(hokaccha/nodebrew)をGitHub APIで確認したところ、最終リリースはv1.2.0、最後のコミットは2022年3月19日の1.2.0リリースで、同じ日に prune コマンドが追加されています。リポジトリはアーカイブされていませんが、未解決のissueが15件、Pull Requestが2件残っています。2015年の「LTSのインストール対応」(#47)と「.nvmrc相当の機能」(#35)、2022年の「aarch64で動かない」(#80)もその中にあります。

一方で利用は続いています。Homebrewのnodebrewのformulaは1.2.0を配布しており、直近365日のインストール数は2,970件でした。macOS(Intel)では、2026年10月21日公開のv26.12.1まで問題なく入りました。一方、後述のLinux ARMの判定やLTSの指定のように、1.2.0の公開後に変わったCPUやNode.jsのリリース方針には対応していません。新しい環境に追随することを前提にせず、使う予定の機能が今の版で動くかを確かめてから選んでください。

Nodebrewのインストール手順|HomebrewとcurlとPATH設定

Homebrewで入れる手順(macOS)

macOSではHomebrewから入れるのが手軽です。formulaの案内(caveats)どおり、続けて setup_dirs で作業用ディレクトリを作ります。

brew install nodebrew
nodebrew setup_dirs

多くの手順記事にある nodebrew setup でも動きますが、こちらはGitHubのmasterブランチからスクリプトをもう1本 ~/.nodebrew/nodebrew へダウンロードします。Homebrewで本体を管理するなら、ディレクトリだけ作る setup_dirs で足ります。

curlで入れる手順(Linux・Homebrewを使わないMac)

Linuxや、Homebrewを使わない環境ではインストーラーをPerlに渡します。READMEにある短縮URL git.io/nodebrew は2026年10月22日時点でもraw.githubusercontent.comへ転送されていますが、転送元のサービスは新規受付を終えているため、転送先を直接指定しておくほうが確実です。

curl -L https://raw.githubusercontent.com/hokaccha/nodebrew/master/nodebrew | perl - setup

WindowsにはWSL(Ubuntuなど)の中で同じ手順で入れます。Nodebrewが組み立てるURLはtar.gz形式だけで、Windows向けのzip配布物(win-x64)を取りに行く処理が無いため、PowerShellやコマンドプロンプトでは使えません。

PATHの設定と反映の確認

macOSの標準シェルはzshなので ~/.zshrc に、bashなら ~/.bashrc(macOSのbashは ~/.bash_profile)に追記します。

echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
nodebrew -v          # nodebrew 1.2.0
# 次節の install と use の実行後に確認する
command -v node      # $HOME/.nodebrew/current/bin/node を指すこと

$PATH の前に置くのが要点です。後ろに置くと、公式インストーラーやHomebrewで入れた /usr/local/bin/node や /opt/homebrew/bin/node が先に見つかります。実測でも、PATHを通さずに nodebrew use v26 を実行すると表示は use v26.12.1 になる一方、command -v node は /usr/local/bin/node のままでした。

Node.jsのインストールと切り替え|install・use・alias

バージョン指定の書き方と解決結果

nodebrew ls-remote でインストールできる版の一覧が出ます。指定は完全な版番号のほか、メジャー版だけ・latest・stable でも書けます。2026年10月22日の実行結果は次のとおりです。

指定 意味 解決された版
latest 最も新しい版 v26.12.1
stable 偶数メジャーの最新版 v26.12.1
v24 / 24 24系の最新版 v24.22.1
v24.22 24.22系の最新版 v24.22.1
lts / --lts 非対応 version not found
$ nodebrew install v24
Fetching: https://nodejs.org/dist/v24.22.1/node-v24.22.1-darwin-x64.tar.gz
Installed successfully
$ nodebrew ls
v24.22.1
v26.12.1

current: none

同じ版をもう一度入れようとすると v24.22.1 is already installed で止まります。install-binary は旧版との互換のために残っている別名で、install と同じ動きです。

nodebrew useによる版の選択とaliasによる名前の登録

$ nodebrew use v24
use v24.22.1
$ node -v
v24.22.1
$ nodebrew alias default v24
default -> v24
$ nodebrew use default

use にもメジャー版だけの指定が使え、入っている中で最も新しい24系が選ばれます。alias は名前に版を割り当てる機能で、nodebrew use default のように使います。不要になった名前は nodebrew unalias default で消します。

LTS版を入れるときの指定方法

Nodebrewには「LTSの最新」を選ぶ指定がありません。stable は「偶数メジャーの最新」というだけで、LTSかどうかは見ていないためです。2026年10月22日時点のNode.jsのリリース予定表では、24系は10月20日からMaintenance LTSに入り、26系は10月28日にLTSへ移る予定です。検証日の2026年10月22日に stable を指定すると、LTS入り前の26系(Current)が選ばれました。

LTSを使うなら版を明示し、nodebrew install v24 のように書きます。26系は10月28日以降にLTSになります。さらに、Node.js 27からはすべてのメジャー版がLTSになり、奇数・偶数の区別がなくなります。予定表でも27系は2027年10月20日にLTS入りとされています。stable は奇数の27系を飛ばし続けるので、版の選び方はNode.js LTSの現行版と移行時期で確認し、番号で指定してください。26系の変更点はNode.js 26の新機能と移行手順にまとめています。

Apple SiliconとLinux ARMでの注意点

Nodebrewは uname のマシン名を見て、取りに行く配布物を決めます。この判定が新しいCPUに追いついておらず、次の2つの問題が出ます。

Apple Silicon向けバイナリの対応境界|Node.js 16以降

Apple SiliconのMacでは uname -m が arm64 を返し、Nodebrewは darwin-arm64 の配布物を取りに行きます。nodejs.orgの配布一覧でApple Silicon向けの配布物が最初に出るのは v16.0.0 です。そのため v14 などの古い版は is not found で止まります(issue #79)。古いプロジェクトのために v14 が必要なら、Rosetta 2で動かしたターミナルから実行すると uname -m が x86_64 になり、Intel向けの版が入ります。逆に、ターミナルをRosettaで開いていると、v16以降でも気づかずにIntel向けの版が入ります。node -p process.arch が arm64 になっているか確認してください。

Linux aarch64でのARM判定不具合とv24以降のバイナリ導入失敗

ソースの判定処理では、Linuxの64bit ARMが返す aarch64 を32bit ARMの armv7l として扱っています。Node.jsは24.0.0から linux-armv7l の配布物を出しておらず(23.11.0までは配布)、Raspberry Pi OS(64bit)やAWS Graviton上では v24 以降を入れられません。判定を aarch64 に差し替えて実行すると、次のようになりました。

$ nodebrew install v24
v24.22.1 is not found

Can not fetch: https://nodejs.org/dist/v24.22.1/node-v24.22.1-linux-armv7l.tar.gz

22系はarmv7l版がまだあるので入りますが、入るのは32bitのバイナリで、32bitのライブラリが無いOSでは起動しません。この不具合は2018年のissue #71で報告され、修正されていません。Linux ARMでは、linux-arm64 を正しく選ぶfnmやmiseを使ってください。

プロジェクトごとの切り替え|.nvmrc非対応とexecでの代用

Nodebrewはディレクトリを移っても版を変えません。.nvmrc や .node-version も読みません。プロジェクトごとに版を変えたいときは、nodebrew exec で一時的に別の版を使います。.nvmrc の中身が 24 のような番号だけなら、そのまま渡せます。

$ nodebrew exec "$(cat .nvmrc)" -- node -v
v24.22.1

注意点が1つあります。exec は -- 以降の引数を空白でつなぎ、1つの文字列としてシェルに渡します。そのため引数の引用符が外れ、nodebrew exec v24 -- node -e 'console.log(process.version)' は syntax error near unexpected token で失敗しました。引用符が要るコマンドは、全体を1つの文字列で渡します。終了コードはそのまま返るので、npm scriptsやCIの判定にも使えます。

$ nodebrew exec 24 -- 'node -e "process.exit(3)"'; echo $?
3

migrate-packageでグローバルパッケージを移すときの落とし穴

nodebrew migrate-package <旧版> は、旧版にグローバルインストールしたパッケージを今の版へ移すコマンドです。中身は、旧版の lib/node_modules/<パッケージ> を引数にした npm install -g を順に実行するだけです。npm 7以降はフォルダを指定した install -g をコピーでなくシンボリックリンクとして扱うため、移した先は旧版を指すリンクになります。

$ nodebrew use v26
$ nodebrew migrate-package v24
$ ls -l ~/.nodebrew/node/v26.12.1/lib/node_modules
corepack -> ../../../v24.22.1/lib/node_modules/corepack
cowsay -> ../../../v24.22.1/lib/node_modules/cowsay
npm

この状態で nodebrew uninstall v24.22.1 を実行すると、リンク先のディレクトリが消え、corepackのリンクは参照先の無い状態になりました。さらに、実行される npm はPATHで最初に見つかったものです。PATHが current/bin を向いていない状態で試すと、Nodebrewの外にある /usr/local/bin/npm が呼ばれ、Failed installation: corepack で失敗しました。

旧版を消す予定があるなら migrate-package は使わず、旧版で npm ls -g --depth=0 を実行して一覧を控え、新しい版で npm install -g し直してください。なお、Node.js 26はcorepackを同梱しておらず、実測でも26.12.1の lib/node_modules にはnpmしかありませんでした。pnpmやYarnの扱いはcorepackの非推奨化とpnpmの版管理を参照してください。

Nodebrewでよく使うコマンド一覧

コマンド 用途
nodebrew ls-remote 入れられる版の一覧
nodebrew install v24 配布物から導入
nodebrew compile v24.22.1 ソースからビルド
nodebrew use v24 使う版を切り替え
nodebrew ls / list 導入済みの版と現在の版
nodebrew ls-all 配布中と導入済みを両方表示
nodebrew alias default v24 版に名前を付ける
nodebrew exec v24 -- npm test 一時的に別の版で実行
nodebrew uninstall v24.22.1 版を削除
nodebrew prune --dry-run 各メジャー最新以外の削除候補
nodebrew clean all ダウンロードしたtar.gzを削除
nodebrew selfupdate 本体を更新

uninstall では完全な版番号を指定します。今使っている版を消すと current は空の default を指し、nodebrew ls の表示は current: none になりました。prune は1.2.0で追加されたコマンドで、メジャー版ごとに最新の1つだけを残します。まず --dry-run で消える版を確かめてから実行してください。Homebrewで入れた場合は、selfupdate ではなく brew upgrade nodebrew で更新します。

エラーとPATHのトラブル対処

症状 原因 対処
nodebrew: command not found 本体にPATHが通っていない brew --prefix のbinを確認
node -v が古いまま 別のnodeがPATHの前にある command -v node で確認
Failed to open the file の後に download failed 保存先の src が無い nodebrew setup_dirs
version not found lts 等の未対応の指定 版番号で指定
is not found(Can not fetch) CPU向けの配布物が無い 上記のARMの注意を参照

実測では、setup_dirs を省いて install を実行すると、curlが ~/.nodebrew/src/v24.22.1/ への保存で Failed to open the file ... No such file or directory と curl: (56) Failure writing output to destination を出し、download failed で止まりました。この組み合わせなら setup_dirs で解消します。No such file or directory が無い download failed は、プロキシやネットワークの問題を疑います。PATHを書き換えたのに反映されないときは、ターミナルを開き直すか source で設定ファイルを読み直し、echo $PATH で .nodebrew/current/bin が先頭側にあるかを確かめます。

Nodebrewのアンインストール手順

Nodebrewの削除は、本体・作業用ディレクトリ・PATHの設定の3か所です。brew uninstall だけでは、導入したNode.jsが入っている ~/.nodebrew は残ります。

brew uninstall nodebrew       # Homebrewで入れた場合
rm -rf ~/.nodebrew              # NODEBREW_ROOTを変えた場合はその場所
# ~/.zshrc から export PATH=$HOME/.nodebrew/current/bin:$PATH の行を消す
exec $SHELL -l
command -v node               # 何も出ない、または別の管理ツールのnodeになればよい

グローバルに入れたnpmパッケージも ~/.nodebrew/node/<版>/lib/node_modules にあるため、ディレクトリと一緒に消えます。移行先のツールで使うパッケージは、消す前に npm ls -g --depth=0 で控えておきます。

nvm・fnm・mise・Homebrewのnodeとの違いと選び方

ツール 最新版(公開日) Windows .nvmrcで切替 LTS指定
Nodebrew 1.2.0(2022-03-19) WSLのみ なし なし
nvm 0.40.8(2026-09-21) WSL・Git Bash あり --lts
fnm 1.39.0(2026-03-06) 対応 あり --lts
mise 2026.10.17(2026-10-21) 対応 設定で有効化 node@lts
Volta 2.0.2(2024-12-05) 対応 なし あり

版の数字は2026年10月22日に各リポジトリのGitHub Releasesで確認したものです。選び方は次のとおりです。

  • Nodebrewを続けてよい場合:macOSで、導入先のOSに対応するNode.jsを1人で切り替える使い方。Apple Silicon向け配布物は16系からありますが、通常の開発ではサポート中の版を選びます。
  • fnmかmiseへ移るべき場合:Linux ARMで使う、Windowsでも同じ手順にしたい、リポジトリの .nvmrc で版をそろえたい、ターミナルごとに別の版を使いたい。fnmはNode.js専用で、miseはNode.jsに加えてPythonやJavaなども同じ設定ファイルで管理できます。miseの導入はmise.tomlでツールを束ねる導入手順で解説しています。
  • nvm:シェルスクリプトで実装され、ドキュメントと情報が多いのが利点です。macOS・Linuxで .nvmrc を使いたいだけなら、nvmで十分です。
  • Volta:2025年11月にREADMEで保守終了が告知されたため、新しく選ぶ理由はありません。経緯はVoltaの保守終了とmise移行にあります。

版を切り替える必要がないなら、管理ツールを使わずHomebrewの brew install node でも足ります。2026年10月22日時点で node は26.12.0、LTSの node@24 は24.22.0です。node@24 はkeg-only(既存のコマンドと衝突しないようPATHに自動で入らない形式)なので、PATHに追加する必要があります。Nodebrewと併用する場合は、どちらのnodeを先に見つけさせるかをPATHの順番で決めます。Node.js自体の仕組みはNode.jsの仕組みと版の選び方、入れた版に脆弱性が無いかはNode.jsの脆弱性と対応バージョンで確認できます。

よくある質問

Nodebrewとは何ですか?

Node.jsの複数のバージョンを入れて切り替えるための、Perl製のコマンドラインツールです。nodejs.orgの配布物を版ごとに展開し、nodebrew use で使う版を切り替えます。macOSとLinuxで動き、Homebrewからも入れられます。

M1・M2などApple SiliconのMacでNodebrewは使えますか?

使えます。Node.js 16以降はApple Silicon向けの版が入ります。v15以前はApple Silicon向けの配布物が無いため is not found で止まり、入れるにはRosetta 2で動かしたターミナルからIntel向けの版を入れる必要があります。

NodebrewでLTS版を入れるにはどうすればよいですか?

lts という指定は無いので、nodebrew install v24 のようにLTSのメジャー版を番号で指定します。stable は偶数メジャーの最新を選ぶだけで、2026年10月22日時点ではLTS入り前の26系が入ります。

Nodebrewとnvmはどちらを使えばよいですか?

macOSで1つの版を切り替えて使うだけならNodebrewで足ります。.nvmrc によるプロジェクトごとの切り替えやターミナルごとの版が必要ならnvmです。Nodebrewは2022年3月から更新が無いため、これから新しく選ぶならfnmかmiseも候補に入れてください。

WindowsでNodebrewは使えますか?

PowerShellやコマンドプロンプトでは使えません。Windows向けのzip配布物を取りに行く処理が無いためです。WSLのLinux環境に入れれば動きます。Windowsで直接使うなら、fnm・mise・nvm-windows(2.0.1、2026年10月2日公開)が候補です。

関連記事

お気に入りに入れた記事の一覧

一創の公式 SNS

X では毎朝の新着記事と IT ニュースの速報を、YouTube・TikTok・Instagram・LinkedIn・Facebook では記事の解説動画を配信しています。

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.11.03 テックブログ ノジマ不正アクセスで約700万件漏えい:対象確認・窓口と乗っ取り注文を止める実装
  2. 2026.10.29 テックブログ ソニー生命の情報漏洩38.5万件|ログインできない理由、再開状況と窓口の電話番号
  3. 2026.11.03 テックブログ クラブツーリズム不正アクセス:約432万件の対象確認と偽メールの見分け方・流出検知の設計
  4. 2026.11.02 テックブログ アララの不正アクセス:メール約7,700万件の持ち出しと契約企業が行うAPIキー再設定・代替送信・連名報告
  5. 2026.11.02 テックブログ サントリーの不正アクセスで約10万人分漏えい|M365のファイル大量ダウンロードを監査ログで調べる手順

RELATED POSTS 関連記事

目次