2012-09-20 17 views
8

Qual è la procedura migliore per installare pacchetti (quelli con go get...) in una directory locale?golang: installazione di pacchetti in una directory locale

Esempio: Mi piacerebbe provare il framework web Revel, ma non voglio ingombrare la mia installazione go al /usr/local/go.

Normalmente direi sudo go get github.com/robfig/revel come scritto nella home page, ma che lo installerebbe sotto /usr/local/go/src/pkg/....

C'è un modo semplice per dire (ad esempio) go get --local ... e avere il pacchetto nella directory corrente (sotto)?

+0

Difficile scegliere quale risposta accettare. Per il momento ho giocato solo con 'GOPATH', quindi la risposta di @ keks è quella che ho scelto, ma questo potrebbe cambiare in futuro :) – topskip

risposta

8

È possibile esportare la variabile env GOPATH. Per me è . Questa cartella ha le sottocartelle bin, pkg e src, quindi è proprio come /usr/local/go. Lo strumento go eseguirà automaticamente il download, la compilazione e l'installazione dei pacchetti in questa directory.

16

di espandere keks risposta, è possibile aggiornare il proprio .bashrc a guardare come questo

export GOROOT=/usr/local/go 
export GOPATH=~/workspace/me/go 
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 

Ora tutti i pacchetti installati con go get sono separati dalla distribuzione movimento.

9

Si potrebbe prendere in considerazione l'utilizzo di Go Version Manager (gvm).

Oltre a passare facilmente tra le versioni di Go, consente anche di passare da pkgsets ("aree di lavoro").

Per prima cosa è creare un insieme

gvm pkgset create myproject 

e poi lo si utilizza

gvm pkgset use myproject 

funziona come un fascino.

Problemi correlati