发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Ubuntu上把Golang写的Web应用打包成一个可执行文件,说穿了很简单,但也有些细节需要注意。下面就把完整的流程拆开讲清楚。

首先要确保系统里有Go环境。如果还没装,一条命令搞定:
sudo apt-get update
sudo apt-get install golang-go
装完之后验证一下:go version,看到版本号就算成了。
接下来需要配置两个环境变量,否则后续编译会找不到路径。打开~/.bashrc或~/.profile,在末尾加上:
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存后记得执行source ~/.bashrc或source ~/.profile才能生效。注意,如果Go是通过其他方式安装的(比如从官网下载的二进制包),GOROOT的值需要对应实际路径,别直接照抄。
新建一个项目目录:
mkdir my-web-app
cd my-web-app
然后创建一个main.go,写一个最简单的HTTP服务器:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
})
http.ListenAndServe(":8080", nil)
}
这段代码在根路径返回“Hello, World!”,端口是8080。先跑一下试试:go run main.go,浏览器访问http://localhost:8080能看见内容,说明应用没问题。
打包的关键是指定目标操作系统和架构。比如我们要在Linux 64位系统上运行,就执行:
GOOS=linux GOARCH=amd64 go build -o my-web-app main.go
这条命令会在当前目录生成一个名为my-web-app的可执行文件。注意-o后面是输出文件名,可以随意起。如果想在Windows或Mac上交叉编译,只需把GOOS改成windows或darwin,GOARCH改成对应的架构(比如arm64)。
直接在终端执行:
./my-web-app
这种程序会默认在前台运行,按Ctrl+C停止。如果想让它后台运行,可以用nohup ./my-web-app &,或者用systemd服务管理。
打包好的my-web-app文件就是一个独立的二进制文件,不依赖Go环境,也不依赖任何额外的运行时。把它复制到目标服务器上,赋予执行权限,直接运行即可。这才是Go的真正优势——单文件部署,零依赖。
当然,实际生产环境通常还会涉及配置文件、静态资源、日志管理等,但核心的打包流程就是上面这几步。把这一步摸透,后续再多复杂的项目也能举一反三。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8