ChatGPT解决这个技术问题 Extra ChatGPT

Install go with brew, and running the gotour

I was following the http://tour.golang.org/ untill I got to the third step about that tells you that you can install the gotour on your system. After that I've installed the go language with brew by:

brew install hg
brew install go

Then I downloaded the gotour by:

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

When I tried to launch the gotour it didnt recognise the command:

$ gotour
-bash: gotour: command not found

and

$ go gotour

and

$ ./gotour

So I tried to see the go path and it was empty,

echo $GOPATH

so I defined the GOPATH:

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

Now I can run the gotour by runing

./gotour

But I'm insecure about my go enviroment.. wasn't I suposed to be able to run gotour by

go run gotour

or just by typing (like is described on this website http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/):

gotour

I would like to know if i'm doing things the right way since I'm new to the go programing language.

Your GOPATH shouldn't be the same as your GOROOT. Set it to something like $HOME/go and add $GOPATH/bin to your PATH.
BTW the go tour get command and url now changed to: go get golang.org/x/tour/gotour

C
Custodio

Installing go 1.4 with homebrew on OSX:

1) Create Directories

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

2) Setup your paths

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

3) Install Go

brew install go

4) "go get" the basics

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

5) Start here: https://golang.org/doc/code.html at "your first program"


IntelliJ Idea not finding the GOPATH defined in your .bashrc? In step 2 paste the export lines in .bash_profile, not in .bashrc, restart your mac and IntelliJ will find GOPATH (just tested, reboot needed)
I automated the $GOPATH setup that you describe github.com/camilin87/setup_go
Why are you using $Home/Go with an uppercase G? The homebrew installer uses a lowercase G. E.g. ==> 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
This answer is super out of date and is causing a ton of issues given the changes to Go and it appears first on Google searches for "How to install Go using Brew". That means a lot of people are being directed to this outdated and inaccurate answer. You no longer have to set any paths for Go stackoverflow.com/a/21012349/3299397 and you only set GOROOT if you're developing the actual language Go (as in you make changes to Go's underlying code reddit.com/r/golang/comments/alrnuk/…)
G
Gibbsoft

Following a mix of answers above, this is what worked for me on OSX 10.12 (Sierra) and Go v1.7.1 using Homebrew:

I added this from Kosh's answer to my .zshrc or .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"

Then in a new terminal window/tab:

$ 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

This worked great for me on Sierra 10.12.5 with go 1.8.3. Thanks!
Worked for me on Catalina 10.15.2 with go 1.13.5 too. Thank you!
Continuing the trend, worked for me on Mojave 10.14.6 with go 1.13.8. I did modify this slightly though: when I export the path, I put the go paths at the front of $PATH rather than at the end. So the third line of my rc file looks like this: export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
As per this GitHub comment, go get github.com/golang/lint/golint has a new path: go get -u golang.org/x/lint/golint
Also the last two commands are now go get golang.org/x/tour and tour
g
golfadas

I think I have found the solution, I should have exported:

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

Instead of

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

Since thats where 'go get' puts the binaries (I guess). gotour is working:

$ 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/ 

Btw I based my answer on this post

http://code.google.com/p/go-tour/issues/detail?id=39 where they talk about exporting:

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

And the getting started page from go: http://golang.org/doc/install where they say you have to export:

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

I had to put an extra bin/ on the end, since it seems now that they put these go executables into a subdirectory now. I.e., the command for my path is: export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
If you haven't installed it with brew but end up here because you can not run go when using zsh, you need to do very same stuff (exporting the path to your go installation). In my case it was: export PATH=$PATH:/usr/local/go/bin If it won't work for you, then you have it probably somwhere else installed.
K
Kosh

I put this in my ${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"

based on golfadas answer but updated to work with old and new versions of brew.


A
Antonio Ribeiro

I thing you should have set the GOPATH before you go get. Well, at least here in my machine this worked smoothly.

I set the GOPATH to a folder in my home folder.

Hope this helps!


This is the right advice. export GOPATH=$HOME/go and export PATH=$PATH:$GOPATH/bin covers all you need. Substitute $HOME/go for the path of your choice.
s
scztt

Just an update here - I ran into this same problem, and the previous answers did NOT help. On current (~1.2.2) versions of Go installed by Homebrew, you have to set GOROOT to the following:

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

I'm a little unfamiliar with the go folder structure, or changes to the go installation via homebrew, so I don't really know why. But - if you're missing what seems like all the core packages, the above should fix.


You could just uninstall your current go version and install the new one. That's what I did and everything worked just fine for me.
With homebrew you always should be using /usr/local/opt/ as the base. This way you don't even have to update the variable when a new version comes out.