你确定我们的常见问题页面中没有你想要询问的问题吗?
确定。
当你执行 go version 命令后的输出结果是什么?
$ go version
go version go1.14.6 linux/amd64
当你执行 go env 命令后的输出结果是什么?
go env 的输出结果
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/k/.cache/go-build"
GOENV="/home/k/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/k/go"
GOPRIVATE=""
GOPROXY="http://localhost,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/k/projects/goproxy/go.mod"
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-build263290122=/tmp/go-build -gno-record-gcc-switches"
你做了什么?
编译了一个 goproxy,main.go 中缓存设置为了磁盘当前目录,g.Cacher = &cacher.Disk{Root: ""},在连互联网的情况下拉取一些项目的依赖,让goproxy能缓存到磁盘。
然后断开互联网,并删除 $GOPATH/pkg/mod 目录,并对所有工程重新执行 go build,希望能从本地goproxy的磁盘缓存中拉取依赖到 $GOPATH/pkg/mod 中并正常编译。
你期望看到的结果是什么?
期望看到可以正常拉取依赖并编译成功所有断网前拉取过依赖的项目。
你实际看到的结果是什么?
看上去本地的goproxy服务可以从磁盘缓存中Serve源代码,但没有从磁盘Serve sumdb,导致go build 工程时提示 :
...verifying module: ... 404 not found.
server response: not found: fetch timed out
有没有可能给goproxy增加优先从本地文件缓存中提供mod sum 信息的功能?
你确定我们的常见问题页面中没有你想要询问的问题吗?
确定。
当你执行
go version命令后的输出结果是什么?当你执行
go env命令后的输出结果是什么?go env的输出结果你做了什么?
编译了一个 goproxy,main.go 中缓存设置为了磁盘当前目录,
g.Cacher = &cacher.Disk{Root: ""},在连互联网的情况下拉取一些项目的依赖,让goproxy能缓存到磁盘。然后断开互联网,并删除 $GOPATH/pkg/mod 目录,并对所有工程重新执行 go build,希望能从本地goproxy的磁盘缓存中拉取依赖到 $GOPATH/pkg/mod 中并正常编译。
你期望看到的结果是什么?
期望看到可以正常拉取依赖并编译成功所有断网前拉取过依赖的项目。
你实际看到的结果是什么?
看上去本地的goproxy服务可以从磁盘缓存中Serve源代码,但没有从磁盘Serve sumdb,导致go build 工程时提示 :
有没有可能给goproxy增加优先从本地文件缓存中提供mod sum 信息的功能?