在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