Parece-me que atualmente há duas maneiras de fazer isso:
Eu me conformei com o mongo-nonx86
garfo. Instalei as dependências conforme descrito em Instalar o Mongodb no Raspberry Pi e tentei criar o MongoDB usando scons
. Mas eu recebo o seguinte erro:
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.
A compilação mongopi
será interrompida exatamente no mesmo arquivo com a mesma mensagem de erro.
Enquanto isso, percebi que meu sistema estava dramaticamente desatualizado. Mas mesmo a atualização para as versões mais recentes não resolveu o problema. Neste ponto, estou assumindo que é realmente um problema de memória livre. Dado que eu só tenho um modelo inicial de 256 MB.
software-compilation
mongodb
Der Hochstapler
fonte
fonte
mongopi
está completa; D Como eu estou explorando essa avenida agorafree -m
mostra 177 grátis.community
repositório na distro do Arch ARM.Respostas:
Ao ler sobre a situação de pouca memória em geral, encontrei sugestões para simplesmente aumentar o espaço de troca para remediar a situação.
Então, depois de ler a resposta de bearbin , fiquei convencido de que essa poderia ser uma opção válida. No entanto, optei por adicionar espaço de troca sem utilizar o zRAM .
Porque eu nunca consigo lembrar o processo completo para qualquer coisa , eu segui o guia Linux Adicionar um arquivo de permuta - Howto por Nixcraft.
Crie um arquivo de troca / espaço de armazenamento:
Configure o espaço como área de troca:
Permita apenas que o root leia / escreva:
Ativar área de troca:
Posteriormente,
scons
concluí com êxito e consegui instalar o MongoDB. Eu usei omongopi
garfo no final.fonte
Eu tenho uma opção que pode funcionar. No entanto, isso provavelmente diminuirá drasticamente seu processo de compilação.
Você precisa configurar o ZRAM no seu Pi. Basicamente, comprime a RAM usada para permitir que você use mais, mas ao custo de mais uso da CPU.
Seguiremos as instruções aqui, mas eu as colocarei no post para facilitar a visualização.
Então, primeiro, você precisa ser root, pois muitos desses comandos requerem root:
Em seguida, crie um arquivo chamado
/etc/init.d/zram
com o seguinte conteúdo:Se você quiser uma maneira fácil de obtê-lo na Pi:
sudo wget http://vps1.berboe.co.uk/zram.sh -O /etc/init.d/zram
.Em seguida, adicione seu script à lista start-at-boot, fazendo:
Em seguida, reinicie e tudo deve funcionar.
Após a reinicialização, execute este comando:
swapon -s
. A saída deve ser algo como isto:Agora, o ZRAM está instalado e se você tentar compilar como fez antes de funcionar.
fonte