CentOS下编译安装Node.js 5.1.0

上一篇文章中讲了prerequisites,CentOS自带的gcc版本太低了,需要升级到4.7以上版本才能编译node,否则make时候会出错
http://blog.csdn.net/Emptyset110/article/details/50128115

Step 1. 去这里下载源码,解压

https://nodejs.org/en/download/

# wget https://nodejs.org/dist/v5.1.0/node-v5.1.0.tar.gz
# tar xzvf node-v5.1.0.tar.gz
# cd node-v5.1.0

Step 2. 编译,安装

./configure
make -j4
make install

看上去一切都很顺利

Step 3. /usr/lib64/libstdc++.so.6: version "GLIBCXX_3.4.20" not found

在运行node -v时候出现了标题所示的错误

运行命令检查动态库

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

发现其中并没有包含3.4.13以上的版本。而我们用gcc4.9.0编译的node是需要3.4.15和3.4.20的。

搜索安装gcc 4.9.0时候的libstdc++.so.6

# find / -name "libstdc++.so.*"

/home/Wen/gcc-4.9.0/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
/home/Wen/gcc-4.9.0/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/Wen/gcc-4.9.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
/home/Wen/gcc-4.9.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/Wen/gcc-4.9.0/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
/home/Wen/gcc-4.9.0/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

我检查了其中一个动态库

strings /home/Wen/gcc-4.9.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 | grep GLIBC

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

发现它包含我要的GLIBCXX_3.4.20GLIBCXX_3.4.14

# cp /home/Wen/gcc-4.9.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /usr/lib64/

于是我把这个文件复制到/usr/lib64下覆盖掉原来的文件即可。

检查node版本

[root@DataWorks node-v5.1.0]# node --version
v5.1.0

你可能感兴趣的:(linux,node.js)