💭

nvm(node.jsのバージョンを複数インストールして切り替えができるようにするためのもの)

に公開

nvmとは

node.jsのバージョンを複数インストールして切り替えができるようにするためのもの
Ubuntu(WSL2)にnodebrewを入れて使っていたが、Macや、WSL2環境など
環境を限定されてしまう
nvmの場合は、windows環境も含め、どのプラットフォームでも同じやり方で
使えるため、こちらのほうが便利と考えたため
nvmに乗り換えることにした。

注意!!

WSL2とWindowsの両方で、nvmを使う場合には、
WSL2側で
https://zenn.dev/tazzae999jp/articles/d1320a7ffbdc8d
の対応をすること!!

WSL2だけ、nvmを使ってる場合は、↑はしなくてもいいが、
Windowsも、nvmを使うようにした瞬間に
WSL2側は、windowsのnvm環境を見てしまう問題が発生しますので、
その場合は、↑のノウハウが必要だという意味です!!

nvmのインストール

基本的に、この記事は、WSL2(Ubuntu)環境を前提に書いてます

windows側のインストール

windows側のインストールの話は、
https://qiita.com/akipon0821/items/eaeffe79221cfcd4d258
この人が、まとめてくれてます。
ので、これを参考にしたら、よさそうです。

WSL2側のインストール

ここからの記述は、WSL2(Ubuntu)環境でのインストールの話を書いてます。

2025/03/22現在の安定板の最新が
https://github.com/nvm-sh/nvm/releases
によると、
v0.40.2であった(当記事を初期で書いた時点の話)

nvmのインストールは、
ログインしている一般ユーザで、
ホームディレクトリでインストール作業をするのが一般的であるとのこと

そのまま
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
を実行すればよい。
( sudoは使わない)

★ 補足)★
上記の「curlではじまるコマンドライン」は、
https://github.com/nvm-sh/nvm
にて、縦スクロールしていき、

の部分に書かれたものから拾いましょう。

~/.bashrc
の末尾に、自動で必要な設定値が追加書き込みされるので、
source ~/.bashrc
で再読み込みした後、
nvm --version
で、バージョン表示されれば、nvm自体はインストールができたことを確認できる

$ cd
$ pwd
/home/myuser
$
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16631  100 16631    0     0   3142      0  0:00:05  0:00:05 --:--:--  4127
=> Downloading nvm from git to '/home/myuser/.nvm'
=> Cloning into '/home/myuser/.nvm'...
remote: Enumerating objects: 382, done.
remote: Counting objects: 100% (382/382), done.
remote: Compressing objects: 100% (325/325), done.
remote: Total 382 (delta 43), reused 178 (delta 29), pack-reused 0 (from 0)
Receiving objects: 100% (382/382), 386.80 KiB | 811.00 KiB/s, done.
Resolving deltas: 100% (43/43), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/myuser/.bashrc
=> Appending bash_completion source string to /home/myuser/.bashrc
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:

C:\Users\ookaw\AppData\Local\nvm\v22.14.0
+-- corepack@0.31.0
=> If you wish to uninstall them at a later point (or re-install them under your
=> `nvm` node installs), you can remove them from the system Node as follows:

     $ nvm use system
     $ npm uninstall -g a_module

=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
$
上記で、この部分が「~/.bashrc」に自動的に追加されるので
後は、「source ~/.bashrc」で、それを読み込めばよい。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

$ source ~/.bashrc
$
$ nvm --version
0.40.2
$
nvmのバージョンが表示されたので、nvm自体はインストールできた

nvmを使ってnodeやnpmのLTSの最新版をインストールする

nvm ls
しても現状、何も入ってない

$ nvm ls
            N/A
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)

nvm install --lts
で、LTSの最新版をインストールする

$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v22.14.0...
Downloading https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz...
################################################################################################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v22.14.0 (npm v10.9.2)
Creating default alias: default -> lts/* (-> v22.14.0)

確認

$ node -v
v22.14.0
$ npm -v
10.9.2
$
$ which node
/home/myuser/.nvm/versions/node/v22.14.0/bin/node
$ which npm
/home/myuser/.nvm/versions/node/v22.14.0/bin/npm
$

端末にインストールされているnvmが最新版かどうかは

https://github.com/nvm-sh/nvm/releases


を見て
一番上で、

の記号がついてるバージョン番号を確認しましょう。

と、

nvm -v を打ち込んで端末にインストールされているnvmのバージョン

$ nvm -v
0.40.3

を比較すればよい。

2025/07/28時点、0.40.3の最新版があり、端末側のnvmが0.40.2であったため
後続で記述した要領にて、上書きインストールにて
nvmを「0.40.3」にアップデートしたのである。
( そのついでに、当記事を更新していった )

上書きインストールでnvmのバージョンアップができた。追記(2025/07/28)

nvmのバージョン「0.40.3」が出ていることに気が付いた
上記の方法で以前、nvmのバージョン「0.40.2」をインストールしていた
下記の方法で、nvmのバージョン「0.40.3」へ上書きインストールできた

作業前に、nvm --versionで、「0.40.2」を確認した。

$ nvm --version
0.40.2

nvmのバージョン「0.40.3」へ上書きインストール

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16631  100 16631    0     0   369k      0 --:--:-- --:--:-- --:--:--  377k
=> nvm is already installed in /home/myUser/.nvm, trying to update using git
=> => Compressing and cleaning up git repository

=> nvm source string already in /home/myUser/.bashrc
=> bash_completion source string already in /home/myUser/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

source ~/.bashrc
で再読み込み

$ source ~/.bashrc
$

作業後に、nvm --versionで、「0.40.3」を確認した。

$ nvm --version
0.40.3

「nvm install --lts」で最新版のLTSを適用。大元のnvmで、nodeとnpmの組み合わせをセットでバージョンを最新化したり、戻したりするのがnvmを使う上でのやり方

上記でnvmを「0.40.3」にした後で、
「nvm install --lts」で最新版のLTSを適用し、
nodeとnpmの組み合わせをセットで最新化
その前後で、「nvm ls」で状況を確認

実施前で「nvm ls」

$ nvm ls
->     v22.14.0
default -> lts/* (-> v22.14.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v22.14.0) (default)
stable -> 22.14 (-> v22.14.0) (default)
lts/* -> lts/jod (-> v22.14.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.7 (-> N/A)
lts/iron -> v20.19.0 (-> N/A)
lts/jod -> v22.14.0

「nvm install --lts」を実施

$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v22.17.1...
Downloading https://nodejs.org/dist/v22.17.1/node-v22.17.1-linux-x64.tar.xz...
########################################################################################################################################################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v22.17.1 (npm v10.9.2)

実施後で「nvm ls」

$ nvm ls
       v22.14.0
->     v22.17.1
default -> lts/* (-> v22.17.1)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v22.17.1) (default)
stable -> 22.17 (-> v22.17.1) (default)
lts/* -> lts/jod (-> v22.17.1)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.8 (-> N/A)
lts/iron -> v20.19.4 (-> N/A)
lts/jod -> v22.17.1

LTS「v22.14.0」からLTS「v22.17.1」へ環境を変えた

補足「もし、旧バージョンLTS「v22.14.0」へ戻したかったら」

もし、旧バージョンLTS「v22.14.0」へ戻したかったら
一時的(今のシェル(ターミナル)セッションのみ)戻すには、
nvm use v22.14.0
恒久的に(次回以降ターミナルを開いたとき)戻すには、
nvm alias default v22.14.0

一時的にも、恒久的にも戻したければ
両方やる。
nvm alias default v22.14.0
だけやると、
次回以降ターミナルを開いたときには、効くが、
今のシェル(ターミナル)セッションは、戻らないとのこと

nodebrewからの乗り換え

一旦、nodebrewを削除する

ここでは、nodebrewを削除、nvmのインストールという流れを取りました。

nvmへの移行を考えた経緯

Ubuntu(WSL2)にnodebrewを入れて使っていたが、
別に、nodebrewにこだわってたわけではない
複数のNode.jsのバージョンを切り替えられる方法が欲しかっただけ

最近、nvmの情報をちらほらみることがあり、詳細は割愛するが
nvmのほうがよさそうだと感じた

そこで、今のnodebrewをいったん、削除し、nvmをインストールすることにした。
私は、もともと、nodebrewがある状況で
nodebrewを削除して、nvmのインストールしたが、
別になにも入ってなく、純粋にnvmをインストールしたければ、
nvmのインストール
の目次項目から見ればよい。

作業前の状況は下記のとおり

下記のように、nodebrewが入ってる

$ npm -v
10.9.2
$ node -v
v22.14.0
$
$ which npm
/home/myuser/.nodebrew/current/bin/npm
$ which node
/home/myuser/.nodebrew/current/bin/node
$ nodebrew ls
v22.14.0

nodebrewの削除

手順1

~/.bashrc
に、下記のものを追加してたので、その記述を削除した

# nodebrew
export PATH=$HOME/.nodebrew/current/bin:$PATH

手順2

ホームディレクトリで、

「ls -ald .nodebrew/」
が存在するのを見る

rm -rf ~/.nodebrew
で「.nodebrew」のフォルダを、まるごと削除する。

「ls -ald .nodebrew/」
で、無くなっているのを確認する。

source ~/.bashrc
をする

which npm
which node
で、何も表示されないことを確認する。

node -vや、nodebrew
で、command not found
となることを見る

$ pwd
/home/myuser
$ ls -ald .nodebrew/
drwxr-xr-x 7 myuser mygoup 4096 Mar 13 20:43 .nodebrew/
$ rm -rf ~/.nodebrew
$ ls -ald .nodebrew/
ls: cannot access '.nodebrew/': No such file or directory
$
$ source ~/.bashrc
$
$ which npm
$ which node
$
$ node -v
Command 'node' not found, but can be installed with:
sudo apt install nodejs
$ nodebrew
nodebrew: command not found

上記で、nodebrewを削除した後、
nvmのインストール
で、nvmのインストールを行った。

Discussion