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 !
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 ?
allez chercher et allez installer
Les commandesgo 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!