Centos7安装nvm、node、pm2

字数 435阅读 6510

nvm、npm、pm2什么关系?

1. nvm: 可以切换、控制运行的nodejs版本;
2. npm: 附属于nodejs的【有nodejs就可以用npm了】
,功能为集成、使用模块【自己或他人的】;
3. pm2: 部署、高大上的部署,加之keymetrics综合使用

一步步安装配置

node作为版本帝,不得不找个合适管理工具, 看了这个例子,就很难不选择nvm了。。。。

Example:
  nvm install v0.10.32                  Install a specific version number
  nvm use 0.10                          Use the latest available 0.10.x release
  nvm run 0.10.32 app.js                Run app.js using node v0.10.32
  nvm exec 0.10.32 node app.js          Run `node app.js` with the PATH pointing to node v0.10.32
  nvm alias default 0.10.32             Set default node version on a shell

Note:
  to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)

1 .1配置nvm

centos7安装配置nvm

首先确保安装git
如未按照git, 以centos7为例,【已安装的请跳过】

# sudo apt-get install git
#首先确保centos已安装git,以确保之后nvm本身的升级
curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash

*重启终端

nvm --version
v0.30.2
nvm help 

升级nvm,前往~/.nvm,从git服务器拉去最新的版本,

[root@localhost .nvm]# nvm --version
0.30.2
[root@localhost .nvm]# git fetch -p
[root@localhost .nvm]# git rev-list --tags --max-count=1
0a95e77000515c1156be593642dd4e452f2f098e
[root@localhost .nvm]# git describe --tags 0a95e77000515c1156be593642dd4e452f2f098e
v0.33.2
[root@localhost .nvm]# git describe --abbrev=0 --tags
v0.33.2
[root@localhost .nvm]# git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
之前的 HEAD 位置是 7f3145b... [New] add support for `$NVM_DIR/default-packages` file
HEAD 目前位于 0a95e77... v0.33.2
[root@localhost .nvm]# source ~/.nvm/nvm.sh
[root@localhost .nvm]# nvm --version
0.33.2

罗列下载相应版本的node

#不加node,无法罗列版本。。。。
nvm ls-remote node 

......
         v6.9.5   (LTS: Boron)
->      v6.10.0   (LTS: Boron)
        v6.10.1   (LTS: Boron)
        v6.10.2   (LTS: Boron)
        v6.10.3   (Latest LTS: Boron)
   .....
   .....
        v7.10.0

nvm install v6.10.0

更多命令可以参考·nvm help·

1.2 PM2 配置使用github

该部分内容转载自PM2 介绍;

pm2 是一个带有负载均衡功能的Node应用的进程管理器.
当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。它非常适合IaaS结构,但不要把它用于PaaS方案(随后将开发Paas的解决方案).

备注:SaaS、PaaS和IaaS是云服务模式。

1. SaaS 软件即服务,例如Google的 Gmail 邮箱服务.面向应用型用户.
2. PaaS 平台即服务.例如Google的GAE,面向开发型用户
3. IaaS  基础架构即服务,例如亚马逊的AWS,IaaS对于不知道新推出的应用程序/网站会有多成功的创业公司来说非常有用

请参考 云服务模式:SaaS、PaaS和IaaS,哪一种适合你?

1.3 配置高大上的部署工具

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。

$ npm install pm2 -g

1.4 用法

$ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js 
                                # 也可以把'max' 参数传递给 start
                                # 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 命名进程
$ pm2 list               # 显示所有进程状态
$ pm2 monit              # 监视所有进程
$ pm2 logs               #  显示所有进程日志
$ pm2 stop all           # 停止所有进程
$ pm2 restart all        # 重启所有进程
$ pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0             # 停止指定的进程
$ pm2 restart 0          # 重启指定的进程
$ pm2 startup            # 产生 init 脚本 保持进程活着
$ pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0           # 杀死指定的进程
$ pm2 delete all         # 杀死全部进程

运行进程的不同方式:


$ pm2 start app.js -i max  # 根据有效CPU数目启动最大进程数目
$ pm2 start app.js -i 3      # 启动3个进程
$ pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)
$ pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone
$ pm2 stop serverone       # 停止 serverone 进程
$ pm2 start app.json        # 启动进程, 在 app.json里设置选项
$ pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数
$ pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件
你也可以执行用其他语言编写的app  ( fork 模式):
$ pm2 start my-bash-script.sh    -x --interpreter bash
$ pm2 start my-python-script.py -x --interpreter python

工具是奔着更高效、便捷的一路走下去的,所以使用本身是很简单的

bgPDwbF.png

参考:

CentOS 安装nodejs
Linux查看系统信息的一些命令及查看已安装软件包的命令
PM2 介绍
nodejs高大上的部署方式-PM2
rsync命令
centos7 install nvm
centos7 install nvm
github---nvm update

推荐阅读更多精彩内容