CentOS系统升级Golang版本的常用操作方法
一、卸载旧版本Golang(可选但推荐)
若之前通过包管理器(如yum)或手动方式安装过Golang,建议先卸载旧版本以避免冲突:
- 通过包管理器卸载:
sudo yum remove golang -y - 手动卸载:
若手动安装,直接删除安装目录(通常为/usr/local/go):sudo rm -rf /usr/local/go
二、升级Golang的具体操作
以下提供三种常见方式,覆盖不同需求:
1. 使用包管理器安装(适合追求简单的用户)
若系统仓库有可用版本(通常为较旧版本),可通过yum快速安装:
# 更新包管理器
sudo yum update -y
# 安装Golang
sudo yum install golang -y
# 验证版本
go version
缺点:官方仓库的Golang版本可能滞后,无法获取最新稳定版。
2. 手动下载安装(推荐,获取最新版本)
这是最常用的方式,可安装最新稳定版:
- 下载最新版本:
访问Golang官方下载页面,选择对应Linux架构(如amd64)的安装包(如go1.21.0.linux-amd64.tar.gz),通过wget下载:wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz - 解压并安装:
将下载的压缩包解压到/usr/local目录:sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz - 配置环境变量:
编辑全局配置文件(如/etc/profile)或用户级配置文件(如~/.bashrc),添加以下内容:export GOROOT=/usr/local/go # Golang安装路径 export GOPATH=$HOME/go # Go工作目录 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 将Go命令加入PATH使配置生效:
source /etc/profile # 或 source ~/.bashrc - 验证升级:
go version输出应显示新版本(如
go version go1.21.0 linux/amd64)。
3. 使用版本管理工具(适合需要多版本切换的用户)
若需要同时管理多个Golang版本(如项目依赖不同版本),可使用gvm(Go Version Manager)或asdf工具:
-
使用gvm:
① 安装依赖:sudo yum install -y git mercurial subversion② 安装gvm:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source ~/.gvm/scripts/gvm③ 安装指定版本:
gvm install go1.21.0④ 切换版本:
gvm use go1.21.0 --default # 设置为默认版本⑤ 验证:
go version -
使用asdf:
① 安装asdf:git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1 echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc source ~/.bashrc② 添加golang插件:
asdf plugin-add golang https://github.com/asdf-vm/asdf-go.git③ 安装指定版本:
asdf install golang 1.21.0④ 切换版本:
asdf global golang 1.21.0 # 设置为全局默认版本⑤ 验证:
go version
三、升级后注意事项
- 备份代码:升级前建议备份项目代码,防止环境变化导致问题。
- Go Modules配置:若项目使用Go Modules(推荐),确保项目根目录有
go.mod文件,升级后运行go mod tidy更新依赖。 - 国内代理加速:若下载依赖慢,可设置国内代理(如七牛云):
export GOPROXY=https://goproxy.cn,direct
以上方法覆盖了CentOS系统升级Golang的常见场景,可根据需求选择合适的方式。手动安装和版本管理工具更适合需要灵活控制的场景,而包管理器则适合追求简单的用户。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1447154.html