先聊聊在CentOS上打包Go语言应用这事儿。说白了,就是把Go程序编译成一个可执行文件,这样哪怕目标机器上没有安装Go环境,也能直接跑起来。具体怎么操作?其实就几步,按部就班来就行。

先搞定Go环境——如果系统里还没装Go,直接通过包管理器装上就行:
sudo yum install golang当然,你也可以从官网下载二进制包手动安装,但用yum最省事。
配置GOPATH和GOROOT——这两环境变量很关键。简单来说,
GOPATH指向你的工作空间(里面的src目录放代码),GOROOT指向Go的安装路径。假设都放在默认位置,可以这么设:export GOPATH=$HOME/go export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin如果想每次登录都自动生效,把这三行加到
~/.bash_profile或~/.bashrc里就行。写代码——在
$GOPATH/src下创建项目目录,比如项目名叫myapp,那就建个$GOPATH/src/myapp,然后把Go源文件放进去。编译——进入项目目录,执行
go build:cd $GOPATH/src/myapp go build -o myapp-o myapp指定输出文件名,不加的话默认就是当前目录的基名(也就是myapp)。打包——如果你的应用还依赖了配置文件、静态资源之类的,得一起打包。用
tar或zip都行:tar czvf myapp.tar.gz myapp这样就把可执行文件
myapp压缩到了myapp.tar.gz里。部署——把压缩包传到目标机器,解压后直接运行:
tar xzvf myapp.tar.gz ./myapp搞定,收工。
额外提一句:如果你的应用调用了C库或者其他非Go组件,编译时可能要用到CGO,或者得手动链接。另外,如果目标平台和开发机不同(比如在Linux上编译Windows程序),Go原生支持交叉编译——只要设置GOOS和GOARCH环境变量就行。举个例子,在Linux上为Windows 64位编译:
GOOS=windows GOARCH=amd64 go build -o myapp.exe
这样生成的myapp.exe就能直接在Windows 64位上跑了,真挺方便的。