执行go install报错cannot find GOROOT directory: /usr/local/go如何解决
GOROOT目录找不到错误排查与解决方案
该错误本质是Go运行时读取到的GOROOT配置指向不存在的/usr/local/go路径,GOROOT对应Go语言的核心安装目录,可按照以下步骤排查解决:
第一步:验证当前GOROOT配置
- 执行命令
go env GOROOT,确认输出结果是否为提示中的/usr/local/go - 执行命令
ls /usr/local/go,校验该路径是否真实存在,且目录下包含bin、src、pkg等Go安装默认子目录
第二步:定位Go实际安装路径
- 执行
which go查询go可执行文件的调用路径,例如输出为/usr/bin/go - 执行
readlink -f /usr/bin/go得到可执行文件的真实绝对路径,例如输出为/usr/lib/go/bin/go,去掉末尾的/bin/go得到的/usr/lib/go就是实际的GOROOT路径 - 不同安装方式的默认GOROOT路径参考:
- 官方压缩包安装默认路径:
/usr/local/go - Debian/Ubuntu apt安装默认路径:
/usr/lib/go - Mac Homebrew安装默认路径:
/usr/local/opt/go/libexec
- 官方压缩包安装默认路径:
修复方案
临时生效(仅当前终端会话有效)
直接在终端执行导出命令,替换为你自己的实际GOROOT路径:
export GOROOT=/usr/lib/go
配置完成后重新执行go install first_webapp即可。
永久生效(对当前登录用户有效)
- 编辑用户shell配置文件,bash用户编辑
~/.bashrc,zsh用户编辑~/.zshrc - 在文件末尾添加以下配置,替换为实际的GOROOT路径:
export GOROOT=/usr/lib/go export PATH=$PATH:$GOROOT/bin
- 执行
source ~/.bashrc(对应你编辑的配置文件)使修改立即生效
异常场景修复
如果确认/usr/local/go路径存在但仍报错:
- 检查目录权限,执行
sudo chmod -R 755 /usr/local/go赋予所有用户读和执行权限 - 若安装文件损坏,重新下载对应系统版本的Go官方安装包,覆盖该路径即可
内容的提问来源于stack exchange,提问作者Casabo Lozada
相关产品推荐
相关产品推荐

