Mac Big Sur系统安装Golang时遇到的问题及解决方案

Mac Big Sur系统安装Golang时遇到的问题及解决方案 我按照以下指南安装了Go:https://golang.org/doc/install

我遇到了错误,以下是一些命令的输出:

[8:17]mac*me: ~ go version
go: creating work dir: stat x: no such file or directory
[8:52]mac*me: ~/www/go go version
go: creating work dir: stat x: no such file or directory
[8:52]mac*me: ~/www/go go run hello.go
go: creating work dir: stat x: no such file or directory
[8:52]mac*me: ~/www/go which go
/usr/local/go/bin/go
[8:52]mac*me: ~/www/go ls /usr/local/go/bin/go
-rwxr-xr-x  1 root  wheel  14307168 Jan 19 22:13 /usr/local/go/bin/go
[8:52]mac*me: ~/www/go echo $PATH
/usr/local/opt/php@7.4/sbin:/usr/local/opt/php@7.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Applications/Little Snitch.app/Contents/Components
[8:52]mac*me: ~/www/go echo $GOPATH
/Users/me/www/go
[8:52]mac*me: ~/www/go echo $GOROOT

[8:52]mac*me: ~/www/go
[11:37]mac*darko: ~/www/go/src/projects ls hello.go
-rw-rw-r--  1 darko  staff  73 Jan 21 08:52 hello.go
[11:37]mac*darko: ~/www/go/src/projects ls -ld .
drwxr-xr-x  13 darko  staff  416 Jan 21 11:35 .
[11:37]mac*darko: ~/www/go/src/projects go build -x
go: creating work dir: stat x: no such file or directory
[11:37]mac*darko: ~/www/go/src/projects echo $TMPDIR
/var/folders/bl/2tjp_95x4ss6lc113dzv25kr0000gn/T/
[11:37]mac*darko: ~/www/go/src/projects echo $TEMPDIR
zsh: correct '$TEMPDIR' to '$TMPDIR' [nyae]? n
[12:23]mac*darko: ~/www/go/src/projects ls -ld $TMPDIR
drwx------@ 144 darko  staff  4608 Jan 21 12:23 /var/folders/bl/2tjp_95x4ss6lc113dzv25kr0000gn/T/
[12:23]mac*darko: ~/www/go/src/projects ls
[12:23]mac*darko: ~/www/go/src/projects touch $TMPDIR/me.txt
[12:24]mac*darko: ~/www/go/src/projects echo $GOTMPDIR

[12:24]mac*darko: ~/www/go/src/projects go env
go: creating work dir: stat x: no such file or directory

更多关于Mac Big Sur系统安装Golang时遇到的问题及解决方案的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于Mac Big Sur系统安装Golang时遇到的问题及解决方案的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个错误是由于Go工具链无法创建临时工作目录导致的。从错误信息go: creating work dir: stat x: no such file or directory可以看出,Go试图在路径"x"下创建工作目录,这明显是一个无效路径。

问题很可能出在GOTMPDIR环境变量上。虽然你的输出显示echo $GOTMPDIR返回空,但Go可能从其他地方获取了一个无效的临时目录设置。

以下是解决方案:

  1. 首先检查所有可能的环境变量设置
# 检查shell配置文件中的设置
grep -r "GOTMPDIR\|TMPDIR" ~/.zshrc ~/.bash_profile ~/.profile ~/.bashrc 2>/dev/null

# 检查当前shell会话的所有环境变量
env | grep -i tmp
  1. 明确设置GOTMPDIR环境变量
# 临时设置(当前会话有效)
export GOTMPDIR=$TMPDIR

# 或者使用系统标准临时目录
export GOTMPDIR=/tmp
  1. 永久解决方案,添加到shell配置文件
# 编辑~/.zshrc(如果你使用zsh)
echo 'export GOTMPDIR=$TMPDIR' >> ~/.zshrc
source ~/.zshrc

# 或者编辑~/.bash_profile(如果你使用bash)
echo 'export GOTMPDIR=$TMPDIR' >> ~/.bash_profile
source ~/.bash_profile
  1. 验证修复
# 设置环境变量后
export GOTMPDIR=$TMPDIR

# 现在应该能正常工作了
go version
go env GOTMPDIR

# 测试编译
cd ~/www/go/src/projects
go build hello.go
./hello
  1. 如果问题仍然存在,尝试直接指定临时目录
# 使用-x标志查看详细构建过程
GOTMPDIR=/tmp go build -x hello.go

# 或者直接设置环境变量
export GOTMPDIR=/var/tmp
go run hello.go
  1. 检查Go安装完整性
# 验证Go安装
ls -la /usr/local/go/bin/
/usr/local/go/bin/go version

# 如果是从官网下载的pkg安装包,可能需要重新安装
# 或者使用Homebrew安装:
brew install go

问题根源是Go工具链在查找临时目录时获取了错误的值。通过明确设置GOTMPDIR环境变量,可以确保Go使用正确的临时目录进行编译操作。

回到顶部