2012-09-20 8 views
8

Was ist die beste Vorgehensweise, um Pakete (solche mit go get...) in einem lokalen Verzeichnis zu installieren?golang: Installation von Paketen in einem lokalen Verzeichnis

Beispiel: Ich möchte das Revel Web Framework ausprobieren, aber ich möchte meine Installation bei /usr/local/go nicht durcheinander bringen.

Normalerweise würde ich sagen sudo go get github.com/robfig/revel wie auf der Homepage geschrieben, aber das würde es unter /usr/local/go/src/pkg/... installieren.

Gibt es einen einfachen Weg zu sagen (zum Beispiel) go get --local ... und das Paket im aktuellen (Sub-) Verzeichnis zu haben?

+0

Schwer zu wählen, welche Antwort zu akzeptieren. Im Moment habe ich nur mit 'GOPATH' gespielt, also ist @keks 'Antwort die, die ich gewählt habe, aber das könnte sich in Zukunft ändern :) – topskip

Antwort

8

Sie können die env-Variable GOPATH exportieren. Für mich ist es . Dieser Ordner hat die Unterordner bin, pkg und src, also ist es genau wie /usr/local/go. Das go-Tool wird dann automatisch Pakete in dieses Verzeichnis herunterladen, erstellen und installieren.

16

erweitern auf keks beantworten, können Sie Ihre .bashrc wie diese mit go get von unterwegs Verteilung getrennt sind installiert

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

Jetzt alle Pakete suchen aktualisieren können.

9

Sie könnten die Verwendung von Go Version Manager (gvm) in Betracht ziehen.

Neben dem einfachen Wechsel zwischen den Go-Versionen können Sie auch zwischen pkgsets ("Workspaces") wechseln.

Zuerst erstellen Sie einen Satz

gvm pkgset create myproject 

und dann benutzen Sie es

gvm pkgset use myproject 

Arbeiten wie ein Charme.