Raspberry Pi 安装 go 后提示错误 Exec format error
提示的错误信息如下:
-bash: /usr/local/go/bin/go: cannot execute binary file: Exec format error
问题和解决
出现上面问题的原因可能是你下载了不用架构的版本。
Raspberry Pi 的 CPU架构为 ARM,如果你下载使用了 X86 架构的话,你的安装是没有办法运行的。
进入 go 的下载界面:https://golang.org/dl 然后选择基于 ARM 架构版本。
然后运行下面的命令进行安装。
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.4.linux-armv6l.tar.gz
在安装完成后,需要参考官方的文档设置路径。
可以编辑 $HOME/.profile 或 /etc/profile 文件,在这个文件的最后添加下面这句话:
export PATH=$PATH:/usr/local/go/bin
然后再执行 source /etc/profile
命令,简单点,你也可以退出当前会话后重新登录。
遇到的坑
如果你的 Raspberry Pi 版本不是非常新,你需要确定下 CPU 的版本。
运行命令:cat /proc/cpuinfo
可以看到当前系统的 CPU 版本,在现在这个版本的情况下,你需要下载的是 ARMv6 的编译包。
如果你下载并且使用了 ARMv8 的编译包的话,你同样也会遇到上面的错误。
原因就是编辑的文件不支持当前的 CPU。
检查安装情况
当完成上面的配置后,运行命令:
go version
如果你能看到显示的 go 的 version 版本的话,那么就表示 go 的运行环境已经配置好了。
上图中显示了配置的 go 的版本。
https://www.ossez.com/t/raspberry-pi-go-exec-format-error/13471