如何从下载源安装golang第三方项目?

我正在尝试安装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 

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

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

首先,我们需要GOPATH

定义一个envvariablesGOPATH ,它是你的项目根目录,它应该有一个子目录src

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

将项目复制到src

然后将%GOPATH%/mgo项目复制到%GOPATH%/mgo ,但是我们必须小心目录结构。 它应该与源代码中定义的包完全相同。

对于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 

如果没有错误input,应该成功安装。

设置 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目录中 ,保留导入path(你传递go installpath)。

回退GOPATH是你的安装目录 。 所以你可以克隆mgo版本库go/src/pkg/launchpad.net/mgo

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

您可以按照预期在项目中使用mgo包:

 import "launchpad.net/mgo" 

所有这一切的美中不足之处在于,GOPATH是一条path – 类似于Java的类path或Unix的PATH。 它不是一个单独的目录位置:它是一系列的目录位置。 例如,我经常使用表单的语句,

 GOPATH=dira:dirb:dirc go install mypackage