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 <包名>