Bootstrap

【Golang】Ubuntu 安装多个 Go

Ubuntu 可以安装多个 Go 版本,并且可以通过不同的方法来管理这些版本。
常见的方法有:

1. 使用 update-alternatives 管理 Go 版本

Ubuntu 提供了一个叫做 update-alternatives 的工具,可以让你同时安装多个 Go 版本,并在它们之间切换。

步骤:
  1. 下载并安装 Go 的不同版本
    你可以从 Go 官方网站 下载不同版本的 Go,或者使用 apt 包管理器安装。

    假设你下载了两个版本的 Go,分别为:

    • /usr/local/go1.22(Go 1.22)
    • /usr/local/go1.23(Go 1.23)
  2. 安装 update-alternatives
    如果你的系统中没有安装 update-alternatives,可以通过以下命令安装:

    sudo apt install -y update-alternatives
    
  3. 设置 Go 的多个版本
    使用 update-alternatives 来为 Go 创建一个管理工具:

    sudo update-alternatives --install /usr/bin/go go /usr/local/go1.22/bin/go 1
    sudo update-alternatives --install /usr/bin/go go /usr/local/go1.23/bin/go 2
    
  4. 切换 Go 版本
    使用 update-alternatives 切换当前使用的 Go 版本:

    sudo update-alternatives --config go
    

    然后会显示一个选项列表,选择你想要使用的 Go 版本的编号。

  5. 验证版本
    切换版本后,使用 go version 命令验证当前的 Go 版本:

    go version
    

2. 使用 gvm(Go Version Manager)

gvm 是一个非常流行的 Go 版本管理工具,允许你在系统中安装和管理多个 Go 版本。

安装步骤:
  1. 安装 gvm
    首先,通过以下命令安装 gvm

    sudo apt install -y curl git
    bash < <(curl -s -S -L https://github.com/moovweb/gvm/archive/master.tar.gz)
    
  2. 安装 Go 版本
    使用 gvm 安装不同版本的 Go,例如安装 Go 1.22 和 Go 1.23:

    gvm install go1.22
    gvm install go1.23
    
  3. 设置默认 Go 版本
    使用 gvm 切换到某个版本并设置为默认版本:

    gvm use go1.22 --default
    
  4. 验证版本
    使用 go version 来确认当前版本:

    go version
    

3. 使用 asdf 管理 Go 版本

asdf 是一个通用的版本管理器,支持多种编程语言的版本管理,包括 Go。

安装步骤:
  1. 安装 asdf
    首先安装 asdf

    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1
    
  2. 安装 Go 插件
    安装 Go 插件:

    asdf plugin-add golang https://github.com/asdf-community/asdf-golang.git
    
  3. 安装 Go 版本
    使用 asdf 安装不同版本的 Go:

    asdf install golang 1.22
    asdf install golang 1.23
    
  4. 设置 Go 版本
    使用 asdf 切换到所需的 Go 版本:

    asdf global golang 1.23
    
  5. 验证版本
    确认当前 Go 版本:

    go version
    

4. 手动安装 Go 不同版本

你还可以手动安装 Go 的不同版本,将不同版本解压到不同的目录下,然后手动设置环境变量(GOPATHGOROOT)来切换版本。

步骤:
  1. 下载并解压 Go 的不同版本到不同的目录,例如:

    • /usr/local/go1.22
    • /usr/local/go1.23
  2. .bashrc.zshrc 文件中添加 Go 版本环境变量:

    export GOROOT=/usr/local/go1.23
    export PATH=$GOROOT/bin:$PATH
    
  3. 每次切换版本时,修改 .bashrc.zshrc 中的 GOROOT 路径,并执行 source ~/.bashrcsource ~/.zshrc 来应用更改。

总结

  • update-alternatives:通过系统自带的工具管理多个 Go 版本。
  • gvm:使用 Go 版本管理工具来安装和切换 Go 版本,适合大多数开发者。
  • asdf:一个跨语言的版本管理器,可以用来管理 Go 及其他工具的版本。
  • 手动安装:通过手动解压不同版本到不同目录并修改环境变量来管理 Go 版本。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;