centos服务器升级nodejs, pm2

突然抽风想升级服务器的nodejs版本,原服务器版本运行的8.x,而目前(2019年5月30日)nodejs官方最新版本已经更新到了12.x了,稳定版本也更新到了10.x。

然后就折腾了一把去升级服务器的nodejs,具体步骤如下

第一步:下载nodejs

 

下载地址 https://nodejs.org/en/download/

选择LTS版本,毕竟适用于大多数用户,current版本是当前最新版,可尝试nodejs的最新特性。

 

第二步:上传服务器

将下载的node-v10.16.0-linux-x64.tar.xz文件上传到服务器,你也可以解压之后再上传,但是解压之后文件大小从一二十兆飙到四五十兆大小了,所以还是建议传到服务器再解压。

 

第三步:解压

解压命令:

#查看当前控制台所在目录
pwd
#如果不在上传文件目录,则需要cd到上传目录去解压,也可以不cd过去,解压命令直接带上绝对路径
cd xxxx
#解压,据说可忽略xz命令,直接执行tar命令
xz -d ./node.xxx.tar.xz
#再解压
tar -xvf ./node.xxx.tar
#进入到解压目录下的bin目录
cd ./node.xxx/bin
#查看node版本
node -v
#如果正常显示版本号表示node成功解压,否则重新再来吧

 

第四步:建立符号链接

ln -sf /node-xxx/bin/node /usr/bin/node
ln -sf /node-xxx/bin/npm /usr/bin/npm
#任意目录执行以下命令
node -v
npm -v
#如果正常显示版本号表示node安装成功!!

-s表示建立软连接(符号链接),-f表示强制执行,-sf就表示建立符号链接,如果链接已存在则删除重建!

这儿有大佬建议将符号连接到 /usr/local/bin/ 目录,然而我试了没成功,环境变量也有,如下:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

所以还是建议将符号链接到 /usr/bin/ 下面!!!

 

以上升级nodejs则已完成,下面说说重新安装pm2。

 

升级完nodejs之后pm2命令不存在了,但是运行中的pm2不受影响,意思就是如果你没手动停止pm2,那么你的网站还是可以正常访问的。

#新版本nodejs安装pm2
npm install -g pm2

安装成功之后再建立符号链接

ln -sf /node-xxx/bin/pm2 /usr/bin/pm2

更新pm2运行中的版本!!!可无缝衔接升级nodejs,升级之前不需要停掉pm2!!

#运行该命令即可更新运行中的版本
pm2 update

到此pm2版本已经更新,也可以再重启下pm2

pm2 restart all

 

折腾到此的时候,又有点抽风了,因为pm2用了pm2-logrotate插件切割日志,就想看看这个插件安装位置在哪,是否需要重新安装!!

百度了一番,并没有找到介绍pm2的插件安装目录的文章,因为pm2的插件安装命令执行的是 pm2 install pm2-logrotate 跟npm install是有区别的!!

不揪出这个安装目录感觉心里总是不舒服,然后就各种搜索源码,各种搜索关键字之后,终于找到了一段代码,github源码位置

代码指出了这个安装目录位置,跟node环境变量PM2_HOME || HOME || HOMEPATH有关,你可以使用命令查看你自己的环境变量

#执行node命令,不带任何参数
$ node
> console.log(process.env)

#即可查看node的所有环境变量

最终找到了我的pm2插件安装目录在 /root/.pm2/modules/ 下面躺着,也就是说:更新pm2之后可以不用重新安装插件

 

 

posted @ 2019-05-30 11:20  极·简  Views(3449)  Comments(0Edit  收藏  举报