由于centos 5.4的python版本是2.4,nodejs要求的版本为2.6或者2.7。所以首先要图升级centos的python版本。
update python to version 2.7
wget http://www.python.org/ftp/python/2.7/Python-2.7.tar.bz2
tar xjf Python-2.7.tar.bz2
注:因为vps的bzip2库版本较老,导致python2.7在安装的时候,不会自动安装bz2库。
而在安装nodejs的时候,需要用到,所以需要手动安装bz2库。
sudo yum install -y bzip2*
cd Python-2.7.2/Modules/zlib
./configure
make
sudo make install
还需要,打开binascii模块的编译。不然在安装node的时候,会提示找不到binascii模块。
cd ../../
vi Modules/Setup.dist
找到下面的两行,将binascii前的注释去掉。
# Helper module for various ascii-encoders
#binascii binascii.c
#改成如下两行:
# Helper module for various ascii-encoders
binascii binascii.c
然后,安装python2.7。
./configure
make all
sudo make install
make clean
make distclean
之前的版本还在,要使用python2.7,做个软连接应该就OK。
sudo mv /usr/bin/python /usr/bin/python-bak
sudo ln -s /usr/local/bin/python2.7 /usr/bin/python
升级安装好以后yum会无法使用,因为yum使用的是2.4版本的,所以要修改yum的配置文件以便能够识别2.4版本下的python
sudo vim /usr/bin/yum
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.4
然后,就可以安装Nodejs了。
wget http://nodejs.org/dist/v0.6.10/node-v0.6.10.tar.gz
tar xzf node-v0.6.10.tar.gz
cd node-v0.6.10
./configure //
这个时候,会报错:
Checking for program g++ or c++ : not found
Checking for program icpc : not found
Checking for program c++ : not found
/home/admin/pkgs/node-v0.6.10/wscript:261: error: could not configure a cxx compiler!
解决办法是:
安装gcc-c++
sudo yum install gcc-c++
之后,会报错:
Checking for openssl : not found
Checking for function SSL_library_init : not found
Checking for header openssl/crypto.h : not found
/home/admin/pkgs/node-v0.6.10/wscript:374: error: Could not autodetect OpenSSL support. Make sure OpenSSL development packages are installed. Use configure --without-ssl to disable this message.
解决办法:安装openssl-devel
sudo yum install openssl-devel
然后,就可以正常编译安装了。
./configure
make
sudo make install
curl http://npmjs.org/install.sh | sudo sh
会提示,找不到node,所以:
再做一个软链接:
sudo ln -s /usr/local/bin/node /usr/bin/node
curl http://npmjs.org/install.sh | sudo sh
可以正常运行。