此文章记录CentOS6.5下,安装当前最新稳定版nodejs。道路曲折,但也是自己几个小时的辛勤劳动,很满足。

1、nodejs下载

NodeJS下载地址 https://nodejs.org/en/download/

[root@test1 packages]# wget https://nodejs.org/dist/v4.4.0/node-v4.4.0.tar.gz

2、解压

[root@test1 src]# tar -zxvf node-v4.4.0.tar.gz

[root@test1 src]# cd node-v4.4.0

3、预编译

[root@test1 node-v4.4.0]# ./configure --prefix=/usr/local/nodejs

有提示说c++版本太低

CentOS6.5源码安装nodejs4.4_centos

4、编译,出现报错

CentOS6.5源码安装nodejs4.4_nodejs_02

5、升级gcc版本到4.8

参考 http://ygqygq2.blog.51cto.com/1009869/1750612

CentOS6.5源码安装nodejs4.4_centos_03

6、再次编译。

[root@test1 node-v4.4.0]# make

出现如下图错误,

CentOS6.5源码安装nodejs4.4_nodejs_04

又查资料,终于发现这个帖子下,这个回答好像是对的。

https://cnodejs.org/topic/568c8d9c04a9c540665c45a2

CentOS6.5源码安装nodejs4.4_nodejs_05

7、源码安装binutils

1)先使用yum安装看是否能解决问题

CentOS6.5源码安装nodejs4.4_centos_06

CentOS6.5源码安装nodejs4.4_centos_07

报错还是一样

2)选择源码安装binutils

其下载地址:

http://ftp.gnu.org/gnu/binutils/

[root@test1 packages]# wget http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.gz

[root@test1 binutils-2.26]# ./configure --enable-shared --enable-gold --enable-ld

[root@test1 binutils-2.26]# make

[root@test1 binutils-2.26]# make install

8、再次编译nodejs

再次编译的时候,问题变了,提示库文件不支持GLIBCXX_3.4.15版本

CentOS6.5源码安装nodejs4.4_源码安装_08

于是,使用yum安装libstdc++和libstdc++-devel,连32位版本都装上了。

CentOS6.5源码安装nodejs4.4_centos_09 

错误依然。。。看来,库文件还是有问题。

再次发扬自己的搜索精神,终于找到了这个参考博客  http://blog.chinaunix.net/uid-14735472-id-5546498.html

思路就是,将加载的库文件软链接,链接到最新的库文件上。

检查动态库命令:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC 

CentOS6.5源码安装nodejs4.4_nodejs_10

CentOS6.5源码安装nodejs4.4_源码安装_11

[root@test1 node-v4.4.0]# mv /usr/lib64/libstdc++.so.6 /tmp/

CentOS6.5源码安装nodejs4.4_源码安装_12

最后 ,支持了上文中提示库文件的版本错误。

7、编译、安装nodejs,并查看版本

[root@test1 node-v4.4.0]# make          

[root@test1 node-v4.4.0]# make install 

[root@test1 node-v4.4.0]# /usr/local/nodejs/bin/node -v

CentOS6.5源码安装nodejs4.4_源码安装_13