Go: 410 disparu lors de l'importation go.mod

Créé le 25 oct. 2019  ·  6Commentaires  ·  Source: golang/go

Quelle version de Go utilisez-vous ( go version ) ?

 $ go version
 aller à la version go1.13.3 linux/amd64

Ce problème se reproduit-il avec la dernière version ?

Oui

Quel système d'exploitation et architecture de processeur utilisez-vous ( go env ) ?

go env Sortie

$ aller 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"
GOOSTOS="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"

Qu'est-ce que tu as fait?

J'essaie d'importer un module golang personnalisé qui ne contient aucune autre dépendance (go.mod ne contient que le nom module et la version go ). Malheureusement, je reçois un 410 gone si j'essaie d'inclure le module dans un autre projet.
Le module peut être importé avec la version v0.0.8, mais pas avec >v0.0.9

En raison du fichier go.mod, il n'est pas possible de répliquer sur play.golang.org , à la place, j'ai créé un nouveau référentiel pour cela : https://github.com/alessiosavi/test
REMARQUE : en changeant la version du module en v0.0.8, cela fonctionnera

Que vous attendiez-vous à voir ?

Je m'attends à ce que l'importation du module dans go.mod (nécessite github.com/alessiosavi/GoGPUtils v0.0.10
) et en exécutant un go clean , le module peut être utilisé parmi le code

Qu'avez-vous vu à la place ?

Je reçois une erreur :

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

Lié possible

34528

34795

34402

34370

Solution possible

Gardez un œil sur : https://proxy.golang.org/YOUR_MODULE_GITH_URL/@v/VERSION.info

Il semble que https://proxy.golang.org/github.com/alessiosavi/!go!g!p!utils/ @v/v0.0.9.info
Dans mon cas, il semble que l'erreur soit liée à deux fichiers qui ne diffèrent que par la casse du nom.

Commentaire le plus utile

Le problème est https://github.com/alessiosavi/GoGPUtils/issues/2.

Pour obtenir un message d'erreur plus complet et plus utile, vous devez visiter l'URL qui a renvoyé 410 dans le message d'erreur que vous avez reçu :

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

Ça dit:

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 définissez GOSUMDB=off en plus de définir 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"

Tous les 6 commentaires

Le problème est https://github.com/alessiosavi/GoGPUtils/issues/2.

Pour obtenir un message d'erreur plus complet et plus utile, vous devez visiter l'URL qui a renvoyé 410 dans le message d'erreur que vous avez reçu :

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

Ça dit:

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 définissez GOSUMDB=off en plus de définir 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"

Comme toujours, un autre jour, un autre problème résolu par @dmitshur. Merci pour l'effort (:

Une autre version Go, une autre variable ENV à prendre en compte et à définir dans Dockerfiles 🤣

Essentiellement, comme @dmitshur l'a souligné correctement :
export GOSUMDB=off
Aidé.

Ce fil m'a sauvé. Merci.

Les outils Go pourraient vraiment utiliser des messages d'erreur un peu corrigés. J'étais vraiment perdu avec un message comme ci-dessous. Je ne sais presque rien des nouveaux développements liés aux modules (sauf que j'en loue l'intention !), et le fait d'avoir des messages d'erreur impénétrables rend la migration très difficile.

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, pour donner plus d'indices aux personnes qui trouvent ce fil : export GOSUMDB=off aidé à résoudre le problème, mais j'ai au moins dans mon cas le "bon" (dans le sens où cela ne touche pas à la façon dont les dépendances publiques sont accessibles) le correctif consistait à définir export GOPRIVATE=ghe.internalrepo.co.jp . Cela me déconcerte toujours, cependant, de ne pas essayer d'accéder directement au référentiel après avoir échoué avec GOSUMDB, mais d'échouer immédiatement avec un message crypté. Pour les développeurs Go : le message semble beaucoup plus cryptique si vous ne connaissez pas les concepts, alors s'il vous plaît, faites un peu de travail UX pour le contourner !

Cette page vous a été utile?
0 / 5 - 0 notes