Так как в Debian Squeeze нет пакета для node.js вообще, а версия node.js даже в sid лишь 0.6 (при последней 0.10) придется прибегнуть к сборке вручную
Для теста давайте напишем простейший веб-сервер в файле example.js:
Тестируем ping.js:
Вуаля:
Собирается он тривиально:
apt-get install python g++ make
cd /usr/src
mkdir node_js
cd $_
wget http://nodejs.org/dist/node-latest.tar.gz
tar -xf node-latest.tar.gz
cd node-v*
./configure --prefix=/opt/nodejs
make
make install
Для теста давайте напишем простейший веб-сервер в файле example.js:
var http = require('http');Запускаем:
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8124);
console.log('Server running at http://127.0.0.1:8124/');
/opt/nodejs/bin/node example.js
Server running at http://127.0.0.1:8124/
Все, теперь открываем в браузере данный адрес на 8124м порту и убеждаемся, что все работает:
curl http://stat.fastvps.ru:8124
Hello World
Чтобы данная инструкция была полной, стоит поговорить о менеджере пакетов node.js - npm. Он визуально очень хорошо работает и даже сам разрешает зависимости (огромный плюс!).
Попробуем установить пакет для пинга узлов:
/opt/nodejs/bin/npm install net-ping
Тестируем ping.js:
var ping = require ("net-ping");
var session = ping.createSession ();
session.pingHost ("google.com", function (error, target) {
if (error)
console.log (target + ": " + error.toString ());
else
console.log (target + ": Alive");
});
Вуаля:
/opt/nodejs/bin/node ping.js
8.8.8.8: Alive
Единственное, что странно - npm сохраняет свои библиотеки папке текущего юзера и при попытке запустить их не находясь в ней выдает ошибку. Как с этим бороться - рассмаотрим в следующих статьях;
Круто, спасибо, помог реально! Действительно, пробую запустить просто npm install - ругается. Как же бороться?
ReplyDeleteНе вижу смысле его использовать, когда программ из исходников пару штук и не планируется их массовый деплоймент.
DeleteВроде взрослый дядька, а checkinstall не используешь :(
ReplyDeleteДа, работает через checkinstall. Только версию при установке надо исправить - убрать буквку v
ReplyDeleteпосоны, вы чо? бинарники уже давно лежат на сайте:
ReplyDeletehttp://nodejs.org/download/
вывалили их в /opt, добавили в $PATH и пользуйтесь