【发布时间】:2023-04-09 03:12:02
【问题描述】:
我试图在我的 .go 文件上运行 go install,但是它似乎失败了。它失败了,因为我的 GOBIN 环境变量没有设置。但是,当我回显它时,我确实得到了它的设置,因为我的 .bashrc 和 .bash_profile 文件确保了它的设置。但是,它没有在 go env 中设置。由于某种原因,go 在实际设置时无法识别其设置。
但是,如果我在 shell 上手动设置为:
me$ export GOBIN=$GOBIN
现在 go env 决定识别它,尽管我的 .bashrc 文件中有明确的行导出它并且我的 echo 确认了它的设置。有人知道为什么 go 表现得很奇怪吗?
我尝试过/参考的事情
我的操作系统
mac osx 小牛队。
开始版本
-我的 go 版本是 go1.2 darwin/386。当我跑步时
go version
我明白了:
go version go1.2 darwin/386
go env 识别什么和环境变量
跑步
go env
显示在我的终端中:
GOARCH="386"
GOBIN=""
GOCHAR="8"
GOEXE=""
GOHOSTARCH="386"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH=""
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_386"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread -fno-common"
CXX="g++"
CGO_ENABLED="1"
我的 .bashrc 和 .bash_profile 的样子
我在我的 .bash_profile 中采购我的 .bashrc 文件。 IE。这是我的 .bash_profile 中的这段代码:
if [ -f ~/.bashrc ]; then
source ~/.bashrc #executes for bash subshells
fi
我还尝试手动(手动我是指以人类身份在 bash 上明确键入)获取我的 .bash_profile(因为它无论如何都会运行我的 .bashrc 文件)并且 go env 仍然无法识别它。
只有当我真正输入我的 shell 时
me$ export GOBIN=$GOBIN
go env 是否返回我想要的:
GOARCH="386"
GOBIN="/Users/brando90/go/bin"
GOCHAR="8"
GOEXE=""
GOHOSTARCH="386"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH=""
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_386"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread -fno-common"
CXX="g++"
CGO_ENABLED="1"
【问题讨论】:
-
执行
go version和go env时的输出是什么? -
go env 的输出是:go version go1.2 darwin/386 (如何让它看起来像注释中的代码?)
-
对于 go env 它:GOARCH="386" GOBIN="" GOCHAR="8" GOEXE="" GOHOSTARCH="386" GOHOSTOS="darwin" GOOS="darwin" GOPATH="" GORACE=""GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_386" TERM="dumb" CC="gcc" GOGCCFLAGS="-g -O2 -fPIC - m32 -pthread -fno-common" CXX="g++" CGO_ENABLED="1"
-
只需将其添加到您的帖子中即可。这种方式读起来太难了。:)
-
我会将这些细节添加到我的问题中。