> CentOS > CentOS教程 >

虚拟机下的CentOS环境中安装Node.js

本来这个并没有什么好写的,为什么,网上到处都是。不过在安装的时候确实遇到了很多问题,很有必要记录一下。

 

先安装gcc-c++编译环境和openssl,

>yum install gcc-c++ openssl-devel

第二点,不要使用最新版本的node.js(官网目前最新的为0.5.5),使用最新的在安装express模块会提示错误,为了避免这个问题还是装个0.5以上0.4以上的版本最好,我使用的是ver 0.4.8

>wget http://nodejs.org/dist/node-v0.4.8.tar.gz

clip_image002

 

>tar –xvf node-v0.4.8.tar.gz

>cd node-v0.4.8

>./configure;make;make install

如果在使用./configure时报错:Node.js could not configure a cxx comiler!,解决办法:

>yum groupinstall "Development Tools”

 

写个例子,测试一下node.js是否能正常运行

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

将以上代码存为hello.js,然后使用node hello.js运行,在控制台上按住ctrl键,会出现下划线直接点击。如果打开的网页不能直接浏览,则将上面代码中的127.0.0.1 –> 换成机器的IP地址

 

image

 

然后准备安装npm

>curl http://npmjs.org/install.sh | sh

clip_image002[14]

 

然后安装express模块

npm install express

再安装socket.io,这时出问题了…

类似这样的错误:

ERR! Error: Failed tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1313089924364/1313089933124-0.37383073731325567/contents/___package.npm"
ERR! exited with 2
ERR! at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/exec.js:85:8)
ERR! at ChildProcess.emit (events.js:67:17)
ERR! at Socket. (child_process.js:172:12)
ERR! at Socket.emit (events.js:64:17)
ERR! at Array.1 (net.js:831:12)
ERR! at EventEmitter._tickCallback (node.js:126:26)
ERR! Report this entire log at:
ERR! http://github.com/isaacs/npm/issues
ERR! or email it to:
ERR! npm-@googlegroups.com
ERR!
ERR! System Linux 2.6.18-194.26.1.el5.028stab081.1ent
ERR! command "node" "/usr/local/bin/npm" "install" "socket.io"
ERR! cwd /root
ERR! node -v v0.4.10
ERR! npm -v 1.0.22

 

clip_image002[16]

 

找了半天没发现什么,google搜索出来的结果说是tar的版本过低了,使用tar --version查看一下,为1.15.3,怎么办?下载最新的版本

先是使用yum install tar,得到的结果是没有需要更新的

然后开始下载最新版本的tar(http://www.gnu.org/software/tar/)

wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz

然后解压,安装,可是很郁闷的是发现也报错了。

checking whether mknod can create fifo without root privileges... 
 > configure: error: in `/usr/xxx/tar-1.26':
 >   configure: error: you should not run configure as root (set 
 > FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
 >   See `config.log' for more details.

 

还好找到这篇文章:安装GNU tar (需要使用强制执行,忽略非安全的check)

是自己没有仔细看报错的界面,按照上面的说法,使用

>/configure FORCE_UNSAFE_CONFIGURE=1

重新check、make、install然后搞定

这个时候的tar版本就为最新的1.26了,然后再安装socket.io就正常了

image

 

然后参照socket.io的官网,写个例子测试一下,看环境是否OK了



(责任编辑:IT)