Golang安装gin库的详细教程及错误解决方法

Gin是用Go(Golang)编写的Web框架。 它具有类似于martini的API,其性能比httprouter快40倍。 如果您需要性能和良好的生产率,您会喜欢Gin。

截止到这篇文章发布,gin的最新版本为v1.5.0,作者将根据官方提供的安装说明进行装操作。

首先需要安装Go(需要1.11+版本)。

由于作者的go版本为1.7.1,无法满足gin的安装要求,故需要先将go更新到1.11以上。

如果你的go版本达到了1.11或以上,请忽略这步。

你可以通过以下命令查看你的go版本:

go version

首先,卸载go1.7。

作者使用的是Debian系统;使用以下命令进行删除:

apt-get remove golang-1.7
apt-get remove golang-1.7-go
apt-get remove golang-1.7-doc
apt-get remove golang-1.7-src

等待安装完成,使用go version查看版本信息。

这里作者碰到一个错误,使用go命令时,系统无法找到路径,这是因为安装路径发生了变化,需使用命令:

ln -s /usr/lib/go-1.11/bin/go /usr/bin/go

再执行go version显示版本信息,表示安装成功。

至此go的更新完成。

现在开始着手安装gin。安装gin前,需确保已经安装git,如未安装后面会报错。使用命令:

apt-get install git

使用下面命令开始安装gin:

go get -v github.com/gin-gonic/gin

等待命令完成。

如果你采用了科学上网,上面的安装过程应该不会有错误。

如果没有采用科学上网的方法,你会碰到下列情况:

github.com/gin-gonic/gin (download)
github.com/gin-contrib/sse (download)
github.com/go-playground/validator (download)
github.com/go-playground/universal-translator (download)
github.com/go-playground/locales (download)
github.com/leodido/go-urn (download)
github.com/golang/protobuf (download)
github.com/ugorji/go (download)
Fetching https://gopkg.in/yaml.v2?go-get=1
Parsing meta tags from https://gopkg.in/yaml.v2?go-get=1 (status code 200)
get "gopkg.in/yaml.v2": found meta tag get.metaImport{Prefix:"gopkg.in/yaml.v2", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v2"} at https://gopkg.in/yaml.v2?go-get=1
gopkg.in/yaml.v2 (download)
github.com/mattn/go-isatty (download)
Fetching https://golang.org/x/sys/unix?go-get=1
https fetch failed: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" (https fetch: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

很明显,有部分文件下载失败了,其原因是golang.org在国内是无法访问的,不过没关系,就算不翻墙也有办法安装。往下看:

虽然我们无法访问 golang.org ,但我们可以访问github.com,需要从golang.org上下载的文件在github.com上都有。我们只需要把文件下载下来并放到指定位置即可。

这时进入$GOPATH目录(可输入命令go env查看),默认都是/root/go/src/,建立文件夹并git clone:

cd /root/go/src
mkdir -p golang.com/x
cd golang.com/x
 
git clone https://github.com/golang/sys.git

等待完成。

安装完成后来测试一下能否使用:

下面是官方给出的示例代码:

package main

import “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 (for windows “localhost:8080”)
}

如无报错,则表示编译成功,意味着gin已正确安装。

运行程序,现在你可以使用浏览器打开http://127.0.0.1:8080/ping 查看效果了。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1355.html

分类: 计算机技术
推荐阅读:
Python min()函数 min() 是 Python 的内置函数之一,用于返回给定可迭代对象中的最小值。该函数可以接受多个参数,也可以接受一个可迭代对象作为参数。
pip和pip3有什么区别,用哪个? pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。
C语言toupper()函数:将字符转换成大写 toupper()是C语言标准库中的一个函数,用于将一个字符转换成对应的大写形式;如果传入的字符参数是一个小写字母,tolower()函数会返回其对应的大写字母;如果参数不是小写字母,则原封不动的返回;
Python实现斐波那契数列(使用通项公式) 本文将使用Python编写程序,根据斐波那契数列的通项公式得出第n项的值;
Golang中如何表示无穷大 在Golang中,可以使用math包中的Inf函数来表示无穷大;具体来说,使用math包中的Inf(1)表示正无穷大,Inf(-1)表示负无穷大。
C语言计算数组元素数量 使用sizeof()函数计算整个数组的内存占用大小,再计算单个元素的内存占用大小;以总内存占用大小除以单个元素的内存占用大小,得到的就是元素数量;