centos6.10環境安裝nodejs8.2.1

操做系統爲centos6.10,在安裝nodejs最新版本的時候報錯,依賴glibc的高版本和gcc高版本,還要安裝python2.7,操做系統上已經跑了不少應用,升級gcc風險過大,採用相對保守的方法:
安裝npm並安裝n,而後經過n這個工具安裝低版本node(比默認yum安裝的版本要高)

root@server1 [/home/yt_opsadmin/node-v12.13.0-linux-x64]# bin/node -v
bin/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by bin/node)
bin/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by bin/node)
bin/node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by bin/node)
bin/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by bin/node)
bin/node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by bin/node)
bin/node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by bin/node)
bin/node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by bin/node)


1.安裝epel的yum源
# yum install -y epel-release

2.安裝低版本的nodejs和npm

yum install nodejs npm -y

root@server1 [//home/mindmaster0807]# npm --version
1.3.6
root@server1 [//home/mindmaster0807]# node --version
v0.10.48

3.安裝n這個管理nodejs的工具
# 須要關閉ssl不然會報錯
npm config set strict-ssl false
npm install -g n

# 使用n 這個工具安裝node8.2.1版本
n 8.2.1

# 默認版本
root@server1 [/home/yt_opsadmin]# node -v
v0.10.48

# 查看n管理下的全部node版本
root@server1 [/home/mindmaster0807/_coopSocket]# n ls
node/8.2.1
# 查看8.2.1版本所在安裝目錄
root@server1 [/home/mindmaster0807/_coopSocket]# n which 8.2.1
/usr/local/n/versions/node/8.2.1/bin/node


# 使用軟鏈和替換默認node版本爲新版本
root@server1 [/home/yt_opsadmin]# mv /usr/bin/node /usr/bin/node.old
root@server1 [/home/yt_opsadmin]# mv /usr/local/bin/node /usr/local/bin/node.old
root@server1 [/home/yt_opsadmin]# cp /usr/local/n/versions/node/8.2.1/bin/node /usr/bin
root@server1 [/home/yt_opsadmin]# cp /usr/local/n/versions/node/8.2.1/bin/node /usr/local/bin/
root@server1 [/home/yt_opsadmin]# node -v
v8.2.1


# 替換 npm 爲新版本
root@server1 [/home/yt_opsadmin]# npm -v
1.3.6

root@server1 [/home/yt_opsadmin]# mv /usr/bin/npm /usr/bin/npm.old
root@server1 [/home/yt_opsadmin]# mv /usr/local/bin/npm /usr/local/bin/npm.old
root@server1 [/home/yt_opsadmin]# ln -s /usr/local/n/versions/node/8.2.1/bin/npm /usr/bin/npm
root@server1 [/home/yt_opsadmin]# ln -s /usr/local/n/versions/node/8.2.1/bin/npm /usr/local/bin/npm
root@server1 [/home/yt_opsadmin]# /usr/local/n/versions/node/8.2.1/bin/npm -v
5.3.0



升級glibc到2.17

1.原先的系統glibc庫的版本是2.12,須要升級到2.17版本
root@server1 [/home/yt_opsadmin/node-v12.13.0-linux-x64]# 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_PRIVATE


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

2.編譯
# 編譯時間較長,開啓screen避免編譯中斷
# screen -S glibc
# tar -xf glibc-2.17.tar.gz
# cd glibc-2.17
# mkdir build
# cd build
# 預編譯
# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
# 多線程編譯,加快編譯速度
# make -j 4
# make  install
[root@:~]# 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

[root@spyzie-DB1:~]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.node

相關文章
相關標籤/搜索