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

时间:2012-05-27 09:02:16

标签: installation go mgo

我正在尝试安装mgo,这是一个用golang编写的mongo-driver。

标准命令:

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 个答案:

答案 0 :(得分:43)

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

首先,我们需要GOPATH

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

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

将项目复制到src

然后将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

如果没有输入错误,则应成功安装。

答案 1 :(得分:28)

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 

More on that

答案 2 :(得分: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"

答案 3 :(得分:0)

美中不足的是,GOPATH是一个路径 - 类似于Java的类路径,或Unix的PATH。它不是单个目录位置:它是一系列目录位置。例如,我经常使用表格的陈述,

GOPATH=dira:dirb:dirc go install mypackage