当前位置: 代码网 > it编程>前端脚本>Golang > Go下载安装及切换不同版本的实现方法

Go下载安装及切换不同版本的实现方法

2025年02月14日 Golang 我要评论
一、下载安装go下载地址go提供了windows、macos(arm64) 和 macos(x86-64)、linux版本,也可以下载源码自己编译安装。linux && macos下载

一、下载安装

go下载地址

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

把go的bin目录添加到环境变量

在 ~/.zshrc或~/.bashrc中添加如下行

export path=$path:/usr/local/go/bin

使用环境变量立即生效

source ~/.zshrc 或 source ~/.bashrc

测试go是否安装成功

go version

windows

直接双击 .msi文件进行引导安装

安装完成后打开 cmd 或 power shell 输入 go version 验证安装是否成功

二、如何切换go版本?

方法一

直接下载不同版本的压缩包,使用软连接指向不同的版本

下载完压缩包,解压到其他目录,如:

tar -c ~/downloads -xzf go1.21.9.linux-amd64.tar.gz

把go目录重命名为 go1.21.9

mv go go1.21.9

新建一个go全局目录,如:go_version

mkdir ~/go_version

做一个软链接指向go1.21.9版本

ln -s ~/downloads/go1.21.9 ~/go_version/go

把~/go_version/go/bin目录加到到环境变量

export path=~/go_version/go/bin:$path

验证是否安装成功

go1.21.9 version

扩展:此法为切换软件的通法,其他软件也适用。

方法二

使用go install 命令安装其他版本

已经安装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来切换

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版本
gvm version
  • 获取gvm最新版本
gvm get
  • 打印帮助信息
gvm help

gvm 原理

其内部核心也是使用软连接,通过指向不同的版本使用不同的环境变量

后面再进行源码分析

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com