首页 > 其他分享 >golang多版本管理工具g

golang多版本管理工具g

时间:2023-05-13 23:11:25浏览次数:48  
标签:install 管理工具 golang version 版本 go 安装 help

一、golang多版本管理工具g

  一)g简介

  g是一个Linux、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换

  二)g特性

  • 支持列出可供安装的go版本号
  • 支持列出已安装的go版本号
  • 支持在本地安装多个go版本
  • 支持卸载已安装的go版本
  • 支持在已安装的go版本之间自由切换

  三)安装

  1、自动化安装

  Linux/macOS(适用于bash、zsh)

# 建议安装前清空`GOROOT`、`GOBIN`等环境变量
$ wget -qO- https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
$ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。
$ source ~/.bashrc # 或者 source ~/.zshrc

 

  2、手动安装

  • 下载对应平台的二进制压缩包

  • 将压缩包解压至PATH环境变量目录下,如/usr/local/bin

  • 编辑shell环境配置文件(~/.bashrc~/.zshrc...)

$ cat>>~/.bashrc<<EOF  export GOROOT="${HOME}/.g/go"
export PATH="${HOME}/.g/go/bin:$PATH"
export G_MIRROR=https://golang.google.cn/dl/
EOF

 

  四)g的使用

  1、g的帮助文档

# g --help
NAME:
  g - Golang Version Manager

 USAGE:
  g  command [arguments...]

 VERSION:
  1.5.0

 AUTHOR:
  voidint <[email protected]>

 COMMANDS:
    ls         List installed versions
    ls-remote  List remote versions available for install
    use        Switch to specified version
    install    Download and install a version
    uninstall  Uninstall a version
    clean      Remove files from the package download directory
    self       Modify g itself
    help, h    Shows a list of commands or help for one command

 GLOBAL OPTIONS:
  --help, -h     show help (default: false)
  --version, -v  print the version (default: false)

 

  2、使用当前可供安装的stable状态的go版本

# g ls-remote stable
  1.19.9
  1.20.4

  3、安装指定版本的go

# 安装go1.16.15
go install 1.16.15

# 安装go1.18.10
go install 1.18.10

# 安装go1.17.13
go install 1.17.13
# go version
go version go1.17.13 linux/amd64

 

  6、切换go 版本

# g use 1.18.10
go version go1.18.10 linux/amd64

  

 

  五)技术问答

  • 环境变量G_MIRROR有什么作用?

    由于中国大陆无法自由访问Golang官网,导致查询及下载go版本都变得困难,因此可以通过该环境变量指定一个镜像站点(如https://golang.google.cn/dl/),g将从该站点查询、下载可用的go版本。

  • 支持源代码编译安装吗?

    不支持

 

标签:install,管理工具,golang,version,版本,go,安装,help
From: https://www.cnblogs.com/happy-king/p/17394938.html

相关文章

  • springboot 低于 2.6 版本设置 SameSite=None,springboot 1.x set SameSite=none in em
    speingboot使用自带的tomcat运行,设置SameSite。springboot过低的版本没有SameSite的属性设置,升级到1.5.22版本后,虽然Rfc6265CookieProcessor有 setSameSiteCookies方法,但是方法逻辑有BUG,当不是None时才可以设置成功:SameSiteCookiessameSiteCookiesValue=thi......
  • golang 实现一个自动注入跟踪代码工具
    如下面代码所示:packagemainimport("bytes""fmt""runtime""strconv")/**实现一个自动注入跟踪代码,并输出有层次感的函数调用链跟踪命令行工具.*/funcTrace()func(){//通过runtime.Caller函数获得当前Goroutine的函数调用栈上的信息,......
  • golang netlink 方便的网络管理包
    netlink可以方便的处理golang对于系统网络相关测试,比如我们需要设置网桥,配置ip,设置路由。。。。参考使用packagemain import("github.com/vishvananda/netlink") funcmain(){eth,_:=netlink.LinkByName("enp0s2")addr,_:=netli......
  • 一、版本控制
    Git版本管理工具一、版本控制1.1、本地版本控制什么是“版本控制”?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的......
  • 理解vue2.x版本中productionTip=false设置无效的原因
    首先,我们看到vue官网中关于productionTip的API使用:但是,我在本地中使用却无效,代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname=&q......
  • [golang] logrus日志包如何自定义级别
    在Logrus中,可以使用logrus.Level类型定义自定义的日志级别,以便更精细地控制日志输出。以下是使用Logrus自定义级别的基本步骤:首先,在代码中使用 logrus.New() 方法创建一个新的logrus.Logger对象,并使用 AddHook() 方法注册所需的Hook对象(可选)。例如,以下代码创建了一个......
  • HBuilderX快捷键Netbeans版本
    [//删除选中行{"key":"ctrl+e","command":"editor.action.deleteLines","override":true},//在当前行下方插入空行并把光标移动到新行{"key":"shift+enter","command":"editor.action.insertLineAfter"......
  • 【二分查找】LeetCode 278. 第一个错误的版本
    题目链接278.第一个错误的版本思路二分查找代码publicclassSolutionextendsVersionControl{publicintfirstBadVersion(intn){intleft=1,right=n-1;while(left<=right){intmid=left+(right-left)/2;......
  • 清爽商务范,丰盘ECM v2.0版本重磅推出!
    作者@KevinYang本月我们很高兴如期发布了丰盘ECM的v2商业化版本,增加了大量高级特性,例如全文检索、审计日志、文件标签、版本历史、在线评论等等,满足了更多企业客户的实际需求。丰盘ECM是基于Net6技术栈构建的一套企业私有文档管理系统,主要用于在企业私有内网或自购云主机上搭建......
  • GoLang 使用 goroutine 停止的几种办法
    [toc]前言我们有很多情况下需要主动关闭goroutine,如需要实现一个系统自动熔断的功能就需要主动关闭goroutine为什么要中断GoRoutine?场景:俩个相互依赖的的操作,“依赖”是指如果其中一个失败,那么另一个就没有意义,而不是第二个操作依赖第一个操作的结果(那种情况下,两个操作不能并行)。......