45

我正在尝试安装mgo,它是一个用 golang 编写的 mongo 驱动程序。

标准命令:

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

那么,安装它的正确命令是什么?

4

4 回答 4

45

最后我成功安装了mgo项目。我认为这对初学者会有帮助,所以我在这里回答它。

首先,我们需要 GOPATH

定义一个环境变量GOPATH,这是你的项目根目录,它应该有一个子目录src

对我来说,我将它定义为E:\WORKSPACE_GO\mgo,然后创建一个子目录src

将项目复制到src

mgo然后将项目复制到%GOPATH%/mgo,但一定要注意目录结构。它应该与sources中定义的包完全相同。

对于mgo,它的包是launchpad.net/mgo,所以结构应该是:

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

去安装

最后,go install他们:

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

cd ..
go install

如果没有错误输入,应该是安装成功了。

于 2012-05-27T09:50:15.937 回答
29

设置 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 

更多关于那个

于 2013-04-29T16:26:36.430 回答
5

您必须将其放入您的GOPATH/src目录中,保留导入路径(您传递给的路径go install)。

后备的 GOPATH 是你的安装目录。因此,您可以将mgo存储库克隆到go/src/pkg/launchpad.net/mgo.

或者,当您为依赖于 mgo的项目设置项目目录/环境并将GOPATH环境变量设置为该FOLDER时,您可以将mgo存储库克隆为FOLDER/src/launchpad.net/mgo/.

然后,您可以按预期在项目中使用 mgo 包:

import "launchpad.net/mgo"
于 2012-06-03T17:13:10.177 回答
0

美中不足的是,GOPATH 是一条路径——类似于 Java 的类路径或 Unix 的 PATH。它不是单个目录位置:它是一系列目录位置。例如,我经常使用以下形式的语句,

GOPATH=dira:dirb:dirc go install mypackage
于 2017-09-21T01:07:01.493 回答