我在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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?谢谢
编辑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$
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 26
笔记:
GOROOT应该引用一个文件夹(安装go),而不是go可执行文件本身
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
Run Code Online (Sandbox Code Playgroud)
正如Dave在评论中提到的那样,GOROOT在你的情况下你根本不需要设置.
看到这篇文章,您不需要设置GOROOT,真的.
GOPATH应该引用您将在其下找到的文件夹src,pkg以及bin.(它不应直接引用该src文件夹):
请参阅" 如何编写Go代码 - 工作区 "
关于GOPATH:
~/.bashrc(使用export)中设置它.fish)go env.不要这样做sudo go get,因为用于sudo(root)的环境变量与当前用户不同:
go get github.com/gocql/gocql
Run Code Online (Sandbox Code Playgroud)
(或者你需要做一个sudo -E bash -c 'go get github.com/gocql/gocql',但我怀疑你不需要root这里)
见sudo警告:
使用
sudo命令调用时,不会反映添加到这些位置的任何变量,因为sudo默认策略是重置环境并设置安全路径(此行为已定义/etc/sudoers)
您需要告知Go您的工作空间的位置。在此示例中,我们将使用 $HOME/dev/go-workspace。
然后你需要知道你的 mac 是否将 zsh 或 bash 配置为 shell。
文件 ~/.zshrc 用于 zsh shell。zsh shell 是在 macOS Catalina 中引入的。
~/.bashrc 是预览版操作系统版本中使用的 bash shell,对于 Linux 用户来说也是如此。
1:添加这些行以导出 ~/.zsh 或 ~./bashrc 中所需的变量,具体取决于您的 shell。
对于从原始 pkg 安装的 go,请从https://golang.org/doc/install下载
export GOPATH=$HOME/dev/go-workspace
export GOROOT=/usr/local/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
Run Code Online (Sandbox Code Playgroud)
对于从 homebrew 安装的 Go。(brew 更新和brew 安装 golang)
export GOPATH=$HOME/dev/go-workspace
export GOROOT=/usr/local/opt/go/libexec
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
Run Code Online (Sandbox Code Playgroud)
2:运行
# source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
或者
source ~./bashrc
Run Code Online (Sandbox Code Playgroud)
根据步骤 #2 中插入的新变量更新 $PATH
3:然后创建您的工作区目录:
$ mkdir -p $GOPATH $GOPATH/src $GOPATH/pkg $GOPATH/bin
Run Code Online (Sandbox Code Playgroud)
4:创建一个test.go,hello world
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
Run Code Online (Sandbox Code Playgroud)
通过执行以下命令来运行您的程序:
$ go run test.go
Run Code Online (Sandbox Code Playgroud)
如果您想编译它并将其移动到 $GOPATH/bin,然后运行:
$ go install test.go
Run Code Online (Sandbox Code Playgroud)
由于我们已将 $GOPATH/bin 添加到您的 $PATH,您只需输入 test 就可以从任何地方运行您的程序:
$ test
Run Code Online (Sandbox Code Playgroud)
如果一切正确,输出将是:
hello, world
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32717 次 |
| 最近记录: |