“go get google.golang.org/grpc”失败:无法识别的导入路径

时间:2017-06-01 17:44:18

标签: go dns raspberry-pi raspbian grpc

因此,我尝试使用“go get”在我的Raspberry 3 / Raspbian系统上安装Go应用程序的依赖项,并在尝试安装gRPC for Go时运行以下内容:

[pi@raspberrypi-1 camera-service] 17:32:28 % go get google.golang.org/grpc
package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp: lookup google.golang.org on 192.168.1.1:53: read udp 192.168.1.64:33524->192.168.1.1:53: i/o timeout)

与此同时,我可以安装其他(nongoogle.golang.org)依赖项(例如go get github.com/asaskevich/EventBus)。

对我来说,这看起来是一个DNS问题 - 192.168.1.1是我的路由器,192.168.1.64是我的RPi。但是我可以很好地解决这个问题:

[pi@raspberrypi-1 camera-service] 17:32:52 % host google.golang.org
google.golang.org is an alias for golang.org.
golang.org has address 216.58.209.145
golang.org has IPv6 address 2a00:1450:400f:804::2011
golang.org mail is handled by 1 aspmx.l.google.com.
golang.org mail is handled by 2 alt2.aspmx.l.google.com.
golang.org mail is handled by 2 alt1.aspmx.l.google.com.
golang.org mail is handled by 2 alt3.aspmx.l.google.com.

这很奇怪。我也在另一个系统上安装了相同的软件包。

我的环境是

- Go 1.8.3, installed from prebuilt ARM6 binary
- export GOROOT="/usr/local/go"
- export GOPATH="/home/pi/go"

1 个答案:

答案 0 :(得分:0)

这可能是因为您在Go中使用内置DNS解析程序,而不是委派给系统名称解析程序。当你构建gRPC时,你设置了CGO_ENABLED=1吗?您可以在获取gRPC时设置GODEBUG=netdns=cgo进行检查:

$ GODEBUG=netdns=cgo go get google.golang.org/grpc