一直以来都是使用 gvm 来管理多个 go 版本,但是今天使用 gvm 来安装 go1.23 时报错了,
Installing go1.23.0 as go1.23...
* Compiling...
/home/zhansan/.gvm/scripts/install: line 93: go: command not found
ERROR: Failed to compile. Check the logs at /home/luochunhui.123__dcar/.gvm/logs/go-go1.23-compile.log」,
查看 /home/zhansan/.gvm/logs/go-go1.23-compile.log
文件的日志内容如下:
ERROR: Cannot find /zhansan/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.20.6.
看不出来原因,把问题、报错和文件内容发给豆包
,豆包说我需要先安装一个满足要求的 Go 版本(大于等于 Go 1.20.6),接着把 $GOROOT_BOOTSTRAP
环境变量指向这个 Go 安装目录,但是我电脑上有高于 go1.20 的版本,go1.21 和go1.22 都有,所以不是这个原因,随后豆包推荐我卸载重装 gvm
卸载 gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-uninstaller)
如果执行命令时一直卡住,可以尝试执行 rm -rf ~/.gvm
直接删除 gvm 的工作目录来完成删除,如果删除时提示 rm: cannot remove '/home/zhangsan/.gvm': Directory not empty
,说明当前用户权限不足,无法删除该文件夹,切换到 root 执行删除命令即可,或者执行 sudo rm -rf ~/.gvm
重新安装 gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
安装好 gvm 后,使用 gvm 安装 go1.22, 执行 gvm install go1.22
,然后执行 gvm use go1.22 --default
把 go1.22 设置为全局默认版本,然后就可以执行 gvm install go1.23
安装 go1.23 了。