it-swarm.com.de

Wie kann ich mit go get ein Paket installieren?

Ich möchte Pakete von Github auf meinem Gopath installieren. Ich habe Folgendes versucht:

go get github.com:capotej/groupcache-db-experiment.git

das Repository ist hier .

88
roger

Befehl gehen

Pakete und Abhängigkeiten herunterladen und installieren

Verwendungszweck:

go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]

Lädt die von den Importpfaden angegebenen Pakete mit ihren Abhängigkeiten herunter. Anschließend werden die genannten Pakete installiert, z. B. "go install".

Das Flag -d weist Sie an, nach dem Herunterladen der Pakete anzuhalten. Das heißt, es wird angewiesen, die Pakete nicht zu installieren.

Das -f-Flag, das nur gültig ist, wenn -u gesetzt ist, bewirkt, dass -u nicht überprüft, ob jedes Paket aus dem Quellcodeverwaltungs-Repository ausgecheckt wurde, das durch seinen Importpfad impliziert wird. Dies kann nützlich sein, wenn die Quelle eine lokale Verzweigung des Originals ist.

Das Flag -fix weist Sie an, das Fix-Tool für die heruntergeladenen Pakete auszuführen, bevor Sie Abhängigkeiten auflösen oder den Code erstellen.

Das Flag -insecure ermöglicht das Abrufen aus Repositorys und das Auflösen benutzerdefinierter Domänen mithilfe unsicherer Schemata wie HTTP. Mit Vorsicht verwenden.

Mit dem Flag -t können Sie auch die Pakete herunterladen, die zum Erstellen der Tests für die angegebenen Pakete erforderlich sind.

Das Flag -u weist an, das Netzwerk zum Aktualisieren der benannten Pakete und ihrer Abhängigkeiten zu verwenden. Standardmäßig verwendet get das Netzwerk zum Auschecken fehlender Pakete, sucht jedoch nicht nach Updates für vorhandene Pakete.

Das Flag -v aktiviert den ausführlichen Fortschritt und die Debug-Ausgabe.

Get akzeptiert auch Build-Flags, um die Installation zu steuern. Siehe 'go help build'.

Beim Auschecken eines neuen Pakets erstellt get das Zielverzeichnis GOPATH/src /. Wenn der GOPATH mehrere Einträge enthält, verwendet get den ersten. Weitere Informationen finden Sie unter: 'go help gopath'.

Suchen Sie beim Auschecken oder Aktualisieren eines Pakets nach einem Zweig oder Tag, der der lokal installierten Version von Go entspricht. Die wichtigste Regel lautet: Wenn auf der lokalen Installation die Version "go1" ausgeführt wird, müssen Sie nach einer Verzweigung oder einem Tag mit dem Namen "go1" suchen. Wenn keine solche Version vorhanden ist, wird der Standardzweig des Pakets abgerufen.

Wenn go get ein Git-Repository auscheckt oder aktualisiert, werden auch alle Git-Submodule aktualisiert, auf die das Repository verweist.

Holen Sie sich niemals in Herstellerverzeichnissen gespeicherten Code auschecken oder aktualisieren.

Weitere Informationen zum Angeben von Paketen finden Sie unter 'go help packages'.

Weitere Informationen darüber, wie 'go get' den herunterzuladenden Quellcode findet, finden Sie unter 'go help importpath'.

Dieser Text beschreibt das Verhalten von get, wenn GOPATH zum Verwalten von Quellcode und Abhängigkeiten verwendet wird. Wenn stattdessen der Befehl go im modulsensitiven Modus ausgeführt wird, ändern sich die Details der Flags und Effekte von get, ebenso wie go help get. Siehe 'go help modules' und 'go help module-get'.

Siehe auch: Gehen Sie bauen, gehen Sie installieren, gehen Sie sauber.


Wenn Sie beispielsweise eine ausführliche Ausgabe anzeigen,

$ go get -v github.com/capotej/groupcache-db-experiment/...
github.com/capotej/groupcache-db-experiment (download)
github.com/golang/groupcache (download)
github.com/golang/protobuf (download)
github.com/capotej/groupcache-db-experiment/api
github.com/capotej/groupcache-db-experiment/client
github.com/capotej/groupcache-db-experiment/slowdb
github.com/golang/groupcache/consistenthash
github.com/golang/protobuf/proto
github.com/golang/groupcache/lru
github.com/capotej/groupcache-db-experiment/dbserver
github.com/capotej/groupcache-db-experiment/cli
github.com/golang/groupcache/singleflight
github.com/golang/groupcache/groupcachepb
github.com/golang/groupcache
github.com/capotej/groupcache-db-experiment/frontend
$ 
93
peterSO

Zuerst brauchen wir GOPATH

Das $GOPATH ist ein Ordner (oder eine Gruppe von Ordnern), der von seiner Umgebungsvariablen angegeben wird. Wir müssen feststellen, dass dies nicht der $GOROOT Verzeichnis, in dem Go installiert ist.

export GOPATH=$HOME/gocode
export PATH=$PATH:$GOPATH/bin

Wir verwendeten ~/gocode Pfad in unserem Computer zum Speichern der Quelle unserer Anwendung und ihrer Abhängigkeiten. Das Verzeichnis GOPATH speichert auch die Binärdateien ihrer Pakete.

Dann überprüfen Sie Go env

Ihr System muss $GOPATH und $GOROOT, unten ist mein Env:

GOARCH="AMD64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="AMD64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/elpsstu/gocode"
GORACE=""
GOROOT="/home/pravin/go"
GOTOOLDIR="/home/pravin/go/pkg/tool/linux_AMD64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

Nun starten Sie das Download-Go-Paket:

go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages]

Holen Sie sich Downloads und installieren Sie die Pakete, die durch die Importpfade benannt sind, zusammen mit ihren Abhängigkeiten. Für weitere Details schauen Sie bitte hier .

60
Pravin Mishra