真香系列之 Golang 升級


 

640?wx_fmt=png

Golang 以前的依賴管理一直飽受詬病,社區的方案也層出不窮,比如 vendor, glide, godep 等。之前的依賴管理一直是依靠 GOPATH 或者將依賴代碼下載到本地,這種方式都有劣勢。另外由於特殊的網絡環境,導致谷歌的大部分包都沒有辦法下載。從 Golang 1.11 開始,官方已內置了更為強大的 Go modules 來一統多年來 Go 包依賴管理混亂的局面,從 1.13 開始將成為默認配置。配合 Goproxy 來使用來說,真香。這次配合我之前的 Golang 開源項目 GShark 升級到 1.13,升級花費的時間不超過 5 分鍾,體驗優秀。

升級 Golang 版本

其實升級 Golang 版本是非常簡單的,只要移除之前的 Golang,然后復制新版本的 Golang 就可以了。以我之前的 VPS 為例(CentOS,親測蘋果系統可以使用同樣的方式升級),之前安裝的 Golang 版本是 1.9。

    1.移除舊版本 Golang

rm -rf /usr/local/go

    2.安裝新版本 Golang

wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz	
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

    3.配置 Golang 環境

如果你之前配置過 Golang 的環境,那么你可以找直接升級。主要只是需要配置 GOROOT 以及 GOPATH 即可,對於 1.13 其實這兩個變量已經不是必要的了。不過我發現我在安裝的依賴的時候,出現報錯信息,通過配置 GOROOT 為 /usr/loca/go 即可解決。但有一個配置很重要,就是將 goproxy 設置為國內的代理(這里使用的是七牛雲的代理),這樣你就能體驗飛一般的暢快。

export GOPROXY=https://goproxy.cn,direct

原有代碼升級

之前 gshark 沒有使用任何的依賴管理,完全是通過 GOPATH 存放依賴。這有一個問題,就是項目的依賴做出了不兼容的版本升級,最終導致項目構建失敗。通過 Go modules 可以鎖定依賴版本,從而避免這個問題。以 gshark(https://github.com/neal1991/gshark) 為例進行 Go modules 的升級。

1.mod 初始化

cd 到項目文件夾中

go mod init github.com/neal1991/gshark

    2.查找依賴

go get ./...

只需要兩部就可以升級使用 Go modules 就可以了。

GShark

GShark 是我之前開源的一款 Github 敏感信息監測的系統,之前也有寫過

1.下載代碼

git clone https://github.com/neal1991/gshark

    2.下載依賴

go get ./...

    3.編譯

go build main.go

    4.運行

運行之前需要把 conf 文件夾里面的 app-template.ini 重命名為 app.ini,使用自己的配置即可。

// 啟動 web 服務	
./main web	
// 啟動爬蟲	
./main scan

通過上面幾步就可以啟動 GShark 服務了。GShark 目前僅僅由我一個人維護,希望可以吸收社區優秀的建議,歡迎 PR。可以添加微信 Cafery 加入微信交流群。

總結

雖然說 gorpoxy 以及 modules 都不是 1.13 版本才有的。但是目前這些特性在 1.13 版本已經穩定運行。總的來說,升級到 Go 1.13,真香。

640?wx_fmt=png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM