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.
$HOME/go
and add $GOPATH/bin
to your PATH.
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"
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
$PATH
rather than at the end. So the third line of my rc file looks like this: export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
go get github.com/golang/lint/golint
has a new path: go get -u golang.org/x/lint/golint
go get golang.org/x/tour
and tour
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
export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
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.
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.
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!
export GOPATH=$HOME/go
and export PATH=$PATH:$GOPATH/bin
covers all you need. Substitute $HOME/go
for the path of your choice.
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.
/usr/local/opt/
as the base. This way you don't even have to update the variable when a new version comes out.
Success story sharing
$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