我在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目录。我能够在我的目录中运行代码。但是当我尝试安装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$
答案 0 :(得分:25)
注意:
GOROOT
应该引用一个文件夹(安装了go),而不是go
可执行文件本身
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
在评论中提及Dave时,您根本不需要设置GOROOT
。
请参阅文章You don’t need to set GOROOT
, really。
GOPATH
应该引用一个文件夹,您可以在其中找到src
,pkg
和bin
。 (它不应直接引用src
文件夹):
请参阅“How to Write Go Code - Workspace”
关于GOPATH
:
~/.bashrc
中设置(使用export
)。fish
)go env
。不要执行sudo go get
,因为用于sudo
(root
)的环境变量与当前用户不同:
go get github.com/gocql/gocql
(或you would need to do a sudo -E bash -c 'go get github.com/gocql/gocql'
,但我怀疑你这里不需要root
请参阅sudo caveat:
使用
sudo
命令调用时,不会反映添加到这些位置的任何变量,因为sudo
具有重置环境和设置安全路径的默认策略(此行为在/etc/sudoers
)
答案 1 :(得分:0)
我在 MacOS 中设置 GOROOT 和 GOPATH 时遇到了很多问题,唯一对我有用的解决方案是以下一个:
如果您使用 Oh My Zsh ~/.bashrc
~/.profile
或 ~/.zshrc
中
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
之后,在终端中运行以下命令:
source ~/.profile
如果您有任何不同的外壳,请将其替换为 .profile
。
信息: $HOME
变量将指向您当前用户的目录。
信息 2: /usr/local/go
是所有用户、go 文件和 bin 文件夹所在的位置。
将自定义 GOPATH 设置为工作目录:
要将您的 GoLang 项目存储在不同的文件夹中,您可以设置自定义路径。这是我的自定义 GOPATH,它指向我的 admin/Documents 文件夹中的 goWorkSpace 文件夹。
export GOPATH=$HOME/Documents/goWorkSpace
答案 2 :(得分:0)
您需要通知前往您的工作区的位置。在这个例子中,我们将使用 $HOME/dev/go-workspace。
然后你需要知道你的mac是否将zsh或bash配置为shell。
<块引用>文件 ~/.zshrc 用于 zsh shell。引入了 zsh shell 在 OS Big Sur 中。
~/.bashrc 是预览操作系统版本中使用的 bash shell,对于 linux 用户也是如此。
1:添加这些行以在 ~/.zsh 或 ~./bashrc 中导出所需的变量,具体取决于您的 shell。
对于从 https://golang.org/doc/install 的原始 pkg 下载安装的 go
export GOPATH=$HOME/dev/go-workspace
export GOROOT=/usr/local/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
对于从 Home brew 安装的 Go。 (brew update 和 brew install golang)
export GOPATH=$HOME/dev/go-workspace
export GOROOT=/usr/local/opt/go/libexec
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
2:运行
# source ~/.zshrc
或
source ~./bashrc
根据步骤#2 中插入的新变量更新 $PATH
3:然后创建您的工作区目录:
$ mkdir -p $GOPATH $GOPATH/src $GOPATH/pkg $GOPATH/bin
4:创建一个test.go,hello world
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
通过执行来运行你的程序:
$ go run test.go
如果你想编译它并将它移动到 $GOPATH/bin,然后运行:
$ go install test.go
由于我们已将 $GOPATH/bin 添加到您的 $PATH,您只需键入 test 即可从任何地方运行您的程序:
$ test
如果一切正常,输出将是:
hello, world
答案 3 :(得分:0)
macos terminal:
brew install go
edit ~/.zshenv
export GOROOT="/usr/local/Cellar/go/1.16.6/libexec"
export GOPATH="/Users/Shared/Development/go-workspace"
export PATH="$PATH:$GOPATH/bin"
将 GOPATH 视为为环境配置的工作区。 GOROOT 是 go 语言的安装点。 Homebrew 会将 bin 命令符号链接到您的 /usr/local/bin。将 $GOPATH 添加到您的 PATH 中,以便找到您以后安装的任何 Go 程序。