Linux 配置 golang 多版本切换工具

在Linux上使用 golang 进行开发,有时候可能因为项目原因,需要切换go到不同的版本。有一个golang版本管理工具 gvm ,但是配置的golang安装包不在 /usr/loca/go 目录下,有时候使用起来不方便。
于是从官网 https://golang.org/ 下载了多个版本,解压后放在 /usr/local 目录下,如下所示:

/usr/local/
├── ......
├── go -> /usr/local/go1.13.15
├── go1.12.17
├── go1.13.15
├── go1.14.15
├── go1.15.13
├── go1.16.3
├── go1.16.5
├── ......

然后在 ~/.bashrc 中添加如下函数

function gouse() {
    if [[ $# -eq 0 ]]
    then
        echo "usage $FUNCNAME <go version(1.12,1.13,1.14,...)>"
        return
    fi
    local USER_LOCAL_DIR=/usr/local
    local targetGoVersion=$1
    local choice
    for GoVersion in ${USER_LOCAL_DIR}/go1.1*
    do
        if [[ ${GoVersion} =~ ${targetGoVersion} ]]
        then
            read -p "Shall I use ${GoVersion}? (y/Y | n/N) " -t 5 choice
            choice=$(echo $choice | tr 'A-Z' 'a-z')
            if [[ ${choice:0:1} == "y" ]]
            then
                sudo rm -rf ${USER_LOCAL_DIR}/go
                sudo ln -sf ${GoVersion} ${USER_LOCAL_DIR}/go
                return
            fi
            echo
        fi
    done
    echo "${targetGoVersion} not found in ${USER_LOCAL_DIR}"
}

source ~/.bashrc 使生效后,如果想要切换golang到 go1.16,直接如下执行命令即可

$ gouse 1.16
Shall I use /usr/local/go1.16.3? (y/Y | n/N) y
$ go version
go version go1.16.3 linux/amd64
posted on 2021-06-18 15:17  HorseShoe2016  阅读(1725)  评论(0编辑  收藏  举报