Instale go with brew y ejecute el gotour


101

Seguí el http://tour.golang.org/ hasta que llegué al tercer paso que le dice que puede instalar gotour en su sistema. Después de eso, instalé el idioma go con brew por:

brew install hg
brew install go

Luego descargué el gotour por:

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

Cuando intenté ejecutar el gotour, no reconoció el comando:

$ gotour
-bash: gotour: command not found

y

$ go gotour

y

$ ./gotour

Así que intenté ver el camino de ida y estaba vacío.

echo $GOPATH

así que definí el GOPATH:

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

Ahora puedo ejecutar el gotour corriendo

./gotour

Pero estoy inseguro acerca de mi entorno de ir ... ¿No se suponía que podía pasar por alto?

go run gotour

o simplemente escribiendo (como se describe en este sitio web http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Me gustaría saber si estoy haciendo las cosas de la manera correcta ya que soy nuevo en el lenguaje de programación go.


2
Su GOPATH no debería ser el mismo que su GOROOT. Ajústelo a algo como $HOME/goy agréguelo $GOPATH/bina su RUTA.
elithrar

Por cierto, el comando go get y la url ahora cambiaron a: go get golang.org/x/tour/gotour
alemán

Respuestas:


183

Instalación de go 1.4 con homebrew en OSX:

1) Crear directorios

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

2) Configura tus caminos

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

3) Instalar Go

brew install go

4) "ve a buscar" lo básico

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

5) Empiece aquí: https://golang.org/doc/code.html en "su primer programa"


2
¿IntelliJ Idea no encuentra el GOPATH definido en su .bashrc? En el paso 2, pegue las líneas de exportación en .bash_profile, no en .bashrc, reinicie su mac e IntelliJ encontrará GOPATH (recién probado, es necesario reiniciar)
firepol

1
Automaticé la configuración de $ GOPATH que describe github.com/camilin87/setup_go
Camilo Sanchez

¿Por qué lo usa $Home/Gocon una G mayúscula? El instalador de homebrew usa un GEg en minúsculas ==> 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 respuesta está muy desactualizada y está causando un montón de problemas dados los cambios en Go y aparece primero en las búsquedas de Google de "Cómo instalar Go usando Brew". Eso significa que mucha gente está siendo dirigida a esta respuesta desactualizada e inexacta. Ya no tiene que establecer ninguna ruta para Go stackoverflow.com/a/21012349/3299397 y solo configura GOROOT si está desarrollando el idioma real Go (ya que realiza cambios en el código subyacente de Go reddit.com/r/golang / comments / alrnuk /… )
Kyle Bridenstine

55

Siguiendo una combinación de respuestas anteriores, esto es lo que funcionó para mí OSX 10.12 (Sierra)y al Go v1.7.1usar Homebrew:

Agregué esto de la respuesta de Kosh a mi .zshrco .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"

Luego, en una nueva ventana / pestaña de 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

Esto funcionó muy bien para mí en Sierra 10.12.5 con go 1.8.3. ¡Gracias!
thewoolleyman

Me funcionó en Catalina 10.15.2 con go 1.13.5 también. ¡Gracias!
Ross Zurowski

Continuando con la tendencia, funcionó para mí en Mojave 10.14.6 con go 1.13.8. Yo modificar esta ligeramente sin embargo: cuando la exportación el camino, puse los caminos van al frente del $PATHlugar de al final. Entonces, la tercera línea de mi archivo rc se ve así:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem

1
¡Esta debería ser la respuesta aceptada ya que describe perfectamente cómo usarlo con homebrew!
muuvmuuv

Según este comentario de GitHub , go get github.com/golang/lint/golinttiene una nueva ruta:go get -u golang.org/x/lint/golint
schottsfired el

23

Creo que he encontrado la solución, debería haber exportado:

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

En vez de

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

Ya que ahí es donde 'go get' pone los binarios (supongo). 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/ 

Por cierto basé mi respuesta en esta publicación

http://code.google.com/p/go-tour/issues/detail?id=39 donde hablan sobre la exportación:

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

Y la página de inicio de go: http://golang.org/doc/install donde dicen que tienes que exportar:

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

Tuve que poner un contenedor adicional / al final, ya que parece que ahora ponen estos ejecutables go en un subdirectorio. Es decir, el comando para mi camino es:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate

Si no lo ha instalado con brewpero termina aquí porque no puede ejecutar go cuando usa zsh, debe hacer lo mismo (exportar la ruta a su instalación de go). En mi caso fue: export PATH=$PATH:/usr/local/go/binsi no funciona para usted, entonces probablemente lo tenga instalado en otro lugar.
andilabs

9

Puse esto en mi $ {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"

basado en la respuesta de golfadas pero actualizado para trabajar con versiones antiguas y nuevas de brew.


7

Creo que debería haber puesto el GOPATH antes que usted go get. Bueno, al menos aquí en mi máquina esto funcionó sin problemas.

Configuré el GOPATH en una carpeta en mi carpeta de inicio.

¡Espero que esto ayude!


7
Este es el consejo correcto. export GOPATH=$HOME/goy export PATH=$PATH:$GOPATH/bincubre todo lo que necesitas. Sustituye $HOME/goel camino de tu elección.
elithrar

5

Solo una actualización aquí: me encontré con el mismo problema y las respuestas anteriores NO ayudaron. En las versiones actuales (~ 1.2.2) de Go instaladas por Homebrew, debe configurar GOROOT en lo siguiente:

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

No estoy un poco familiarizado con la estructura de carpetas de go, o con los cambios en la instalación de go a través de homebrew, así que no sé por qué. Pero, si le faltan lo que parecen ser todos los paquetes principales, lo anterior debería solucionarse.


Simplemente puede desinstalar su versión actual de Go e instalar la nueva. Eso es lo que hice y todo funcionó bien para mí.
Kent Bull

Con homebrew siempre debes usarlo /usr/local/opt/como base. De esta manera, ni siquiera tiene que actualizar la variable cuando sale una nueva versión.
sin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.