Installez go with brew et exécutez le gotour


101

Je suivais le http://tour.golang.org/ jusqu'à ce que j'arrive à la troisième étape à ce sujet qui vous indique que vous pouvez installer le gotour sur votre système. Après cela, j'ai installé le langage go avec brew par:

brew install hg
brew install go

Ensuite, j'ai téléchargé le gotour par:

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

Quand j'ai essayé de lancer le gotour, il n'a pas reconnu la commande:

$ gotour
-bash: gotour: command not found

et

$ go gotour

et

$ ./gotour

Alors j'ai essayé de voir le chemin aller et c'était vide,

echo $GOPATH

j'ai donc défini le GOPATH:

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

Maintenant je peux courir le gotour en courant

./gotour

Mais je ne suis pas sûr de mon environnement de travail ... je ne suis pas censé pouvoir exécuter gotour by

go run gotour

ou tout simplement en tapant (comme décrit sur ce site http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Je voudrais savoir si je fais les choses de la bonne façon puisque je suis nouveau dans le langage de programmation go.


2
Votre GOPATH ne devrait pas être le même que votre GOROOT. Réglez-le sur quelque chose comme $HOME/goet ajoutez $GOPATH/binà votre PATH.
elithrar

BTW the go tour get command and url now changed to: go get golang.org/x/tour/gotour
Allemand

Réponses:


183

Installation de go 1.4 avec homebrew sur OSX:

1) Créer des répertoires

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

2) Configurez vos chemins

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

3) Installez Go

brew install go

4) "allez chercher" les bases

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

5) Commencez ici: https://golang.org/doc/code.html à "votre premier programme"


2
IntelliJ Idea ne trouve pas le GOPATH défini dans votre .bashrc? À l'étape 2, collez les lignes d'exportation dans .bash_profile, pas dans .bashrc, redémarrez votre mac et IntelliJ trouvera GOPATH (juste testé, redémarrage nécessaire)
firepol

1
J'ai automatisé la configuration de $ GOPATH que vous décrivez github.com/camilin87/setup_go
Camilo Sanchez

Pourquoi utilisez-vous $Home/Goavec un G majuscule? Le programme d'installation homebrew utilise un GEg minuscule ==> 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
Cette réponse est super obsolète et cause une tonne de problèmes compte tenu des changements apportés à Go et elle apparaît en premier sur les recherches Google pour "Comment installer Go en utilisant Brew". Cela signifie que beaucoup de gens sont dirigés vers cette réponse obsolète et inexacte. Vous n'avez plus à définir de chemins pour Go stackoverflow.com/a/21012349/3299397 et vous ne définissez GOROOT que si vous développez le langage réel Go (comme dans le cas où vous apportez des modifications au code sous-jacent de Go reddit.com/r/golang / comments / alrnuk /… )
Kyle Bridenstine

55

Suite à un mélange de réponses ci-dessus, voici ce qui a fonctionné pour moi OSX 10.12 (Sierra)et en Go v1.7.1utilisant Homebrew:

J'ai ajouté ceci de la réponse de Kosh à mon .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"

Puis dans une nouvelle fenêtre / onglet 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

Cela a très bien fonctionné pour moi sur Sierra 10.12.5 avec go 1.8.3. Merci!
thewoolleyman

A travaillé pour moi sur Catalina 10.15.2 avec go 1.13.5 aussi. Je vous remercie!
Ross Zurowski

Poursuivant la tendance, a travaillé pour moi sur Mojave 10.14.6 avec go 1.13.8. Je modifièrent légèrement ce que: quand j'exporter le chemin, je mets les chemins de go à l' avant de $PATHplutôt qu'à la fin. Donc, la troisième ligne de mon fichier rc ressemble à ceci:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem

1
Cela devrait être la réponse acceptée car elle décrit parfaitement comment l'utiliser avec l'homebrew!
muuvmuuv

Selon ce commentaire GitHub , go get github.com/golang/lint/golinta un nouveau chemin:go get -u golang.org/x/lint/golint
schottsfired le

23

Je pense avoir trouvé la solution, j'aurais dû exporter:

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

Au lieu de

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

Depuis thats où «aller chercher» met les binaires (je suppose). gotour travaille:

$ 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 j'ai basé ma réponse sur ce post

http://code.google.com/p/go-tour/issues/detail?id=39 où ils parlent d'exportation:

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

Et la page de démarrage de go: http://golang.org/doc/install où ils disent que vous devez exporter:

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

J'ai dû mettre un bin supplémentaire / à la fin, car il semble maintenant qu'ils mettent ces exécutables go dans un sous-répertoire maintenant. Ie, la commande pour mon chemin est:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate

Si vous ne l'avez pas installé avec brewmais que vous vous retrouvez ici car vous ne pouvez pas exécuter go lorsque vous utilisez zsh, vous devez faire exactement la même chose (exporter le chemin vers votre installation go). Dans mon cas, c'était: export PATH=$PATH:/usr/local/go/binsi cela ne fonctionne pas pour vous, alors vous l'avez probablement installé ailleurs.
andilabs

9

Je mets ça dans mon $ {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"

basé sur la réponse golfadas mais mis à jour pour fonctionner avec les anciennes et nouvelles versions de bière.


7

Je pense que vous auriez dû mettre le GOPATH devant vous go get. Eh bien, au moins ici, dans ma machine, cela a fonctionné sans problème.

J'ai mis le GOPATH dans un dossier de mon dossier personnel.

J'espère que cela t'aides!


7
C'est le bon conseil. export GOPATH=$HOME/goet export PATH=$PATH:$GOPATH/bincouvre tout ce dont vous avez besoin. Remplacez $HOME/gole chemin de votre choix.
elithrar

5

Juste une mise à jour ici - j'ai rencontré ce même problème, et les réponses précédentes n'ont PAS aidé. Sur les versions actuelles (~ 1.2.2) de Go installées par Homebrew, vous devez régler GOROOT sur ce qui suit:

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

Je ne connais pas un peu la structure des dossiers go ou les modifications apportées à l'installation go via homebrew, donc je ne sais pas vraiment pourquoi. Mais - si vous manquez ce qui semble être tous les packages de base, ce qui précède devrait être corrigé.


Vous pouvez simplement désinstaller votre version go actuelle et installer la nouvelle. C'est ce que j'ai fait et tout a bien fonctionné pour moi.
Kent Bull

Avec homebrew, vous devriez toujours l'utiliser /usr/local/opt/comme base. De cette façon, vous n'avez même pas besoin de mettre à jour la variable lorsqu'une nouvelle version sort.
classe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.