跟踪不同用户执行同一个 /usr/local/go/bin/go 二进制结果不一致

180 阅读1分钟

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 官方社区安装步骤重新安装

image.png

确认 root 和 jenkins PATH 的环境变量一定配置了,即可解决。

ps: go 高版本是可以兼容低版本代码编译的,一般不需要搞多版本 go 维护。