golang多版本管理工具

前言

以往我安装 go环境都是去网站上下载对应文件,然后本地解压。
每次发布新版本都这样做太麻烦了,所以我在寻找多版本管理工具。

[En]

It’s too troublesome to do it every time a new version is released, so I’m looking for multi-version management tools.

找到一个操作非常简单又能完全满足我的要求的库https://github.com/voidint/g
美中不足的是在 window下安装和切换时使用软连接需要管理员权限。
为此我找到了一个方案并fork然后修改了一下,我的项目地址:https://github.com/jan-bar/g

安装和使用

执行 go install github.com/jan-bar/g@v1.2.2安装该工具。
window下也可以不用管理员权限打开cmd去执行命令,方便了不少。
需要安装go到指定目录,则可以按照下面的方式去配置环境变量。

window下配置如下环境变量,安装或切换时cmd要用管理有权限打开
G_EXPERIMENTAL=true
G_HOME=D:\go\install\g
G_MIRROR=https://golang.google.cn/dl/
GOPATH=D:\go\project
GOROOT=%G_HOME%\go
PATH=%GOROOT%\bin;%GOPATH%\bin

Linux下的配置
export G_EXPERIMENTAL=true
export G_HOME=/root/go/g
export G_MIRROR=https://golang.google.cn/dl/
export GOPATH=/root/go/project
export GOROOT=$G_HOME/go
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

go本身的环境变量配置
go env -w "GOPROXY=https://goproxy.cn,direct"
go env -w "GO111MODULE=on"

工具的使用方法如下,可以都敲一遍就熟悉了。

g ls                 查看本地已安装的版本
g ls-remote stable   查询当前可供安装stable的版本
g install 1.16.7     安装指定版本
g ls-remote          查询可供安装的所有版本
g use 1.16.3         切换指定版本
g uninstall 1.14.7   卸载已安装的版本
g clean              清理下载文件

golang多版本管理工具

Original: https://www.cnblogs.com/janbar/p/15218885.html
Author: janbar
Title: golang多版本管理工具

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/514948/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Goland的那些实用技巧

    1、 自定义结构体tag 2、go mod tidy / download失败 解决办法:设置goproxy 3、取消/打开代码折叠 4、左侧project栏总是展示当前打开文件的…

    Go语言 2023年5月25日
    078
  • Go xmas2020 学习笔记 01-14 上篇

    课程地址 go-class-slides/xmas-2020 at trunk · matt4biz/go-class-slides (github.com) 主讲老师 Matt …

    Go语言 2023年5月25日
    081
  • Sentinel-Go 源码系列(三)滑动时间窗口算法的工程实现

    要说现在工程师最重要的能力,我觉得工程能力要排第一。 就算现在大厂面试经常要手撕算法,也是更偏向考查代码工程实现的能力,之前在群里看到这样的图片,就觉得很离谱。 算法与工程实现 在…

    Go语言 2023年5月25日
    057
  • 将百度万年历存入自己的数据库

    前言 最近有需要研究阴历和阳历互相转换的问题。因此找到两个库carbon和solarlunar但是感觉计算出来的总是不太放心,而且也会占用计算资源。我的想法是通过接口获取现成的阴历…

    Go语言 2023年5月25日
    070
  • go语言面向对象编程之类型系统

    go语言类型系统 类型系统,顾名思义是指一个语言的类型体系结构,一个典型的类型系统通常包含如下基本内容 基础类型:如byte,int,bool,float等 复合类型:如数组,指针…

    Go语言 2023年5月29日
    048
  • Go语言的goroutine

    Go世界里,每一个并发执行的活动成为goroutine。 通过创建goroutine,就可以实现并行运算,十分方便。 如果有函数f(),那么: f():调用函数f(),并且等待它返…

    Go语言 2023年5月29日
    071
  • Go语言之变量与基础数据类型

    Go 是静态(编译型)语言,是区别于解释型语言的弱类型语言(静态:类型固定,强类型:不同类型不允许直接运算) 例如 python 就是动态强类型语言 1、Go 的特性: 跨平台的编…

    Go语言 2023年5月25日
    062
  • Golang实现set

    Golang语言本身未实现set,但是实现了map golang的map是一种无序的键值对的集合,其中键是唯一的 而set是键的不重复的集合,因此可以用map来实现set 由于ma…

    Go语言 2023年5月25日
    065
  • Go语言之高级篇beego框架之配置beego环境

    1、配置beego环境 进入部署目录中 软件部署目录: 把要部署的软件代码,放在src目录下面。 启动项目 posted @2019-02-18 15:31 努力哥 阅读(938 …

    Go语言 2023年5月29日
    079
  • 从Go编程看IO多路复用Select

    IO多路复用通过某种机制使进程监听某些文件描述符,当文件描述符中有读或写就绪时,进程能够收到系统内核发送的相应通知从而进行相应的IO操作;IO多路复用有:select、poll、e…

    Go语言 2023年5月25日
    059
  • Go 语言实现 gRPC 的发布订阅模式,REST 接口和超时控制

    在多个平台的阅读量都创了新高,在 oschina 更是获得了首页推荐,阅读量到了 1w+,这已经是我单篇阅读的高峰了。 看来只要用心写还是有收获的。 这篇咱们还是从实战出发,主要介…

    Go语言 2023年5月25日
    071
  • Go语言之高级篇beego框架之model设计构造查询

    一、model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器。在不影响代码可读性的前提下用来快速的建立 SQL 语句。 QueryBuilder…

    Go语言 2023年5月29日
    054
  • 记录解决安装 golang easyjson json包遇到的坑(有库但没有可执行文件)

    为什么要使用 easyjson 包: 因为解析json原生包用的是反射所以性能较差, 用 easyjson比原生json包快好几倍 安装: cmd 输入下载代码 go get -u…

    Go语言 2023年5月25日
    043
  • gofs使用教程-基于golang的开源跨平台文件同步工具

    gofs是基于golang开发的一款开箱即用的跨平台文件同步工具,支持在本地磁盘之间同步、从远程服务器同步变更到本地、将本地文件变更推送到远程服务器三种模式。开源地址如下:Gith…

    Go语言 2023年5月25日
    057
  • go-containerregistry 实战篇之容器镜像下载

    go-containerregistry 实战篇之容器镜像下载 一、库介绍 go-containerregistry 是 google 公司开源的用于处理容器镜像的golang客户…

    Go语言 2023年5月25日
    074
  • go学习笔记(一)

    零值的 slice等于 nil。 nil值的 slice没有底层数组 nil值的 slice的长度和容量都是 0。但是也有非 nil值的 slice的长度和容量为 0的,如 []i…

    Go语言 2023年5月25日
    039
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球