Golang 1.19 最新Linux Gin框架安装教程

139 阅读1分钟

我刚刚想入坑gin但发现好多教程都是旧版go的,问gpt也是一样无果。在尝试好半天后终于成功,下面是我总结的安装教程

1. 安装更新apt

apt update来确保你的软件包列表是最新的,然后运行apt upgrade来实际更新软件包。

apt update
apt upgrade
2. 安装go
apt install golang

然后验证是否下载成功

go
3.设置go国内镜像源
cd /
export GOPROXY=https://goproxy.cn,direct
4.找到你的GOROOT路径, 然后进入它的src
 go env GOROOT
cd $(go env GOROOT)/src
5.安装Gin
go mod init gin
go mod tidy
go install github.com/gin-gonic/gin
go mod vendor
go get github.com/gin-gonic/gin

恭喜,安装完毕

下面是我的机器上的gin安装记录

root@rc:cd $(go env GOROOT)/src

root@rc:/usr/share/go-1.19/src# go mod init gin
go: creating new go.mod: module gin
go: to add module requirements and sums:
        go mod tidy

root@rc:/usr/share/go-1.19/src# go mod tidy

root@rc:/usr/share/go-1.19/src# go install github.com/gin-gonic/gin
go: inconsistent vendoring in /usr/share/go-1.19/src:
        golang.org/x/crypto@v0.0.0-20220516162934-403b01795ae8: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
        golang.org/x/net@v0.0.0-20230214200805-d99f623d45a4: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
        golang.org/x/sys@v0.0.0-20220614162138-6c1b26c55098: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod
        golang.org/x/text@v0.3.8-0.20220509174342-b4bca84b0361: is marked as explicit in vendor/modules.txt, but not explicitly required in go.mod

        To ignore the vendor directory, use -mod=readonly or -mod=mod.
        To sync the vendor directory, run:
                go mod vendor

root@rc:/usr/share/go-1.19/src# go mod vendor
go: no dependencies to vendor

root@rc:/usr/share/go-1.19/src# go install github.com/gin-gonic/gin
no required module provides package github.com/gin-gonic/gin; to add it:
        go get github.com/gin-gonic/gin

root@rc:/usr/share/go-1.19/src# go get github.com/gin-gonic/gin

go: downloading github.com/bytedance/sonic v1.11.6
go: downloading github.com/goccy/go-json v0.10.2
go: downloading github.com/json-iterator/go v1.1.12
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading github.com/modern-go/reflect2 v1.0.2
go: downloading github.com/cloudwego/base64x v0.1.4
go: downloading golang.org/x/arch v0.8.0
go: downloading github.com/bytedance/sonic/loader v0.1.1
go: downloading github.com/twitchyliquid64/golang-asm v0.15.1
go: downloading github.com/klauspost/cpuid/v2 v2.2.7
go: downloading github.com/cloudwego/iasm v0.2.0
go: added github.com/bytedance/sonic v1.11.6
go: added github.com/bytedance/sonic/loader v0.1.1
go: added github.com/cloudwego/base64x v0.1.4
go: added github.com/cloudwego/iasm v0.2.0
go: added github.com/gabriel-vasile/mimetype v1.4.3
go: added github.com/gin-contrib/sse v0.1.0
go: added github.com/gin-gonic/gin v1.10.0
go: added github.com/go-playground/locales v0.14.1
go: added github.com/go-playground/universal-translator v0.18.1
go: added github.com/go-playground/validator/v10 v10.20.0
go: added github.com/goccy/go-json v0.10.2
go: added github.com/json-iterator/go v1.1.12
go: added github.com/klauspost/cpuid/v2 v2.2.7
go: added github.com/leodido/go-urn v1.4.0
go: added github.com/mattn/go-isatty v0.0.20
go: added github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: added github.com/modern-go/reflect2 v1.0.2
go: added github.com/pelletier/go-toml/v2 v2.2.2
go: added github.com/twitchyliquid64/golang-asm v0.15.1
go: added github.com/ugorji/go/codec v1.2.12
go: added golang.org/x/arch v0.8.0
go: added golang.org/x/crypto v0.23.0
go: added golang.org/x/net v0.25.0
go: added golang.org/x/sys v0.20.0
go: added golang.org/x/text v0.15.0
go: added google.golang.org/protobuf v1.34.1
go: added gopkg.in/yaml.v3 v3.0.1



下面是我的helloworld测试

package main
 
import (
    "github.com/gin-gonic/gin"
    "net/http"
)
 
func main() {
    router := gin.Default()
    router.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })
    router.Run(":80") 
}

成功

image.png

然后是我在csdn的该文章