2013-06-04 10 views
5

ho avuto qualche difficoltà di ottenere Go installato e funzionante correttamente su Linux Mint 14. Ho una cartella ($ HOME/sviluppare/gocode) con bin, pkg e src cartelle come il mio GOPATH e hanno la variabile d'ambiente GOPATH impostato correttamente Là. Ho provato a installare un certo repository github usando go get (https://github.com/jbarham/primegen.go) ma Go mi ha dato l'errore: stat github.com/jbarham/primegen.go: no such file or directory (penso perché il repository termina con .go.) Bene, l'ho appena clonato manualmente, ma poi quando provo a go install uno dei due eseguibili in quel repository (nessuno dei due funziona, ma ho provato a installare primespeed prima) ottengo il seguente errore:'go install' tenta di installare in/usr/lib/go al posto del mio GOPATH. Autorizzazione negata

$ cd $GOPATH/src/github.com/jbarham/primegen.go/primespeed 
$ go install 
go install github.com/jbarham/primegen.go: mkdir /usr/lib/go/pkg/linux_amd64/github.com: permission denied 

Perché andare cercando di installare il pacchetto lì? Ho impostato esplicitamente la mia variabile GOPATH, eppure sta provando a installare i pacchetti su/usr/local.

non sono sicuro se vi aiuterà, ma qui è una certa altra uscita per quanto riguarda la versione e l'ambiente:

$ go env 
GOROOT="/usr/lib/go" 
GOBIN="" 
GOARCH="amd64" 
GOCHAR="6" 
GOOS="linux" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="linux" 
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64" 
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" 
CGO_ENABLED="1" 
$ go version 
go version go1.0.2 
+0

Qualcosa è sospetto - perché GOPATH non compare nell'output di go env? –

+0

Hai "esportato GOPATH"? – alex

risposta

5
  1. tuo GOPATH probabilmente non è esportato.
  2. Sì, i repository con estensione .go non sono "disponibili".

annuncio 1. (meglio mettere in .bashrc o equivalente):

$ export GOPATH=$HOME # just an example 

annuncio 2. (meglio sollevare un issue circa il nome repository senza senso):

$ mkdir -p $GOPATH/src/github.com/jbarham 
$ cd $GOPATH/src/github.com/jbarham 
$ git clone https://github.com/jbarham/primegen.go.git 
$ cd primegen.go 
$ go install 
+1

Purtroppo non sembra essere il caso. Ho sicuramente esportato GOPATH e posso 'andare installare' altri pacchetti bene. Presumo solo che il '.go' alla fine del pacchetto è ciò che sta causando gli errori. Forse un altro giorno imparerò di più su quello che succede dietro le quinte e scoprirò il colpevole e presenterò una patch per questo. Per ora, sono passato ad altri progetti per soddisfare la mia curiosità. Grazie per l'aiuto. – Drewmate

+0

È strano, quando faccio un 'go env' viene elencato' GOPATH'. Non riesco a vederlo nel tuo output sopra. – Intermernet

6
export GOPATH=$HOME/go 

export GOBIN=$HOME/go/bin 

provalo.

0

Ho avuto lo stesso problema, ma ho rilevato che, per alcuni repository, è necessario aggiungere l'esportazione in modo specifico GOPATH. per esempio dal mio GOPATH

cd $GOPATH 
export GOPATH=$PWD && go get -d github.com/nsf/gocode 

si poteva evitare tutto insieme Credo che, se alias IT:

alias goget='cd $GOPATH; export GOPATH=$PWD && go get' 

Questo non è perfetto e stranamente export GOPATH=$GOPATH non funziona. per qualche motivo alcuni repos sono reimpostando il GOPATH a $HOME e cercando di eseguire come un utente diverso. La mia ipotesi è qualche codice di sviluppo da qualche parte nel metodo go get che sta scherzando con le chiamate. [solo un'intuizione, non citatemi]

Problemi correlati