He estado usando este script para intentar instalar geth en una Raspberry Pi 3 .
Parece funcionar bien hasta la mitad de la compilación:
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
Está diciendo cannot allocate memory
: hay ~ 8 GiB libres en la tarjeta SD (1 GB de RAM).
¿Alguien puede recrear este error? ¿Qué consejos hay para depurar/arreglar?
Nb Esta pregunta es similar a Instalar el nodo ethereum en los errores de Raspberry pi .
Además, se informó un problema similar aquí: https://groups.google.com/forum/#!topic/cloud-print-connector/zF_xyViClLM
¿Qué consejos hay para depurar/arreglar?
Estas sugerencias no son específicas para Ethereum/Geth/etc., pero pueden ser útiles para alguien que tenga el mismo problema en el futuro.
El error se quejaba de falta de memoria. (Donde "memoria" significa RAM, no espacio en el disco duro).
/usr/lib/go-1.7/pkg/tool/linux_arm/link: running gcc failed: fork/exec
/usr/bin/gcc: cannot allocate memory
Incluso si sabe cuánta memoria tiene su sistema, primero verifique cuánto está realmente disponible:
free -h
, ocat /proc/meminfo | grep MemFree
Si hay algo que considera que no es suficiente, vea si puede liberar algo evaluando qué procesos lo están usando:
top
, luego M
ordenar por uso de memoria.Una vez que haya seleccionado los procesos no críticos que no necesita, elimínelos:
kill -15 <pid>
, donde pid
está el id del proceso.(Tenga en cuenta que estamos usando el número de señal -15
, que equivale a SIGTERM
, en lugar de -9
, que es SIGKILL
. De esta manera, le damos al proceso la oportunidad de recibir una notificación de la señal, si tiene un controlador instalado, y limpiar correctamente).
FWIW encontré esta respuesta: https://raspberrypi.stackexchange.com/questions/70/how-to-set-up-swap-space y pude compilar y ejecutar geth en un Rasp B con 512 MB de RAM
Richard Horrocks
free -h
). ¿Hay algún proceso que consume memoria que podría eliminar primero? (Ejecutetop
, luego presioneM
para ordenar por uso de memoria).Sotavento
Richard Horrocks
Sotavento