网站搜索

NVM - 在 Linux 中安装和管理多个 Node.js 版本


Node Version Manager(简称NVM)是一个简单的bash脚本,用于管理Linux系统上的多个活动node.js版本。它允许您安装多个 node.js 版本,并查看所有可安装的版本以及系统上所有已安装的版本。

Nvm 还支持运行特定的 node.js 版本,它可以显示可执行文件的安装路径,等等。

在本文中,我们将介绍如何安装 Node Version Manager (NVM) 来管理 Linux 发行版上的多个活动 node.js 版本。

在 Linux 中安装 NVM(节点版本管理器)

要在 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 并将所需的源命令添加到 shell 启动脚本中,即 ~/ .bash_profile~/.zshrc~/.profile~/.bashrc,具体取决于您使用的 shell 程序正在使用,如以下输出所示。

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`:
...

安装完成后,关闭当前终端窗口并打开一个新窗口,或者只需获取 shell 配置文件即可加载 nvm。例如,如果您使用的是 bash,请运行以下命令:

source ~/.bashrc
OR
source ~/.profile

接下来,使用以下命令验证您的系统上是否已安装 nvm

command -v nvm

nvm

如果安装成功,它将显示输出为“nvm”。

使用 NVM 安装多个 Node.js 版本

现在是时候学习如何在 Linux 中使用节点版本管理器了。要下载、编译并安装最新版本的node,请运行以下命令:

nvm install node 

请注意,在上面的命令中,“node”是最新版本的别名。

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)

要安装特定的“节点”版本,请首先列出可用的节点版本,然后安装所示版本。

nvm ls-remote
nvm install 19.0.0  
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)

使用 nvm 安装 Node.js 版本后,系统现在应该指向 Node.jsnpmnvm下的strong>版本。您可以通过运行 which 命令来检查正在使用的 nodenpm 二进制文件/命令的位置,如下所示:

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
->      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)

为项目选择节点版本

这就是 nvm 变得有趣的地方。现在,您可以使用 nvm 根据需求选择要用于您正在处理的每个项目的 node.js 版本。让我们看看如何执行此操作,如下所述。

打开多个终端并进入项目目录。对于本指南,我们在 ~/projects/app-server~/projects/test-ui 下有两个项目,它们需要 Node 版本 19.0.0 和 20.0.0 。

------------ 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

例如,如果您在版本 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 版本

此外,要手动设置要在任何新 shell 中使用的默认节点版本,请使用别名“default”,如图所示。

nvm alias default 20.0.0
nvm alias default system
nvm alias default 19.0.0

在 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 (或适用的 shell 配置文件配置文件,如上面列出的)并删除以下配置行:

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 是一个简单的 bash 脚本,用于管理 Linux 系统上的多个活动 node.js 版本。使用下面的反馈表提出问题或与我们分享您的意见。