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

allez chercher et allez installer sur le fichier go.sum

王林
Libérer: 2024-02-12 09:27:08
avant
1103 Les gens l'ont consulté

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
Copier après la connexion

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=
Copier après la connexion

Le fichier go.mod est :

module calculator

go 1.20

require github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd // indirect
Copier après la connexion

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

dr-xr-xr-x  5 user  staff  160 jul  4 18:42 [email protected]
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal