欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 上安装 nvm node npm pm2 全家桶

程序员文章站 2022-07-14 19:58:19
...

背景:nodejs中台服务需要迁移到新的服务器上,为此需要搭建一套用pm2管理node服务的环境。

需要注意的是,统一用户使用kredit。然后 sudo $PATH(root的环境) 和 $PATH(kredit的环境)是不同的。

 

安装node/npm

方法一:下载安装包,可用wget下载。但是安装目录什么的比较麻烦,所以考虑用自动化安装工具。

方法二:自动化安装工具apt-get

apt-get 下载安装:

sudo apt-get install nodejs

但是下载的node/npm版本异常的老。原本以为是源的问题(因为源是指向公司内网库的),把源修改成阿里的源再试,还是老版本。
查资料说apt再下一些插件可以提高版本,但是对Ubuntu 16.04.6版本好像不太ok,没做尝试。先卸载吧https://www.jianshu.com/p/53a1e12bb790

后来发现的,应该ok,没试 https://linuxize.com/post/how-to-install-node-js-on-ubuntu-18.04/ 

方法三:安装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了。

 

 

 

 

相关标签: node 爬坑 Linux