CentOS与Golang打包的兼容性问题主要有glibc版本不匹配、依赖库缺失等,可通过以下方式解决:
# 示例:基于CentOS 7的Docker编译环境
docker pull centos:7
docker run -it centos:7 /bin/bash
yum install -y gcc wget
wget https://mirrors.ustc.edu.cn/golang/go1.17.13.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.17.13.linux-amd64.tar.gz
export PATH=/usr/local/go/bin:$PATH
GOOS=linux GOARCH=amd64 go build -o app
CGO_ENABLED=0)避免动态库依赖。export CGO_ENABLED=0
go build -o app
go mod tidy清理冗余依赖。libcurl),需在目标CentOS上安装对应开发包:sudo yum install libcurl-devel
chmod +x app。sudo yum install rpm-build
rpmbuild -ba app.spec
关键步骤总结:优先通过Docker构建隔离环境,控制glibc版本;利用Go Modules管理依赖;编译时指定正确的GOOS和GOARCH,并处理文件权限。