忽然抽風想升級服務器的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以後能夠不用從新安裝插件