Linuxに複数のNode.jsバージョンをインストールするNVM

Node Version ManagerNVM略)は、Linuxシステム上で複数のアクティブなnode.jsバージョンを管理するためのシンプルなbashスクリプトです。複数のnode.jsバージョンをインストールし、インストール可能なすべてのバージョンとシステムにインストールされているすべてのバージョンを表示することができます。

Nvmは、特定のnode.jsバージョンを実行することもサポートしており、それがインストールされた実行可能ファイルへのパスを表示したり、その他の機能も提供しています。

この記事では、Linuxディストリビューションで複数のアクティブなnode.jsバージョンを管理するためにNode Version Manager(NVM)をインストールする方法を説明します。

LinuxにNVM(Node Version Manager)をインストールする

Linuxディストリビューションにnvmをインストールまたは更新するには、次のようにcurlまたはwgetコマンドラインツールを使用して自動インストールスクリプトをダウンロードできます。

# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
OR
# wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

nvmリポジトリをホームディレクトリの~/.nvmにクローンし、必要なソースコマンドをシェルの起動スクリプト(つまり~/.bash_profile~/.zshrc~/.profile、または~/.bashrc)に追加します。使用しているシェルプログラムに応じて、次の出力に示すようになります。

Install NVM in Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  34227      0 --:--:-- --:--:-- --:--:-- 34301
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 359, done.
remote: Counting objects: 100% (359/359), done.
remote: Compressing objects: 100% (305/305), done.
remote: Total 359 (delta 40), reused 168 (delta 28), pack-reused 0
Receiving objects: 100% (359/359), 219.46 KiB | 6.86 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.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`:
...

インストールが完了したら、現在のターミナルウィンドウを閉じて新しいものを開くか、シェルのプロファイルファイルを読み込むnvm。例えば、bashを使用している場合は、次のコマンドを実行してください:

$ source ~/.bashrc
OR
$ source ~/.profile

次に、以下のコマンドを使用してシステムにnvmがインストールされたかどうかを確認してください。

# command -v nvm

nvm

インストールが成功した場合は、出力に「nvm」と表示されます。

LinuxでNode Version Managerを使用する方法を学ぶ時が来ました。最新リリースのnodeをダウンロードし、コンパイルし、インストールするには、次のコマンドを実行してください:

# nvm install node 

上記のコマンドでは、「node」は最新バージョンのエイリアスです。

Install Latest Node Version in Linux
Downloading and installing node v20.0.0...
Downloading https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.0.0 (npm v9.6.4)
Creating default alias: default -> node (-> v20.0.0)

特定の「node」バージョンをインストールするには、まず利用可能なnodeバージョンをリストアップし、その後、表示されるバージョンをインストールしてください。

# nvm ls-remote
# nvm install 19.0.0  
Install Specific Node Version in Linux
Downloading and installing node v19.0.0...
Downloading https://nodejs.org/dist/v19.0.0/node-v19.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v19.0.0 (npm v8.19.2)

Node.jsのバージョンをnvmを使ってインストールしたら、システムは今やNode.jsnpmのバージョンをnvmの下で指すようになりました。次のようにnodenpmのバイナリ/コマンドの場所を確認できます:whichコマンドを実行して、使用されている

# which node
/root/.nvm/versions/node/v20.0.0/bin/node

# which npm
/root/.nvm/versions/node/v20.0.0/bin/npm

# node -v
v20.0.0

# npm -v
9.6.4

インストールされたNode.jsのバージョンをリストアップする

以下のコマンドを使用して、すべてのインストールされたバージョンを確認できます:

# nvm ls
List Installed Node Versions in Linux
->      v19.0.0
        v20.0.0
         system
default -> node (-> v20.0.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.0.0) (default)
stable -> 20.0 (-> v20.0.0) (default)
lts/* -> lts/hydrogen (-> N/A)
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.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)

プロジェクトのためのNodeバージョンを選択する

ここでnvmが興味深くなります。これで、必要に応じて作業中の各プロジェクトに使用するnode.jsのバージョンを選択するためにnvmを使用できるようになりました。以下で説明する方法を見てみましょう。

複数のターミナルを開き、プロジェクトディレクトリに移動します。このガイドでは、偽ってバージョン19.0.0と20.0.0のノードを必要とする~/projects/app-serverおよび~/projects/test-uiの2つのプロジェクトがあります。

------------ Project 1 ------------ 
$ cd ~/projects/api-server
$ nvm use 19.0.0
$ node -v

------------ Project 2 ------------
$ cd ~/projects/test-ui
$ nvm use 20.0.0
$ node -v
Important: Note that when switching between different versions of Node.js, any global npm packages that you have installed will not work. This is because the multiple Node.js version installations are completely independent.

たとえば、バージョン19.0.0がアクティブなときにグローバルパッケージがインストールされている場合、バージョン20.0.0に切り替えると、新しいバージョンの下でグローバルパッケージを再インストールする必要があります。

重要なのは、特定のノードバージョンがインストールされた実行可能ファイルへのパスを以下のように表示できることです:

# nvm which 20.0.0
# nvm which 19.0.0
# nvm which system  #check system-installed version of a node using “system” alias

Linux でデフォルトの Node.js バージョンを設定する

さらに、新しいシェルで使用するデフォルトのノードバージョンを手動で設定するには、次のようにエイリアス“default”を使用します。

# nvm alias default 20.0.0
# nvm alias default system
# nvm alias default 19.0.0
Note: You can create a .nvmrc initialization file in your project root directory (or any parent directory) and add a node version number or any other flags or usage options that nvm understands, in it. Then use some of the commands we have just looked at above to operate with the specified version in the file.

Linux で Node.js バージョンをアンインストールする

Node.jsのバージョンをアンインストールまたは削除するには、次のコマンドを発行します(バージョン番号は19.0.0に置き換えることを忘れないでください):

# nvm uninstall 19.0.0

Linux で NVM をアンインストールする

システムからnvmを手動で削除するには、次のコマンドを実行します:

# rm -rf "$NVM_DIR"
OR
# rm -rf ~/.nvm

次に、~/.bashrc(または上記にリストされている適用可能なシェルプロファイルの構成ファイル)を編集し、次の構成行を削除します:

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

詳細については、nvm --helpを参照するか、Node Version Manager Githubリポジトリをご覧ください:https://github.com/nvm-sh/nvm

以上です!Node Version Managerは、Linux システムで複数のアクティブなnode.jsバージョンを管理するためのシンプルな bash スクリプトです。質問やコメントを共有するために、以下のフィードバックフォームをご利用ください。

Source:
https://www.tecmint.com/nvm-install-multiple-nodejs-versions-in-linux/