在Ubuntu中打包Golang应用,您可以使用以下步骤:
首先,确保您已经安装了Go。如果没有,请访问https://golang.org/dl/ 下载并安装适用于Ubuntu的Go版本。
使用文本编辑器打开您的Go源代码文件,例如main.go
。
在源代码文件的顶部,添加以下行以设置应用程序的版本和构建时间:
package main
import (
"fmt"
"time"
)
const (
AppName = "MyApp"
AppVersion = "1.0.0"
)
func main() {
fmt.Printf("%s version %s built at %s\n", appName, appVersion, time.Now().Format(time.RFC3339))
}
保存并关闭文件。
打开终端,导航到包含您的Go源代码文件的目录。
运行以下命令以构建适用于Linux的可执行文件:
GOOS=linux GOARCH=amd64 go build -o myapp main.go
这将生成一个名为myapp
的可执行文件。您可以将myapp
替换为您喜欢的任何名称。
go-bindata
工具将依赖项嵌入到可执行文件中。首先,安装go-bindata
:go get -u github.com/go-bindata/go-bindata/...
go-bindata
将依赖项转换为Go源代码:go-bindata -o bindata.go -pkg main .
这将生成一个名为bindata.go
的文件,其中包含所有依赖项的Go源代码。
bindata.go
文件添加到您的Go项目中,并在main.go
文件中导入bindata
包:import (
"github.com/go-bindata/go-bindata"
)
GOOS=linux GOARCH=amd64 go build -o myapp main.go
现在,您应该有一个名为myapp
的可执行文件,其中包含所有依赖项。您可以将此文件复制到其他Linux系统上并运行它,而无需安装Go或其他依赖项。
注意:这些步骤适用于静态编译的Golang应用程序。如果您的应用程序依赖于C库或其他非Go组件,可能需要使用其他方法进行打包。