Подтвердить что ты не робот

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

Я пытаюсь установить mgo, который является гондором, написанным в golang.

Стандартная команда:

go get launchpad.net/mgo

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

Итак, я вручную загружаю источники mgo в локальный 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

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

4b9b3361

Ответ 1

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

Сначала нам нужен GOPATH

Определите переменную 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

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

Ответ 2

Установить 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 

Подробнее об этом

Ответ 3

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

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

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

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

import "launchpad.net/mgo"

Ответ 4

Муха в мазке всего этого состоит в том, что GOPATH - это путь, похожий на Java classpath или Unix PATH. Это не одно местоположение каталога: это последовательность местоположений каталога. Например, я обычно использую выражения формы,

GOPATH=dira:dirb:dirc go install mypackage