win7 + cygwin + nodejs很详细的安装步骤【推荐】

win7下安装node.js详细步骤

1.下载cygwin:http://cygwin.com/setup.exe

2.安装cygwin几个要点:

(1)Install from Internet,安装程序在后面步骤会下载大量文件。

(2)Root Directory,是Cygwin的安装目录。

(3)Local Package Directory,是存放所有下载文件的目录,子目录名即下载镜像网址,子目录下的release目录存放的就是所下载的包。

(4)选择连接方式:可以直接连接(Direct Connection),也可以使用代理(Proxy)。

(5)下载镜像站点推荐:

http://mirrors.kernel.org

http://cygwinminor.3gforphones.com

http://mirrors.163.com/cygwin

http://mirrors.sohu.com/cygwin/

也可以获得官方镜像列表后自己验证,http://cygwin.com/mirrors.lst

(6)首次安装提示信息,OK忽略,但如果安装过cygwin 1.7以下版本,参考:

http://cygwin.com/cygwin-ug-net/ov-new1.7.html

(7)选择包。Default所选包的缺省安装项,Install所选包的全部项,Reinstall断点续传,Uninstall卸载。推荐Install方式。

nodejs所需包:

Devel(开发)目录下的包:

gcc-g++: C++ compiler

gcc-mingw-g++: Mingw32 support headers and libraries for GCC C++

gcc4-g++: G++ subpackage

git: Fast Version Control System – core files(它可以从 github 下载软件最新版源码)

make: The GNU version of the 'make' utility

openssl-devel: The OpenSSL development environment

pkg-config: A utility used to retrieve information about installed libraries

zlib-devel: The zlib compression/decompression library (development)

Editor目录下的包:

vim: Vi IMproved - enhanced vi editor

Python目录下的包:全部Install方式安装

Web目录下的包:

wget: Utility to retrieve files from the WWW via HTTP and FTP

curl: Multi-protocol file transfer command-line tool,npm(node's package manager),nodejs软件包管理器,通过它安装Nodejs各种扩展模块

选完包,Next,如果所选软件包有依赖包,Next确认。

(8)一般情况下,下载所需时间真的很久。下载进度如果出现停滞,取消后重启setup.exe,所有设置同前一次,一直Next到选包部分,Reinstall,已下载过的包会做md5校验码检测,完整下载过的不会再次下载。下载完后进入自动安装,Cygwin安装目录下的bin、lib、usr这3个目录的内容会迅速增长。

3.Windows 7(windows Vista) 特殊步骤

Windows 7(Windows Vista及以后版本),要正常编译nodejs,必须先在Cywgin的ASH模式下执行rebaseall。步骤如下:

(1)cmd命令行

(2)进入cygwin安装目录下的bin子目录

(3)运行ash进入shell模式

(4)./rebaseall -v

(5)没有错误,完成,exit退出ash,关闭命令行窗口

4.rebaseall时出现错误的解决方案:

(1)rebaseall:'/cygdrive/c/Users/ADMINI~1/AppData/Local/Temp' is not writable

启动cygwin安装目录下的cygwin.bat进入终端后:

$cd /

$chmod 777 cygdrive/c/Users/ADMINI~1/AppData/Local/Temp

关闭退出终端

(2)FixImage (/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll) faile, with last error = 13

修改cygwin安装目录下bin子目录下的rebaseall文件,110行增加下列代码:

-e '/\/sys-root\/mingw\/bin/d'

修改后的110行如下:

sed -e '/\/sys-root\/mingw\/bin/d' -e '/cygwin1\.dll$/d' -e '/cyglsa.*\.dll$/d' -e 's/^/\//' >"$TmpFile"

修改后保存,重新./rebaseall -v

5.cygwin终端中下载、编译、安装nodejs

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

$ tar xf node-v0.4.8.tar.gz

$ cd node-v0.4.8

$ ./configure

$ make

$ make install

6.设置DNS

cygwin内部是使用windows的DNS查询,而nodejs另外使用的是c-ares库来解析DNS,这个库会读取/etc/resolv.conf里的nameserver配置,而默认是没有这个文件的,需要自己建立并配置好DNS服务器的IP地址,这里使用Google Public DNS服务器的IP地址:8.8.8.8和8.8.4.4。

$ vi /ect/resolv.conf

nameserver 8.8.8.8

nameserver 8.8.4.4

7.nodejs测试

(1)查看nodejs的版本信息:

$node -v

(2)编写一个简单的js文件测试nodejs的Http Server,我这里的存放路径为cygwin安装目录下里的home/Administrator/node-v0.4.8/test.js,UTF-8编码保存js文件。代码用记事本编写的,内容如下:

var http = require('http'),port = 8888;

http.createServer(function(request,response){

response.writeHead(200,{'Content-Type':'text/html;charset=utf-8;'});

response.end('<h1>这里是NodeJS的世界!</h1>');

}).listen(port);

console.log('服务已启动 );

(3)测试

$ cd node-v0.4.8

$ node test.js

服务已启动 http://127.0.0.1:8888/

A.浏览器打开http://127.0.0.1:8888/,输出页面内容:这里是NodeJS的世界!

B.curl

$ curl http://127.0.0.1:8888/

<h1>这里是NodeJS的世界!</h1>

test.js如有更改,CTRL+C停止Http Server,然后重新开启,$ node test.js

8.npm下载、安装、使用

npm是nodejs的软件包管理器,可以用它安装所需软件包并发布自己为nodejs写的软件包,它还管理软件包的依赖关系并做了其它一些很酷的事情。

(1)一行命令下载并安装npm

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

(2)npm安装node扩展包,同样是一行命令下载并安装好软件包

$ npm install <包名>