我的编程空间,编程开发者的网络收藏夹
学习永远不晚

当go get遇到墙时该怎么办

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

当go get遇到墙时该怎么办

今天就跟大家聊聊有关当go get遇到墙时该怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

作为一名从py转向go语言的新手,在使用第三方包的时候我们需要比较熟悉该包或者模块的构建与安装,好比在使用pip或者easy_install之类的工具安装模块时经常会遇到底层库或者工具包的依赖再或者网络超时而导致模块安装失败。然而在使用go的过程中,虽然不必像py那样为一个复杂模块去解决各种的依赖关系,但在使用go get的过程中也不一定一帆风顺,比如你去下载golang.org上的包时,对不起,一般肯定是会被墙掉的。

为何会被墙掉?

&^*(^*%^&*)&*^&*%$%$^&*(*()&*^&%^&()**(%$%&*((^%%^*(*)*)总之,由于某某原因,它和它家的主人google都被墙掉了。

如何解决?

两种方式:第一种无非就是使用vpn技术啦,然后再在本地配个代理啥的,不过既然都是开源的东西,就一定能够从github上面clone下来。所以第二种方式就是就是去从github上面直接clone下来,然后搞成go可以识别的包就可以啦github.com现在肯定是不会被墙啦。 vpn的方式就是搭了个梯子然后配置下代理就可以直接使用go get了,这里主要讲一下第二种方式去安装第三方包。

假设我想使用go语言的docker客户端去封装改造一些东西,通过go get -v 可以查看到安装package的详情

$go get -v github.com/fsouza/go-dockerclientpackage golang.org/x/net/html: unrecognized import path "golang.org/x/net/html" (https fetch: Get https://golang.org/x/net/html?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)package golang.org/x/net/html/atom: unrecognized import path "golang.org/x/net/html/atom" (https fetch: Get https://golang.org/x/net/html/atom?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

由以上提示可以大概猜得到,本地服务器肯定是无法访问golang.org的,因此在下载golang.org相关的包的时候无法下载导致dockerclient下载失败。

由于go get其实是将package下载下来,然后进行本地安装的,因此我们也可以讲golang.org的相关包clone到本地然后再进行安装。

1.查看配置环境

主要的就是GOPATH和GOROOT

# go envGOARCH="amd64"GOBIN=""GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="linux"GOOS="linux"GOPATH="/export/test-go"GORACE=""GOROOT="/export/go"GOTOOLDIR="/export/go/pkg/tool/linux_amd64"GO15VENDOREXPERIMENT="1"CC="gcc"GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"CXX="g++"CGO_ENABLED="1"

注意:所有下载的包都会默认放在GOPATH,因此这个目录是必须的,且一般包含class="lazy" data-src pkg bin三个目录,分别存放源码包,编译包以及可执行文件

2.下载安装golang.org/x/net

为了使包的导入方式不变,我们需要在class="lazy" data-src目录下面构造目录结构

$mkdir -p $GOPATH/class="lazy" data-src/golang.org/x/$cd $GOPATH/class="lazy" data-src/golang.org/x/$git clone https://github.com/golang/net.git net $go install net

执行go install之后没有提示,就说明安装好了。

3.再次安装go的dockerclient
# go get -v  github.com/fsouza/go-dockerclient github.com/fsouza/go-dockerclient (download)github.com/docker/docker (download)github.com/docker/go-units (download)github.com/hashicorp/go-cleanhttp (download)github.com/docker/docker/api/types/networkgithub.com/docker/docker/pkg/promisegithub.com/docker/docker/api/types/blkiodevgithub.com/docker/docker/api/types/mountgithub.com/docker/docker/api/types/strslicegithub.com/docker/docker/vendor/github.com/docker/go-connections/natgithub.com/docker/docker/vendor/github.com/docker/go-unitsgithub.com/docker/docker/api/types/versionsgithub.com/docker/docker/api/types/registrygithub.com/docker/docker/vendor/github.com/Sirupsen/logrusgithub.com/docker/docker/vendor/github.com/opencontainers/runc/libcontainer/usergithub.com/docker/docker/vendor/golang.org/x/net/contextgithub.com/docker/docker/vendor/github.com/opencontainers/runc/libcontainer/systemgithub.com/docker/docker/vendor/github.com/Nvveen/Gottygithub.com/docker/docker/pkg/jsonloggithub.com/docker/docker/pkg/termgithub.com/docker/docker/pkg/stdcopygithub.com/docker/go-unitsgithub.com/hashicorp/go-cleanhttpgolang.org/x/net/contextgithub.com/docker/docker/api/types/filtersgithub.com/docker/docker/pkg/systemgithub.com/docker/docker/pkg/ioutilsgolang.org/x/net/context/ctxhttpgithub.com/docker/docker/api/types/containergithub.com/docker/docker/pkg/idtoolsgithub.com/docker/docker/api/types/swarmgithub.com/docker/docker/pkg/fileutilsgithub.com/docker/docker/pkg/poolsgithub.com/docker/docker/api/typesgithub.com/docker/docker/pkg/homedirgithub.com/docker/docker/pkg/jsonmessagegithub.com/docker/docker/pkg/archivegithub.com/docker/docker/optsgithub.com/fsouza/go-dockerclient

使用-v参数可以查看该包关联的所有包,可以看到已经成功安装

4.测试Docker客户端的使用github.com/fsouza/go-dockerclient

示例:查看当前docker主机上所下载的images

#cat JFdocker.gopackage mainimport ("fmt""github.com/fsouza/go-dockerclient""strings")func main() {//定义一个socker文件路径endpoint := "unix://var/run/docker.sock"//创建一个docker客户端链接client, err := docker.NewClient(endpoint)//判断是否异常,并且捕获if err != nil {panic(err)}//使用创建的client进行listimages操作images, err := client.ListImages(docker.ListImagesOptions{All: false})if err != nil {panic(err)}//使用range迭代所有images信息for _, img := range images {fmt.Printf("ID:%v\tTag:%v\t\t Size:%v\t\t VSize:%v\n",//image.ID为一个string类型并且以sha215:开头 strings.Split('strings','split')可以将结果分割并且存放在slice中strings.Split(img.ID, ":")[1][:12],img.RepoTags, img.Size, img.VirtualSize)}}编译并执行程序:#go build JFDocker.gosh-4.2# ./JFDocker ID:e740f4a4a24dTag:[centos6.8-test-app:v2] Size:2411566940 VSize:2411566940ID:d5cb0af109deTag:[centos6.8-test-app:latest] Size:2408322269 VSize:2408322269ID:67591570dd29Tag:[centos:latest] Size:191839169 VSize:191839169

可以看到,现在就可以成功的使用go的docker client进行开发程序了。至此,我们已经成功的解决了go get 无法安装golang.org相关的包了。

看完上述内容,你们对当go get遇到墙时该怎么办有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

当go get遇到墙时该怎么办

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

当go get遇到墙时该怎么办

今天就跟大家聊聊有关当go get遇到墙时该怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。作为一名从py转向go语言的新手,在使用第三方包的时候我们需要比较熟悉该包或者模块的构
2023-06-19

当遇到win10更新蓝屏怎么办

通过更新win10系统可以让我们使用的win10系统及时更新补丁,提高安全系数,稳定性和兼容性也会更高。最近有一些网友在win10更新后遇到了蓝屏问题,他们想知道如何解决。下面小编就给大家分享下win10更新蓝屏的解决方法。具体的解决方法如
2023-07-10

当你输入git错按成gti时该怎么办

当你输入git错按成gti时该怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。开发者和管理人员经常犯的错误之一是本来想键入git命令却不小心输入了gti。 有的为了防止
2023-06-05

windows系统开机提示geforce experience遇到错误该怎么办?

Windows系统电脑开机提示geforce experience遇到错误该怎么办?电脑开机弹出窗口提示:“geforce experience遇到错误且必须关闭&r编程客栈dquo;,如下图所示,该怎么办呢?下面我们就来看看详
2023-05-21

软考考试中遇到不会的题目应该怎么办

在软考(全国计算机技术与软件专业技术资格(水平)考试)中,遇到不会的题目是很常见的现象。面对这种情况,考生应保持冷静,采取合理的策略来应对,以最大限度地提高考试成绩。具体请见下文。
软考考试中遇到不会的题目应该怎么办
2024-10-08

windows播放文件时遇到问题怎么办

当Windows播放文件时遇到问题时,可以尝试以下步骤来解决问题:1. 重新启动计算机:有时,重新启动计算机可以修复临时的问题。2. 更新Windows和驱动程序:确保Windows系统和相关的驱动程序都是最新的,可以通过Windows U
2023-09-09

Discuz注册常见问题解答:遇到注册问题该怎么办?

Discuz注册常见问题解答:遇到注册问题该怎么办?在Discuz论坛系统中,注册是用户使用论坛功能的第一步,但有时用户可能会遇到注册过程中的问题。本文将针对Discuz论坛注册过程中常见的问题进行解答,并提供具体的代码示例,帮助用户解决
Discuz注册常见问题解答:遇到注册问题该怎么办?
2024-03-13

Oracle导入数据时遇到中文乱码怎么办?

Oracle导入数据时遇到中文乱码是一个常见的问题,主要是因为数据库的字符集与数据文件的字符集不一致所致。解决这个问题需要确保数据库字符集和数据文件字符集保持一致,并进行正确的转码操作。下面将结合具体的代码示例,介绍如何在Oracle数据库
Oracle导入数据时遇到中文乱码怎么办?
2024-03-10

在Windows 10 系统上启用Hyper V遇到的错误:0x800f0831该怎么办

在Windows 10 系统上启用Hyper V遇到的错误:0x800f0831该怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Hyper-V是微软的一款虚拟化技术,
2023-06-06

PHP中处理JSON数据时遇到中文乱码怎么办?

PHP中处理JSON数据时遇到中文乱码是一个比较常见的问题,这通常是因为在JSON编码或解码过程中出现了字符编码不一致导致的。解决这个问题的方法有很多,下面将介绍一些常见的解决方案,并附上具体的代码示例。方法一:设置header头信息在
PHP中处理JSON数据时遇到中文乱码怎么办?
2024-03-08

360卫士升级win10系统遇到c盘剩余空间不足该怎么办?

今年(2015年)六、七月份,安装360安全卫士win7能免费升级win10,这对我们使用win7破解版的同学来说,是一个令人振奋的消息。我们能否吃上这顿免费的午餐,还需要看我们的电脑配置。据报道,微软公布的win10最低配置
2023-06-15

当IDEA中的alt+ enter快捷键失效/没用时,该怎么办?(详细版)

当alt+ enter快捷键失效/没用时,怎么办? 一、背景: 当你写代码 *alt+enter* 失效时,该怎么办?二、原因:可能点到*Disable'Introduce local variable'* 了(我是)或是其他的。三
2023-08-16

服务器的故障之旅:当服务器出现问题时该怎么办

当服务器出现问题时,可以采取以下步骤来解决:检查服务器的硬件和软件配置、检查网络连接、检查服务器的安全设置、备份服务器数据、联系服务器供应商寻求帮助等。
服务器的故障之旅:当服务器出现问题时该怎么办
2024-02-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录