忽然抽风想升级服务器的nodejs版本,原服务器版本运行的8.x,而目前(2019年5月30日)nodejs官方最新版本已经更新到了12.x了,稳定版本也更新到了10.x。node
而后就折腾了一把去升级服务器的nodejs,具体步骤以下linux
第一步:下载nodejsgit
下载地址 https://nodejs.org/en/download/github
选择LTS版本,毕竟适用于大多数用户,current版本是当前最新版,可尝试nodejs的最新特性。npm
第二步:上传服务器服务器
将下载的node-v10.16.0-linux-x64.tar.xz文件上传到服务器,你也能够解压以后再上传,可是解压以后文件大小从一二十兆飙到四五十兆大小了,因此仍是建议传到服务器再解压。网站
第三步:解压spa
解压命令:插件
#查看当前控制台所在目录 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成功解压,不然从新再来吧
第四步:创建符号连接rest
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以后能够不用从新安装插件