关于CentOS6平台上PM2安装失败的解决方案

关于PM2 PM2 Runtime is a Production Process Manager for Node.js applications with a built-in Load Balancer. It allows you to keep applications alive forever, to reload them without downtime and facilitate common Devops tasks. 译文:PM2 Runtime是具有内置Load Balancer的Node.js应用程序的生产过程管理器。它允许您永久保持应用程序的活动,无需停机即可重新加载它们,并促进常见的Devops任务。 Works on Linux (stable) & macOS (stable) & Windows (stable). All Node.js versions are supported starting Node.js 4.X. 译文:适用于Linux(稳定)和macOS(稳定)和Windows(稳定)。从Node.js 4.X开始支持所有Node.js版本。

安装回顾

  • 安装
[root@test-comm-mkdata ~]# rpm -q nodejs npm
package nodejs is not installed
package npm is not installed
[root@test-comm-mkdata ~]# yum list nodejs npm
[root@test-comm-mkdata ~]# yum install nodejs npm -y
[root@test-comm-mkdata ~]# npm install -g pm2
  • 错误信息如下图所示
  • PM2项目官网中明确提到项目依赖要求,即node≥4,npm=3.4.0,详情请戳这里
  • 查看软件包版本
[root@test-comm-mkdata ~]# node -v
v0.10.48
[root@test-comm-mkdata ~]# npm -v
1.3.6

因此,安装PM2失败的原因在于未满足环境依赖,即Node.js和npm版本较低,不满足安装PM2的基本要求;而安装Nodejs时,将会自动安装npm,因为我们只需安装符合PM2要求的Nodejs版本即可解决问题。

获取Nodejs

获取Nodejs主要有以下三种方式。 附:项目官网

包管理器安装

基于 Linux 的 Debian 和 Ubuntu 发行版,Enterprise Linux/Fedora 和 Snap packages Node.js 官方二进制发行版 由 NodeSource 提供。

  • NodeJS 11.x
curl -sL https://rpm.nodesource.com/setup_11.x | bash -
  • NodeJS 10.x
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
  • NodeJS 8.x
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
  • NodeJS 6.x
curl -sL https://rpm.nodesource.com/setup_6.x | bash -

使用编译好的Linux 二进制文件

  • 卸载通过YUM安装的Nodejsnpm软件包
[root@test-comm-mkdata ~]# yum -y remove nodejs npm
  • 从项目官网获取软件包
[root@test-comm-mkdata ~]# cd /usr/local/
[root@test-comm-mkdata local]# wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
--2019-03-23 11:10:57--  https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
Resolving nodejs.org... 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:172e, ...
Connecting to nodejs.org|104.20.23.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12309200 (12M) [application/x-xz]
Saving to: “node-v10.15.3-linux-x64.tar.xz”

100%[=============================================================>] 12,309,200  5.68M/s   in 2.1s    

2019-03-23 11:11:00 (5.68 MB/s) - “node-v10.15.3-linux-x64.tar.xz” saved [12309200/12309200]
  • 解压并安装
[root@test-comm-mkdata local]# rpm -q xz 
package xz is not installed
[root@test-comm-mkdata local]# yum -y install xz tree
[root@test-comm-mkdata local]# tar xf node-v10.15.3-linux-x64.tar.xz 
[root@test-comm-mkdata local]# ls 
bin  games    lib    libexec                  node-v10.15.3-linux-x64.tar.xz  share
etc  include  lib64  node-v10.15.3-linux-x64  sbin                            src
[root@test-comm-mkdata local]# mv node-v10.15.3-linux-x64 nodejs
[root@test-comm-mkdata local]# ls 
bin  games    lib    libexec  node-v10.15.3-linux-x64.tar.xz  share
etc  include  lib64  nodejs   sbin                            src
  • 创建软链接,保证执行文件能在全局环境中使用。
[root@test-comm-mkdata local]# cd nodejs/
[root@test-comm-mkdata nodejs]# ls 
bin  CHANGELOG.md  include  lib  LICENSE  README.md  share
[root@test-comm-mkdata nodejs]# tree bin/
bin/
├── node
├── npm -> ../lib/node_modules/npm/bin/npm-cli.js
└── npx -> ../lib/node_modules/npm/bin/npx-cli.js

0 directories, 3 files
[root@test-comm-mkdata nodejs]# node -v 
-bash: /usr/bin/node: No such file or directory
[root@test-comm-mkdata nodejs]# npm -v 
-bash: /usr/bin/npm: No such file or directory
[root@test-comm-mkdata nodejs]# ln -s /usr/local/nodejs/bin/node /usr/bin/node
[root@test-comm-mkdata nodejs]# ln -s /usr/local/nodejs/bin/npm /usr/bin/npm
[root@test-comm-mkdata nodejs]# node -v 
v10.15.3
[root@test-comm-mkdata nodejs]# npm -v 
6.4.1

编译安装

[root@test-comm-mkdata nodejs]# yum -y install make gcc gcc-c++ #或执行 yum groupinstall 'Development Tools'
[root@test-comm-mkdata nodejs]# cd /usr/local/
[root@test-comm-mkdata local]# wget https://nodejs.org/dist/v10.15.3/node-v10.15.3.tar.gz
[root@test-comm-mkdata local]# gunzip node-v10.15.3.tar.gz
[root@test-comm-mkdata local]# cd node-v10.15.3
[root@test-comm-mkdata node-v10.15.3]# ./configure --prefix=/usr/local/nodejs-Compile
[root@test-comm-mkdata node-v10.15.3]# make -j4 && make install

安装PM2

[root@test-comm-mkdata ~]# npm install -g cnpm
[root@test-comm-mkdata ~]# npm config set registry https://registry.npm.taobao.org
[root@test-comm-mkdata ~]# npm install -g pm2 #或 cnpm install -g pm2; 设定npm国内源和安装并使用cnpm二选一即可
[root@test-comm-mkdata ~]# pm2 -v
3.4.0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券