它似乎工作正常,直到部分完成构建:
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 8GiB免费(1GB内存)。
有人能重新创建这个错误吗?有哪些调试/修复的技巧?
N.b.这个问题类似于杨梅(在Raspberry pi错误上安装ethereum节点)。
此外,这里也报告了一个类似的问题:https://groups.google.com/forum/#!topic/cloud-print-connector/zF_xyViClLM
发布于 2017-02-16 18:44:58
有哪些调试/修复的技巧?
这些建议并不是专门针对etc/Geth/等等的,但对于将来看到同样问题的人来说,它们可能是有用的。
这个错误是在抱怨缺乏记忆。(“内存”指的是RAM,而不是硬盘空间。)
/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是进程id。(请注意,我们使用的是信号号-15,它等同于SIGTERM,而不是-9,即SIGKILL。这样,我们就可以让进程得到信号的通知--如果它安装了处理程序--并优雅地清理。)
发布于 2017-12-21 15:16:20
FWIW我找到了这个答案:https://raspberrypi.stackexchange.com/questions/70/how-to-set-up-swap-space,并且能够在一个拥有512 MB内存的Rasp上编译和运行geth。
https://ethereum.stackexchange.com/questions/12222
复制相似问题