Bootstrap

前端系列:Centos7安装node.js以及遇到的各种问题




自己买了一个腾讯云轻量应用服务器,第一个项目跟随github部署了一个小网站。本文记录安装node.js的过程(安装时遇到了一些坑,折腾了好久。。)

我最后安装的方法是使用源代码安装,想看这个方法的直接看最后一部分!

前期使用的方法都没有成功。

我的平台:腾讯云 轻量服务器|宝塔Linux面板 7.9.3 腾讯云 专享版| Centos7.9 64bit



一. Centos7安装node.js

一、尝试未成功的方法

1、从EPEL库安装node.js

首先确认是否已经安装eple库:

yum info epel-release

如果输出有关eple-release库的有关信息,则已经安装该库,否则需要安装:

sudo yum install epel-release

安装eple库完成后,就可以开始安装node.js:

sudo yum install nodejs

检查是否安装成功及版本:

node -v
npm -v

注:新版本的node.js已经包含npm,如果没有可以选择自己安装,安装命令如下:

sudo yum install npm

到这一步检查node版本之后发现比我需要的版本要低,于是尝试nvm(nvm是一个node.js版本管理工具)

笔者到这里是成功的

进入要启动的项目

npm install

然后

npm run dev

2.使用nvm安装

nvm是一个node版本管理工具,可以为系统安装多个node版本并进行切换管理。

安装nvm,执行如下命令:

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

执行 nvm -v 输出版本说明nvm安装成功

然后执行nvm install 版本号 即可安装对应版本号node.js

执行 nvm ls-remote 查看可以供安装的全部版本

执行nvm ls 查看已安装的版本

安装成功后,执行 node -v,如果出现版本号且没有其他提示,说明安装成功。而我的提示有些依赖项没有安装,和这里类似:

  • node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found (required by node) 报错解决

  • Linux中提示:/lib64/libc.so.6: version `GLIBC_2.17’ not found 的解决办法

遇到的问题详情见 二. 遇到的问题

我升级了gcc版本到8.3.1-3(升级方法见CentOS7 升级gcc版本),但问题仍没有解决(仍然缺少GLIBC_2.27等)

二、成功方法

1. 使用源代码安装

官网找到最新的或者是您想要的node.js版本,复制url,在CentOS中用wget下载。

wget https://nodejs.org/dist/v18.15.0/node-v18.15.0.tar.gz

解压:

tar zxvf node-v18.15.0.tar.gz

进入目录:

cd node-v18.15.0

配置:

./configure

编译(这一步花费的时间比较长,耐心等待):

make

安装:

sudo make install

检查:

# node --version
v8.9.4
# npm --version
5.6.0

参考:
如何在 CentOS 安装 node.js

在centos7安装nodejs并升级nodejs到最新版本

创作不易,欢迎点赞、评论、收藏

二. 遇到的问题

可以参考 前端系列:Vue入门&环境搭建、【vue】创建项目&项目搭建问题&项目文件介绍&.vue文件介绍

一. node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found (required by node) 报错解决

安装node的时候报错:

[root@localhost build]# npm install pm2@latest --global
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

发生此错误可能是因为您正在使用node的最新版本,还是建议使用LTS版本(大多数用户建议使用16.15.0 LTS)而不是最新版本。所以我的建议是使用NodeJS 16 LTS版本。安装Nodejs 16只需在机器上运行以下命令:

nvm install 16

[root@localhost ~]# nvm install 16
Downloading and installing node v16.17.0...
Downloading https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz...
####################################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v16.17.0 (npm v8.15.0)

安装pm2:

[root@localhost ~]# npm install pm2 -g
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
 
added 183 packages, and audited 184 packages in 16s
 
12 packages are looking for funding
  run `npm fund` for details
 
found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 8.15.0 -> 8.19.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.19.2
npm notice Run npm install -g npm@8.19.2 to update!
npm notice

二. Linux中提示:/lib64/libc.so.6: version `GLIBC_2.17’ not found 的解决办法

昨天在服务器上安装好node之后,提示这个错误:./node: /lib64/libc.so.6: version `GLIBC_2.17’ not found (required by ./node),今天把解决过程整理一下

一、查看系统中可使用的glibc版本

//使用strings命令查看
strings /lib64/libc.so.6 |grep GLIBC_
//查看结果如下:
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_PRIVATE

二、下载高版本的glibc库

1.由上图可知,并没有GLIBC_2.17版本的glibc库,所以我们要下载2.17版本的库,从这下载 glibc-2.17.tar.gz,也可下载更多版本

三、下载之后进行解压缩

wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xvf glibc-2.17.tar.gz

四、编译安装

#进入glibc-2.17目录中
cd glibc-2.17
#创建build目录
mkdir build
#进入build目录中
cd build
#执行./configure
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
#安装
make && make install

五、查看共享库

ls -l /lib64/libc.so.6
=====================
//可以看到已经建立了软链接
lrwxrwxrwx. 1 root root 12 Jan 13 01:49 /lib64/libc.so.6 -> libc-2.17.so

六、再次查看系统中可使用的glibc版本

[root@localhost ~]# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

七、备注

1.本文参考:https://blog.csdn.net/zhoubl668/article/details/80285317







几分出发

Centos7安装node.js

无忧无虑地live

node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found (required by node) 报错解决

周星星的学习笔记

Linux中提示:/lib64/libc.so.6: version `GLIBC_2.17’ not found 的解决办法

;