Instale go com brew e execute o Gotour

101

Eu estava acompanhando o http://tour.golang.org/ até que cheguei ao terceiro passo sobre que informa que você pode instalar o gotour em seu sistema. Depois disso, instalei a linguagem go com brew por:

brew install hg
brew install go

Então eu baixei o Gotour por:

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

Quando tentei lançar o gotour, ele não reconheceu o comando:

$ gotour
-bash: gotour: command not found

e

$ go gotour

e

$ ./gotour

Tentei ver o caminho de partida e estava vazio,

echo $GOPATH

então eu defini o GOPATH:

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

Agora eu posso executar o Gotour executando

./gotour

Mas estou inseguro sobre o meu ambiente go .. não era suposto eu ser capaz de executar o Gotour por

go run gotour

ou apenas digitando (como descrito neste site http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Gostaria de saber se estou fazendo as coisas da maneira certa, já que sou novo na linguagem de programação.

golfadas
fonte
2
Seu GOPATH não deve ser igual ao seu GOROOT. Defina-o como $HOME/goe adicione $GOPATH/binao seu PATH.
elithrar
BTW, o comando go tour get e o url agora mudaram para: go get golang.org/x/tour/gotour
alemão

Respostas:

183

Instalando o go 1.4 com homebrew no OSX:

1) Criar diretórios

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

2) Configure seus caminhos

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

3) Instale o Go

brew install go

4) "vá buscar" o básico

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

5) Comece aqui: https://golang.org/doc/code.html em "seu primeiro programa"

user2562923
fonte
2
O IntelliJ Idea não encontrou o GOPATH definido em seu .bashrc? Na etapa 2, cole as linhas de exportação em .bash_profile, não em .bashrc, reinicie seu mac e o IntelliJ encontrará GOPATH (recém-testado, é necessário reinicializar)
firepol
1
Automatizei a configuração $ GOPATH que você descreve em github.com/camilin87/setup_go
Camilo Sanchez
Por que você está usando $Home/Gocom um G maiúsculo? O instalador do homebrew usa uma GEg minúscula ==> 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
Esta resposta está super desatualizada e está causando uma tonelada de problemas devido às mudanças no Go e ela aparece primeiro nas pesquisas do Google por "How to install Go using Brew". Isso significa que muitas pessoas estão sendo direcionadas para essa resposta desatualizada e imprecisa. Você não precisa mais definir nenhum caminho para Go stackoverflow.com/a/21012349/3299397 e só definir GOROOT se estiver desenvolvendo a linguagem Go real (já que você faz alterações no código subjacente de Go reddit.com/r/golang / comments / alrnuk /… )
Kyle Bridenstine
55

Seguindo uma combinação de respostas acima, isto é o que funcionou para mim OSX 10.12 (Sierra)e Go v1.7.1usando o Homebrew:

Eu adicionei isso da resposta de Kosh ao meu .zshrcou .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"

Em seguida, em uma nova janela / guia do terminal:

$ 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
Gibbsoft
fonte
Isso funcionou muito bem para mim no Sierra 10.12.5 com go 1.8.3. Obrigado!
thewoolleyman
Também funcionou para mim no Catalina 10.15.2 com go 1.13.5. Obrigado!
Ross Zurowski
Continuando a tendência, funcionou para mim no Mojave 10.14.6 com go 1.13.8. Eu fiz modificar este ligeiramente no entanto: quando eu exportar o caminho, eu coloquei os caminhos passam na frente de $PATH, em vez de no final. Portanto, a terceira linha do meu arquivo rc se parece com isto:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem
1
Esta deve ser a resposta aceita, pois descreve perfeitamente como usá-lo com homebrew!
muuvmuuv
De acordo com este comentário do GitHub , go get github.com/golang/lint/golinttem um novo caminho:go get -u golang.org/x/lint/golint
schottsfired
23

Acho que encontrei a solução, deveria ter exportado:

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

Ao invés de

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

Já que é onde 'ir buscar' coloca os binários (eu acho). Gotour está funcionando:

$ 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 eu baseei minha resposta neste post

http://code.google.com/p/go-tour/issues/detail?id=39 onde falam sobre exportação:

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

E a página de introdução a partir de agora: http://golang.org/doc/install onde dizem que você deve exportar:

export PATH=$PATH:/usr/local/go/bin
golfadas
fonte
Tive que colocar um bin / extra no final, já que parece que agora eles colocaram esses executáveis ​​em um subdiretório. Ou seja, o comando para o meu caminho é:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate
Se você não instalou, brewmas acabou aqui porque não pode executar o go ao usar zsh, você precisa fazer as mesmas coisas (exportar o caminho para a instalação do go). No meu caso foi: export PATH=$PATH:/usr/local/go/binse não funcionar para você, provavelmente você o tem em outro lugar instalado.
andilabs
9

Eu coloquei isso no meu $ {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"

baseado na resposta golfadas, mas atualizado para funcionar com versões antigas e novas de cerveja.

Kosh
fonte
7

Acho que você deveria ter definido o GOPATH antes de você go get. Bem, pelo menos aqui na minha máquina isso funcionou bem.

Defino o GOPATH para uma pasta na minha pasta pessoal.

Espero que isto ajude!

Antonio Ribeiro
fonte
7
Este é o conselho certo. export GOPATH=$HOME/goe export PATH=$PATH:$GOPATH/bincobre tudo que você precisa. Substitua $HOME/goo caminho de sua escolha.
elithrar
5

Apenas uma atualização aqui - eu encontrei o mesmo problema, e as respostas anteriores NÃO ajudaram. Nas versões atuais (~ 1.2.2) do Go instaladas pelo Homebrew, você deve definir o GOROOT da seguinte forma:

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

Não estou familiarizado com a estrutura da pasta go ou com as alterações na instalação go via homebrew, então não sei bem por quê. Mas - se você está perdendo o que parece ser todos os pacotes principais, o acima deve ser corrigido.

scztt
fonte
Você pode simplesmente desinstalar sua versão go atual e instalar a nova. Foi o que fiz e tudo funcionou bem para mim.
Kent Bull
Com o homebrew você sempre deve usar /usr/local/opt/como base. Dessa forma, você nem precisa atualizar a variável quando uma nova versão for lançada.
aula,