Instalar MongoDB sobre una máquina con ARM con Linux

Hoy voy a mostrar cómo instalar paso a paso MongoDB en una máquina con procesador ARM. Estos comandos, y el repositorio que vamos a utilizar, están originalmente orientados a la Raspberry Pi, pero son compatibles con otros dispositivos con la misma arquitectura de procesador.

Pese a que MongoDB es exigente en hardware y recursos, llevo tiempo queriendo montar un entorno de desarrollo tal y como lo montaría en cualquier PC-servidor con Linux. Sin embargo, la arquitectura ARM aún no está tan extendida como para instalar cualquier servicio y no es sencillo recopilar información para preparar todo el entorno.

Antes de comenzar, deberemos instalar una serie de librerías esenciales para la instalación de MongoDB. Es probable que alguna de ellas ya la tengamos instaladas, pero por si acaso, listamos todas las imprescindibles.

Responde “yes” en caso de que el sistema operativo solicite confirmación en la instalación de las librerías y sus dependencias.

La versión de MongoDB que vamos a instalar es una versión modificada para funcionar en una Raspberry Pi, por tanto, será compatible con sistema cuyo procesador esté basado en una arquitectura ARM.

A día de hoy, pese a que existe una petición para que MongoDB de soporte a ARM respaldada por mucha gente de la comunidad, no existe otra forma de instalar MongoDB. Cruzamos los dedos para que ese día llegue pronto y me comprometo a manteneros informados sobre este asunto.

Compilación e instalación de MongoDB

Volviendo al asunto que nos ocupa, el repositorio que clonaremos de github compilará la versión 2.1.1 de MongoDB. Sí, hoy en día estamos estrenando la versión estable 2.6.0, pero no existe otra alternativa.

Para clocar el proyecto, tendremos que ejecutar el siguiente comando:

Tras descargar algo más de 100MB, accederemos a la carpeta que contiene el proyecto:

Ya está todo preparado para comenzar la compilación de MongoDB, esta tarea puede demorarse mucho. En el Utilite Pro, un quadcore ARM, sin paralelizar la compilación, el proceso se alargó algo más de hora y media. En una Raspberry Pi recomiendo dejarlo compilando mientras realizamos otras tareas.

He de advertir que una vez ejecutado el siguiente comando, el directorio puede llegar a pesar 2GB, por lo que revisar el espacio libre de disco antes de comenzar.

El comando anterior es una herramienta que se utiliza para compilar software. Una vez termine, procedemos a la instalación de sistema. El siguiente comando, también se tomará un buen rato. No sabría detallar cuanto tiempo ya que lo dejé trabajando por la noche pero, según Chris Mobberley en su blog que se enlaza al final de esta entrada, la Raspberry Pi podría alargarse unas cuatro horas.

Puesta a punto de MongoDB

Una vez terminada, por fin, la instalación, sólo nos quedará por ejecutar algunas tareas para poner a punto MongoDB, poder ejecutarlo y empezar a usarlo.

Añadimos el usuario “mongodb” y al grupo “nogroup” con el siguiente comando.

Creamos el directorio que almacenará los logs de MongoDB:

Y cambiamos el propietario de la carpeta para que Mongo pueda escribir sobre ella:

Creamos también el directorio donde se almacenarán los datos:

Con su propietario correspondiente:

Movemos el demonio de MongoDB a init.d para que se ejecute al iniciar el sistema:

Damos permisos de ejecución a mongod:

Y actualizamos los defaults de update-rc

Movemos el fichero de configuración de MongoDB a etc:

Creamos enlaces para todos los ejecutables (mongo, mongodump, mongotop, etc.) en /usr/bin/. Esto hará que podamos ejecutar los programas sin necesidad de especificar toda la ruta ya que /usr/bin/ está en el classpath the ejecución de linux.

Con esto, tendríamos MongoDB preparado para ejecutarse. Si reiniciamos el sistema, mongod se levantará automáticamente. Pero si queremos continuar sin reiniciar, podemos ejecutar el siguiente comando para levantar el demonio de MongoDB manualmente:

Para hacer la prueba, podemos ejecutar el cliente de mongo que responderá como se muestra a continuación:

Por tanto, tendremos una instancia de mongo ejecutandose en nuestro servidor en http://localhost:27017 (el puerto por defecto de mongo). Además, podremos ver que mongo también tiene una interfaz gráfica muy básica a la que podremos acceder a través de http://localhost:28017 con información básica.

Sin embargo, por defecto, REST no está habilitado y, por tanto, clicando sobre cualquier enlace del servicio web, devolverá el siguiente mensaje:

Para activar REST, tendremos que modificar el demonio de init.d y añadir —rest como parámetro. Editamos el demonio de mongodb:

Y buscamos la siguiente porción de código:

Añadimos —rest antes después de $CONF, quedando el código así:

Ahora nos queda cerrar y guardar, que haremos haciendo CTRL+X y respondiendo Y. Reiniciamos mongodb haciendo:

De esta forma, terminamos la entrada sobre cómo instalar MongoDB en una máquina con procesador ARM. Por ahora, esto es todo; más adelante, tengo intención de escribir sobre herramientas con las que poder acceder a los datos de MongoDB, herramientas parecidas al phpMyAdmin de MySQL. Y como no, contar algo sobre este interesantísimo SGBD con el que es muy fácil empezar pero que requiere un cambio de concepto, de chip, muy fuerte respecto a las bases de datos relacionales.

Por último, quiero mencionar y agradecer la estupenda guía de Chris Mobberley, en la que me basé para instalar MongoDB en mi máquina.

Publicado en MongoDB y etiquetado , , , .

Un comentario

Deja una respuesta

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

*