Installieren Sie go with brown und lassen Sie die gotour laufen


101

Ich folgte dem http://tour.golang.org/, bis ich zum dritten Schritt kam, der Ihnen sagt, dass Sie den gotour auf Ihrem System installieren können. Danach habe ich die Go-Sprache mit Brew von installiert:

brew install hg
brew install go

Dann habe ich die gotour heruntergeladen von:

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

Als ich versuchte, gotour zu starten, erkannte es den Befehl nicht:

$ gotour
-bash: gotour: command not found

und

$ go gotour

und

$ ./gotour

Also habe ich versucht, den Weg zu sehen und er war leer.

echo $GOPATH

Also habe ich den GOPATH definiert:

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

Jetzt kann ich die Gotour laufen lassen

./gotour

Aber ich bin unsicher in Bezug auf meine Umgebung. Wäre es nicht so, dass ich in der Lage wäre, an Ihnen vorbeizukommen?

go run gotour

oder einfach durch Eingabe (wie auf dieser Website beschrieben http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Ich würde gerne wissen, ob ich die Dinge richtig mache, da ich neu in der Programmiersprache bin.


2
Dein GOPATH sollte nicht mit deinem GOROOT identisch sein. Stellen Sie es auf so etwas wie $HOME/gound fügen Sie $GOPATH/bines Ihrem PFAD hinzu.
Elithrar

Übrigens, der Befehl get go go go goang golang.org/x/tour/gotour
Deutsch

Antworten:


183

Installation von go 1.4 mit Homebrew unter OSX:

1) Verzeichnisse erstellen

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

2) Richten Sie Ihre Pfade ein

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

3) Installieren Sie Go

brew install go

4) "go get" die Grundlagen

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

5) Beginnen Sie hier: https://golang.org/doc/code.html unter "Ihr erstes Programm"


2
IntelliJ Idee, den in Ihrer .bashrc definierten GOPATH nicht zu finden? In Schritt 2 fügen Sie die Exportzeilen in .bash_profile ein, nicht in .bashrc, starten Sie Ihren Mac neu und IntelliJ findet GOPATH (gerade getestet, Neustart erforderlich)
Firepol

1
Ich habe das $ GOPATH-Setup automatisiert, das Sie beschreiben. Github.com/camilin87/setup_go
Camilo Sanchez

Warum verwenden Sie $Home/Gomit einem Großbuchstaben G? Der Homebrew - Installer nutzt eine Klein GEG ==> 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
Diese Antwort ist veraltet und verursacht aufgrund der Änderungen an Go eine Menge Probleme. Sie wird zuerst bei der Google-Suche nach "So installieren Sie Go mit Brew" angezeigt. Das bedeutet, dass viele Leute auf diese veraltete und ungenaue Antwort verwiesen werden. Sie müssen keine Pfade mehr für Go stackoverflow.com/a/21012349/3299397 festlegen und legen GOROOT nur fest, wenn Sie die eigentliche Sprache Go entwickeln (wie Sie Änderungen am zugrunde liegenden Code von Go vornehmen, reddit.com/r/golang / Kommentare / alrnuk /… )
Kyle Bridenstine

55

Nach oben eine Mischung aus Antworten, das ist was für mich gearbeitet OSX 10.12 (Sierra)und Go v1.7.1mit Homebrew:

Ich habe dies aus Koshs Antwort zu meinem .zshrcoder hinzugefügt .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"

Dann in einem neuen Terminalfenster / 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

Das hat bei Sierra 10.12.5 mit go 1.8.3 hervorragend funktioniert. Vielen Dank!
Thewoolleyman

Hat für mich auch an Catalina 10.15.2 mit go 1.13.5 gearbeitet. Danke dir!
Ross Zurowski

Den Trend fortsetzen, für mich an Mojave 10.14.6 mit go 1.13.8 gearbeitet. Ich habe modifizieren diese leicht aber: wenn ich den Weg exportieren, ich an der die Go Pfade setzen Front von $PATHnicht am Ende. Die dritte Zeile meiner RC-Datei sieht also so aus:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
Romellem

1
Dies sollte die akzeptierte Antwort sein, da sie perfekt beschreibt, wie man sie mit Homebrew verwendet!
Muuvmuuv

Gemäß dieser Kommentar GitHub , go get github.com/golang/lint/golinthat einen neuen Weg:go get -u golang.org/x/lint/golint
schottsfired

23

Ich denke, ich habe die Lösung gefunden, die ich hätte exportieren sollen:

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

Anstatt

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

Da dort 'go get' die Binärdateien platziert (denke ich). gotour arbeitet:

$ 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/ 

Übrigens habe ich meine Antwort auf diesen Beitrag gestützt

http://code.google.com/p/go-tour/issues/detail?id=39 wo sie über den Export sprechen:

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

Und die Einstiegsseite von go: http://golang.org/doc/install, wo sie sagen, dass Sie exportieren müssen:

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

Ich musste einen zusätzlichen Bin / am Ende setzen, da es jetzt so aussieht, als würden sie diese ausführbaren Dateien jetzt in ein Unterverzeichnis stellen. Dh der Befehl für meinen Weg lautet:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate

Wenn Sie es nicht mit installiert haben, brewaber hier landen, weil Sie go nicht ausführen können, wenn Sie zsh verwenden, müssen Sie genau das Gleiche tun (den Pfad zu Ihrer go-Installation exportieren). In meinem Fall war es: export PATH=$PATH:/usr/local/go/binWenn es bei Ihnen nicht funktioniert, haben Sie es wahrscheinlich woanders installiert.
Andilabs

9

Ich habe dies in mein $ {HOME} /. Bash_profile eingefügt

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"

basierend auf Golfadas Antwort, aber aktualisiert, um mit alten und neuen Versionen von Brew zu arbeiten.


7

Ich denke, du hättest den GOPATH vor dir setzen sollen go get. Zumindest hier in meiner Maschine hat das reibungslos funktioniert.

Ich habe den GOPATH auf einen Ordner in meinem Home-Ordner gesetzt.

Hoffe das hilft!


7
Dies ist der richtige Rat. export GOPATH=$HOME/gound export PATH=$PATH:$GOPATH/bindeckt alles ab, was Sie brauchen. Ersetzen Sie $HOME/goden Weg Ihrer Wahl.
Elithrar

5

Nur ein Update hier - ich bin auf dasselbe Problem gestoßen, und die vorherigen Antworten haben NICHT geholfen. Bei aktuellen (~ 1.2.2) Versionen von Go, die von Homebrew installiert wurden, müssen Sie GOROOT auf Folgendes einstellen:

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

Ich bin ein wenig unbekannt mit der Struktur des Go-Ordners oder Änderungen an der Go-Installation über Homebrew, daher weiß ich nicht genau warum. Aber - wenn Sie alle Kernpakete vermissen, sollte das oben Genannte behoben werden.


Sie können einfach Ihre aktuelle go-Version deinstallieren und die neue installieren. Das habe ich getan und alles hat gut für mich funktioniert.
Kent Bull

Mit Homebrew sollten Sie immer /usr/local/opt/als Basis verwenden. Auf diese Weise müssen Sie die Variable nicht einmal aktualisieren, wenn eine neue Version herauskommt.
Klasse
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.