2014-02-14 2 views
4

Я работаю над проектом в Go, который требует нескольких внешних библиотек, таких как драйвер MySQL, библиотека обработки изображений и т. Д. Сейчас у меня есть $GOPATH, установленный в/usr/lib/go/src, который помещает любой загруженные пакеты в/usr/lib/go/src/src, что, очевидно, не кажется правильным. Если я установил $GOPATH в/usr/lib/go, я получаю сообщение об ошибке, что $GOPATH не может быть установлен в тот же каталог, что и $GOROOT. Так должен ли я поставить GOPATH=/path/to/my/project/lib в мой файл build.sh, и когда я беру на себя свой git-репо, поместите lib/в мой .gitignore?

Я понимаю, что это, наверное, глупый вопрос. Он отлично работает, как сейчас, мне просто интересно, плохо ли это.

ответ

7

$ GOPATH действительно может быть любым выбранным вами местоположением (за некоторыми исключениями), если компилятор знает, где его найти. Если вы измените его просто убедитесь, что вы обновляете путь с

export GOPATH=/path/to/gopath

Моих личными предпочтениями держать $ GOPATH отдельно от моего кода, если я не пишу пакет, который предназначен для импорта с помощью go get <repo path>, в этом случае я буду писать код в

$GOPATH/src/<repo path>

который является стандартным местом, что пакет получает сохраненные при использовании go get <repo path>

+0

А, это имеет смысл. Я просто хочу убедиться, что я использую плохую практику, так что это не причиняет мне вреда позже. – eggbertx

+2

Еще одна вещь, которую я считаю удобной при написании открытого кода, - это сделать символические ссылки от ~/proj до $ GOPATH/src/, что облегчает скачок в оболочке. – Sekm

Смежные вопросы