2015-02-26 14 views
8

Ho installato Go 1.4 in Mac OS X. In precedenza avevo Go 1.0. Ho impostato il GOROOT e PATH come segue,Come impostare GOPATH in Mac OS X 10.10

Dineshs-MacBook-Air:go-cassandra Dany$ which go 
/usr/local/go/bin/go 
Dineshs-MacBook-Air:go-cassandra Dany$ export GOROOT=/usr/local/go/bin/go 
Dineshs-MacBook-Air:go-cassandra Dany$ export PATH=$PATH:$GOROOT/bin 

Go è installato in '/ usr/local/go/bin/go'. E ho impostato GOPATH come directory del mio progetto src. Sono in grado di eseguire il codice di go all'interno della mia directory. Ma quando provo a installare gocql, sto ricevendo un errore.

Dineshs-MacBook-Air:go-cassandra Dany$ sudo go get github.com/gocql/gocql 
package github.com/gocql/gocql: cannot download, $GOPATH not set. For more details see: go help gopath 

Qualcuno potrebbe aiutarmi in questo? Grazie

MODIFICA 1: @VonC Ho provato anche l'altra opzione. Ho cambiato GOROOT nella directory in cui è installato go. Ma non ha aiutato. E ho cambiato GOPATH.

Dineshs-MacBook-Air:go-cassandra Dany$ export GOROOT=/usr/local/go 
Dineshs-MacBook-Air:go-cassandra Dany$ export PATH=$PATH:$GOROOT/bin 
Dineshs-MacBook-Air:go-cassandra Dany$ export GOPATH=/Users/Dany/Documents/FALL-2013-COURSES/Imp_Data_structures/workspace/go-cassandra 
Dineshs-MacBook-Air:go-cassandra Dany$ sudo go get github.com/gocql/gocql 
Password: 
package github.com/gocql/gocql: cannot download, $GOPATH not set. For more details see: go help gopath 
Dineshs-MacBook-Air:go-cassandra Dany$ echo $GOPATH 
/Users/Dany/Documents/FALL-2013-COURSES/Imp_Data_structures/workspace/go-cassandra 
Dineshs-MacBook-Air:go-cassandra Dany$ ls 
bin pkg src 
Dineshs-MacBook-Air:go-cassandra Dany$ 

risposta

23

Note:

GOROOT dovrebbe fare riferimento a una cartella (in cui è installato Go), non il go eseguibile stesso

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

Come Dave menzioni nei commenti, non si dovrebbe avere impostare GOROOT nel tuo caso.
Vedere l'articolo You don’t need to set GOROOT, really.

GOPATH dovrebbe fare riferimento a una cartella in cui si trova src, pkg e bin. (Non dovrebbe fare riferimento direttamente alla cartella src):
Vedere "How to Write Go Code - Workspace"

Per quanto riguarda il GOPATH:

  • prova e metterlo nel vostro ~/.bashrc (utilizzando export).
  • controllare che la shell corrente sia una bash (e non un'altra come fish)
  • controllare l'output di go env.

Non fare un sudo go get, come la variabile d'ambiente utilizzata per sudo (root) non sarebbe lo stesso che l'utente corrente:

go get github.com/gocql/gocql 

(o you would need to do a sudo -E bash -c 'go get github.com/gocql/gocql', ma ho il sospetto che don 't bisogno root qui)

Vedi sudo caveat:

Qualsiasi variabile aggiunto a queste posizioni non si rifletterà quando invocandoli con un comando sudo, come sudo ha una politica di default della rimodulazione dell'ambiente e impostando un percorso sicuro (questo comportamento è definito in /etc/sudoers)

+0

ho provato. Ma ancora affrontando lo stesso problema. Ho modificato la domanda con l'attuale GOPATH e GOROOT – Dany

+0

@DineshAppavoo Ho modificato la risposta. – VonC

+0

Grazie.Ha funzionato senza sudo. Potresti spiegarmi come funziona ? Sono nuovo di mac. – Dany