赞
踩
Go提供了Windows、MacOS(ARM64) 和 MacOS(x86-64)、Linux版本,也可以下载源码自己编译安装。
Linux && MacOS
下载压缩包
解压到指定目录,如:/usr/local
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
在 ~/.zshrc或~/.bashrc中添加如下行
export PATH=$PATH:/usr/local/go/bin
source ~/.zshrc 或 source ~/.bashrc
go version
Windows
直接双击 .msi文件进行引导安装
安装完成后打开 cmd 或 power shell 输入 go version 验证安装是否成功
tar -C ~/Downloads -xzf go1.21.9.linux-amd64.tar.gz
mv go go1.21.9
mkdir ~/go_version
ln -s ~/Downloads/go1.21.9 ~/go_version/go
export PATH=~/go_version/go/bin:$PATH
go1.21.9 version
扩展:此法为切换软件的通法,其他软件也适用。
已经安装go的情况下(例如当前版本为:1.22.2),可以通过go install 来安装其他版本
go install golang.org/dl/go1.22.1@latest
go1.22.1 download
go install 命令会把go1.22.1版本作为1.22.2的可执行安装包,存放在 ~/go/bin下面
再去用go1.22.1 download 则会下载1.22.1的源码,放到~/sdk下面
此时就可以用go1.22.1 version来验证是否安装成功了
为什么可以直接敲go1.22.1呢?实际上执行的是/go/bin/go1.22.1这个二进制文件,而/go/bin又加入了PATH变量,所以能执行。
sdk是不能删除的,go1.22.1会读取sdk里面的源码,删除后会提示sdk没有下载。
gvm全称:Go Version Manager (GVM)是一个用于管理Go环境的开源工具。它支持安装多个Go版本,并使用GVM “pkgsets” 管理每个项目的模块。GVM(与Ruby中的RVM一样)最初是由Josh Bussdieker开发的,它允许为每个项目或项目组创建开发环境,分离不同的Go版本和包依赖关系,以提供更大的灵活性并防止版本问题。
安装gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
命令解析:
-s -S 连用表示禁用进度条但可以显示错误信息
-L 表示重定向跟随
<(...) 此处为<(curl ...) ,此语法表示curl的执行结果被视作文件
bash < 表示拿到curl的执行结果作为标准输入传给bash
通过gvm安装go
gvm install go1.22.2
通过gvm切换go版本
gvm use go1.22.2
列出所有通过gvm安装的go版本
gvm list
列出所有可用的线上go版本
gvm listall
卸载go版本
gvm uninstall go1.22.2
完全移除gvm及其所有安装的go版本和依赖包
gvm implode
如果卸载失败,直接 rm -rf ~/.gvm
管理go的依赖包
pkgset允许独立管理不同的Go包集及其版本,从而更容易在不同的项目依赖关系之间切换。
// 创建包集合
gvm pkgset create [name]
// 选择包集合
gvm pkgset use [name]
// 列出创建的包集合
gvm pkgset list
// 删除包集合
gvm pkgset delete [name]
切换到指定的包集后,后续使用go build、go run命令时会把下载的包安装到包集目录
其他gvm命令
gvm version
gvm get
gvm help
gvm 原理
其内部核心也是使用软连接,通过指向不同的版本使用不同的环境变量
后面再进行源码分析
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。