zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    黑马程序员面向对象09天1
    一键安装LNMP
    多屏互动技术
    阿里云CentOS 64位解决kernel2.6.32220.13.1.el6.x86_64 has missing requires错误
    listview的onItemClickListener失效
    在阿里云主机上基于CentOS用vsftpd搭建FTP服务器(赚)
    asp.net关于在线支付的实现过程
    C#关闭登录窗体,显示主窗体
    winform 刷新父窗体(转)
    用代码生成器生成的DAL数据访问操作类 基本满足需求了
  • 原文地址:https://www.cnblogs.com/dee0912/p/5272149.html
Copyright © 2011-2022 走看看