Go: 410 desapareceu durante a importação go.mod

Criado em 25 out. 2019  ·  6Comentários  ·  Fonte: golang/go

Qual versão do Go você está usando ( go version )?

 versão $ go
 go versão go1.13.3 linux / amd64

Este problema se reproduz com a versão mais recente?

sim

Qual sistema operacional e arquitetura de processador você está usando ( go env )?

go env Saída

$ go env
GO111MODULE = ""
GOARCH = "amd64"
GOBIN = "/ opt / DEVOPS / SDK / golang / go_projects / bin"
GOCACHE = "/ home / alessiosavi / .cache / go-build"
GOENV = "/ home / 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"

O que você fez?

Estou tentando importar um módulo golang personalizado que não contém nenhuma outra dependência (go.mod contém apenas o module name e a versão go ). Infelizmente, recebo 410 gone se tento incluir o módulo em outro projeto.
O módulo pode ser importado com a versão v0.0.8, mas não com> v0.0.9

Devido ao arquivo go.mod, não é possível replicar em play.golang.org , em vez disso, criei um novo repositório para isso: https://github.com/alessiosavi/test
NOTA: mudar a versão do módulo para v0.0.8, vai funcionar

O que você esperava ver?

Espero que importando o módulo em go.mod (requer github.com/alessiosavi/GoGPUtils v0.0.10
) e executando um go clean , o módulo pode ser usado entre o código

O que você viu em vez disso?

Recebo um erro:

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

Possivelmente relacionado

34528

34795

34402

34370

Solução possível

Fique de olho em: 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
No meu caso, parece que o erro está relacionado a dois arquivos que diferem apenas para o caso no nome.

Comentários muito úteis

O problema é https://github.com/alessiosavi/GoGPUtils/issues/2.

Para obter uma mensagem de erro mais completa e útil, você deve visitar o URL que retornou 410 na mensagem de erro que você recebeu:

https://sum.golang.org/lookup/github.com/alessiosavi/!go!g!p!utils @ v0.0.9

Diz:

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"

Ou defina GOSUMDB=off além de definir 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"

Todos 6 comentários

O problema é https://github.com/alessiosavi/GoGPUtils/issues/2.

Para obter uma mensagem de erro mais completa e útil, você deve visitar o URL que retornou 410 na mensagem de erro que você recebeu:

https://sum.golang.org/lookup/github.com/alessiosavi/!go!g!p!utils @ v0.0.9

Diz:

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"

Ou defina GOSUMDB=off além de definir 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 sempre, outro dia, outro problema resolvido por @dmitshur. Obrigado pelo esforço (:

Outra versão Go, outra variável ENV para se preocupar e definir nos Dockerfiles 🤣

Essencialmente, como @dmitshur apontou corretamente:
export GOSUMDB=off
Ajudou.

Este tópico me salvou. Obrigada.

As ferramentas Go poderiam realmente usar mensagens de erro um pouco aprimoradas. Fiquei realmente perdido com uma mensagem como a abaixo. Não sei quase nada sobre os novos desenvolvimentos relacionados ao módulo (exceto que louvo a intenção!), E ter mensagens de erro impenetráveis ​​torna realmente difícil a migração.

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 fornecer mais algumas dicas para as pessoas que encontram este tópico: export GOSUMDB=off ajudou a consertar o problema, mas eu, pelo menos no meu caso, o "adequado" (no sentido de que não afeta como as dependências públicas são acessados) a correção foi definir export GOPRIVATE=ghe.internalrepo.co.jp . Ainda me deixa perplexo, porém, como ele não tentaria acessar diretamente o repositório depois de falhar com GOSUMDB, mas apenas falharia imediatamente com uma mensagem criptografada. Para desenvolvedores Go: a mensagem parece muito mais enigmática se você não conhece os conceitos, então, por favor, faça um trabalho de UX em torno disso!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

enoodle picture enoodle  ·  3Comentários

ajstarks picture ajstarks  ·  3Comentários

myitcv picture myitcv  ·  3Comentários

bbodenmiller picture bbodenmiller  ·  3Comentários

natefinch picture natefinch  ·  3Comentários