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.


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"


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

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

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.


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!


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.


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,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.