Как установить сторонние проекты golang из источников загрузки?

Я пытаюсь установить mgo что это монго-водитель написанных на golang.

стандартные команды:

go get launchpad.net/mgo

но это не удалось из-за некоторых проблем cert.

поэтому я вручную загружаю источники mgo в local E:mgo, но я не знаю как установить его.

дерево файлов:

├─.bzr
│  ├─branch
│  │  └─lock
│  ├─branch-lock
│  ├─checkout
│  │  └─lock
│  └─repository
│      ├─indices
│      ├─lock
│      ├─obsolete_packs
│      ├─packs
│      └─upload
├─bson
└─testdb

пробовал:

cd mgo
go install

сообщает:

auth.go:34:2: import "launchpad.net/mgo/bson": cannot find package

но если я попытаюсь установить bson первый:

cd bson
go install

он сообщает о другой ошибке:

go install: no install location for _/E_/mgo/bson

Итак, какова правильная команда для его установки?

4 ответов


наконец, я успешно устанавливаю проект mgo. Я думаю, что это будет полезно для начинающих, поэтому я отвечу здесь.

во-первых, нам нужен ГОПАТ

определите переменную env GOPATH, который является корневым каталогом вашего проекта, и он должен иметь sub dir src.

для меня, я определяю его в E:\WORKSPACE_GO\mgo, затем создайте sub dir src

скопируйте проект в src

скопировать mgo проект %GOPATH%/mgo, но мы должны быть осторожны со структурой каталогов. Он должен быть точно таким же, как пакет, определенный в источниках.

на mgo, это пакет launchpad.net/mgo, поэтому структура должна быть:

E:\WORKSPACE_GO\mgo\src\launchpad.net\mgo

go install

наконец, go install них:

cd E:\WORKSPACE_GO\mgo\src\launchpad.net\mgo\bson
go install

cd ..
go install

если нет ошибки ввода, он должен быть успешно установлен.


Set GOPATH. Переместить код под $GOPATH. Тогда

cd $GOPATH/src/github.com/user/package
go get .

объяснение:

go build .    # produces binary in current dir 
go install .  # produces binary in $GOPATH/bin 
go get .      # same as 'install' but resolves import deps 

об этом


вам предстоит положите его в GOPATH/src каталог, сохраняя путь импорта (тот, который вы передали go install).

запасной ГОПАТ ваш go установить каталог. Таким образом, вы можете клонировать mgo репозиторий go/src/pkg/launchpad.net/mgo.

кроме того, при настройке каталога проекта / среды для вашего проекта это зависит от mgo, и установите условия папку, то вы можете клонировать mgo репозиторий FOLDER/src/launchpad.net/mgo/.

затем вы можете использовать пакет mgo в своем проекте, как ожидалось:

import "launchpad.net/mgo"

ложка дегтя во всем этом, что ГОПАТ путь - подобно пути к классам Java или пути Unix. Это не одно местоположение каталога: это последовательность местоположений каталогов. Например, Я обычно использую утверждения формы,

GOPATH=dira:dirb:dirc go install mypackage