Me parece que actualmente hay dos formas de hacerlo:
Me conformé con el mongo-nonx86
tenedor. Instalé las dependencias como se describe en Instalar Mongodb en Raspberry Pi e intenté construir MongoDB usando scons
. Pero me sale el siguiente error:
generate_buildinfo(["build/buildinfo.cpp"], ['\n#include <string>\n#include <boost/version.hpp>\n\n#include "mongo/util/version.h"\n\nnamespace mongo {\n const char * gitVersion() { return "%(git_version)s"; }\n std::string sysInfo() { return "%(sys_info)s BOOST_LIB_VERSION=" BOOST_LIB_VERSION ; }\n} // namespace mongo\n'])
gcc -o build/linux2/normal/third_party/pcre-8.30/pcre_exec.o -c -fPIC -fno-strict-aliasing -Wstrict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Wcast-align -Winvalid-pch -O3 -DBOOST_ALL_NO_LIB -D_SCONS -DMONGO_EXPOSE_MACROS -DSUPPORT_UTF8 -D_FILE_OFFSET_BITS=64 -DJS_C_STRINGS_ARE_UTF8 -DMONGO_HAVE_HEADER_UNISTD_H -DMONGO_HAVE_EXECINFO_BACKTRACE -DHAVE_SYNC_FETCH_AND_ADD -DALIGNMENT_IMPORTANT -DHAVE_BSWAP32 -DHAVE_BSWAP64 -DHAVE_CONFIG_H -Ibuild/linux2/normal/third_party/boost -Isrc/third_party/boost -Ibuild/linux2/normal/third_party/pcre-8.30 -Isrc/third_party/pcre-8.30 -Ibuild/linux2/normal -Isrc -Ibuild/linux2/normal/mongo -Isrc/mongo src/third_party/pcre-8.30/pcre_exec.c
gcc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
scons: *** [build/linux2/normal/third_party/pcre-8.30/pcre_exec.o] Error 4
scons: building terminated because of errors.
La compilación mongopi
se detendrá exactamente en el mismo archivo con el mismo mensaje de error.
Mientras tanto, me di cuenta de que mi sistema estaba dramáticamente desactualizado. Pero incluso actualizar a las últimas versiones no resolvió el problema. En este punto, supongo que de hecho es un problema con la memoria libre. Dado que solo tengo un modelo temprano de 256 MB.
software-compilation
mongodb
Der Hochstapler
fuente
fuente
mongopi
termine mi compilación ; D Mientras estoy explorando esa avenida ahora mismofree -m
muestra 177 gratis.community
repositorio en la distribución Arch ARM.Respuestas:
Mientras leía sobre situaciones de poca memoria en general, encontré sugerencias para simplemente aumentar el espacio de intercambio para remediar la situación.
Entonces, después de leer la respuesta de bearbin , estaba convencido de que esta podría ser una opción válida. Sin embargo, opté por agregar espacio de intercambio sin utilizar zRAM .
Como nunca recuerdo el proceso completo de nada , seguí la guía Linux Add a Swap File - Howto de Nixcraft.
Crear archivo de intercambio / espacio de almacenamiento:
Configure el espacio como área de intercambio:
Solo permita que la raíz lea / escriba:
Habilitar área de intercambio:
Luego, se
scons
completó con éxito y pude instalar MongoDB. Usé elmongopi
tenedor al final.fuente
Tengo una opción que podría funcionar. Sin embargo, probablemente disminuirá drásticamente su proceso de compilación.
Necesitas configurar ZRAM en tu Pi. Básicamente, comprime la RAM utilizada para permitirle usar más, pero a costa de un mayor uso de la CPU.
Seguiremos las instrucciones aquí, pero las pondré en la publicación para facilitar su visualización.
Primero, debes ser root ya que muchos de estos comandos requieren root:
Luego, cree un archivo llamado
/etc/init.d/zram
con los siguientes contenidos:Si quieres una manera fácil de obtener en el Pi:
sudo wget http://vps1.berboe.co.uk/zram.sh -O /etc/init.d/zram
.Luego, agregue su script a la lista de inicio en el arranque haciendo:
Luego reinicie y todo debería funcionar.
Después del reinicio, ejecute este comando:
swapon -s
. La salida debería ser algo así:Ahora, ZRAM está instalado y si intenta compilar como lo hizo antes, podría funcionar.
fuente