原文链接:https://studygolang.com/articles/20364

go作为Google大佬的亲儿子,go开发过程中除了SDK自带的包外还经常会需要用到大佬提供的其他包,这些包都在golang.org下,而下载这些包需要访问大佬的服务器,国内开发者就会遇到各种墙的问题,今天就给大家总结一下有哪些途径安装这些包.

1. VPN

如果有条件的,公司能够提供稳定可靠的vpn,建议使用VPN,当然也有一些免费的vpn,实测效果很不好

2. gopm

gopm是一个开源的GoPackage Manager的管理工具,在go mod之前比较好使,github地址:https://github.com/gpmgo/gopm

使用思路:

1. 安装gopm

go get -u github.com/gpmgo/gopmgo install gopm

2. 使用gopm安装golang.org包

gopm get golang.org/x/net

实测这个效果在1.11版本后不好使

3. install form github

思路: Google大佬知道很多开发者因为环境限制不能访问golang.org的包,所以这些包在github上都有Copy,但是只是Copy,其中的包依赖还是golang.org,所以目前不能像gopm那样一键全部安装,但是实测可用,接下来以grpc为例,说明如果解决go package 依赖问题.

1. 当前环境

执行go env,主要看两个参数, GOPATH和GOROOT

D:\GoProject>go env
set GOPATH=D:\GoProject
set GOROOT=D:\Go

我的GOPATH目录的src目录如下:

2. 无VPN安装GRPC

grpc的quickstart地址:https://grpc.io/docs/quickstart/go.html

新开一个terminal,执行

go get -u google.golang.org/grpc
D:\GoProject>go get -u 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: d
dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of tim dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of ti
me, or established connection failed because connected host has failed to respond.)
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 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond aftera period of time, or established connection failed because connected host has failed to respond.)

很明显,直接提示网络不通

3. 下载grpc-go源码

D:\GoProject\src>git clone https://github.com/grpc/grpc-go ./google.golang.org/grpc
Cloning into './google.golang.org/grpc'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 14988 (delta 1), reused 1 (delta 0), pack-reused 14981
Receiving objects: 100% (14988/14988), 7.38 MiB | 344.00 KiB/s, done.
Resolving deltas: 100% (9466/9466), done.

4. go install grpc

D:\GoProject\src>go install google.golang.org/grpc
google.golang.org\grpc\internal\transport\controlbuf.go:27:2: cannot find package "golang.org/x/net/http2" in any of:D:\Go\src\golang.org\x\net\http2 (from $GOROOT)D:\GoProject\src\golang.org\x\net\http2 (from $GOPATH)
google.golang.org\grpc\internal\transport\controlbuf.go:28:2: cannot find package "golang.org/x/net/http2/hpack" in any of:D:\Go\src\golang.org\x\net\http2\hpack (from $GOROOT)D:\GoProject\src\golang.org\x\net\http2\hpack (from $GOPATH)
google.golang.org\grpc\server.go:36:2: cannot find package "golang.org/x/net/trace" in any of:D:\Go\src\golang.org\x\net\trace (from $GOROOT)D:\GoProject\src\golang.org\x\net\trace (from $GOPATH)
google.golang.org\grpc\status\status.go:37:2: cannot find package "google.golang.org/genproto/googleapis/rpc/status" in any of:D:\Go\src\google.golang.org\genproto\googleapis\rpc\status (from $GOROOT)D:\GoProject\src\google.golang.org\genproto\googleapis\rpc\status (from $GOPATH)

提示缺少golang.org/x/net 和google.golang.org/genproto这两个包

5. 安装golang.org/x/net包和genproto包

在github中找到go组织,搜索到net包如下

D:\GoProject\src>git clone https://github.com/golang/net.git ./golang.org/x/net
Cloning into './golang.org/x/net'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8291 (delta 5), reused 10 (delta 5), pack-reused 8278
Receiving objects: 100% (8291/8291), 6.47 MiB | 448.00 KiB/s, done.
Resolving deltas: 100% (5758/5758), done.
D:\GoProject\src>git clone https://github.com/google/go-genproto.git ./google.golang.org/genproto
Cloning into './google.golang.org/genproto'...
remote: Enumerating objects: 1474, done.
remote: Counting objects: 100% (1474/1474), done.
remote: Compressing objects: 100% (763/763), done.
remote: Total 11217 (delta 611), reused 1474 (delta 611), pack-reused 9743
Receiving objects: 100% (11217/11217), 15.98 MiB | 451.00 KiB/s, done.
Resolving deltas: 100% (5695/5695), done.
Checking out files: 100% (1268/1268), done.

6. go install grpc

D:\GoProject\src>go install google.golang.org/grpc
golang.org\x\net\idna\idna.go:23:2: cannot find package "golang.org/x/text/secure/bidirule" in any of:D:\Go\src\golang.org\x\text\secure\bidirule (from $GOROOT)D:\GoProject\src\golang.org\x\text\secure\bidirule (from $GOPATH)
golang.org\x\net\idna\idna.go:24:2: cannot find package "golang.org/x/text/unicode/bidi" in any of:D:\Go\src\golang.org\x\text\unicode\bidi (from $GOROOT)D:\GoProject\src\golang.org\x\text\unicode\bidi (from $GOPATH)
golang.org\x\net\idna\idna.go:25:2: cannot find package "golang.org/x/text/unicode/norm" in any of:D:\Go\src\golang.org\x\text\unicode\norm (from $GOROOT)D:\GoProject\src\golang.org\x\text\unicode\norm (from $GOPATH)

我们发现又缺少text包,go on...

D:\GoProject\src>git clone https://github.com/golang/text.git ./golang.org/x/text
Cloning into './golang.org/x/text'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 5612 (delta 11), reused 32 (delta 11), pack-reused 5580
Receiving objects: 100% (5612/5612), 19.67 MiB | 442.00 KiB/s, done.
Resolving deltas: 100% (3732/3732), done.D:\GoProject\src>go install google.golang.org/grpcD:\GoProject\src>

7. 测试安装

基本上go install没有提示错误,grpc就算安装好了,我们现在拿grpc里的example来测试下

// 先启动server
D:\GoProject\src>go run google.golang.org/grpc/examples/helloworld/greeter_server/main.go
2019/03/13 10:50:11 Received: world
//后启动client
D:\GoProject\src>go run google.golang.org/grpc/examples/helloworld/greeter_client/main.go
2019/03/13 10:50:11 Greeting: Hello world

go get国内解决办法汇总相关推荐

  1. Impala编译错误及解决办法汇总

    Impala编译错误及解决办法汇总 Impala repo里有C++.Java.Python.Bash的代码,编译过程中可能遇到各种问题.这个文章将作为一个汇总,以后每遇到一个编译问题,解决完后都会更 ...

  2. 仙逆网页服务器失败,全民仙逆闪退进不去了怎么办 闪退解决办法汇总

    相信喜欢玩手机游戏的玩家们在玩游戏的过程中或多或少都会碰到闪退或者登陆不上游戏的情况吧,全民仙逆也自然不例外,所以今天热心的一游网小编就来告诉大家全民仙逆闪退进不去了怎么办 闪退解决办法汇总. 全民仙 ...

  3. C中不安全的函数以解决办法汇总

    C中不安全的函数以解决办法汇总 C 中大多数缓冲区溢出问题可以直接追溯到标准 C 库.最有害的罪魁祸首是不进行自变量检查的.有问题的字符串操作(strcpy.strcat.sprintf 和 gets ...

  4. Apple pencil 无法连接到ipad的解决办法汇总

    Apple pencil 无法连接到ipad的解决办法汇总 大概有两周左右没有使用apple pencil,突然发现ipad识别不了,连接不上了.按所有尝试过的方法进行了排序,如果中间某步可以连接上, ...

  5. 苹果手机怎么设置时间24小时制_手机资讯:无法激活 iMessage 等问题及解决办法汇总...

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道无法激活 iMessage 等问题及解决办法汇总, ...

  6. PS4二战在线游戏连接不上服务器,使命召唤14:二战打不开怎么办 游戏无法运行解决办法汇总...

    使命召唤14:二战是<使命召唤>系列的全新续作,一些玩家在下载未加密版的游戏后会遇到使命召唤14打不开.使命召唤14无法运行.使命召唤14未响应等等问题,其实这些问题并不是游戏本身的问题, ...

  7. 安装H3C Cloud Lab(HCL)时遇到的问题及解决办法汇总

    安装HCL H3C Cloud Lab (HCL)时遇到的问题及解决办法汇总 安装HCL有感 遇到的问题汇总 1,see the logfile...for details 2,请检查Virtual ...

  8. CorelDraw出现应用程序恢复管理器向导解决办法汇总

    CorelDraw(cdr)出现"应用程序恢复管理器向导",对于那些经常使用Coreldraw软件的朋友来说应该不会陌生吧?这两天自己和同事的Coreldraw也都时不时的出现&q ...

  9. 网络rtk能连接服务器,没信号,RTK网络应用出现问题也不怕,解决办法汇总来了...

    原标题:RTK网络应用出现问题也不怕,解决办法汇总来了 这些年来随着GPS产品的越来越多的应用,CORS基站被越来越多地应用到RTK测量中,大大提高了工作效率,减少了人力物力成本. 但是,一些用户在使 ...

最新文章

  1. 【vue】vue-znly
  2. Spring MVC 全局异常处理(1) --SimpleMappingExceptionResolver
  3. 解决Jenkins升级时浏览器一直提示Please wait while Jenkins is restarting问题
  4. 网络配置_Linux网络环境配置
  5. ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
  6. Conversations
  7. 推荐几个出论文的好方向!!
  8. 罗宾斯管理学13版pdf_罗宾斯管理学(第13版)笔记和课后习题(含考研真题)详解...
  9. 虚拟光驱 win7虚拟光驱下载 ultraiso
  10. 我的世界服务器修改世界难度,我的世界服务器空岛生存调难度指令 | 手游网游页游攻略大全...
  11. 关于在word中安装Mathtype
  12. 【MIUI9】小米平板1MIPAD1欧版ROM历史ROM下载地址-另附挥泪典藏版V9系统
  13. Leetcode 刷题 - 排序(day2)_桶排序_Top K Frequent Elements
  14. H.266/VVC代码学习:帧内预测之角度预测函数(predIntraAng、xPredIntraAng)
  15. 物联网之MQTT3.1.1和MQTT5协议 (4) PUBLISH报文
  16. 使用Python和Numpy构建神经网络模型
  17. STEP标准描述方法-EXPRESS语言
  18. 明解C语言入门篇练习题第十三章
  19. ECharts3D地图
  20. Android系统apps之Setting的修改和设置

热门文章

  1. RabbitMQ入门-发送消息机制的介绍
  2. aop简介-aop相关概念
  3. MybatisPlus入门案例
  4. 算术运算符_四则与取模运算
  5. 分隔线演练-增加多行分隔线函数的参数
  6. Sping Cloud Eureka
  7. 使用Github(Github Issues)
  8. wps怎么投递简历发到boss直聘_央视新闻联合BOSS直聘带“岗”年薪超82亿元
  9. excel自动生成舒尔特表_EXCEL自动生成的PPT
  10. permission denied和linux赋值权限chmod命令