centos nodejs安装

centos nodejs安装


wget http://nodejs.org/dist/v0.10.36/node-v0.10.36.tar.gz
tar zxvf node-v0.10.36.tar.gz
cd node-v0.10.36
./configure --prefix=/usr/local/node
make && make install


 vim /etc/profile


#set nodejs env
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH


source /etc/profile       --重启生效


[root@iZ258gu0zkwZ node-v0.10.36]# node -v
v0.10.36






------------------------------------------------------------------------------------------------------------------------------------------------------
用v0.10.36的npm一直出错,还是安装个nvm来管理,用新版本试试


yum -y install git
git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
nvm install stable


[root@iZ258gu0zkwZ ~]# node -v
v4.2.1




npm安装库基本都没问题了,只有protobuf不行,执行:
sudo npm install --unsafe-perm --verbose -g protobuf
------------------------------------------------------------------------------------------------------------------------------------------------------


Q:
无法识别的命令行选项“-std=gnu++0x”
A:
[root@iZ258gu0zkwZ ~]# yum install gcc
Loaded plugins: security
Setting up Install Process
Package gcc-4.1.2-55.el5.i386 already installed and latest version
Nothing to do


[root@iZ258gu0zkwZ ~]# yum install gcc-c++
Loaded plugins: security
Setting up Install Process
Package gcc-c++-4.1.2-55.el5.i386 already installed and latest version
Nothing to do




------------------------------------------------------------------------------------------------------------------------------------------------------
原GCC版本:
gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-55)


目标:升级GCC到4.8.2,以支持C++11。


获取GCC 4.8.2包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;
解压缩:tar -xf gcc-4.8.2.tar.gz;
进入到目录gcc-4.8.2,运行:./contrib/download_prerequisites。这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
建立输出目录并到目录里:mkdir gcc-build-4.8.2;cd gcc-build-4.8.2;
configure --enable-checking=release --enable-languages=c,c++ --disable-multilib。–enable-languages表示你要让你的gcc支持那些语言,–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。–disable-checking生成的编译器在编译过程中不做额外检查,也可以使用–enable-checking=xxx来增加一些检查;
编译:make;注意此步和上一步,比较耗时;
安装:make  install;
验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;或者可以查看gcc的安装位置:which gcc;然后在查看版本 /usr/local/bin/gcc -v,通常gcc都安装在该处位置




可以选择使用哪个版本:


先把缺省gcc改名:
[root@iZ258gu0zkwZ gcc-4.8.2]# mv /usr/bin/gcc /usr/bin/gcc-4.1.2


[root@iZ258gu0zkwZ gcc-4.8.2]# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1.2 50
[root@iZ258gu0zkwZ gcc-4.8.2]# update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc 50
[root@iZ258gu0zkwZ gcc-4.8.2]#  update-alternatives --config gcc
看g++版本也变过来了,就不处理了吧




------------------------------------------------------------------------------------------------------------------------------------------------
node4.1.2装protobuf还是出错,用0.10.36就可以了
nvm install v0.10.36
nvm use v0.10.36


------------------------------------------------------------------------------------------------------------------------------------------------
> require("protobuf")
Error: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /root/.nvm/v0.10.36/lib/node_modules/protobuf/build/Release/protobuf_for_node.node)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at repl:1:2
    at REPLServer.self.eval (repl.js:110:21)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.emit (events.js:95:17)
    at Interface._onLine (readline.js:203:10)
    at Interface._line (readline.js:532:8)
又出错,在网上找到解决方案,但是ln建立文件链接好像不行,直接拷贝文件并改名吧


ls /usr/lib/libstdc++.so.6 -l
lrwxrwxrwx 1 root root 18 Mar 29 09:03 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8


libstdc++.so.6.0.这个库里面没有GLIBCXX_3.4.9下载新的库libstdc++.so.6.0.10


一般情况下可以去新版本的redhat enterprise 6.3里面/usr/lib/找到libstdc++.so.6.0.13 文件


下载后请先验证


strings /tmp/libstdc++.so.6|grep GLIBCXX


看是否有GLIBCXX_3.4.10如果没有则表示不是你要找的文件


rm libstdc++.so.6


mv /libstdc++.so.6.0.13 ./


ln -s /usr/lib/libstdc++.so.6.0.13 /usr/lib/libstdc++.so.6


但事实上不知道为啥libstdc++.so.6.0.13 不可以libstdc++.so.6.0.10就可以,不知道原因


需要libstdc++.so.6.0.10文件的可以到http://down.51cto.com/data/186826下载或者给我邮箱


终于好了!
> require("protobuf")
{ Schema: [Function: Schema] }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值