zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    【经典数据结构】B树与B+树
    【经典算法】线性时间排序
    【经典算法】归并排序
    【经典算法】快速排序
    python模块之shelve
    python模块之pickle
    python模块之json
    python之序列化
    python模块之shutil和zipfile
    python模块之sys
  • 原文地址:https://www.cnblogs.com/dongling/p/14899680.html
Copyright © 2011-2022 走看看