商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > ubuntu里golang打包怎么做

ubuntu里golang打包怎么做

  发布于2026-07-03 阅读(0)

扫一扫,手机访问

在 Ubuntu 系统里用 Go 语言打包应用程序,其实核心流程并不复杂。下面就把整个流程拆解开,一步步说清楚。

ubuntu里golang打包怎么做

1. 安装 Go 环境

前提是系统里已经装好了 Go。如果还没装,用下面这行命令就能搞定:

sudo apt update
sudo apt install golang-go

装完之后验证一下:

go version

2. 编写 Go 程序

假设你手头已经有一个 Go 应用,典型的项目结构长这样:

myapp/
├── main.go
└── go.mod

3. 打包应用程序

3.1 编译为可执行文件

在项目根目录下,运行下面这条命令就能编译出一个可执行文件:

GOOS=linux GOARCH=amd64 go build -o myapp main.go
  • GOOS=linux 指定目标系统为 Linux。
  • GOARCH=amd64 指定目标架构为 amd64(你也可以换成 armarm64 等)。
  • -o myapp 指定输出文件名。

3.2 打包为静态链接(可选)

如果你希望生成的可执行文件完全不依赖外部的 Go 运行时库,可以用静态编译:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o myapp main.go
  • CGO_ENABLED=0 关闭 CGo,确保静态链接。
  • -a 强制重新编译所有包。
  • -installsuffix cgo 给安装的包加个后缀,避免和动态链接库冲突。

4. 打包为压缩文件

编译好的可执行文件,可以打个包方便分发:

cd ..
tar -czvf myapp.tar.gz myapp

5. 使用 Snap 或 Flatpak 打包(可选)

如果你想让应用支持 Snap 或 Flatpak 格式,可以用对应的工具来处理。

5.1 打包为 Snap

先安装 Snapd 和 snapcraft:

sudo apt install snapd snapcraft

然后创建一个 snapcraft.yaml 配置文件:

name: myapp
version: '1.0'
summary: 简要描述你的应用
description: 详细描述你的应用
base: core20
parts:
  myapp:
    plugin: dump
    source: .
    stage-packages:
      - libgo
apps:
  myapp:
    command: myapp

运行以下命令构建 Snap 包:

snapcraft

生成的包会在 snap/myapp/current 目录下。

5.2 打包为 Flatpak

先安装 Flatpak 和 flatpak-builder:

sudo apt install flatpak flatpak-builder

然后创建 flatpak-builder.json 配置文件:

{
  "build-system": "flatpak-builder",
  "shell": true,
  "sources": [
    {
      "type": "local",
      "url": ".",
      "ref": "myapp"
    }
  ],
  "applications": [
    {
      "name": "myapp",
      "command": "myapp"
    }
  ],
  "modules": [
    {
      "name": "org.golang.Go",
      "build": {
        "type": "source",
        "url": "https://github.com/golang/go.git",
        "ref": "go1.20"
      }
    }
  ]
}

运行构建命令:

flatpak-builder --repo=myapp myapp flatpak-builder.json

最终生成的 Flatpak 包位于 myapp/ 目录下。

6. 分发应用程序

把打包好的压缩文件、Snap 包或 Flatpak 包上传到应用商店,或者通过其他渠道分发出去即可。

总结

以上就是在 Ubuntu 系统中用 Go 语言打包应用程序的完整流程。根据你的实际需求,选择最适合的打包方式和格式就行。

本文转载于:https://www.yisu.com/ask/32268442.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注