当前位置: 首页 > news >正文

golang多版本管理工具g

一、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 ManagerUSAGE:g  command [arguments...]VERSION:1.5.0AUTHOR:voidint <voidint@126.com>COMMANDS:ls         List installed versionsls-remote  List remote versions available for installuse        Switch to specified versioninstall    Download and install a versionuninstall  Uninstall a versionclean      Remove files from the package download directoryself       Modify g itselfhelp, h    Shows a list of commands or help for one commandGLOBAL OPTIONS:--help, -h     show help (default: false)--version, -v  print the version (default: false)

  2、使用当前可供安装的stable状态的go版本
# g ls-remote stable1.19.91.20.4
  3、安装指定版本的go
# 安装go1.16.15
g install 1.16.15# 安装go1.18.10
g install 1.18.10# 安装go1.17.13
g 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版本。

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

    不支持

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 鸿蒙HarmonyOS开发:如何灵活运用动画效果提升用户体验
  • 使用 Charles 模拟手机弱网测试
  • AppenTalk | 不止于赛场,巴黎奥运会上的中国AI科技
  • APP支付宝授权获取code uniapp
  • 案例 | 生产制造中的直线度测量
  • jmeter中添加集合点
  • 华为od面试经验2024-面经
  • CAD图纸加密软件有哪些?10款超级好用的CAD图纸加密软件推荐
  • 字符串算法
  • wangeditor编辑器自定义按钮和节点,上传word转换html,文本替换
  • 简单封装一个类似菜单栏的树状结构转换
  • VMware-Ubuntu共享文件找不到
  • 深入探索分布式任务调度框架:MySQL实现高效锁机制
  • 误删?损坏?SD卡数据恢复全攻略,让你的数据起死回生!
  • RK3568平台(PWM篇)PWM驱动
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Javascript编码规范
  • Java超时控制的实现
  • Mac转Windows的拯救指南
  • Mybatis初体验
  • mysql innodb 索引使用指南
  • PHP 小技巧
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vagrant 添加本地 box 安装 laravel homestead
  • Vue 动态创建 component
  • vue-loader 源码解析系列之 selector
  • 回顾 Swift 多平台移植进度 #2
  • 两列自适应布局方案整理
  • 盘点那些不知名却常用的 Git 操作
  • 如何选择开源的机器学习框架?
  • 设计模式走一遍---观察者模式
  • 实习面试笔记
  • 为视图添加丝滑的水波纹
  • 新手搭建网站的主要流程
  • 昨天1024程序员节,我故意写了个死循环~
  • ​configparser --- 配置文件解析器​
  • ​批处理文件中的errorlevel用法
  • # Java NIO(一)FileChannel
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #13 yum、编译安装与sed命令的使用
  • (¥1011)-(一千零一拾一元整)输出
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (3)(3.5) 遥测无线电区域条例
  • (5)STL算法之复制
  • (6)添加vue-cookie
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (十三)MipMap
  • (学习日记)2024.01.19
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .Net 知识杂记
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET技术成长路线架构图
  • .Net转Java自学之路—基础巩固篇十三(集合)