原创分享 记一次使用第三方库的坑

zhoulm · 2020年04月21日 · 2091 次阅读
本帖已被设为精华帖!

记一次使用第三方库的坑

主要碰到的问题有两个

  • 第三方库修复了 bug,但是没打包。导致引用后问题还在
  • GOPROXY 设置错误问题。如果你用的是https://goproxy.io,go>=go 1.13 和 go<=1.12 GOPROXY 的设置有所区别

下面是解决过程:

需要写一个文件监控的程序。找到了第三方的库https://github.com/hpcloud/tail

碰到的 go mod 打包不过去的问题:

build github/knight/learn-go/day11/05tail_demo: cannot load gopkg.in/fsnotify.v1: cannot find module providing package gopkg.in/fsnotify.v1

去 google 上找 providing package gopkg.in/fsnotify.v1问题。发现是gopkg.in/fsnotify.v1这个包改了名字了。

然后我去github.com/hpcloud/tail源码上查看,发现第三方修复了该问题。

image-20200421101543915

但是我本地包里面还是原来地址。

然后去就去下载 github release 里面的文件。

image-20200421101332921

解压一看 release 文件的代码还是老的。也就是是说修复之后没有打包新的 release。

坑爹呢!

只能手动修改下载的源码文件

image-20200421101819090

有两处需要修改

image-20200421101946046

然后 go build。又报下面的这个错误

image-20200421102523228

找了半天发现是 GOPROXY 的配置有问题。我用的 go 版本是 go1.13.9。

如果要配置内容参考下图:

image-20200421102651731

而我的 GOPROXY 是

image-20200421102734080

修改 GOPROXY

# windows
set GOPROXY=https://goproxy.io,direct
# mac 或者linux
export GOPROXY=https://goproxy.io,direct

还有一种方案是换一个 GOPROXY 源

# 这个是七牛云的源
# windows
set GOPROXY=https://goproxy.cn
# mac 或者linux
export GOPROXY=https://goproxy.cn
# 这个是阿里的源
# windows
set GOPROXY=https://mirrors.aliyun.com/goproxy/
# mac 或者linux
export GOPROXY=https://mirrors.aliyun.com/goproxy/

第一种和七牛云的源都试了,可以编译成功。

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
astaxie 将本帖设为了精华贴 04月21日 17:24
moss GoCN 每日新闻 (2020-04-22) 中提及了此贴 04月22日 10:27
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册