golang: установка пакетов в локальном каталоге

какова наилучшая практика установки пакетов (с go get...) в локальный каталог?

пример: я хотел бы попробовать Ревель веб-фреймворк, но я не хочу загромождать свою установку go в /usr/local/go.

обычно я бы сказал sudo go get github.com/robfig/revel как написано на домашней странице, но это установит его под /usr/local/go/src/pkg/....

есть ли простой способ сказать (например) go get --local ... и иметь пакет в текущем (sub) каталоге?

3 ответов


вы можете экспортировать переменную env GOPATH. Для меня это ~/local/lib/go. Эта папка имеет вложенные папки bin, pkg и src, так как /usr/local/go. The go-инструмент будет автоматически загружать , строить и устанавливать пакеты в этот каталог.


чтобы развернуть ответ keks, вы можете обновить свой .bashrc, чтобы выглядеть так

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

теперь все пакеты установлены с go get отделены от распределения go.


вы можете рассмотреть возможность использования Go Version Manager (gvm).

помимо переключения между версиями Go легко, он также позволяет переключаться между pkgsets ("рабочие").

сначала вы создаете набор

gvm pkgset create myproject

и

gvm pkgset use myproject

работает как шарм.