Heim  >  Artikel  >  Backend-Entwicklung  >  Holen Sie sich und installieren Sie die Datei go.sum

Holen Sie sich und installieren Sie die Datei go.sum

王林
王林nach vorne
2024-02-12 09:27:081051Durchsuche

go get 与 go install 在 go.sum 文件上

Der PHP-Editor Zimo führt Sie in der Datei go.sum in die Verwendung der Befehle „go get“ und „go install“ in der Go-Sprache ein. In Go-Sprachprojekten wird die Datei go.sum verwendet, um die Pakete und ihre Versionsinformationen aufzuzeichnen, von denen das Projekt abhängt, und so die Stabilität und Konsistenz des Projekts während des Erstellungs- und Bereitstellungsprozesses sicherzustellen. Wenn Sie die Auswirkungen der Befehle „go get“ und „go install“ auf die Datei go.sum verstehen, können Sie Projektabhängigkeiten besser verwalten und steuern sowie die Entwicklungseffizienz und Codequalität verbessern. Lassen Sie uns gemeinsam die spezifische Verwendung dieser beiden Befehle lernen!

Frageninhalt

Ich verwende Go 1.20.3

Ich habe dieses Paket gerade mit „go get“ und „go install“ installiert

go get -v github.com/mactsouk/go/simplegithub
go install  github.com/mactsouk/go/simplegithub

Meine go.sum-Datei enthält:

github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd h1:tqjgx/jaxlj3rnl7ps7xzqlvth8rl/dusa8wpe9w4y0=
github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd/go.mod h1:trtlpc1xi1zoqdba/cixgds+fcaizdqupmrflet5dbi=

go.mod-Datei ist:

module calculator

go 1.20

require github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd // indirect

In meinem $home/go/pkg/mod/github.com/mactsouk/ aod

dr-xr-xr-x  5 user  staff  160 jul  4 18:42 [email protected]

Auf $home/go/bin/ gibt es nichts, nur zwei Dateien. Warum kopiert go install nicht die Binärdateien des simplegithub-Moduls?

drwxr-xr-x  4 user  staff       128 Jun 26 23:37 .
drwxr-xr-x  4 user  staff       128 Jun 26 23:35 ..
-rwxr-xr-x  1 user  staff   3410064 Jun 26 23:35 go-outline
-rwxr-xr-x  1 user  staff  28237216 Jun 26 23:37 gopls

Gibt es einen Unterschied zwischen Go Get und Go Install? Warum habe ich diese Moduldatei zweimal auf go.sum?

Lösung

Holen Sie sich die Lösung und installieren Sie sie

Die Befehle

go get und go install in Go haben unterschiedliche Verwendungszwecke:

go get wird zum Abrufen und Herunterladen von Paketen und ihren Abhängigkeiten aus Remote-Repositorys verwendet. Es aktualisiert die Dateien go.mod und go.sum mit der Version des heruntergeladenen Pakets. Wenn das Paket bereits vorhanden ist, aktualisiert go get es auf die neueste Version.

go install Kompilieren und installieren Sie das Paket im GOPATH oder GOBIN des Projekts. Die Dateien go.mod oder go.sum werden nicht aktualisiert. Stattdessen werden die Informationen in diesen Dateien verwendet, um die richtige Version der zu verwendenden Abhängigkeit zu ermitteln.

Wenn Sie in Ihrem Fall go get ausführen, werden das Paket github.com/mactsouk/go/simpleGitHub und seine Abhängigkeiten heruntergeladen und installiert. Diese Aktion aktualisiert die Dateien go.mod und go.sum mit der Version des heruntergeladenen Pakets.

Wenn Sie anschließend go install für dasselbe Paket ausführen, müssen Sie das Paket nicht erneut herunterladen, da es bereits im lokalen Go-Modul-Cache vorhanden ist. Daher verwendet go install das vorhandene Paket und seine Version im Cache und ändert die Dateien go.mod oder go.sum nicht.

Der Grund, warum dieses Modul in der Datei go.sum zweimal aufgeführt ist, liegt darin, dass es die Modulversion (v0.0.0-20180603081621-6a282087f7bd) und die entsprechende go.mod-Datei enthält, die die Prüfsumme enthält. Dies ist das erwartete Verhalten und stellt die Abhängigkeitsintegrität sicher.

Zusammenfassend lässt sich sagen, dass Go Get und Go Install unterschiedliche Zwecke haben. Es ist normal, dass Module in der Datei go.sum wiederholt werden.

Das obige ist der detaillierte Inhalt vonHolen Sie sich und installieren Sie die Datei go.sum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen