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之后可以不用重新安裝插件

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM