我试图在我的 .go 文件上运行 go install 但是,它似乎失败了。它失败是因为我的 GOBIN 环境变量没有设置。但是,当我回应它时,我确实得到了它的设置,因为我的 .bashrc 和 .bash_profile 文件确保它已设置。但是,它没有在 go env 中设置。出于某种原因,当实际设置时,go 无法识别其设置。
但是,如果我在 shell 上手动设置为:
me$ export GOBIN=$GOBIN
现在 go env 决定识别它,即使我的 .bashrc 文件中有明确的行导出它并且我的 echo 确认了它的设置。有人知道为什么 go 的行为很奇怪吗?
我尝试过的东西/参考
我的操作系统
mac osx 小牛。
GO版
- 我的 go 版本是 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 文件。即我的 .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"
慕容708150
郎朗坤
相关分类