安装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
执行完最后一步,也就是安装,会报很多错,如下图:
文章图片
可以看到,错误全都是因为缺少必要的包,所以不必担心,一个一个装就可以了。也许你缺的包和我的不一样,也没有关系,我们完全可以根据提示的包名,来确定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
那么结果会是这样的:
文章图片
正如我所说,proto并不是一个完整的项目,它只是protobuf仓库的一部分,所以你要拉的是protobuf。
但实际情况是,我们也不知道缺的包到底是一个完整的项目,还是其中的一部分,没关系,我们可以尝试,先假设它就是一个完整的包,如果git clone提示不存在,那么就去安装它的上一级,这样试,最后总可以装上~
欧克,装完protobuf,我们再试着go install一下:
go install github.com/gin-gonic/gin
这时的报错是这样的:
文章图片
虽然还是缺很多包,但是没有再提示我们缺少protobuf了,说明我们装的protobuf包生效了,接下来就是按照上面的方法,继续安装其他缺少的包了~
还想提示一点就是,这个方法并不是只适用于github上的包,我们看上图提示的最后一个缺少的包,是gopkg.in/yaml.v2,并不是github里的,但是没关系,方法完全一样~
cd $GOPATH/src/gopkg.in
git clonehttps://gopkg.in/yaml.v2.git
欧克,到这里,所有缺少的包就装完了,再次执行go install,看看效果:
文章图片
嗯,没有再报任何的错了,到这里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起来:
文章图片
前面有一些warning,无所谓,重点是最后一行,程序已经在监听8080端口,说明一个web服务已经起来,接下来,在本机上,调用我们测试demo里写的ping接口:
curl 127.0.0.1:8080/ping
你会发现,收到了你程序里写好的回复~
文章图片
【go|go 安装gin(使用git clone)】欧克,到这里,gin框架的验证就完成了,可以发现,真的非常简单,接下来你就可以继续去丰富你的接口,使用gin框架写出一个功能丰富的web后端程序啦~
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- GO|GO,GO,GO!
- 【Gin】初识go语言Web框架(小白向)
- Go成长之路|go中判断空字符串、nil和len(t)的用法
- go编译tools
- go grpc安装与使用
- goroutine 调度原理
- Go|Go进阶之路——复杂类型
- Go进阶之路——变量