wake-up-neo.net

So installieren Sie golang 3rd-Party-Projekte von Downloadquellen

Ich versuche, mgo zu installieren. Dies ist ein in Golang geschriebener Mongo-Treiber. 

Der Standardbefehl: 

go get launchpad.net/mgo

Es scheiterte jedoch an einigen Zertifizierungsproblemen.

Also lade ich die Quellen von mgo manuell in local E:\mgo herunter, aber ich weiß nicht, wie ich es installieren soll.

Der Dateibaum:

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

Ich habe es versucht:

cd mgo
go install

Es berichtet:

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

Aber wenn ich versuche, bson zuerst zu installieren:

cd bson
go install

Es meldet einen anderen Fehler:

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

Also, was ist der richtige Befehl, um es zu installieren?

39
Freewind

Zum Schluss installiere ich erfolgreich das Mgo-Projekt. Ich denke, es wird für Anfänger hilfreich sein, daher beantworte ich es hier.

Zuerst brauchen wir GOPATH

Definieren Sie eine Umgebungsvariable GOPATH, die Ihr Projektstammverzeichnis ist, und es sollte ein Unterverzeichnis src haben.

Für mich definiere ich es zu E:\WORKSPACE_GO\mgo und erstelle dann ein Unterverzeichnis src

Kopiere das Projekt in die src

Kopieren Sie dann das mgo-Projekt in %GOPATH%/mgo, aber wir müssen die Verzeichnisstruktur sorgfältig prüfen. Es sollte genau dem Paket entsprechen, das in den Quellen definiert ist.

Für mgo lautet das Paket launchpad.net/mgo. Die Struktur sollte daher lauten:

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

go install

Zum Schluss go install ihnen:

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

cd ..
go install

Wenn keine Fehlereingabe vorliegt, sollte sie erfolgreich installiert werden.

41
Freewind

SetGOPATH . Code unter $GOPATH verschieben. Dann

cd $GOPATH/src/github.com/user/package
go get .

Erläuterung:

go build .    # produces binary in current dir 
go install .  # produces binary in $GOPATH/bin 
go get .      # same as 'install' but resolves import deps 

Mehr dazu

27
rofrol

Sie müssen in Ihr GOPATH/src-Verzeichnis aufnehmen , wobei der Importpfad (der Pfad, den Sie an go install übergeben haben) beibehalten wird.

Der Fallback GOPATH ist Ihr go Installationsverzeichnis . So können Sie das Repository mgo nach go/src/pkg/launchpad.net/mgo klonen.

Wenn Sie alternativ ein Projektverzeichnis/environment für Ihr Projekt , das von mgo abhängig ist, einrichten und die Umgebungsvariable GOPATH auf diesen -ORDNER setzen, können Sie das Repository mgo klonen zu FOLDER/src/launchpad.net/mgo/.

Sie können das mgo-Paket dann wie erwartet in Ihrem Projekt verwenden:

import "launchpad.net/mgo"
5
Kissaki

Die Fliege in der Salbe von all dem ist, dass GOPATH ein Pfad - ähnlich dem Klassenpfad von Java oder dem UNIX-Pfad PATH ist. Es handelt sich nicht um einen einzelnen Verzeichnisspeicherort: Es handelt sich um eine Folge von Verzeichnisspeicherorten. Zum Beispiel verwende ich routinemäßig Anweisungen der Form,

GOPATH=dira:dirb:dirc go install mypackage
0
cliffberg