在CentOS上安装Go是管理Golang项目的基础。推荐通过官方二进制包安装,步骤如下:
wget获取Go安装包(以1.20版本为例),解压至/usr/local目录:wget https://golang.org/dl/go1.20.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
~/.bashrc(或/etc/profile),添加以下内容以设置GOROOT(Go安装路径)、GOPATH(工作区路径)和PATH(可执行文件路径):export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
执行source ~/.bashrc使配置生效。go version,若输出Go版本信息(如go version go1.20 linux/amd64),则说明安装成功。Go Modules是Go 1.11+的官方依赖管理工具,能精准控制项目依赖版本。操作步骤如下:
go mod init,生成go.mod文件(记录模块名和依赖版本):mkdir myproject && cd myproject
go mod init github.com/yourusername/myproject # 替换为你的项目导入路径
github.com/gin-gonic/gin)后,运行go mod tidy,Go会自动下载依赖并更新go.mod和go.sum(依赖校验文件):go mod tidy
go get -u更新所有依赖,或go get -u <package>更新指定依赖(如go get -u github.com/gin-gonic/gin)。go mod tidy会自动移除go.mod中未使用的依赖,保持文件整洁。遵循Go的约定俗成目录结构,提升项目可维护性:
$GOPATH(默认~/go)包含三个子目录:
src/:存放项目源代码(如$GOPATH/src/github.com/yourusername/myproject);pkg/:存放编译后的依赖包(.a文件);bin/:存放编译后的可执行文件。$GOPATH/src下(如github.com/yourusername/myproject),避免路径混乱。go run命令快速运行项目(无需生成可执行文件):go run main.go # 假设项目根目录下有main.go文件
go build生成可执行文件(如myproject),然后运行:go build -o myproject # 生成可执行文件
./myproject # 运行可执行文件
GOOS和GOARCH环境变量:GOOS=windows GOARCH=amd64 go build -o myproject.exe
使用Git管理项目代码,确保版本可追溯:
git init,创建.gitignore文件忽略不必要的文件(如编译产物、依赖目录):git init
echo "/bin/" >> .gitignore
echo "/pkg/" >> .gitignore
echo "*.exe" >> .gitignore
echo "*.test" >> .gitignore
echo ".idea/" >> .gitignore # 若使用IntelliJ IDEA
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/yourusername/myproject.git
git push -u origin main
v1.0.0):git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
使用Systemd将Golang项目注册为系统服务,实现开机自启动和进程管理:
/etc/systemd/system/下创建myproject.service文件,内容如下:[Unit]
Description=My Golang Project
After=syslog.target
[Service]
Type=simple
User=root # 建议使用专用用户(如`appuser`)替代root
WorkingDirectory=/root/myproject # 项目根目录
ExecStart=/root/myproject/myproject # 可执行文件路径
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myproject.service
sudo systemctl status myproject.service # 查看服务状态
sudo systemctl enable myproject.service
若需要切换多个Go版本(如1.18、1.20),可使用GVM(Go Version Manager):
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.bashrc
gvm listall;gvm install go1.18.10;gvm use go1.18.10;gvm use go1.18.10 --default。通过以上步骤,可在CentOS系统下高效管理Golang项目,覆盖从环境搭建到生产部署的全流程。