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

Installation 如何从下载源安装golang第三方项目?,installation,go,mgo,Installation,Go,Mgo,我正在尝试安装一个用golang编写的mongo驱动程序 标准命令: go get launchpad.net/mgo 但由于一些证书问题,它失败了 因此,我手动将mgo的源代码下载到本地E:\mgo,但我不知道如何安装它 文件树: ├─.bzr │ ├─branch │ │ └─lock │ ├─branch-lock │ ├─checkout │ │ └─lock │ └─repository │ ├─indices │ ├─lock │ ├─

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

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

对于我来说,我将其定义为
E:\WORKSPACE\u GO\mgo
,然后创建一个子目录
src

将项目复制到src

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

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

E:\WORKSPACE_GO\mgo\src\launchpad.net\mgo
去安装

最后,
去安装它们:

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

cd ..
go install

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

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

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

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

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

import "launchpad.net/mgo"
。将代码移动到
$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是一个路径——类似于Java的类路径或Unix的路径。它不是单个目录位置:它是一系列目录位置。例如,我经常使用表格中的语句

GOPATH=dira:dirb:dirc go install mypackage

您的项目是否在GOPATH env变量中?您的GOPATH中可以有多个项目。我通常有一个标准的Go存储库,一个Go目录,我把所有的外部导入(从code.google.com或github.com)和所有的Go项目放在那里。go工具总是把编译好的东西放在最近的gopath目录中,并且总是找到导入。Freewind,你可以接受你的答案。基本上是正确的。GOPATH的最佳文档是。如果您之前已经设置了GOPATH,则通常不必在那里执行第一步。当你在不同的项目中工作时,你会以同样的方式离开它。您的复制步骤是正确的。对于go install,您不必单独安装依赖项。您只需安装顶级命令或软件包,所有依赖项都将自动安装。您不需要
去安装它。只要依赖于该包的任何项目在其GOPATH(构建时在GOPATH中)中有该GOPATH,它无论如何都会找到依赖项。事实上,如果它能找到go install生成的文件,它也会找到源代码,并在必要时自行构建。还必须注意的是,Bazaar必须在PATH中安装并可用。我在“said目录”中没有可构建的go源文件