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 的下载界面:All releases - The Go Programming Language 然后选择基于 ARM 架构版本。

4afa40481769901a112fdbc4c95f9211

然后运行下面的命令进行安装。

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 的运行环境已经配置好了。

cd4c61dd9b7e66194e4084a4608ba2e9715287c4

上图中显示了配置的 go 的版本。