2012-09-20 10 views
8

Co to jest najlepsza praktyka instalowania pakietów (te z go get...) w lokalnym katalogu?golang: instalowanie pakietów w lokalnym katalogu

Przykład: Chciałbym wypróbować framework sieciowy Revel, ale nie chcę zaśmiecać mojej instalacji go na /usr/local/go.

Normalnie powiedziałbym, że sudo go get github.com/robfig/revel został napisany na stronie głównej, ale zostałby zainstalowany pod /usr/local/go/src/pkg/....

Czy istnieje łatwy sposób, aby powiedzieć (na przykład) go get --local ... i mieć pakiet w bieżącym (pod) katalogu?

+0

Trudno wybrać, którą odpowiedź przyjąć. Na razie grałem tylko z 'GOPATH', więc odpowiedź @keksa jest tą, którą wybrałem, ale to może się zmienić w przyszłości :) – topskip

Odpowiedz

8

Można wyeksportować zmienną env GOPATH. Dla mnie jest to . Ten folder ma podfoldery bin, pkg i src, więc jest podobny do /usr/local/go. Narzędzie go automatycznie pobierze, zbuduje i zainstaluje pakiety w tym katalogu.

16

Aby rozwinąć na keks odpowiedzieć, można zaktualizować .bashrc wyglądać ten

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

Teraz wszystkie pakiety zainstalowane z go get są oddzielone od dystrybucji GO.

9

Być może warto rozważyć użycie Go Version Manager (gvm).

Oprócz łatwego przełączania między wersjami Go, można także przełączać między pkgsets ("obszary robocze").

Najpierw trzeba stworzyć zestaw

gvm pkgset create myproject 

i następnie go używać

gvm pkgset use myproject 

działa jak czar.