go安装moudle

1.正常解决方法

一般步骤

1.首先必须设置环境变量GOPATH的路径
GOPATH
例如: D:\go\gopath       (注意去掉末尾的分号)
2.执行命令来安装第三方包。
go get github.com/go-sql-driver/mysql
3.加载安装

这条命令它会把类库包源代码,下载解压到你的 %GOPATH% 路径里面去,
比如:D:\go\gopath\src\github.com\go-sql-driver\mysql

前面是gopath路径,后面是类库,并且它还会同时执行 go install xxx ,生成 D:\go\gopath\pkg\xxxx 这样的包路径。

4.代码引用库

在代码中导入下载的那个第三方包

import (
   "github.com/go-sql-driver/mysql" 
   // 从环境变量:%goPath% 中定义的路径去查找第三方类库
)
显示出安装进程

下载导入路径指定的包及其依赖项,然后安装命名包,即执行go install命令。
用法:go get [-d] [-f] [-t] [-u] [-fix] [-insecure] [build flags] [packages]

标记名称	描述
-d	让命令程序只执行下载动作,而不执行安装动作。
-f	仅在使用-u标记时才有效。该标记会让命令程序忽略掉对已下载代码包的导入路径的检查。如果下载并安装的代码包所属的项目是你从别人那里Fork过来的,那么这样做就尤为重要了。
-fix	让命令程序在下载代码包后先执行修正动作,而后再进行编译和安装。
-insecure	允许命令程序使用非安全的scheme(如HTTP)去下载指定的代码包。如果你用的代码仓库(如公司内部的Gitlab)没有HTTPS支持,可以添加此标记。请在确定安全的情况下使用它。
-t	让命令程序同时下载并安装指定的代码包中的测试源码文件中依赖的代码包。
-u	让命令利用网络来更新已有代码包及其依赖包。默认情况下,该命令只会从网络上下载本地不存在的代码包,而不会更新已有的代码包。
-v	打印出被构建的代码包的名字
-x	打印出用到的命令

2.go get没用

1.什么是gopm

在nodejs中我们有npm,可以通过npm来下载安装一些依赖包。在go中也开发了类似的东西,那就是gopm。

2.gopm地址

git地址:https://github.com/gpmgo/gopm 官方地址:https://gopm.io/gopm 文档路径:https://github.com/gpmgo/docs/tree/master/zh-CN

3.gopm安装

go get -u github.com/gpmgo/gopm 通过这个命令来安装插件,默认的会存放到GOBIN,如果没有配置%GOBIN%环境变量,那么会默认安装到%GOPATH%下的bin目录,为了我们操作方便,我们把GOBIN加到%PATH%下。

4.gopm get

通过gopm get xxx,可以将指定的包下载到gopm的本地仓库~/.gopm/repos(建议使用) 通过'gopm get -g xxx',可以将指定的包下载到GOPATH下。(建议使用) 通过'gopm get -l xxx',可以将指定的包下载到当前所在目录(不常用)

二、国内的go get问题的解决

用gopm get -g代替go get
不采用-g参数,会把依赖包下载.vendor目录下面;
采用-g 参数,可以把依赖包下载到GOPATH目录中;

gopm get -g golang.org/x/net

直接clone github仓库

将github相关仓库 git clonegopath/src/golang.org/x/ 目录下,然后cd 到相应目录执行go install golang.org/x/sys
mkdir -p $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/
git clone https://github.com/golang/sys.git sys
go install golang.org/x/sys

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

参考文献:

go语言简单介绍与module安装

http://tiramisutes.github.io/2019/08/29/go.html

国内的go get问题的解决 --gopm

https://www.jianshu.com/p/db9e6ae0d227