一尘不染

如何在Mac OS X 10.10中设置GOPATH

go

我在Mac OS X中安装了Go 1.4。以前我有Go 1.0。我将GOROOT和PATH设置如下,

Dineshs-MacBook-Air:go-cassandra Dany$ which go
/usr/local/go/bin/go
Dineshs-MacBook-Air:go-cassandra Dany$ export GOROOT=/usr/local/go/bin/go
Dineshs-MacBook-Air:go-cassandra Dany$ export PATH=$PATH:$GOROOT/bin

Go安装在“ / usr / local / go / bin /
go”中。然后将GOPATH设置为我的项目src目录。我可以在目录中运行go代码。但是,当我尝试安装gocql时,出现错误。

Dineshs-MacBook-Air:go-cassandra Dany$ sudo go get github.com/gocql/gocql
package github.com/gocql/gocql: cannot download, $GOPATH not set. For more details see: go help gopath

有人可以帮我吗?谢谢

编辑1: @VonC我也尝试了其他选项。我将GOROOT更改为go的安装目录。但这没有帮助。然后我更改了GOPATH。

Dineshs-MacBook-Air:go-cassandra Dany$ export GOROOT=/usr/local/go
Dineshs-MacBook-Air:go-cassandra Dany$ export PATH=$PATH:$GOROOT/bin
Dineshs-MacBook-Air:go-cassandra Dany$ export GOPATH=/Users/Dany/Documents/FALL-2013-COURSES/Imp_Data_structures/workspace/go-cassandra
Dineshs-MacBook-Air:go-cassandra Dany$ sudo go get github.com/gocql/gocql
Password:
package github.com/gocql/gocql: cannot download, $GOPATH not set. For more details see: go help gopath
Dineshs-MacBook-Air:go-cassandra Dany$ echo $GOPATH
/Users/Dany/Documents/FALL-2013-COURSES/Imp_Data_structures/workspace/go-cassandra
Dineshs-MacBook-Air:go-cassandra Dany$ ls
bin pkg src
Dineshs-MacBook-Air:go-cassandra Dany$

阅读 513

收藏
2020-07-02

共1个答案

一尘不染

笔记:

GOROOT应该引用一个文件夹(安装go的位置),而不是go可执行文件本身

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

正如戴夫(Dave在评论中提到的那样,您不必完全根据GOROOT自己的情况进行设置。
看到这篇文章,您不需要设定GOROOT,真的

GOPATH应该引用一个文件夹,在该文件夹下srcpkgbin。(不应直接引用该src文件夹):
请参见“ 如何编写Go代码-工作区

关于GOPATH

  • 尝试将其设置在您的中~/.bashrc(使用export)。
  • 检查您当前的shell是bash(而不是其他类似bash fish
  • 检查的输出go env

不要执行sudo go get,因为用于sudoroot)的环境变量将与当前用户不同:

go get github.com/gocql/gocql

或者您需要执行sudo -E bash -c 'gogetgithub.com/gocql/gocql',但我怀疑您不需要root在这里)

参见sudo警告

使用sudo命令调用它们时,不会将添加到这些位置的任何变量反映出来,因为sudo具有重置环境和设置安全路径的默认策略(此行为在中定义/etc/sudoers

2020-07-02