root 执行 /usr/local/go/bin/go version 最后会执行到 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.5.linux-amd64/bin/go 这个二进制文件
root go env GOPATH 为 /root/go
jenkins 用户执行 /usr/local/go/bin/go version 最后会执行到 /usr/local/go/bin/go 本身,jenkins GOPATH 是什么别的东西。
定位方式为:
# root 执行的时候
strace -e trace=file /usr/local/go/bin/go version
# 能够看到执行路径跳转到了 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.5.linux-amd64/ 路径下
解决方式为:按照 golang 官方社区安装步骤重新安装
确认 root 和 jenkins PATH 的环境变量一定配置了,即可解决。
ps: go 高版本是可以兼容低版本代码编译的,一般不需要搞多版本 go 维护。