Linux 安装go遇到cannot execute binary file: Exec format error错误

首先我先过一遍linux安装go的过程

在安装go之前我们要确定我们要安装那种版本的go,常见的版本有以下几种:
在这里插入图片描述

go1.16.3.linux-386.tar.gz

这个版本是32位linux系统使用的

go1.16.3.linux-amd64.tar.gz

这个版本是64位linux系统且架构是x86架构的64位扩展的系统使用的

go1.16.3.linux-arm64.tar.gz

这个版本是给架构为ARMv8的系统使用的

go1.16.3.linux-armv6l.tar.gz

这个版本是给架构为ARMv6的系统使用的

现在开始安装

使用wget下载go的二进制文件

wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

使用tar将源码包提取到/usr/local目录中

sudo tar -C /usr/local -xzf go1.10.3.linux-amd64.tar.gz

调整环境变量,在/etc/profile文件的最后一行添加下面代码

export PATH=$PATH:/usr/local/go/bin

保存退出后source一下,source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。因为linux所有的操作都会变成文件的格式存在。

source /etc/profile

然后测试一下安装是否成功

go version

此时就有可能会出现下面的这个错误

bash: /usr/local/go/bin/go: cannot execute binary file: Exec format error

出现这个错误的原因如果你已经尝试网上的各种方法比如chmod +x go给予权限等,还是没有解决问题,那么很有可能就是go 安装包和当前系统版本不匹配,我们可以通过uname -a查看自己linux系统的架构,比如我的orangepi的ubuntu系统的架构是aarch64,它是ARMv8 架构的一种执行状态,是属于arm架构,所以我只能安装go1.16.3.linux-arm64.tar.gz这个版本,之前一直报错是因为我安装了go1.16.3.linux-ard64.tar.gz,这个版本是x86架构的和我的系统不匹配。

到此为止go安装成功。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐