Linux 安装Go和配置环境,以及gin的安装
一直忘记一些细节,所以写了这个文章。希望能帮到各位,也希望你们不会遇到一些奇奇怪怪的bug
1. 下载安装Go开发包 和 配置开发环境
1.1 下载Go开发包
首先去Golang官网去复制Linux
的下载链接,
1
|
官网链接: "https://golang.google.cn/dl/"
|
这里我会放出来我下载的版本 ( 下载链接 )
1
|
https://golang.google.cn/dl/go1.17.7.linux-amd64.tar.gz
|
把安装包下载到local
目录下:
打开local
目录的代码如下
1
|
[root@VM-0-7-centos ~]# cd /usr/local/
|
下载代码
1
|
[root@VM-0-7-centos local]# wget https://golang.google.cn/dl/go1.17.7.linux-amd64.tar.gz
|
1.2 安装Go开发包
安装Go开发包
1
|
[root@VM-0-7-centos ~]# tar -zxvf go1.17.7.linux-amd64.tar.gz
|
安装完成后输入ls
查看目录里的文件,会多出来一个go
目录
这里不要着急用 go version 查看版本,因为安装的时候不是全局安装,所以自然看不到
1.3 建立工作区
Go的代码必须在工作区内,工作区就是一个目录,包含三个子目录分别是:
目录名称 |
意思 |
src |
里面的每一个子目录,就是一个包,包里包含源代码 |
pkg |
编译后生成的,包的目标文件 |
bin |
生成的可执行文件,Windows是.exe 这样的 |
我们在/home
目录下,建立一个目录(文件夹,名字随意只要不是关键字就好),然后在目录里面建立三个子文件夹,也就是上表中所述的。
1
2
3
4
5
6
7
8
9
10
|
// 跳转到home目录
[root@VM-0-7-centos ~]# cd /home
// 创建工作区(目录)
[root@VM-0-7-centos home]# mkdir GoJob
// 进入创建的目录!!!
[root@VM-0-7-centos home]# cd GoJob/
// 创建子目录
[root@VM-0-7-centos ChargeCloud]# mkdir pkg
[root@VM-0-7-centos ChargeCloud]# mkdir src
[root@VM-0-7-centos ChargeCloud]# mkdir bin
|
输入ls
查看创建的文件
1.4 配置PATH环境变量 和 设置GOPATH环境变量
使用vim
编辑器打开/etc/profile
,这是linux
的环境变量设置
1
|
[root@VM-0-7-centos ChargeCloud]# vim /etc/profile
|
打开后按键盘上的[i]
键进行编辑
往里加入以下三行代码
1
2
3
|
export GOROOT=/usr/local/go ##Golang安装目录
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/GoJob ##Golang项目目录
|
编辑完成后按键盘上的 ESC
然后输入 :wq
保存退出
如果你在此过程中失误导致无法退出,可以输入:qa
强制退出
退出后执行以下命令,使环境变量立即生效(一般情况下要重启生效)
1
|
[root@VM-0-7-centos ChargeCloud]# source /etc/profile
|
之后再输入以下代码查看环境变量配置是否正常
1
|
[root@VM-0-7-centos local]# go env
|
正常情况下会输出如下述注释一样的代码,表示成功
1
2
3
4
|
//在我这个方法中,只要你输入以下代码输出版本号就表示成功,因为我们没有全局安装go开发包
[root@VM-0-7-centos local]# go version
//我的设备输出:
// go version go1.17.7 linux/amd64
|
如果出现错误,请仔细查看你写的命令行代码!!!
如果你是刚接触linux的或者go语言的初学者,建议不要直接修改上述代码,切记,心急吃不了热豆腐~
2. 下载安装并使用go-gin框架
这里我配上官网的开发文档,我写的再好都不比官网简单明了~
Go-gin 开发文档
目前好像对go开发包有要求,请确保你的go开发包是 Go 1.13 以上版本
如何查看我的go开发包版本? 在命令行输入:go version 即可
下载前说明
在安装之前,有必要说明一下,因为国内特殊的网络环境。我们无法直接访问外网,这就表示也无法从外网下载东西,而Go也是国外公司开发的,下载失败是常有的事情。
下载前需要先改用国内镜像源:
1
2
|
[root@VM-0-7-centos local]# export GO111MODULE=on
[root@VM-0-7-centos local]# export GOPROXY=https://goproxy.cn
|
有时候国内镜像源也会失效,这时候去百度搜索golang
国内镜像源找一个换就行
搜索的时候,记得从搜索设置里把时间段调成最近一个月的,不然白费力气!
还需要注意的是
gin
框架安装前需要先创建一个项目!!!!!
使用如下命令快速跳转到src
目录中
1
|
[root@VM-0-7-centos ~]# cd $GOPATH/src
|
创建一个github.com目录(这个你可以研究一下Go的目录结构)并进入里面
1
2
|
[root@VM-0-7-centos ~]# mkdir github.com
[root@VM-0-7-centos ~]# cd github.com
|
再次创建一个项目,我在此命名为:myProject
(我的项目)并进入里面
1
2
|
[root@VM-0-7-centos github.com]# mkdir myProject
[root@VM-0-7-centos github.com]# cd myProject
|
最关键的一步:进到新创建的项目中(myProject
),初始化项目
1
|
[root@VM-0-7-centos myProject]# go mod init myProject
|
okay了,现在你可以进行下一步,如果你原本就有项目也可以不执行这一步
下载并安装go-gin
1
|
[root@VM-0-7-centos local]# go get -u github.com/gin-gonic/gin
|
此时如果你没有出错的话应该是安装完成了
显示服务器回调值为空就去换一个镜像源,可别犯傻给你的设备弄一个梯子,因为服务器用不到你的梯子。如果你是安装到本地的linux
中那当我在放屁就行~
测试安装的go-gin
新建一个main.go
的文件,然后用vim编辑器打开
1
2
|
[root@VM-0-7-centos myProject]# touch main.go
[root@VM-0-7-centos myProject]# vim main.go
|
往里面写入以下代码:
按 i
键即可进入编辑模式
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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() // 监听并在 0.0.0.0:8080 上启动服务
}
|
按ESC 再输入:wq 保存并退出编辑器
执行程序
1
|
[root@VM-0-7-centos myProject]#go run main.go
|
输出以下代码即表示你已经安装成功了
1
2
3
4
5
6
7
8
9
10
11
|
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /ping --> main.main.func1 (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080
|
很高兴能帮到你~ 如果过程中因为我的教程出现任何问题 请加QQ:3267362309 联系我哟~