J'essaie d'installer Doozer comme ça
$ goinstall github.com/ha/doozer
Je reçois 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
GOPATH
est discuté dans la documentation cmd/go
:
La variable d'environnement
GOPATH
répertorie les emplacements dans lesquels rechercher le code Go. Sur Unix, la valeur est une chaîne séparée par deux points. Sous Windows, la valeur est une chaîne séparée par des points-virgules. Sur le plan 9, la valeur est une liste.
GOPATH
doit être défini pour obtenir, compiler et installer des packages en dehors du fichier Go standard arbre.
GOROOT
est décrit 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 Go à un autre endroit. Dans ce cas, vous devez définir le paramètreGOROOT
variable d'environnement pour pointer vers le répertoire dans lequel elle se trouvait installée.Par exemple, si vous avez installé Go dans votre répertoire personnel, vous devez ajouter les commandes suivantes à
$HOME/.profile
:export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin
Remarque:
GOROOT
doit être défini uniquement lors de l'installation dans un emplacement personnalisé.
(version mise à jour de réponse de Chris Bunch .)
Voici une configuration 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, PATH 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 destiné aux compilateurs/outils issus de l'installation go.
GOPATH est destiné à vos propres projets/bibliothèques tierces (téléchargé avec "go get").
GOPATH
est discuté ici :
La variable d'environnement
GOPATH
GOPATH
peut être défini sur une liste de chemins séparés par deux-points dans lesquels Go le code, les objets de package et les exécutables peuvent être trouvés.Configurez
GOPATH
pour utiliser goinstall afin de générer et d’installer votre propre code et bibliothèques externes en dehors de l’arbre Go (et pour éviter d’écrire Makefiles).
Et GOROOT
est discuté ici :
$GOROOT
La racine de l'arborescence Go, souvent$HOME/go
. La valeur par défaut est le parent du répertoire oùall.bash
est exécuté. Si vous choisissez de ne pas le faire set$GOROOT
, vous devez exécuter gomake au lieu de make ou gmake quand développer des programmes Go en utilisant les makefiles classiques.
Première exécution go env
.
Si vous voyez que l'installation est installée, vous pouvez l'installer via homebrew ou via un package et/ou par un autre moyen.
Si vous voyez la sortie alors votre go est installé.
Il vous montre tous les envs qui sont définis et qui ne le sont pas.
Si vous voyez vide pour GOROOT
:
which go
(sur mon ordinateur: /usr/local/go/bin/go
)export GOROOT=/usr/local/go
Si vous voyez vide pour GOPATH
:
~/GO_PROJECTS
export GOPATH=~/GO_PROJECTS
J'ai lu les docs go help gopath
et j'étais toujours incroyablement confus, mais j'ai trouvé ce petit nugget d'une autre page doc:
La variable d'environnement GOPATH spécifie l'emplacement de votre espace de travail. Il s'agit probablement de la seule variable d'environnement à définir lors du développement du code Go.
GOPATH devrait pas pointer sur l'installation Go, mais plutôt sur 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 se posera dans GOPATH. C’est pourquoi il vous avertit que vous voulez absolument que {not} _ veuille que des paquets aléatoires provenant d’Internet soient déversés dans votre installation officielle.
À partir de go 1.8 (T2 2017), GOPATH sera défini pour vous par défaut sur $ HOME/go
Voir numéro 17262 et le commentaire de Rob Pike:
$HOME/go
ce sera.
Il n’existe pas de meilleure réponse, mais celle-ci est simple et succincte. Le choix de ce nom ne peut poser de problème que si$HOME/go
existe déjà, ce qui ne fera que plaire aux experts déjà installés et comprenantGOPATH
.
Comme mentionné ci-dessus:
La variable d'environnement GOPATH spécifie l'emplacement de votre fichier espace de travail.
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%
En ce qui concerne plus particulièrement GOROOT
, Go 1.9 le définira automatiquement sur son chemin d’installation.
Même si vous avez plusieurs Go installés, appeler le 1.9.x mettra GOROOT
à /path/to/go/1.9
(avant, si non défini, il supposait un chemin par défaut comme /usr/local/go
ou c:\Go
).
Voir CL Go Review 53370 :
Le
go tool
utilisera maintenant le chemin à partir duquel il a été appelé pour tenter de localiser la racine de l'arborescence d'installation Go.
Cela signifie que si l'ensemble de l'installation de Go est déplacé vers un nouvel emplacement, lego tool
devrait continuer à fonctionner comme d'habitude.Cela peut être annulé en définissant
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 à signaler l’emplacement d’installation d’origine; cela peut être corrigé dans les versions ultérieures.
sous osx, j’ai installé avec brassage, voici le réglage qui me convient
GOPATH="$HOME/my_go_work_space" //make sure you have this folder created
GOROOT="/usr/local/Cellar/go/1.10/libexec"
Il existe également un cas où, lorsque nous utilisons go, il compile tous les fichiers go.
Alors disons que nous avions un fichier main.go et plus tard, nous avons changé le fichier actuel en main_old.go puis nous avons ajouté notre nouveau fichier main.go . Ensuite, lorsque nous construirons notre application, tous les fichiers aller seront compilés. Donc, l'erreur qui se produit peut être due à une erreur de compilation dans certains autres fichiers Go.
Je devais annexer
export GOROOT=/usr/local/Cellar/go/1.10.1/libexec
sur mon ~/.bash_profile sur Mac OS X
Une fois que Go lang est installé, GOROOT est le répertoire racine de l’installation.
Quand j'ai explosé le binaire Go Lang dans le répertoire Windows C: \, mon GOROOT devrait être C:\go. S'il est installé avec le programme d'installation de Windows, il peut s'agir de C:\Program Files\go (ou de C:\Program Files (x86)\go, pour les packages 64 bits).
GOROOT = C:\go
tandis que mon GOPATH est l'emplacement du code source ou de l'espace de travail de Go lang.
Si le code source de mon langage Go se trouve dans C:\Users \\ GO_Workspace, votre compte GOPATH serait comme ci-dessous:
GOPATH = C:\Users\<xyz>\GO_Workspace