$GOPATH默认位置
| 操作系统 | 默认路径示例 | 环境变量表示法 |
|---|---|---|
| macOS | /Users/用户名/go | $HOME/go |
| Linux | /home/用户名/go | $HOME/go |
| Windows | C:\Users\用户名\go | %USERPROFILE%\go |
not a valid zip file
github.com/shirou/gopsutil/process: zip: not a valid zip file
此类问题多是因为GOPROXY所导致。
使用https://mirrors.aliyun.com/goproxy/,direct的时候,在进行go build/go mod tidy等指令时就会出现此错误。
换成https://goproxy.cn,direct即可。
1 | mkdir go-example && cd go-example |
设置goland本身的代理

使用vendor(GOPATH模式正在逐步淘汰, 新项目不建议使用)
目录结构
1 | $GOPATH/src |
注意点
- 模块
<main>指得是你的app的main模块名字,当然也可以使用appname作为目录名,但是这里面的文件例如main.go必须用main作用package name,因为这个模块是应该main模块的;(相比较其他的appmodule1,appmodule2,他们的模块名也应该是路径名) - vender必须在模块目录下面,例如
main/vendor,而不能在GOPATH/src目录下面。
go编译办法
这和当前工作路径相关:
如果当前路径在$GOPATH/src,或者其子目录下面,那么vendor有效。
PWD=$GOPATH/src/main: go buildPWD=$GOPATH/src: go build -o <myapp> main/main.go
如果当前路径不在$GOPATH/src,或者其子目录下面,那么vendor无效,因为使用的是module依赖,而不是vendor依赖包管理了。
go get的时候遇到unrecognized import path "golang.org/x/net/html"提示
在
$GOPATH目录的src文件夹内建立如下目录golang.org/x, 然后git clone https://github.com/golang/net到这里即可。
package google.golang.org/protobuf/proto: unrecognized import path "google.golang.org/protobuf/proto"
1、将 google.golang.org/protobuf 包对应的github上的地址git或下载下来,github地址:
git clone https://github.com/protocolbuffers/protobuf-go protobuf
2、在在Go的"$GOPATH"目录的src目录下,创建“google.golang.org” 目录;
3、将下载或git文件的protobuf-go/目录下的全部内容clone到上面创建的google.golang.org目录下。
记录解决golang操作es时证书安全验证问题
注: go-es包使用的是https://github.com/olivere/elastic
当es配置了ssl,但是证书是自签证书,那可能在操作初始化es-client时候会报这样错误
certificate signed by unknown authority
这个问题我在issue中找到了答案

可以通过配置httpclient来忽略ssl验证
最终改造结果如下
1 | var client *elastic.Client |
1 | var err error |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!