2013-07-26 13 views
25

Tuttavia, quando l'ho già impostato. Ho anche creato sub directory che non so se necesary: ​​

$ echo $GOPATH && ls -r $GOPATH 
/home/cyrus/.go 
src pkg bin 

$ echo $GOROOT && ls $GOROOT 
/usr/local/go 
api AUTHORS bin CONTRIBUTORS doc favicon.ico include lib LICENSE misc PATENTS pkg README robots.txt src test VERSION 

Perché ho ancora ottenere l'errore quando lo faccio:

$ go get code.google.com/p/go-tour/gotour                            
package code.google.com/p/go-tour/gotour: cannot download, $GOPATH not set. For more details see: go help gopath 

risposta

27

Se si imposta una variabile in questo modo:

GOPATH=$HOME/go 

Non verrà esportato in alcun sottoprocesso. È disponibile solo per quel processo. Se si desidera esportarlo in sottoprocessi, utilizzare export:

export GOPATH 

È possibile anche combinare l'assegnazione e l'esportazione:

directory
export GOPATH=$HOME/go 
+5

Inoltre, è possibile confermare le impostazioni di Go con 'go env' - se' GOPATH' non è impostato/errato verrà visualizzato. – elithrar

+7

Fatto tutto questo e ancora non funziona quando si usa 'go get golang.org/x/tools/cmd/godoc',' go env' stampa anche l'ambiente e sembra perfetto. –

+0

Voglio solo installare Gogs, perché Gitlab non funziona sul mio server e sono ancora in difficoltà per ore a causa di errori di configurazione .... incredibile –

1

mio $ GOROOT è stato creato con owner: root e group: wheel avendo invece me come il proprietario e amministratore del gruppo. Immagino che ho usato sudo quando non avrei dovuto (o qualche strumento lo ha fatto per me). Pertanto, go get non è stato in grado di scrivere i pacchetti su $ GOROOT e quindi sugli errori $GOPATH not set e permission denied.

Utilizzando chown e chgrp sul mio $ GOROOT (con -R per ottenere sottocartelle) 'andare a prendere ...' lavorato. Nel mio caso VS Code era ora in grado di installare i componenti Go che cercavo.

+1

'Ho usato sudo quando non avrei dovuto 'salvami –

0

Quando si esegue go env, si dovrebbe essere in grado di vedere se il GOPATH è stato impostato. Nel mio caso, però, questo comando lo risolve quando l'ho eseguito sul mio terminale.

export GOPATH=/usr/local/bin 
0

che avevo configurazione GOPATH e lo ha dimostrato in modo corretto con il comando go env. Ho dovuto dare le autorizzazioni corrette alla directory go usando chmod e installare gb per go get github.com/constabulary/gb/....

0

Prima fare un `go env 'e controllare il percorso GOROOT. Di conseguenza, imposta GOPATH. Nel mio caso, ha dovuto impostare GOPATH su/usr/lib/go. In precedenza ho provato con/usr/share/go e/usr/bin/go, ma non ha funzionato.

Problemi correlati