go|go 安装gin(使用git clone)

安装go包最快捷的方法是go get,一步到位,但是需要,取而代之的方法是用git clone直接把需要的包从github拉下来,也很慢,但至少是可行的~
另外,不是吹牛,用本文的方法安装一次gin,以后想安装其他的go包,相信你也就都可以自己搞定了,嘿嘿
环境 因为使用的是git,所以这种安装方法使用于所有系统(linux,mac,windows),我是在ubuntu上装的。
在安装gin之前我的go环境是安装好了的,如果还没装可以参考这篇ubuntu1604安装go1.13
安装gin需要很多依赖包,但是不用担心,缺少的包在安装过程中会提示的,到时候一个一个装就好了,下面记录一下我的安装全过程。
安装 首先拉取gin包,注意git clone的路径,不能错,如果你以前没有装过github上的包,是不会有/github.com这个文件夹的,需要自己先创建一个

cd $GOPATH/src/github.com/ git clone https://github.com/gin-gonic/gin.git go install github.com/gin-gonic/gin

执行完最后一步,也就是安装,会报很多错,如下图:
go|go 安装gin(使用git clone)
文章图片

可以看到,错误全都是因为缺少必要的包,所以不必担心,一个一个装就可以了。也许你缺的包和我的不一样,也没有关系,我们完全可以根据提示的包名,来确定git仓库的url
首先看第一个缺少的包github.com/golang/protobuf/proto,这个对应的git clone url就是:
cd $GOPATH/src/github.com/golang/ git clonehttps://github.com/golang/protobuf.git

这里不难看出一点规律了,如果提示缺少的包是“path/package”,那么你的获取方式就是下面这样,注意,path不一定存在,如果不存在,你就手动创建一下~
cd $GOPATH/src/path git clonehttps://path/package.git

但这还不够,你可能会问,为什么缺的是protobuf里的proto,但是要把protobuf拉下来,这是因为proto并不是一个完整的项目,它是protobuf的一部分,如果你直接拉proto,像下面这样:
git clonehttps://github.com/golang/protobuf/proto.git

那么结果会是这样的:
go|go 安装gin(使用git clone)
文章图片

正如我所说,proto并不是一个完整的项目,它只是protobuf仓库的一部分,所以你要拉的是protobuf。
但实际情况是,我们也不知道缺的包到底是一个完整的项目,还是其中的一部分,没关系,我们可以尝试,先假设它就是一个完整的包,如果git clone提示不存在,那么就去安装它的上一级,这样试,最后总可以装上~
欧克,装完protobuf,我们再试着go install一下:
go install github.com/gin-gonic/gin

这时的报错是这样的:
go|go 安装gin(使用git clone)
文章图片

虽然还是缺很多包,但是没有再提示我们缺少protobuf了,说明我们装的protobuf包生效了,接下来就是按照上面的方法,继续安装其他缺少的包了~
还想提示一点就是,这个方法并不是只适用于github上的包,我们看上图提示的最后一个缺少的包,是gopkg.in/yaml.v2,并不是github里的,但是没关系,方法完全一样~
cd $GOPATH/src/gopkg.in git clonehttps://gopkg.in/yaml.v2.git

欧克,到这里,所有缺少的包就装完了,再次执行go install,看看效果:
go|go 安装gin(使用git clone)
文章图片

嗯,没有再报任何的错了,到这里gin就算安装完成了~
验证 安装完之后,可以用一个简单的小程序验证一下,在$GOPATH/src路径下,创建testGin.go,写入如下代码:
package mainimport "github.com/gin-gonic/gin"func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }

然后run起来:
go|go 安装gin(使用git clone)
文章图片

前面有一些warning,无所谓,重点是最后一行,程序已经在监听8080端口,说明一个web服务已经起来,接下来,在本机上,调用我们测试demo里写的ping接口:
curl 127.0.0.1:8080/ping

你会发现,收到了你程序里写好的回复~
go|go 安装gin(使用git clone)
文章图片

【go|go 安装gin(使用git clone)】欧克,到这里,gin框架的验证就完成了,可以发现,真的非常简单,接下来你就可以继续去丰富你的接口,使用gin框架写出一个功能丰富的web后端程序啦~

    推荐阅读