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.js 和 npmnvm下的strong>版本。您可以通过运行 which 命令来检查正在使用的 node 和 npm 二进制文件/命令的位置,如下所示:
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 版本。使用下面的反馈表提出问题或与我们分享您的意见。