老哥们,问一个 go build 代理的问题

2023-09-28 14:32:40 +08:00
 leegoo

我现在有一台 vmware centos7 服务器。使用 yum 安装了 golang

并且在/etc/profiles 设置了 http_proxy 和 https_proxy 代理

/etc/profiles 设置的内容如下:

export http_proxy=http://192.168.230.1:808
export https_proxy=https://192.168.230.1:808


但是当我使用 go build xxx.go 的时,就会报错, go env 设置如下:

[root@localhost tz-monitor]# go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
GOROOT="/usr/lib/golang"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.19.10"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/golang/tz-monitor/go.mod"
GOWORK=""
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 -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1417382532=/tmp/go-build -gno-record-gcc-switches"


使用 go build 时

[root@localhost tz-monitor]# go build main.go 
go: downloading github.com/shirou/gopsutil/v3 v3.23.8
main.go:6:2: github.com/shirou/gopsutil/v3@v3.23.8: Get "https://goproxy.io/github.com/shirou/gopsutil/v3/@v/v3.23.8.zip": proxyconnect tcp: EOF

我看网上 go build 设置代理的意思好像是,访问国内的镜像,而非真正的代理。

我也尝试过,直接在有网的机器把v3.23.8.zip 传到这台没网的机器 然后使用 go build。然而毫无卵用

老哥们 ,我这个怎么搞

1028 次点击
所在节点    Go 编程语言
9 条回复
timnottom
2023-09-28 14:39:20 +08:00
https://goproxy.cn/


使用如下命令添加模块代理:

```
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
```
leegoo
2023-09-28 14:54:06 +08:00
@timnottom

[root@localhost tz-monitor]# go env -w GO111MODULE=on
[root@localhost tz-monitor]# go env -w GOPROXY=https://goproxy.cn,direct
[root@localhost tz-monitor]# go build main.go
go: downloading github.com/shirou/gopsutil/v3 v3.23.8
main.go:6:2: github.com/shirou/gopsutil/v3@v3.23.8: Get "https://goproxy.cn/github.com/shirou/gopsutil/v3/@v/v3.23.8.zip": proxyconnect tcp: EOF
timnottom
2023-09-28 15:35:42 +08:00
@leegoo #2 还是是代理问题吧,为什么要设置 http_proxy https_proxy 代理 ?
iSecret
2023-09-28 16:04:36 +08:00
先 unset http_proxy https_proxy 重置掉代理,然后使用 go env -w GOPROXY=https://goproxy.cn,direct 试试。
iSecret
2023-09-28 16:07:21 +08:00
另外你的 https_proxy 设置得有问题,不应该设置为 https 代理。

export http_proxy=http://192.168.230.1:808
export https_proxy=http://192.168.230.1:808
export all_proxy=socks5://192.168.230.1:808
iSecret
2023-09-28 16:12:11 +08:00
我在这里也找到了类似问题,可以了解一下具体原因。

https://github.com/goproxy/goproxy.cn/issues/71#issuecomment-599986830
skiy
2023-09-28 16:12:13 +08:00
一定要用 http_proxy 吗?都用 goproxy 了。如果没必要,可以 http_proxy="" go build 看看?
learningman
2023-09-29 12:15:09 +08:00
没网就 go mod vendor 呗
leegoo
2023-10-07 09:53:09 +08:00
@iSecret 感谢。非常好用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/977933

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX