Maison  >  Article  >  développement back-end  >  allez chercher et allez installer sur le fichier go.sum

allez chercher et allez installer sur le fichier go.sum

王林
王林avant
2024-02-12 09:27:081051parcourir

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

L'éditeur PHP Zimo vous présentera l'utilisation des commandes "go get" et "go install" en langage Go sur le fichier go.sum. Dans les projets en langage Go, le fichier go.sum est utilisé pour enregistrer les packages et leurs informations de version dont dépend le projet, garantissant ainsi la stabilité et la cohérence du projet pendant le processus de construction et de déploiement. En comprenant l'impact des commandes « go get » et « go install » sur le fichier go.sum, vous pouvez mieux gérer et contrôler les dépendances du projet et améliorer l'efficacité du développement et la qualité du code. Apprenons ensemble l'utilisation spécifique de ces deux commandes !

Contenu de la question

J'utilise go 1.20.3

Je viens d'installer ce package en utilisant go get et go install

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

Mon fichier go.sum contient :

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=

Le fichier go.mod est :

module calculator

go 1.20

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

Dans mon $home/go/pkg/mod/github.com/mactsouk/ aod

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

Il n'y a rien sur $home/go/bin/, seulement deux fichiers. Pourquoi go install ne copie-t-il pas les fichiers binaires du module simplegithub ?

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

Y a-t-il une différence entre go get et go install ? Pourquoi ai-je ce fichier de module deux fois sur go.sum ?

Solution

allez chercher et allez installer

Les commandes

go get et go install dans Go ont des utilisations différentes :

go get est utilisé pour récupérer et télécharger des packages et leurs dépendances à partir de référentiels distants. Il met à jour les fichiers go.mod et go.sum avec la version du package téléchargé. Si le package existe déjà, go get le mettra à jour vers la dernière version.

go install Compilez et installez le package dans le GOPATH ou GOBIN du projet. Il ne met pas à jour les fichiers go.mod ou go.sum. Au lieu de cela, il utilise les informations contenues dans ces fichiers pour déterminer la version correcte de la dépendance à utiliser.

Dans votre cas, lorsque vous exécutez go get , il télécharge et installe le package github.com/mactsouk/go/simpleGitHub et ses dépendances. Cette action met à jour les fichiers go.mod et go.sum avec la version du package téléchargé.

Lorsque vous exécutez ensuite go install sur le même package, vous n'avez pas besoin de télécharger à nouveau le package car il est déjà présent dans le cache local du module Go. Par conséquent, go install utilise le package existant et sa version dans le cache et ne modifie pas les fichiers go.mod ou go.sum.

La raison pour laquelle vous voyez ce module répertorié deux fois dans le fichier go.sum est qu'il contient la version du module (v0.0.0-20180603081621-6a282087f7bd) et son fichier go.mod correspondant, qui contient la somme de contrôle. Il s’agit d’un comportement attendu et garantit l’intégrité des dépendances.

En résumé, go get et go install ont des objectifs différents. Il est normal que les modules soient répétés dans le fichier go.sum.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer