Instalar y ejecutar Node.js y npm en una máquina ARM con Linux

nodejs+arm

Instalar Node.js en un ARM con Linux, como bien podría ser una Raspberry Pi o un Utilite Pro, a través de la herramienta apt-get, instala la versión 0.6.12 que, a día de hoy, es una versión muy primitiva. Si queremos una versión posterior, no nos quedará más remedio que compilar el source code para nuestra máquina.

ARM es una arquitectura de procesadores que siempre ha ido ligada y está enfocada al bajo consumo por lo que su foco de ventas son los smartphones. Sin embargo, cada vez se están viendo más en otro tipo de dispositivos. Dispositivos económicos y de bajo consumo como pueden ser la Raspberry Pi o el Utilite Pro de Compulab, que dispongo.

Debido a que esto es una nueva tendencia, aún existen pocos Sistemas Operativos compatibles y pocos, también, los programas instalables. Al menos, la forma natural de instalación, aún no es tan sencilla como en los x86.

En esta entrada explicaré cómo hacer funcionar NodeJS en su versión v0.11.9 y la herramienta npm v1.3.15. Las siguientes líneas son compatibles para cualquier máquina ARM, ya sea una Raspberry Pi, un Utilite Pro, Cubox, CubieBoard…

Ha decir verdad, no me ha resultado nada fácil instalar Node.js en la máquina Utilite Pro que presenté anteriormente con Ubuntu y arquitectura ARM. Si buscáis información, os sonará haber leído que añadiendo el repositorio ppa de Chris Lea al sistema, podrás instalar la última versión de Node.

Desgraciadamente, no será tan fácil si utilizas un sistema con ARM ya que la versión de Chris Lea no está preparada para funcionar sobre esta arquitectura y, como mencionaba anteriormente, apt-get no logrará instalar una versión superior a la 0.6.12.

Dicho esto, no queda otra que compilar el código fuente de NodeJS para nuestro sistema. Pero tendremos que tener en cuenta un par de cosas ya que la compilación por defecto fallará al intentar compilar con snapshot al no estar compilando para x86 así que tendremos que desactivarlo.

Paso a paso: instalación y compilación de Node.js

En primer lugar, tendremos que descargar el source code de nodejs.org.

wget http://nodejs.org/dist/v0.11.9/node-v0.11.9.tar.gz

Y posteriormente, descomprimir el fichero descargado:

tar -zxvf node-v0.11.9.tar.gz

Esto nos generará una carpeta de nombre node-v0.11.9 a la que accederemos.

cd node-v0.11.9

A continuación viene el punto clave, donde definiremos el tipo de compilación que deseamos. Como decíamos anteriormente, muy importante desactivar snapshot.

./configure --without-snapshot --dest-cpu=arm --dest-os=linux

En el punto siguiente, podremos irnos a tomar un café (o dos) tranquilamente ya que comenzamos la compilación, un proceso que puede alargarse casi una hora en el Utilite Pro, que cuenta con un cuadcore armv7l. En una RaspberryPi, recomiendo dejarlo compilando mientras nos damos una vuelta.

make

Cuando volvamos, nos quedará el último paso, realizar la instalación. Un proceso que no se demorará mucho.

sudo make install

Con esto, habremos terminado la instalación de Node. El source code, además, también habrá instalado la herramienta npm por lo que ya podremos comenzar a trabajar con total normalidad.

Sólo en el caso de que al ejecutar node, nos diga que no localiza el comando, deberemos ejecutar el siguiente comando que reparará el path que utiliza el shell para ejecutar programas:

hash -r

Prueba y ejecución de Node.js

Una vez tenemos instalado por fin Node.js, vamos a comprobar el resultado comprobando las versiones instaladas tanto para node como para npm:

node -v
v0.11.9

npm -v
1.3.15

Ahora, ya estamos listos para probar nuestro primer «Hello World!» con nodejs. Para ello, tendremos que crear un fichero .js al que vamos a llamar servidor.js.

sudo nano servidor.js

Y pegaremos el siguiente código que no hace más que inicializar el servidor http y escuchar en un determinado puerto respondiendo con un texto plano y Hello World.

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Hacemos CTRL+X para cerrar nano y guardar el fichero y lo ejecutamos en node que mostrará el siguiente resultado.

node servidor.js
Server running at http://127.0.0.1:1337/

Pese a que este resultado ya nos da suficiente seguridad de que Node está funcionando, podemos abrir el navegador y navegar a la siguiente url: http://localhost:1337/ . Inmediatamente, nos cargará una página con el mencionado Hello World.

Resultado Hello World con Node.js
Resultado Hello World con Node.js

Conclusión

Y esto es todo. Ya tenemos Node.js en marcha en una máquina ARM. La instalación en un x86 es prácticamente trivial ya que no necesitaréis más que añadir el ppa de Christian Lea y ejecutar un apt-get install normal y corriente.

Mi experiencia con Node.js comenzó durante el master en Sistemas Informáticos Avanzados cursado en 2012-2013 en la Facultad de Informática de San Sebastián donde realicé un trabajo fin de máster en torno a una aplicación móvil cuya base del servidor estaba enfocada a node y demostraba que el desarrollo no-nativo de aplicaciones móviles era posible utilizando tecnologías alternativas como el HTML5 del que, junto a node, espero escribir algo en el futuro para contar mi experiencia.

Ibai

Apasionado por la tecnología, el software, las interfaces de usuario (UX UI) y los sistemas. Utilizo este canal de comunicación para transmitir de manera informal, y muchas veces "rápido", pequeñas aportaciones a la comunidad software.

One thought on “Instalar y ejecutar Node.js y npm en una máquina ARM con Linux

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

*

Artículos relacionados