Мне кажется, что сейчас есть два пути:
Я остановился на mongo-nonx86
вилке. Я установил зависимости, как описано в разделе Установка Mongodb в Raspberry Pi, и попытался собрать MongoDB, используя scons
. Но я получаю следующую ошибку:
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.
Компиляция mongopi
остановится на том же файле с тем же сообщением об ошибке.
Тем временем я понял, что моя система сильно устарела. Но даже обновление до последних версий не решило проблему. На данный момент, я предполагаю, что это действительно проблема со свободной памятью. Учитывая, что у меня только ранняя модель 256 МБ.
software-compilation
mongodb
Der Hochstapler
источник
источник
mongopi
будет завершена; D Поскольку я сейчас исследую эту авенюfree -m
показывает 177 бесплатно.community
хранилище в дистрибутиве Arch ARM.Ответы:
Читая о ситуации с нехваткой памяти в целом, я нашел предложения просто увеличить пространство подкачки, чтобы исправить ситуацию.
Итак, после прочтения ответа Bearbin , я был убежден, что это может быть правильным вариантом. Однако я решил добавить пространство подкачки без использования zRAM .
Потому что я никогда не могу вспомнить весь процесс что - либо , я последовал за руководство Linux Добавление файла подкачки - Howto по Nixcraft.
Создать файл подкачки / место для хранения:
Установите пространство как область подкачки:
Разрешить только root для чтения / записи:
Включить область подкачки:
После этого
scons
успешно завершено, и я смог установить MongoDB. Я использовалmongopi
вилку в конце.источник
У меня есть вариант, который может сработать. Однако это, вероятно, значительно замедлит процесс компиляции.
Вам нужно настроить ZRAM на своем Pi. По сути, он сжимает используемую оперативную память, чтобы позволить вам использовать больше, но за счет увеличения загрузки ЦП.
Мы будем следовать инструкциям здесь, но я помещу их в пост для удобного просмотра.
Итак, во-первых, вам нужно быть пользователем root, так как многие из этих команд требуют root:
Затем создайте файл
/etc/init.d/zram
с таким содержимым:Если вы хотите простой способ получить его на Pi:
sudo wget http://vps1.berboe.co.uk/zram.sh -O /etc/init.d/zram
.Затем добавьте ваш скрипт в список запуска при загрузке, выполнив:
Затем перезагрузите компьютер и все должно работать.
После перезагрузки, выполните следующую команду:
swapon -s
. Вывод должен быть примерно таким:Теперь ZRAM установлен, и если вы попытаетесь скомпилировать, как вы делали, прежде чем он может работать.
источник