CentOS 6.6 安裝 Node.js


node.js 的 GitHub 地址是:https://github.com/nodejs/node

官網源碼包下載地址時:https://nodejs.org/en/download/

 

① 獲取並編譯源碼(已經安裝了 git)

git clone https://github.com/nodejs/node.git
cd node
git checkout

 

編譯:

./configure

在編譯的時候出錯了:

提示:WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)

提示 C++ 編譯器 g++ 版本太老。

解決方案(參考:linux下升級gcc的方法 – 親測可用編譯安裝 gcc 4.9並驗證使用):

1.下載gcc最新的源碼包 wget http://gcc.skazkaforyou.com/releases/gcc-4.9.1/gcc-4.9.1.tar.gz

2.解壓縮 tar -xf gcc-4.9.1.tar.gz

3. cd gcc-4.9.1

4.運行download_prerequisites腳本, ./contrib/download_prerequisites ,這個腳本會自動幫你下載所需要的依賴文件和庫

如果運行腳本失敗,提示:PASV 無法連接到 209.132.180.131 端口號 10003

那么就打開該腳本:

vim ./contrib/download_prerequisites

把里面幾個下載的命令注釋掉(5 個 wget 命令),然后單獨下載這 5 個源碼包,拷貝到  gcc-4.9.0 目錄下。

繼續:

5.建立輸出目錄,將所有的中間文件都放到該目錄,

mkdir gcc_temp

cd gcc_temp

6. 運行 ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

7. make & make install

編譯安裝的時間比較長。

 

編譯安裝完成之后,再回到 node 目錄,編譯安裝:

./configure
make && make install

 

出錯,使用 make test,提示:

[root@localhost node]# make test
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/usr/local/src/node/out'
  LD_LIBRARY_PATH=/usr/local/src/node/out/Release/lib.host:/usr/local/src/node/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/tools/gyp; mkdir -p /usr/local/src/node/out/Release/obj.target/v8_snapshot/geni; "/usr/local/src/node/out/Release/mksnapshot" --log-snapshot-positions --logfile "/usr/local/src/node/out/Release/obj.target/v8_snapshot/geni/snapshot.log" --startup_src "/usr/local/src/node/out/Release/obj.target/v8_snapshot/geni/snapshot.cc" ""
/usr/local/src/node/out/Release/mksnapshot: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/src/node/out/Release/mksnapshot)
/usr/local/src/node/out/Release/mksnapshot: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/src/node/out/Release/mksnapshot)
make[1]: *** [/usr/local/src/node/out/Release/obj.target/v8_snapshot/geni/snapshot.cc] 錯誤 1
make[1]: Leaving directory `/usr/local/src/node/out'
make: *** [node] 錯誤 2

 

解決方案:

查看 GLIBCXX 版本:

[root@localhost node]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX 
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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

並沒有 GLIBCXX_3.4.20 和 GLIBCXX_3.4.15

 

參考: Linux升級安裝GCC: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.15 not found  

執行以下命令,查找編譯 gcc 時生成的最新動態庫: 

find / -name "libstdc++.so.6"

查詢結果:

[root@localhost gcc_temp]# find / -name libstdc++.so.6
/usr/local/src/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/local/src/gcc-4.9.1/gcc_temp/prev-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-4.9.1/gcc_temp/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-4.9.1/gcc_temp/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6

 

將上面的最新動態庫 libstdc++.so.6 復制到 /usr/lib 目錄下:

[root@localhost gcc_temp]# cp /usr/local/src/gcc-4.9.1/gcc_temp/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /usr/lib

 

此時重新查詢:

[root@localhost lib]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
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
GLIBCXX_DEBUG_MESSAGE_LENGTH

 

此時回到 node 目錄下嘗試重新編譯。

 

完成。

 

查看 node 版本:

[root@localhost node]# node --version

輸出:

[root@localhost node]# node --version
v6.0.0-pre

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM