golang轻量级版本管理工具g安装使用

使用 g 可以在 Windows/Linux/macOS 上切换使用不同版本的 golang,本文价绍了windows的cmd手动安装/windows的PowerShell手动安装/Windows自动安装/linux(macOS)的手动安装/Linux(macOS)的自动安装

GitHub仓库地址

https://github.com/voidint/g

GitHub下载连接

https://github.com/voidint/g/releases

Windows安装

习惯使用cmd的用户推荐使用第一种方式手动安装(cmd)

习惯使用PowerShell的用户推荐使用第二种方式手动安装(PowerShell),但是这里需要了解一些计算机基础知识,后面讲解到原因;

windows安装出现问题处理起来很麻烦,自动安装不好排查问题,所以推荐手动安装一步到位。

强烈推荐安装最新版本的g版本管理工具

1、手动安装(cmd)

**注意:**强烈推荐先删除已经安装的golang版本后再安装使用版本管理工具g

删除方法:Windows设置 > 应用 > golang

**提示:**最好选择最新版本,可以体验最新功能

1.进入下载链接后下载后缀为.windows-amd64.zip的最新版本压缩包

2.创建自定义目录(这里的目录可以自行设置,只要配置的环境变量和这个是统一的即可):D:\g

3.配置环境变量

**Win11位置:**系统 > 系统信息 > 高级系统设置 > 环境变量(N)… > 系统变量(S)

其他windows版本可百度查找

**注意:**此处指的是在系统变量里面新建变量和值;系统变量里面的Path变量添加值;配置好之后一定要点击确定关闭窗口。

#系统变量
#设置镜像,国内无法自由访问官网,为确保使用现在安装go流程,设置国内镜像点
变量:G_MIRROR
值:https://golang.google.cn/dl/
 
#设置g的工作目录(go的下载安装目录),这里配置为 g.exe 根目录
变量:G_HOME
值(这里是和上面自定义目录一致的):D:\g
 
#配置GOROOT,这个指向g工作目录下的go,g安装go版本后,会在这个路径下软链接到versions目录下的指定版本,用来控制当前的go版本,如果安装g之前已经安装过go了,需要修改GOROOT这个环境变量。
变量:GOROOT
值:%G_HOME%\go
 
#开启所有的实验特性,配置支持自定义安装目录,不开启默认下载的go默认会安装到C:\Users\你的用户名\.g 目录下(及 G_HOME 会自动设置为默认目录下,设置的G_HOME会无效)
变量:G_EXPERIMENTAL
值:true
 
#配置GOBIN
变量:GOBIN
值:%GOROOT%\bin
 
#变量Path的值添加
#设置 g.exe 目录(及 g.exe 文件所在目录),这样就可以使用命令行随时访问
值(这里是和上面自定义目录一致的):D:\g
 
#配置 golang 执行文件目录
值:%GOBIN%

4.测试

cmd终端输入:g env 或者g -v可查看环境变量配置或版本信息

查询到相关信息即安装成功

**注意1:**如果在终端工具中输入go version不显示版本,那可能是GOBIN环境变量没生效,你需要把他变为全路径,比如上面自定义目录拼接\go\bin的(需要根据自定义路径拼接):D:\g\go\bin

**注意2:**如果上述配置依然不生效(或者只生效了一段时间)执行如下操作:

**Win11位置:**设置 > 应用 > golang

进入到如上应用的位置删除golang即可

2、手动安装(PowerShell)

1.创建目录,命令:mkdir ~/.g/bin

2.下载release的Windows版本的二进制压缩包,下载后缀名为.windows-amd64.zip的压缩包,解压之后放到~/.g/bin目录下

3.修改PowerShell默认的配置文件

这里就需要一些计算机基础了,目前g的官网给出的方案是执行命令code $PROFILE, 这个命令会用 vscode 打开默认的 powershell 配置文件,但是不是所有的人都用VSCode这个工具的,这个需要单独安装,如果已有用户这里就可以执行上面命令,打开默认配置文件,所以我在这里再扩展些其他方法:

  • 方法1:使用官方推荐的方式进行PowerShell配置

    • 检查Powershell默认配置文件是否存在,执行命令:Test-Path $PROFILE

      存在就继续,不存在就创建默认配置文件,创建默认配置文件请看博主另一篇博客:Windows11终端升级PowerShell7

    • 执行命令code $PROFILE

    • 在打开的powershell 的默认配置文件中加入如下内容:

      # 这里的 $ 符号一定要带上,一定要带上,一定要带上
      $env:GOROOT="$HOME\.g\go"
      $env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
      
    • 关闭 PowerShell 终端重新打开,就可以使用 g 命令了

  • 方法2:不使用官方方式修改配置文件,手动处理配置文件,这样更灵活,不用安装VSCode

    • 手动处理配置文件需要观看博主的另一篇博客:Windows11终端升级PowerShell7

    • 按照博客配置完成后,执行命令$PROFILE获取配置文件位置,不是一样的,这个是博主的,读者需要按照自己的路径自行调整:C:\Users\Administrator\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

    • 进入到文件躲在目录:C:\Users\Administrator\Documents\PowerShell\ 下

    • 鼠标右键可以使用文本编辑器打开文件,这里就可以自行指定文本编辑器打开文件了

    • 在打开的powershell 的默认配置文件中加入如下内容:

      # 这里的 $ 符号一定要带上,一定要带上,一定要带上
      $env:GOROOT="$HOME\.g\go"
      $env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
      
    • 关闭 PowerShell 终端重新打开,就可以使用 g 或者 gvm 命令了

4.如果g别名被占用,可以修改上面解压的g.exe文件为其他名字,比如:gvm.exe

3、自动安装(PowerShell)
// 注意:复制命令的时候 $ 不要复制上(不过目前我在win11上测试安装的时候发现这个脚本有问题导致无法安装,所以暂时不推荐自动安装这种方式)
// 尽量管理员PowerShell下运行
$ iwr https://raw.githubusercontent.com/voidint/g/master/install.ps1 -useb | iex

Linux/macOS安装

**注意:**如果系统中已经安装过golang编译器,优先推荐手动安装,自动安装可能会遇到一些坑;系统中没有安装过golang编译器的推荐自动安装,更方便快捷。

1、手动安装

最好选择最新版本,可以体验最新功能

1.进入下载链接后下载后缀为.linux-amd64.tar.gz的最新版本压缩包

2.创建自定义目录(这里的目录可以自行设置,只要配置的环境变量和这个是统一的即可,推荐此目录):~/.g

3.切换到~/.g创建一个bin目录,由此完整目录~/.g/bin(这里分出两步是为了给刚接触linux不久的方便理解,可以直接一步到位)

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

注意:$ 不要复制粘贴出来,这条命令是226行内容写到目录/.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

5.将~/.g/env导入到 shell 环境配置文件(如~/.bashrc~/.zshrc…)

同理如上第4条;当前使用的是~/.bashrc;

$ cat >>~/.bashrc <<'EOF'
# g shell setup
if [ -f "${HOME}/.g/env" ]; then
    . "${HOME}/.g/env"
fi
EOF

6.启用环境变量

使用~/.bashrc就执行如下命令:

source ~/.bashrc

使用~/.zshrc就执行如下命令:

source ~/.zshrc

2、自动安装
  • Linux/macOS(适用于 bash、zsh)

    # 建议安装前清空`GOROOT`、`GOBIN`等环境变量
    $ curl -sSL https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
    $ cat << 'EOF' >> ~/.bashrc
    # 可选。检查g别名是否被占用
    if [[ -n $(alias g 2>/dev/null) ]]; then
        unalias g
    fi
    EOF 
    $ source "$HOME/.g/env"
    

Goland终端Terminal注意事项

问题:

​ 在goland的终端Terminal中使用PowerShell的时候执行g ls等命令可能出现报错(Windows终端的Power Shell 7不会出现问题):

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

PS D:\wyl\workspace\go\board> g ls
g : 无法将“g”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路
径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ g ls
+ ~
    + CategoryInfo          : ObjectNotFound: (g:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

原因:

​ goland的终端Terminal默认只会使用windows下的 PowerShell 5(问题路径:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe),这可能是因为goland和windows的兼容问题导致的

解决办法:

​ 找到PowerShell 7的可执行文件pwsh.exe,把goland的默认终端选项修改为正确的地址即可,一般golang默认使用的PowerShell 5地址就是这个C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe(这里可能还有其他的比如cmd和git bash等就不介绍了,不人为更改的话默认就是PS)

​ 正确地址(可以直接复制粘贴-如果是PS7-preview版本):C:\Program Files\PowerShell\7-preview\pwsh.exe

​ 如果直接粘贴没有生效或者找不到文件,大概率是版本不同导致的,可以按照C:\Program Files\PowerShell一级一级找下去,直到找到正确的为止

操作:

​ 路径:Goland > File > Settings > Tools > Terminal > Shell path: > Select Path / Shell executable path

​ 按照上面的路径在goland的设置中找到工具下的终端Terminal的Shell path,点击右侧的...会弹出一个Select Path的窗口,可以看到Shell executable path的一个标题,标题下面就是查找路径,找到对应的正确的pwsh.exe位置选中即可

验证:

关闭已打开的终端,即可看到默认头已经改变

旧头:

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

PS D:\wyl\workspace\go\board>

新头:

PowerShell 7.6.0-preview.4
PS D:\wyl\workspace\go\board>

再次执行g ls发现已经可以使用

基本使用命令

g ls-remote:查看可安装的golang版本

g install 版本号:下载安装指定版本号版本

g self update:自动升级至最新版本

g ls:查询已安装的go版本

g ls-remote stable:查询当前可供安装的stable状态的go版本

g use 版本号:切换至指定版本,需已下载

g uninstall 版本号:卸载一个已安装的go版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值