Node.js + Raspberry Pi: instalación

Ricardo Vega / 10 mayo 2016
⏰ 4 minutos
Últimamente estoy experimentando mucho con NodeJS como motor (backend) para varios de mis proyectos relacionados con el Internet de las Cosas, en especial para aquellos que tienen una gran dependencia de datos en tiempo real.
La posibilidad de poder instalar una versión de NodeJS en nuestra Raspberry Pi nos permite ampliar notablemente nuestras opciones al poder crear pequeñas aplicaciones encargadas de tareas complejas muy del estilo de las que podemos estar buscando si somos lectores habituales de este blog, tales como visualización y control de sensores, pudiendo crear de una forma muy rápida complejos paneles de control.
Instalando NodeJS en tu Raspberry Pi.
Con este objetivo en mente, el otro día estaba preparando un entorno de desarrollo para Node.js en mi Raspberry Pi cuando, de repente me di cuenta la dificultad que tenía para instalar nuevos módulos.
Me dió por comprobar que versión de Node.js y NPM tenía y, ¡sorpresa! versiones muy desactualizadas. Paraece ser que las últimas versiones compiladas para arquitecturas ARM como la Raspberry están bastante obsoletas y es posible que no nos valgan para según que usos.
La instalación la había realizado de la forma más sencilla, aplicando los siguientes comandos:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nodejs npm
Hasta aquí todo normal. Dependiendo la distribución Linux que estés empleando, podrás estar funcionando con las nuevas compilaciones oficiales de NodeJS o con versiones que tienen al menos un año de antigüedad.
Si la versión que se instala por defecto con nuestro gestor de paquetes es muy antigua, estaremos en ciertos problemas para funcionar con varios módulos más modernos.
Podemos comprobar la versión instalada mediante el comando:
nodejs -v
v0.6.19 No me es suficiente. Voy a instalar la versión más actual. Para ello, instalaré, gracias a este excelente proyecto, la última versión que tienen disponible compilada para ARM:
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
node -v
v0.12.6 Mucho mejor.
Sin embargo, la última versión oficial de NodeJS en el momento que escribo estas líneas es 4.4.3. Si queremos instalar esta versión deberemos seguir leyendo...
¿Quieres tener la últimísima versión de NodeJS en tu Raspberry Pi?
La versión disponible en "node-arm" es una versión compilada en un instalable .deb. Como indicaba antes, está disponible también una versión oficial mucho más moderna (4.4.3) pero tenemos el inconveniente de que no es un ejectubale .deb y perderíamos la capacidad de auto-actualización (al menos de forma sencilla).
Si aún así queremos instalar esta versión, deberemos acudir a la web oficial del proyecto NodeJS y en Downloads bajo Additional Platforms >> ARM Binaries (.tar.xz), bajar la versión que nos corresponda (en la mayoría de los casos, ARMv7).
Descomprimimos el fichero .tar.xz mediante:
tar xf node-v4.4.3-linux-armv7l.tar.xz
Tendremos una carpeta, y dentro, la carpeta que más nos interesa es 'bin' donde tenremos 'node' y 'npm'. Movemos ambos ficheros a un lugar donde nuestro sistema los reconozco como comandos del sistema:
sudo cp node npm /bin
Probamos de nuevo la versión:
node -v
v4.4.3 - ¡Perfecto!
Rizando el rizo
Ahora, tenemos la opción de rizar el rizo bajo nuestra propia responsabilidad. Es decir, no recomiendo seguir los siguientes pasos salvo a aquellas personas que quieran tener la última versión a costa de algún que otro dolor de cabeza debido a que no es una versión estable para esta arquitectura.
Nota: Si tienes un equipo con arquitectura x64 (independientemente de tu sistema operativo) cuando instalas node, por defecto se instala la última versión estable. Sin embargo, las últimas versiones estables para Rpi no son las mismas que para x64. Nosotros con los siguientes pasos vamos a intentar instalar las últimas versiones aunque aún no sean estables para ARM.
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Lo que estamos haciendo en este caso no es más que emplear el paquete "n", el cual representa un helper de Node, para actualizar node a la última versión estable.
Estamos actualizando Node.js desde npm. Es algo así como Inception ;)
Tanto si finalmente has decidido actualizarte a la última versión como si te has quedado con la versión de node-arm, deberías ya tener disponible un entorno de NodeJS totalmente operativo con el que empezar a hacer tus pruebas.
Hablando de ello: me encantaría conocer qué planes tienes para NodeJS dentro de tus proyectos domóticos y del Internet de las Cosas. Puedes aprovechar los comentarios o las redes sociales para compartirlos con todos nosotros.
¡Hasta la próxima semana!
Subscríbete a mi newsletter
Actualmente estoy llevando a cabo algunos cambios en mi Newsletter y no es posible apuntarse 😞