栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CentOS7 部署 Golang 源码

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS7 部署 Golang 源码

0、前提条件

(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服务,可验证某接囗是否有效访问。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827406.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号