使用cygwin在windows下安装nodeJS

2011-09-26 00:00:00 by 【6yang】, 70 visits, 收藏 | 返回

nodeJS火的不行鸟,早就想安装下试试,对于Ubuntu系统是很容易的,可是自从电脑重装了win7系统,就没ubuntu系统了,今天试用了用cygwin安装nodejs。具体过程如下:

安装cygwin

cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件。下载地址是:http://cygwin.com/setup.exe。

安装cygwin几个要点

(1)Install from Internet,安装程序在后面步骤会下载大量文件。
(2)Root Directory,是Cygwin的安装目录。
(3)Local Package Directory,是存放所有下载文件的目录,子目录名即下载镜像网址,子目录下的release目录存放的就是所下载的包。
(4)选择连接方式:可以直接连接(Direct Connection),也可以使用代理(Proxy)。
(5)下载镜像站点推荐:
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)建议第一次安装是默认的安装项,第二次在选择nodejs的所需包。

(8)选择包。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,

选完包,Next,如果所选软件包有依赖包,Next确认。
(8)一般情况下,下载所需时间真的很久。下载进度如果出现停滞,取消后重启setup.exe,所有设置同前一次,一直Next到选包部 分,Reinstall,已下载过的包会做md5校验码检测,完整下载过的不会再次下载。下载完后进入自动安装,Cygwin安装目录下的bin、 lib、usr这3个目录的内容会迅速增长。
本人安装的是过程中重试了n次,都卡在gcc上,最后睡觉去了,第二天一看竟然安装好了。

Windows 7(windows Vista) 安装nodeJS的特殊步骤

Windows 7(Windows Vista及以后版本),要正常编译nodejs,必须先在Cywgin的ASH模式下执行rebaseall。步骤如下:
(1)cmd命令行
(2)进入cygwin安装目录下的bin子目录
(3)运行ash进入shell模式
(4)./rebaseall -v
(5)没有错误,完成,exit退出ash,关闭命令行窗口

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

使用cygwin安装nodejs

下载安装nodejs

首先使用wget下载最新版的nodeJS,例如:
$ wget http://nodejs.org/dist/node-v0.4.12.tar.gz
解压,编译安装:

$ tar xf node-v0.4.12.tar.gz
$ cd node-v0.4.12
$ ./configure
$ make
$ make install

配置nodejsDNS

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

写个hello world

(1)查看nodejs的版本信息:
$node -v 或者–version
(2)编写一个简单的js文件测试nodejs的Http Server,我这里的存放路径为cygwin安装目录下里的home/Administrator/node-v0.4.12/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>hello world</h1><p>里是NodeJS的世界!</p>');   }).listen(port); console.log('服务已启动 http://127.0.0.1:'+port+'/');

(3)测试

$ node test.js

服务已启动 http://127.0.0.1:8888/
浏览器打开http://127.0.0.1:8888/,输出页面内容:hello world,这里是NodeJS的世界!

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

npm下载、安装、使用

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

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

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

$ npm install <包名>

例如安装mysql:npm install mysql

分享到:
share

    图片原图

    loading

    loading