quelles devraient être les valeurs de GOPATH et GOROOT?

j'essaie d'installer doozer comme ça

$ goinstall github.com/ha/doozer

j'ai ces erreurs.

goinstall: os: go/build: package could not be found locally
goinstall: fmt: go/build: package could not be found locally
goinstall: io: go/build: package could not be found locally
goinstall: reflect: go/build: package could not be found locally
goinstall: math: go/build: package could not be found locally
goinstall: rand: go/build: package could not be found locally
goinstall: url: go/build: package could not be found locally
goinstall: net: go/build: package could not be found locally
goinstall: sync: go/build: package could not be found locally
goinstall: runtime: go/build: package could not be found locally
goinstall: strings: go/build: package could not be found locally
goinstall: sort: go/build: package could not be found locally
goinstall: strconv: go/build: package could not be found locally
goinstall: bytes: go/build: package could not be found locally
goinstall: log: go/build: package could not be found locally
goinstall: encoding/binary: go/build: package could not be found locally
213
go
demandé sur jshen 2011-11-01 21:32:52

12 réponses

GOPATH est discutée dans le cmd/go documentation :

la variable d'environnement GOPATH liste les endroits où chercher le code Go. Sur Unix,la valeur est une chaîne séparée par deux points. Sur Windows, la valeur est un point-virgule chaîne séparée. Sur le Plan 9, la valeur est une liste.

GOPATH doit être défini pour obtenir, construire et installer des paquets en dehors de la arbre de Go standard.

GOROOT est examiné dans les instructions d'installation :

les distributions binaires Go supposent qu'elles seront installées dans /usr/local/go (ou c:\Go sous Windows), mais il est possible d'installer les outils Vont à un endroit différent. Dans ce cas, vous devez définir la GOROOT variable d'environnement pour pointer vers le répertoire dans lequel il a été installer.

Par exemple, si vous avez installé Allez dans votre répertoire home, vous devez ajouter les commandes suivantes à $HOME/.profile :

export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

Note: GOROOT doit être réglé uniquement lors de l'installation à un emplacement personnalisé.

(version mise à jour de Chris Bunch réponse .)

194
répondu pje 2017-05-23 11:55:07

Voici mon installation simple:

directory for go related things: ~/programming/go
directory for go compiler/tools: ~/programming/go/go-1.4
directory for go software      : ~/programming/go/packages

GOROOT, GOPATH, chemin sont définis comme suit:

export GOROOT=/home/user/programming/go/go-1.4
export GOPATH=/home/user/programming/go/packages
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

donc, en bref:

GOROOT est pour le compilateur / outils qui vient de l'installation de go.

GOPATH est pour vos propres projets go / bibliothèques tierces (téléchargé avec "go get").

69
répondu EvgenijM86 2014-12-23 08:56:30

GOPATH est discuté ici :

Le GOPATH Variable D'Environnement

GOPATH peut être défini sur une liste de chemins séparés par deux points à L'intérieur de laquelle aller le code, les objets package et les exécutables peuvent être trouvés.

définit un GOPATH pour utiliser goinstall pour construire et installer votre propre code et bibliothèques externes à l'extérieur de L'arbre de Go (et pour éviter d'écrire Les Makefiles).

et GOROOT est discuté ici :

$GOROOT la racine de L'Arbre de Go, souvent $HOME/go . Par défaut, c'est le parent du répertoire où all.bash est exécutée. Si vous choisissez de ne pas mis $GOROOT , vous devez exécuter gomake au lieu de faire ou gmake quand développer des programmes Go en utilisant les makefiles conventionnels.

36
répondu Chris Bunch 2011-11-01 19:01:29

Première go env .

Si vous voyez que l'aller insn pas installé, vous pouvez l'installer via homebrew ou via colis et/ou d'autres moyens.

Si vous voyez de sortie alors votre go est installé.

Il vous montre tous les env qui sont fixés et ne sont pas.

si vous voyez vide pour GOROOT :

  1. exécuter which go (Sur mon ordinateur : /usr/local/go/bin/go )
  2. puis Exporter comme ceci export GOROOT=/usr/local/go

si vous voyez vide pour GOPATH :

  1. créez un répertoire n'importe où sur votre ordinateur pour les projets go dans mon cas: ~/GO_PROJECTS
  2. puis export GOPATH=~/GO_PROJECTS
21
répondu ravi 2018-05-21 09:42:19

j'ai lu le go help gopath docs et j'étais encore incroyablement confus, mais j'ai trouvé cette petite pépite d'une autre page de go doc:

la variable d'environnement GOPATH spécifie l'emplacement de votre espace de travail. C'est probablement la seule variable d'environnement que vous aurez besoin de définir lors du développement du code Go.

http://golang.org/doc/code.html#GOPATH

14
répondu Max 2013-09-06 01:09:33

le GOPATH devrait ne pas pointer vers L'installation de Go, mais plutôt vers votre espace de travail (voir https://golang.org/doc/code.html#GOPATH ). Chaque fois que vous installez un paquet avec go get ou go install, il atterrira dans le GOPATH. C'est pourquoi il vous avertit, que vous faites très certainement et non veulent des paquets aléatoires de l'internet pour être déposés dans votre installation officielle.

9
répondu arganzheng 2015-06-12 03:13:27

comme indiqué ci-dessus:

la variable d'environnement GOPATH spécifie l'emplacement de votre espace.

Pour Windows , cela a fonctionné pour moi (dans la fenêtre Ms-dos):

set GOPATH=D:\my_folder_for_go_code\

cela crée une variable GOPATH que Ms-dos reconnaît lorsqu'elle est utilisée comme suit:

cd %GOPATH%
7
répondu tucson 2014-08-11 07:59:17

à partir de go 1.8 (Q2 2017), GOPATH sera défini pour vous par défaut à $HOME /go

voir numéro 17262 et commentaire de Rob Pike's:

$HOME/go ce sera.

Il n'y a pas une seule meilleure réponse, mais c'est court et doux, et il ne peut être un problème de choisir ce nom si $HOME/go existe déjà, ce qui ne sera heureux pour les experts qui ont déjà aller installé et comprendra GOPATH .

6
répondu VonC 2016-10-25 11:03:59

en ce qui concerne GOROOT plus précisément, Go 1.9 le positionnera automatiquement sur son chemin d'installation.

Même si vous avez plusieurs Go installés, en appelant le 1.9.x one va définir GOROOT à /path/to/go/1.9 (avant, si elle n'est pas définie, elle a pris un chemin par défaut comme /usr/local/go ou c:\Go ).

Voir CL Aller consulter 53370 :

Le go tool va maintenant utiliser le chemin à partir duquel il a été invoqué pour tenter de localiser la racine de L'arbre Go install .

Cela signifie que si toute L'installation de Go est déplacée à un nouvel emplacement, le go tool devrait continuer à fonctionner comme d'habitude.

ce paramètre peut être remplacé par GOROOT dans l'environnement, ce qui ne devrait être fait que dans des circonstances inhabituelles.

Notez que cela n'affecte pas le résultat de la fonction runtime.GOROOT() , qui continuera à déclarer l'emplacement de l'installation d'origine; ceci peut être corrigé dans des versions ultérieures.

2
répondu VonC 2017-08-06 06:52:52

dans osx, j'ai installé avec brew, voici le réglage qui fonctionne pour moi

GOPATH="$HOME/my_go_work_space" //make sure you have this folder created

GOROOT="/usr/local/Cellar/go/1.10/libexec"
0
répondu Edwin Ikechukwu 2018-03-07 09:47:02

j'ai dû ajouter

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

à mon ~/.bash_profile on Mac OS X

0
répondu Shammi Shailaj 2018-05-05 19:03:22

si vous utilisez la distribution go, vous devez indiquer où sont les fichiers include, par exemple:

$ rpm -ql golang | grep include
/usr/lib/golang/include

(Ceci est Pour Fedora 20)

-3
répondu Breno Leitão 2017-06-28 18:39:24