ChatGPT解决这个技术问题 Extra ChatGPT

使用 brew 安装 go,并运行 gotour

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

brew install hg
brew install go

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

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

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

$ gotour
-bash: gotour: command not found

$ go gotour

$ ./gotour

所以我试图查看 go 路径,它是空的,

echo $GOPATH

所以我定义了 GOPATH:

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

现在我可以通过运行来运行 gotour

./gotour

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

go run gotour

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

gotour

我想知道我是否以正确的方式做事,因为我是 Go 编程语言的新手。

你的 GOPATH 不应该和你的 GOROOT 一样。将其设置为 $HOME/go 并将 $GOPATH/bin 添加到您的 PATH。
顺便说一句,go tour get 命令和 url 现在更改为:go get golang.org/x/tour/gotour

C
Custodio

在 OSX 上使用 homebrew 安装 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)安装围棋

brew install go

4)“去获取”基础知识

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

5)从这里开始:https://golang.org/doc/code.html 在“你的第一个程序”


IntelliJ Idea 没有找到 .bashrc 中定义的 GOPATH?在第 2 步中,将导出行粘贴到 .bash_profile 中,而不是 .bashrc 中,重新启动您的 mac,IntelliJ 将找到 GOPATH(刚刚测试过,需要重新启动)
我自动化了您描述的 $GOPATH 设置github.com/camilin87/setup_go
为什么要使用带有大写 G 的 $Home/Go?自制安装程序使用小写 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
这个答案已经过时了,考虑到 Go 的变化,它导致了大量的问题,它首先出现在 Google 搜索“如何使用 Brew 安装 Go”中。这意味着很多人都被引导到这个过时且不准确的答案。您不再需要为 Go stackoverflow.com/a/21012349/3299397 设置任何路径,并且只有在开发实际语言 Go 时才设置 GOROOT(如更改 Go 的底层代码 reddit.com/r/golang/comments/alrnuk/…
G
Gibbsoft

根据上面的混合答案,这就是使用 Homebrew 在 OSX 10.12 (Sierra)Go v1.7.1 上对我有用的方法:

我从 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 上非常有用。谢谢!
在 Catalina 10.15.2 和 go 1.13.5 上为我工作。谢谢!
继续这一趋势,在 Mojave 10.14.6 和 go 1.13.8 上为我工作。不过我确实稍微修改了一下:当我导出路径时,我将 go 路径放在 $PATHfront 而不是末尾。所以我的 rc 文件的第三行如下所示:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
根据 this GitHub commentgo get github.com/golang/lint/golint 有一个新路径:go get -u golang.org/x/lint/golint
最后两个命令现在也是 go get golang.org/x/tourtour
g
golfadas

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

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/

还有 go: 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/
如果您没有使用 brew 安装它,但由于在使用 zsh 时无法运行 go 而最终出现在这里,您需要做同样的事情(导出 go 安装的路径)。就我而言,它是:export PATH=$PATH:/usr/local/go/bin 如果它对您不起作用,那么您可能在其他地方安装了它。
K
Kosh

我把它放在我的 ${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 一起使用。


A
Antonio Ribeiro

我认为您应该在 go get 之前设置 GOPATH。好吧,至少在我的机器上这运行得很顺利。

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

希望这可以帮助!


这是正确的建议。 export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/bin 涵盖了您需要的所有内容。将 $HOME/go 替换为您选择的路径。
s
scztt

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

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

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


您可以卸载当前的 go 版本并安装新版本。这就是我所做的,一切对我来说都很好。
使用自制软件时,您始终应该使用 /usr/local/opt/ 作为基础。这样,当新版本出现时,您甚至不必更新变量。