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
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
(ouc:\Go
sous Windows), mais il est possible d'installer les outils Vont à un endroit différent. Dans ce cas, vous devez définir laGOROOT
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 .)
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").
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.
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
:
- exécuter
which go
(Sur mon ordinateur :/usr/local/go/bin/go
) - puis Exporter comme ceci
export GOROOT=/usr/local/go
si vous voyez vide pour GOPATH
:
- créez un répertoire n'importe où sur votre ordinateur pour les projets go dans mon cas:
~/GO_PROJECTS
- puis
export GOPATH=~/GO_PROJECTS
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.
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.
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%
à 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 comprendraGOPATH
.
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, lego 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 fonctionruntime.GOROOT()
, qui continuera à déclarer l'emplacement de l'installation d'origine; ceci peut être corrigé dans des versions ultérieures.
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"
j'ai dû ajouter
export GOROOT=/usr/local/Cellar/go/1.10.1/libexec
à mon ~/.bash_profile on Mac OS X
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)