[每周一更]-(第54期):Go的多版本管理工具

news2024/11/20 20:23:39

在这里插入图片描述

参考

  • https://zhuanlan.zhihu.com/p/611253641
  • https://learnku.com/articles/78326

前文概要

Go语言从开始使用从1.13起步,随着泛型的支持,带领团队在转型Go的时候,做基础组件架构选型使用1.18,但是Go版本不断迭代想使用最新版本来体验下,类比前端中node,有个nvm工具;
联想到Go应该也会有对应的版本管理工具,果不其然是有的,还不止一个,下边来对比介绍一下。
配置完成就可以灵活切换不同GO版本,愉快的编码把!

  • gvm Go Version Manager(多年不更新了)
    • github:https://github.com/moovweb/gvm
  • g 是一个多平台(Linux、Windows、MacOS)的 go 多版本管理工具。
    • github:https://github.com/voidint/g

不同系统中如何安装

gvm

  • 由于仓库多年不更新,感兴趣的可自行了解,Windows这里不做文档安装介绍,可以源码学习了解

安装

  bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Mac OS X Requirements
xcode-select --install
brew update
brew install mercurial
Linux Requirements
  • Debian/Ubuntu
sudo apt-get install curl git mercurial make binutils bison gcc build-essential
  • Redhat/Centos
sudo yum install curl
sudo yum install git
sudo yum install make
sudo yum install bison
sudo yum install gcc
sudo yum install glibc-devel
常用命令
gvm install go1.4
gvm use go1.4 [--default]

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.5

gvm list
gvm listall
gvm implode

g(采纳,满足需求)

安装包下载地址:github.com/voidint/g/releases

特性

  • 支持列出可供安装的 go 版本号
  • 支持列出已安装的 go 版本号
  • 支持在本地安装多个 go 版本
  • 支持卸载已安装的 go 版本
  • 支持在已安装的 go 版本之间自由切换
  • 支持清空安装包文件缓存
  • 支持软件自我更新(>= 1.5.0)
  • 支持软件绿色卸载(>= 1.5.0)
Windows+Git bash

下载地址:https://github.com/voidint/g/releases/download/v1.5.0/g1.5.0.windows-amd64.zip
找到对应的windows版本,下载g.exe,配置到环境变量
g安装成功后:环境变量需要切换:

  • 旧版本是go1.18.10,环境变量配置:C:\Program Files\Go\bin(需要先清掉)
  • 新的变量配置:C:\Users\xxx(用户名).g\go\bin
Mac/Linux

下载地址:https://github.com/voidint/g/releases/download/v1.5.0/g1.5.0.linux-amd64.tar.gz

  • 创建 g 家目录(推荐~/.g目录)

  • 下载release的二进制压缩包,并解压至 g 家目录下的 bin 子目录中(即~/.g/bin目录)。

  • 将所需的环境变量写入~/.g/env文件

cat >~/.g/env <<'EOF'
#!/bin/sh
# g shell setup
export GOROOT="${HOME}/.g/go"
export PATH="${HOME}/.g/bin:${GOROOT}/bin:$PATH"
export G_MIRROR=https://golang.google.cn/dl/
EOF
  • 将~/.g/env导入到 shell 环境配置文件(如/.bashrc、/.zshrc…)
cat >>~/.bashrc <<'EOF'
# g shell setup
if [ -f "${HOME}/.g/env" ]; then
. "${HOME}/.g/env"
fi
EOF

启用环境变量

source ~/.bashrc # 或source ~/.zshrc
常用命令
查看远程稳定版本:             g ls-remote stable
查询已安装的 go 版本:         g ls
切换到另一个已安装的 go 版本:  g use 1.19.10
安装目标 go 版本1.20.5:      g install 1.20.6
卸载一个已安装的 go 版本:     g uninstall 1.19.10
更新 g 软件本身:              g self update
卸载 g 软件本身:              g self uninstall 
清空 go 安装包文件缓存:        g clean 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java的日期时间API

目录 JDK8之前的日期时间API java.lang.System类 java.util.Date类 java.text.SimpleDateFormat类 java.util.Calendar(日历)类 java.util.GregorianCalendar类 JDK8中新日期时间API LocalDate、LocalTime、LocalDateTime 类 Instant类 java.time.format.DateTimeFor…

SCA Sentinel分布式系统的流量防卫兵

Sentinel官网:https://sentinelguard.io/zh-cn Sentinel:Sentinel是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量控制、流量路由、熔断降级、系统自适应保护等多个维度来帮助用户 保障微服务的稳定性 Sentinel与Hystrix对…

http连接处理(下)(四)

1.结合代码分析请求报文响应 下面我们将介绍服务器如何响应请求报文&#xff0c;并将该报文发送给浏览器端。首先介绍一些基础API&#xff0c;然后结合流程图和代码对服务器响应请求报文进行详解。 基础API部分&#xff0c;介绍stat、mmap、iovec、writev。 流程图部分&…

NodeJS 后端通过Http获取Base64格式数据显示图片 ②〇

文章目录 前言BASE64前端开发后端开发异步代码效果总结 ⡖⠒⠒⠒⠤⢄⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸ ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀…

Rust操作MySQL

查询 本部分是对 「Rust入门系列」Rust 中使用 MySQL[1]的学习与记录 经常使用的时间处理库&#xff1a; chrono 流式查询使用&#xff1a; query_iter 输出到Vec使用&#xff1a; query 映射到结构体使用&#xff1a; query_map 获取单条数据使用&#xff1a; query_first 命名…

RTP及RTP Header Extension

https://www.rfc-editor.org/rfc/rfc3550.txt 译文&#xff1a; http://www.gpssoft.cn/download/protocol/RFC-3550-%E4%B8%AD%E6%96%87%E7%89%88.pdf RTP&#xff1a;real-time transport protocol&#xff0c;实时传输协议 每一个 RTP 包中都有前 12 个字节&#xff0c;而…

了解PostgreSQL sql shell和VACUUM命令

从SQL Shell进入PostgreSQL&#xff1b;没用过这东西&#xff0c;看一下&#xff1b; 一直回车&#xff1b;最后输入口令就登入了&#xff1b;此时是登入默认的数据库postgres&#xff1b;这个数据库是默认安装的&#xff1b; 看一下有没有表&#xff0c;根据资料可以用 \d 或…

K210学习篇(五)PWM

machine.PWM PWM&#xff1a; 脉宽调制模块&#xff0c; 硬件支持的PWM&#xff0c; 可以指定任意引脚&#xff08;0到47引脚&#xff09; 每个 PWM 依赖于一个定时器&#xff0c; 即当定时器与 PWM 功能绑定后&#xff0c; 不能作为普通定时器使用了。 因为有 3 个定时器&…

go语言终端交叉编译的事项

一、可以使用的编译环境 go env 查看编译的环境 1.编译linux 64环境[centos7以及以上版本] go env -w GOOS"linux" go env -w GOARCH"amd64" 2.编译linux 32环境[centos6以及以下版本] go env -w GOOS"linux" go env -w GOARCH"386"…

动态库 的制作和使用

文章目录 重要命令制作流程和使用动态库加载失败&解决失败的原因&#xff1a;ldd命令系统加载动态库&#xff08;共享库&#xff09;的顺序问题解决途径一、修改环境变量二、修改/etc/ld.so.cache文件列表三、将动态库放在/lib 或 /usr/lib文件中&#xff08;不推荐&#x…

互联网大厂技术-Redis-集群模型、架构原理、难点应用场景、高频面试问题详解

目录 一、Redis集群模型 1.1、主从模式 1.1.1 主从模式优缺点 1.2、哨兵模式 1.2.1 哨兵模式的作用&#xff1a; 1.2.2 哨兵实现原理 1.2.3 主观下线和客观下线 1.2.4 哨兵模式优缺点 1.3、各大厂的Redis集群方案 1.3.1 客户端分片 1.3.2 代理分片 Twemproxy的优点…

ESP32开发环境的搭建

ESP32开发环境的搭建 Windows11WSL2 Ubuntu22.04 下载ESP32开发所需的库和工具链 下载ESP-IDF库安装必要的工具sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python…

收款单签字时,报”结算信息表体中本方银行账户、现金账户、票据号 (商业汇票号)不能同时为空,签字操作失败“,能否取消这个校验??

大概整理&#xff0c;如有不当&#xff0c;欢迎留言指出&#xff0c;谢谢&#xff01; 收款单签字时&#xff0c;报”结算信息表体中本方银行账户、现金账户、票据号 (商业汇票号)不能同时为空&#xff0c;签字操作失败“&#xff0c;能否取消这个校验&#xff1f;&#xff1f…

设计模式(六)-----适配器模式(Adapter Pattern)

目录 什么是适配器模式适用场景适配器模式的三种实现方式1. 类的适配器模式2. 对象的适配器模式3. 接口的适配器模式 总结 什么是适配器模式 适配器模式主要用于将一个类的接口转化成客户端希望的目标类格式&#xff0c;使得原本不兼容的类可以在一起工作&#xff0c;将目标类…

2023年7月北京/广州/深圳制造业产品经理NPDP认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

Windows 10 实现实时文件夹同步的方法

什么是实时同步&#xff1f; 实时文件夹同步是一种确保在满足一定条件时立即更新一个或多个文件夹的过程。与传统的文件同步方法相比&#xff0c;它能够更及时地检测到源文件夹的变化并将这些变化快速复制到目标文件夹。 实时文件夹同步可以采用单向同步或双向同步的模式…

Flutter 状态管理框架 Provider 和 Get 分析

状态管理一直是 Flutter 开发中一个火热的话题。谈到状态管理框架&#xff0c;社区也有诸如有以Get、Provider为代表的多种方案&#xff0c;它们有各自的优缺点。面对这么多的选择&#xff0c;你可能会想&#xff1a;「我需要使用状态管理么&#xff1f;哪种框架更适合我&#…

数据安全之风险评估(三)

网络数据安全风险评估坚持预防为主、主动发现、积极防范&#xff0c;对数据处理者数据安全保护和数据处理活动进行风险评估&#xff0c;旨在掌握数据安全总体状况&#xff0c;发现数据安全隐患&#xff0c;提出数据安全管理和技术防护措施建议&#xff0c;提升数据安全防攻击、…

ElasticSearch简单介绍以及基本概念阐述

文章目录 一、ES是什么二、ES主要功能1、实时数据搜索和分析&#xff1a;2、分布式架构&#xff1a;3、全文搜索&#xff1a;4、实时数据分析&#xff1a;5、多种数据类型支持&#xff1a;6、实时监控和可视化&#xff1a;7、安全性和访问控制&#xff1a;8、多种集成和扩展&am…

java-error-No converter found for return value of type

java-error-No converter found for return value of type 问题描述 &#xff1a; 日志如下 &#xff1a; 14-Jul-2023 15:27:46.747 严重 [http-nio-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为[]的上下文中&#xff0c;Servlet[action]的…