Я использовал этот скрипт , чтобы попытаться установить geth на Raspberry Pi 3 .
Кажется, он работает нормально до тех пор, пока не пройдет часть сборки:
pi@raspberrypi:~/go-ethereum $ make geth
build/env.sh go run build/ci.go install ./cmd/geth
>>> /usr/lib/go-1.7/bin/go install -ldflags -X main.gitCommit=bdef758d5c6d397584d0c35e53d6f6c318e61351 -v ./cmd/geth
github.com/ethereum/go-ethereum/cmd/geth
# github.com/ethereum/go-ethereum/cmd/geth
/usr/lib/go-1.7/pkg/tool/linux_arm/link: running gcc failed: fork/exec /usr/bin/gcc: cannot allocate memory
util.go:43: exit status 2
exit status 1
Makefile:15: recipe for target 'geth' failed
make: *** [geth] Error 1
Пишет cannot allocate memory
- на SD-карте свободно ~8 ГБ (1 ГБ ОЗУ).
Кто-нибудь может воссоздать эту ошибку? Какие советы по отладке/исправлению?
Nb Этот вопрос аналогичен установке узла ethereum на ошибки Raspberry pi .
Также здесь сообщалось о подобной проблеме: https://groups.google.com/forum/#!topic/cloud-print-connector/zF_xyViClLM .
Какие советы по отладке/исправлению?
Эти предложения не относятся к Ethereum/Geth/и т. д., но они могут быть полезны тем, кто столкнется с той же проблемой в будущем.
Ошибка жаловалась на нехватку памяти. (Где «память» означает ОЗУ, а не место на жестком диске.)
/usr/lib/go-1.7/pkg/tool/linux_arm/link: running gcc failed: fork/exec
/usr/bin/gcc: cannot allocate memory
Даже если вы знаете, сколько памяти у вашей системы, сначала проверьте, сколько ее на самом деле доступно:
free -h
, илиcat /proc/meminfo | grep MemFree
Если есть то, что вы считаете недостаточным, посмотрите, можете ли вы освободить что-то, оценив, какие процессы его используют:
top
, затем M
упорядочить по использованию памяти.После того, как вы выбрали все некритические процессы, которые вам не нужны, убейте их:
kill -15 <pid>
, где pid
идентификатор процесса.(Обратите внимание, что мы используем номер сигнала -15
, который равен SIGTERM
, а не -9
, который равен SIGKILL
. Таким образом, мы даем процессу возможность получить уведомление о сигнале — если у него установлен обработчик — и изящно очистить его.)
FWIW Я нашел этот ответ: https://raspberrypi.stackexchange.com/questions/70/how-to-set-up-swap-space и смог скомпилировать и запустить geth на Rasp B с оперативной памятью 512 МБ.
Ричард Хоррокс
free -h
.) Есть ли какие-нибудь потребляющие память процессы, которые вы могли бы убить в первую очередь? (Запуститеtop
, затем нажмите,M
чтобы упорядочить по памяти.)Ли
Ричард Хоррокс
Ли