go version
)?$ go versión go versión go1.13.3 linux / amd64
sí
go env
)?go env
Salida
$ ir env
GO111MODULE = ""
GOARCH = "amd64"
GOBIN = "/ opt / DEVOPS / SDK / golang / go_projects / bin"
GOCACHE = "/ inicio / alessiosavi / .cache / go-build"
GOENV = "/ inicio / alessiosavi / .config / go / env"
GOEXE = ""
GOFLAGS = ""
GOHOSTARCH = "amd64"
GOHOSTOS = "linux"
GONOPROXY = ""
GONOSUMDB = ""
GOOS = "linux"
GOPATH = "/ opt / DEVOPS / SDK / golang / go_projects"
GOPRIVATE = ""
GOPROXY = "https: //proxy.golang.org,direct"
GOROOT = "/ opt / DEVOPS / SDK / golang / go"
GOSUMDB = "sum.golang.org"
GOTMPDIR = ""
GOTOOLDIR = "/ opt / DEVOPS / SDK / golang / go / pkg / tool / linux_amd64"
GCCGO = "gccgo"
AR = "ar"
CC = "gcc"
CXX = "g ++"
CGO_ENABLED = "1"
GOMOD = ""
CGO_CFLAGS = "- g -O2"
CGO_CPPFLAGS = ""
CGO_CXXFLAGS = "- g -O2"
CGO_FFLAGS = "- g -O2"
CGO_LDFLAGS = "- g -O2"
PKG_CONFIG = "pkg-config"
GOGCCFLAGS = "- fPIC -m64 -pthread -fmessage-length = 0 -fdebug-prefix-map = / tmp / go-build891034950 = / tmp / go-build -gno-record-gcc-switches"
Estoy intentando importar un módulo golang personalizado que no contiene ninguna otra dependencia (go.mod contiene solo la versión module
y la versión go
). Desafortunadamente, recibo un 410 gone
si intento incluir el módulo en otro proyecto.
El módulo se puede importar con la versión v0.0.8, pero no con> v0.0.9
Debido al archivo go.mod, no es posible replicar en play.golang.org
, en cambio, he creado un nuevo repositorio para eso: https://github.com/alessiosavi/test
NOTA: cambiando la versión del módulo a v0.0.8, funcionará
Espero que al importar el módulo en go.mod (requiere github.com/alessiosavi/GoGPUtils v0.0.10
) y ejecutando go clean
, el módulo se puede usar entre el código
Recibo un error:
export GO111MODULE=on
export GOPROXY=direct
go get -v -u github.com/alessiosavi/[email protected]
go: downloading github.com/alessiosavi/GoGPUtils v0.0.9
verifying github.com/alessiosavi/[email protected]: github.com/alessiosavi/[email protected]: reading https://sum.golang.org/lookup/github.com/alessiosavi/[email protected]: 410 Gone
Echa un vistazo a: https://proxy.golang.org/YOUR_MODULE_GITH_URL/@v/VERSION.info
Parece que https://proxy.golang.org/github.com/alessiosavi/!go!g!p!utils/ @ v / v0.0.9.info
En mi caso, parece que el error está relacionado con dos archivos que se diferencian solo por el caso en el nombre.
El problema es https://github.com/alessiosavi/GoGPUtils/issues/2.
Para obtener un mensaje de error más completo y útil, debe visitar la URL que devolvió 410 en el mensaje de error que recibió:
https://sum.golang.org/lookup/github.com/alessiosavi/!go!g!p!utils @ v0.0.9
Dice:
not found: unzip /tmp/gopath/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
O configure GOSUMDB=off
además de configurar GOPROXY=direct
:
$ export GO111MODULE=on
$ export GOPROXY=direct
$ export GOSUMDB=off
$ go get -v -u github.com/alessiosavi/[email protected]
go: finding github.com/alessiosavi/GoGPUtils v0.0.9
go: downloading github.com/alessiosavi/GoGPUtils v0.0.9
go: extracting github.com/alessiosavi/GoGPUtils v0.0.9
-> unzip /var/folders/zb/5p8cwfhj29gf_m8vdy8ylmlr00jwcj/T/tmp.6HERCDpw/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
go get github.com/alessiosavi/[email protected]: unzip /var/folders/zb/5p8cwfhj29gf_m8vdy8ylmlr00jwcj/T/tmp.6HERCDpw/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
Como siempre, otro día, otro problema resuelto por @dmitshur. Gracias por el esfuerzo (:
Otra versión de Go, otra variable ENV para cuidar y configurar en Dockerfiles 🤣
Esencialmente como @dmitshur señaló correctamente:
export GOSUMDB=off
Ayudó.
Este hilo me salvó. Gracias.
A las herramientas de Go les vendrían muy bien los mensajes de error un poco pulidos. Estaba realmente perdido con un mensaje como el siguiente. No sé casi nada sobre los nuevos desarrollos relacionados con los módulos (¡excepto que elogio la intención!), Y tener mensajes de error impenetrables hace que sea realmente difícil migrar.
go: ghe.internalrepo.co.jp/project/[email protected]/go.mod: verifying module: ghe.internalrepo.co.jp/project/[email protected]/go.mod: reading https://sum.golang.org/lookup/ghe.internalrepo.co.jp/project/[email protected]: 410 Gone
server response: not found: ghe.internalrepo.co.jp/project/[email protected]: unrecognized import path "ghe.internalrepo.co.jp/project/our_project": https fetch: Get "https://ghe.internalrepo.co.jp/project/our_project?go-get=1": dial tcp 123.123.123.123:443: connect: connection refused
Ah, para proporcionar algunas pistas más para las personas que encuentran este hilo: export GOSUMDB=off
ayudó a solucionar el problema, pero al menos en mi caso lo "adecuado" (en el sentido de que no toca cómo las dependencias públicas se accede) la corrección es establecer export GOPRIVATE=ghe.internalrepo.co.jp
. Sin embargo, todavía me desconcierta cómo no intentaría acceder directamente al repositorio después de fallar con GOSUMDB, sino simplemente fallar de inmediato con un mensaje críptico. Para los desarrolladores de Go: el mensaje parece mucho más críptico si no conoces los conceptos, ¡así que por favor haz un trabajo de UX!
Comentario más útil
El problema es https://github.com/alessiosavi/GoGPUtils/issues/2.
Para obtener un mensaje de error más completo y útil, debe visitar la URL que devolvió 410 en el mensaje de error que recibió:
https://sum.golang.org/lookup/github.com/alessiosavi/!go!g!p!utils @ v0.0.9
Dice:
O configure
GOSUMDB=off
además de configurarGOPROXY=direct
: