記一次使用第三方庫的坑

zhoulm發表於2020-04-21

記一次使用第三方庫的坑

主要碰到的問題有兩個

  • 第三方庫修復了 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

相關文章