How to install golang 3rd-party projects from download sources?

Freewind picture Freewind · May 27, 2012 · Viewed 63k times · Source

I'm trying to install mgo which is a mongo-driver written in golang.

The standard command:

go get launchpad.net/mgo

But it failed because of some cert issues.

So I manually download the sources of mgo to local E:\mgo, but I don't know to how install it.

The file tree:

├─.bzr
│  ├─branch
│  │  └─lock
│  ├─branch-lock
│  ├─checkout
│  │  └─lock
│  └─repository
│      ├─indices
│      ├─lock
│      ├─obsolete_packs
│      ├─packs
│      └─upload
├─bson
└─testdb

I tried:

cd mgo
go install

It reports:

auth.go:34:2: import "launchpad.net/mgo/bson": cannot find package

But if I try to install bson first:

cd bson
go install

It reports another error:

go install: no install location for _/E_/mgo/bson

So, what's the correct command to install it?

Answer

Freewind picture Freewind · May 27, 2012

Finally I successfully install the mgo project. I think it will be helpful for beginners, so I answer it here.

First, we need GOPATH

Define a env variable GOPATH, which is your project root directory, and it should have a sub dir src.

For me, I define it to E:\WORKSPACE_GO\mgo, then create a sub dir src

Copy the project to the src

Then copy the mgo project to %GOPATH%/mgo, but we must be careful about the directory structure. It should be exactly the same as the package defined in sources.

For mgo, it's package is launchpad.net/mgo, so the structure should be:

E:\WORKSPACE_GO\mgo\src\launchpad.net\mgo

go install

At last, go install them:

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

cd ..
go install

If there is no error input, it should be successfully installed.