Pull to refresh

Пошаговая установка Node.js на Windows без виртуалок

Reading time 3 min
Views 59K


Эта статья предназначена для тех, кого бесят мильён левых служб и драйверов, которые ставят любые виртуалки. Тем, кто будут ставить доп. пакеты Node.js
Все остальные могут скачать скомпилированный Node.js node-js.prcn.co.cc
Или же установить Node.js из-под виртуалки nodejs.ru/25

Прошу под кат


Совсем без виртуалок, конечно, не обойдется попутно нам придется поставить Cygwin. Который лишен левых windows-служб, что меня неимоверно порадовало.

Качаем Cygwin setup.exe — 670 Кб cygwin.com/setup.exe

Установка Cygwin


Запускаем, предложит выбрать путь установки, лучше ставить в c:\cygwin\
Далее предложит выбрать путь куда будут заливаться пакеты, мой выбор пал на c:\cygwin\p\
Далее предложит выбрать зеркало, откуда будет качать пакеты — я выбрал ftp.linux.kiev.ua — скорость отдачи очень радует

Теперь нам нужно установить необходимые для установки и работы Node.js пакеты
Dev — ставим все или только пакеты ниже
— gcc g++ C++ compiler
— gcc mingw-g++
— gcc4-4++ G++ subpackage
— git
— make
— openssl
— pkg-config
— zlib-devel
Python – ставим все
Web
— wget

Окно выбора пакетов примерно такое:


Установщик соберет зависимости и установит все минут за 5 при отдаче в 8 Мбит/сек


Патчим rebaseall


Открываем файл C:\сygwin\bin\rebaseall не виндузовым блокнотом

Если имя пользователя не латинское (прим. Администратор), то находим
TmpDir="${TMP:-${TEMP:-/tmp}}"
Заменяем на
TmpDir="/tmp"

Если работаем под 7й виндой, то находим
sed -e '/cygwin1\.dll$/d' -e '/cyglsa.*\.dll$/d' -e 's/^/\//' >"$TmpFile"
Заменяем на
sed -e '/cygwin1\.dll$/d' -e '/cyglsa.*\.dll$/d' -e 's/^/\//' -e '/\/sys-root\/mingw\/bin/d' >"$TmpFile"

Больше ничего патчить не нужно

Патчим библиотеки


Закрываем Cygwin если открыли
Запускаем командную строку windows
в ней вбиваем C:\сygwin\bin\ash.exe
Вбиваем руками ./rebaseall –v

В результате мы увидим что-то такое:
/usr/lib/dde1.2/tcldde12.dll: new base = 69050000, new size = 20000
... пропущена тыщастрок ...
/usr/lib/reg1.1/tclreg11.dll: new base = 69030000, new size = 20000
/usr/bin/cygz.dll: new base = 69000000, new size = 30000

Закрываем виндузовую командную строку

Запускаем Cygwin


Запускаем Cygwin при первом запуске он создаст каталог для текущего пользователя windows в своей среде
у меня c:\cygwin\home\Администратор\



Ставим Node.js


Качаем последнюю стабильную версию и устанавливаем

$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvf node-latest.tar.gz
$ cd node-v0.2.4/
$ ./configure
$ make
$ make install

Если ругается на openssl
./configure --without-ssl

Пробуем запустить Node.js
$ node --version
v0.2.4

Создаем тестовое приложение для Node.js


Создаем файл c:\cygwin\home\Администратор\www\server.js
var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/html'});
  response.end('<b>Hello World from Cygwin</b>');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

Запускаем наш сервер


$ node /home/Администратор/www/server.js

Тут может заругаться фаерволл windows — разрешаем все, что спросит
Открываем 127.0.0.1:8124
Если вы увидели Hello World from Cygwin значит у вас все получилось, поздравляю.

Прочие фиксы


Для того, чтобы Node.js мог работать с внешними DNS, нужно создать файл /etc/resolv.conf и прописать в него
nameserver 8.8.8.8
nameserver 8.8.4.4

Это адреса Google Public DNS

По мотивам
codebetter.com/blogs/matthew.podwysocki/archive/2010/09/07/getting-started-with-node-js-on-windows.aspx
blog.brev.name/2010/09/nodejs-on-windows-7-under-cygwin.html
Tags:
Hubs:
+40
Comments 19
Comments Comments 19

Articles