Installa go with brew e avvia gotour


101

Stavo seguendo http://tour.golang.org/ finché non sono arrivato al terzo passaggio che ti dice che puoi installare gotour sul tuo sistema. Dopo di che ho installato la lingua go con brew by:

brew install hg
brew install go

Poi ho scaricato il gotour di:

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

Quando ho provato ad avviare gotour non ha riconosciuto il comando:

$ gotour
-bash: gotour: command not found

e

$ go gotour

e

$ ./gotour

Quindi ho provato a vedere il percorso di andata ed era vuoto,

echo $GOPATH

così ho definito il GOPATH:

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

Ora posso eseguire il gotour correndo

./gotour

Ma sono insicuro riguardo al mio ambiente in cui andare ... non ero supposto per essere in grado di eseguire gotour

go run gotour

o semplicemente digitando (come è descritto su questo sito web http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Vorrei sapere se sto facendo le cose nel modo giusto dato che sono nuovo nel linguaggio di programmazione go.


2
Il tuo GOPATH non dovrebbe essere lo stesso del tuo GOROOT. Impostalo su qualcosa di simile $HOME/goe aggiungilo $GOPATH/binal tuo PERCORSO.
elithrar

A proposito, il comando go tour get e l'URL ora sono stati modificati in: go get golang.org/x/tour/gotour
Tedesco

Risposte:


183

Installazione di go 1.4 con homebrew su OSX:

1) Crea directory

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

2) Imposta i tuoi percorsi

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

3) Installa Go

brew install go

4) "vai a prendere" le basi

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

5) Inizia qui: https://golang.org/doc/code.html "il tuo primo programma"


2
IntelliJ Idea non trova il GOPATH definito nel tuo .bashrc? Nel passaggio 2 incolla le righe di esportazione in .bash_profile, non in .bashrc, riavvia il tuo mac e IntelliJ troverà GOPATH (appena testato, riavvio necessario)
firepol

1
Ho automatizzato la configurazione di $ GOPATH che descrivi github.com/camilin87/setup_go
Camilo Sanchez

Perché stai usando $Home/Go con una G maiuscola? Il programma di installazione homebrew utilizza un GEg minuscolo ==> 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
Questa risposta è super obsoleta e sta causando un sacco di problemi date le modifiche a Go e appare per prima su Google cerca "Come installare Go utilizzando Brew". Ciò significa che molte persone vengono indirizzate a questa risposta obsoleta e imprecisa. Non devi più impostare alcun percorso per Go stackoverflow.com/a/21012349/3299397 e imposti GOROOT solo se stai sviluppando il linguaggio effettivo Go (poiché apporti modifiche al codice sottostante di Go reddit.com/r/golang / commenti / alrnuk /… )
Kyle Bridenstine,

55

Seguendo un mix di risposte sopra, questo è ciò che ha funzionato per me OSX 10.12 (Sierra)e Go v1.7.1utilizzando Homebrew:

Ho aggiunto questo dalla risposta di Kosh al mio .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"

Quindi in una nuova finestra / scheda del terminale:

$ 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

Questo ha funzionato alla grande per me su Sierra 10.12.5 con go 1.8.3. Grazie!
thewoolleyman

Ha funzionato anche per me su Catalina 10.15.2 con go 1.13.5. Grazie!
Ross Zurowski

Continuando la tendenza, ha funzionato per me su Mojave 10.14.6 con go 1.13.8. Ho fatto un po 'modificare questo però: quando esporto il percorso, ho messo i percorsi go a fronte di $PATH, piuttosto che alla fine. Quindi la terza riga del mio file rc è simile a questa:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem

1
Questa dovrebbe essere la risposta accettata in quanto descrive perfettamente come usarlo con l'homebrew!
muuvmuuv

Secondo questo commento di GitHub , go get github.com/golang/lint/golintha un nuovo percorso:go get -u golang.org/x/lint/golint
schottsfired il

23

Penso di aver trovato la soluzione, avrei dovuto esportare:

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

Invece di

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

Dato che è lì che "vai a prendere" mette i binari (immagino). gotour sta funzionando:

$ 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 ho basato la mia risposta su questo post

http://code.google.com/p/go-tour/issues/detail?id=39 dove parlano di esportazione:

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

E la pagina iniziale da go: http://golang.org/doc/install dove dicono che devi esportare:

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

Ho dovuto mettere un altro bin / alla fine, poiché ora sembra che ora abbiano messo questi eseguibili go in una sottodirectory. Cioè, il comando per il mio percorso è:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate

Se non l'hai installato con brewma finisci qui perché non puoi eseguire go quando usi zsh, devi fare le stesse cose (esportando il percorso all'installazione di go). Nel mio caso era: export PATH=$PATH:/usr/local/go/binse non funziona per te, probabilmente lo hai installato da qualche altra parte.
andilabs

9

L'ho inserito nel mio $ {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"

basato sulla risposta di golfadas ma aggiornato per funzionare con versioni vecchie e nuove di brew.


7

Penso che avresti dovuto impostare il GOPATH prima di te go get. Bene, almeno qui nella mia macchina questo ha funzionato senza problemi.

Ho impostato GOPATH su una cartella nella mia cartella home.

Spero che questo ti aiuti!


7
Questo è il consiglio giusto. export GOPATH=$HOME/goe export PATH=$PATH:$GOPATH/bincopre tutto ciò di cui hai bisogno. Sostituisci $HOME/goil percorso che hai scelto.
elithrar

5

Solo un aggiornamento qui: mi sono imbattuto in questo stesso problema e le risposte precedenti NON hanno aiutato. Sulle versioni correnti (~ 1.2.2) di Go installate da Homebrew, devi impostare GOROOT su quanto segue:

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

Non ho familiarità con la struttura delle cartelle go o con le modifiche all'installazione go tramite homebrew, quindi non so davvero perché. Ma se ti mancano quelli che sembrano tutti i pacchetti principali, quanto sopra dovrebbe risolvere.


Puoi semplicemente disinstallare la tua attuale versione go e installare quella nuova. È quello che ho fatto e tutto ha funzionato bene per me.
Kent Bull

Con l'homebrew dovresti sempre usare /usr/local/opt/come base. In questo modo non devi nemmeno aggiornare la variabile quando esce una nuova versione.
classe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.