首页主机资讯如何在CentOS升级Golang版本

如何在CentOS升级Golang版本

时间2025-12-05 23:26:04发布访客分类主机资讯浏览894
导读:在 CentOS 上升级 Golang 的可选方案 适合大多数用户的标准做法:下载官方压缩包,解压到**/usr/local**,并配置环境变量。 需要隔离或快速切换环境:使用Docker运行指定版本的 Go。 需要在同一台机器上维护多个...

在 CentOS 上升级 Golang 的可选方案

  • 适合大多数用户的标准做法:下载官方压缩包,解压到**/usr/local**,并配置环境变量。
  • 需要隔离或快速切换环境:使用Docker运行指定版本的 Go。
  • 需要在同一台机器上维护多个 Go 版本:使用gvmasdf进行版本管理。
  • 若此前通过 yum 安装过旧版,建议先卸载,避免 PATH 与 GOROOT 冲突。

标准升级步骤 手动安装官方压缩包

  1. 卸载旧版(如曾用 yum 安装)

    • 执行:sudo yum remove -y golang
  2. 下载并解压新版本

    • 访问官方下载页获取最新链接(示例为 go1.22.5.linux-amd64.tar.gz,请替换为最新稳定版):
      wget https://golang.google.cn/dl/go1.22.5.linux-amd64.tar.gz
      sudo rm -rf /usr/local/go
      sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
      
  3. 配置环境变量

    • 全局生效(所有用户):编辑 /etc/profile
      echo 'export GOROOT=/usr/local/go' | sudo tee -a /etc/profile
      echo 'export GOPATH=$HOME/go' | sudo tee -a /etc/profile
      echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' | sudo tee -a /etc/profile
      source /etc/profile
      
    • 仅当前用户生效:编辑 ~/.bashrc~/.bash_profile,内容同上,然后 source ~/.bashrc
  4. 验证

    go version
    go env GOROOT GOPATH
    

    预期输出类似:go version go1.22.5 linux/amd64

多版本共存与切换

  • 方案一 手动多目录 + GOROOT 切换

    # 安装两个版本到不同目录
    sudo tar -C /usr/local -xzf go1.21.13.linux-amd64.tar.gz
    sudo mv /usr/local/go /usr/local/go1.21.13
    
    sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
    sudo mv /usr/local/go /usr/local/go1.22.5
    
    # 在 ~/.bashrc 中配置
    echo 'export GOROOT_1_21=/usr/local/go1.21.13' >
        >
         ~/.bashrc
    echo 'export GOROOT_1_22=/usr/local/go1.22.5' >
        >
         ~/.bashrc
    echo 'export PATH=$GOROOT_1_22/bin:$PATH' >
        >
         ~/.bashrc  # 默认使用 1.22
    source ~/.bashrc
    
    # 切换版本
    # 使用 1.21
    export GOROOT=$GOROOT_1_21
    export PATH=$GOROOT/bin:$PATH
    # 使用 1.22
    export GOROOT=$GOROOT_1_22
    export PATH=$GOROOT/bin:$PATH
    
  • 方案二 使用 alternatives 统一管理 /usr/bin/go

    sudo update-alternatives --install /usr/bin/go go /usr/local/go1.21.13/bin/go 10
    sudo update-alternatives --install /usr/bin/go go /usr/local/go1.22.5/bin/go 20
    sudo update-alternatives --config go   # 交互选择默认版本
    
  • 方案三 使用版本管理工具

    • gvm
      bash <
           <
          (curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
      source ~/.gvm/scripts/gvm
      gvm install go1.21.13
      gvm install go1.22.5
      gvm use go1.22.5 --default
      
    • asdf
      git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
      echo '. $HOME/.asdf/asdf.sh' >
          >
           ~/.bashrc
      source ~/.bashrc
      asdf plugin-add go https://github.com/asdf-vm/asdf-go.git
      asdf install go 1.21.13
      asdf install go 1.22.5
      asdf global go 1.22.5
      

    以上方式便于在不同项目间快速切换版本。

使用 Docker 隔离环境

  • 拉取并运行指定版本(示例为 golang:1.22
    docker pull golang:1.22
    docker run -it --rm -v "$PWD":/app -w /app golang:1.22 bash
    # 在容器内
    go version
    go build -o myapp .
    
    适合 CI/CD 或避免污染宿主机环境。

常见问题与建议

  • 升级后 go version 仍显示旧版本
    • 检查可执行文件优先级:which -a go;若 /usr/local/go/bin 不在首位,调整 PATH,或改用 alternatives 设置默认 go。
    • 确认 GOROOT 是否指向新目录:go env GOROOT 应为 /usr/local/go
  • 国内下载慢
    • 使用国内镜像(示例为 golang.google.cn/dl),或设置模块代理:go env -w GOPROXY=https://goproxy.cn,direct
  • 卸载旧版
    • 若通过 yum 安装:sudo yum remove -y golang
    • 若手动安装:删除 /usr/local/go 并清理你在 shell 配置中添加的 GOROOT/GOPATH/PATH 行。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在CentOS升级Golang版本
本文地址: https://pptw.com/jishu/765267.html
CentOS下VirtualBox虚拟机如何设置共享网络 CentOS中Golang并发处理怎么优化

游客 回复需填写必要信息