Skip to content

问题:有没有可能给goproxy增加优先从本地文件缓存中提供sumdb的功能,支持偶尔完全断互联网时也能使用 #99

@masknu

Description

@masknu

你确定我们的常见问题页面中没有你想要询问的问题吗?

确定。

当你执行 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 信息的功能?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions