我刚刚想入坑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")
}
成功
然后是我在csdn的该文章