Go多版本共存
场景 工作需要,一般使用的是相对较低的go版本,且较长时间内不会轻易变更;自己尝鲜或参与某个开源项目,又会使用另外的go版本。在不同项目间切换工作,通常需要切换到对应的go版本(虽然go目前是向下兼容的,高版本可以正确编译低版本,但开发人员即便熟知不同版本间的差异,也不能百分百保证不使用到高版本的特性)。 解决方案 网上也有很多方案,尝试后摸索出了比较符合自己风格和习惯的方案。 创建一个存放go不同版本的目录,用于将不同版本下载到该目录统一管理,并以版本号命名 1 mkdir $HOME/gosdk 编写下载脚本download_go.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!/bin/bash if test "${1}" == ""; then echo '请传入正确的版本号,如:'${0}' 1.21.1' else # 统一管理目录 gosdk=$HOME/gosdk # 下载 gopkg=go${1}.linux-amd64.tar.gz if ! test -e ${gopkg}; then wget -c https://dl.google.com/go/${gopkg} fi # 删除可能冲突的文件 rm -rf ${gosdk}/go rm -rf ${gosdk}/go${1} # 解压 tar -C ${gosdk}/ -xzf ${gopkg} # 重命名 mv ${gosdk}/go ${gosdk}/go${1} # 删除安装包 rm ${gopkg} # 配置环境变量 go env -w GOPROXY=https://goproxy....