Linux 上安裝 nvm node npm pm2 全家桶

背景:nodejs中臺服務需要遷移到新的服務器上,爲此需要搭建一套用pm2管理node服務的環境。統一用戶名爲kredit。

 

安裝node/npm

方法一:下載安裝包,可用wget下載。但是安裝目錄什麼的比較麻煩,所以考慮用自動化安裝工具。

方法二:自動化安裝工具apt-get

apt-get 下載安裝:

sudo apt-get install nodejs

但是下載的node/npm版本異常的老。原本以爲是源的問題(因爲源是指向公司內網庫的),把源修改成阿里的源再試,還是老版本。
查資料說apt再下一些插件可以提高版本,但是對Ubuntu 16.04.6版本好像不太ok,沒做嘗試。先把apt下載的低版本node卸掉吧(https://www.jianshu.com/p/53a1e12bb790)

方法三(推薦):安裝nvm,再由此安裝node/npm。

linux 安裝 nvm

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

默認安裝在用戶目錄下 /home/kredit/.nvm 

由 nvm 安裝指定版本 node(順帶會把匹配的 npm 安裝了)

$ nvm install v12.14.1

由 node 全局安裝 pm2 

npm install pm2 -g

 

配置環境變量

假如你是用 kredit 用戶完成這一切的,那麼現在只有kredit用戶有node/npm的環境變量。

但是我們的目標是root(即sudo)和其他用戶都有node/npm環境變量。

自然考慮在全局變量文件 /etc/profile 裏添上

sudo vim /etc/profile

#文件末尾加上
export PATH=$PATH:/home/kredit/.nvm/versions/node/v12.14.1/bin

然蛾,當你執行如下語句發現如下結果,就會得到以下結論。

root用戶,node指向/usr/bin/node。是默認的配置,哪裏改還沒研究。
# which node		    /usr/bin/node
$ sudo which node           /usr/bin/node
而普通用戶,因爲etc/profile的配置,指向/home/kredit/.nvm/versions/node/v12.14.1/bin/node
$ which node		    /home/kredit/.nvm/versions/node/v12.14.1/bin/node
$ whereis node              /home/kredit/.nvm/versions/node/v12.14.1/bin/node

但是,/usr/bin/node下根本沒有node和npm,我們的執行文件目錄在 /home/kredit/.nvm/versions/node/v12.14.1/bin上。

所以當你執行sudo npm -v的時候會報錯 “/usr/bin/env: node: No such file or directory”。

解決辦法是,創建一個軟連接將自己的node的執行文件指到/usr/bin/node上,於是修改如下:

sudo ln -s /home/kredit/.nvm/versions/node/v12.14.1/bin/npm /usr/bin/npm
sudo ln -s /home/kredit/.nvm/versions/node/v12.14.1/bin/node /usr/bin/node

 

好了,現在無論是公共用戶kredit,還是小夥伴自己登陸的賬戶,還是root,都可以有全局變量node和npm了。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章