(1)安装Go
参见 Centos7 安装 Go_ling1998的博客-CSDN博客
(2)安装Git(非必需)
若需要从Git上下载源码,需要安装Git,否则可以不安装,参见 Centos7 安装 git_ling1998的博客-CSDN博客
(3)源码文件确认源码文件已经在CentOS系统中,并且源码根目录中有go.mod文件
1、修改配置 (1)查看go环境[root@Tracy gopath]# go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/root/.cache/go-build" GOENV="/root/.config/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/gopath/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/gopath" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GOVCS="" GOVERSION="go1.17.2" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/dev/null" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3771639028=/tmp/go-build -gno-record-gcc-switches"(2)设置GO111MODULE为"on"
若GO111MODULE不为"on",则设置,已经为”on“,不用再设置
[root@Tracy gopath]# export GO111MODULE=on(3)设置GOPROXY代理配置
[root@Tracy gopath]# export GOPROXY=https://goproxy.cn
若不设置代理,在使用go mod时没有任何反应,一直卡,不会下载依赖包。
(4)再次查看Go环境
[root@Tracy testgobuild]# go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/root/.cache/go-build" GOENV="/root/.config/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/gopath/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/gopath" GOPRIVATE="" GOPROXY="https://goproxy.cn" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GOVCS="" GOVERSION="go1.17.2" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/gopath/testgobuild/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2684850528=/tmp/go-build -gno-record-gcc-switches"2、生成可执行文件 (1)进入到源码根目录
[root@Tracy gopath]# cd back-end(2)下载依赖包
[root@Tracy back-end]# go mod tidy go: downloading github.com/ethereum/go-ethereum v1.10.16 go: downloading github.com/gin-gonic/gin v1.7.7 go: downloading github.com/gin-contrib/cors v1.3.1 go: downloading github.com/swaggo/gin-swagger v1.4.1 go: downloading github.com/boltdb/bolt v1.3.1 go: downloading github.com/swaggo/swag v1.8.1 go: downloading github.com/stretchr/testify v1.7.0 go: downloading github.com/davecgh/go-spew v1.1.1 go: downloading golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 go: downloading github.com/gin-contrib/sse v0.1.0 go: downloading github.com/mattn/go-isatty v0.0.14 go: downloading github.com/golang/protobuf v1.5.2 #略去很多很多下载信息......(3)编译生成二进制文件
[root@Tracy back-end]# go build main.go
需要等待一小会,编译完成后,出现生成的二进制文件,如下图所示:
发现linux系统生成的文件比Windows下生成的文件小一些, 下图是Windows下生成的文件
3、运行
[root@Tracy back-end]# ./main [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 /swagger/*any --> github.com/swaggo/gin-swagger.CustomWrapHandler.func1 (4 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.
此时已开启服务,根据服务内容进行验证,如我的服务是一个Web服务,可验证某接囗是否有效访问。



