Después de jugar con la goherramienta por un tiempo, parece quego get :
- (opcionalmente) descargas,
- compila,
- e instala
una pieza de software, mientras que go installsimplemente
- compila
- e instala
eso. En este caso, ¿por qué existe el go installcomando, ya que lo go getreemplaza?

go get ./path/to/local_package, y se comportaría igual que si lo usarago install ./path/to/local_package, ¿verdad? Dado que no hay proceso de descarga en este caso.go installhace que su objetivo sea más explícito, pero supongo que ambos lograrían lo mismo. Probé con algunos paquetes, incluidos los declarados comomainy parecían equivalentes. Los documentos son muy deficientes en este comando.go getpero no parago install. ¿Cómo se relaciona eso con esta descripción?go getlugar dego installen su tercer punto, yago getque no volverá a descargar la biblioteca (a menos que agregue-u). También puede utilizarlogo getal escribir una biblioteca desde cero.go installparece completamente redundante.go gethace dos cosas principales en este orden:descarga y guarda en
$GOPATH/src/<import-path>los paquetes (código fuente) nombrados en las rutas de importación, junto con sus dependencias, luegoejecuta un
go installLa
-dbandera (go get -d) indicago getque se detenga después de descargar los paquetes; es decir, instruye ago getno hacergo installla diferencia:
go get// verificar si los paquetes necesitan ser descargados, descargarlos si es necesario y luego compilarlosgo install// omita la parte con la descarga de paquetes, solo compile (esto arrojará un error si falta algún paquete)sobre
GOPATHla variable de entornoLas
GOPATHherramientas de Go utilizan la variable de entorno. Se debe establecer con el fin de ser capaz deget,buildyinstallpaquetes, y especifica la ubicación de su espacio de trabajo. Es probable que sea la única variable de entorno que necesitará establecer al desarrollar código Go.De nuevo, el
GOPATHno debe apuntar a la instalación de Go, sino a su espacio de trabajo.Por ejemplo, en Windows, si decide que su espacio de trabajo está en
c:\gowork\, deberá establecer elGOPATHvalor comoc:\goworkSu código fuente debe estar en
c:\gowork\src\<some project folder>\y después de ejecutarlogo geten el símbolo del sistema desde dentroc:\gowork\src\<some project folder>\, verác:\gowork\bin\y sec:\gowork\pkg\está creando.fuente
go installdescarga el paquete en una configuración compatible con módulos.Tenga en cuenta que la versión 1.16 (Q1 2021) hará que esa diferencia sea más clara, implementada con CL 266360 como parte del problema 40276 :
fuente