如何从下载源安装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 install
path)。
回退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