为了账号安全,请及时绑定邮箱和手机立即绑定

go中环境变量的问题

go中环境变量的问题

Go
收到一只叮咚 2021-07-16 18:01:02
我试图在我的 .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/386go 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 subshellsfi我也尝试手动(手动我的意思是在 bash 上明确地作为人类输入它)来源我的 .bash_profile (因为它无论如何都会运行我的 .bashrc 文件)并且 go env 仍然无法识别它。仅当我在 shell 中逐字输入时me$ export GOBIN=$GOBINgo 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"
查看完整描述

3 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

在您的相关 shell 配置文件中试试这个:

export GOPATH=/path/to/your/go/workspace
export PATH=$GOPATH/bin:$PATH

不要设置,GOBIN因为它对 99% 的情况没有用(即单用户机器;请参阅 cmd 文档)。确保unset GOBIN在进行这些更改后。

Go 会知道在哪里安装二进制文件,因为 Go 会GOPATH/{bin, pkg, src}为您处理。另一方面,您的 shell 需要知道添加$GOPATH/bin到您的路径中,以便您可以直接运行 Go 二进制文件。


查看完整回答
反对 回复 2021-07-19
?
郎朗坤

TA贡献1921条经验 获得超9个赞

尝试将export行放在您的.bash_profile而不是.bashrc.

我读过终端总是将 bash 作为登录会话运行,因此将 source .bash_profile,而不是.bashrc.


查看完整回答
反对 回复 2021-07-19
  • 3 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信