CentOS编译Go项目有哪些步骤
导读:在 CentOS 上编译 Go 项目的标准流程 一 准备环境 安装 Go 工具链 使用包管理器安装:在 CentOS 7 执行 sudo yum install -y golang;在 CentOS 8+ 可用 sudo dnf ins...
在 CentOS 上编译 Go 项目的标准流程
一 准备环境
- 安装 Go 工具链
- 使用包管理器安装:在 CentOS 7 执行
sudo yum install -y golang;在 CentOS 8+ 可用sudo dnf install -y golang。 - 或二进制安装:下载 Go 发行包(如 go1.19.5.linux-amd64.tar.gz),解压至 /usr/local:
sudo tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz。
- 使用包管理器安装:在 CentOS 7 执行
- 配置环境变量
- 写入全局配置:
echo 'export GOROOT=/usr/local/go' > > /etc/profile,echo 'export PATH=$PATH:$GOROOT/bin' > > /etc/profile,执行source /etc/profile生效。 - 如使用模块(Go 1.11+ 推荐),可设置
GOPATH=$HOME/go并将$GOPATH/bin加入 PATH(可选)。
- 写入全局配置:
- 验证安装:
go version应输出版本号,如 go1.19.5 linux/amd64。
二 获取代码与依赖
- 进入项目目录:
cd /path/to/your/project。 - 使用 Go Modules(推荐):在项目根目录执行
go mod init < module-name>(若已有 go.mod 可跳过),然后go get ./...拉取依赖。 - 非模块项目:可按需设置
GOPATH并将代码放入$GOPATH/src下(旧项目常见做法)。
三 编译与交叉编译
- 本机编译(运行环境与目标一致时):
go build -o myapp main.go或使用模块时直接go build,生成当前平台可执行文件。 - 交叉编译(在开发机为 Linux 目标构建):
- Linux amd64:
GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64 main.go - Windows amd64:
GOOS=windows GOARCH=amd64 go build -o myapp.exe main.go - macOS amd64:
GOOS=darwin GOARCH=amd64 go build -o myapp-darwin-amd64 main.go
提示:交叉编译时无需在目标平台安装 Go,产物为静态二进制,便于部署。
- Linux amd64:
四 产物打包与分发
- 压缩归档:
tar -czvf myapp.tar.gz myapp config.yaml,使用scp或rsync上传至服务器。 - 服务器侧解压与授权:
tar -xzvf myapp.tar.gz & & chmod +x myapp。 - 可选 RPM 打包:使用
rpmbuild编写 SPEC 文件并构建,便于在 CentOS 环境内标准化分发与安装。
五 运行与进程管理
- 直接运行:
./myapp;后台运行:nohup ./myapp > app.log 2> & 1 &。 - 生产级托管:使用 Systemd 管理服务。示例
/etc/systemd/system/myapp.service:
常用命令:[Unit] Description=My Go Application After=network.target [Service] User=youruser Group=yourgroup ExecStart=/path/to/myapp Restart=always Environment=GO_ENV=production [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload & & sudo systemctl start myapp & & sudo systemctl enable myapp;查看状态与日志:systemctl status myapp、journalctl -u myapp -f。 - 开放端口(如监听 8080):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent & & sudo firewall-cmd --reload。 - 容器化可选:使用官方镜像构建并运行
构建与运行:FROM golang:1.18 WORKDIR /app COPY . . RUN go build -o myapp main.go EXPOSE 8080 CMD ["./myapp"]docker build -t myapp .;docker run -p 8080:8080 myapp。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS编译Go项目有哪些步骤
本文地址: https://pptw.com/jishu/770720.html
