FastNetMon

Tuesday 19 March 2013

Установка node.js на Debian Squeeze

Так как в Debian Squeeze нет пакета для node.js вообще, а версия node.js даже в sid лишь 0.6 (при последней 0.10) придется прибегнуть к сборке вручную

Собирается он тривиально:
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 сохраняет свои библиотеки  папке текущего юзера и при попытке запустить их не находясь в ней выдает ошибку. Как с этим бороться - рассмаотрим в следующих статьях;


5 comments :

  1. Круто, спасибо, помог реально! Действительно, пробую запустить просто npm install - ругается. Как же бороться?

    ReplyDelete
    Replies
    1. Не вижу смысле его использовать, когда программ из исходников пару штук и не планируется их массовый деплоймент.

      Delete
  2. Вроде взрослый дядька, а checkinstall не используешь :(

    ReplyDelete
  3. Да, работает через checkinstall. Только версию при установке надо исправить - убрать буквку v

    ReplyDelete
  4. посоны, вы чо? бинарники уже давно лежат на сайте:
    http://nodejs.org/download/

    вывалили их в /opt, добавили в $PATH и пользуйтесь

    ReplyDelete

Note: only a member of this blog may post a comment.