与brew一起安装go,并运行getour


101

我一直在关注http://tour.golang.org/,直到执行第三步为止,即告诉您可以在系统上安装gotour。之后,我通过以下方式通过brew安装了go语言:

brew install hg
brew install go

然后我通过以下方式下载了getour:

go get code.google.com/p/go-tour/gotour

当我尝试启动getour时,它无法识别该命令:

$ gotour
-bash: gotour: command not found

$ go gotour

$ ./gotour

所以我试图去看去的路,那是空的,

echo $GOPATH

所以我定义了GOPATH:

GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/
export GOPATH

现在我可以通过运行

./gotour

但是我对自己的出行环境不安全..我不是应该能够通过

go run gotour

或仅通过键入(如本网站上的http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/中所述):

gotour

我想知道自从对Go编程语言不熟悉以来,我是否在正确地做事。


2
您的GOPATH不应与GOROOT相同。将其设置为类似,$HOME/go然后添加$GOPATH/bin到您的PATH中。
elithrar

顺便说一句,go tour get命令和url现在更改为:go get golang.org/x/tour/gotour
德语,

Answers:


183

在OSX上使用自制软件安装go 1.4:

1)创建目录

mkdir $HOME/Go
mkdir -p $HOME/Go/src/github.com/user

2)设定路径

export GOPATH=$HOME/Go
export GOROOT=/usr/local/opt/go/libexec
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin

3)安装Go

brew install go

4)“去得到”的基础知识

go get golang.org/x/tools/cmd/godoc

5)从此处开始:https//golang.org/doc/code.html,位于“您的第一个程序”


2
IntelliJ Idea找不到您的.bashrc中定义的GOPATH吗?在第2步中,将导出行粘贴到.bash_profile中,而不是.bashrc中,重新启动Mac,IntelliJ将找到GOPATH(刚刚经过测试,需要重新启动)
firepol 2015年

1
我自动执行了您描述github.com/camilin87/setup_go
Camilo Sanchez

为什么要使用$Home/Go大写字母G?自家安装程序使用小写的GEg ==> Caveats A valid GOPATH is required to use the `go get` command. If $GOPATH is not specified, $HOME/go will be used by default: https://golang.org/doc/code.html#GOPATH
Snowcrash

4
这个答案已经过时了,鉴于Go的更改,它引起了很多问题,它首先出现在Google搜索“如何使用Brew安装Go”上。这意味着许多人被引导到这个过时且不准确的答案。您不再需要为Go设置任何路径stackoverflow.com/a/21012349/3299397,并且仅在开发实际的语言Go时才设置GOROOT(因为您对Go的基础代码reddit.com/r/golang进行了更改/ comments / alrnuk /…
凯尔·

55

经过以上各种答案,这对我OSX 10.12 (Sierra)Go v1.7.1使用Homebrew一样有效:

我从Kosh的回答中将此添加到了我.zshrc.bashrc

# Go development
export GOPATH="${HOME}/.go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

test -d "${GOPATH}" || mkdir "${GOPATH}"
test -d "${GOPATH}/src/github.com" || mkdir -p "${GOPATH}/src/github.com"

然后在新的终端窗口/标签中:

$ brew install go
==> Downloading https://homebrew.bintray.com/bottles/go-1.7.1.sierra.bottle.tar.gz
Already downloaded: /Users/nigel/Library/Caches/Homebrew/go-1.7.1.sierra.bottle.tar.gz
==> Pouring go-1.7.1.sierra.bottle.tar.gz
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  https://golang.org/doc/code.html#GOPATH

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
==> Summary
🍺  /usr/local/Cellar/go/1.7.1: 6,436 files, 250.6M

$ go get golang.org/x/tools/cmd/godoc

$ go get github.com/golang/lint/golint

$ go get golang.org/x/tour/gotour

$ gotour
2016/10/19 12:06:54 Serving content from /Users/nigel/.go/src/golang.org/x/tour
2016/10/19 12:06:54 A browser window should open. If not, please visit http://127.0.0.1:3999
2016/10/19 12:06:55 accepting connection from: 127.0.0.1:52958

对于Sierra 10.12.5和go 1.8.3,这对我来说非常有效。谢谢!
thewoolleyman'7

也为我在Catalina 10.15.2和Go 1.13.5上工作。谢谢!
Ross Zurowski

继续保持这种趋势,我在Mojave 10.14.6和Go 1.13.8上为我工作。当我出口的路径,我把走路径后:虽然我也稍微修改这个前面$PATH,而不是在最后。因此,我的rc文件的第三行看起来像这样:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
罗勒姆

1
这应该是公认的答案,因为它完美地描述了如何与自制软件一起使用!
muuvmuuv

按照此GitHub评论go get github.com/golang/lint/golint有一条新路径:go get -u golang.org/x/lint/golint
schottsfired

23

我想我已经找到了解决方案,我应该已经导出了:

export PATH=$PATH:/usr/local/Cellar/go/1.0.2/bin/

代替

GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/
export GOPATH

由于多数民众赞成在“去得到”放置二进制文件(我猜)。gotour正在工作:

$ gotour
2012/10/11 18:35:50 Serving content from /usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/go-tour
2012/10/11 18:35:50 Open your web browser and visit http://127.0.0.1:3999/ 

顺便说一句,我基于这个帖子我的答案

http://code.google.com/p/go-tour/issues/detail?id=39 他们在其中谈论导出:

/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/

然后进入入门页面:http//golang.org/doc/install ,他们说您必须导出:

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

我不得不在末尾放一个额外的bin /,因为现在看来他们现在将这些go可执行文件放到了子目录中。即,我的路径命令是:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate 2014年

如果尚未安装它,brew但由于在使用zsh时无法运行go而在此处结束,则需要做同样的事情(将路径导出到go安装中)。以我export PATH=$PATH:/usr/local/go/bin为例:如果它对您不起作用,则可能已在其他位置安装了它。
andilabs 2014年

9

我把它放在我的$ {HOME} /。bash_profile中

export GOPATH="${HOME}/.go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

test -d "${GOPATH}" || mkdir "${GOPATH}"
test -d "${GOPATH}/src/github.com" || mkdir -p "${GOPATH}/src/github.com"

基于golfadas答案,但已更新为可与新旧版本的brew一起使用。


7

我认为您应该先设置GOPATH go get。好吧,至少在我的机器上,这工作顺利。

我将GOPATH设置为主文件夹中的一个文件夹。

希望这可以帮助!


7
这是正确的建议。export GOPATH=$HOME/go并满足export PATH=$PATH:$GOPATH/bin您的所有需求。替代$HOME/go您选择的路径。
elithrar

5

只是这里的更新-我遇到了同样的问题,以前的答案没有帮助。在Homebrew安装的当前(〜1.2.2)版本的Go上,您必须将GOROOT设置为以下各项:

export GOROOT=/usr/local/Cellar/go/1.2.2/libexec

我对go文件夹的结构或通过自制软件更改go安装有点不熟悉,所以我真的不知道为什么。但是-如果您缺少所有核心软件包,上面的内容应该可以解决。


您可以只卸载当前的go版本并安装新版本。那就是我所做的,一切对我来说都很好。
肯特·布尔

使用自制软件,您始终应该将其/usr/local/opt/作为基础。这样,当新版本发布时,您甚至不必更新变量。
withoutclass
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.