Avatar ·

Was ist der Unterschied zwischen `go get` und `go install` in Go?

Hallo! Ich habe kürzlich angefangen, Go zu lernen, und versuche, mich mit Abhängigkeitsverwaltung und Projekt-Builds vertraut zu machen. Ich sehe oft die Verwendung der Befehle `go get` und `go install`, verstehe aber nicht ganz, was der Unterschied zwischen ihnen ist.\n\nZum Beispiel möchte ich das Tool `hey` für Lasttests installieren. In der Dokumentation steht: `go get -u github.com/rakyll/hey` und `go install github.com/rakyll/hey@latest`. Beide Befehle scheinen das Programm herunterzuladen und zu installieren, aber mir ist aufgefallen, dass nach `go get` die Binärdatei in `$GOPATH/bin` erschien, und nach `go install` ebenfalls dort, aber im Projektordner erschien eine Datei `go.sum`.\n\nIch habe auch versucht, `go get` zu verwenden, um eine Bibliothek zu meinem Projekt hinzuzufügen: `go get github.com/gin-gonic/gin`. Danach erschien in `go.mod` eine Zeile mit der Abhängigkeit, und in `go.sum` Hashes.