centos下安装node踩坑记录

博客简介

在 centos 服务器中安装 node 环境,本来以为没什么问题,该这么安装就怎么安装就可以了,结果来了个小插曲,服务器始终报异常 “无法执行二进制文件”,到底是什么情况呢,我们来详细看下什么原因

一、下载源文件

在 node 管网下载源文件,选择你需要的版本,地址为 https://nodejs.org/dist/v14.17.5/,我选择的是 14.17.5 版本号。

二、查看服务器内核

重点来了,由于我没有查看当前 centos 的版本号,导致我直接就下载了 linux-x64-tar.gz 格式的安装文件,结果始终是报异常 “无法执行二进制文件”。我在自己的腾讯云服务器安装没有任何问题,node 版本号可以直接进行查看,但是在公司的服务器就是不行。

查看服务器的内核信息,执行命令

uname -a

自己服务器:

[root@VM-24-13-centos bin]#  uname -a
Linux VM-24-13-centos 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

公司服务器:

[root@ii-0001 src]# uname -a
Linux ii-0001.novalocal 4.18.0-193.28.1.el7.aarch64 #1 SMP Wed Oct 21 16:25:35 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

原来是我没有根据服务器的内核下载适配的 node 源文件格式,应该下载 “linux-arm64.tar.gz ”格式的文件。

三、安装node

下载文件

# 进入到安装目录
cd /usr/local/src/
# 下载源文件
wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-arm64.tar.gz

解压文件

# 执行完第一行命令会得到 tar 格式文件
xz -d node-v14.17.5-linux-arm64.tar.gz
# 解压该文件
tar xvf node-v14.17.5-linux-arm64.tar

进入 ./node-v14.17.5-linux-arm64 文件夹,测试是否可执行 node 命令,./node-v14.17.5-linux-arm64/bin node -v,如果显示 node 的版本即可表示可正常使用。

编辑 profile

vim /etc/profile

在文件最后插入 node 环境变量路径

# node
export NODE_HOME=/usr/local/src/node-v14.17.5-linux-x64
export PATH=$NODE_HOME/bin:$PATH

# 更新环境配置
source /etc/profile

# 查看node版本号
[root@VM-24-13-centos bin]# node -v
v14.17.5

四、安装pm2

安装好 node 服务后,那么 npm 已经安装好了,我们使用 npm 来安装一下 pm2 服务

npm install pm2 -g -y

执行结果如下所示表示安装成功:

+ pm2@5.2.2
added 184 packages from 182 contributors in 197.9s
[root@VM-24-13-centos bin]# pm2 ls

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘