【问题标题】:setting GOPATH doesn't have any effect设置 GOPATH 没有任何效果
【发布时间】:2015-02-19 19:27:25
【问题描述】:

在 MacOS Yosemite 上,在我设置的 .profile 文件中:

GOPATH="$HOME/go"
PATH="$PATH:$GOPATH/bin"

但是go env 输出:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH=""
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

我还在我的主文件夹中创建了.bashrc,将 GOPATH 变量添加到文件中,但最终结果是相同的。似乎在我设置这个路径变量之前,我无法安装任何 Go 包。有什么想法可能是错的吗?

【问题讨论】:

  • 您是否在 .profile 中尝试过 export GOPATH="$HOME/go"
  • @DaveMackintosh 它有效。但是如何将它添加到 .profile 中,这样我就不必每次需要时都运行它?
  • 该文件中的任何内容都有效吗?如果没有,将其重命名为.bash_profile
  • 不过,请查看此问题stackoverflow.com/questions/6751252/…,了解.profile.bash_profile 之间的区别,您可以决定使用哪一个。我个人使用.bash_profile
  • @lucassp 没有导出变量仍然在当​​前脚本的范围内。您应该在配置文件中的任何全局环境变量声明之前进行导出。

标签: macos go environment-variables


【解决方案1】:

您的声明中需要有export,原因是当您从shell 启动应用程序时,您的应用程序没有收到更新后的$PATH。当您 export 一个变量时,它会将其添加到发送给所有未来应用程序调用的环境列表中。

有关外壳内环境的更多信息,请参阅here

另外,请尝试调查.profile.bash_profile 之间的选择,因为如果您在.bash_profile 中有类似的导出并且您没有附加到$PATH,它将覆盖您的导出。请参阅this question 了解更多信息。

.profile 与 shell bash 兼容,而 .bash_profile 仅与 bash 兼容(如果您不知道区别,请使用 .bash_profile)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-20
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 2018-06-14
    相关资源
    最近更新 更多