Wydaje mi się, że obecnie można to zrobić na dwa sposoby:
Usiadłem na mongo-nonx86
widelcu. Zainstalowałem zależności zgodnie z opisem w Instalowanie Mongodb w Raspberry Pi i próbowałem zbudować MongoDB przy użyciu scons
. Ale pojawia się następujący błąd:
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.
Kompilacja mongopi
zakończy się przy tym samym pliku z tym samym komunikatem o błędzie.
W międzyczasie zdałem sobie sprawę, że mój system był dramatycznie przestarzały. Ale nawet aktualizacja do najnowszych wersji nie rozwiązała problemu. W tym momencie zakładam, że rzeczywiście jest to problem z wolną pamięcią. Biorąc pod uwagę, że mam tylko wczesny model 256 MB.
software-compilation
mongodb
Der Hochstapler
źródło
źródło
mongopi
zostanie zakończona; D W tej chwilifree -m
pokazuje 177 za darmo.community
repozytorium w dystrybucji Arch ARM.Odpowiedzi:
Czytając ogólnie o małej ilości pamięci, znalazłem sugestie, aby po prostu zwiększyć przestrzeń wymiany, aby naprawić sytuację.
Tak więc, po przeczytaniu odpowiedzi niedźwiedzia , byłem przekonany, że może to być ważna opcja. Jednak zdecydowałem się dodać przestrzeń wymiany bez korzystania z zRAM .
Bo ja nigdy nie mogę zapamiętać cały proces cokolwiek , I przestrzegać instrukcji Linux Dodaj plik wymiany - Poradniki przez Nixcraft.
Utwórz przestrzeń wymiany plików / pamięci:
Ustaw przestrzeń jako obszar wymiany:
Zezwalaj tylko rootowi na odczyt / zapis:
Włącz obszar wymiany:
Potem
scons
zakończyłem się sukcesem i mogłem zainstalować MongoDB. W końcu użyłemmongopi
widelca.źródło
Mam opcję, która może działać. Jednak prawdopodobnie znacznie spowolni proces kompilacji.
Musisz skonfigurować ZRAM na swoim Pi. Zasadniczo kompresuje zużytą pamięć RAM, aby umożliwić użycie więcej, ale kosztem większego zużycia procesora.
Postępujemy zgodnie z instrukcjami tutaj, ale umieszczę je w poście, aby ułatwić przeglądanie.
Najpierw musisz być rootem, ponieważ wiele z tych poleceń wymaga rootowania:
Następnie utwórz plik
/etc/init.d/zram
o następującej treści:Jeśli chcesz w prosty sposób uzyskać go na pi:
sudo wget http://vps1.berboe.co.uk/zram.sh -O /etc/init.d/zram
.Następnie dodaj skrypt do listy start-at-boot, wykonując:
Następnie uruchom ponownie i wszystko powinno działać.
Po ponownym uruchomieniu komputera, uruchom polecenie:
swapon -s
. Dane wyjściowe powinny wyglądać mniej więcej tak:Teraz ZRAM jest zainstalowany i jeśli spróbujesz skompilować tak, jak to zrobiłeś, zanim zadziała.
źródło