Go 1.12安裝beego問題解決

最近需要用beego編寫程序,這里是環(huán)境搭建的踩坑記錄。想看解決方案的直接滑到最下面即可。

省流一句話描述:遠(yuǎn)離GOPATH,否則會(huì)變得不幸,擁抱go mod,擁抱快樂!

環(huán)境

  • go 1.12
  • Ubuntu 20.04

踩坑記錄

本次目的是安裝beego和bee,然后啟動(dòng)一個(gè)簡(jiǎn)單的http服務(wù)

在嘗試了無數(shù)次go get github.com/astaxie/beegogo get -u github.com/beego/bee后,收獲了各種百度不到的錯(cuò)誤,如下所示:
錯(cuò)誤1:

dubito@ubuntu:~$ go get github.com/astaxie/beego
# github.com/prometheus/procfs/internal/util
golib/src/github.com/prometheus/procfs/internal/util/parse.go:69:15: undefined: os.ReadFile
golib/src/github.com/prometheus/procfs/internal/util/parse.go:78:15: undefined: os.ReadFile
golib/src/github.com/prometheus/procfs/internal/util/readfile.go:36:9: undefined: io.ReadAll
# github.com/prometheus/common/expfmt
golib/src/github.com/prometheus/common/expfmt/text_create.go:46:27: undefined: io.Discard

錯(cuò)誤2:執(zhí)行完命令控制臺(tái)無任何輸出
錯(cuò)誤3:

dubito@ubuntu:~$ go get -u github.com/beego/bee
package github.com/beego/bee: cannot find package "github.com/beego/bee" in any of:
    /usr/local/go/src/github.com/beego/bee (from $GOROOT)
    /home/dubito/golib/src/github.com/beego/bee (from $GOPATH)

在嘗試通過export GOPROXY=https://goproxy.io設(shè)置GOPROXY后依然如此,嘗試用wireshark抓了下包,發(fā)現(xiàn)并沒有走設(shè)置的代理。

在網(wǎng)上百度了一圈,解決的方法嘗試了個(gè)遍也沒用,還看到有人說直接換go 1.13問題解決,不過很明顯咱不能換環(huán)境,于是痛定思痛,決定換go mod模式。

通過命令行export GO111MODULE=on打開go mod模式,然后再次運(yùn)行命令go get github.com/astaxie/beego,收獲了不一樣的bug(控制臺(tái)輸出太長(zhǎng),這里截取一部分關(guān)鍵信息):

dubito@ubuntu:~$ go get github.com/astaxie/beego
go: finding github.com/cloudflare/golz4 latest
.......
go get: upgrading github.com/alicebob/miniredis@v2.5.0+incompatible: unexpected status (https://goproxy.io/github.com/alicebob/miniredis/@v/list): 404 Not Found
go: finding google.golang.org/genproto latest
......
go: finding github.com/cncf/udpa/go latest
go get: upgrading gopkg.in/fsnotify.v1@v1.4.7: unexpected status (https://goproxy.io/gopkg.in/fsnotify.v1/@v/list): 404 Not Found
go: finding github.com/pkg/diff latest
......
go: finding github.com/ajstarks/deck latest
go get: error loading module requirements

可以看到,歷經(jīng)千辛萬苦,最終拋出了一個(gè)go get: error loading module requirements的error,期間還夾雜了各種404,不過萬幸的是這個(gè)請(qǐng)求終于走我們?cè)O(shè)置的代理了。

于是決定再換個(gè)方法,也是最終成功解決問題的方案。

成功方案

首先通過命令行export GO111MODULE=on打開go mod模式,并通過export GOPROXY=https://goproxy.io設(shè)置GOPROXY。

隨意找個(gè)地方,執(zhí)行如下命令初始化go mod:

mkdir test
cd test
go mod init test

然后就可以看到生成了一個(gè)go.mod文件:

dubito@ubuntu:~/test$ ls
go.mod

然后新建文件server.go,復(fù)制粘貼以下內(nèi)容:

package main

import "github.com/astaxie/beego"

func main() {
   beego.Run()
}

然后在當(dāng)前目錄執(zhí)行命令運(yùn)行文件:

go run server.go

就可以看到beego自動(dòng)下載,程序運(yùn)行成功,并成功運(yùn)行了http服務(wù):


beego安裝成功

所以其他項(xiàng)目同理,只需要使用go mod模式直接運(yùn)行即可,不需要額外安裝依賴。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容