如何在 Mac OS X 10.10 中设置 GOPATH
How to set GOPATH in Mac OS X 10.10
我在 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$
备注:
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
)。
- 检查您当前的 shell 是 bash(而不是
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
)
Any variables added to these locations will not be reflected when invoking them with a sudo
command, as sudo
has a default policy of resetting the Environment and setting a secure path (this behavior is defined in /etc/sudoers
)
我在 MacOS 中设置 GOROOT 和 GOPATH 时遇到很多问题,唯一对我有用的解决方案是以下一个:
如果您使用 Oh My Zsh ~/.zshrc
,请将以下代码添加到您的 ~/.bashrc
或 ~/.profile
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
之后,运行 在您的终端中输入以下命令:
source ~/.profile
如果您有任何不同的 shell,请将其替换为 .profile
。
信息: $HOME
变量将指向您当前用户的目录。
信息 2: /usr/local/go
是所有用户、go 文件和 bin 文件夹所在的位置。
将自定义 GOPATH 设置为工作目录:
要将您的 GoLang 项目存储在不同的文件夹中,您可以设置自定义路径。这是我的自定义 GOPATH,它指向我的 admin/Documents 文件夹中的 goWorkSpace 文件夹。
export GOPATH=$HOME/Documents/goWorkSpace
您需要告知前往您工作区的位置。在这个例子中,我们将使用 $HOME/dev/go-workspace.
然后你需要知道你的 mac 是否有 zsh 或 bash 配置为 shell.
The file ~/.zshrc is used for zsh shell. The zsh shell was introduced
in OS Big Sur.
The ~/.bashrc is the bash shell used in previews OS version, the same for linux users.
1:添加这些行以在您的 ~/.zsh 或 ~./bashrc 中导出所需的变量,具体取决于您的 shell.
从 https://golang.org/doc/install
下载的原始 pkg 安装
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 更新和 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
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
tldr;
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 程序。
我在 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$
备注:
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
)。 - 检查您当前的 shell 是 bash(而不是
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
)
Any variables added to these locations will not be reflected when invoking them with a
sudo
command, assudo
has a default policy of resetting the Environment and setting a secure path (this behavior is defined in/etc/sudoers
)
我在 MacOS 中设置 GOROOT 和 GOPATH 时遇到很多问题,唯一对我有用的解决方案是以下一个:
如果您使用 Oh My Zsh ~/.zshrc
~/.bashrc
或 ~/.profile
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
之后,运行 在您的终端中输入以下命令:
source ~/.profile
如果您有任何不同的 shell,请将其替换为 .profile
。
信息: $HOME
变量将指向您当前用户的目录。
信息 2: /usr/local/go
是所有用户、go 文件和 bin 文件夹所在的位置。
将自定义 GOPATH 设置为工作目录:
要将您的 GoLang 项目存储在不同的文件夹中,您可以设置自定义路径。这是我的自定义 GOPATH,它指向我的 admin/Documents 文件夹中的 goWorkSpace 文件夹。
export GOPATH=$HOME/Documents/goWorkSpace
您需要告知前往您工作区的位置。在这个例子中,我们将使用 $HOME/dev/go-workspace.
然后你需要知道你的 mac 是否有 zsh 或 bash 配置为 shell.
The file ~/.zshrc is used for zsh shell. The zsh shell was introduced in OS Big Sur.
The ~/.bashrc is the bash shell used in previews OS version, the same for linux users.
1:添加这些行以在您的 ~/.zsh 或 ~./bashrc 中导出所需的变量,具体取决于您的 shell.
从 https://golang.org/doc/install
下载的原始 pkg 安装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 更新和 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
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
tldr;
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 程序。