Golang打包go项目部署到linux服务器正确方法

 更新时间:2023年10月18日 16:46:15   作者:程序员阿诺斯  
这篇文章主要给大家介绍了关于Golang打包go项目部署到linux服务器的正确方法,Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易,具有简洁、快速、安全,并行、有趣、开源,内存管理、v数组安全、编译迅速的特征,需要的朋友可以参考下

网上方法

我们可以在终端中输入以下代码:

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o main-linux main.go

然后就会生成main-linux的二进制可执行文件,然后我们就可以将main-linux放到服务器中的任一目录中,然后我们就可以执行以下命令运行。

> chmod 777 main-linux
> ./main-linux

这是我们在网上可以搜索到的方法,但是我相信很多人通过这个方法尝试后发现,它并不能运行。我相信大家应该遇到过这种情况。

正确方法

我们在终端以下代码查看:

go env

我们可以看到以下内容:

set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\86184\AppData\Local\go-build
set GOENV=C:\Users\86184\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\86184\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\86184\go;E:\go\go;E:\go\go\lib
set GOPRIVATE=
set GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
set GOROOT=E:\go\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=E:\go\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.18.2
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\桌面\后台\awe\go.mod
set GOWORK=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\86184\AppData\Local\Temp\go-build3107814947=/tmp/go-build -gno-record-gcc-switches

我们可以看到,GOOS依然是windows,所以我们早linux运行windows的执行文件,自然无法正常执行。下面是正确的方法:

$env:GOOS="linux"
go build -o main-linux main.go

然后在服务器端执行

chmod 777 main-linux
./main-linux

如果想让其在后台运行可以执行:

setsid ./main-linux

总结 

到此这篇关于Golang打包go项目部署到linux服务器的文章就介绍到这了,更多相关Golang打包部署linux服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Golang标准库os/exec执行外部命令并获取其输出包代码示例

    Golang标准库os/exec执行外部命令并获取其输出包代码示例

    这篇文章主要为大家介绍了Golang标准库os/exec执行外部命令并获取其输出包代码示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • golang实现一个简单的websocket聊天室功能

    golang实现一个简单的websocket聊天室功能

    这篇文章主要介绍了golang实现一个简单的websocket聊天室功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • 浅析golang github.com/spf13/cast 库识别不了自定义数据类型

    浅析golang github.com/spf13/cast 库识别不了自定义数据类型

    这篇文章主要介绍了golang github.com/spf13/cast库识别不了自定义数据类型,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • go语言实现一个最简单的http文件服务器实例

    go语言实现一个最简单的http文件服务器实例

    这篇文章主要介绍了go语言实现一个最简单的http文件服务器的方法,实例分析了Go语言操作http的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Golang使用ini库读取配置详情

    Golang使用ini库读取配置详情

    这篇文章主要介绍了Golang使用ini库读取配置详情,go-ini是一个非常方便、高效的go配置文件操作库。使用它在项目中读取和修改配置文件,下文相关资料需要的小伙伴可可以参考一下
    2022-04-04
  • golang架构设计开闭原则手写实现

    golang架构设计开闭原则手写实现

    这篇文章主要为大家介绍了golang架构设计开闭原则手写实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • go语言中的log 包示例详解

    go语言中的log 包示例详解

    Go语言的log包提供了用于记录日志的基本功能,相比fmt包,增加了时间戳、日志级别等日志管理功能,非常适合用于调试和记录运行信息,本文呢介绍go语言中的log 包,感兴趣的朋友一起看看吧
    2024-11-11
  • go连接kafka的实现示例

    go连接kafka的实现示例

    本文主要介绍了go连接kafka的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 使用go net实现简单的redis通信协议

    使用go net实现简单的redis通信协议

    本文主要介绍了go net实现简单的redis通信协议,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Golang之模糊测试工具的使用

    Golang之模糊测试工具的使用

    本文主要介绍了Golang之模糊测试工具的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论