Installation 如何从下载源安装golang第三方项目?
我正在尝试安装一个用golang编写的mongo驱动程序 标准命令: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 │ ├─
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源文件