2018年11月24

Linux CentOS服务器上使用nvm管理多个nodejs版本

有时候服务器上会存在很多node项目,可能有时候需要的node版本又不同,这个时候nvm可算是个神器了,记录一下简单的使用方式。

安装nvm

登录Linux系统,输入以下命令:

curl https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

大概会看到类似下面的内容:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12540  100 12540    0     0  10505      0  0:00:01  0:00:01 --:--:-- 10511
=> Downloading nvm as script to '/root/.nvm'

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

测试是否成功:

echo $NVM_DIR # 输出 /root/.nvm  代表成功

为了使用nvm安装时加快速度,可以指定一下网络源:

打开/root/.bashrc,在里面添加一行:

export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

重新刷新以下环境变量:source /root/.bashrc

nvm常用命令

ls-remote

查看远端可安装的node版本

注意:此命令输出的列表版本号,很重要,再使用下面的install命令安装时,要和这个列表中的版本号保持一致才行

install

安装某一个版本的nodejs,找一个上面的任意版本安装即可,例如nvm install v11.0.0,会看到类似输出下面的内容:

[root@VM_0_5_centos ~]# nvm install v11.0.0
Downloading and installing node v11.0.0...
Downloading https://npm.taobao.org/mirrors/node/v11.0.0/node-v11.0.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v11.0.0 (npm v6.4.1)
Creating default alias: default -> v11.0.0

注意

  1. 第一次用install安装的版本会被设置成node的默认版本
  2. 每次安装不同版本都会将当前版本对应的npm也安装

第一条的默认版本效果是指每次登录时生效,也就是说,当你每次安装不同版本时,在当前窗口下,node版本会自动切换到当前安装的版本,注意哦,是当前窗口,所以默认版本仅对新终端窗口有效,可以看下面的记录:

[root@VM_0_5_centos ~]# nvm install v3.3.0
Downloading and installing  v3.3.0...
Downloading https://iojs.org/dist/v3.3.0/iojs-v3.3.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using io.js v3.3.0 (npm v2.13.3)
[root@VM_0_5_centos ~]# nvm install v2.2.0
Downloading and installing  v2.2.0...
Downloading https://iojs.org/dist/v2.2.0/iojs-v2.2.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using io.js v2.2.0 (npm v2.11.0)
[root@VM_0_5_centos ~]# node -v
v2.2.0

可以看到,安装一堆之后,当前终端窗口查看node版本,永远都是最后一次安装的。

ls

查看本地已安装的版本列表,nvm ls

[root@VM_0_5_centos ~]# nvm ls
->  iojs-v2.2.0
    iojs-v3.3.0
         v4.4.0
         v5.5.0
         v6.6.0
         v7.7.0
         v8.8.0
        v8.13.0
         v9.9.0
       v10.10.0
        v11.0.0
default -> v11.0.0
node -> stable (-> v11.0.0) (default)
stable -> 11.0 (-> v11.0.0) (default)
iojs -> iojs-v3.3 (-> iojs-v3.3.0) (default)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.14.4 (-> N/A)
lts/carbon -> v8.13.0
lts/dubnium -> v10.13.0 (-> N/A)

第一行最左边有个->,也可以看出当前使用版本是最后一次安装。

alias

前面说了,默认版本是第一次安装,如果想设置其他版本,可以通过nvm alias default 版本号设置其他版本号为默认版本。

例如:nvm alias default 10.10.0

[root@VM_0_5_centos ~]# nvm alias default 10.10.0
default -> 10.10.0 (-> v10.10.0)

代表设置成功,新开一个窗口,测试,如果和设置的版本一直代表成功。

其他命令

可以通过 nvm -h 查看更多命令信息。

参考链接

本文链接:https://yaimeet.com/post/linux-centos-nvm-nodejs.html

-- EOF --

Comments